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. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    {one line to give the program's name and a brief idea of what it does.}
-    Copyright (C) {year}  {name of author}
-
-    This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    {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
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
-
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 @@
-<pre>
- __   __  ___   ___      _______  _______ 
-|  |_|  ||   | |   |    |       ||       |
-|       ||   | |   |    |    ___||  _____|
-|       ||   | |   |    |   |___ | |_____ 
-|       ||   | |   |___ |    ___||_____  |
-| ||_|| ||   | |       ||   |     _____| |
-|_|   |_||___| |_______||___|    |_______|
-
-</pre>
-
-**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.**
-
-<pre>
-  #====#        
- |___|__\___    
- | _ |   |_ |}  
- "(_)""  ""(_)"    
-</pre>
-
-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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "500";
-
-$tags = array();
-$tags[] = "milfs/addon/logis/images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
-<div>
-<style type="text/css">
-.fa{
-font-size:60px important!;
-}
-#imagen_origina{
-width: <?echo $ancho ?>px;
-}
-body{
-background-color:white !important;
-
-}
-
-
-.pin {
- text-align: center;
- /*border: solid 1px red;*/
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-.ing-touch{
-border: solid 1px red;
-width:20% !important;
-}
-
-</style>
-
-<div class='container' style='backgroun-color:white;' >
-		<div class='fileUpload btn btn-primary center-block'>
-		<span><h1><i class="fa fa-camera"></i></h1></span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-
-<!-- <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin" ><a href="#arriba" onclick=" javascript: marcar('top-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin" ><a href="#medio" onclick=" javascript: marcar('middle-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-
-</div>
-		<div class="row " style="position:relative">
-
-		
-		<form id='formulario_brigadistas' name='formulario_brigadistas' >
-			<input class='form-control' type='' id="debugConsole" name="debugConsole" >
-			<input type='' id="identificador" name="identificador" >
-			<input type='hidden' id="formulario_id" name="formulario_id" value="<?php echo $id_formulario; ?>">
-			<input type='hidden' id="imagen" name="imagen" value="">
-			
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-	
-	</div>
-	<div id='aviso'>Aviso</div>
-		<div class="row">
-		<div class="col-md-12">
-		
-	<!--  this.disabled= true;  xajax_wait('aviso','Grabando... un momento por favor...'); 	-->
-	<button  class='fileUpload btn btn-success  btn-block' onclick="  xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))">
-		<span><i class="fa fa-save"></i> <span class='fa'> Grabalo! </span></span>
-	</button> 
-
-		
-		</div>
-	</div>
-</div>
-</div>
-<script language="javascript">
-    
-$(function () {
-    'use strict';
-
-    var result = $('#result'),
-        exifNode = $('#exif'),
-        thumbNode = $('#thumbnail'),
-        actionsNode = $('#actions'),
-        currentFile,
-        replaceResults = function (img) {
-            var content;
-            if (!(img.src || img instanceof HTMLCanvasElement)) {
-                content = $('<span>Loading image file failed</span>');
-            } else {
-                content = $('<img />').append(img)
-                    //.attr('download', currentFile.name)
-                    .attr('src', img.src || img.toDataURL())
-                    .attr('width', '<?echo $ancho ?>px')
-                    .attr('style', 'width:100%')
-                    .attr('id', 'imagen_original');
-
-            }
-            //document.getElementById('image_output').src =  img.src;
-            result.children().replaceWith(content);
-            if (img.getContext) {
-                actionsNode.show();
-                window.setTimeout("marcar('middle-center');", 500); 
-                
-            }
-        },
-        displayImage = function (file, options) {
-            currentFile = file;
-            if (!loadImage(
-                    file,
-                    replaceResults,
-                    options
-                )) {
-                result.children().replaceWith(
-                    $('<span>Your browser does not support the URL or FileReader API.</span>')
-                );
-            }
-        },
-        displayExifData = function (exif) {
-            var thumbnail = exif.get('Thumbnail'),
-                tags = exif.getAll(),
-                table = exifNode.find('table').empty(),
-                row = $('<tr></tr>'),
-                cell = $('<td></td>'),
-                prop;
-            if (thumbnail) {
-                thumbNode.empty();
-                loadImage(thumbnail, function (img) {
-                    thumbNode.append(img).show();
-                }, {orientation: exif.get('Orientation')});
-            }
-            for (prop in tags) {
-                if (tags.hasOwnProperty(prop)) {
-                    table.append(
-                        row.clone()
-                            .append(cell.clone().text(prop))
-                            .append(cell.clone().text(tags[prop]))
-                    );
-                }
-            }
-            exifNode.show();
-        },
-        dropChangeHandler = function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            var target = e.dataTransfer || e.target,
-                file = target && target.files && target.files[0],
-                options = {
-                    maxWidth: result.width(),
-                    canvas: true
-                };
-            if (!file) {
-                return;
-            }
-            exifNode.hide();
-            thumbNode.hide();
-            loadImage.parseMetaData(file, function (data) {
-                if (data.exif) {
-                    options.orientation = data.exif.get('Orientation');
-                    displayExifData(data.exif);
-                }
-                displayImage(file, options);
-            });
-        },
-        coordinates;
-    // Hide URL/FileReader API requirement message in capable browsers:
-    if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
-        result.children().hide();
-    }
-    
-    $(document)
-        .on('dragover', function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            e.dataTransfer.dropEffect = 'copy';
-        })
-        .on('drop', dropChangeHandler);
-    $('#file-input').on('change', dropChangeHandler);
-    $('#edit').on('click', function (event) {
-        event.preventDefault();
-        var imgNode = result.find('img, canvas'),
-            img = imgNode[0];
-        imgNode.Jcrop({
-            setSelect: [40, 40, img.width - 40, img.height - 40],
-            onSelect: function (coords) {
-                coordinates = coords;
-            },
-            onRelease: function () {
-                coordinates = null;
-            }
-        }).parent().on('click', function (event) {
-            event.preventDefault();
-        });
-    });
-    $('#crop').on('click', function (event) {
-        event.preventDefault();
-        var img = result.find('img, canvas')[0];
-        if (img && coordinates) {
-            replaceResults(loadImage.scale(img, {
-                left: coordinates.x,
-                top: coordinates.y,
-                sourceWidth: coordinates.w,
-                sourceHeight: coordinates.h,
-                minWidth: result.width()
-            }));
-            coordinates = null;
-        }
-    });
-
-});
-       
-
-
-</script>
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = <?echo $ancho ?>;
-			micanvas.width =ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-   var debugConsole= document.getElementById("debugConsole");
-	var testCanvas = document.getElementById("micanvas");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	
-	debugConsole.value=canvasData;
-	var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-
-     
-$(function () {
-    'use strict';
-
-    var result = $('#result'),
-        exifNode = $('#exif'),
-        thumbNode = $('#thumbnail'),
-        actionsNode = $('#actions'),
-        currentFile,
-        replaceResults = function (img) {
-            var content;
-            if (!(img.src || img instanceof HTMLCanvasElement)) {
-                content = $('<span>Loading image file failed</span>');
-            } else {
-                content = $('<img />').append(img)
-                    //.attr('download', currentFile.name)
-                    .attr('src', img.src || img.toDataURL())
-                    .attr('width', '<?echo $ancho ?>')
-                    .attr('style', 'width:100%')
-                    .attr('id', 'imagen_original');
-
-            }
-            //document.getElementById('image_output').src =  img.src;
-            result.children().replaceWith(content);
-            if (img.getContext) {
-                actionsNode.show();
-                window.setTimeout("marcar('middle-center');", 500); 
-                
-            }
-        },
-        displayImage = function (file, options) {
-            currentFile = file;
-            if (!loadImage(
-                    file,
-                    replaceResults,
-                    options
-                )) {
-                result.children().replaceWith(
-                    $('<span>Your browser does not support the URL or FileReader API.</span>')
-                );
-            }
-        },
-        displayExifData = function (exif) {
-            var thumbnail = exif.get('Thumbnail'),
-                tags = exif.getAll(),
-                table = exifNode.find('table').empty(),
-                row = $('<tr></tr>'),
-                cell = $('<td></td>'),
-                prop;
-            if (thumbnail) {
-                thumbNode.empty();
-                loadImage(thumbnail, function (img) {
-                    thumbNode.append(img).show();
-                }, {orientation: exif.get('Orientation')});
-            }
-            for (prop in tags) {
-                if (tags.hasOwnProperty(prop)) {
-                    table.append(
-                        row.clone()
-                            .append(cell.clone().text(prop))
-                            .append(cell.clone().text(tags[prop]))
-                    );
-                }
-            }
-            exifNode.show();
-        },
-        dropChangeHandler = function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            var target = e.dataTransfer || e.target,
-                file = target && target.files && target.files[0],
-                options = {
-                    maxWidth: result.width(),
-                    canvas: true
-                };
-            if (!file) {
-                return;
-            }
-            exifNode.hide();
-            thumbNode.hide();
-            loadImage.parseMetaData(file, function (data) {
-                if (data.exif) {
-                    options.orientation = data.exif.get('Orientation');
-                    displayExifData(data.exif);
-                }
-                displayImage(file, options);
-            });
-        },
-        coordinates;
-    // Hide URL/FileReader API requirement message in capable browsers:
-    if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
-        result.children().hide();
-    }
-    
-    $(document)
-        .on('dragover', function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            e.dataTransfer.dropEffect = 'copy';
-        })
-        .on('drop', dropChangeHandler);
-    $('#file-input').on('change', dropChangeHandler);
-    $('#edit').on('click', function (event) {
-        event.preventDefault();
-        var imgNode = result.find('img, canvas'),
-            img = imgNode[0];
-        imgNode.Jcrop({
-            setSelect: [40, 40, img.width - 40, img.height - 40],
-            onSelect: function (coords) {
-                coordinates = coords;
-            },
-            onRelease: function () {
-                coordinates = null;
-            }
-        }).parent().on('click', function (event) {
-            event.preventDefault();
-        });
-    });
-    $('#crop').on('click', function (event) {
-        event.preventDefault();
-        var img = result.find('img, canvas')[0];
-        if (img && coordinates) {
-            replaceResults(loadImage.scale(img, {
-                left: coordinates.x,
-                top: coordinates.y,
-                sourceWidth: coordinates.w,
-                sourceHeight: coordinates.h,
-                minWidth: result.width()
-            }));
-            coordinates = null;
-        }
-    });
-
-});
-    
-</script>
-
-<br>
- <script src="milfs/addon/logis/js/load-image.all.min.js"></script> 
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<!--  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>  -->
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<!-- <script src="js/demo.js"></script> -->
-</div>
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 @@
-<?php
-function brigadistas_grabar_imagen($data,$identificador) {
-	$respuesta = new xajaxResponse('utf-8');
-	$control = md5("$identificador");
-	//$form_id = $fomulario["formulario_id"];
-
-	$imagen= grabar_imagen($data,$control);
-	$preview = "<img src='$_SESSION[url]/images/secure/?file=150/$imagen'>";
-	$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 <br>";
-				}
-			}
-		}
-		$twitter = $formulario['498'][0];
-	$_SESSION['logis'] = "$control";
-	$_SESSION['mensaje'] = "$twitter";
-		$preview = "
-<div class='row'>
-	<div class='center-block'>
-		<div class='thumbnail'>
-				<img  src='$_SESSION[url]/images/secure/?file=300/$imagen'>
-				<h2 class='text-center'>$twitter<h2>
-				<a download='brigadistas.png' href='$_SESSION[url]images/secure/?file=600/$imagen' >
-					<span class='btn btn-default'><i class='fa fa-download'></i> </span>
-				</a>
-				<span class='btn btn-default'>
-					<a target= 'twitter' href ='milfs/addon/logis/funciones/twitter/tuitear.php'  ><i class='fa fa-twitter'></i></a>
-				</span>
-				 <a href='S58'>
-				<span class='btn btn-default'><i class='fa fa-eye'></i> </span>
-				</a>
-				<a href='#' onclick = \"javascript:location.reload(); \">
-					<span class='btn btn-default'><i class='fa fa-refresh'></i> </span>
-				</a>
-		</div>
-	</div>
-</div>
-
-";
-$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 @@
-<?php
-
-/**
- * Use to autoload needed classes without Composer.
- *
- * @param string $class The fully-qualified class name.
- * @return void
- */
-spl_autoload_register(function ($class) {
-
-    // project-specific namespace prefix
-    $prefix = 'Abraham\\TwitterOAuth\\';
-
-    // base directory for the namespace prefix
-    $base_dir = __DIR__ . '/src/';
-
-    // does the class use the namespace prefix?
-    $len = strlen($prefix);
-    if (strncmp($prefix, $class, $len) !== 0) {
-        // no, move to the next registered autoloader
-        return;
-    }
-
-    // get the relative class name
-    $relative_class = substr($class, $len);
-
-    // replace the namespace prefix with the base directory, replace namespace
-    // separators with directory separators in the relative class name, append
-    // with .php
-    $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
-
-    // if the file exists, require it
-    if (file_exists($file)) {
-        require $file;
-    }
-});
diff --git a/milfs/addon/brigada/funciones/twitter/c.png b/milfs/addon/brigada/funciones/twitter/c.png
deleted file mode 100644
index 1d95ac7..0000000
Binary files a/milfs/addon/brigada/funciones/twitter/c.png and /dev/null differ
diff --git a/milfs/addon/brigada/funciones/twitter/config.php b/milfs/addon/brigada/funciones/twitter/config.php
deleted file mode 100644
index 5f82efa..0000000
--- a/milfs/addon/brigada/funciones/twitter/config.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-define('CONSUMER_KEY', 'QS1JHXs7OgJcFArJmMv117JEn');
-define('CONSUMER_SECRET', 'NoO1FUXHmTB74HUrnDbcs64XgZoroBkaPav8w0FgbK3ZYSU9PZ');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/toa/hola.php');
-
-?>
\ 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 @@
-<?php
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-/*
-define('CONSUMER_KEY', getenv('wMtivKDSAgZmkP7EZhYcfw'));
-define('CONSUMER_SECRET', getenv('AvWbHfjuSJkZYhkxsU8ojsDpNtvapBoiRUzwF3OAvbo'));
-define('OAUTH_CALLBACK', getenv('http://datos.labmde.org/milfs/toa/hola.php'));
-*/
-define('CONSUMER_KEY', 'QS1JHXs7OgJcFArJmMv117JEn');
-define('CONSUMER_SECRET', 'NoO1FUXHmTB74HUrnDbcs64XgZoroBkaPav8w0FgbK3ZYSU9PZ');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/addon/logis/funciones/twitter/hola.php');
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
-//print $connection; //print connection contents
-//$request_token = $connection->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 @@
-<?php
-session_start();
-ini_set('display_errors', 1);
-
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-require_once('config.php');
- 
-/* Crear un objeto TwitteroAuth con las credenciales de la aplicacion y el token temporal */
-//$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
-               $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
- 
-/* Solicitar a twitter el token de acceso */
-//$access_token = $connection->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * Handle setting and storing config for TwitterOAuth.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Consumer
-{
-    /** @var string  */
-    public $key;
-    /** @var string  */
-    public $secret;
-    /** @var string|null  */
-    public $callbackUrl;
-
-    /**
-     * @param string $key
-     * @param string $secret
-     * @param null $callbackUrl
-     */
-    public function __construct($key, $secret, $callbackUrl = null)
-    {
-        $this->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-/**
- * 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 HmacSha1 extends SignatureMethod
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return "HMAC-SHA1";
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function buildSignature(Request $request, Consumer $consumer, Token $token = null)
-    {
-        $signatureBase = $request->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Request
-{
-    protected $parameters;
-    protected $httpMethod;
-    protected $httpUrl;
-    public static $version = '1.0';
-
-    /**
-     * Constructor
-     *
-     * @param string     $httpMethod
-     * @param string     $httpUrl
-     * @param array|null $parameters
-     */
-    public function __construct($httpMethod, $httpUrl, array $parameters = [])
-    {
-        $parameters = array_merge(Util::parseParameters(parse_url($httpUrl, PHP_URL_QUERY)), $parameters);
-        $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * The result of the most recent API request.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-/**
- * A class for implementing a Signature Method
- * See section 9 ("Signing Requests") in the spec
- */
-abstract class SignatureMethod
-{
-    /**
-     * Needs to return the name of the Signature Method (ie HMAC-SHA1)
-     *
-     * @return string
-     */
-    abstract public function getName();
-
-    /**
-     * 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 Request $request
-     * @param Consumer $consumer
-     * @param Token $token
-     *
-     * @return string
-     */
-    abstract public function buildSignature(Request $request, Consumer $consumer, Token $token = null);
-
-    /**
-     * Verifies that a given signature is correct
-     *
-     * @param Request $request
-     * @param Consumer $consumer
-     * @param Token $token
-     * @param string $signature
-     *
-     * @return bool
-     */
-    public function checkSignature(Request $request, Consumer $consumer, Token $token, $signature)
-    {
-        $built = $this->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Token
-{
-    /** @var string */
-    public $key;
-    /** @var string */
-    public $secret;
-
-    /**
-     * @param string $key    The OAuth Token
-     * @param string $secret The OAuth Token Secret
-     */
-    public 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
-     *
-     * @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 @@
-<?php
-/**
- * The most popular PHP library for use with the Twitter OAuth REST API.
- *
- * @license MIT
- */
-namespace Abraham\TwitterOAuth;
-
-use Abraham\TwitterOAuth\Util\JsonDecoder;
-
-/**
- * TwitterOAuth class for interacting with the Twitter API.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Util
-{
-    /**
-     * @param $input
-     *
-     * @return array|mixed|string
-     */
-    public static function urlencodeRfc3986($input)
-    {
-        $output = '';
-        if (is_array($input)) {
-            $output = array_map([__NAMESPACE__ . '\Util', 'urlencodeRfc3986'], $input);
-        } elseif (is_scalar($input)) {
-            $output = rawurlencode($input);
-        }
-        return $output;
-    }
-
-    /**
-     * @param string $string
-     *
-     * @return string
-     */
-    public static function urldecodeRfc3986($string)
-    {
-        return urldecode($string);
-    }
-
-    /**
-     * 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')
-     *
-     * @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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Util;
-
-/**
- * @author louis <louis@systemli.org>
- */
-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 @@
-<?php
-session_start();
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-require_once('config.php');
- 
-/* Prepara la conexión */
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- 
-/* Solicita a twitter las credenciales temporales */
-//$request_token = $connection->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 @@
-<?php session_start(); 
-ini_set('display_errors', 'On');
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');} 
-	include_once("$_SESSION[path]/funciones/conex.php");
-echo brigadistas_grabar($_POST);
-function brigadistas_grabar($formulario) {
-	
-	$identificador = $_POST['identificador'];
-	$control = md5("$identificador");
-	$data = $_POST['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 = "
-<div class='row'>
-	<div class='center-block'>
-		<div class='thumbnail'>
-				<img  src='$_SESSION[url]/images/secure/?file=300/$imagen'>
-				<a download='brigadistas.png' href='$_SESSION[url]images/secure/?file=600/$imagen' >
-					<span class='btn btn-default'><i class='fa fa-download'></i> </span>
-				</a>
-				<span class='btn btn-default'>
-					<a onclick =\"javascript:window.location.href ='$url'; \" ><i class='fa fa-twitter'></i> </a>
-				</span>
-				 <a href='?set=$formulario[formulario_id]&embebido'>
-				<span class='btn btn-default'><i class='fa fa-eye'></i> </span>
-				</a>
-				<a href='#' onclick = \"javascript:location.reload(); \">
-					<span class='btn btn-default'><i class='fa fa-refresh'></i> </span>
-				</a>
-		</div>
-	</div>
-</div>
-
-";
-	
-	//$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 <br>";
-				}
-			}
-		}
-	
-$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;j<i.length;j+=1)i[j].call(e,l,m,h,g,d);m+=h,o=m}!d.disableImageHead&&o>6&&(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;k<j.length&&(m=j[k],"\x00"!==m);k+=1)l+=m;return l}return j},a.parseExifTag=function(b,c,d,e,f){var g=b.getUint16(d,e);f.exif[g]=a.getExifValue(b,c,d,b.getUint16(d+2,e),b.getUint32(d+4,e),e)},a.parseExifTags=function(a,b,c,d,e){var f,g,h;if(c+6>a.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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "600";
-
-$tags = array();
-$tags[] = "milfs/addon/logis/images/logos/250.png";
-$imagen="";
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
-<div>
-<style type="text/css">
-.fa{
-font-size:60px important!;
-}
-#imagen_origina{
-width: <?echo $ancho ?>px;
-}
-body{
-background-color:white !important;
-
-}
-
-
-.pin {
- text-align: center;
- /*border: solid 1px red;*/
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-.ing-touch{
-border: solid 5px white;
-width:20% !important;
-}
-
-</style>
-
-<div class='container' style='height:100%; backgroun-color:white;'  id='aviso'>
-
-		<div class='fileUpload btn btn-primary center-block'>
-		<span><h1><i class="fa fa-camera"></i> + tu Foto</h1></span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-
-<!--  <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-	<canvas id="micanvasOriginal"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin" ><a href="#arriba" onclick=" javascript: marcar('top-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin" ><a href="#medio" onclick=" javascript: marcar('middle-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-
-</div>
-		<div class="row " style="position:relative">
-
-		
-		<form id='formulario_brigadistas' name='formulario_brigadistas' >
-<!-- 			<input class='form-control' type='' id="debugConsole" name="debugConsole" > -->
-			<textarea class='form-control'  id="debugConsole" name="debugConsole" style="display:none;" ></textarea>
-			<input type='hidden' id="identificador" name="identificador" >
-			<input type='hidden' id="formulario_id" name="formulario_id" value="<?php echo $id_formulario; ?>">
-			<input type='hidden' id="imagen" name="imagen" value="">
-			
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-	
-	</div>
-<!-- 	 <div id='aviso'></div>  -->
-		<div class="row">
-		<div class="col-md-12">
-		
-	<!--  this.disabled= true;  xajax_wait('aviso','Grabando... un momento por favor...'); xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))	-->
-<!-- 	<button  class='fileUpload btn btn-success  btn-block' onclick="document.getElementById('formulario_brigadistas').submit(); "> -->
-	<button  class='fileUpload btn btn-success  btn-block' onclick=" xajax_wait('aviso','Grabando... un momento por favor...'); xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))	; ">
-		<span><i class="fa fa-save"></i> <span class='fa'> Grabalo! </span></span>
-	</button> 
-
-		
-		</div>
-	</div>
-</div>
-<?php  $ultimo = 	formulario_uso("$id_formulario",'','ultimo') ; 
-//echo $ultimo[1];
-echo mostrar_identificador("$ultimo[1]","","landingpage",'simple');
- ?>
-</div>
-
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = <?echo $ancho ?>;
-			micanvas.width =ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-   var debugConsole= document.getElementById("debugConsole");
-	var testCanvas = document.getElementById("micanvas");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	
-	debugConsole.value=canvasData;
-	var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-
-
-
-$(function () {
-    'use strict';
-
-    var result = $('#result'),
-        exifNode = $('#exif'),
-        thumbNode = $('#thumbnail'),
-        actionsNode = $('#actions'),
-        currentFile,
-        replaceResults = function (img) {
-            var content;
-            if (!(img.src || img instanceof HTMLCanvasElement)) {
-                content = $('<span>Loading image file failed</span>');
-            } else {
-                content = $('<img />').append(img)
-                    //.attr('download', currentFile.name)
-                    .attr('src', img.src || img.toDataURL())
-                    .attr('width', '<?echo $ancho ?>')
-                    .attr('style', 'width:100%')
-                    .attr('id', 'imagen_original');
-
-            }
-            //document.getElementById('image_output').src =  img.src;
-            result.children().replaceWith(content);
-            if (img.getContext) {
-                actionsNode.show();
-               /// render(img.src);
-                window.setTimeout("marcar('middle-center');", 500); 
-                
-            }
-        },
-        displayImage = function (file, options) {
-            currentFile = file;
-            if (!loadImage(
-                    file,
-                    replaceResults,
-                    options
-                )) {
-                result.children().replaceWith(
-                    $('<span>Your browser does not support the URL or FileReader API.</span>')
-                );
-            }
-        },
-
-        dropChangeHandler = function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            var target = e.dataTransfer || e.target,
-                file = target && target.files && target.files[0],
-                options = {
-                    //maxWidth: result.width(),
-                    maxWidth: <?echo $ancho ?>,
-                    canvas: true
-                };
-            if (!file) {
-                return;
-            }
-            exifNode.hide();
-            thumbNode.hide();
-            loadImage.parseMetaData(file, function (data) {
-                if (data.exif) {
-                    options.orientation = data.exif.get('Orientation');
-                  //  displayExifData(data.exif);
-                }
-                displayImage(file, options);
-            });
-        },
-        coordinates;
-    // Hide URL/FileReader API requirement message in capable browsers:
-    if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
-        result.children().hide();
-    }
-    
-    $(document)
-        .on('dragover', function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            e.dataTransfer.dropEffect = 'copy';
-        })
-        .on('drop', dropChangeHandler);
-    $('#file-input').on('change', dropChangeHandler);
-    $('#edit').on('click', function (event) {
-        event.preventDefault();
-        var imgNode = result.find('img, canvas'),
-            img = imgNode[0];
-        imgNode.Jcrop({
-            setSelect: [40, 40, img.width - 40, img.height - 40],
-            onSelect: function (coords) {
-                coordinates = coords;
-            },
-            onRelease: function () {
-                coordinates = null;
-            }
-        }).parent().on('click', function (event) {
-            event.preventDefault();
-        });
-    });
-    $('#crop').on('click', function (event) {
-        event.preventDefault();
-        var img = result.find('img, canvas')[0];
-        if (img && coordinates) {
-            replaceResults(loadImage.scale(img, {
-                left: coordinates.x,
-                top: coordinates.y,
-                sourceWidth: coordinates.w,
-                sourceHeight: coordinates.h,
-                minWidth: result.width()
-            }));
-            coordinates = null;
-        }
-    });
-
-});
-    
-</script>
-
-<br>
- <script src="milfs/addon/logis/js/load-image.all.min.js"></script> 
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<!--  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>  -->
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<!-- <script src="js/demo.js"></script> -->
-</div>
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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "600";
-
-$tags = array();
-$tags[] = "images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
-
-<html lang="en">
-<head>
-<!--[if IE]>
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<![endif]-->
-<meta charset="utf-8">
-<title></title>
-<meta name="description" content="JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled and/or cropped HTML img or canvas element. It also provides a method to parse image meta data to extract Exif tags and thumbnails and to restore the complete image header after resizing.">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<!-- Jcrop is not required by JavaScript Load Image, but included for the demo -->
-<!-- <link rel="stylesheet" href="css/vendor/jquery.Jcrop.css"> -->
-<!-- <link rel="stylesheet" href="css/demo.css"> -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
-<!-- Latest compiled and minified CSS -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
-
-<style type="text/css">
-.fa{
-font-size:60px;
-}
-#imagen_origina{
-width: 800px;
-}
-.pin {
- text-align: center;
- border: solid 1px red;
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-</style>
-</head>
-<body>
-<div class='container'>
-		<div class='fileUpload btn btn-primary '>
-		<span> <i class="fa fa-picture-o"></i> <span class='fa' > Imagen  <i class="fa fa-camera"></i>  </span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-</div>
-<!-- <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-<input type="hidden"  id='identificador' name='identificador'>
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-circle-o"></i></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-</div>
-</div>
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = 800;
-			micanvas.width = ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-         var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-</script>
-
-<br>
-<script src="js/load-image.all.min.js"></script>
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<script src="js/demo.js"></script>
-</body> 
-</html>
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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "600";
-
-$tags = array();
-$tags[] = "images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
-<!DOCTYPE HTML>
-<html lang="en">
-<head>
-<!--[if IE]>
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<![endif]-->
-<meta charset="utf-8">
-<title></title>
-<meta name="description" content="JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled and/or cropped HTML img or canvas element. It also provides a method to parse image meta data to extract Exif tags and thumbnails and to restore the complete image header after resizing.">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<!-- Jcrop is not required by JavaScript Load Image, but included for the demo -->
-<!-- <link rel="stylesheet" href="css/vendor/jquery.Jcrop.css"> -->
-<!-- <link rel="stylesheet" href="css/demo.css"> -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
-<!-- Latest compiled and minified CSS -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
-
-<style type="text/css">
-.fa{
-font-size:60px;
-}
-#imagen_origina{
-width: 800px;
-}
-.pin {
- text-align: center;
- border: solid 1px red;
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-</style>
-</head>
-<body>
-<div class='container'>
-		<div class='fileUpload btn btn-primary '>
-		<span> <i class="fa fa-picture-o"></i> <span class='fa' > Imagen  <i class="fa fa-camera"></i>  </span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-</div>
-<!-- <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-<input type="hidden"  id='identificador' name='identificador'>
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-circle-o"></i></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-</div>
-</div>
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = 800;
-			micanvas.width = ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-         var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-</script>
-
-<br>
-<script src="js/load-image.all.min.js"></script>
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<script src="js/demo.js"></script>
-</body> 
-</html>
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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "600";
-
-$tags = array();
-$tags[] = "milfs/addon/brigadistas/images/logos/a.png";
-$tags[] = "milfs/addon/brigadistas/images/logos/b.png";
-$tags[] = "milfs/addon/brigadistas/images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td><a href='#medio'  class='' onclick=\" document.getElementById('marca').src='$valor' \" >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr> 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
-  <script src="https://9b8d22ae00fff2954b7cdd00a6feb4176bc56576.googledrive.com/host/0B7R2T-U-1ZrheTlfaHNQMm0zTWM/plump_modernizr.js"></script>
- <link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cabin" type="text/css"/>
-
-<style type="text/css">
-body { 
-   font-family: 'CabinRegular'; 
-   font-weight: normal; 
-   font-style: normal; 
- 
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-}
-.fa{
-font-size:60px;
-}
-
-            #downlink_hidden , #fieldset_General , #canvas_ed , #original{
-                display:none; 
-            }
-#body{
-background-color: white;
- 
-}
-#aviso{
-background-color: gray;
-  width: 100%;
-}
-</style>
-
-
-<div id='aviso'>
-<div id ="body" class="container" >
-
-<div  id="div_brigadistas" class="">
-<span class='btn btn-primary btn-block' > <!-- <i class="fa fa-picture-o"></i> --> <span class='fa' > Elige un Logo </span></span>
-<?php echo $imagen; ?>
-<a name="medio"></a>
-	<div class="row">
-		<div class="col-md-12">
-		<div class='fileUpload btn btn-primary btn-block'>
-		<span> <i class="fa fa-picture-o"></i> <span class='fa' > Sube una imágen</span>
-		  <input class='upload'  type="file" id="files" name="files[]" /></span>
-		  <div id="original" ></div>
-		  </div>
-		</div>
-	</div>
-	<a name="abajo"></a>
-	<div class="row">
-		<div class="col-md-12">
-		<div class='container-fluid'>
-			<table style="" class="table text-center table-responsive">
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-center')"><i class="fa fa-caret-square-o-up"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-caret-square-o-right"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-caret-square-o-right"></i></td>
-        	</tr>
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-caret-square-o-down"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-caret-square-o-right"></i></a></td>
-        	</tr>
-
-        	</table>
-        	</div>
-		</div>
-	</div>
-
-<!-- 	editor  -->
-
-	<div class='container-fluid'>
-         
-       
-		<div style="background-color:; " >
-		<img class="center-block"  style='' id="marca" name="marca">
-		
-		<div id="list" style=" "></div>
-		<img id='image_output2' name='image_output2'  src="" class="" />
-		
-		<div id='div_canvas' style='display: none'> </div>
-	</div>
-</div>
-	<div class="row">
-
-		
-		<form id='formulario_brigadistas' name='formulario_brigadistas' >
-			<input type='hidden' id="debugConsole" name="debugConsole" >
-			<input type='hidden' id="identificador" name="identificador" >
-			<input type='hidden' id="formulario_id" name="formulario_id" value="<?php echo $id_formulario; ?>">
-			<input type='hidden' id="imagen" name="imagen" value="">
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-	
-	</div>
-	<div class="row">
-		<div class="col-md-12">
-		
-	<!-- 	-->
-	<button  class='fileUpload btn btn-success  btn-block' onclick=" this.disabled= true;  xajax_wait('aviso','Grabando... un momento por favor...'); saveViaAJAX();   xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))">
-		<span><i class="fa fa-save"></i> <span class='fa'> Grabalo! </span></span>
-	</button> 
-
-		
-		</div>
-	</div>
-	
-	</div><!--  fin aviso  -->
-</div>
-</div>
-<script type="text/javascript">
-
-
-    function convertImageToCanvas(i, image) {
-        var canvas = document.createElement("canvas");
-        canvas.width = image.width;
-        canvas.height = image.height;
-        var ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0);
-        $("body").append(canvas);
-    };
-    
-function convertImageToCanvas(image) {
-  var canvas = document.createElement("canvas");
-  canvas.width = image.width;
-  canvas.height = image.height;
-  canvas.getContext("2d").drawImage(image, 0, 0);
- 
-  return canvas;
-}
-
-function convertCanvasToImage(canvas) {
-  var image = new Image();
-  image.src = canvas.toDataURL("image/png");
-  return image;
-}
-
-function saveViaAJAX()
-{
-    
-	$(document).ready(function() {
-    function convertImageToCanvas(i, image) {
-    	var canvasOld = document.getElementById("holamundo");
-		//	canvasOld.holamundo.removeChild(canvasOld);
-document.getElementById("div_canvas").innerHTML=""
-        var canvas = document.createElement("canvas");
-        div = document.getElementById('div_canvas'); 
-        canvas.width = image.width;
-        canvas.height = image.height;
-        canvas.id = "holamundo";
-        var ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0);
-        
-        div.appendChild(canvas);
-    };
-
-    $('.watermark').each(convertImageToCanvas);
-
-});
-
-	var testCanvas = document.getElementById("holamundo");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	var debugConsole= document.getElementById("debugConsole");
-	debugConsole.value=canvasData;
-
-}
-
-
-              function archivo(evt) {
-                  var files = evt.target.files; // FileList object
-             
-                  // Obtenemos la imagen del campo "file".
-                  for (var i = 0, f; f = files[i]; i++) {
-                    //Solo admitimos imágenes.
-                    if (!f.type.match('image.*')) {
-                        continue;
-                    }
-             
-                    var reader = new FileReader();
-             
-                    reader.onload = (function(theFile) {
-                        return function(e) {
-                          // Insertamos la imagen
-                         document.getElementById("original").innerHTML = ['<img id="image_output2" name="image_output2"   src="', e.target.result,'" title="', escape(theFile.name), '"/>'].join('');
-                         document.getElementById("list").innerHTML = ['<img style="width:<?php echo $ancho; ?>px;" id="image_output" name="image_output" class="img img-responsive watermark center-block" src="', e.target.result,'" title="', escape(theFile.name), '"/>'].join('');
-                        };
-                    })(f);
-             
-                    reader.readAsDataURL(f);
-                  }
-              }
-             
-              document.getElementById('files').addEventListener('change', archivo, false);
-              
-            /*  marca */
-
-
-(function(w){
-	var wm = (function(w){
-		var doc = w.document,
-		gcanvas = {},
-		gctx = {},
-		imgQueue = [],
-		className = "watermark",
-		watermark = false,
-		watermarkPosition = "bottom-right",
-		watermarkPath = "<?php echo $tags['1']; ?>"+(+(new Date())),
-		opacity = (255/(100/50)), // 50%
-		initCanvas = function(){
-			gcanvas = doc.createElement("canvas");
-			gcanvas.style.cssText = "display:none;";
-			gctx = gcanvas.getContext("2d");
-			doc.body.appendChild(gcanvas);
-		},
-		initWatermark = function(){
-			watermark = new Image();
-			watermark.src = "";
-			watermark.src = watermarkPath;
-			
-			if(opacity != 255){
-				if(!watermark.complete)
-					watermark.onload = function(){	
-						applyTransparency();
-					}
-				else
-					applyTransparency();
-				
-
-			}else{
-				applyWatermarks();
-			}
-			
-		},
-		// function for applying transparency to the watermark
-		applyTransparency = function(){
-			var w = watermark.width || watermark.offsetWidth,
-			h = watermark.height || watermark.offsetHeight;
-			setCanvasSize(w, h);
-			gctx.drawImage(watermark, 0, 0);
-					
-			var image = gctx.getImageData(0, 0, w, h);
-			var imageData = image.data,
-			length = imageData.length;
-			for(var i=3; i < length; i+=4){  
-				imageData[i] = (imageData[i]<opacity)?imageData[i]:opacity;
-			}
-			image.data = imageData;
-			gctx.putImageData(image, 0, 0);
-			watermark.onload = null;
-			watermark.src = "";
-			watermark.src = gcanvas.toDataURL();
-			// assign img attributes to the transparent watermark
-			// because browsers recalculation doesn't work as fast as needed
-			watermark.width = w;
-			watermark.height = h;
-
-			applyWatermarks();
-		},
-		configure = function(config){
-			if(config["watermark"])
-				watermark = config["watermark"];
-			if(config["path"])
-				watermarkPath = config["path"];
-			if(config["position"])
-				watermarkPosition = config["position"];
-			if(config["opacity"])
-				opacity = (255/(100/config["opacity"]));
-			if(config["className"])
-				className = config["className"];
-			
-			initCanvas();
-			initWatermark();
-		}
-		setCanvasSize = function(w, h){
-			gcanvas.width = w;
-			gcanvas.height = h;
-		},
-		applyWatermark = function(img){
-			/*
-			var f = image.height / image.width;
-var newHeight = canvas.width * f;
-			
-			*/
-			var proporcion = ( img.height / img.width );
-			var ancho  = <?php echo $ancho; ?>;
-			//var alto_orginal = img.height;
-			//var alto = (alto_original * proporcion);
-			//alert("hola pro"+alto);
-			gcanvas.width = ancho;// || img.offsetWidth;
-			//gcanvas.width = img.width || img.offsetWidth;
-			//gcanvas.height = img.height || img.offsetHeight;
-			gcanvas.height = (gcanvas.width * proporcion);// || img.offsetHeight;
-			gctx.drawImage(img, 0, 0,ancho,gcanvas.height);
-			var position = watermarkPosition,
-			x = 0,
-			y = 0;
-			if(position.indexOf("top")!=-1)
-				y = 20;
-			else if(position.indexOf("middle")!=-1)
-				y = (gcanvas.height -watermark.height)/2;
-			else
-				y = gcanvas.height-watermark.height-20;
-			
-			if(position.indexOf("left")!=-1)
-				x = 20;
-			else if(position.indexOf("center")!=-1)
-				x = (gcanvas.width - watermark.width) /2;
-			else
-				x = gcanvas.width-watermark.width-20;
-
-
-			gctx.drawImage(watermark, x, y);
-			img.onload = null;
-	
-			img.src = gcanvas.toDataURL();
-
-		},
-		applyWatermarks = function(){
-			setTimeout(function(){
-				var els = doc.getElementsByClassName(className),
-				len = els.length;
-				while(len--){
-					var img = els[len];
-					if(img.tagName.toUpperCase() != "IMG")
-						continue;
-					
-					if(!img.complete){
-						img.onload = function(){
-							applyWatermark(this);
-						};
-					}else{
-						applyWatermark(img);
-					}
-				}
-			},10);
-		};
-		
-		
-		return {
-			init: function(config){
-				configure(config);
-			}
-		};
-	})(w);
-	w.wmark = wm;
-})(window);
-            /*  marca */
-      </script>
-
-
-
-        <script>
-
- function marcar(position){
-
-
-					var position = position;
-							
-						var original =	document.getElementById('image_output2').src ;
-						var marca =	document.getElementById('marca').src ;
-						document.getElementById('image_output').src =  original ;
-                                wmark.init({
-
-                                        /* config goes here */
-
-                                        "position": position, // default "bottom-right"
-
-                                        "opacity": 100, // default 50
-
-                                        "className": "watermark", // default "watermark"
-
-                                        "path": marca
-                                       // "path": "../milfs/addon/machitroll/images/054843d530f3c83fcdbd55e688d874ec.png"
-
-                                });
-						var identificador = Math.random();
-						document.getElementById('identificador').value= identificador;
-						
-						//window.setTimeout("saveViaAJAX()", 3000); ///
-						//saveViaAJAX(); ///
-						//xajax_wait('aviso','Subiendo imágen');
-						//window.setTimeout("xajax_machitroll_grabar_imagen(document.getElementById('debugConsole').value,"+identificador+")", 5000);
-                        
-
-                     
-
-                }
-
-        </script>
-
-
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 @@
-<?php
-function brigadiastas_grabar_imagen($data,$identificador) {
-	$respuesta = new xajaxResponse('utf-8');
-	$control = md5("$identificador");
-	//$form_id = $fomulario["formulario_id"];
-
-	$imagen= grabar_imagen($data,$control);
-	$preview = "<img src='$_SESSION[url]/images/secure/?file=150/$imagen'>";
-	$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 = "
-<div class='row'>
-	<div class='center-block'>
-		<div class='thumbnail'>
-				<img  src='$_SESSION[url]/images/secure/?file=300/$imagen'>
-				<a download='brigadistas.png' href='$_SESSION[url]images/secure/?file=600/$imagen' >
-					<span class='btn btn-default'><i class='fa fa-download'></i> </span>
-				</a>
-				<span class='btn btn-default'>
-					<a onclick =\"javascript:window.location.href ='$url'; \" ><i class='fa fa-twitter'></i> </a>
-				</span>
-				 <a href='?set=$formulario[formulario_id]&embebido'>
-				<span class='btn btn-default'><i class='fa fa-eye'></i> </span>
-				</a>
-				<a href='#' onclick = \"javascript:location.reload(); \">
-					<span class='btn btn-default'><i class='fa fa-refresh'></i> </span>
-				</a>
-		</div>
-	</div>
-</div>
-
-";
-	
-	$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 <br>";
-				}
-			}
-		}
-	
-$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 @@
-<?php
-require("machitroll/funciones/funciones.php");
-require("logis/funciones/funciones.php");
-require("tuitealo/funciones/funciones.php");
-//require("dummy/funciones/funciones.php");
-?>
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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "500";
-
-$tags = array();
-$tags[] = "milfs/addon/logis/images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
-<div>
-<style type="text/css">
-.fa{
-font-size:60px important!;
-}
-#imagen_origina{
-width: <?echo $ancho ?>px;
-}
-body{
-background-color:white !important;
-
-}
-
-
-.pin {
- text-align: center;
- /*border: solid 1px red;*/
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-.ing-touch{
-border: solid 1px red;
-width:20% !important;
-}
-
-</style>
-
-<div class='container' style='backgroun-color:white;' >
-		<div class='fileUpload btn btn-primary center-block'>
-		<span><h1><i class="fa fa-camera"></i></h1></span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-
-<!-- <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin" ><a href="#arriba" onclick=" javascript: marcar('top-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin" ><a href="#medio" onclick=" javascript: marcar('middle-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-
-</div>
-		<div class="row " style="position:relative">
-
-		
-		<form id='formulario_brigadistas' name='formulario_brigadistas' >
-			<input class='form-control' type='' id="debugConsole" name="debugConsole" >
-			<input type='' id="identificador" name="identificador" >
-			<input type='hidden' id="formulario_id" name="formulario_id" value="<?php echo $id_formulario; ?>">
-			<input type='hidden' id="imagen" name="imagen" value="">
-			
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-	
-	</div>
-	<div id='aviso'>Aviso</div>
-		<div class="row">
-		<div class="col-md-12">
-		
-	<!--  this.disabled= true;  xajax_wait('aviso','Grabando... un momento por favor...'); 	-->
-	<button  class='fileUpload btn btn-success  btn-block' onclick="  xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))">
-		<span><i class="fa fa-save"></i> <span class='fa'> Grabalo! </span></span>
-	</button> 
-
-		
-		</div>
-	</div>
-</div>
-</div>
-<script language="javascript">
-    
-$(function () {
-    'use strict';
-
-    var result = $('#result'),
-        exifNode = $('#exif'),
-        thumbNode = $('#thumbnail'),
-        actionsNode = $('#actions'),
-        currentFile,
-        replaceResults = function (img) {
-            var content;
-            if (!(img.src || img instanceof HTMLCanvasElement)) {
-                content = $('<span>Loading image file failed</span>');
-            } else {
-                content = $('<img />').append(img)
-                    //.attr('download', currentFile.name)
-                    .attr('src', img.src || img.toDataURL())
-                    .attr('width', '<?echo $ancho ?>px')
-                    .attr('style', 'width:100%')
-                    .attr('id', 'imagen_original');
-
-            }
-            //document.getElementById('image_output').src =  img.src;
-            result.children().replaceWith(content);
-            if (img.getContext) {
-                actionsNode.show();
-                window.setTimeout("marcar('middle-center');", 500); 
-                
-            }
-        },
-        displayImage = function (file, options) {
-            currentFile = file;
-            if (!loadImage(
-                    file,
-                    replaceResults,
-                    options
-                )) {
-                result.children().replaceWith(
-                    $('<span>Your browser does not support the URL or FileReader API.</span>')
-                );
-            }
-        },
-        displayExifData = function (exif) {
-            var thumbnail = exif.get('Thumbnail'),
-                tags = exif.getAll(),
-                table = exifNode.find('table').empty(),
-                row = $('<tr></tr>'),
-                cell = $('<td></td>'),
-                prop;
-            if (thumbnail) {
-                thumbNode.empty();
-                loadImage(thumbnail, function (img) {
-                    thumbNode.append(img).show();
-                }, {orientation: exif.get('Orientation')});
-            }
-            for (prop in tags) {
-                if (tags.hasOwnProperty(prop)) {
-                    table.append(
-                        row.clone()
-                            .append(cell.clone().text(prop))
-                            .append(cell.clone().text(tags[prop]))
-                    );
-                }
-            }
-            exifNode.show();
-        },
-        dropChangeHandler = function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            var target = e.dataTransfer || e.target,
-                file = target && target.files && target.files[0],
-                options = {
-                    maxWidth: result.width(),
-                    canvas: true
-                };
-            if (!file) {
-                return;
-            }
-            exifNode.hide();
-            thumbNode.hide();
-            loadImage.parseMetaData(file, function (data) {
-                if (data.exif) {
-                    options.orientation = data.exif.get('Orientation');
-                    displayExifData(data.exif);
-                }
-                displayImage(file, options);
-            });
-        },
-        coordinates;
-    // Hide URL/FileReader API requirement message in capable browsers:
-    if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
-        result.children().hide();
-    }
-    
-    $(document)
-        .on('dragover', function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            e.dataTransfer.dropEffect = 'copy';
-        })
-        .on('drop', dropChangeHandler);
-    $('#file-input').on('change', dropChangeHandler);
-    $('#edit').on('click', function (event) {
-        event.preventDefault();
-        var imgNode = result.find('img, canvas'),
-            img = imgNode[0];
-        imgNode.Jcrop({
-            setSelect: [40, 40, img.width - 40, img.height - 40],
-            onSelect: function (coords) {
-                coordinates = coords;
-            },
-            onRelease: function () {
-                coordinates = null;
-            }
-        }).parent().on('click', function (event) {
-            event.preventDefault();
-        });
-    });
-    $('#crop').on('click', function (event) {
-        event.preventDefault();
-        var img = result.find('img, canvas')[0];
-        if (img && coordinates) {
-            replaceResults(loadImage.scale(img, {
-                left: coordinates.x,
-                top: coordinates.y,
-                sourceWidth: coordinates.w,
-                sourceHeight: coordinates.h,
-                minWidth: result.width()
-            }));
-            coordinates = null;
-        }
-    });
-
-});
-       
-
-
-</script>
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = <?echo $ancho ?>;
-			micanvas.width =ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-   var debugConsole= document.getElementById("debugConsole");
-	var testCanvas = document.getElementById("micanvas");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	
-	debugConsole.value=canvasData;
-	var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-
-     
-$(function () {
-    'use strict';
-
-    var result = $('#result'),
-        exifNode = $('#exif'),
-        thumbNode = $('#thumbnail'),
-        actionsNode = $('#actions'),
-        currentFile,
-        replaceResults = function (img) {
-            var content;
-            if (!(img.src || img instanceof HTMLCanvasElement)) {
-                content = $('<span>Loading image file failed</span>');
-            } else {
-                content = $('<img />').append(img)
-                    //.attr('download', currentFile.name)
-                    .attr('src', img.src || img.toDataURL())
-                    .attr('width', '<?echo $ancho ?>')
-                    .attr('style', 'width:100%')
-                    .attr('id', 'imagen_original');
-
-            }
-            //document.getElementById('image_output').src =  img.src;
-            result.children().replaceWith(content);
-            if (img.getContext) {
-                actionsNode.show();
-                window.setTimeout("marcar('middle-center');", 500); 
-                
-            }
-        },
-        displayImage = function (file, options) {
-            currentFile = file;
-            if (!loadImage(
-                    file,
-                    replaceResults,
-                    options
-                )) {
-                result.children().replaceWith(
-                    $('<span>Your browser does not support the URL or FileReader API.</span>')
-                );
-            }
-        },
-        displayExifData = function (exif) {
-            var thumbnail = exif.get('Thumbnail'),
-                tags = exif.getAll(),
-                table = exifNode.find('table').empty(),
-                row = $('<tr></tr>'),
-                cell = $('<td></td>'),
-                prop;
-            if (thumbnail) {
-                thumbNode.empty();
-                loadImage(thumbnail, function (img) {
-                    thumbNode.append(img).show();
-                }, {orientation: exif.get('Orientation')});
-            }
-            for (prop in tags) {
-                if (tags.hasOwnProperty(prop)) {
-                    table.append(
-                        row.clone()
-                            .append(cell.clone().text(prop))
-                            .append(cell.clone().text(tags[prop]))
-                    );
-                }
-            }
-            exifNode.show();
-        },
-        dropChangeHandler = function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            var target = e.dataTransfer || e.target,
-                file = target && target.files && target.files[0],
-                options = {
-                    maxWidth: result.width(),
-                    canvas: true
-                };
-            if (!file) {
-                return;
-            }
-            exifNode.hide();
-            thumbNode.hide();
-            loadImage.parseMetaData(file, function (data) {
-                if (data.exif) {
-                    options.orientation = data.exif.get('Orientation');
-                    displayExifData(data.exif);
-                }
-                displayImage(file, options);
-            });
-        },
-        coordinates;
-    // Hide URL/FileReader API requirement message in capable browsers:
-    if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
-        result.children().hide();
-    }
-    
-    $(document)
-        .on('dragover', function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            e.dataTransfer.dropEffect = 'copy';
-        })
-        .on('drop', dropChangeHandler);
-    $('#file-input').on('change', dropChangeHandler);
-    $('#edit').on('click', function (event) {
-        event.preventDefault();
-        var imgNode = result.find('img, canvas'),
-            img = imgNode[0];
-        imgNode.Jcrop({
-            setSelect: [40, 40, img.width - 40, img.height - 40],
-            onSelect: function (coords) {
-                coordinates = coords;
-            },
-            onRelease: function () {
-                coordinates = null;
-            }
-        }).parent().on('click', function (event) {
-            event.preventDefault();
-        });
-    });
-    $('#crop').on('click', function (event) {
-        event.preventDefault();
-        var img = result.find('img, canvas')[0];
-        if (img && coordinates) {
-            replaceResults(loadImage.scale(img, {
-                left: coordinates.x,
-                top: coordinates.y,
-                sourceWidth: coordinates.w,
-                sourceHeight: coordinates.h,
-                minWidth: result.width()
-            }));
-            coordinates = null;
-        }
-    });
-
-});
-    
-</script>
-
-<br>
- <script src="milfs/addon/logis/js/load-image.all.min.js"></script> 
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<!--  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>  -->
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<!-- <script src="js/demo.js"></script> -->
-</div>
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 @@
-<?php
-function brigadistas_grabar_imagen($data,$identificador) {
-	$respuesta = new xajaxResponse('utf-8');
-	$control = md5("$identificador");
-	//$form_id = $fomulario["formulario_id"];
-
-	$imagen= grabar_imagen($data,$control);
-	$preview = "<img src='$_SESSION[url]/images/secure/?file=150/$imagen'>";
-	$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 <br>";
-				}
-			}
-		}
-		$twitter = $formulario['498'][0];
-	$_SESSION['logis'] = "$control";
-	$_SESSION['mensaje'] = "$twitter";
-		$preview = "
-<div class='row'>
-	<div class='center-block'>
-		<div class='thumbnail'>
-				<img  src='$_SESSION[url]/images/secure/?file=300/$imagen'>
-				<h2 class='text-center'>$twitter<h2>
-				<a download='brigadistas.png' href='$_SESSION[url]images/secure/?file=600/$imagen' >
-					<span class='btn btn-default'><i class='fa fa-download'></i> </span>
-				</a>
-				<span class='btn btn-default'>
-					<a target= 'twitter' href ='milfs/addon/logis/funciones/twitter/tuitear.php'  ><i class='fa fa-twitter'></i></a>
-				</span>
-				 <a href='S58'>
-				<span class='btn btn-default'><i class='fa fa-eye'></i> Ver</span>
-				</a>
-				<a href='#' onclick = \"javascript:location.reload(); \">
-					<span class='btn btn-default'><i class='fa fa-refresh'></i> Actualizar</span>
-				</a>
-		</div>
-	</div>
-</div>
-
-";
-$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 @@
-<?php
-
-/**
- * Use to autoload needed classes without Composer.
- *
- * @param string $class The fully-qualified class name.
- * @return void
- */
-spl_autoload_register(function ($class) {
-
-    // project-specific namespace prefix
-    $prefix = 'Abraham\\TwitterOAuth\\';
-
-    // base directory for the namespace prefix
-    $base_dir = __DIR__ . '/src/';
-
-    // does the class use the namespace prefix?
-    $len = strlen($prefix);
-    if (strncmp($prefix, $class, $len) !== 0) {
-        // no, move to the next registered autoloader
-        return;
-    }
-
-    // get the relative class name
-    $relative_class = substr($class, $len);
-
-    // replace the namespace prefix with the base directory, replace namespace
-    // separators with directory separators in the relative class name, append
-    // with .php
-    $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
-
-    // if the file exists, require it
-    if (file_exists($file)) {
-        require $file;
-    }
-});
diff --git a/milfs/addon/logis/funciones/twitter/c.png b/milfs/addon/logis/funciones/twitter/c.png
deleted file mode 100644
index 1d95ac7..0000000
Binary files a/milfs/addon/logis/funciones/twitter/c.png and /dev/null differ
diff --git a/milfs/addon/logis/funciones/twitter/config.php b/milfs/addon/logis/funciones/twitter/config.php
deleted file mode 100644
index 5f82efa..0000000
--- a/milfs/addon/logis/funciones/twitter/config.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-define('CONSUMER_KEY', 'QS1JHXs7OgJcFArJmMv117JEn');
-define('CONSUMER_SECRET', 'NoO1FUXHmTB74HUrnDbcs64XgZoroBkaPav8w0FgbK3ZYSU9PZ');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/toa/hola.php');
-
-?>
\ 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 @@
-<?php
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-/*
-define('CONSUMER_KEY', getenv('wMtivKDSAgZmkP7EZhYcfw'));
-define('CONSUMER_SECRET', getenv('AvWbHfjuSJkZYhkxsU8ojsDpNtvapBoiRUzwF3OAvbo'));
-define('OAUTH_CALLBACK', getenv('http://datos.labmde.org/milfs/toa/hola.php'));
-*/
-define('CONSUMER_KEY', 'QS1JHXs7OgJcFArJmMv117JEn');
-define('CONSUMER_SECRET', 'NoO1FUXHmTB74HUrnDbcs64XgZoroBkaPav8w0FgbK3ZYSU9PZ');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/addon/logis/funciones/twitter/hola.php');
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
-//print $connection; //print connection contents
-//$request_token = $connection->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 @@
-<?php
-session_start();
-ini_set('display_errors', 1);
-
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-require_once('config.php');
- 
-/* Crear un objeto TwitteroAuth con las credenciales de la aplicacion y el token temporal */
-//$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
-               $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
- 
-/* Solicitar a twitter el token de acceso */
-//$access_token = $connection->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * Handle setting and storing config for TwitterOAuth.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Consumer
-{
-    /** @var string  */
-    public $key;
-    /** @var string  */
-    public $secret;
-    /** @var string|null  */
-    public $callbackUrl;
-
-    /**
-     * @param string $key
-     * @param string $secret
-     * @param null $callbackUrl
-     */
-    public function __construct($key, $secret, $callbackUrl = null)
-    {
-        $this->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-/**
- * 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 HmacSha1 extends SignatureMethod
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return "HMAC-SHA1";
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function buildSignature(Request $request, Consumer $consumer, Token $token = null)
-    {
-        $signatureBase = $request->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Request
-{
-    protected $parameters;
-    protected $httpMethod;
-    protected $httpUrl;
-    public static $version = '1.0';
-
-    /**
-     * Constructor
-     *
-     * @param string     $httpMethod
-     * @param string     $httpUrl
-     * @param array|null $parameters
-     */
-    public function __construct($httpMethod, $httpUrl, array $parameters = [])
-    {
-        $parameters = array_merge(Util::parseParameters(parse_url($httpUrl, PHP_URL_QUERY)), $parameters);
-        $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * The result of the most recent API request.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-/**
- * A class for implementing a Signature Method
- * See section 9 ("Signing Requests") in the spec
- */
-abstract class SignatureMethod
-{
-    /**
-     * Needs to return the name of the Signature Method (ie HMAC-SHA1)
-     *
-     * @return string
-     */
-    abstract public function getName();
-
-    /**
-     * 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 Request $request
-     * @param Consumer $consumer
-     * @param Token $token
-     *
-     * @return string
-     */
-    abstract public function buildSignature(Request $request, Consumer $consumer, Token $token = null);
-
-    /**
-     * Verifies that a given signature is correct
-     *
-     * @param Request $request
-     * @param Consumer $consumer
-     * @param Token $token
-     * @param string $signature
-     *
-     * @return bool
-     */
-    public function checkSignature(Request $request, Consumer $consumer, Token $token, $signature)
-    {
-        $built = $this->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Token
-{
-    /** @var string */
-    public $key;
-    /** @var string */
-    public $secret;
-
-    /**
-     * @param string $key    The OAuth Token
-     * @param string $secret The OAuth Token Secret
-     */
-    public 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
-     *
-     * @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 @@
-<?php
-/**
- * The most popular PHP library for use with the Twitter OAuth REST API.
- *
- * @license MIT
- */
-namespace Abraham\TwitterOAuth;
-
-use Abraham\TwitterOAuth\Util\JsonDecoder;
-
-/**
- * TwitterOAuth class for interacting with the Twitter API.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Util
-{
-    /**
-     * @param $input
-     *
-     * @return array|mixed|string
-     */
-    public static function urlencodeRfc3986($input)
-    {
-        $output = '';
-        if (is_array($input)) {
-            $output = array_map([__NAMESPACE__ . '\Util', 'urlencodeRfc3986'], $input);
-        } elseif (is_scalar($input)) {
-            $output = rawurlencode($input);
-        }
-        return $output;
-    }
-
-    /**
-     * @param string $string
-     *
-     * @return string
-     */
-    public static function urldecodeRfc3986($string)
-    {
-        return urldecode($string);
-    }
-
-    /**
-     * 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')
-     *
-     * @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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Util;
-
-/**
- * @author louis <louis@systemli.org>
- */
-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 @@
-<?php
-session_start();
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-require_once('config.php');
- 
-/* Prepara la conexión */
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- 
-/* Solicita a twitter las credenciales temporales */
-//$request_token = $connection->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 @@
-<?php session_start(); 
-ini_set('display_errors', 'On');
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');} 
-	include_once("$_SESSION[path]/funciones/conex.php");
-echo brigadistas_grabar($_POST);
-function brigadistas_grabar($formulario) {
-	
-	$identificador = $_POST['identificador'];
-	$control = md5("$identificador");
-	$data = $_POST['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 = "
-<div class='row'>
-	<div class='center-block'>
-		<div class='thumbnail'>
-				<img  src='$_SESSION[url]/images/secure/?file=300/$imagen'>
-				<a download='brigadistas.png' href='$_SESSION[url]images/secure/?file=600/$imagen' >
-					<span class='btn btn-default'><i class='fa fa-download'></i> </span>
-				</a>
-				<span class='btn btn-default'>
-					<a onclick =\"javascript:window.location.href ='$url'; \" ><i class='fa fa-twitter'></i> </a>
-				</span>
-				 <a href='?set=$formulario[formulario_id]&embebido'>
-				<span class='btn btn-default'><i class='fa fa-eye'></i> </span>
-				</a>
-				<a href='#' onclick = \"javascript:location.reload(); \">
-					<span class='btn btn-default'><i class='fa fa-refresh'></i> </span>
-				</a>
-		</div>
-	</div>
-</div>
-
-";
-	
-	//$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 <br>";
-				}
-			}
-		}
-	
-$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;j<i.length;j+=1)i[j].call(e,l,m,h,g,d);m+=h,o=m}!d.disableImageHead&&o>6&&(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;k<j.length&&(m=j[k],"\x00"!==m);k+=1)l+=m;return l}return j},a.parseExifTag=function(b,c,d,e,f){var g=b.getUint16(d,e);f.exif[g]=a.getExifValue(b,c,d,b.getUint16(d+2,e),b.getUint32(d+4,e),e)},a.parseExifTags=function(a,b,c,d,e){var f,g,h;if(c+6>a.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 @@
-<?php
-//include("funciones/funciones.php");
-//$id_formulario = "58";
-$id_formulario = "88";
-$ancho = "600";
-
-$tags = array();
-//$tags[] = "milfs/addon/logis/images/logos/250.png";
-$tags[] = "milfs/addon/logis/images/logos/c.png";
-$imagen="";
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
-<div>
-<style type="text/css">
-.fa{
-font-size:60px important!;
-}
-#imagen_origina{
-width: <?php echo $ancho ?>px;
-}
-body{
-background-color:white !important;
-
-}
-
-
-.pin {
- text-align: center;
- /*border: solid 1px red;*/
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-.ing-touch{
-border: solid 5px white;
-width:20% !important;
-}
-
-</style>
-
-<div class='container' style='height:100%; backgroun-color:white;'  id='aviso'>
-
-		<div class='fileUpload btn btn-primary center-block'>
-		<span><h1><i class="fa fa-camera"></i> + tu Foto</h1></span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-
-<!--  <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-	<canvas id="micanvasOriginal"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin" ><a href="#arriba" onclick=" javascript: marcar('top-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:20%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin" ><a href="#medio" onclick=" javascript: marcar('middle-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><img class="ing-touch img img-circle img-responsive center-block " style="width:50%;"  src="milfs/images/oscuro40.png"></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-
-</div>
-		<div class="row " style="position:relative">
-
-		
-		<form id='formulario_brigadistas' name='formulario_brigadistas' >
-<!-- 			<input class='form-control' type='' id="debugConsole" name="debugConsole" > -->
-			<textarea class='form-control'  id="debugConsole" name="debugConsole" style="display:none;" ></textarea>
-			<input type='hidden' id="identificador" name="identificador" >
-			<input type='hidden' id="formulario_id" name="formulario_id" value="<?php echo $id_formulario; ?>">
-			<input type='hidden' id="imagen" name="imagen" value="">
-			
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-	
-	</div>
-<!-- 	 <div id='aviso'></div>  -->
-		<div class="row">
-		<div class="col-md-12">
-		
-	<!--  this.disabled= true;  xajax_wait('aviso','Grabando... un momento por favor...'); xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))	-->
-<!-- 	<button  class='fileUpload btn btn-success  btn-block' onclick="document.getElementById('formulario_brigadistas').submit(); "> -->
-	<button  class='fileUpload btn btn-success  btn-block' onclick=" xajax_wait('aviso','Grabando... un momento por favor...'); xajax_brigadistas_grabar(xajax.getFormValues('formulario_brigadistas'))	; ">
-		<span><i class="fa fa-save"></i> <span class='fa'> Grabalo! </span></span>
-	</button> 
-
-		
-		</div>
-	</div>
-</div>
-<?php  $ultimo = 	formulario_uso("$id_formulario",'','ultimo') ; 
-//echo $ultimo[1];
-echo mostrar_identificador("$ultimo[1]","","landingpage",'simple');
- ?>
-</div>
-
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = <?php echo $ancho ?>;
-			micanvas.width =ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-   var debugConsole= document.getElementById("debugConsole");
-	var testCanvas = document.getElementById("micanvas");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	
-	debugConsole.value=canvasData;
-	var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-
-
-
-$(function () {
-    'use strict';
-
-    var result = $('#result'),
-        exifNode = $('#exif'),
-        thumbNode = $('#thumbnail'),
-        actionsNode = $('#actions'),
-        currentFile,
-        replaceResults = function (img) {
-            var content;
-            if (!(img.src || img instanceof HTMLCanvasElement)) {
-                content = $('<span>Loading image file failed</span>');
-            } else {
-                content = $('<img />').append(img)
-                    //.attr('download', currentFile.name)
-                    .attr('src', img.src || img.toDataURL())
-                    .attr('width', '<?php echo $ancho ?>')
-                    .attr('style', 'width:100%')
-                    .attr('id', 'imagen_original');
-
-            }
-            //document.getElementById('image_output').src =  img.src;
-            result.children().replaceWith(content);
-            if (img.getContext) {
-                actionsNode.show();
-               /// render(img.src);
-                window.setTimeout("marcar('middle-center');", 500); 
-                
-            }
-        },
-        displayImage = function (file, options) {
-            currentFile = file;
-            if (!loadImage(
-                    file,
-                    replaceResults,
-                    options
-                )) {
-                result.children().replaceWith(
-                    $('<span>Your browser does not support the URL or FileReader API.</span>')
-                );
-            }
-        },
-
-        dropChangeHandler = function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            var target = e.dataTransfer || e.target,
-                file = target && target.files && target.files[0],
-                options = {
-                    //maxWidth: result.width(),
-                    maxWidth: <?php echo $ancho ?>,
-                    canvas: true
-                };
-            if (!file) {
-                return;
-            }
-            exifNode.hide();
-            thumbNode.hide();
-            loadImage.parseMetaData(file, function (data) {
-                if (data.exif) {
-                    options.orientation = data.exif.get('Orientation');
-                  //  displayExifData(data.exif);
-                }
-                displayImage(file, options);
-            });
-        },
-        coordinates;
-    // Hide URL/FileReader API requirement message in capable browsers:
-    if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
-        result.children().hide();
-    }
-    
-    $(document)
-        .on('dragover', function (e) {
-            e.preventDefault();
-            e = e.originalEvent;
-            e.dataTransfer.dropEffect = 'copy';
-        })
-        .on('drop', dropChangeHandler);
-    $('#file-input').on('change', dropChangeHandler);
-    $('#edit').on('click', function (event) {
-        event.preventDefault();
-        var imgNode = result.find('img, canvas'),
-            img = imgNode[0];
-        imgNode.Jcrop({
-            setSelect: [40, 40, img.width - 40, img.height - 40],
-            onSelect: function (coords) {
-                coordinates = coords;
-            },
-            onRelease: function () {
-                coordinates = null;
-            }
-        }).parent().on('click', function (event) {
-            event.preventDefault();
-        });
-    });
-    $('#crop').on('click', function (event) {
-        event.preventDefault();
-        var img = result.find('img, canvas')[0];
-        if (img && coordinates) {
-            replaceResults(loadImage.scale(img, {
-                left: coordinates.x,
-                top: coordinates.y,
-                sourceWidth: coordinates.w,
-                sourceHeight: coordinates.h,
-                minWidth: result.width()
-            }));
-            coordinates = null;
-        }
-    });
-
-});
-    
-</script>
-
-<br>
- <script src="milfs/addon/logis/js/load-image.all.min.js"></script> 
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<!--  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>  -->
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<!-- <script src="js/demo.js"></script> -->
-</div>
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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "600";
-
-$tags = array();
-$tags[] = "images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
-
-<html lang="en">
-<head>
-<!--[if IE]>
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<![endif]-->
-<meta charset="utf-8">
-<title></title>
-<meta name="description" content="JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled and/or cropped HTML img or canvas element. It also provides a method to parse image meta data to extract Exif tags and thumbnails and to restore the complete image header after resizing.">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<!-- Jcrop is not required by JavaScript Load Image, but included for the demo -->
-<!-- <link rel="stylesheet" href="css/vendor/jquery.Jcrop.css"> -->
-<!-- <link rel="stylesheet" href="css/demo.css"> -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
-<!-- Latest compiled and minified CSS -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
-
-<style type="text/css">
-.fa{
-font-size:60px;
-}
-#imagen_origina{
-width: 800px;
-}
-.pin {
- text-align: center;
- border: solid 1px red;
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-</style>
-</head>
-<body>
-<div class='container'>
-		<div class='fileUpload btn btn-primary '>
-		<span> <i class="fa fa-picture-o"></i> <span class='fa' > Imagen  <i class="fa fa-camera"></i>  </span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-</div>
-<!-- <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-<input type="hidden"  id='identificador' name='identificador'>
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-circle-o"></i></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-</div>
-</div>
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = 800;
-			micanvas.width = ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-         var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-</script>
-
-<br>
-<script src="js/load-image.all.min.js"></script>
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<script src="js/demo.js"></script>
-</body> 
-</html>
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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "58";
-$ancho = "600";
-
-$tags = array();
-$tags[] = "images/logos/c.png";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td  onclick=\" document.getElementById('marca').src='$valor' ; marcar('top-left') \" ><a href='#medio'  class='' >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr > 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-
-?>
-<!DOCTYPE HTML>
-<html lang="en">
-<head>
-<!--[if IE]>
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-<![endif]-->
-<meta charset="utf-8">
-<title></title>
-<meta name="description" content="JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled and/or cropped HTML img or canvas element. It also provides a method to parse image meta data to extract Exif tags and thumbnails and to restore the complete image header after resizing.">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<!-- Jcrop is not required by JavaScript Load Image, but included for the demo -->
-<!-- <link rel="stylesheet" href="css/vendor/jquery.Jcrop.css"> -->
-<!-- <link rel="stylesheet" href="css/demo.css"> -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
-<!-- Latest compiled and minified CSS -->
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
-
-<style type="text/css">
-.fa{
-font-size:60px;
-}
-#imagen_origina{
-width: 800px;
-}
-.pin {
- text-align: center;
- border: solid 1px red;
-  opacity: 0.5;
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-    width: 80%;
-   
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-    
-}
-</style>
-</head>
-<body>
-<div class='container'>
-		<div class='fileUpload btn btn-primary '>
-		<span> <i class="fa fa-picture-o"></i> <span class='fa' > Imagen  <i class="fa fa-camera"></i>  </span>
-		  <input class='upload'  type="file" id="file-input"  /></span>
-		  <div id="original" ></div>
-		  </div> 
-</div>
-<!-- <p><input type="file" id="file-input"></p>  -->
-<div id="actions" style="display:none;">
-<img class="center-block"  src= "<?php echo $tags[0]; ?>" style='display:none' id="marca" name="marca">
-<img class="center-block"  style='' id="image_output" name="image_output">
-<img class="center-block"  style='' id="otra_imagen" name="otra_imagen">
-<input type="hidden"  id='identificador' name='identificador'>
-
-<div id="result" class="result">
-    <p></p>
-</div>
-<a name="arriba"></a>
-<div style="position:relative">
-	<div style="position:absolute;  width:100%; height:100%;" >
-				<table style="width:100%; height:100%;" class="">
-        	<tr  >
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#arriba" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a name="medio"></a><a href="#arriba" onclick=" javascript: marcar('middle-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-circle-o"></i></td>
-        	</tr>
-        	<tr>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td class="pin"><a href="#medio" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-circle-o"></i></a></td>
-        	</tr>
-
-        	</table>
-	</div>
-	<canvas id="micanvas"  style="position:absolute" >
-	Tu navegador no soporta canvas.
-	</canvas>
-</div>
-</div>
-<script language="javascript">
-function cargaContextoCanvas(idCanvas){
-   var elemento = document.getElementById(idCanvas);
-   if(elemento && elemento.getContext){
-      var contexto = elemento.getContext('2d');
-      if(contexto){
-         return contexto;
-      }
-   }
-   return FALSE;
-}
-
-
-function marcar(ubicacion){
-	//if (ubicacion == 'arriba'){ var x = '0';var y = '0';}
-	//if (ubicacion == 'abajo'){ var x = '10';var y = '50';}
-
-
-
-
-
-   //Recibimos el elemento canvas
-   var ctx = cargaContextoCanvas('micanvas');
-
-   if(ctx){
-      //Creo una imagen conun objeto Image de Javascript
-      var img = new Image();
-      var img2 = new Image();
-      //img.src = document.getElementById("image_output2").src;
-      //readAsDataURL(
-      img.src = document.getElementById("imagen_original").src;
-      document.getElementById("imagen_original").style.display="none"; 
-      //img2.src = 'images/logos/a.png';
-      img2.src = document.getElementById("marca").src;
-      if (ubicacion =='') {
-      	ubicacion ='middle-center';
-      }
-			x = 0,
-			y = 0;
-			if(ubicacion.indexOf("top")!=-1)
-				y = 10;
-			else if(ubicacion.indexOf("middle")!=-1)
-				y = (micanvas.height - img2.height)/2;
-			else
-				y = micanvas.height-img2.height-10;
-			
-			if(ubicacion.indexOf("left")!=-1)
-				x = 10;
-			else if(ubicacion.indexOf("center")!=-1)
-				x = (micanvas.width - img2.width) /2;
-			else
-				x = micanvas.width-img2.width-10;
-				
-				      
-      
-      var proporcion = ( img.height / img.width );
-			var ancho  = 800;
-			micanvas.width = ancho;
-			micanvas.height = (micanvas.width * proporcion);
-         micanvas.setAttribute('width', ancho);
-         micanvas.setAttribute('height', micanvas.height);
-         micanvas.setAttribute('style',"width:100%");
-
-      img.onload = function(){
-         ctx.drawImage(img, 0, 0,micanvas.width,micanvas.height);
-         ctx.drawImage(img2, x, y);
-         var identificador = Math.random();
-			document.getElementById('identificador').value= identificador;
-      }
-   }
-}
-
-</script>
-
-<br>
-<script src="js/load-image.all.min.js"></script>
-<!-- <script src="js/load-image.js"></script> -->
-<!-- <script src="js/load-image-ios.js"></script> -->
-<!-- <script src="js/load-image-orientation.js"></script> -->
-<!-- <script src="js/load-image-meta.js"></script> -->
-<!-- <script src="js/load-image-exif.js"></script> -->
-<!-- <script src="js/load-image-exif-map.js"></script> -->
-<!-- jQuery and Jcrop are not required by JavaScript Load Image, but included for the demo -->
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
-<!-- <script src="js/vendor/jquery.Jcrop.js"></script> -->
-<script src="js/demo.js"></script>
-</body> 
-</html>
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 @@
-<?php
-function machitroll_grabar_imagen($data,$identificador) {
-	$respuesta = new xajaxResponse('utf-8');
-	$control = md5("$identificador");
-	//$form_id = $fomulario["formulario_id"];
-
-	$imagen= grabar_imagen($data,$control);
-	$preview = "<img src='$_SESSION[url]/images/secure/?file=150/$imagen'>";
-	$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 = "
-<div class='row'>
-	<div class='center-block'>
-		<div class='thumbnail'>
-				<img  src='$_SESSION[url]/images/secure/?file=600/$imagen'>
-				<a download='machitroll.png' href='$_SESSION[url]images/secure/?file=600/$imagen' >
-					<span class='btn btn-default'><i class='fa fa-download'></i> </span>
-				</a>
-				<span class='btn btn-default'>
-					<a onclick =\"javascript:window.location.href ='$url'; \" ><i class='fa fa-twitter'></i> </a>
-				</span>
-				 <a href='?set=$formulario[formulario_id]&embebido'>
-				<span class='btn btn-default'><i class='fa fa-eye'></i> </span>
-				</a>
-				<a href='#' onclick = \"javascript:location.reload(); \">
-					<span class='btn btn-default'><i class='fa fa-refresh'></i> </span>
-				</a>
-		</div>
-	</div>
-</div>
-
-";
-	
-	$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 <br>";
-				}
-			}
-		}
-	
-$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 )<br> ";	
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= " Array ( $c  : $V )<br> ";
-			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 .= "<li> $C - $V - $c - $v  ///$campo   -> $V $consulta $debug </li>";
-		
-			}
-													}
-}
-
-	//$resultado = "Hola mundo ".$formulario[498][0]." <textarea class='form-group'>$formulario[debugConsole]</textarea> ";
-	//$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 @@
-<?php
-//include("funciones/funciones.php");
-$id_formulario = "61";
-$ancho = "600";
-/*
-$tags = array();
-$tags[] = "milfs/addon/machitroll/images/incurable/100.png";
-$tags[] = "milfs/addon/machitroll/images/incurable/200.png";
-//$tags[] = "milfs/addon/machitroll/images/incurable/300.png";
-//$tags[] = "milfs/addon/machitroll/images/incurable/400.png";
-//$tags[] = "milfs/addon/machitroll/images/incurable/500.png";
-$tags[] = "milfs/addon/machitroll/images/rescatable/100.png";
-$tags[] = "milfs/addon/machitroll/images/rescatable/200.png";
-//$tags[] = "milfs/addon/machitroll/images/rescatable/300.png";
-//$tags[] = "milfs/addon/machitroll/images/rescatable/400.png";
-//$tags[] = "milfs/addon/machitroll/images/rescatable/500.png";
-
-
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<td><a href='#medio'  class='' onclick=\" document.getElementById('marca').src='$valor' \" >
-    					<img class='img  ' src='$valor'>
-    					</a></td>";
-}
-
-$imagen = "
-	<div class='table-responsive'>
-		<table class='table table table-condensed text-center '>
-			<tr> 
-				$imagen 
-			</tr>
-		</table>
-	</div>";
-*/
-$imagen = "	
-<div class='table-responsive'>
-<table class='table table table-condensed text-center '>
-		<tbody>
-			<tr> 
-				<td>
-					<a href='#medio' class='' onclick=\" document.getElementById('marca').src='milfs/addon/machitroll/images/incurable/100.png '\" >
-    				<img class='img  ' src='milfs/addon/machitroll/images/incurable/100.png'>
-    				</a>
-    				<br>
-    				<span>INCURABLE</span>
-    			</td>
-    			<td>
-    				<a href='#medio' class='' onclick=\" document.getElementById('marca').src='milfs/addon/machitroll/images/incurable/200.png '\" >
-    				<img class='img  ' src='milfs/addon/machitroll/images/incurable/200.png'>
-    				</a><br>
-    				<span>INCURABLE</span>
-    			</td>
-    			<td>
-    				<a href='#medio' class='' onclick=\" document.getElementById('marca').src='milfs/addon/machitroll/images/rescatable/100.png '\" >
-    				<img class='img  ' src='milfs/addon/machitroll/images/rescatable/100.png'>
-    				</a><br>
-    				<span>RESCATABLE</span>
-    			</td>
-    			<td>
-    				<a href='#medio' class='' onclick=\" document.getElementById('marca').src='milfs/addon/machitroll/images/rescatable/200.png '\" >
-    				<img class='img  ' src='milfs/addon/machitroll/images/rescatable/200.png'>
-    				</a><br>
-    				<span>RESCATABLE</span>
-    			</td> 
-			</tr>
-		</tbody>
-	</table>
-	</div>";
-
-
-?>
-  <script src="https://9b8d22ae00fff2954b7cdd00a6feb4176bc56576.googledrive.com/host/0B7R2T-U-1ZrheTlfaHNQMm0zTWM/plump_modernizr.js"></script>
- <link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cabin" type="text/css"/>
-
-<style type="text/css">
-body { 
-   font-family: 'CabinRegular'; 
-   font-weight: normal; 
-   font-style: normal; 
-}
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-}
-.fa{
-font-size:20px;
-}
-
-            #downlink_hidden , #fieldset_General , #canvas_ed , #original{
-                display:none; 
-            }
-#body{
-background-color: white;
-}
-</style>
-
-<div id='aviso'>
-
-<div id ="body" class="container-fluid">
-
-<div  id="div_machitroll" class="container">
-<span class='btn btn-primary btn-block' > <!-- <i class="fa fa-picture-o"></i> --> <span class='fa' > Elige un #MachiTroll </span></span>
-<?php echo $imagen; ?>
-<a name="medio"></a>
-	<div class="row">
-		<div class="col-md-12">
-		<div class='fileUpload btn btn-primary btn-block'>
-		<span> <i class="fa fa-picture-o"></i> <span class='fa' > Sube pantallazo</span>
-		  <input class='upload'  type="file" id="files" name="files[]" /></span>
-		  <div id="original" ></div>
-		  </div>
-		</div>
-	</div>
-	<a name="abajo"></a>
-	<div class="row">
-		<div class="col-md-12">
-		<div class='container-fluid'>
-			<table style="" class="table text-center table-responsive">
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-center')"><i class="fa fa-caret-square-o-up"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-caret-square-o-right"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-caret-square-o-right"></i></td>
-        	</tr>
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-caret-square-o-down"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-caret-square-o-right"></i></a></td>
-        	</tr>
-
-        	</table>
-        	</div>
-		</div>
-	</div>
-
-<!-- 	editor  -->
-
-	<div class='container-fluid'>
-         
-       
-		<div style="background-color:; " >
-		<img class="center-block"  style='display: none' id="marca" name="marca">
-		
-		<div id="list" style=" "></div>
-		<img id='image_output2' name='image_output2'  src="" class="" />
-		
-		<div id='div_canvas' style='display: none'> </div>
-	</div>
-</div>
-	<div class="row">
-		<div class="col-md-12">
-		
-		<form id='formulario_machitroll' name='formulario_machitroll' >
-			<input type='hidden' id="debugConsole" name="debugConsole" >
-			<input type='hidden' id="identificador" name="identificador" >
-			<input type='hidden' id="formulario_id" name="formulario_id" value="<?php echo $id_formulario; ?>">
-			<input type='hidden' id="imagen" name="imagen" value="">
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-		</div>
-	</div>
-	<div class="row">
-		<div class="col-md-12">
-		
-	<!-- 	-->
-	<button  class='fileUpload btn btn-success  btn-block' onclick=" this.disabled= true;  xajax_wait('aviso','Grabando... un momento por favor...'); saveViaAJAX();   xajax_machitroll_grabar(xajax.getFormValues('formulario_machitroll'))">
-		<span><i class="fa fa-save"></i> <span class='fa'> Grabalo! </span></span>
-	</button> 
-
-		
-		</div>
-	</div>
-	</div><!--  fin aviso  -->
-</div>
-</div>
-<script type="text/javascript">
-
-
-    function convertImageToCanvas(i, image) {
-        var canvas = document.createElement("canvas");
-        canvas.width = image.width;
-        canvas.height = image.height;
-        var ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0);
-        $("body").append(canvas);
-    };
-    
-function convertImageToCanvas(image) {
-  var canvas = document.createElement("canvas");
-  canvas.width = image.width;
-  canvas.height = image.height;
-  canvas.getContext("2d").drawImage(image, 0, 0);
- 
-  return canvas;
-}
-
-function convertCanvasToImage(canvas) {
-  var image = new Image();
-  image.src = canvas.toDataURL("image/png");
-  return image;
-}
-
-function saveViaAJAX()
-{
-	/* function loadCanvas(id) {
-        var canvas = document.createElement('canvas');
-        div = document.getElementById(id); 
-        canvas.id     = "CursorLayer";
-        canvas.width  = 1224;
-        canvas.height = 768;
-        canvas.style.zIndex   = 8;
-        canvas.style.position = "absolute";
-        canvas.style.border   = "1px solid";
-        div.appendChild(canvas)
-    }
-    */
-    
-	$(document).ready(function() {
-    function convertImageToCanvas(i, image) {
-    	var canvasOld = document.getElementById("holamundo");
-		//	canvasOld.holamundo.removeChild(canvasOld);
-document.getElementById("div_canvas").innerHTML=""
-        var canvas = document.createElement("canvas");
-        div = document.getElementById('div_canvas'); 
-        canvas.width = image.width;
-        canvas.height = image.height;
-        canvas.id = "holamundo";
-        var ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0);
-        
-        div.appendChild(canvas);
-    };
-
-    $('.watermark').each(convertImageToCanvas);
-
-});
-
-	var testCanvas = document.getElementById("holamundo");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	var debugConsole= document.getElementById("debugConsole");
-	debugConsole.value=canvasData;
-
-}
-
-</script>
-  <script>
-              function archivo(evt) {
-                  var files = evt.target.files; // FileList object
-             
-                  // Obtenemos la imagen del campo "file".
-                  for (var i = 0, f; f = files[i]; i++) {
-                    //Solo admitimos imágenes.
-                    if (!f.type.match('image.*')) {
-                        continue;
-                    }
-             
-                    var reader = new FileReader();
-             
-                    reader.onload = (function(theFile) {
-                        return function(e) {
-                          // Insertamos la imagen
-                         document.getElementById("original").innerHTML = ['<img id="image_output2" name="image_output2"   src="', e.target.result,'" title="', escape(theFile.name), '"/>'].join('');
-                         document.getElementById("list").innerHTML = ['<img style="width:<?php echo $ancho; ?>px;" id="image_output" name="image_output" class="img img-responsive watermark center-block" src="', e.target.result,'" title="', escape(theFile.name), '"/>'].join('');
-                        };
-                    })(f);
-             
-                    reader.readAsDataURL(f);
-                  }
-              }
-             
-              document.getElementById('files').addEventListener('change', archivo, false);
-              
-            /*  marca */
-
-
-(function(w){
-	var wm = (function(w){
-		var doc = w.document,
-		gcanvas = {},
-		gctx = {},
-		imgQueue = [],
-		className = "watermark",
-		watermark = false,
-		watermarkPosition = "bottom-right",
-		watermarkPath = "milfs/addon/machitroll/images/incurable/100.png?"+(+(new Date())),
-		opacity = (255/(100/50)), // 50%
-		initCanvas = function(){
-			gcanvas = doc.createElement("canvas");
-			gcanvas.style.cssText = "display:none;";
-			gctx = gcanvas.getContext("2d");
-			doc.body.appendChild(gcanvas);
-		},
-		initWatermark = function(){
-			watermark = new Image();
-			watermark.src = "";
-			watermark.src = watermarkPath;
-			
-			if(opacity != 255){
-				if(!watermark.complete)
-					watermark.onload = function(){	
-						applyTransparency();
-					}
-				else
-					applyTransparency();
-				
-
-			}else{
-				applyWatermarks();
-			}
-			
-		},
-		// function for applying transparency to the watermark
-		applyTransparency = function(){
-			var w = watermark.width || watermark.offsetWidth,
-			h = watermark.height || watermark.offsetHeight;
-			setCanvasSize(w, h);
-			gctx.drawImage(watermark, 0, 0);
-					
-			var image = gctx.getImageData(0, 0, w, h);
-			var imageData = image.data,
-			length = imageData.length;
-			for(var i=3; i < length; i+=4){  
-				imageData[i] = (imageData[i]<opacity)?imageData[i]:opacity;
-			}
-			image.data = imageData;
-			gctx.putImageData(image, 0, 0);
-			watermark.onload = null;
-			watermark.src = "";
-			watermark.src = gcanvas.toDataURL();
-			// assign img attributes to the transparent watermark
-			// because browsers recalculation doesn't work as fast as needed
-			watermark.width = w;
-			watermark.height = h;
-
-			applyWatermarks();
-		},
-		configure = function(config){
-			if(config["watermark"])
-				watermark = config["watermark"];
-			if(config["path"])
-				watermarkPath = config["path"];
-			if(config["position"])
-				watermarkPosition = config["position"];
-			if(config["opacity"])
-				opacity = (255/(100/config["opacity"]));
-			if(config["className"])
-				className = config["className"];
-			
-			initCanvas();
-			initWatermark();
-		}
-		setCanvasSize = function(w, h){
-			gcanvas.width = w;
-			gcanvas.height = h;
-		},
-		applyWatermark = function(img){
-			/*
-			var f = image.height / image.width;
-var newHeight = canvas.width * f;
-			
-			*/
-			var proporcion = ( img.height / img.width );
-			var ancho  = <?php echo $ancho; ?>;
-			//var alto_orginal = img.height;
-			//var alto = (alto_original * proporcion);
-			//alert("hola pro"+alto);
-			gcanvas.width = ancho;// || img.offsetWidth;
-			//gcanvas.width = img.width || img.offsetWidth;
-			//gcanvas.height = img.height || img.offsetHeight;
-			gcanvas.height = (gcanvas.width * proporcion);// || img.offsetHeight;
-			gctx.drawImage(img, 0, 0,ancho,gcanvas.height);
-			var position = watermarkPosition,
-			x = 0,
-			y = 0;
-			if(position.indexOf("top")!=-1)
-				y = 20;
-			else if(position.indexOf("middle")!=-1)
-				y = (gcanvas.height -watermark.height)/2;
-			else
-				y = gcanvas.height-watermark.height-20;
-			
-			if(position.indexOf("left")!=-1)
-				x = 20;
-			else if(position.indexOf("center")!=-1)
-				x = (gcanvas.width - watermark.width) /2;
-			else
-				x = gcanvas.width-watermark.width-20;
-
-
-			gctx.drawImage(watermark, x, y);
-			img.onload = null;
-	
-			img.src = gcanvas.toDataURL();
-
-		},
-		applyWatermarks = function(){
-			setTimeout(function(){
-				var els = doc.getElementsByClassName(className),
-				len = els.length;
-				while(len--){
-					var img = els[len];
-					if(img.tagName.toUpperCase() != "IMG")
-						continue;
-					
-					if(!img.complete){
-						img.onload = function(){
-							applyWatermark(this);
-						};
-					}else{
-						applyWatermark(img);
-					}
-				}
-			},10);
-		};
-		
-		
-		return {
-			init: function(config){
-				configure(config);
-			}
-		};
-	})(w);
-	w.wmark = wm;
-})(window);
-            /*  marca */
-      </script>
-
-
-
-        <script>
-
- function marcar(position){
-
-
-					var position = position;
-							
-						var original =	document.getElementById('image_output2').src ;
-						var marca =	document.getElementById('marca').src ;
-						document.getElementById('image_output').src =  original ;
-                                wmark.init({
-
-                                        /* config goes here */
-
-                                        "position": position, // default "bottom-right"
-
-                                        "opacity": 100, // default 50
-
-                                        "className": "watermark", // default "watermark"
-
-                                        "path": marca
-                                       // "path": "../milfs/addon/machitroll/images/054843d530f3c83fcdbd55e688d874ec.png"
-
-                                });
-						var identificador = Math.random();
-						document.getElementById('identificador').value= identificador;
-						
-						//window.setTimeout("saveViaAJAX()", 3000); ///
-						//saveViaAJAX(); ///
-						//xajax_wait('aviso','Subiendo imágen');
-						//window.setTimeout("xajax_machitroll_grabar_imagen(document.getElementById('debugConsole').value,"+identificador+")", 5000);
-                        
-
-                     
-
-                }
-
-        </script>
-
-
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 @@
-<?php
-function marcador_grabar($formulario) {
-	$respuesta = new xajaxResponse('utf-8');
-	$resultado = "Hola mundo ".$formulario[498][0]."--- $formulario[debugConsole] ---";
-	$imgData = str_replace(' ','+',$formulario['debugConsole']);
-$imgData =  substr($imgData,strpos($imgData,",")+1);
-$imgData = base64_decode($imgData);
-// Path where the image is going to be saved
-$nombre= MD5(rand().time());
-$filePath = "milfs/tmp/".$nombre.".png";
-// Write $imgData into the image file
-$file = fopen($filePath, 'w');
-fwrite($file, $imgData);
-fclose($file);
-
-
-	$respuesta->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 @@
-<?php
-//include("funciones/funciones.php");
-$tags = array();
-$tags[] = "milfs/addon/marcador/images/fb198e8742561eb1a9d8da9d95fddeae.png";
-$tags[] = "milfs/addon/marcador/images/fca0a98bc665e9f026d5ea4331046893.png";
-$tags[] = "milfs/addon/marcador/images/054843d530f3c83fcdbd55e688d874ec.png";
-
-$id_formulario = "58";
-
-foreach ($tags as &$valor) {
-    $imagen  .= "<a href='#'  class='list-group-item ' onclick=\" document.getElementById('marca').src='$valor' \" >
-    					<img class='img img-responsive center-block' src='$valor'>
-    					</a>";
-}
-
-$imagen = "<div class='container-fluid'><ul class='list-group list-inline'>$imagen<div><div class='clearfix'></ul></div>";
-
-
-
-
-?>
-  <script src="https://9b8d22ae00fff2954b7cdd00a6feb4176bc56576.googledrive.com/host/0B7R2T-U-1ZrheTlfaHNQMm0zTWM/plump_modernizr.js"></script>
- 
-
-<style type="text/css">
-.fileUpload {
-    position: relative;
-    overflow: hidden;
-    margin: 10px;
-}
-.fileUpload input.upload {
-    position: absolute;
-    top: 0;
-    right: 0;
-    margin: 10;
-    padding: 0;
-    font-size: 50px;
-    cursor: pointer;
-    opacity: 0;
-    filter: alpha(opacity=0);
-}
-.fa{
-font-size:50px;
-}
-
-            #downlink_hidden , #canvas_ed, #original{
-                display:none;
-            }
-#body{
-background-color: white;
-}
-</style>
-
-
-
-<div id ="body" class="container-fluid">
-<div  id="div_marcador" class="container">
-<?php echo $imagen; ?>
-
-	<div class="row">
-		<div class="col-md-12">
-		<div class='fileUpload btn btn-primary btn-block'>
-		<span> <i class="fa fa-picture-o"></i>
-		  <input class='upload'  type="file" id="files" name="files[]" /></span>
-		  <div id="original" ></div>
-		  </div>
-		</div>
-	</div>
-	<div class="row">
-		<div class="col-md-12">
-		<div class='container-fluid'>
-			<table style="" class="table text-center table-responsive">
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-center')"><i class="fa fa-caret-square-o-up"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('top-rigth')"><i class="fa fa-caret-square-o-right"></i></a></td>
-        	</tr>
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-center')"><i class="fa fa-circle-o"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('middle-rigth')"><i class="fa fa-caret-square-o-right"></i></td>
-        	</tr>
-        	<tr>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-left')"><i class="fa fa-caret-square-o-left"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-center')"><i class="fa fa-caret-square-o-down"></i></a></td>
-        	<td><a href="#abajo" onclick=" javascript: marcar('bottom-rigth')"><i class="fa fa-caret-square-o-right"></i></a></td>
-        	</tr>
-
-        	</table>
-        	</div>
-		</div>
-	</div>
-
-<!-- 	editor  -->
-
-	<div class='container-fluid'>
-         
-       <a name="abajo"></a>
-		<div style="background-color:; " >
-		<img class="center-block"  style='display: none' id="marca" name="marca">
-		
-		<div id="list" style=" "></div>
-		<img id='image_output2' name='image_output2'  src="" class="" />
-		
-		<div id='div_canvas' style='display: none'> </div>
-	</div>
-</div>
-	<div class="row">
-		<div class="col-md-12">
-		<form id='formulario_marcador' >
-			<input type='hidden' id="debugConsole" name="debugConsole" >
-			<?php $formulario = formulario_areas("$id_formulario",'campos','','');
-			echo $formulario; ?>
-		</form>
-		</div>
-	</div>
-	<div class="row">
-		<div class="col-md-12">
-		<div  class='fileUpload btn btn-success  btn-block' onclick="saveViaAJAX();  xajax_marcador_grabar(xajax.getFormValues('formulario_marcador'))"><span><i class="fa fa-save"></i></span> </div>
-		<div id='aviso'></div>
-		</div>
-	</div>
-</div>
-<script type="text/javascript">
-
-
-    function convertImageToCanvas(i, image) {
-        var canvas = document.createElement("canvas");
-        canvas.width = image.width;
-        canvas.height = image.height;
-        var ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0);
-        $("body").append(canvas);
-    };
-    
-function convertImageToCanvas(image) {
-  var canvas = document.createElement("canvas");
-  canvas.width = image.width;
-  canvas.height = image.height;
-  canvas.getContext("2d").drawImage(image, 0, 0);
- 
-  return canvas;
-}
-
-function convertCanvasToImage(canvas) {
-  var image = new Image();
-  image.src = canvas.toDataURL("image/png");
-  return image;
-}
-
-function saveViaAJAX()
-{
-	/* function loadCanvas(id) {
-        var canvas = document.createElement('canvas');
-        div = document.getElementById(id); 
-        canvas.id     = "CursorLayer";
-        canvas.width  = 1224;
-        canvas.height = 768;
-        canvas.style.zIndex   = 8;
-        canvas.style.position = "absolute";
-        canvas.style.border   = "1px solid";
-        div.appendChild(canvas)
-    }
-    */
-    
-	$(document).ready(function() {
-    function convertImageToCanvas(i, image) {
-    	var canvasOld = document.getElementById("holamundo");
-		//	canvasOld.holamundo.removeChild(canvasOld);
-document.getElementById("div_canvas").innerHTML=""
-        var canvas = document.createElement("canvas");
-        div = document.getElementById('div_canvas'); 
-        canvas.width = image.width;
-        canvas.height = image.height;
-        canvas.id = "holamundo";
-        var ctx = canvas.getContext("2d");
-        ctx.drawImage(image, 0, 0);
-        
-        div.appendChild(canvas);
-    };
-
-    $('.watermark').each(convertImageToCanvas);
-
-});
-
-	var testCanvas = document.getElementById("holamundo");
-	var canvasData = testCanvas.toDataURL("image/png");
-	var postData = "canvasData="+canvasData;
-	var debugConsole= document.getElementById("debugConsole");
-	debugConsole.value=canvasData;
-
-}
-
-</script>
-  <script>
-              function archivo(evt) {
-                  var files = evt.target.files; // FileList object
-             
-                  // Obtenemos la imagen del campo "file".
-                  for (var i = 0, f; f = files[i]; i++) {
-                    //Solo admitimos imágenes.
-                    if (!f.type.match('image.*')) {
-                        continue;
-                    }
-             
-                    var reader = new FileReader();
-             
-                    reader.onload = (function(theFile) {
-                        return function(e) {
-                          // Insertamos la imagen
-                         document.getElementById("original").innerHTML = ['<img id="image_output2" name="image_output2"   src="', e.target.result,'" title="', escape(theFile.name), '"/>'].join('');
-                         document.getElementById("list").innerHTML = ['<img style="width:max-600px;" id="image_output" name="image_output" class="img img-responsive watermark center-block" src="', e.target.result,'" title="', escape(theFile.name), '"/>'].join('');
-                        };
-                    })(f);
-             
-                    reader.readAsDataURL(f);
-                  }
-              }
-             
-              document.getElementById('files').addEventListener('change', archivo, false);
-              
-            /*  marca */
-
-
-(function(w){
-	var wm = (function(w){
-		var doc = w.document,
-		gcanvas = {},
-		gctx = {},
-		imgQueue = [],
-		className = "watermark",
-		watermark = false,
-		watermarkPosition = "bottom-right",
-		watermarkPath = "watermark.png?"+(+(new Date())),
-		opacity = (255/(100/50)), // 50%
-		initCanvas = function(){
-			gcanvas = doc.createElement("canvas");
-			gcanvas.style.cssText = "display:none;";
-			gctx = gcanvas.getContext("2d");
-			doc.body.appendChild(gcanvas);
-		},
-		initWatermark = function(){
-			watermark = new Image();
-			watermark.src = "";
-			watermark.src = watermarkPath;
-			
-			if(opacity != 255){
-				if(!watermark.complete)
-					watermark.onload = function(){	
-						applyTransparency();
-					}
-				else
-					applyTransparency();
-				
-
-			}else{
-				applyWatermarks();
-			}
-			
-		},
-		// function for applying transparency to the watermark
-		applyTransparency = function(){
-			var w = watermark.width || watermark.offsetWidth,
-			h = watermark.height || watermark.offsetHeight;
-			setCanvasSize(w, h);
-			gctx.drawImage(watermark, 0, 0);
-					
-			var image = gctx.getImageData(0, 0, w, h);
-			var imageData = image.data,
-			length = imageData.length;
-			for(var i=3; i < length; i+=4){  
-				imageData[i] = (imageData[i]<opacity)?imageData[i]:opacity;
-			}
-			image.data = imageData;
-			gctx.putImageData(image, 0, 0);
-			watermark.onload = null;
-			watermark.src = "";
-			watermark.src = gcanvas.toDataURL();
-			// assign img attributes to the transparent watermark
-			// because browsers recalculation doesn't work as fast as needed
-			watermark.width = w;
-			watermark.height = h;
-
-			applyWatermarks();
-		},
-		configure = function(config){
-			if(config["watermark"])
-				watermark = config["watermark"];
-			if(config["path"])
-				watermarkPath = config["path"];
-			if(config["position"])
-				watermarkPosition = config["position"];
-			if(config["opacity"])
-				opacity = (255/(100/config["opacity"]));
-			if(config["className"])
-				className = config["className"];
-			
-			initCanvas();
-			initWatermark();
-		}
-		setCanvasSize = function(w, h){
-			gcanvas.width = w;
-			gcanvas.height = h;
-		},
-		applyWatermark = function(img){
-			/*
-			var f = image.height / image.width;
-var newHeight = canvas.width * f;
-			
-			*/
-			var proporcion = ( img.height / img.width );
-			var ancho  = 600;
-			//var alto_orginal = img.height;
-			//var alto = (alto_original * proporcion);
-			//alert("hola pro"+alto);
-			gcanvas.width = ancho;// || img.offsetWidth;
-			//gcanvas.width = img.width || img.offsetWidth;
-			//gcanvas.height = img.height || img.offsetHeight;
-			gcanvas.height = (gcanvas.width * proporcion);// || img.offsetHeight;
-			gctx.drawImage(img, 0, 0,ancho,gcanvas.height);
-			var position = watermarkPosition,
-			x = 0,
-			y = 0;
-			if(position.indexOf("top")!=-1)
-				y = 20;
-			else if(position.indexOf("middle")!=-1)
-				y = (gcanvas.height -watermark.height)/2;
-			else
-				y = gcanvas.height-watermark.height-20;
-			
-			if(position.indexOf("left")!=-1)
-				x = 20;
-			else if(position.indexOf("center")!=-1)
-				x = (gcanvas.width - watermark.width) /2;
-			else
-				x = gcanvas.width-watermark.width-20;
-
-
-			gctx.drawImage(watermark, x, y);
-			img.onload = null;
-	
-			img.src = gcanvas.toDataURL();
-
-		},
-		applyWatermarks = function(){
-			setTimeout(function(){
-				var els = doc.getElementsByClassName(className),
-				len = els.length;
-				while(len--){
-					var img = els[len];
-					if(img.tagName.toUpperCase() != "IMG")
-						continue;
-					
-					if(!img.complete){
-						img.onload = function(){
-							applyWatermark(this);
-						};
-					}else{
-						applyWatermark(img);
-					}
-				}
-			},10);
-		};
-		
-		
-		return {
-			init: function(config){
-				configure(config);
-			}
-		};
-	})(w);
-	w.wmark = wm;
-})(window);
-            /*  marca */
-      </script>
-
-
-
-        <script>
-
- function marcar(position){
-
-
-					var position = position;
-							
-						var original =	document.getElementById('image_output2').src ;
-						var marca =	document.getElementById('marca').src ;
-						document.getElementById('image_output').src =  original ;
-                                wmark.init({
-
-                                        /* config goes here */
-
-                                        "position": position, // default "bottom-right"
-
-                                        "opacity": 100, // default 50
-
-                                        "className": "watermark", // default "watermark"
-
-                                        "path": marca
-                                       // "path": "../milfs/addon/marcador/images/054843d530f3c83fcdbd55e688d874ec.png"
-
-                                });
-
-                        
-
-                     
-
-                }
-
-        </script>
-
-
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 @@
-<?php
-function tuitealo($form,$tipo) {
-        if($tipo =='formulario') {
-                        $formulario = formulario_areas('297','campos');
-                                        $descripcion = remplacetas('form_id','id','297','descripcion',"") ;
-                                        $nombre = remplacetas('form_id','id','297','nombre',"") ;
-                                                        $formulario ="
-
-                <h1 >$nombre[0]</h1>
-                <h2>$descripcion[0]</h2>
-        <form id='form_tuitealo'  >
-         $formulario
-        <br>
-
-        <div id='tuitealo_div'>
-                <div id='tuitealo_error'></div>
-
-
-
-        <a class='btn btn-block btn-primary' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar');\">Previsualizar</a>
-        </div>
-</form>
-        </div>
-        <br>
-        <div  class='text-center'>
-        <p class='text-center'>Powered by: <a href='https://qwerty.co/milfs'>MILFS</a></p>       
-        </div>
-
-        <br>            
-
-                ";
-                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 ="<div class='alert alert-warning text-center'><h1><i class='fa fa-exclamation-triangle'></i> Hay campos vacíos</h1></div>";
-                        $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 ="<i class='fa fa-exclamation-triangle'></i> 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 ="<br> 
-
-                <div id='tuitealo_error'></div> 
-        <div class='alert alert-$alert'><div class='badge'>$largo</div>$mensaje<h1>$texto</h1></div>
-
-        <a class='btn btn-block btn-primary' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar');\">Previsualizar</a>
-        <a class='btn btn-block btn-success' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'confirmar');\">Tuitéalo</a>
-        <img style='width:1px;' src='milfs/images/100x100.png' 
-                        onload=\"
-                        document.getElementById('1301[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-                        document.getElementById('1302[0]').onkeyup = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-                        document.getElementById('1303[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-                        document.getElementById('1304[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-                        document.getElementById('1305[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-                        document.getElementById('1306[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-                        document.getElementById('1307[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-
-                        \" >
-        "; 
-
-if( $tipo =="previsualizar") {
-	$control = md5(rand(1,99999999).microtime());
-		$formulario_grabar ="
-
-		<input type='hidden'  id= '1308[0]'  name= '1308[0]' value='$texto' >
-		<input type='hidden'  id= 'form_id'  name= 'form_id' value='297' >
-		<input type='hidden'  id= 'control'  name= 'control' value='$control' >
-		
-		";
-		
-		$previsualizar .="$formulario_grabar";
-                        $respuesta->addAssign("tuitealo_div","innerHTML","$previsualizar");
-
-                }else{
-                			//			<div  onclick=\"  xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-                			//$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 @@
-<?php
-///este archivo debe estar un nivel superior al directorio milfs 
-//session_start();
-//ini_set('display_errors', 'On');
-//require ('milfs/xajax/xajax.inc.php');
-//$xajax = new xajax();
-//require ('milfs/funciones/funciones.php');
-//require("tuitealo/funciones/funciones.php");
-
-//require ('milfs/funciones/convert.php');
-//require ('milfs/funciones/login.php');
-//require_once ('milfs/includes/markdown.php');
-//require ("milfs/funciones/conex.php");
-
-
-//$xajax->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') ;
-
-
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-     <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");
-     
-
-  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="milfs/css/font-awesome/css/font-awesome.css" rel="stylesheet">
-
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<!-- <link href="milfs/css/estilos.php" rel="stylesheet">  -->
-	<script src="milfs/js/jquery.min.js"></script>
-<script src="milfs/js/jquery.timelinr-0.9.54.js"></script>
-
-<script type="text/javascript">
-//se.onchange = function(){alert('Dynamic')};
-</script>
-</head>
-<body  >
-
-<!-- /container -->
-
-	<div id ='contenedor' style=' ' class="container-fluid">
-
-	<?php echo tuitealo("",'formulario'); ?>
-
-	</div>
-	<br>
-	<br>
-  
-
-    <script src="milfs/js/bootstrap.min.js"></script> 
-    <script src="milfs/js/scripts.js"></script> 
-</body>
-</html>
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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ("includes/markdown.php");
-require ("funciones/conex.php");
-$datos['id']=$_REQUEST['id'];
-$datos['identificador']=$_REQUEST['identificador'];
-$datos['dato']=$_REQUEST['dato'];
-$datos['inicio']=$_REQUEST['inicio'];
-$datos['fin']=$_REQUEST['fin'];
-$datos['tipo']=$_REQUEST['tipo'];
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');
-} 
-header('Content-Type: application/json');
-//echo "hola  /// $_REQUEST[id] // " ;
-echo json($datos);
-
-?>
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 @@
-<?php
-
-session_start();
-// Comprobamos si existe la variable
-/*if ( !isset ( $_SESSION['id'] ) ) {
- // Si no existe 
- header("Location: ../nodisponible.jpg");
-// echo "hola mundo2";
-}*/
-if(!isset($_GET['archivo']) ){
-	 header("Location: ../images/sinimagen.jpg");
-	 
-	}else {$archivo = $_GET['archivo'];}
-	include("../includes/datos.php");
-	
-function remplacetas($tabla,$campo,$valor,$por,$and){
-	include_once("../funciones/conex.php");
-		$link=Conectarse_recursivo(); 
-
-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");
-										}else{
-										$resultado[0] = '';
-										$resultado[1] ="";
-										$resultado[2] = $consulta;
-										$resultado[3] = NULL;
-										$resultado[4] = NULL;
-										$resultado[4] = 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;
-}
-		$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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-$xajax->processRequests(); 
-
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php" rel="stylesheet">
-  <style type="text/css">
-  body {  padding: 0; margin: 0;  }
-  html, body, #cupcake-map { z-index: 10; position:absolute; top:0; bottom:0px; width:100%;  }
-  .leaflet-popup-content {
-     width:600px !important; 
-}
-  </style>
-
-<!--   <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> -->
-<!--   <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>"> -->
-</head>
-<body>
-  <body>
-
-	<div class="">
-
-      <!-- Static navbar -->
-      <div class="navbar navbar-default " role="navigation">
-        <div class="container-fluid">
-          <div class="navbar-header">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
-              <span class="sr-only">Toggle navigation</span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-            </button>
-            <a class="navbar-brand" href="#">C3P</a>
-          </div>
-          <div class="navbar-collapse collapse">
-            <ul class="nav navbar-nav">
-					<?php echo aplicaciones_listado("","nav"); ?>
-              
-            </ul>
-
-          </div><!--/.nav-collapse -->
-        </div><!--/.container-fluid -->
-      </div>
-	</div><!-- /container -->
-	<div id ='contenedor' style='  margin-top:-10px; ' class="">
-	
-	</div>
-  <div  class="center-block" style="  z-index:10000; bottom:10px;">
-  <div role='row' class='row center-block' style="width:95% ; "><?php //echo aplicacion_datos("$_REQUEST[id]");?></div>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
\ 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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-
-$xajax->processRequests(); 
-//$xajax->debugOn();
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-	<link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!-- 	<link href="css/estilos.php?dd" rel="stylesheet">
-	<link href="css/bootstrap.min.css" rel="stylesheet">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css"> -->
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-
-
-<style>
-  #map {width: 500px;height:200px;}
-  
-</style>
-
-
-    <title>I<3MILFS</title>
-
-    <!-- Bootstrap core CSS -->
-    
-<!--     <script language="JavaScript" src="escritorio/librerias/scripts.js" type="text/javascript"></script> -->
-    <!-- Custom styles for this template -->
-    
-<!--     <link href="jumbotron.css" rel="stylesheet"> -->
-
-
-    <!-- Just for debugging purposes. Don't actually copy this line! -->
-    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!--[if lt IE 9]>
-      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
-    <![endif]-->
-<?php
-    					//		if($_COOKIE['aviso'] != 'presentacion') {
-		//$onload = "onload = \"$('#muestraInfo').modal('toggle')\"";    	
-		//setcookie("aviso","presentacion",time()+60*60*24);
-					//	}
-					//($id,$form_respuesta,$control,$tipo)
-					if($_REQUEST[id] !='' OR $_REQUEST[c]){$onload ="<script type=\"text/javascript\"> xajax_formulario_modal('$_REQUEST[id]','','$_REQUEST[c]','$_REQUEST[t]')</script>";}
-?>
-</head>
-<body  >
-<?php echo $onload; ?>
-<?php if(isset($_REQUEST[f])){
-form_publico("$_REQUEST[f]");
-}
- if ( isset ( $_SESSION['id'] ) ) {	?>
-<div class="navbar navbar-inverse nav-bar-fixed-top " role="navigation">
-  <div class="container-fluid">
-    <!-- Brand and toggle get grouped for better mobile display -->
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-        <span class="sr-only">MILFS</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="#"><img src="favicon-152.png" style="width:60px" alt="MILFS" title="Multi Interactive Light Form System"></a>
-    </div>
-
-<?php  echo milfs() ?>
-  </div><!-- /.container-fluid -->
-</div>
-<?php }else{ } ?>
-
-
-
-	<div class='container'>
-		<div id='contenido'>
-		
-		<?php 
-		if(!isset($_SESSION[id_empresa])) {$id_empresa_portada='1';} else{$id_empresa_portada = $_SESSION[id_empresa];}
-	$encabezado = empresa_datos("$id_empresa_portada",'encabezado');
-	$pie = empresa_datos("$id_empresa_portada",'pie');
-	echo "$encabezado";		
-		?>
-		
-<?php if(isset($_REQUEST[change])){
-echo cambiar_password_formato("$_REQUEST[change]");
-}
-revisar_ingreso();?>		
-
-<?php echo $pie; ?>
-<img class='img-responsive center-block' src="images/logo.png" alt="MILFS">
-		</div>
-
-<?php
-/*session_start();
-// Comprobamos si existe la variable
-if ( !isset ( $_SESSION['grupo'] ) ) {
- // Si no existe 
- header("Location: includes/error.php");
-// echo "hola 2";
-} */
-
-/*if($_SESSION[prioridad] <= '2'){  }else{
- echo consultar_formulario();
- */
-/*
-formulario_importar("","");
- echo "<div id='importador' name='importador'>";
- echo "</div> ";
- */
-
-
-
-
-
-
-
-/*formulario_consultar('','');
-if($_REQUEST[id] !=''){$onload ="<script type=\"text/javascript\"> xajax_formulario_areas('despacho','$_REQUEST[id]')</script>";}
-?>
-<div id='despacho'  name='despacho' class='div_flotante'  style="top:500px; left:500px; position:absolute; "  ></div> 
-<?php echo "$onload "; 
-}///fin de la seguridad
-*/
-
-?>
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-	</div>
-
-
-       <div class="">
-	       <div class="container">
-        <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a target="_blank" href='http://qwerty.co/faq/category/19/privacidad-y-protecci%C3%B3n-de-datos.html'>Políticas de privacidad y protección de datos.</a> 
-        	</div> 
-      </div>
-      
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-      <script src="js/jquery.min.js"></script>
-  <script src="js/bootstrap.js"></script>
-  <script src="js/markdown.js"></script>
-  <script src="js/to-markdown.js"></script>
-  <script src="js/bootstrap-markdown.js"></script>
-      <script src="js/scripts.js"></script>
-<!-- <script src="js/jquery.min.js"></script> 
-<script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-<script src="js/bootstrap-markdown.js"></script>
-<script src="js/markdown.js"></script>
-<script src="js/to-markdown.js"></script>
-<script src="js/bootstrap-markdown.js"></script>
- -->
-</body>
-</html>
\ 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 @@
-<?php 
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-//require ('json.lab.php');
-require ('funciones/funciones.php');
-//require ('funciones/convert.php');
-$formulario_nombre = remplacetas('form_id','id',$_REQUEST[id],'nombre') ;
-?>
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title><?php echo $formulario_nombre[0] ?> MILFS</title>
-<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
-<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.js'></script>
-<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.css' rel='stylesheet' />
-<style>
-  body { margin:0; padding:0; }
-  #map { position:absolute; top:0; bottom:0; width:100%; }
-</style>
-</head>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-   <title><?php echo $formulario_nombre[0] ?> MILFS</title>
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="kleper" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
- <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
-
-<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.js'></script>
-<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.css' rel='stylesheet' />
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php?hghgS" rel="stylesheet">
-  <style type="text/css">
-  body {  padding: 0; margin: 0;  }
-
-  .leaflet-popup-content {     width:800px !important; }
-
-    body { margin:0; padding:0; }
-  #map { position:absolute; top:0; bottom:0; width:100%; }
-  </style>
-
-  <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
-<!--   <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>&id2=<?php echo $_REQUEST["id2"] ?>"> -->
-</head>
-<body>
-<div id='map'></div>
-<script>
-L.mapbox.accessToken = 'pk.eyJ1IjoiaHVtYW5vIiwiYSI6IlgyRTFNdFEifQ.OmQBXmcVg_zq-vMpr8P5vQ';
-var map = L.mapbox.map('map', 'humano.jki5hno0')
-    .setView([40, -74.50], 8);
-
-var geoJson = [ <?php echo imprime_geojson("$_REQUEST[id]","$_REQUEST[id2]");?> ];
-var myLayer = L.mapbox.featureLayer()
-  .setGeoJSON(geoJson)
-  .addTo(map);
-  
-myLayer.on('layeradd', function(e) {
-	    var marker = e.layer,
-        feature = marker.feature;
-           // Create custom popup content
-    var popupContent =  '' + feature.properties.description + '';
-
-    // http://leafletjs.com/reference.html#popup
-    marker.bindPopup(popupContent,{
-        closeButton: false,
-        minWidth: 320
-    });
-
-         marker.setIcon(L.icon(feature.properties.icon));
-
-});
- 
-map.fitBounds(myLayer.getBounds());
-myLayer.setGeoJSON(geoJson);
-</script>
-<div  class="panel-map" id='panel_map_<?php echo $id ?>' style="z-index: 2 !important;">
-  <div role='row' class='row center-block' style="; "><?php echo mapa_ficha("$_REQUEST[id]");?></div>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
\ 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 @@
-<?php 
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-//require ('json.lab.php');
-require ('funciones/funciones.php');
-//require ('funciones/convert.php');
-$formulario_nombre = remplacetas('form_id','id',$_REQUEST[id],'nombre') ;
-?>
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title><?php echo $formulario_nombre[0] ?> MILFS</title>
-<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
-<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.js'></script>
-<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.css' rel='stylesheet' />
-<style>
-  body { margin:0; padding:0; }
-  #map { position:absolute; top:0; bottom:0; width:100%; }
-</style>
-</head>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-   <title><?php echo $formulario_nombre[0] ?> MILFS</title>
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-     <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
- <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
-
-<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.js'></script>
-<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.css' rel='stylesheet' />
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php?hghgS" rel="stylesheet">
-  <style type="text/css">
-  body {  padding: 0; margin: 0;  }
-
-  .leaflet-popup-content {     width:600px !important; }
-
-    body { margin:0; padding:0; }
-  #map { position:absolute; top:0; bottom:0; width:100%; }
-  </style>
-
-  <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
-  <link rel="points" type="application/json" href="json.lab.php?id=<?php echo $_REQUEST["id"] ?>">
-</head>
-<body >
-<audio id="foobar" src="images/audios/audio6.mp3" preload="auto" autoplay loop controls></audio>
-<style>
-.info {
-	width: 800px;
-	height: 90%;
-	overflow-y: auto;
-	overflow-x: hidden;
-  position:absolute;
-  top:100px;
-  left:50px;
-  }
-  .info div {
-    
-    border-radius:3px;
-    }
-</style>
-<div id='map'></div>
-<div id='info' class='info' draggable="true"></div>
-
-<script>
-L.mapbox.accessToken = 'pk.eyJ1IjoiaHVtYW5vIiwiYSI6IlgyRTFNdFEifQ.OmQBXmcVg_zq-vMpr8P5vQ';
-var map = L.mapbox.map('map', 'humano.jki5hno0')
-     .setView([40, -74.50], 15);
-
-// As with any other AJAX request, this technique is subject to the Same Origin Policy:
-// http://en.wikipedia.org/wiki/Same_origin_policy
-var featureLayer = L.mapbox.featureLayer()
-    //.loadURL('json.lab.php?id=<?php echo $id ?>')
-     .loadURL('json.lab.php?id=<?php echo $_REQUEST[id] ?>&id2=<?php echo $_REQUEST[id2] ?>')
-    // Once this layer loads, we set a timer to load it again in a few seconds.
-    .on('ready', run)
-    .addTo(map);
-// Add custom popups to each using our custom feature properties
-featureLayer.on('layeradd', function(e) {
-    var marker = e.layer,
-        feature = marker.feature;
-
-    // Create custom popup content
-    var popupContent =  '' + feature.properties.name + '' +
-                            
-                            feature.properties.title +'';
-	var aviso = feature.properties.name;
-	          info.innerHTML = aviso;
-    // http://leafletjs.com/reference.html#popup
-    marker.bindPopup(popupContent,{
-        closeButton: false,
-        minWidth: 320
-    });
-      marker.setIcon(L.icon(feature.properties.icon));
-});
-function run() {
-    featureLayer.eachLayer(function(l) {
-        map.panTo(l.getLatLng());
-    });
-    window.setTimeout(function() {
-        //featureLayer.loadURL('json.lab.php?id=<?php echo $_REQUEST[id] ?>');
-        featureLayer.loadURL('json.lab.php?id=<?php echo $_REQUEST[id] ?>&id2=<?php echo $_REQUEST[id2] ?>');
-        //featureLayer.loadURL('https://wanderdrone.appspot.com/');
-        //alert("Hola");
-          info.innerHTML = aviso;
-    },15000);
-}
-</script>
-<div  class="panel-map" id='panel_map_<?php echo $_REQUEST[id] ?>' style="z-index: 2 !important;">
-  <div role='row' class='row center-block' style="; "><?php echo mapa_ficha("$_REQUEST[id]");?></div>
-  <a onClick="window.location.reload()">*</a>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
\ 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. `<select>`\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. `<select>`\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 `<body>`.\n@body-bg:               #fff;\n//** Global text color on `<body>`.\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 `<code>`, `<kbd>`, and `<pre>`.\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 `<body>`.\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 `<th>`s and `<td>`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//** `<input>` background color\n@input-bg:                       #fff;\n//** `<input disabled>` background color\n@input-bg-disabled:              @gray-lighter;\n\n//** Text color for `<input>`s\n@input-color:                    @gray;\n//** `<input>` border color\n@input-border:                   #ccc;\n//** `<input>` 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// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\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 <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  margin-bottom: 20px;\n  padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: @list-group-bg;\n  border: 1px solid @list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    .border-top-radius(@list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    .border-bottom-radius(@list-group-border-radius);\n  }\n\n  // Align badges within list items\n  > .badge {\n    float: right;\n  }\n  > .badge + .badge {\n    margin-right: 5px;\n  }\n}\n\n\n// Linked list items\n//\n// Use anchor elements instead of `li`s or `div`s to create linked list items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item {\n  color: @list-group-link-color;\n\n  .list-group-item-heading {\n    color: @list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    background-color: @list-group-hover-bg;\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: @list-group-active-color;\n    background-color: @list-group-active-bg;\n    border-color: @list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-active-text-color;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-height-computed;\n  background-color: @panel-bg;\n  border: 1px solid transparent;\n  border-radius: @panel-border-radius;\n  .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n  padding: @panel-body-padding;\n  &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  .border-top-radius((@panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil((@font-size-base * 1.125));\n  color: inherit;\n\n  > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: 10px 15px;\n  background-color: @panel-footer-bg;\n  border-top: 1px solid @panel-inner-border;\n  .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        .border-top-radius((@panel-border-radius - 1));\n      }\n    }\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        .border-bottom-radius((@panel-border-radius - 1));\n      }\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    .border-top-radius((@panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    .border-bottom-radius((@panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive {\n    border-top: 1px solid @table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\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    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    border: 0;\n    margin-bottom: 0;\n  }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: @line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: @panel-border-radius;\n    overflow: hidden; // crop contents when collapsed\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n    + .panel-collapse .panel-body {\n      border-top: 1px solid @panel-inner-border;\n    }\n  }\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid @panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @well-bg;\n  border: 1px solid @well-border;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0,0,0,.15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: @border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-size-base * 1.5);\n  font-weight: @close-font-weight;\n  line-height: 1;\n  color: @close-color;\n  text-shadow: @close-text-shadow;\n  .opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: @close-color;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(.5);\n  }\n\n  // Additional properties for button version\n  // iOS requires the button element instead of an anchor tag.\n  // If you want the anchor version, it requires `href=\"#\"`.\n  button& {\n    padding: 0;\n    cursor: pointer;\n    background: transparent;\n    border: 0;\n    -webkit-appearance: none;\n  }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  display: none;\n  overflow: auto;\n  overflow-y: scroll;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    .translate(0, -25%);\n    .transition-transform(~\"0.3s ease-out\");\n  }\n  &.in .modal-dialog { .translate(0, 0)}\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: @modal-content-bg;\n  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid @modal-content-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 3px 9px rgba(0,0,0,.5));\n  background-clip: padding-box;\n  // Remove focus outline from opened modal\n  outline: none;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal-background;\n  background-color: @modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { .opacity(0); }\n  &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: @modal-title-padding;\n  border-bottom: 1px solid @modal-header-border-color;\n  min-height: (@modal-title-padding + @modal-title-line-height);\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  margin-top: 15px;\n  padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid @modal-footer-border-color;\n  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: @modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    .box-shadow(0 5px 15px rgba(0,0,0,.5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n  .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindex-tooltip;\n  display: block;\n  visibility: visible;\n  font-size: @font-size-small;\n  line-height: 1.4;\n  .opacity(0);\n\n  &.in     { .opacity(@tooltip-opacity); }\n  &.top    { margin-top:  -3px; padding: @tooltip-arrow-width 0; }\n  &.right  { margin-left:  3px; padding: 0 @tooltip-arrow-width; }\n  &.bottom { margin-top:   3px; padding: @tooltip-arrow-width 0; }\n  &.left   { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: @tooltip-max-width;\n  padding: 3px 8px;\n  color: @tooltip-color;\n  text-align: center;\n  text-decoration: none;\n  background-color: @tooltip-bg;\n  border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip {\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    bottom: 0;\n    left: @tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    right: @tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-right-color: @tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-left-color: @tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    left: @tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    right: @tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindex-popover;\n  display: none;\n  max-width: @popover-max-width;\n  padding: 1px;\n  text-align: left; // Reset given new insertion method\n  background-color: @popover-bg;\n  background-clip: padding-box;\n  border: 1px solid @popover-fallback-border-color;\n  border: 1px solid @popover-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n  // Overrides for proper insertion\n  white-space: normal;\n\n  // Offset the popover to account for the popover arrow\n  &.top     { margin-top: -@popover-arrow-width; }\n  &.right   { margin-left: @popover-arrow-width; }\n  &.bottom  { margin-top: @popover-arrow-width; }\n  &.left    { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n  margin: 0; // reset heading margin\n  padding: 8px 14px;\n  font-size: @font-size-base;\n  font-weight: normal;\n  line-height: 18px;\n  background-color: @popover-title-bg;\n  border-bottom: 1px solid darken(@popover-title-bg, 5%);\n  border-radius: 5px 5px 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n  &,\n  &:after {\n    position: absolute;\n    display: block;\n    width: 0;\n    height: 0;\n    border-color: transparent;\n    border-style: solid;\n  }\n}\n.popover > .arrow {\n  border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n  border-width: @popover-arrow-width;\n  content: \"\";\n}\n\n.popover {\n  &.top > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-bottom-width: 0;\n    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: @popover-arrow-outer-color;\n    bottom: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      bottom: 1px;\n      margin-left: -@popover-arrow-width;\n      border-bottom-width: 0;\n      border-top-color: @popover-arrow-color;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-left-width: 0;\n    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      left: 1px;\n      bottom: -@popover-arrow-width;\n      border-left-width: 0;\n      border-right-color: @popover-arrow-color;\n    }\n  }\n  &.bottom > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: @popover-arrow-outer-color;\n    top: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      top: 1px;\n      margin-left: -@popover-arrow-width;\n      border-top-width: 0;\n      border-bottom-color: @popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      right: 1px;\n      border-right-width: 0;\n      border-left-color: @popover-arrow-color;\n      bottom: -@popover-arrow-width;\n    }\n  }\n\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#browsers\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n  width: device-width;\n}\n\n\n// Visibility utilities\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  .responsive-invisibility();\n}\n\n.visible-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-visibility();\n  }\n}\n.visible-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-visibility();\n  }\n}\n.visible-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-visibility();\n  }\n}\n.visible-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-visibility();\n  }\n}\n\n.hidden-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-invisibility();\n  }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n.visible-print {\n  .responsive-invisibility();\n\n  @media print {\n    .responsive-visibility();\n  }\n}\n\n.hidden-print {\n  @media print {\n    .responsive-invisibility();\n  }\n}\n"]}
\ No newline at end of file
diff --git a/milfs/css/bootstrap.min.css b/milfs/css/bootstrap.min.css
deleted file mode 100644
index 679272d..0000000
--- a/milfs/css/bootstrap.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)
- */
-
-/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-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:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}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{border:0;padding: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-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!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{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;display:inline-block;max-width:100%;height:auto}.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;margin:-1px;padding:0;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:400;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;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;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;border-right:5px solid #eee;border-left:0;text-align:right}.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;background-color:#f9f2f4;white-space:nowrap;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;word-break:break-all;word-wrap:break-word;color:#333;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{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-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-left:15px;padding-right: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;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.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-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.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{padding:0;margin:0;border:0;min-width: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:700}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;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;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;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;vertical-align:middle;font-weight:400;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;border-color:#3c763d;background-color:#dff0d8}.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;border-color:#8a6d3b;background-color:#fcf8e3}.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;border-color:#a94442;background-color:#f2dede}.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;margin-top:0;margin-bottom:0;padding-left: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{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-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;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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{outline:0;background-image:none;-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{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.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{color:#428bca;font-weight:400;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-left:0;padding-right: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:400;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;list-style:none;font-size:14px;background-color:#fff;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);background-clip:padding-box}.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:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.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;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.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:0}.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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right: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-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.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-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;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-left:0;padding-right: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:400;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-bottom-right-radius:0;border-top-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-bottom-left-radius:0;border-top-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{margin-bottom:0;padding-left: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;background-color:transparent;cursor:not-allowed}.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;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.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{text-align:center;margin-bottom:5px}.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-right-radius:0;border-top-left-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;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.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-left:0;padding-right: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;padding:15px;font-size:18px;line-height:20px;height:50px}.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;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.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{margin-left:-15px;margin-right:-15px;padding:10px 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);margin-top:8px;margin-bottom:8px}@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;margin-top:0;margin-bottom:0;padding-left: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;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom: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-right-radius:0;border-top-left-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-left:15px;margin-right: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{background-color:#e7e7e7;color:#555}@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{background-color:#080808;color:#fff}@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{content:"/\00a0";padding:0 5px;color:#ccc}.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;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-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;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.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-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-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-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.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;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;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:gray}.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:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;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-left:60px;padding-right: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-left:auto;margin-right: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:700}.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{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.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{overflow:hidden;height:20px;margin-bottom:20px;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{margin-bottom:20px;padding-left:0}.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-right-radius:4px;border-top-left-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-right-radius:3px;border-top-left-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-right-radius:3px;border-top-left-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-right-radius:3px;border-top-left-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{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.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:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-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}.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;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.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;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.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{bottom:0;right:5px;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;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);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;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{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;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{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-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;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.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%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;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%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.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%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;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{left:20%;right: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{content:" ";display:table}.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-left:auto;margin-right: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}}
\ No newline at end of file
diff --git a/milfs/css/carousel.css b/milfs/css/carousel.css
deleted file mode 100644
index 3e02cca..0000000
--- a/milfs/css/carousel.css
+++ /dev/null
@@ -1,111 +0,0 @@
-/* GLOBAL STYLES
--------------------------------------------------- */
-/* Padding below the footer and lighter body text */
-
-
-/* CUSTOMIZE THE NAVBAR
--------------------------------------------------- */
-
-/* Special class on .container surrounding .navbar, used for positioning it into place. */
-
-
-
-/* CUSTOMIZE THE CAROUSEL
--------------------------------------------------- */
-
-/* Carousel base class */
-.carousel {
-  height: 500px;
-  margin-bottom: 60px;
-}
-/* Since positioning the image, we need to help out the caption */
-.carousel-caption {
-  z-index: 10;
-  
-}
-
-/* Declare heights because of positioning of img element */
-.carousel .item {
-  height: 500px;
-  background-color: black;
-}
-.carousel-inner > .item > img {
-  position: absolute;
-  top: 0;
-  margin-left: auto;
- 
-  height: 500px;
-}
-
-
-/* MARKETING CONTENT
--------------------------------------------------- */
-
-/* Center align the text within the three columns below the carousel */
-.marketing .col-lg-4 {
-  margin-bottom: 20px;
-  text-align: center;
-}
-.marketing h2 {
-  font-weight: normal;
-}
-.marketing .col-lg-4 p {
-  margin-right: 10px;
-  margin-left: 10px;
-}
-
-
-/* Featurettes
-------------------------- */
-
-.featurette-divider {
-  margin: 80px 0; /* Space out the Bootstrap <hr> more */
-}
-
-/* Thin out the marketing headings */
-.featurette-heading {
-  font-weight: 300;
-  line-height: 1;
-  letter-spacing: -1px;
-}
-
-
-/* RESPONSIVE CSS
--------------------------------------------------- */
-
-@media (min-width: 768px) {
-  /* Navbar positioning foo */
-  .navbar-wrapper {
-    margin-top: 20px;
-  }
-  .navbar-wrapper .container {
-    padding-right: 15px;
-    padding-left: 15px;
-  }
-  .navbar-wrapper .navbar {
-    padding-right: 0;
-    padding-left: 0;
-  }
-
-  /* The navbar becomes detached from the top, so we round the corners */
-  .navbar-wrapper .navbar {
-    border-radius: 4px;
-  }
-
-  /* Bump up size of carousel content */
-  .carousel-caption p {
-    margin-bottom: 20px;
-    font-size: 18px;
-    line-height: 1;
-  }
-
-  .featurette-heading {
-    font-size: 50px;
-  }
-}
-
-@media (min-width: 992px) {
-  .featurette-heading {
-    margin-top: 120px;
-  }
-}
\ No newline at end of file
diff --git a/milfs/css/dragones.min.css b/milfs/css/dragones.min.css
deleted file mode 100644
index 3e55c1f..0000000
--- a/milfs/css/dragones.min.css
+++ /dev/null
@@ -1,11 +0,0 @@
-@import url("https://fonts.googleapis.com/css?family=News+Cycle:400,700");/*!
- * bootswatch v3.3.6
- * Homepage: http://bootswatch.com
- * Copyright 2012-2016 Thomas Park
- * Licensed under MIT
- * Based on Bootstrap
-*//*!
- * Bootstrap v3.3.6 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,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-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}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{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]: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}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@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.woff2') format('woff2'),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:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-euro:before,.glyphicon-eur: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"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-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:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Georgia,"Times New Roman",Times,serif;font-size:15px;line-height:1.42857143;color:#777777;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#eb6864;text-decoration:none}a:hover,a:focus{color:#e22620;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{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700;line-height:1.1;color:#000000}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:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}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:10.5px;margin-bottom:10.5px}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:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#eb6864}a.text-primary:hover,a.text-primary:focus{color:#e53c37}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#eb6864}a.bg-primary:hover,a.bg-primary:focus{background-color:#e53c37}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}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;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #eeeeee}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:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.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'}address{margin-bottom:21px;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;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;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{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-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-left:15px;padding-right: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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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:auto}.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{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.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 #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.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 #dddddd}.table .table{background-color:#ffffff}.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 #dddddd}.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 #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.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:hover>.active,.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:hover>.success,.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:hover>.info,.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:hover>.warning,.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:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.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{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#777777;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;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;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:9px;font-size:15px;line-height:1.42857143;color:#777777}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.42857143;color:#777777;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-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,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:56px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-lg{height:56px;line-height:56px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:56px;line-height:56px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:56px;min-height:40px;padding:15px 16px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:56px;height:56px;line-height:56px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#b7b7b7}@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 .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.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;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:15px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.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,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#999999;border-color:#999999}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#808080;border-color:#595959}.btn-default:hover{color:#ffffff;background-color:#808080;border-color:#7a7a7a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#808080;border-color:#7a7a7a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#6e6e6e;border-color:#595959}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.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.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#999999;border-color:#999999}.btn-default .badge{color:#999999;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#eb6864;border-color:#eb6864}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#e53c37;border-color:#b81c18}.btn-primary:hover{color:#ffffff;background-color:#e53c37;border-color:#e4332e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#e53c37;border-color:#e4332e}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#dc221c;border-color:#b81c18}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.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.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#eb6864;border-color:#eb6864}.btn-primary .badge{color:#eb6864;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#22b24c;border-color:#22b24c}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#1a873a;border-color:#0e471e}.btn-success:hover{color:#ffffff;background-color:#1a873a;border-color:#187f36}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#1a873a;border-color:#187f36}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#14692d;border-color:#0e471e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.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.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#22b24c;border-color:#22b24c}.btn-success .badge{color:#22b24c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#336699;border-color:#336699}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#264c73;border-color:#132639}.btn-info:hover{color:#ffffff;background-color:#264c73;border-color:#24476b}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#264c73;border-color:#24476b}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#1d3b58;border-color:#132639}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.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.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#336699;border-color:#336699}.btn-info .badge{color:#336699;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f5e625;border-color:#f5e625}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ddce0a;border-color:#948a07}.btn-warning:hover{color:#ffffff;background-color:#ddce0a;border-color:#d3c50a}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ddce0a;border-color:#d3c50a}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#bbae09;border-color:#948a07}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.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.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#f5e625;border-color:#f5e625}.btn-warning .badge{color:#f5e625;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#f57a00;border-color:#f57a00}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c26100;border-color:#763b00}.btn-danger:hover{color:#ffffff;background-color:#c26100;border-color:#b85c00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c26100;border-color:#b85c00}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#9e4f00;border-color:#763b00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.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.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#f57a00;border-color:#f57a00}.btn-danger .badge{color:#f57a00;background-color:#ffffff}.btn-link{color:#eb6864;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.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:#e22620;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:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.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 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.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;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 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:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#eb6864}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#eb6864}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.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+.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,.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-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-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:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,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-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;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-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;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:56px;line-height:56px}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:31px;padding:5px 10px;font-size:13px;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:31px;line-height:31px}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:8px 12px;font-size:15px;font-weight:normal;line-height:1;color:#777777;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:19px;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-bottom-right-radius:0;border-top-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-bottom-left-radius:0;border-top-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{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left: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:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#eb6864}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.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:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.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 #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;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:#ffffff}}.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:#ffffff;background-color:#eb6864}.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{text-align:center;margin-bottom:5px}.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 #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;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:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.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;padding:19.5px 15px;font-size:19px;line-height:21px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.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:9.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;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:21px}.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:19.5px;padding-bottom:19.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:10.5px;margin-bottom:10.5px}@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 .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.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;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:10.5px;margin-bottom:10.5px}.navbar-btn.btn-sm{margin-top:14.5px;margin-bottom:14.5px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:19.5px;margin-bottom:19.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#eeeeee}.navbar-default .navbar-brand{color:#000000}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-text{color:#000000}.navbar-default .navbar-nav>li>a{color:#000000}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#eeeeee}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#eeeeee;color:#000000}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#000000}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#000000;background-color:#eeeeee}.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:#000000;background-color:#eeeeee}.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:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#000000}.navbar-default .navbar-link:hover{color:#000000}.navbar-default .btn-link{color:#000000}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#000000}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#eb6864;border-color:#e53c37}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#e53c37}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#e53c37}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#e74944}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#e74b47;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e53c37}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e53c37}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#e74b47}.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:#ffffff;background-color:#e74b47}.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:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#eb6864;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:2;color:#e22620;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:3;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.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:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#eb6864}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#e53c37}.label-success{background-color:#22b24c}.label-success[href]:hover,.label-success[href]:focus{background-color:#1a873a}.label-info{background-color:#336699}.label-info[href]:hover,.label-info[href]:focus{background-color:#264c73}.label-warning{background-color:#f5e625}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ddce0a}.label-danger{background-color:#f57a00}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c26100}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#eb6864;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#eb6864;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#eb6864}.thumbnail .caption{padding:9px;color:#777777}.alert{padding:15px;margin-bottom:21px;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,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-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{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#eb6864;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#22b24c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#336699}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f5e625}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#f57a00}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#eb6864;border-color:#eb6864}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#ffffff}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr: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,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-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,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.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{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;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,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#777777;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#777777}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#eb6864}.panel-primary>.panel-heading{color:#ffffff;background-color:#eb6864;border-color:#eb6864}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eb6864}.panel-primary>.panel-heading .badge{color:#eb6864;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eb6864}.panel-success{border-color:#22b24c}.panel-success>.panel-heading{color:#468847;background-color:#22b24c;border-color:#22b24c}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#22b24c}.panel-success>.panel-heading .badge{color:#22b24c;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#22b24c}.panel-info{border-color:#336699}.panel-info>.panel-heading{color:#3a87ad;background-color:#336699;border-color:#336699}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#336699}.panel-info>.panel-heading .badge{color:#336699;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#336699}.panel-warning{border-color:#f5e625}.panel-warning>.panel-heading{color:#c09853;background-color:#f5e625;border-color:#f5e625}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f5e625}.panel-warning>.panel-heading .badge{color:#f5e625;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f5e625}.panel-danger{border-color:#f57a00}.panel-danger>.panel-heading{color:#b94a48;background-color:#f57a00;border-color:#f57a00}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f57a00}.panel-danger>.panel-heading .badge{color:#f57a00;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f57a00}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.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,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{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:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;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:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,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{margin:0;padding:8px 14px;font-size:15px;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{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.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;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;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%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,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:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd: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-header:before,.modal-header:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd: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-header:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right: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}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !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 !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{font-size:18px;font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700}.navbar-default .badge{background-color:#000;color:#fff}.navbar-inverse .badge{background-color:#fff;color:#eb6864}.navbar-brand{font-size:inherit;font-weight:700;text-transform:uppercase}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f57a00}.has-warning .form-control,.has-warning .form-control:focus{border-color:#f57a00}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#eb6864}.has-error .form-control,.has-error .form-control:focus{border-color:#eb6864}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#22b24c}.has-success .form-control,.has-success .form-control:focus{border-color:#22b24c}.badge{padding-bottom:4px;vertical-align:3px;font-size:10px}.jumbotron h1,.jumbotron h2,.jumbotron h3,.jumbotron h4,.jumbotron h5,.jumbotron h6{font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700;color:#000}.panel-primary .panel-title,.panel-success .panel-title,.panel-warning .panel-title,.panel-danger .panel-title,.panel-info .panel-title{color:#fff}
\ No newline at end of file
diff --git a/milfs/css/embebido.css b/milfs/css/embebido.css
deleted file mode 100644
index 122493a..0000000
--- a/milfs/css/embebido.css
+++ /dev/null
@@ -1,43 +0,0 @@
-body {
-background: #000000;
-color: #fff;
-border: none;
-}
-h2.formulario_descripcion {
-display: none;
-}
-span.label.label-default {
-display: none;
-}
-label.control-label {
-margin: 0 15px 45px 16px;
-display: block;
-}
-div.form-group input.form-control {
-margin: 10px 0;
-height: 40px;
-font-size: 18px;
-border-radius: 0;
-}
-div.form-group textarea.form-control {
-border-radius: 0;
-font-size: 18px;
-}
-.btn.btn-block.btn-success {
-border-radius: 0;
-background: #fff;
-color: #000000;
-padding: 15px;
-border: none;
-font-size: 18px;
-}
-.btn.btn-block.btn-danger {
-border-radius: 0;
-background: #717171;
-border: none;
-padding: 18px;
-}
-div.alert-success {
-color: #FFFFFF;
-background-color: #000000;
-border-color: #000000
\ No newline at end of file
diff --git a/milfs/css/error_log b/milfs/css/error_log
deleted file mode 100644
index 79eb965..0000000
--- a/milfs/css/error_log
+++ /dev/null
@@ -1 +0,0 @@
-[18-Oct-2014 15:57:24 America/Chicago] PHP Warning:  mysqli_connect(): Access denied for user 'root'@'localhost' (using password: YES) in /home/iiqwebgd/public_html/milfs/css/estilos.php on line 45
diff --git a/milfs/css/estilos.php b/milfs/css/estilos.php
deleted file mode 100644
index aa1a04e..0000000
--- a/milfs/css/estilos.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-header("Content-Type: text/css");
-echo dibuja_clase();
-
-function dibuja_clase(){
-
-$link=Conectarse();
-mysqli_query("SET NAMES 'utf8'");
-$consulta = "SELECT elemento FROM estilos GROUP BY elemento";
-$sql=mysqli_query($consulta,$link);
-
-
-if (mysqli_num_rows($sql)!='0'){
-	mysqli_data_seek($sql, 0);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-$elemento= dibuja_elemento($row[elemento]);
-$resultado .= "$row[elemento]{
-$elemento
-}\n";
-															}
-										}
-										print $resultado;
-return;
-}
-
-function dibuja_elemento($elemento){
-	$link=Conectarse();
-		mysqli_query("SET NAMES 'utf8'");
-		$consulta = "SELECT * FROM estilos WHERE elemento = '$elemento' ";
-		$sql=mysqli_query($consulta,$link);
-	if (mysqli_num_rows($sql)!='0'){
-		while( $row = mysqli_fetch_array( $sql ) ) {
-			if($row[color] !=='') {$color = "$row[color]";}else{$color="";}
-			$resultado .= "$row[label]:$row[valor] $color ;\n";
-																}
-
-										}
-return $resultado;
-}
-
-
-function Conectarse(){
-$servidor = "";
-$usuario = "";
-$password = "";
-$db = "";
-
-	if ( !isset ( $link ) ) {
-
-	@include("includes/datos.php");
-   		if(!isset($db)) {
-   include("../milfs/includes/datos.php");
-   		}
-
-   if (!($link=mysqli_connect($servidor,$usuario,$password,$db)))
-   {
-      echo "Error conectando a la base de datos.";
-      exit();
-   }
- /*  if (!mysqli_select_db($db,$link))
-   {
-      echo "Error seleccionando la base de datos.";
-      exit();
-   }
-   */
-	$_SESSION['path']= $path_instalacion;
-	$_SESSION['path_images_secure']= $path_images_secure;
-	$_SESSION['url']= $url;
-	$_SESSION['site']= $site;
-	$_SESSION['analizador']= "$codigo_analizador";
-	$_SESSION['upload_size']= $upload_size;
-   return $link;
-   }
-}
-
- ?>
diff --git a/milfs/css/font-awesome/css/font-awesome.css b/milfs/css/font-awesome/css/font-awesome.css
deleted file mode 100644
index b348de1..0000000
--- a/milfs/css/font-awesome/css/font-awesome.css
+++ /dev/null
@@ -1,1338 +0,0 @@
-/*!
- *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('../fonts/fontawesome-webfont.eot?v=4.0.3');
-  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-.fa {
-  display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-/* makes the font 33% larger relative to the icon container */
-.fa-lg {
-  font-size: 1.3333333333333333em;
-  line-height: 0.75em;
-  vertical-align: -15%;
-}
-.fa-2x {
-  font-size: 2em;
-}
-.fa-3x {
-  font-size: 3em;
-}
-.fa-4x {
-  font-size: 4em;
-}
-.fa-5x {
-  font-size: 5em;
-}
-.fa-fw {
-  width: 1.2857142857142858em;
-  text-align: center;
-}
-.fa-ul {
-  padding-left: 0;
-  margin-left: 2.142857142857143em;
-  list-style-type: none;
-}
-.fa-ul > li {
-  position: relative;
-}
-.fa-li {
-  position: absolute;
-  left: -2.142857142857143em;
-  width: 2.142857142857143em;
-  top: 0.14285714285714285em;
-  text-align: center;
-}
-.fa-li.fa-lg {
-  left: -1.8571428571428572em;
-}
-.fa-border {
-  padding: .2em .25em .15em;
-  border: solid 0.08em #eeeeee;
-  border-radius: .1em;
-}
-.pull-right {
-  float: right;
-}
-.pull-left {
-  float: left;
-}
-.fa.pull-left {
-  margin-right: .3em;
-}
-.fa.pull-right {
-  margin-left: .3em;
-}
-.fa-spin {
-  -webkit-animation: spin 2s infinite linear;
-  -moz-animation: spin 2s infinite linear;
-  -o-animation: spin 2s infinite linear;
-  animation: spin 2s infinite linear;
-}
-@-moz-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-  }
-  100% {
-    -moz-transform: rotate(359deg);
-  }
-}
-@-webkit-keyframes spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-  }
-}
-@-o-keyframes spin {
-  0% {
-    -o-transform: rotate(0deg);
-  }
-  100% {
-    -o-transform: rotate(359deg);
-  }
-}
-@-ms-keyframes spin {
-  0% {
-    -ms-transform: rotate(0deg);
-  }
-  100% {
-    -ms-transform: rotate(359deg);
-  }
-}
-@keyframes spin {
-  0% {
-    transform: rotate(0deg);
-  }
-  100% {
-    transform: rotate(359deg);
-  }
-}
-.fa-rotate-90 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-  -webkit-transform: rotate(90deg);
-  -moz-transform: rotate(90deg);
-  -ms-transform: rotate(90deg);
-  -o-transform: rotate(90deg);
-  transform: rotate(90deg);
-}
-.fa-rotate-180 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-  -webkit-transform: rotate(180deg);
-  -moz-transform: rotate(180deg);
-  -ms-transform: rotate(180deg);
-  -o-transform: rotate(180deg);
-  transform: rotate(180deg);
-}
-.fa-rotate-270 {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-  -webkit-transform: rotate(270deg);
-  -moz-transform: rotate(270deg);
-  -ms-transform: rotate(270deg);
-  -o-transform: rotate(270deg);
-  transform: rotate(270deg);
-}
-.fa-flip-horizontal {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-  -webkit-transform: scale(-1, 1);
-  -moz-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  -o-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-.fa-flip-vertical {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-  -webkit-transform: scale(1, -1);
-  -moz-transform: scale(1, -1);
-  -ms-transform: scale(1, -1);
-  -o-transform: scale(1, -1);
-  transform: scale(1, -1);
-}
-.fa-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-.fa-stack-1x,
-.fa-stack-2x {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
-}
-.fa-stack-1x {
-  line-height: inherit;
-}
-.fa-stack-2x {
-  font-size: 2em;
-}
-.fa-inverse {
-  color: #ffffff;
-}
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-.fa-glass:before {
-  content: "\f000";
-}
-.fa-music:before {
-  content: "\f001";
-}
-.fa-search:before {
-  content: "\f002";
-}
-.fa-envelope-o:before {
-  content: "\f003";
-}
-.fa-heart:before {
-  content: "\f004";
-}
-.fa-star:before {
-  content: "\f005";
-}
-.fa-star-o:before {
-  content: "\f006";
-}
-.fa-user:before {
-  content: "\f007";
-}
-.fa-film:before {
-  content: "\f008";
-}
-.fa-th-large:before {
-  content: "\f009";
-}
-.fa-th:before {
-  content: "\f00a";
-}
-.fa-th-list:before {
-  content: "\f00b";
-}
-.fa-check:before {
-  content: "\f00c";
-}
-.fa-times:before {
-  content: "\f00d";
-}
-.fa-search-plus:before {
-  content: "\f00e";
-}
-.fa-search-minus:before {
-  content: "\f010";
-}
-.fa-power-off:before {
-  content: "\f011";
-}
-.fa-signal:before {
-  content: "\f012";
-}
-.fa-gear:before,
-.fa-cog:before {
-  content: "\f013";
-}
-.fa-trash-o:before {
-  content: "\f014";
-}
-.fa-home:before {
-  content: "\f015";
-}
-.fa-file-o:before {
-  content: "\f016";
-}
-.fa-clock-o:before {
-  content: "\f017";
-}
-.fa-road:before {
-  content: "\f018";
-}
-.fa-download:before {
-  content: "\f019";
-}
-.fa-arrow-circle-o-down:before {
-  content: "\f01a";
-}
-.fa-arrow-circle-o-up:before {
-  content: "\f01b";
-}
-.fa-inbox:before {
-  content: "\f01c";
-}
-.fa-play-circle-o:before {
-  content: "\f01d";
-}
-.fa-rotate-right:before,
-.fa-repeat:before {
-  content: "\f01e";
-}
-.fa-refresh:before {
-  content: "\f021";
-}
-.fa-list-alt:before {
-  content: "\f022";
-}
-.fa-lock:before {
-  content: "\f023";
-}
-.fa-flag:before {
-  content: "\f024";
-}
-.fa-headphones:before {
-  content: "\f025";
-}
-.fa-volume-off:before {
-  content: "\f026";
-}
-.fa-volume-down:before {
-  content: "\f027";
-}
-.fa-volume-up:before {
-  content: "\f028";
-}
-.fa-qrcode:before {
-  content: "\f029";
-}
-.fa-barcode:before {
-  content: "\f02a";
-}
-.fa-tag:before {
-  content: "\f02b";
-}
-.fa-tags:before {
-  content: "\f02c";
-}
-.fa-book:before {
-  content: "\f02d";
-}
-.fa-bookmark:before {
-  content: "\f02e";
-}
-.fa-print:before {
-  content: "\f02f";
-}
-.fa-camera:before {
-  content: "\f030";
-}
-.fa-font:before {
-  content: "\f031";
-}
-.fa-bold:before {
-  content: "\f032";
-}
-.fa-italic:before {
-  content: "\f033";
-}
-.fa-text-height:before {
-  content: "\f034";
-}
-.fa-text-width:before {
-  content: "\f035";
-}
-.fa-align-left:before {
-  content: "\f036";
-}
-.fa-align-center:before {
-  content: "\f037";
-}
-.fa-align-right:before {
-  content: "\f038";
-}
-.fa-align-justify:before {
-  content: "\f039";
-}
-.fa-list:before {
-  content: "\f03a";
-}
-.fa-dedent:before,
-.fa-outdent:before {
-  content: "\f03b";
-}
-.fa-indent:before {
-  content: "\f03c";
-}
-.fa-video-camera:before {
-  content: "\f03d";
-}
-.fa-picture-o:before {
-  content: "\f03e";
-}
-.fa-pencil:before {
-  content: "\f040";
-}
-.fa-map-marker:before {
-  content: "\f041";
-}
-.fa-adjust:before {
-  content: "\f042";
-}
-.fa-tint:before {
-  content: "\f043";
-}
-.fa-edit:before,
-.fa-pencil-square-o:before {
-  content: "\f044";
-}
-.fa-share-square-o:before {
-  content: "\f045";
-}
-.fa-check-square-o:before {
-  content: "\f046";
-}
-.fa-arrows:before {
-  content: "\f047";
-}
-.fa-step-backward:before {
-  content: "\f048";
-}
-.fa-fast-backward:before {
-  content: "\f049";
-}
-.fa-backward:before {
-  content: "\f04a";
-}
-.fa-play:before {
-  content: "\f04b";
-}
-.fa-pause:before {
-  content: "\f04c";
-}
-.fa-stop:before {
-  content: "\f04d";
-}
-.fa-forward:before {
-  content: "\f04e";
-}
-.fa-fast-forward:before {
-  content: "\f050";
-}
-.fa-step-forward:before {
-  content: "\f051";
-}
-.fa-eject:before {
-  content: "\f052";
-}
-.fa-chevron-left:before {
-  content: "\f053";
-}
-.fa-chevron-right:before {
-  content: "\f054";
-}
-.fa-plus-circle:before {
-  content: "\f055";
-}
-.fa-minus-circle:before {
-  content: "\f056";
-}
-.fa-times-circle:before {
-  content: "\f057";
-}
-.fa-check-circle:before {
-  content: "\f058";
-}
-.fa-question-circle:before {
-  content: "\f059";
-}
-.fa-info-circle:before {
-  content: "\f05a";
-}
-.fa-crosshairs:before {
-  content: "\f05b";
-}
-.fa-times-circle-o:before {
-  content: "\f05c";
-}
-.fa-check-circle-o:before {
-  content: "\f05d";
-}
-.fa-ban:before {
-  content: "\f05e";
-}
-.fa-arrow-left:before {
-  content: "\f060";
-}
-.fa-arrow-right:before {
-  content: "\f061";
-}
-.fa-arrow-up:before {
-  content: "\f062";
-}
-.fa-arrow-down:before {
-  content: "\f063";
-}
-.fa-mail-forward:before,
-.fa-share:before {
-  content: "\f064";
-}
-.fa-expand:before {
-  content: "\f065";
-}
-.fa-compress:before {
-  content: "\f066";
-}
-.fa-plus:before {
-  content: "\f067";
-}
-.fa-minus:before {
-  content: "\f068";
-}
-.fa-asterisk:before {
-  content: "\f069";
-}
-.fa-exclamation-circle:before {
-  content: "\f06a";
-}
-.fa-gift:before {
-  content: "\f06b";
-}
-.fa-leaf:before {
-  content: "\f06c";
-}
-.fa-fire:before {
-  content: "\f06d";
-}
-.fa-eye:before {
-  content: "\f06e";
-}
-.fa-eye-slash:before {
-  content: "\f070";
-}
-.fa-warning:before,
-.fa-exclamation-triangle:before {
-  content: "\f071";
-}
-.fa-plane:before {
-  content: "\f072";
-}
-.fa-calendar:before {
-  content: "\f073";
-}
-.fa-random:before {
-  content: "\f074";
-}
-.fa-comment:before {
-  content: "\f075";
-}
-.fa-magnet:before {
-  content: "\f076";
-}
-.fa-chevron-up:before {
-  content: "\f077";
-}
-.fa-chevron-down:before {
-  content: "\f078";
-}
-.fa-retweet:before {
-  content: "\f079";
-}
-.fa-shopping-cart:before {
-  content: "\f07a";
-}
-.fa-folder:before {
-  content: "\f07b";
-}
-.fa-folder-open:before {
-  content: "\f07c";
-}
-.fa-arrows-v:before {
-  content: "\f07d";
-}
-.fa-arrows-h:before {
-  content: "\f07e";
-}
-.fa-bar-chart-o:before {
-  content: "\f080";
-}
-.fa-twitter-square:before {
-  content: "\f081";
-}
-.fa-facebook-square:before {
-  content: "\f082";
-}
-.fa-camera-retro:before {
-  content: "\f083";
-}
-.fa-key:before {
-  content: "\f084";
-}
-.fa-gears:before,
-.fa-cogs:before {
-  content: "\f085";
-}
-.fa-comments:before {
-  content: "\f086";
-}
-.fa-thumbs-o-up:before {
-  content: "\f087";
-}
-.fa-thumbs-o-down:before {
-  content: "\f088";
-}
-.fa-star-half:before {
-  content: "\f089";
-}
-.fa-heart-o:before {
-  content: "\f08a";
-}
-.fa-sign-out:before {
-  content: "\f08b";
-}
-.fa-linkedin-square:before {
-  content: "\f08c";
-}
-.fa-thumb-tack:before {
-  content: "\f08d";
-}
-.fa-external-link:before {
-  content: "\f08e";
-}
-.fa-sign-in:before {
-  content: "\f090";
-}
-.fa-trophy:before {
-  content: "\f091";
-}
-.fa-github-square:before {
-  content: "\f092";
-}
-.fa-upload:before {
-  content: "\f093";
-}
-.fa-lemon-o:before {
-  content: "\f094";
-}
-.fa-phone:before {
-  content: "\f095";
-}
-.fa-square-o:before {
-  content: "\f096";
-}
-.fa-bookmark-o:before {
-  content: "\f097";
-}
-.fa-phone-square:before {
-  content: "\f098";
-}
-.fa-twitter:before {
-  content: "\f099";
-}
-.fa-facebook:before {
-  content: "\f09a";
-}
-.fa-github:before {
-  content: "\f09b";
-}
-.fa-unlock:before {
-  content: "\f09c";
-}
-.fa-credit-card:before {
-  content: "\f09d";
-}
-.fa-rss:before {
-  content: "\f09e";
-}
-.fa-hdd-o:before {
-  content: "\f0a0";
-}
-.fa-bullhorn:before {
-  content: "\f0a1";
-}
-.fa-bell:before {
-  content: "\f0f3";
-}
-.fa-certificate:before {
-  content: "\f0a3";
-}
-.fa-hand-o-right:before {
-  content: "\f0a4";
-}
-.fa-hand-o-left:before {
-  content: "\f0a5";
-}
-.fa-hand-o-up:before {
-  content: "\f0a6";
-}
-.fa-hand-o-down:before {
-  content: "\f0a7";
-}
-.fa-arrow-circle-left:before {
-  content: "\f0a8";
-}
-.fa-arrow-circle-right:before {
-  content: "\f0a9";
-}
-.fa-arrow-circle-up:before {
-  content: "\f0aa";
-}
-.fa-arrow-circle-down:before {
-  content: "\f0ab";
-}
-.fa-globe:before {
-  content: "\f0ac";
-}
-.fa-wrench:before {
-  content: "\f0ad";
-}
-.fa-tasks:before {
-  content: "\f0ae";
-}
-.fa-filter:before {
-  content: "\f0b0";
-}
-.fa-briefcase:before {
-  content: "\f0b1";
-}
-.fa-arrows-alt:before {
-  content: "\f0b2";
-}
-.fa-group:before,
-.fa-users:before {
-  content: "\f0c0";
-}
-.fa-chain:before,
-.fa-link:before {
-  content: "\f0c1";
-}
-.fa-cloud:before {
-  content: "\f0c2";
-}
-.fa-flask:before {
-  content: "\f0c3";
-}
-.fa-cut:before,
-.fa-scissors:before {
-  content: "\f0c4";
-}
-.fa-copy:before,
-.fa-files-o:before {
-  content: "\f0c5";
-}
-.fa-paperclip:before {
-  content: "\f0c6";
-}
-.fa-save:before,
-.fa-floppy-o:before {
-  content: "\f0c7";
-}
-.fa-square:before {
-  content: "\f0c8";
-}
-.fa-bars:before {
-  content: "\f0c9";
-}
-.fa-list-ul:before {
-  content: "\f0ca";
-}
-.fa-list-ol:before {
-  content: "\f0cb";
-}
-.fa-strikethrough:before {
-  content: "\f0cc";
-}
-.fa-underline:before {
-  content: "\f0cd";
-}
-.fa-table:before {
-  content: "\f0ce";
-}
-.fa-magic:before {
-  content: "\f0d0";
-}
-.fa-truck:before {
-  content: "\f0d1";
-}
-.fa-pinterest:before {
-  content: "\f0d2";
-}
-.fa-pinterest-square:before {
-  content: "\f0d3";
-}
-.fa-google-plus-square:before {
-  content: "\f0d4";
-}
-.fa-google-plus:before {
-  content: "\f0d5";
-}
-.fa-money:before {
-  content: "\f0d6";
-}
-.fa-caret-down:before {
-  content: "\f0d7";
-}
-.fa-caret-up:before {
-  content: "\f0d8";
-}
-.fa-caret-left:before {
-  content: "\f0d9";
-}
-.fa-caret-right:before {
-  content: "\f0da";
-}
-.fa-columns:before {
-  content: "\f0db";
-}
-.fa-unsorted:before,
-.fa-sort:before {
-  content: "\f0dc";
-}
-.fa-sort-down:before,
-.fa-sort-asc:before {
-  content: "\f0dd";
-}
-.fa-sort-up:before,
-.fa-sort-desc:before {
-  content: "\f0de";
-}
-.fa-envelope:before {
-  content: "\f0e0";
-}
-.fa-linkedin:before {
-  content: "\f0e1";
-}
-.fa-rotate-left:before,
-.fa-undo:before {
-  content: "\f0e2";
-}
-.fa-legal:before,
-.fa-gavel:before {
-  content: "\f0e3";
-}
-.fa-dashboard:before,
-.fa-tachometer:before {
-  content: "\f0e4";
-}
-.fa-comment-o:before {
-  content: "\f0e5";
-}
-.fa-comments-o:before {
-  content: "\f0e6";
-}
-.fa-flash:before,
-.fa-bolt:before {
-  content: "\f0e7";
-}
-.fa-sitemap:before {
-  content: "\f0e8";
-}
-.fa-umbrella:before {
-  content: "\f0e9";
-}
-.fa-paste:before,
-.fa-clipboard:before {
-  content: "\f0ea";
-}
-.fa-lightbulb-o:before {
-  content: "\f0eb";
-}
-.fa-exchange:before {
-  content: "\f0ec";
-}
-.fa-cloud-download:before {
-  content: "\f0ed";
-}
-.fa-cloud-upload:before {
-  content: "\f0ee";
-}
-.fa-user-md:before {
-  content: "\f0f0";
-}
-.fa-stethoscope:before {
-  content: "\f0f1";
-}
-.fa-suitcase:before {
-  content: "\f0f2";
-}
-.fa-bell-o:before {
-  content: "\f0a2";
-}
-.fa-coffee:before {
-  content: "\f0f4";
-}
-.fa-cutlery:before {
-  content: "\f0f5";
-}
-.fa-file-text-o:before {
-  content: "\f0f6";
-}
-.fa-building-o:before {
-  content: "\f0f7";
-}
-.fa-hospital-o:before {
-  content: "\f0f8";
-}
-.fa-ambulance:before {
-  content: "\f0f9";
-}
-.fa-medkit:before {
-  content: "\f0fa";
-}
-.fa-fighter-jet:before {
-  content: "\f0fb";
-}
-.fa-beer:before {
-  content: "\f0fc";
-}
-.fa-h-square:before {
-  content: "\f0fd";
-}
-.fa-plus-square:before {
-  content: "\f0fe";
-}
-.fa-angle-double-left:before {
-  content: "\f100";
-}
-.fa-angle-double-right:before {
-  content: "\f101";
-}
-.fa-angle-double-up:before {
-  content: "\f102";
-}
-.fa-angle-double-down:before {
-  content: "\f103";
-}
-.fa-angle-left:before {
-  content: "\f104";
-}
-.fa-angle-right:before {
-  content: "\f105";
-}
-.fa-angle-up:before {
-  content: "\f106";
-}
-.fa-angle-down:before {
-  content: "\f107";
-}
-.fa-desktop:before {
-  content: "\f108";
-}
-.fa-laptop:before {
-  content: "\f109";
-}
-.fa-tablet:before {
-  content: "\f10a";
-}
-.fa-mobile-phone:before,
-.fa-mobile:before {
-  content: "\f10b";
-}
-.fa-circle-o:before {
-  content: "\f10c";
-}
-.fa-quote-left:before {
-  content: "\f10d";
-}
-.fa-quote-right:before {
-  content: "\f10e";
-}
-.fa-spinner:before {
-  content: "\f110";
-}
-.fa-circle:before {
-  content: "\f111";
-}
-.fa-mail-reply:before,
-.fa-reply:before {
-  content: "\f112";
-}
-.fa-github-alt:before {
-  content: "\f113";
-}
-.fa-folder-o:before {
-  content: "\f114";
-}
-.fa-folder-open-o:before {
-  content: "\f115";
-}
-.fa-smile-o:before {
-  content: "\f118";
-}
-.fa-frown-o:before {
-  content: "\f119";
-}
-.fa-meh-o:before {
-  content: "\f11a";
-}
-.fa-gamepad:before {
-  content: "\f11b";
-}
-.fa-keyboard-o:before {
-  content: "\f11c";
-}
-.fa-flag-o:before {
-  content: "\f11d";
-}
-.fa-flag-checkered:before {
-  content: "\f11e";
-}
-.fa-terminal:before {
-  content: "\f120";
-}
-.fa-code:before {
-  content: "\f121";
-}
-.fa-reply-all:before {
-  content: "\f122";
-}
-.fa-mail-reply-all:before {
-  content: "\f122";
-}
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
-  content: "\f123";
-}
-.fa-location-arrow:before {
-  content: "\f124";
-}
-.fa-crop:before {
-  content: "\f125";
-}
-.fa-code-fork:before {
-  content: "\f126";
-}
-.fa-unlink:before,
-.fa-chain-broken:before {
-  content: "\f127";
-}
-.fa-question:before {
-  content: "\f128";
-}
-.fa-info:before {
-  content: "\f129";
-}
-.fa-exclamation:before {
-  content: "\f12a";
-}
-.fa-superscript:before {
-  content: "\f12b";
-}
-.fa-subscript:before {
-  content: "\f12c";
-}
-.fa-eraser:before {
-  content: "\f12d";
-}
-.fa-puzzle-piece:before {
-  content: "\f12e";
-}
-.fa-microphone:before {
-  content: "\f130";
-}
-.fa-microphone-slash:before {
-  content: "\f131";
-}
-.fa-shield:before {
-  content: "\f132";
-}
-.fa-calendar-o:before {
-  content: "\f133";
-}
-.fa-fire-extinguisher:before {
-  content: "\f134";
-}
-.fa-rocket:before {
-  content: "\f135";
-}
-.fa-maxcdn:before {
-  content: "\f136";
-}
-.fa-chevron-circle-left:before {
-  content: "\f137";
-}
-.fa-chevron-circle-right:before {
-  content: "\f138";
-}
-.fa-chevron-circle-up:before {
-  content: "\f139";
-}
-.fa-chevron-circle-down:before {
-  content: "\f13a";
-}
-.fa-html5:before {
-  content: "\f13b";
-}
-.fa-css3:before {
-  content: "\f13c";
-}
-.fa-anchor:before {
-  content: "\f13d";
-}
-.fa-unlock-alt:before {
-  content: "\f13e";
-}
-.fa-bullseye:before {
-  content: "\f140";
-}
-.fa-ellipsis-h:before {
-  content: "\f141";
-}
-.fa-ellipsis-v:before {
-  content: "\f142";
-}
-.fa-rss-square:before {
-  content: "\f143";
-}
-.fa-play-circle:before {
-  content: "\f144";
-}
-.fa-ticket:before {
-  content: "\f145";
-}
-.fa-minus-square:before {
-  content: "\f146";
-}
-.fa-minus-square-o:before {
-  content: "\f147";
-}
-.fa-level-up:before {
-  content: "\f148";
-}
-.fa-level-down:before {
-  content: "\f149";
-}
-.fa-check-square:before {
-  content: "\f14a";
-}
-.fa-pencil-square:before {
-  content: "\f14b";
-}
-.fa-external-link-square:before {
-  content: "\f14c";
-}
-.fa-share-square:before {
-  content: "\f14d";
-}
-.fa-compass:before {
-  content: "\f14e";
-}
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
-  content: "\f150";
-}
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
-  content: "\f151";
-}
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
-  content: "\f152";
-}
-.fa-euro:before,
-.fa-eur:before {
-  content: "\f153";
-}
-.fa-gbp:before {
-  content: "\f154";
-}
-.fa-dollar:before,
-.fa-usd:before {
-  content: "\f155";
-}
-.fa-rupee:before,
-.fa-inr:before {
-  content: "\f156";
-}
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
-  content: "\f157";
-}
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
-  content: "\f158";
-}
-.fa-won:before,
-.fa-krw:before {
-  content: "\f159";
-}
-.fa-bitcoin:before,
-.fa-btc:before {
-  content: "\f15a";
-}
-.fa-file:before {
-  content: "\f15b";
-}
-.fa-file-text:before {
-  content: "\f15c";
-}
-.fa-sort-alpha-asc:before {
-  content: "\f15d";
-}
-.fa-sort-alpha-desc:before {
-  content: "\f15e";
-}
-.fa-sort-amount-asc:before {
-  content: "\f160";
-}
-.fa-sort-amount-desc:before {
-  content: "\f161";
-}
-.fa-sort-numeric-asc:before {
-  content: "\f162";
-}
-.fa-sort-numeric-desc:before {
-  content: "\f163";
-}
-.fa-thumbs-up:before {
-  content: "\f164";
-}
-.fa-thumbs-down:before {
-  content: "\f165";
-}
-.fa-youtube-square:before {
-  content: "\f166";
-}
-.fa-youtube:before {
-  content: "\f167";
-}
-.fa-xing:before {
-  content: "\f168";
-}
-.fa-xing-square:before {
-  content: "\f169";
-}
-.fa-youtube-play:before {
-  content: "\f16a";
-}
-.fa-dropbox:before {
-  content: "\f16b";
-}
-.fa-stack-overflow:before {
-  content: "\f16c";
-}
-.fa-instagram:before {
-  content: "\f16d";
-}
-.fa-flickr:before {
-  content: "\f16e";
-}
-.fa-adn:before {
-  content: "\f170";
-}
-.fa-bitbucket:before {
-  content: "\f171";
-}
-.fa-bitbucket-square:before {
-  content: "\f172";
-}
-.fa-tumblr:before {
-  content: "\f173";
-}
-.fa-tumblr-square:before {
-  content: "\f174";
-}
-.fa-long-arrow-down:before {
-  content: "\f175";
-}
-.fa-long-arrow-up:before {
-  content: "\f176";
-}
-.fa-long-arrow-left:before {
-  content: "\f177";
-}
-.fa-long-arrow-right:before {
-  content: "\f178";
-}
-.fa-apple:before {
-  content: "\f179";
-}
-.fa-windows:before {
-  content: "\f17a";
-}
-.fa-android:before {
-  content: "\f17b";
-}
-.fa-linux:before {
-  content: "\f17c";
-}
-.fa-dribbble:before {
-  content: "\f17d";
-}
-.fa-skype:before {
-  content: "\f17e";
-}
-.fa-foursquare:before {
-  content: "\f180";
-}
-.fa-trello:before {
-  content: "\f181";
-}
-.fa-female:before {
-  content: "\f182";
-}
-.fa-male:before {
-  content: "\f183";
-}
-.fa-gittip:before {
-  content: "\f184";
-}
-.fa-sun-o:before {
-  content: "\f185";
-}
-.fa-moon-o:before {
-  content: "\f186";
-}
-.fa-archive:before {
-  content: "\f187";
-}
-.fa-bug:before {
-  content: "\f188";
-}
-.fa-vk:before {
-  content: "\f189";
-}
-.fa-weibo:before {
-  content: "\f18a";
-}
-.fa-renren:before {
-  content: "\f18b";
-}
-.fa-pagelines:before {
-  content: "\f18c";
-}
-.fa-stack-exchange:before {
-  content: "\f18d";
-}
-.fa-arrow-circle-o-right:before {
-  content: "\f18e";
-}
-.fa-arrow-circle-o-left:before {
-  content: "\f190";
-}
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
-  content: "\f191";
-}
-.fa-dot-circle-o:before {
-  content: "\f192";
-}
-.fa-wheelchair:before {
-  content: "\f193";
-}
-.fa-vimeo-square:before {
-  content: "\f194";
-}
-.fa-turkish-lira:before,
-.fa-try:before {
-  content: "\f195";
-}
-.fa-plus-square-o:before {
-  content: "\f196";
-}
diff --git a/milfs/css/font-awesome/css/font-awesome.min.css b/milfs/css/font-awesome/css/font-awesome.min.css
deleted file mode 100644
index 16c0dfc..0000000
--- a/milfs/css/font-awesome/css/font-awesome.min.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.0.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857142858em;text-align:center}.fa-ul{padding-left:0;margin-left:2.142857142857143em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;top:.14285714285714285em;text-align:center}.fa-li.fa-lg{left:-1.8571428571428572em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-asc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-desc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}
\ No newline at end of file
diff --git a/milfs/css/font-awesome/fonts/FontAwesome.otf b/milfs/css/font-awesome/fonts/FontAwesome.otf
deleted file mode 100644
index 3461e3f..0000000
Binary files a/milfs/css/font-awesome/fonts/FontAwesome.otf and /dev/null differ
diff --git a/milfs/css/font-awesome/fonts/fontawesome-webfont.eot b/milfs/css/font-awesome/fonts/fontawesome-webfont.eot
deleted file mode 100644
index 6cfd566..0000000
Binary files a/milfs/css/font-awesome/fonts/fontawesome-webfont.eot and /dev/null differ
diff --git a/milfs/css/font-awesome/fonts/fontawesome-webfont.svg b/milfs/css/font-awesome/fonts/fontawesome-webfont.svg
deleted file mode 100644
index a9f8469..0000000
--- a/milfs/css/font-awesome/fonts/fontawesome-webfont.svg
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="fontawesomeregular" horiz-adv-x="1536" >
-<font-face units-per-em="1792" ascent="1536" descent="-256" />
-<missing-glyph horiz-adv-x="448" />
-<glyph unicode=" "  horiz-adv-x="448" />
-<glyph unicode="&#x09;" horiz-adv-x="448" />
-<glyph unicode="&#xa0;" horiz-adv-x="448" />
-<glyph unicode="&#xa8;" horiz-adv-x="1792" />
-<glyph unicode="&#xa9;" horiz-adv-x="1792" />
-<glyph unicode="&#xae;" horiz-adv-x="1792" />
-<glyph unicode="&#xb4;" horiz-adv-x="1792" />
-<glyph unicode="&#xc6;" horiz-adv-x="1792" />
-<glyph unicode="&#xd8;" horiz-adv-x="1792" />
-<glyph unicode="&#x2000;" horiz-adv-x="768" />
-<glyph unicode="&#x2001;" horiz-adv-x="1537" />
-<glyph unicode="&#x2002;" horiz-adv-x="768" />
-<glyph unicode="&#x2003;" horiz-adv-x="1537" />
-<glyph unicode="&#x2004;" horiz-adv-x="512" />
-<glyph unicode="&#x2005;" horiz-adv-x="384" />
-<glyph unicode="&#x2006;" horiz-adv-x="256" />
-<glyph unicode="&#x2007;" horiz-adv-x="256" />
-<glyph unicode="&#x2008;" horiz-adv-x="192" />
-<glyph unicode="&#x2009;" horiz-adv-x="307" />
-<glyph unicode="&#x200a;" horiz-adv-x="85" />
-<glyph unicode="&#x202f;" horiz-adv-x="307" />
-<glyph unicode="&#x205f;" horiz-adv-x="384" />
-<glyph unicode="&#x2122;" horiz-adv-x="1792" />
-<glyph unicode="&#x221e;" horiz-adv-x="1792" />
-<glyph unicode="&#x2260;" horiz-adv-x="1792" />
-<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M93 1350q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78z" />
-<glyph unicode="&#xf001;" d="M0 -64q0 50 34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5 q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89z" />
-<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
-<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M0 32v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5 t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768zM128 1120q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317 q54 43 100.5 115.5t46.5 131.5v11v13.5t-0.5 13t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5z" />
-<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z " />
-<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48z" />
-<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354 q-25 27 -25 48zM221 829l306 -297l-73 -421l378 199l377 -199l-72 421l306 297l-422 62l-189 382l-189 -382z" />
-<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M0 131q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5 h-874q-121 0 -194 69.5t-73 189.5zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5z" />
-<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M0 -96v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 64v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM128 320q0 -26 19 -45t45 -19h128 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19 h-128q-26 0 -45 -19t-19 -45v-128zM512 -64q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM512 704q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM1536 64 v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM1536 320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128z" />
-<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M0 128v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM0 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 128v384q0 52 38 90t90 38h512q52 0 90 -38 t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90z" />
-<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 608v192 q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M121 608q0 40 28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68z" />
-<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M110 214q0 40 28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-294 -294l294 -294q28 -28 28 -68t-28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294 q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68z" />
-<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf011;" d="M0 640q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181 q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298zM640 768v640q0 52 38 90t90 38t90 -38t38 -90v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90z" />
-<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M0 -96v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM384 -96v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM768 -96v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576 q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 -96v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1536 -96v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf013;" d="M0 531v222q0 12 8 23t19 13l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10 q129 -119 165 -170q7 -8 7 -22q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108 q-44 -23 -91 -38q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5z M512 640q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
-<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M0 1056v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23zM256 76q0 -22 7 -40.5 t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5v948h-896v-948zM384 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM640 224v576q0 14 9 23t23 9h64 q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM896 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M26 636.5q1 13.5 11 21.5l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5zM256 64 v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf016;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22 v-376z" />
-<glyph unicode="&#xf017;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 544v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M50 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256 q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73zM809 540q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4z" />
-<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M0 96v320q0 40 28 68t68 28h465l135 -136q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 985q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39q17 -41 -14 -70 l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70zM1152 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf01a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM418 620q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35z" />
-<glyph unicode="&#xf01b;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM416 672q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf01c;" d="M0 64v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552q25 -61 25 -123v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM197 576h316l95 -192h320l95 192h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8 t-2.5 -8z" />
-<glyph unicode="&#xf01d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 320v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55t-32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56z" />
-<glyph unicode="&#xf01e;" d="M0 640q0 156 61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5 t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298z" />
-<glyph unicode="&#xf021;" d="M0 0v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129 q-19 -19 -45 -19t-45 19t-19 45zM18 800v7q65 268 270 434.5t480 166.5q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179 q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M0 160v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832z M256 288v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 544v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z M256 800v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 288v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z M512 544v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5zM512 800v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z " />
-<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192z" />
-<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110zM320 320v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19 q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M0 650q0 151 67 291t179 242.5t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32 q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32 q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314z" />
-<glyph unicode="&#xf026;" horiz-adv-x="768" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5z" />
-<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5zM1008 228q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5 q140 -59 225 -188.5t85 -282.5t-85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45zM1109 -7q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19 q13 0 26 -5q211 -91 338 -283.5t127 -422.5t-127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M0 0v640h640v-640h-640zM0 768v640h640v-640h-640zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM256 256v128h128v-128h-128zM256 1024v128h128v-128h-128zM768 0v640h384v-128h128v128h128v-384h-384v128h-128v-384h-128zM768 768v640h640v-640h-640z M896 896h384v384h-384v-384zM1024 0v128h128v-128h-128zM1024 1024v128h128v-128h-128zM1280 0v128h128v-128h-128z" />
-<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M0 0v1408h63v-1408h-63zM94 1v1407h32v-1407h-32zM189 1v1407h31v-1407h-31zM346 1v1407h31v-1407h-31zM472 1v1407h62v-1407h-62zM629 1v1407h31v-1407h-31zM692 1v1407h31v-1407h-31zM755 1v1407h31v-1407h-31zM880 1v1407h63v-1407h-63zM1037 1v1407h63v-1407h-63z M1163 1v1407h63v-1407h-63zM1289 1v1407h63v-1407h-63zM1383 1v1407h63v-1407h-63zM1541 1v1407h94v-1407h-94zM1666 1v1407h32v-1407h-32zM1729 0v1408h63v-1408h-63z" />
-<glyph unicode="&#xf02b;" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
-<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5zM704 1408h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5z" />
-<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M10 184q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23 t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57 q38 -15 59 -43q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5zM575 1056 q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
-<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62z" />
-<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M0 160v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-224 q-13 0 -22.5 9.5t-9.5 22.5zM384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1408 576q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M0 128v896q0 106 75 181t181 75h224l51 136q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181zM512 576q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM672 576q0 119 84.5 203.5t203.5 84.5t203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5z" />
-<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8 t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27 q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14zM555 527q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452z" />
-<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5 t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12zM533 1292q0 -50 4 -151t4 -152q0 -27 -0.5 -80 t-0.5 -79q0 -46 1 -69q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13zM538.5 165q0.5 -37 4.5 -83.5t12 -66.5q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25 t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5z" />
-<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
-<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5 q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9 t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44zM1414 109.5q9 18.5 42 18.5h80v1024 h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5z" />
-<glyph unicode="&#xf035;" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1 t-103 1t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29 t78 27q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44zM5 -64q0 28 26 49q4 3 36 30t59.5 49 t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5q12 0 42 -19.5t57.5 -41.5t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5 t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49z" />
-<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1536 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h896 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h1280 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 416v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5zM0 800v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192 q-13 0 -22.5 9.5t-9.5 22.5zM384 32v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 416v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 800v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 1184v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5 t-9.5 22.5zM32 704q0 14 9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088 q-13 0 -22.5 9.5t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 416v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23t-9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5z M0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5 t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5q39 -17 39 -59v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5 t-84.5 203.5z" />
-<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v192l320 320l160 -160l512 512l416 -416v-448h-1408zM256 960q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
-<glyph unicode="&#xf040;" d="M0 -128v416l832 832l416 -416l-832 -832h-416zM128 128h128v-128h107l91 91l-235 235l-91 -91v-107zM298 384q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17zM896 1184l166 165q36 38 90 38q53 0 91 -38l235 -234 q37 -39 37 -91q0 -53 -37 -90l-166 -166z" />
-<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M0 896q0 212 150 362t362 150t362 -150t150 -362q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179zM256 896q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
-<glyph unicode="&#xf042;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73v1088q-148 0 -273 -73t-198 -198t-73 -273z" />
-<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M0 512q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275q0 -212 -150 -362t-362 -150t-362 150t-150 362zM256 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69z" />
-<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29v-190 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM640 256v288l672 672l288 -288l-672 -672h-288zM736 448h96v-96h56l116 116l-152 152l-116 -116v-56zM944 688q16 -16 33 1l350 350q17 17 1 33t-33 -1l-350 -350q-17 -17 -1 -33zM1376 1280l92 92 q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68l-92 -92z" />
-<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h255q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29v-259 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM256 704q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45l-384 -384 q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5t-38.5 114t-17.5 122z" />
-<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3 q20 -8 20 -29v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM257 768q0 33 24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110q24 -24 24 -57t-24 -57l-814 -814q-24 -24 -57 -24t-57 24l-430 430 q-24 24 -24 57z" />
-<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256 q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
-<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-710q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45 t-45 -19h-128q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M122 640q0 26 19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45z" />
-<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M0 -96v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31l-1328 -738q-23 -13 -39.5 -3t-16.5 36z" />
-<glyph unicode="&#xf04c;" d="M0 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM896 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf04d;" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
-<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32v710 q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
-<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
-<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M1 64v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM1 525q-6 13 13 32l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13z" />
-<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M154 704q0 26 19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45z" />
-<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M90 128q0 26 19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45z" />
-<glyph unicode="&#xf055;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19 t19 45v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128z" />
-<glyph unicode="&#xf056;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19 t-19 -45v-128z" />
-<glyph unicode="&#xf057;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM387 414q0 -27 19 -46l90 -90q19 -19 46 -19q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19 l90 90q19 19 19 46q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45z" />
-<glyph unicode="&#xf058;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 621q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45q0 28 -18 46l-91 90 q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46z" />
-<glyph unicode="&#xf059;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM417 939q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26 t37.5 -59q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213zM640 160q0 -14 9 -23t23 -9 h192q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192z" />
-<glyph unicode="&#xf05a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320 q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160zM640 1056q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160z" />
-<glyph unicode="&#xf05b;" d="M0 576v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143 q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45zM339 512q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5h-109q-26 0 -45 19 t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109z" />
-<glyph unicode="&#xf05c;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM429 480q0 13 10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23l-137 -137l137 -137q10 -10 10 -23t-10 -23l-146 -146q-10 -10 -23 -10t-23 10l-137 137 l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23z" />
-<glyph unicode="&#xf05d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM346 640q0 26 19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45z" />
-<glyph unicode="&#xf05e;" d="M0 643q0 157 61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5t-61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61t-245 164t-163.5 246t-61 300zM224 643q0 -162 89 -299l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199 t-73 -274zM471 185q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5q0 161 -87 295z" />
-<glyph unicode="&#xf060;" d="M64 576q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5t32.5 -90.5v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90 z" />
-<glyph unicode="&#xf061;" d="M0 512v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5z" />
-<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M53 565q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651q37 -39 37 -91q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75 q-38 38 -38 90z" />
-<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M53 704q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90z" />
-<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M0 416q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45t-19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123 q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22t-13.5 30t-10.5 24q-127 285 -127 451z" />
-<glyph unicode="&#xf065;" d="M0 -64v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45zM781 800q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448 q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
-<glyph unicode="&#xf066;" d="M13 32q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23zM768 704v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10 t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M122.5 408.5q13.5 51.5 59.5 77.5l266 154l-266 154q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5 l-266 -154l266 -154q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5z" />
-<glyph unicode="&#xf06a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM624 1126l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5l18 621q0 12 -10 18 q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18zM640 161q0 -13 10 -23t23 -10h192q13 0 22 9.5t9 23.5v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190z" />
-<glyph unicode="&#xf06b;" d="M0 544v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68 t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23zM376 1120q0 -40 28 -68t68 -28h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68zM608 180q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5v56v468v192h-320v-192v-468v-56zM870 1024h194q40 0 68 28 t28 68t-28 68t-68 28q-43 0 -69 -31z" />
-<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M0 121q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96 q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5zM384 448q0 -26 19 -45t45 -19q24 0 45 19 q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45t-19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45z" />
-<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M0 -160q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64zM256 640q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100 t113.5 -122.5t72.5 -150.5t27.5 -184q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184z" />
-<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M0 576q0 34 20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69t-20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69zM128 576q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5q-152 236 -381 353 q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5z" />
-<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M0 576q0 38 20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5q16 -10 16 -27q0 -7 -1 -9q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87 q-143 65 -263.5 173t-208.5 245q-20 31 -20 69zM128 576q167 -258 427 -375l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5zM896 0l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69t-20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95zM1056 286l280 502q8 -45 8 -84q0 -139 -79 -253.5t-209 -164.5z" />
-<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M16 61l768 1408q17 31 47 49t65 18t65 -18t47 -49l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126zM752 992l17 -457q0 -10 10 -16.5t24 -6.5h185q14 0 23.5 6.5t10.5 16.5l18 459q0 12 -10 19q-13 11 -24 11h-220 q-11 0 -24 -11q-10 -7 -10 -21zM768 161q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190z" />
-<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M0 477q-1 13 9 25l96 97q9 9 23 9q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16 l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23z" />
-<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h288v288h-288v-288zM128 224 h288v320h-288v-320zM128 608h288v288h-288v-288zM384 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM480 -128h320v288h-320v-288zM480 224h320v320h-320v-320zM480 608h320v288h-320 v-288zM864 -128h320v288h-320v-288zM864 224h320v320h-320v-320zM864 608h320v288h-320v-288zM1152 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM1248 -128h288v288h-288v-288z M1248 224h288v320h-288v-320zM1248 608h288v288h-288v-288z" />
-<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M0 160v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23zM0 1056v192q0 14 9 23t23 9h224q250 0 410 -225q-60 -92 -137 -273q-22 45 -37 72.5 t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23zM743 353q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 q-32 0 -85 -0.5t-81 -1t-73 1t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5z" />
-<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M0 640q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5 t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281z" />
-<glyph unicode="&#xf076;" d="M0 576v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5 t-98.5 362zM0 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45zM1024 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M90 250.5q0 26.5 19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5z" />
-<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M90 773.5q0 26.5 19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5z" />
-<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M0 704q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45z M640 1120q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20z " />
-<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M0 1216q0 26 19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024 q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45zM384 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
-<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158z" />
-<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5t-0.5 12.5zM73 56q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43 q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43z" />
-<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M64 64q0 26 19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45z" />
-<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
-<glyph unicode="&#xf080;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v384h256v-384h-256zM640 128v896h256v-896h-256zM1024 128v640h256v-640h-256zM1408 128v1024h256v-1024h-256z" />
-<glyph unicode="&#xf081;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 286q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109 q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4q21 -63 74.5 -104 t121.5 -42q-116 -90 -261 -90q-26 0 -50 3z" />
-<glyph unicode="&#xf082;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544 q-119 0 -203.5 84.5t-84.5 203.5z" />
-<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M0 0v1280q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5zM128 0h1536v128h-1536v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM256 1216h384v128h-384v-128zM512 574 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM640 574q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM736 576q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9 t9 23t-9 23t-23 9q-66 0 -113 -47t-47 -113z" />
-<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M0 752q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41q0 -17 -49 -66t-66 -49 q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5zM192 768q0 -80 56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56 t56 136t-56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136z" />
-<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M0 549v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8 q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90 q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5zM384 640q0 -106 75 -181t181 -75 t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181zM1152 58v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31 v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1152 1082v140q0 16 149 31q13 29 30 52 q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71 q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1408 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90zM1408 1152q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90z" />
-<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM616 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5 t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
-<glyph unicode="&#xf087;" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5 t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85 t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640z" />
-<glyph unicode="&#xf088;" d="M0 512v640q0 53 37.5 90.5t90.5 37.5h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186 q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5zM128 1088q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 512h32q16 0 35.5 -9 t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5 t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640z" />
-<glyph unicode="&#xf089;" horiz-adv-x="896" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48z" />
-<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z M128 940q0 -168 187 -355l581 -560l580 559q188 188 188 356q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5 t-21.5 -143z" />
-<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5q0 -4 1 -20t0.5 -26.5t-3 -23.5 t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5zM384 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf08c;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM223 1030q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86z M237 122h231v694h-231v-694zM595 122h231v388q0 38 7 56q15 35 45 59.5t74 24.5q116 0 116 -157v-371h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694z" />
-<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M0 320q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19 t-19 45zM416 672q0 -14 9 -23t23 -9t23 9t9 23v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448z" />
-<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832 q-119 0 -203.5 84.5t-84.5 203.5zM685 576q0 13 10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
-<glyph unicode="&#xf090;" d="M0 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45zM894.5 78.5q0.5 10.5 3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113 t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5q0 4 -1 20t-0.5 26.5z" />
-<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M0 928v128q0 40 28 68t68 28h288v96q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91t97.5 -37q75 0 133.5 -45.5 t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143zM128 928q0 -78 94.5 -162t235.5 -113q-74 162 -74 371 h-256v-96zM1206 653q141 29 235.5 113t94.5 162v96h-256q0 -209 -74 -371z" />
-<glyph unicode="&#xf092;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204 q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52 t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5h-224q-119 0 -203.5 84.5t-84.5 203.5zM271 315q3 5 13 2 q10 -5 7 -12q-5 -7 -13 -2q-10 5 -7 12zM304 290q6 6 16 -3q9 -11 2 -16q-6 -7 -16 3q-9 11 -2 16zM335 233q-9 13 0 18q9 7 17 -6q9 -12 0 -19q-8 -6 -17 7zM370 206q8 9 20 -3q12 -11 4 -19q-8 -9 -20 3q-13 11 -4 19zM419 168q4 11 19 7q16 -5 13 -16q-4 -12 -19 -6 q-17 4 -13 15zM481 154q0 11 16 11q17 2 17 -11q0 -11 -16 -11q-17 -2 -17 11zM540 158q-2 12 14 15q16 2 18 -9q2 -10 -14 -14t-18 8z" />
-<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M0 -32v320q0 40 28 68t68 28h427q21 -56 70.5 -92t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 936q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69q-17 -40 -59 -40 h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40zM1152 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf094;" d="M0 433q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5q0 -165 -70 -327.5 t-196 -288t-281 -180.5q-124 -44 -326 -44q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5zM128 434q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5 q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24 q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5z" />
-<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M0 1069q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235 t235 -174q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5 t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5z" />
-<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832z" />
-<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62zM128 38l423 406l89 85l89 -85l423 -406 v1242h-1024v-1242z" />
-<glyph unicode="&#xf098;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 905q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5 q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5 t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5z" />
-<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M44 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5 q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145z" />
-<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M95 631v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255z" />
-<glyph unicode="&#xf09b;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44 l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3 q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5z" />
-<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M0 96v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v608h-1664v-608zM128 1024h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600 q-13 0 -22.5 -9.5t-9.5 -22.5v-224zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
-<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M0 192q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 697v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5t259 -181.5q114 -113 181.5 -259t80.5 -306q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5 t-391.5 184.5q-25 2 -41.5 20t-16.5 43zM0 1201v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294q187 -186 294 -425.5t120 -501.5q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102 q-25 1 -42.5 19.5t-17.5 43.5z" />
-<glyph unicode="&#xf0a0;" d="M0 160v320q0 25 16 75l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-1216 q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM880 320q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1136 320q0 33 23.5 56.5t56.5 23.5 t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5z" />
-<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M0 672v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50 t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113zM768 633q377 -42 768 -341v954q-394 -302 -768 -343v-270z" />
-<glyph unicode="&#xf0a2;" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
-<glyph unicode="&#xf0a3;" d="M2 435q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70l-53 -186l188 -48 q40 -10 52 -51q10 -42 -20 -70l-138 -135l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53 q-41 -12 -70 19q-31 29 -19 70l53 186l-188 48q-40 10 -52 51z" />
-<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179q0 -105 -75.5 -181 t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q72 0 167 -32 t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139 q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106q-69 -57 -140 -57h-32v-640z" />
-<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M0 769q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5v-640 q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181zM128 768q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119 q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5 t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5t-39 -89.5zM1536 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf0a6;" d="M0 640q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5t-90.5 -37.5h-640 q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5zM128 640q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140 v-32h640v32q0 72 32 167t64 193.5t32 179.5q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576q-20 0 -48.5 15t-55 33t-68 33t-84.5 15 q-67 0 -97.5 -44.5t-30.5 -115.5zM1152 -64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf0a7;" d="M0 640q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317q0 -142 -77.5 -230t-217.5 -87 l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5zM128 640q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33t55 33t48.5 15v-576q0 -50 38.5 -89 t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112 q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5zM1152 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf0a8;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM251 640q0 -27 18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45z" />
-<glyph unicode="&#xf0a9;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM256 576q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18 l362 362l91 91q18 18 18 45t-18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128z" />
-<glyph unicode="&#xf0aa;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 641q0 -27 18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19 t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45t-18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45z" />
-<glyph unicode="&#xf0ab;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 639q0 -27 18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45t-18 45l-91 91 q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45z" />
-<glyph unicode="&#xf0ac;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM226 979q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18 q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13 q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5 t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13 q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25 t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5 t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4 q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5q15 10 -7 16q-17 5 -43 -12q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8 q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5 q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26 q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5 q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14 q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5 q-16 0 -22 -1q-146 -80 -235 -222zM877 26q0 -6 2 -16q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7 t-10 1.5t-11.5 -7q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5z" />
-<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M21 0q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90zM256 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM768 960q0 185 131.5 316.5t316.5 131.5q58 0 121.5 -16.5 t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25q0 -39 -23 -106q-47 -134 -164.5 -217.5t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5z" />
-<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M0 64v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 576v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1088v256q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM640 640h1024v128h-1024v-128zM1024 128h640v128h-640v-128zM1280 1152h384v128h-384v-128z" />
-<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M5 1241q17 39 59 39h1280q42 0 59 -39q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70z" />
-<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M0 160v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 736v384q0 66 47 113t113 47h352v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113v-384h-1792z M640 1280h512v128h-512v-128zM768 512v128h256v-128h-256z" />
-<glyph unicode="&#xf0b2;" d="M0 -64v448q0 42 40 59q39 17 69 -14l144 -144l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45 v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19l-144 144l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19 t-19 45z" />
-<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M0 671q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5zM128 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM256 3q0 53 3.5 103.5 t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5 zM576 896q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1280 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM1327 640q81 117 81 256q0 29 -5 66q66 -23 133 -23 q59 0 119 21.5t97.5 42.5t43.5 21q124 0 124 -353q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128z" />
-<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l206 -207q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204t-85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88 q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204zM208 1088q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15t21.5 -21.5t18.5 -19q33 31 33 73 q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67zM911 383q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26l147 146q28 28 28 67q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5 q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73z" />
-<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M0 448q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z" />
-<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M115.5 -64.5q-34.5 63.5 21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399l503 -793q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5zM476 384h712l-272 429l-20 31v37v399h-128v-399v-37 l-20 -31z" />
-<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M1 157q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148q4 -48 -10 -97q4 -1 12 -5 l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56l-507 -398l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207zM168 176q-25 -66 21 -108q39 -36 113 -36q100 0 192 59q81 51 106 117t-21 108q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117zM168 976q25 -66 106 -117q92 -59 192 -59q74 0 113 36q46 42 21 108t-106 117q-92 59 -192 59 q-74 0 -113 -36q-46 -42 -21 -108zM672 448l9 -8q2 -2 7 -6q4 -4 11 -12t11 -12l26 -26l160 96l96 -32l736 576l-128 64l-768 -431v-113zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 576q0 26 19 45t45 19t45 -19 t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1018 391l582 -327l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
-<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M0 224v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68zM128 256h512v256q0 40 20 88t48 76l316 316v416h-384 v-416q0 -40 -28 -68t-68 -28h-416v-640zM213 1024h299v299zM768 -128h896v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640zM853 640h299v299z" />
-<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M4 1023q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581 q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776 q-113 115 -113 271z" />
-<glyph unicode="&#xf0c7;" d="M0 -32v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 0h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20 t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280zM384 0h768v384h-768v-384zM640 928q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320z" />
-<glyph unicode="&#xf0c8;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5z" />
-<glyph unicode="&#xf0c9;" d="M0 64v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 576v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 1088v128q0 26 19 45t45 19h1408 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M0 128q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 640q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 1152q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM512 32v192 q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z M512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M15 438q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105v-159h-362q-6 36 -6 54zM19 -190 l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66zM34 1400l136 127h106v-404h108v-99 h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54zM512 32v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M0 544v64q0 14 9 23t23 9h1728q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23zM384 972q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6l-14 2q-50 149 -103 205 q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743q-28 35 -51 80q-48 97 -48 188zM414 154q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22 q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156z" />
-<glyph unicode="&#xf0cd;" d="M0 -32v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-1472q-14 0 -23 -9t-9 -23zM0 1405q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5 t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2 q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195 q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39q-37 2 -45 4z" />
-<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M0 160v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 544q0 -14 9 -23t23 -9h320 q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192zM640 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23 v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192z" />
-<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M27 160q0 27 18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45t-18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45zM128 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM320 1216l196 60l60 196l60 -196l196 -60l-196 -60 l-60 -196l-60 196zM768 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM1083 1062l107 -107l293 293l-107 107zM1408 768l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98z" />
-<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M64 192q0 26 19 45t45 19v320q0 8 -0.5 35t0 38t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45v-1024q0 -15 -4 -26.5t-13.5 -18.5t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5 q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM384 128q0 -52 38 -90t90 -38 t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90zM1280 128q0 -52 38 -90t90 -38t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90z" />
-<glyph unicode="&#xf0d2;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63 q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5 q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423z" />
-<glyph unicode="&#xf0d3;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5 q-104 0 -194.5 -28.5t-153 -76.5t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118 q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5z" />
-<glyph unicode="&#xf0d4;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM276 309q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117 q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94 q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95zM395 338q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78z M462 969q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5t-57.5 96.5t-17.5 106zM960 672h128v-160h64v160h128v64h-128v128h-64v-128h-128v-64z" />
-<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M32 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65 t-59.5 -61.5t-24.5 -66q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131zM218 228q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5q58 0 111.5 13t99 39t73 73 t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5zM324 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q38 0 78 16.5t66 43.5q53 57 53 159 q0 58 -17 125t-48.5 129.5t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160zM1084 731v108h212v217h105v-217h213v-108h-213v-219h-105v219h-212z" />
-<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M0 64v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45zM128 384q106 0 181 -75t75 -181h1152q0 106 75 181t181 75v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512zM640 640q0 70 21 142 t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142t-21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142zM762 791l77 -80q42 37 55 57h2v-288h-128v-96h384v96h-128v448h-114z" />
-<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M0 832q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
-<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M0 320q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M64 640q0 26 19 45l448 448q19 19 45 19t45 -19t19 -45v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45z" />
-<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M0 192v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45z" />
-<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M0 32v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h608v1152h-640v-1120zM896 0h608q13 0 22.5 9.5t9.5 22.5v1120h-640v-1152z" />
-<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45zM0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
-<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M0 32v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 1098q0 78 41.5 130t118.5 52h1472 q65 0 112.5 -47t47.5 -113q0 -79 -49 -151t-122 -123q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5z" />
-<glyph unicode="&#xf0e1;" d="M0 1217q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122zM19 -80v991h330v-991h-330zM531 -80q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5v-568 h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329z" />
-<glyph unicode="&#xf0e2;" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M40 736q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18 q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5 q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5 t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68z" />
-<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M0 384q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29q-141 221 -141 483zM128 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M320 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM710 241q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91l101 382q6 26 -7.5 48.5t-38.5 29.5t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5 t-63 -98.5zM768 1024q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1216 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 384q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
-<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M0 640q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5 t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281zM128 640q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5t-381.5 -69.5 t-282 -187.5t-104.5 -255z" />
-<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM128 768q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52t-286 -52t-211.5 -141t-78.5 -191zM616 132 q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22 t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
-<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M1 551l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39z" />
-<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M0 -32v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M0 681q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17 q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5z M384 128q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180zM768 1310v98q0 26 19 45t45 19t45 -19t19 -45v-98q-42 2 -64 2t-64 -2z" />
-<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M0 96v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88v-672q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68zM256 1312q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5v64 q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64zM768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1280 640h299l-299 299v-299z" />
-<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M0 960q0 99 44.5 184.5t117 142t164 89t186.5 32.5t186.5 -32.5t164 -89t117 -142t44.5 -184.5q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47q0 -46 -31.5 -71t-77.5 -25 q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268zM128 960q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228 q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134zM480 1088q0 13 9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5 q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M0 256q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22zM0 800v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23 t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 608q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5z" />
-<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 672q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24z" />
-<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M0 131q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89 q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5 t81 -103t47.5 -132.5t24 -138t5.5 -131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190zM256 192q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5 t-271.5 112.5t-112.5 271.5z" />
-<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M0 768v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48 q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5 t-131.5 271.5v132q-164 20 -274 128t-110 252zM1152 832q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h64v-1280h-64q-92 0 -158 66t-66 158zM384 -128v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128v-1280h-1024zM640 1152h512v128h-512v-128zM1504 -128v1280h64q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-64z " />
-<glyph unicode="&#xf0f3;" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
-<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 480v736q0 26 19 45t45 19h1152q159 0 271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158zM1408 704h64q80 0 136 56t56 136 t-56 136t-136 56h-64v-384z" />
-<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M0 832v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128 q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111zM768 416v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0f6;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM384 160v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64 q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 416v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 672v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1536h-1152v-1536zM256 160v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 928v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 1184v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M0 -192v1280q0 26 19 45t45 19h320v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1152h-256 v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152zM256 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1056q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128 v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M64 192q0 26 19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128 q-26 0 -45 19t-19 45zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM384 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 800q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192 q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM1280 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
-<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h32v-1280h-32q-92 0 -158 66t-66 158zM352 -128v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160v-1280h-1088zM512 416q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192 q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM640 1152h512v128h-512v-128zM1536 -128v1280h32q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-32z" />
-<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M0 512v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93l1 -3q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5 t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8z" />
-<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M64 1152l32 128h480l32 128h960l32 -192l-64 -32v-800l128 -192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320zM384 768q0 -53 37.5 -90.5t90.5 -37.5h128v384h-256v-256z" />
-<glyph unicode="&#xf0fd;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 192q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896z" />
-<glyph unicode="&#xf0fe;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128z" />
-<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM429 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23 l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
-<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM397 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10 l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
-<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M77 224q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM77 608q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23 l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
-<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M77 672q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM77 1056q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10 l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
-<glyph unicode="&#xf104;" horiz-adv-x="640" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
-<glyph unicode="&#xf105;" horiz-adv-x="640" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
-<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M77 352q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
-<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M77 800q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
-<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M0 288v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113zM128 544q0 -13 9.5 -22.5 t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832z" />
-<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M0 96v96h160h1600h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68zM256 416v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113zM384 416q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5 t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM864 112q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16z" />
-<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M0 160v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-832q-66 0 -113 47t-47 113zM128 288q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM512 128 q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M0 128v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM96 288q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM288 1136 q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16zM304 128q0 -33 23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5z" />
-<glyph unicode="&#xf10c;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273z" />
-<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M0 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z M896 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z" />
-<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M0 832v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136zM896 832v384 q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136z" />
-<glyph unicode="&#xf110;" horiz-adv-x="1568" d="M0 640q0 66 47 113t113 47t113 -47t47 -113t-47 -113t-113 -47t-113 47t-47 113zM176 1088q0 73 51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5t-51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5zM208 192q0 60 42 102t102 42q59 0 101.5 -42t42.5 -102t-42.5 -102 t-101.5 -42q-60 0 -102 42t-42 102zM608 1280q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM672 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1136 192q0 46 33 79t79 33t79 -33t33 -79 t-33 -79t-79 -33t-79 33t-33 79zM1168 1088q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1344 640q0 40 28 68t68 28t68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68z" />
-<glyph unicode="&#xf111;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5z" />
-<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101 t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19l-512 512q-19 19 -19 45z" />
-<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M0 496q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218q0 -87 -27 -168q136 -160 136 -398q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86t-170 -47.5t-171.5 -22t-167 -4.5 q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331zM224 320q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11 q-152 21 -195 21q-118 0 -187 -84t-69 -204zM384 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82zM1024 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34 t-43 76t-12.5 82z" />
-<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158zM128 224q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64 q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960z" />
-<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158zM128 331l256 315q44 53 116 87.5 t140 34.5h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-853zM171 163q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40z " />
-<glyph unicode="&#xf116;" horiz-adv-x="1792" />
-<glyph unicode="&#xf117;" horiz-adv-x="1792" />
-<glyph unicode="&#xf118;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 461q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38 q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5q-37 -121 -138 -195t-228 -74t-228 74t-138 195zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
-<glyph unicode="&#xf119;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 307q37 121 138 195t228 74t228 -74t138 -195q8 -25 -4 -48.5 t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
-<glyph unicode="&#xf11a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 448q0 26 19 45t45 19h640q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
-<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M0 512q0 212 150 362t362 150h896q212 0 362 -150t150 -362t-150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150t-150 362zM192 448q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23v128 q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128zM1152 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 640q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
-<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M0 128v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5zM128 128h1664v896h-1664v-896zM256 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM256 528v96 q0 16 16 16h224q16 0 16 -16v-96q0 -16 -16 -16h-224q-16 0 -16 16zM256 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM512 272v96q0 16 16 16h864q16 0 16 -16v-96q0 -16 -16 -16h-864q-16 0 -16 16zM512 784v96q0 16 16 16h96q16 0 16 -16v-96 q0 -16 -16 -16h-96q-16 0 -16 16zM640 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM768 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM896 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z M1024 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1152 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1280 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1408 528v96q0 16 16 16h112v240 q0 16 16 16h96q16 0 16 -16v-352q0 -16 -16 -16h-224q-16 0 -16 16zM1536 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z" />
-<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599z" />
-<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q205 96 384 110v192q-181 -16 -384 -117v-185zM448 836q215 111 384 118v197q-172 -8 -384 -126v-189zM832 730h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15 t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2q-23 0 -49 -3v-222zM1280 828q148 -42 384 90v189q-169 -91 -306 -91q-45 0 -78 8v-196z" />
-<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM640 32v64q0 14 9 23t23 9h960q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-960 q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM712 -52l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5 l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5zM1293 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
-<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45l397 -397v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45zM384 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221 q169 -173 169 -509q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45z" />
-<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M2 900.5q9 27.5 54 34.5l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5z M832 310l59 -31l318 -168l-60 355l-12 66l49 47l257 250l-356 52l-66 10l-30 60l-159 322v-963z" />
-<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M2 561q-5 22 4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5z" />
-<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M0 928v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864 q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23zM512 301l595 595h-595v-595zM557 256h595v595z" />
-<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M0 64q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136 q0 -52 -26 -96.5t-70 -69.5q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136zM96 64q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM96 1216q0 -40 28 -68 t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM736 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
-<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M0 448q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23zM16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56l-239 -18l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68 l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204zM128 32q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23zM544 -96v320q0 14 9 23t23 9t23 -9t9 -23v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23zM633 364 l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56zM1056 1184v320q0 14 9 23t23 9t23 -9t9 -23v-320 q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1216 1120q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23zM1280 960q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M96.5 986q-2.5 15 5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5t-10.5 37.5v45q0 83 65 156.5 t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25zM384 40v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28z" />
-<glyph unicode="&#xf129;" horiz-adv-x="640" d="M0 64v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM128 1152v192q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-192 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M98 1344q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45zM128 64v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf12b;" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1013 713q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80h126v-206h-514l-3 27q-4 28 -4 46z " />
-<glyph unicode="&#xf12c;" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1015 -183q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126v-206h-514l-4 27q-3 45 -3 46z" />
-<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M1.5 146.5q5.5 37.5 30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5zM128 128h768l336 384h-768z" />
-<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M0 0v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5 q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124 q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89 q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1z" />
-<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M0 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45 t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5zM256 704v512q0 132 94 226t226 94t226 -94t94 -226v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226z" />
-<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M13 64q0 13 10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23t-10 -23l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5 t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23zM128 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113l-101 -101 q-42 103 -42 214zM384 704v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
-<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M0 576v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150t-33.5 170.5zM640 79 q119 63 213 137q235 184 235 360v640h-448v-1137z" />
-<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h1408v1024h-1408v-1024z M384 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288zM1152 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288z" />
-<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M3.5 940q-8.5 25 3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96 q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37 zM384 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M36 464l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85 q-3 -1 -9 -1q-14 0 -23 9l-64 64q-17 19 -5 39zM1248 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
-<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M0 0l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334z" />
-<glyph unicode="&#xf137;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM346 640q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l102 102q19 19 19 45t-19 45l-307 307l307 307 q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
-<glyph unicode="&#xf138;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM506 288q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-454 454 q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45z" />
-<glyph unicode="&#xf139;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 544q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19l102 102 q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
-<glyph unicode="&#xf13a;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 736q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-102 102 q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
-<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M0 1408h1408l-128 -1438l-578 -162l-574 162zM262 1114l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674l16 175h-884z" />
-<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M12 75l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208l59 297h1505l-266 -1333l-804 -267z" />
-<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M0 0v352q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5 l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30zM832 1280q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
-<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181v-320h736q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28 t-28 68z" />
-<glyph unicode="&#xf140;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM256 640q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362zM384 640q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
-<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM512 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM1024 608v192q0 40 28 68t68 28h192 q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf142;" horiz-adv-x="384" d="M0 96v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h192q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
-<glyph unicode="&#xf143;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M256 575q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10t9 24q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128zM256 959q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128 q13 0 23 10q11 9 9 23q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128z" />
-<glyph unicode="&#xf144;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 320q0 -37 32 -56q16 -8 32 -8q17 0 32 9l544 320q32 18 32 55t-32 55l-544 320q-31 19 -64 1 q-32 -19 -32 -56v-640z" />
-<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M54 448.5q0 53.5 37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136t-136 56t-136 -56l-125 126q-37 37 -37 90.5z M342 512q0 -26 19 -45l362 -362q18 -18 45 -18t45 18l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45zM452 512l572 572l316 -316l-572 -572z" />
-<glyph unicode="&#xf146;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h896q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128 z" />
-<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M3 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18z" />
-<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M3 1261q9 19 29 19h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34z" />
-<glyph unicode="&#xf14a;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 640q0 -26 19 -45l358 -358q19 -19 45 -19t45 19l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19 t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
-<glyph unicode="&#xf14b;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 128h288l544 544l-288 288l-544 -544v-288zM352 320v56l52 52l152 -152l-52 -52h-56v96h-96zM494 494 q-14 13 3 30l291 291q17 17 30 3q14 -13 -3 -30l-291 -291q-17 -17 -30 -3zM864 1024l288 -288l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28z" />
-<glyph unicode="&#xf14c;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM282 320q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59 v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45z" />
-<glyph unicode="&#xf14d;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 448q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5t224 23.5v-160 q0 -42 40 -59q12 -5 24 -5q26 0 45 19l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5z" />
-<glyph unicode="&#xf14e;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 241v542l512 256v-542zM640 448l256 128l-256 128v-256z" />
-<glyph unicode="&#xf150;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 861q17 35 57 35h640q40 0 57 -35q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66z" />
-<glyph unicode="&#xf151;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 419q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66q-17 -35 -57 -35h-640q-40 0 -57 35z" />
-<glyph unicode="&#xf152;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -14 9 -23t23 -9h960q14 0 23 9t9 23v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960z M512 320v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52t-27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57z" />
-<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M0 514v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5 t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5 l12 3l5 2q13 5 26 -2q12 -7 15 -21l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M0 32v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215 h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M52 171l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242 t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48 t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50t53 -63.5t31.5 -76.5t13 -94q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5 t-17.5 18q-17 21 -2 41z" />
-<glyph unicode="&#xf156;" horiz-adv-x="898" d="M0 605v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171 q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22z" />
-<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M4 1360q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103 q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214z" />
-<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M0 256v128q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315t-126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9 h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23zM487 747h320q106 0 171 62t65 162t-65 162t-171 62h-320v-448z" />
-<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M0 672v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111 q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23z M373 896l32 -128h225l35 128h-292zM436 640l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5l81 299h-159zM822 768h139l-35 128h-70zM1118 896l34 -128h230l33 128h-297zM1187 640l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3l78 300h-162z" />
-<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M56 0l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89 t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200zM522 182q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30t24.5 40t9.5 51q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1 t-47.5 -1v-338zM522 674q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307z" />
-<glyph unicode="&#xf15b;" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
-<glyph unicode="&#xf15c;" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM384 160q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 416q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 672q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
-<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 768v106h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106 h-287zM988 -166l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121v-233h-584v90zM1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18 t-7.5 -29z" />
-<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 -150h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287 v106zM988 768v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248v119h121v-233h-584zM1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29 z" />
-<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h256q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf162;" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 261q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 1351l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17 v16h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 261q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
-<glyph unicode="&#xf163;" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 1285q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 327l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16 h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 1285q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
-<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M0 64v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45zM128 192q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45zM480 64v641q0 25 18 43.5t43 20.5q24 2 76 59 t101 121q68 87 101 120q18 18 31 48t17.5 48.5t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135 q0 -86 -55 -149q15 -44 15 -76q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5z" />
-<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M0 448q0 -26 19 -45t45 -19h288q26 0 45 19t19 45v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640zM128 960q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45zM480 447v641q0 26 19 44.5t45 19.5q35 1 158 44 q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76q55 -61 55 -149q-1 -78 -57.5 -135t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39 t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121t-76 59q-25 2 -43 20.5t-18 43.5z" />
-<glyph unicode="&#xf166;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 366q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73 q20 84 20 260q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5q-20 -87 -20 -260zM300 551v70h232v-70h-80v-423h-74v423h-78zM396 1313l24 -69t23 -69q35 -103 46 -158v-201h74v201l90 296h-75l-51 -195l-53 195 h-78zM542 205v290h66v-270q0 -24 1 -26q1 -15 15 -15q20 0 42 31v280h67v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54zM654 936q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38q-21 -29 -21 -87v-130zM721 923 v156q0 52 32 52t32 -52v-156q0 -51 -32 -51t-32 51zM790 128v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67zM857 200q16 -16 33 -16q29 0 29 49v157q0 50 -29 50q-17 0 -33 -16v-224zM907 893q0 -37 6 -55 q11 -27 43 -27q36 0 77 45v-40h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293zM1037 247v129q0 59 20 86q29 38 80 38t78 -38q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68v-9q0 -29 -2 -43q-3 -22 -15 -40 q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86zM1103 355h66v34q0 51 -33 51t-33 -51v-34z" />
-<glyph unicode="&#xf167;" d="M27 260q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99q-26 112 -26 350zM138 509h105v-569h100v569h107v94h-312 v-94zM266 1536h106l71 -263l68 263h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187zM463 43q0 -49 8 -73q12 -37 58 -37q48 0 102 61v-54h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391zM614 1028v175q0 80 28 117q38 51 105 51 q69 0 106 -51q28 -37 28 -117v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51q-28 38 -28 118zM704 1011q0 -70 43 -70t43 70v210q0 69 -43 69t-43 -69v-210zM798 -60h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89 v-663zM887 36v301q22 22 45 22q39 0 39 -67v-211q0 -67 -39 -67q-23 0 -45 22zM955 971v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75zM1130 100q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54 q2 9 2 58v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51q-28 -37 -28 -116v-173zM1219 245v46q0 68 45 68t45 -68v-46h-90z" />
-<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M5 384q-10 17 0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45l164 -286q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17zM536 539q18 32 531 942q25 45 64 45h241q22 0 31 -15q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37 q-10 -15 -32 -15h-239q-42 0 -66 45z" />
-<glyph unicode="&#xf169;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM227 396q8 -13 24 -13h185q31 0 50 36l199 352q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29 l125 -216v-1l-196 -346q-9 -14 0 -28zM638 516q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1l409 723q8 16 0 28q-7 12 -24 12h-187q-30 0 -49 -35z" />
-<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M0 640q0 96 1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150t-1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58 t-69.5 123q-14 65 -21.5 147.5t-8.5 136.5t-1 150zM640 320q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54t-30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640z" />
-<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M64 558l338 271l494 -305l-342 -285zM64 1099l490 319l342 -285l-494 -304zM407 166v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284l147 96v-108l-490 -293v-1l-1 1l-1 -1v1zM896 524l494 305l338 -271l-489 -319zM896 1133l343 285l489 -319l-338 -270z" />
-<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M0 -255v736h121v-618h928v618h120v-701l-1 -35v-1h-1132l-35 1h-1zM221 -17v151l707 1v-151zM227 243l14 150l704 -65l-13 -150zM270 563l39 146l683 -183l-39 -146zM395 928l77 130l609 -360l-77 -130zM707 1303l125 86l398 -585l-124 -85zM1136 1510l149 26l121 -697 l-149 -26z" />
-<glyph unicode="&#xf16d;" d="M0 69v1142q0 81 58 139t139 58h1142q81 0 139 -58t58 -139v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139zM171 110q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62 q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648zM461 643q0 -124 90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5t-90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5zM1050 1003q0 -29 20 -49t49 -20h174q29 0 49 20t20 49v165q0 28 -20 48.5 t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165z" />
-<glyph unicode="&#xf16e;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM274 640q0 -88 62 -150t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150zM838 640q0 -88 62 -150 t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150z" />
-<glyph unicode="&#xf170;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM309 384h94l104 160h522l104 -160h94l-459 691zM567 608l201 306l201 -306h-402z" />
-<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M0 1222q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34 t-6 39.5t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158zM173 285l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18t-76.5 27 t-73 43.5t-52 61.5q-25 96 -57 292zM243 1240q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5q-20 27 -56 44.5t-58 22t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43zM481 657q4 -91 77.5 -155t165.5 -56q91 8 152 84 t50 168q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5zM599 710q14 41 52 58q36 18 72.5 12t64 -35.5t27.5 -67.5q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82z" />
-<glyph unicode="&#xf172;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM260 1060q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63 q24 13 39.5 23t31 29t19.5 40q48 267 80 473q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54zM385 384q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71q0 7 5.5 26.5t3 32 t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6zM436 1073q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5t-52.5 16t-54.5 32.5zM607 653q-2 49 25.5 93t72.5 64 q70 31 141.5 -10t81.5 -118q8 -66 -36 -121t-110 -61t-119 40t-56 113zM687.5 660.5q0.5 -52.5 43.5 -70.5q39 -23 81 4t36 72q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5z" />
-<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M78 779v217q91 30 155 84q64 55 103 132q39 78 54 196h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170z" />
-<glyph unicode="&#xf174;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM413 744h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49v181 q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163z" />
-<glyph unicode="&#xf175;" horiz-adv-x="768" d="M3 237q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19t-5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35z" />
-<glyph unicode="&#xf176;" horiz-adv-x="768" d="M3 1043q-8 19 5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19z" />
-<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M64 637q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23z" />
-<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M0 544v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M0 634q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32 q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503zM683 1131q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17z" />
-<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M0 -27v557h682v-651zM0 614v565l682 94v-659h-682zM757 -131v661h907v-786zM757 614v669l907 125v-794h-907z" />
-<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M0 337v430q0 42 30 72t73 30q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30t-73 30t-30 73zM241 886q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20l-71 -131q107 -55 171 -153.5t64 -215.5 h-925zM245 184v666h918v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78zM455 1092q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5t-11.5 27.5 t-27.5 11.5t-27 -11.5t-11 -27.5zM876 1092q0 -16 11.5 -27.5t27.5 -11.5t27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5zM1203 337v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73z" />
-<glyph unicode="&#xf17c;" d="M11 -115q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5 t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195q-12 112 -16 310q-2 90 24 151.5 t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5 t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13 t16.5 -9.5q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5 q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5zM321 495q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54 t7 -70.5q46 24 7 92q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5 t60 -22.5q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18zM372 630q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12zM603 1190q2 -5 5 -6 q10 0 7 -15q-3 -20 8 -20q3 0 3 3q3 17 -2.5 30t-11.5 15q-9 2 -9 -7zM634 1110q0 12 19 15h10q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5zM721 1122q24 11 32 -2q3 -6 -3 -9q-4 -1 -11.5 6.5t-17.5 4.5zM835 1196l4 -2q14 -4 18 -31q0 -3 8 2l2 3q0 11 -5 19.5t-11 12.5 t-9 3q-14 -1 -7 -7zM851 1381.5q-1 -2.5 3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9zM981 1002q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20q-2 8 -6.5 11.5t-13 5 t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5z" />
-<glyph unicode="&#xf17d;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM112 640q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81t99.5 48l37 13 q4 1 13 3.5t13 4.5q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21zM126 775q302 0 606 80q-120 213 -244 378q-138 -65 -234 -186t-128 -272zM350 134q184 -150 418 -150q132 0 256 52q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5 t-103 -148zM609 1276q1 1 2 1q-1 0 -2 -1zM613 1277q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5l12.5 17.5q-185 164 -433 164q-76 0 -155 -19zM909 797q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5 t36.5 -6t25 -4.5l10 -2q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5zM1007 565q87 -239 128 -469q111 75 185 189.5t96 250.5q-210 60 -409 29z" />
-<glyph unicode="&#xf17e;" d="M0 1024q0 159 112.5 271.5t271.5 112.5q130 0 234 -80q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225 t-55.5 273.5q0 73 16 150q-80 104 -80 234zM376 399q0 -92 122 -157.5t291 -65.5q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12 t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5 q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75z" />
-<glyph unicode="&#xf180;" horiz-adv-x="1664" d="M0 640q0 75 53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41l619 619l2 -3q53 -53 53 -128t-53 -128l-587 -587 q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128zM302 660q0 21 14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36z" />
-<glyph unicode="&#xf181;" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM160 192q0 -14 9 -23t23 -9h480q14 0 23 9t9 23v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024zM832 576q0 -14 9 -23t23 -9h480q14 0 23 9t9 23 v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640z" />
-<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M0 480q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192 q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43q-40 0 -68 28t-28 68zM416 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
-<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M0 416v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68z M288 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
-<glyph unicode="&#xf184;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM399.5 766q8.5 -37 24.5 -59l349 -473l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5 t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85z" />
-<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M44 363q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29q-4 -15 -20 -20 l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20zM320 640q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5 t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5z" />
-<glyph unicode="&#xf186;" d="M0 640q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384z" />
-<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M64 1088v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM128 -64v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM704 704q0 -26 19 -45t45 -19h256 q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
-<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M32 576q0 26 19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19t19 -45t-19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19 t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45z M512 1152q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5h-640z" />
-<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M-1 1004q0 11 3 16l4 6q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24 q17 19 38 30q53 26 239 24q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5 t13 3t20 0.5l288 2q39 5 64 -2.5t31 -16.5l6 -10q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12 q-30 21 -70 64t-68.5 77.5t-61 58t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211 t-130.5 272q-6 16 -6 27z" />
-<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M0 391q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5q0 -68 -37 -139.5 t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5zM181 320q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5zM413.5 230.5 q-40.5 92.5 6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5q-45 -102 -158 -150t-224 -12q-107 34 -147.5 126.5zM495 257.5q9 -34.5 43 -50.5t74.5 -2.5t62.5 47.5q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5zM705 399 q-17 -31 13 -45q14 -5 29 0.5t22 18.5q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5zM1165 1274q-6 28 9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158 q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5zM1224 1047q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5t54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37z" />
-<glyph unicode="&#xf18b;" d="M0 638q0 187 83.5 349.5t229.5 269.5t325 137v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495zM398 -34q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211q-171 -94 -368 -94q-196 0 -367 94zM898 909v485q179 -30 325 -137t229.5 -269.5 t83.5 -349.5q0 -280 -181 -495q-204 99 -330.5 306.5t-126.5 459.5z" />
-<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M0 -211q0 19 13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23 t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89 t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283 q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32z" />
-<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M21 217v66h1238v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5zM21 354v255h1238v-255h-1238zM21 682v255h1238v-255h-1238zM21 1010v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5v-67h-1238z" />
-<glyph unicode="&#xf18e;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 544v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5z" />
-<glyph unicode="&#xf190;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 640q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23z" />
-<glyph unicode="&#xf191;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM448 640q0 33 27 52l448 320q17 12 37 12q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52z" />
-<glyph unicode="&#xf192;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
-<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M0 320q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5zM416 1348q-2 16 6 42 q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455l198 99l58 -114l-256 -128q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5z" />
-<glyph unicode="&#xf194;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 806q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5 q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237q104 139 172.5 292.5t82.5 226.5q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143 q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7z" />
-<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M0 608v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31 l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26z" />
-<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M0 576q0 12 38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113q-110 -64 -268 -64h-128v64 h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5zM323 336h29q157 0 273 64h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96zM323 816l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5 t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64h-29zM1739 484l81 -30q68 48 68 122t-68 122l-81 -30q53 -36 53 -92t-53 -92z" />
-<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M0 796q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5 t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72 l-55 163l-153 -53q-29 -9 -50 -9q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5zM620 811l105 -313l310 105l-105 315z" />
-<glyph unicode="&#xf199;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 352q0 -40 28 -68t68 -28h832q40 0 68 28t28 68v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99 q-98 -69 -164 -69t-164 69q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436zM256 928q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13 t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68z" />
-<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM41 640q0 -173 68 -331.5t182.5 -273t273 -182.5t331.5 -68t331.5 68t273 182.5t182.5 273t68 331.5 t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5zM127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM254 1062q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5 q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21t14.5 -24t14 -23q63 -107 63 -212q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15 t-1.5 -18.5t9 -16.5t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5zM679 -97l230 670l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1282 -24l235 678q59 169 59 276q0 42 -6 79 q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5z" />
-<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M0 455q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360l272 133v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5zM1134 860v172q277 -33 481 -157l140 79l37 -390l-525 114l147 83 q-119 70 -280 99z" />
-<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M0 -128q0 26 20.5 45t48.5 19h1782q28 0 48.5 -19t20.5 -45v-128h-1920v128zM0 1024v128l960 384l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128zM128 0v64q0 26 20.5 45t48.5 19h59v768h256v-768h128v768h256v-768h128v768h256 v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664z" />
-<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M0 1024q0 23 22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31t-22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433 q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31zM512 384l18 316l574 -181q22 -7 48 -7t48 7l574 181l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128z" />
-<glyph unicode="&#xf19e;" d="M109 1536q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610l13 -707q-62 11 -105 11 q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287z" />
-<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M111 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5t-59.5 -93 t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131zM297 228q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13 t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5zM403 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5 q53 56 53 159q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160z" />
-<glyph unicode="&#xf1a1;" horiz-adv-x="1984" d="M0 722q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58 q94 0 160 -66t66 -160q0 -62 -31 -114t-83 -82q5 -33 5 -61q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5zM77 722q0 -67 51 -111 q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM178 465q0 -101 59.5 -194t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5 t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5zM555 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM661 209.5q0 16.5 11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77q11 11 27 11t27 -11t11 -27.5t-11 -27.5 q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5zM1153 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM1555 1350q0 -45 32 -77t77 -32t77 32t32 77t-32 77t-77 32t-77 -32t-32 -77zM1672 843q131 -105 178 -238 q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28z" />
-<glyph unicode="&#xf1a2;" d="M0 193v894q0 133 94 227t226 94h896q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227zM155 709q0 -37 19.5 -67.5t52.5 -45.5q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54 q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43 q-51 0 -87 -36.5t-36 -87.5zM493 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM560 375q0 11 8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18z M882 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM1143 1120q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50z" />
-<glyph unicode="&#xf1a3;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 502q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14 q19 0 32.5 -14t13.5 -33v-54l60 -28l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122zM806 500q0 -80 58 -137t139 -57t138.5 57t57.5 139v122h-150v-126q0 -20 -13.5 -33.5t-33.5 -13.5 q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123z" />
-<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M0 336v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58l-131 61v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5zM1062 332 v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275h328v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5z" />
-<glyph unicode="&#xf1a5;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM64 640h704v-704h480q93 0 158.5 65.5t65.5 158.5v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480z " />
-<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M0 271v697h328v286h204v-983h-532zM205 435h123v369h-123v-369zM614 271h205v697h-205v-697zM614 1050h205v204h-205v-204zM901 26v163h328v82h-328v697h533v-942h-533zM1106 435h123v369h-123v-369zM1516 26v163h327v82h-327v697h532v-942h-532zM1720 435h123v369h-123 v-369z" />
-<glyph unicode="&#xf1a7;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM293 388l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229t-88.5 229t-213.5 95q-74 0 -141 -36h-186v-840z M504 804v277q28 17 70 17q53 0 91 -45t38 -109t-38 -109.5t-91 -45.5q-43 0 -70 15zM636 -39l211 41v206q51 -19 117 -19q125 0 213 95t88 229t-88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101v-636zM847 377v277q28 17 70 17q53 0 91 -45.5t38 -109.5 t-38 -109t-91 -45q-43 0 -70 15z" />
-<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M41 455q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80 t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5l1 -21q75 3 143.5 -20.5 t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14q6 -5 28 -23.5t25.5 -22t19 -18 t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63 t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27zM764 676q10 1 32.5 7t34.5 6q19 0 35 -10l-96 -20zM822 568l48 12l109 -177l-73 -48zM859 884q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1 v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5 t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43zM1061 45h31l10 -83l-41 -12v95zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM1116 29 q21 2 60.5 8.5t72 10t60.5 3.5h14q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13t-54 -9.5t-53.5 -7.5t-32 -4.5zM1947 1528l1 3l2 4l-1 -5zM1950 1535v1v-1zM1950 1535l1 1z" />
-<glyph unicode="&#xf1a9;" d="M0 520q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5 t19.5 -177.5q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302zM333 256q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5zM685.5 -76q-0.5 -10 7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5 q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16zM852 31q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5 t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10q-29 -12 -78 -56q-26 -24 -12 -44z" />
-<glyph unicode="&#xf1aa;" d="M0 78q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160l151 -152l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5 t-60 145.5zM2 1202q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5t149.5 -87.5l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5 q-70 15 -115 71t-45 129zM446 803l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126t135.5 51q85 0 145 -60.5t60 -145.5q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152 l-160 -160zM776 793l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5q76 -11 126.5 -68.5t50.5 -134.5q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30 l-152 152z" />
-<glyph unicode="&#xf1ab;" d="M0 -16v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5q20 0 20 -21v-418l147 -47v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3zM39 15l694 232v1032l-694 -233v-1031zM147 293q6 4 82 92 q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8 t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110 q-4 -2 -19.5 -4t-18.5 0zM268 933l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41zM310 -116q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11q73 -37 159.5 -61.5t157.5 -24.5 q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5l-43 73l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16zM777 1294l573 -184v380zM885 453l102 -31l45 110l211 -65l37 -135l102 -31l-181 657l-100 31z M1071 630l76 185l63 -227z" />
-<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M0 -96v1088q0 66 47 113t113 47h128q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113zM512 -96v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-163q58 -34 93 -93t35 -128v-768q0 -106 -75 -181 t-181 -75h-864q-66 0 -113 47t-47 113zM640 896h896v256h-160q-40 0 -68 28t-28 68v160h-640v-512zM736 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM736 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9 h-128q-14 0 -23 -9t-9 -23v-128zM736 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 256q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23 v-128zM1248 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128z" />
-<glyph unicode="&#xf1ad;" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM256 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 1184q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 96v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23zM512 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM512 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 928q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM1024 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64z" />
-<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M64 1056q0 40 28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68zM416 1152q0 93 65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
-<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M0 724q0 80 42 139.5t119 59.5q76 0 141.5 -55.5t100.5 -134t35 -152.5q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152zM256 19q0 86 56 191.5t139.5 192.5t187.5 146t193 59q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45 t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146zM333 1163q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151zM884 1064 q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5q-61 0 -105 39t-63 92.5t-19 113.5zM1226 581q0 74 35 152.5t100.5 134t141.5 55.5q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5 q-77 0 -119 59t-42 139z" />
-<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M64 1008q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5z" />
-<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M0 256v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65zM134 1026l698 -254l698 254l-698 254zM896 -93l640 349v636l-640 -233v-752z" />
-<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M0 96v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70v-400l434 -186q36 -16 57 -48t21 -70v-416q0 -36 -19 -67t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4 l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67zM172 531l404 -173l404 173l-404 173zM640 -96l384 192v314l-384 -164v-342zM647 1219l441 -189l441 189l-441 189zM1152 651l384 165v266l-384 -164v-267zM1196 531l404 -173l404 173l-404 173zM1664 -96 l384 192v314l-384 -164v-342z" />
-<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M0 22v1260h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5 t45.5 113.5q0 144 -190 144h-260v-294zM1137 477q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658q0 -111 57.5 -171.5t166.5 -60.5q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347zM1337 1073h511v124 h-511v-124zM1388 576h408q-18 195 -200 195q-90 0 -146 -52.5t-62 -142.5z" />
-<glyph unicode="&#xf1b5;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 254h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5t-56.5 60.5t-79 29.5 t-97 8.5h-371v-787zM301 388v217h189q124 0 124 -113q0 -104 -128 -104h-185zM301 723v184h163q119 0 119 -90q0 -94 -106 -94h-176zM838 538q0 -135 79 -217t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20q-68 0 -104 38t-36 107h411q1 10 1 30 q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216zM964 911v77h319v-77h-319zM996 600q4 56 39 89t91 33q113 0 124 -122h-254z" />
-<glyph unicode="&#xf1b6;" horiz-adv-x="2048" d="M0 764q0 86 61 146.5t146 60.5q73 0 130 -46t73 -117l783 -315q49 29 106 29q14 0 21 -1l173 248q1 114 82 194.5t195 80.5q115 0 196.5 -81t81.5 -196t-81.5 -196.5t-196.5 -81.5l-265 -194q-8 -80 -67.5 -133.5t-138.5 -53.5q-73 0 -130 46t-73 117l-783 315 q-51 -30 -106 -30q-85 0 -146 61t-61 147zM55 764q0 -64 44.5 -108.5t107.5 -44.5q11 0 33 4l-64 26q-33 14 -52.5 44.5t-19.5 66.5q0 50 35.5 85.5t85.5 35.5q20 0 41 -8v1l76 -31q-20 37 -56.5 59t-78.5 22q-63 0 -107.5 -44.5t-44.5 -107.5zM1164 244q19 -37 55.5 -59 t79.5 -22q63 0 107.5 44.5t44.5 107.5t-44.5 108t-107.5 45q-13 0 -33 -4q2 -1 20 -8t21.5 -8.5t18.5 -8.5t19 -10t16 -11t15.5 -13.5t11 -14.5t10 -18t5 -21t2.5 -25q0 -50 -35.5 -85.5t-85.5 -35.5q-14 0 -31.5 4.5t-29 9t-31.5 13.5t-28 12zM1584 767q0 -77 54.5 -131.5 t131.5 -54.5t132 54.5t55 131.5t-55 131.5t-132 54.5q-76 0 -131 -54.5t-55 -131.5zM1623 767q0 62 43.5 105.5t104.5 43.5t105 -44t44 -105t-43.5 -104.5t-105.5 -43.5q-61 0 -104.5 43.5t-43.5 104.5z" />
-<glyph unicode="&#xf1b7;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 693q0 -53 38 -91t92 -38q36 0 66 18l489 -197q10 -44 45.5 -73t81.5 -29q50 0 86.5 34t41.5 83l167 122 q71 0 122 50.5t51 122.5t-51 123t-122 51q-72 0 -122.5 -50.5t-51.5 -121.5l-108 -155q-2 0 -6.5 0.5t-6.5 0.5q-35 0 -67 -19l-489 197q-10 44 -45.5 73t-80.5 29q-54 0 -92 -38t-38 -92zM162 693q0 40 28 68t68 28q27 0 49.5 -14t34.5 -37l-48 19q-29 11 -56.5 -2 t-38.5 -41q-12 -29 -0.5 -57t39.5 -40v-1l40 -16q-14 -2 -20 -2q-40 0 -68 27.5t-28 67.5zM855 369q5 -2 47 -19q29 -12 58 0.5t41 41.5q11 29 -1 57.5t-41 40.5l-40 16q14 2 21 2q39 0 67 -27.5t28 -67.5t-28 -67.5t-67 -27.5q-59 0 -85 51zM1118 695q0 48 34 82t83 34 q48 0 82 -34t34 -82t-34 -82t-82 -34q-49 0 -83 34t-34 82zM1142 696q0 -39 27.5 -66t65.5 -27t65.5 27t27.5 66q0 38 -27.5 65.5t-65.5 27.5t-65.5 -27.5t-27.5 -65.5z" />
-<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M16 970l433 -17l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188zM270.5 158q-3.5 28 4 65t12 55t21.5 64t19 53q78 -12 509 -28l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5 q-11 27 -14.5 55zM294 1124l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5t36 -39.5t32 -35q-47 -63 -265 -435l-317 187zM782 1524l405 -1q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190l142 83l-220 -373l-419 20l151 86q-34 89 -75 166 t-75.5 123.5t-64.5 80t-47 46.5zM953 197l211 362l7 -173q170 -16 283 -5t170 33l56 22l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164zM1218 847l313 195l19 11l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22 t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436z" />
-<glyph unicode="&#xf1b9;" horiz-adv-x="1984" d="M0 160v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h704q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-928v-128q0 -80 -56 -136 t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23zM160 448q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 768h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 448q0 -66 47 -113t113 -47t113 47t47 113 t-47 113t-113 47t-113 -47t-47 -113z" />
-<glyph unicode="&#xf1ba;" horiz-adv-x="1984" d="M0 32v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h64q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-64q0 -80 -56 -136t-136 -56 t-136 56t-56 136v64h-928v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23zM160 320q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 640h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 320 q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113z" />
-<glyph unicode="&#xf1bb;" d="M32 64q0 26 19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45t-19 -45t-45 -19 h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45z" />
-<glyph unicode="&#xf1bc;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM237 886q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37q159 0 309.5 -34t253.5 -95q21 -12 40 -12 q29 0 50.5 20.5t21.5 51.5q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5zM289 637q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5q0 40 -35 61 q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64zM321 406q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52z" />
-<glyph unicode="&#xf1bd;" d="M0 11v1258q0 58 40.5 98.5t98.5 40.5h1258q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5zM71 11q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258z M121 11v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5zM121 709v560q0 7 5.5 12.5 t12.5 5.5h1258q7 0 12.5 -5.5t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137zM246 413q-24 203 166 305l129 -270l-255 -61q-14 -3 -26 4.5t-14 21.5z" />
-<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M0 405l17 128q2 9 9 9t9 -9l20 -128l-20 -126q-2 -9 -9 -9t-9 9zM79 405l23 207q0 9 9 9q8 0 10 -9l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10zM169 405l21 245q2 12 12 12q11 0 11 -12l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11zM259 405l21 252q0 13 13 13 q12 0 14 -13l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13zM350 405l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5zM401 159zM442 405l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5l21 -380l-21 -246q0 -7 -5 -12.5 t-12 -5.5q-16 0 -18 18zM534 403l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19zM628 405l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5l18 -506l-18 -242q-2 -21 -22 -21q-19 0 -21 21zM723 405l14 -241 q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17zM784 164zM817 405l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18zM913 404l12 492q1 12 9 20t19 8t18.5 -8 t8.5 -20l14 -492l-14 -236q0 -11 -8 -19t-19 -8t-19 8t-9 19zM1010 405q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11q11 0 20 9q9 7 9 20l1 24l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6zM1079 169zM1103 404l12 636v3q2 15 12 24q9 7 20 7 q8 0 15 -5q14 -8 16 -26l14 -639l-14 -231q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114zM1204 174v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22z" />
-<glyph unicode="&#xf1c0;" d="M0 0v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 384v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 768 v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 1152v128q0 69 103 128t280 93.5t385 34.5t385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128z" />
-<glyph unicode="&#xf1c1;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM257 60q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4 q52 85 107 197q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38 q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83z M714 842q1 7 7 44q0 3 7 43q1 4 4 8q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2q-15 -42 -2 -132zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1098 353q76 -28 124 -28q14 0 18 1q0 1 -2 3q-24 24 -140 24z" />
-<glyph unicode="&#xf1c2;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM233 661h70l164 -661h159l128 485q7 20 10 46q2 16 2 24 h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300v-107zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c3;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM429 0h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4 h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107h-290v-107h68l189 -272l-194 -283h-68v-106zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c4;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM416 0h327v106h-93v167h137q76 0 118 15q67 23 106.5 87 t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92v-106zM650 386v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15h-119zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c5;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 0v192l192 192l128 -128l384 384l320 -320v-320 h-1024zM256 704q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c6;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536zM384 192q0 25 8 52q21 63 120 396 v128h128v-128h79q22 0 39 -13t23 -34l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5zM512 192q0 -26 37.5 -45t90.5 -19t90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45zM512 896h128v128h-128v-128zM512 1152h128v128h-128v-128 zM640 768h128v128h-128v-128zM640 1024h128v128h-128v-128zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c7;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 288v192q0 14 9 23t23 9h131l166 167q16 15 35 7 q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23zM762 206.5q1 -26.5 20 -44.5q20 -17 44 -17q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5z M973.5 54.5q2.5 -26.5 23.5 -42.5q18 -15 40 -15q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c8;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 256v384q0 52 38 90t90 38h384q52 0 90 -38t38 -90 v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90zM960 403v90l265 266q9 9 23 9q4 0 12 -2q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1c9;" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM254 429q-14 19 0 38l226 301q8 11 21 12.5t24 -6.5 l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5zM636 43l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5l-63 10q-13 2 -20.5 13t-5.5 24zM947.5 181 q-1.5 13 6.5 24l182 243l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5l226 -301q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
-<glyph unicode="&#xf1ca;" d="M39 1286h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132 t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390z" />
-<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M0 367v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64v-546q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64zM154 511l193 129l-193 129v-258zM216 367l603 -402v359l-334 223zM216 913l269 -180l334 223v359zM624 640 l272 -182l272 182l-272 182zM973 -35l603 402l-269 180l-334 -223v-359zM973 956l334 -223l269 180l-603 402v-359zM1445 640l193 -129v258z" />
-<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M0 407q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5 h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55t121.5 -21 q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z " />
-<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM128 640q0 -190 90 -361l194 194q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361zM512 640 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM535 -38q171 -90 361 -90t361 90l-194 194q-82 -28 -167 -28t-167 28zM535 1318l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90t-361 -90z M1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
-<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M0 640q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348z" />
-<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
-<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM44 640q0 -173 67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331 t-67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331zM87 640q0 205 98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385zM206 217l58 34q29 -49 73 -99 l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13v-66q-208 6 -385 109.5t-283 275.5zM207 1063q106 172 282 275.5t385 109.5v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98zM415 805q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10 t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162q-67 77 -98 169l232 80q-14 42 -14 85t14 85zM918 -102 q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99l58 -34q-106 -172 -283 -275.5t-385 -109.5v66zM918 1382v66q209 -6 385 -109.5t282 -275.5l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13zM1516 428q36 103 36 212q0 112 -35 212l82 28 q-19 56 -49 112l57 33q98 -180 98 -385t-98 -385l-57 33q27 52 49 112z" />
-<glyph unicode="&#xf1d2;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 218q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5 t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85q0 -53 41 -77v-3q-113 -37 -113 -139zM382 225q0 64 98 64q102 0 102 -61q0 -66 -93 -66 q-107 0 -107 63zM395 693q0 90 77 90q36 0 55 -25.5t19 -63.5q0 -85 -74 -85q-77 0 -77 84zM755 1072q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392q0 -50 -3 -75z M966 771q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117z" />
-<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M68 7q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47q98 0 218 47v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58q0 -31 22.5 -51.5t58 -32 t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5zM272 18q0 -101 172 -101q151 0 151 105q0 100 -165 100q-158 0 -158 -104zM293 775q0 -135 124 -135q119 0 119 137q0 61 -30 102t-89 41 q-124 0 -124 -145zM875 1389q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5t-39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5zM901 220q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134h-222zM1217 901v190h96v76q0 54 -6 89h227q-6 -41 -6 -165 h171v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6z" />
-<glyph unicode="&#xf1d4;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM368 1135l323 -589v-435h134v436l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3 q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150z" />
-<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M57 953q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5t-78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153 t-153 102t-186 38t-186 -38t-153 -102t-102 -153t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265zM113.5 38.5q10.5 121.5 29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5t136.5 -56.5 t56.5 -136.5t-57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5z" />
-<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M18 264q0 275 252 466q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5 t3.5 -5t2 -3.5q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9 t-98 20t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20 q-18 -41 -54.5 -74.5t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100z" />
-<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M0 858q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490z M380 1075q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5t-25 66t-66 25q-43 0 -76 -25.5t-33 -65.5zM816 404q0 143 81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109q-150 -37 -218 -37 q-169 0 -311 70.5t-223.5 191.5t-81.5 264zM888 1075q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5t-24.5 66t-65.5 25q-43 0 -76 -25.5t-33 -65.5zM1160 568q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5 t-22.5 -49.5zM1559 568q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5z" />
-<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M0 508q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55z" />
-<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M0 508q-3 39 32 59l1664 960q35 21 68 -2q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55zM209 522l336 -137l863 639l-478 -797l492 -201 l221 1323z" />
-<glyph unicode="&#xf1da;" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45zM512 480v64q0 14 9 23t23 9h224v352 q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf1db;" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5z" />
-<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M62 1338q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5 t45 -15t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18 q-15 10 -45 12t-53 2t-41 14t-18 45z" />
-<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M24 926q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108 q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179q-64 117 -64 259z" />
-<glyph unicode="&#xf1de;" d="M0 736v64q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM128 -96v672h256v-672q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM128 960v416q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-416h-256zM512 224v64q0 40 28 68 t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 64h256v-160q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v160zM640 448v928q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-928h-256zM1024 992v64q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1152 -96v928h256v-928q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 1216v160q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-160h-256z" />
-<glyph unicode="&#xf1e0;" d="M0 640q0 133 93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86q133 0 226.5 -93.5t93.5 -226.5 t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5z" />
-<glyph unicode="&#xf1e1;" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 640q0 -88 62.5 -150.5t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5 t150.5 62.5t62.5 150.5t-62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5z" />
-<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M0 448q0 143 55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68l243 244l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5 t-225 150t-150 225t-55.5 273.5zM170 615q10 -24 35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49t-34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49zM1376 1472q0 13 9 23q10 9 23 9t23 -9l90 -91q10 -9 10 -22.5t-10 -22.5 q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23zM1536 1408v96q0 14 9 23t23 9t23 -9t9 -23v-96q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1605 1242.5q0 13.5 10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5z M1605 1381.5q0 13.5 10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5zM1632 1312q0 14 9 23t23 9h96q14 0 23 -9t9 -23t-9 -23t-23 -9h-96q-14 0 -23 9t-9 23z" />
-<glyph unicode="&#xf1e3;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1e4;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1e5;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1e6;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1e7;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1e8;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1e9;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1ea;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1eb;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1ec;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1ed;" horiz-adv-x="1792" />
-<glyph unicode="&#xf1ee;" horiz-adv-x="1792" />
-<glyph unicode="&#xf500;" horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-<glyph horiz-adv-x="1792" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/milfs/css/font-awesome/fonts/fontawesome-webfont.ttf b/milfs/css/font-awesome/fonts/fontawesome-webfont.ttf
deleted file mode 100644
index 5cd6cff..0000000
Binary files a/milfs/css/font-awesome/fonts/fontawesome-webfont.ttf and /dev/null differ
diff --git a/milfs/css/font-awesome/fonts/fontawesome-webfont.woff b/milfs/css/font-awesome/fonts/fontawesome-webfont.woff
deleted file mode 100644
index 9eaecb3..0000000
Binary files a/milfs/css/font-awesome/fonts/fontawesome-webfont.woff and /dev/null differ
diff --git a/milfs/css/font-awesome/less/bordered-pulled.less b/milfs/css/font-awesome/less/bordered-pulled.less
deleted file mode 100644
index 48a7004..0000000
--- a/milfs/css/font-awesome/less/bordered-pulled.less
+++ /dev/null
@@ -1,16 +0,0 @@
-// Bordered & Pulled
-// -------------------------
-
-.@{fa-css-prefix}-border {
-  padding: .2em .25em .15em;
-  border: solid .08em @fa-border-color;
-  border-radius: .1em;
-}
-
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-.@{fa-css-prefix} {
-  &.pull-left { margin-right: .3em; }
-  &.pull-right { margin-left: .3em; }
-}
diff --git a/milfs/css/font-awesome/less/core.less b/milfs/css/font-awesome/less/core.less
deleted file mode 100644
index 500ca3e..0000000
--- a/milfs/css/font-awesome/less/core.less
+++ /dev/null
@@ -1,12 +0,0 @@
-// Base Class Definition
-// -------------------------
-
-.@{fa-css-prefix} {
-  display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
diff --git a/milfs/css/font-awesome/less/fixed-width.less b/milfs/css/font-awesome/less/fixed-width.less
deleted file mode 100644
index 4fd1ed3..0000000
--- a/milfs/css/font-awesome/less/fixed-width.less
+++ /dev/null
@@ -1,6 +0,0 @@
-// Fixed Width Icons
-// -------------------------
-.@{fa-css-prefix}-fw {
-  width: (18em / 14);
-  text-align: center;
-}
diff --git a/milfs/css/font-awesome/less/font-awesome.less b/milfs/css/font-awesome/less/font-awesome.less
deleted file mode 100644
index 343bbe1..0000000
--- a/milfs/css/font-awesome/less/font-awesome.less
+++ /dev/null
@@ -1,17 +0,0 @@
-/*!
- *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-
-@import "variables";
-@import "mixins";
-@import "path";
-@import "core";
-@import "larger";
-@import "fixed-width";
-@import "list";
-@import "bordered-pulled";
-@import "spinning";
-@import "rotated-flipped";
-@import "stacked";
-@import "icons";
diff --git a/milfs/css/font-awesome/less/icons.less b/milfs/css/font-awesome/less/icons.less
deleted file mode 100644
index 108d4ac..0000000
--- a/milfs/css/font-awesome/less/icons.less
+++ /dev/null
@@ -1,412 +0,0 @@
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-
-.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }
-.@{fa-css-prefix}-music:before { content: @fa-var-music; }
-.@{fa-css-prefix}-search:before { content: @fa-var-search; }
-.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }
-.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }
-.@{fa-css-prefix}-star:before { content: @fa-var-star; }
-.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }
-.@{fa-css-prefix}-user:before { content: @fa-var-user; }
-.@{fa-css-prefix}-film:before { content: @fa-var-film; }
-.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }
-.@{fa-css-prefix}-th:before { content: @fa-var-th; }
-.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }
-.@{fa-css-prefix}-check:before { content: @fa-var-check; }
-.@{fa-css-prefix}-times:before { content: @fa-var-times; }
-.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }
-.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }
-.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }
-.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }
-.@{fa-css-prefix}-gear:before,
-.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }
-.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }
-.@{fa-css-prefix}-home:before { content: @fa-var-home; }
-.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }
-.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }
-.@{fa-css-prefix}-road:before { content: @fa-var-road; }
-.@{fa-css-prefix}-download:before { content: @fa-var-download; }
-.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }
-.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }
-.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }
-.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }
-.@{fa-css-prefix}-rotate-right:before,
-.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }
-.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }
-.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }
-.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }
-.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }
-.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }
-.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }
-.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }
-.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }
-.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }
-.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }
-.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }
-.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }
-.@{fa-css-prefix}-book:before { content: @fa-var-book; }
-.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }
-.@{fa-css-prefix}-print:before { content: @fa-var-print; }
-.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }
-.@{fa-css-prefix}-font:before { content: @fa-var-font; }
-.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }
-.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }
-.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }
-.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }
-.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }
-.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }
-.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }
-.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }
-.@{fa-css-prefix}-list:before { content: @fa-var-list; }
-.@{fa-css-prefix}-dedent:before,
-.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }
-.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }
-.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }
-.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }
-.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }
-.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }
-.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }
-.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }
-.@{fa-css-prefix}-edit:before,
-.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }
-.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }
-.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }
-.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }
-.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }
-.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }
-.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }
-.@{fa-css-prefix}-play:before { content: @fa-var-play; }
-.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }
-.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }
-.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }
-.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }
-.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }
-.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }
-.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }
-.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }
-.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }
-.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }
-.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }
-.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }
-.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }
-.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }
-.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }
-.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }
-.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }
-.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }
-.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }
-.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }
-.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }
-.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }
-.@{fa-css-prefix}-mail-forward:before,
-.@{fa-css-prefix}-share:before { content: @fa-var-share; }
-.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }
-.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }
-.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }
-.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }
-.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }
-.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }
-.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }
-.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }
-.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }
-.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }
-.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }
-.@{fa-css-prefix}-warning:before,
-.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }
-.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }
-.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }
-.@{fa-css-prefix}-random:before { content: @fa-var-random; }
-.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }
-.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }
-.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }
-.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }
-.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }
-.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }
-.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }
-.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }
-.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }
-.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }
-.@{fa-css-prefix}-bar-chart-o:before { content: @fa-var-bar-chart-o; }
-.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }
-.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }
-.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }
-.@{fa-css-prefix}-key:before { content: @fa-var-key; }
-.@{fa-css-prefix}-gears:before,
-.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }
-.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }
-.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }
-.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }
-.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }
-.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }
-.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }
-.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }
-.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }
-.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }
-.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }
-.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }
-.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }
-.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }
-.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }
-.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }
-.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }
-.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }
-.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }
-.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }
-.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }
-.@{fa-css-prefix}-github:before { content: @fa-var-github; }
-.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }
-.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }
-.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }
-.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }
-.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }
-.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }
-.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }
-.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }
-.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }
-.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }
-.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }
-.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }
-.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }
-.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }
-.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }
-.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }
-.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }
-.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }
-.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }
-.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }
-.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }
-.@{fa-css-prefix}-group:before,
-.@{fa-css-prefix}-users:before { content: @fa-var-users; }
-.@{fa-css-prefix}-chain:before,
-.@{fa-css-prefix}-link:before { content: @fa-var-link; }
-.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }
-.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }
-.@{fa-css-prefix}-cut:before,
-.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }
-.@{fa-css-prefix}-copy:before,
-.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }
-.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }
-.@{fa-css-prefix}-save:before,
-.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }
-.@{fa-css-prefix}-square:before { content: @fa-var-square; }
-.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }
-.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }
-.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }
-.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }
-.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }
-.@{fa-css-prefix}-table:before { content: @fa-var-table; }
-.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }
-.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }
-.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }
-.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }
-.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }
-.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }
-.@{fa-css-prefix}-money:before { content: @fa-var-money; }
-.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }
-.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }
-.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }
-.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }
-.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }
-.@{fa-css-prefix}-unsorted:before,
-.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }
-.@{fa-css-prefix}-sort-down:before,
-.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }
-.@{fa-css-prefix}-sort-up:before,
-.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }
-.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }
-.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }
-.@{fa-css-prefix}-rotate-left:before,
-.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }
-.@{fa-css-prefix}-legal:before,
-.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }
-.@{fa-css-prefix}-dashboard:before,
-.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }
-.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }
-.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }
-.@{fa-css-prefix}-flash:before,
-.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }
-.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }
-.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }
-.@{fa-css-prefix}-paste:before,
-.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }
-.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }
-.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }
-.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }
-.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }
-.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }
-.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }
-.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }
-.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }
-.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }
-.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }
-.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }
-.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }
-.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }
-.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }
-.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }
-.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }
-.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }
-.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }
-.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }
-.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }
-.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }
-.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }
-.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }
-.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }
-.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }
-.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }
-.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }
-.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }
-.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }
-.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }
-.@{fa-css-prefix}-mobile-phone:before,
-.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }
-.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }
-.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }
-.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }
-.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }
-.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }
-.@{fa-css-prefix}-mail-reply:before,
-.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }
-.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }
-.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }
-.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }
-.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }
-.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }
-.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }
-.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }
-.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }
-.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }
-.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }
-.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }
-.@{fa-css-prefix}-code:before { content: @fa-var-code; }
-.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }
-.@{fa-css-prefix}-mail-reply-all:before { content: @fa-var-mail-reply-all; }
-.@{fa-css-prefix}-star-half-empty:before,
-.@{fa-css-prefix}-star-half-full:before,
-.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }
-.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }
-.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }
-.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }
-.@{fa-css-prefix}-unlink:before,
-.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }
-.@{fa-css-prefix}-question:before { content: @fa-var-question; }
-.@{fa-css-prefix}-info:before { content: @fa-var-info; }
-.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }
-.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }
-.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }
-.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }
-.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }
-.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }
-.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }
-.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }
-.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }
-.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }
-.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }
-.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }
-.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }
-.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }
-.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }
-.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }
-.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }
-.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }
-.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }
-.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }
-.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }
-.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }
-.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }
-.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }
-.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }
-.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }
-.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }
-.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }
-.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }
-.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }
-.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }
-.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }
-.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }
-.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }
-.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }
-.@{fa-css-prefix}-toggle-down:before,
-.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }
-.@{fa-css-prefix}-toggle-up:before,
-.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }
-.@{fa-css-prefix}-toggle-right:before,
-.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }
-.@{fa-css-prefix}-euro:before,
-.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }
-.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }
-.@{fa-css-prefix}-dollar:before,
-.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }
-.@{fa-css-prefix}-rupee:before,
-.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }
-.@{fa-css-prefix}-cny:before,
-.@{fa-css-prefix}-rmb:before,
-.@{fa-css-prefix}-yen:before,
-.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }
-.@{fa-css-prefix}-ruble:before,
-.@{fa-css-prefix}-rouble:before,
-.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }
-.@{fa-css-prefix}-won:before,
-.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }
-.@{fa-css-prefix}-bitcoin:before,
-.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }
-.@{fa-css-prefix}-file:before { content: @fa-var-file; }
-.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }
-.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }
-.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }
-.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }
-.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }
-.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }
-.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }
-.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }
-.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }
-.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }
-.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }
-.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }
-.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }
-.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }
-.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }
-.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }
-.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }
-.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }
-.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }
-.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }
-.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }
-.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }
-.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }
-.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }
-.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }
-.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }
-.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }
-.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }
-.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }
-.@{fa-css-prefix}-android:before { content: @fa-var-android; }
-.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }
-.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }
-.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }
-.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }
-.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }
-.@{fa-css-prefix}-female:before { content: @fa-var-female; }
-.@{fa-css-prefix}-male:before { content: @fa-var-male; }
-.@{fa-css-prefix}-gittip:before { content: @fa-var-gittip; }
-.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }
-.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }
-.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }
-.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }
-.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }
-.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }
-.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }
-.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }
-.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }
-.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }
-.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }
-.@{fa-css-prefix}-toggle-left:before,
-.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }
-.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }
-.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }
-.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }
-.@{fa-css-prefix}-turkish-lira:before,
-.@{fa-css-prefix}-try:before { content: @fa-var-try; }
-.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }
diff --git a/milfs/css/font-awesome/less/larger.less b/milfs/css/font-awesome/less/larger.less
deleted file mode 100644
index 3646d3d..0000000
--- a/milfs/css/font-awesome/less/larger.less
+++ /dev/null
@@ -1,13 +0,0 @@
-// Icon Sizes
-// -------------------------
-
-/* makes the font 33% larger relative to the icon container */
-.@{fa-css-prefix}-lg {
-  font-size: (4em / 3);
-  line-height: (3em / 4);
-  vertical-align: -15%;
-}
-.@{fa-css-prefix}-2x { font-size: 2em; }
-.@{fa-css-prefix}-3x { font-size: 3em; }
-.@{fa-css-prefix}-4x { font-size: 4em; }
-.@{fa-css-prefix}-5x { font-size: 5em; }
diff --git a/milfs/css/font-awesome/less/list.less b/milfs/css/font-awesome/less/list.less
deleted file mode 100644
index 6a0e028..0000000
--- a/milfs/css/font-awesome/less/list.less
+++ /dev/null
@@ -1,19 +0,0 @@
-// List Icons
-// -------------------------
-
-.@{fa-css-prefix}-ul {
-  padding-left: 0;
-  margin-left: @fa-li-width;
-  list-style-type: none;
-  > li { position: relative; }
-}
-.@{fa-css-prefix}-li {
-  position: absolute;
-  left: -@fa-li-width;
-  width: @fa-li-width;
-  top: (2em / 14);
-  text-align: center;
-  &.@{fa-css-prefix}-lg {
-    left: -@fa-li-width + (4em / 14);
-  }
-}
diff --git a/milfs/css/font-awesome/less/mixins.less b/milfs/css/font-awesome/less/mixins.less
deleted file mode 100644
index b73ea07..0000000
--- a/milfs/css/font-awesome/less/mixins.less
+++ /dev/null
@@ -1,20 +0,0 @@
-// Mixins
-// --------------------------
-
-.fa-icon-rotate(@degrees, @rotation) {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation);
-  -webkit-transform: rotate(@degrees);
-     -moz-transform: rotate(@degrees);
-      -ms-transform: rotate(@degrees);
-       -o-transform: rotate(@degrees);
-          transform: rotate(@degrees);
-}
-
-.fa-icon-flip(@horiz, @vert, @rotation) {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1);
-  -webkit-transform: scale(@horiz, @vert);
-     -moz-transform: scale(@horiz, @vert);
-      -ms-transform: scale(@horiz, @vert);
-       -o-transform: scale(@horiz, @vert);
-          transform: scale(@horiz, @vert);
-}
diff --git a/milfs/css/font-awesome/less/path.less b/milfs/css/font-awesome/less/path.less
deleted file mode 100644
index 39ebbd6..0000000
--- a/milfs/css/font-awesome/less/path.less
+++ /dev/null
@@ -1,14 +0,0 @@
-/* FONT PATH
- * -------------------------- */
-
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
-  src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
-    url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
-    url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
-    url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
-//  src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
-  font-weight: normal;
-  font-style: normal;
-}
diff --git a/milfs/css/font-awesome/less/rotated-flipped.less b/milfs/css/font-awesome/less/rotated-flipped.less
deleted file mode 100644
index 2483f25..0000000
--- a/milfs/css/font-awesome/less/rotated-flipped.less
+++ /dev/null
@@ -1,9 +0,0 @@
-// Rotated & Flipped Icons
-// -------------------------
-
-.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }
-.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
-.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
-
-.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
-.@{fa-css-prefix}-flip-vertical   { .fa-icon-flip(1, -1, 2); }
diff --git a/milfs/css/font-awesome/less/spinning.less b/milfs/css/font-awesome/less/spinning.less
deleted file mode 100644
index 1b4a90d..0000000
--- a/milfs/css/font-awesome/less/spinning.less
+++ /dev/null
@@ -1,30 +0,0 @@
-// Spinning Icons
-// --------------------------
-
-.@{fa-css-prefix}-spin {
-  -webkit-animation: spin 2s infinite linear;
-  -moz-animation: spin 2s infinite linear;
-  -o-animation: spin 2s infinite linear;
-  animation: spin 2s infinite linear;
-}
-
-@-moz-keyframes spin {
-  0% { -moz-transform: rotate(0deg); }
-  100% { -moz-transform: rotate(359deg); }
-}
-@-webkit-keyframes spin {
-  0% { -webkit-transform: rotate(0deg); }
-  100% { -webkit-transform: rotate(359deg); }
-}
-@-o-keyframes spin {
-  0% { -o-transform: rotate(0deg); }
-  100% { -o-transform: rotate(359deg); }
-}
-@-ms-keyframes spin {
-  0% { -ms-transform: rotate(0deg); }
-  100% { -ms-transform: rotate(359deg); }
-}
-@keyframes spin {
-  0% { transform: rotate(0deg); }
-  100% { transform: rotate(359deg); }
-}
diff --git a/milfs/css/font-awesome/less/stacked.less b/milfs/css/font-awesome/less/stacked.less
deleted file mode 100644
index d3fc101..0000000
--- a/milfs/css/font-awesome/less/stacked.less
+++ /dev/null
@@ -1,20 +0,0 @@
-// Stacked Icons
-// -------------------------
-
-.@{fa-css-prefix}-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
-}
-.@{fa-css-prefix}-stack-1x { line-height: inherit; }
-.@{fa-css-prefix}-stack-2x { font-size: 2em; }
-.@{fa-css-prefix}-inverse { color: @fa-inverse; }
diff --git a/milfs/css/font-awesome/less/variables.less b/milfs/css/font-awesome/less/variables.less
deleted file mode 100644
index 7be51e5..0000000
--- a/milfs/css/font-awesome/less/variables.less
+++ /dev/null
@@ -1,381 +0,0 @@
-// Variables
-// --------------------------
-
-@fa-font-path:        "../fonts";
-//@fa-font-path:        "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts"; // for referencing Bootstrap CDN font files directly
-@fa-css-prefix:       fa;
-@fa-version:          "4.0.3";
-@fa-border-color:     #eee;
-@fa-inverse:          #fff;
-@fa-li-width:         (30em / 14);
-
-@fa-var-glass: "\f000";
-@fa-var-music: "\f001";
-@fa-var-search: "\f002";
-@fa-var-envelope-o: "\f003";
-@fa-var-heart: "\f004";
-@fa-var-star: "\f005";
-@fa-var-star-o: "\f006";
-@fa-var-user: "\f007";
-@fa-var-film: "\f008";
-@fa-var-th-large: "\f009";
-@fa-var-th: "\f00a";
-@fa-var-th-list: "\f00b";
-@fa-var-check: "\f00c";
-@fa-var-times: "\f00d";
-@fa-var-search-plus: "\f00e";
-@fa-var-search-minus: "\f010";
-@fa-var-power-off: "\f011";
-@fa-var-signal: "\f012";
-@fa-var-cog: "\f013";
-@fa-var-trash-o: "\f014";
-@fa-var-home: "\f015";
-@fa-var-file-o: "\f016";
-@fa-var-clock-o: "\f017";
-@fa-var-road: "\f018";
-@fa-var-download: "\f019";
-@fa-var-arrow-circle-o-down: "\f01a";
-@fa-var-arrow-circle-o-up: "\f01b";
-@fa-var-inbox: "\f01c";
-@fa-var-play-circle-o: "\f01d";
-@fa-var-repeat: "\f01e";
-@fa-var-refresh: "\f021";
-@fa-var-list-alt: "\f022";
-@fa-var-lock: "\f023";
-@fa-var-flag: "\f024";
-@fa-var-headphones: "\f025";
-@fa-var-volume-off: "\f026";
-@fa-var-volume-down: "\f027";
-@fa-var-volume-up: "\f028";
-@fa-var-qrcode: "\f029";
-@fa-var-barcode: "\f02a";
-@fa-var-tag: "\f02b";
-@fa-var-tags: "\f02c";
-@fa-var-book: "\f02d";
-@fa-var-bookmark: "\f02e";
-@fa-var-print: "\f02f";
-@fa-var-camera: "\f030";
-@fa-var-font: "\f031";
-@fa-var-bold: "\f032";
-@fa-var-italic: "\f033";
-@fa-var-text-height: "\f034";
-@fa-var-text-width: "\f035";
-@fa-var-align-left: "\f036";
-@fa-var-align-center: "\f037";
-@fa-var-align-right: "\f038";
-@fa-var-align-justify: "\f039";
-@fa-var-list: "\f03a";
-@fa-var-outdent: "\f03b";
-@fa-var-indent: "\f03c";
-@fa-var-video-camera: "\f03d";
-@fa-var-picture-o: "\f03e";
-@fa-var-pencil: "\f040";
-@fa-var-map-marker: "\f041";
-@fa-var-adjust: "\f042";
-@fa-var-tint: "\f043";
-@fa-var-pencil-square-o: "\f044";
-@fa-var-share-square-o: "\f045";
-@fa-var-check-square-o: "\f046";
-@fa-var-arrows: "\f047";
-@fa-var-step-backward: "\f048";
-@fa-var-fast-backward: "\f049";
-@fa-var-backward: "\f04a";
-@fa-var-play: "\f04b";
-@fa-var-pause: "\f04c";
-@fa-var-stop: "\f04d";
-@fa-var-forward: "\f04e";
-@fa-var-fast-forward: "\f050";
-@fa-var-step-forward: "\f051";
-@fa-var-eject: "\f052";
-@fa-var-chevron-left: "\f053";
-@fa-var-chevron-right: "\f054";
-@fa-var-plus-circle: "\f055";
-@fa-var-minus-circle: "\f056";
-@fa-var-times-circle: "\f057";
-@fa-var-check-circle: "\f058";
-@fa-var-question-circle: "\f059";
-@fa-var-info-circle: "\f05a";
-@fa-var-crosshairs: "\f05b";
-@fa-var-times-circle-o: "\f05c";
-@fa-var-check-circle-o: "\f05d";
-@fa-var-ban: "\f05e";
-@fa-var-arrow-left: "\f060";
-@fa-var-arrow-right: "\f061";
-@fa-var-arrow-up: "\f062";
-@fa-var-arrow-down: "\f063";
-@fa-var-share: "\f064";
-@fa-var-expand: "\f065";
-@fa-var-compress: "\f066";
-@fa-var-plus: "\f067";
-@fa-var-minus: "\f068";
-@fa-var-asterisk: "\f069";
-@fa-var-exclamation-circle: "\f06a";
-@fa-var-gift: "\f06b";
-@fa-var-leaf: "\f06c";
-@fa-var-fire: "\f06d";
-@fa-var-eye: "\f06e";
-@fa-var-eye-slash: "\f070";
-@fa-var-exclamation-triangle: "\f071";
-@fa-var-plane: "\f072";
-@fa-var-calendar: "\f073";
-@fa-var-random: "\f074";
-@fa-var-comment: "\f075";
-@fa-var-magnet: "\f076";
-@fa-var-chevron-up: "\f077";
-@fa-var-chevron-down: "\f078";
-@fa-var-retweet: "\f079";
-@fa-var-shopping-cart: "\f07a";
-@fa-var-folder: "\f07b";
-@fa-var-folder-open: "\f07c";
-@fa-var-arrows-v: "\f07d";
-@fa-var-arrows-h: "\f07e";
-@fa-var-bar-chart-o: "\f080";
-@fa-var-twitter-square: "\f081";
-@fa-var-facebook-square: "\f082";
-@fa-var-camera-retro: "\f083";
-@fa-var-key: "\f084";
-@fa-var-cogs: "\f085";
-@fa-var-comments: "\f086";
-@fa-var-thumbs-o-up: "\f087";
-@fa-var-thumbs-o-down: "\f088";
-@fa-var-star-half: "\f089";
-@fa-var-heart-o: "\f08a";
-@fa-var-sign-out: "\f08b";
-@fa-var-linkedin-square: "\f08c";
-@fa-var-thumb-tack: "\f08d";
-@fa-var-external-link: "\f08e";
-@fa-var-sign-in: "\f090";
-@fa-var-trophy: "\f091";
-@fa-var-github-square: "\f092";
-@fa-var-upload: "\f093";
-@fa-var-lemon-o: "\f094";
-@fa-var-phone: "\f095";
-@fa-var-square-o: "\f096";
-@fa-var-bookmark-o: "\f097";
-@fa-var-phone-square: "\f098";
-@fa-var-twitter: "\f099";
-@fa-var-facebook: "\f09a";
-@fa-var-github: "\f09b";
-@fa-var-unlock: "\f09c";
-@fa-var-credit-card: "\f09d";
-@fa-var-rss: "\f09e";
-@fa-var-hdd-o: "\f0a0";
-@fa-var-bullhorn: "\f0a1";
-@fa-var-bell: "\f0f3";
-@fa-var-certificate: "\f0a3";
-@fa-var-hand-o-right: "\f0a4";
-@fa-var-hand-o-left: "\f0a5";
-@fa-var-hand-o-up: "\f0a6";
-@fa-var-hand-o-down: "\f0a7";
-@fa-var-arrow-circle-left: "\f0a8";
-@fa-var-arrow-circle-right: "\f0a9";
-@fa-var-arrow-circle-up: "\f0aa";
-@fa-var-arrow-circle-down: "\f0ab";
-@fa-var-globe: "\f0ac";
-@fa-var-wrench: "\f0ad";
-@fa-var-tasks: "\f0ae";
-@fa-var-filter: "\f0b0";
-@fa-var-briefcase: "\f0b1";
-@fa-var-arrows-alt: "\f0b2";
-@fa-var-users: "\f0c0";
-@fa-var-link: "\f0c1";
-@fa-var-cloud: "\f0c2";
-@fa-var-flask: "\f0c3";
-@fa-var-scissors: "\f0c4";
-@fa-var-files-o: "\f0c5";
-@fa-var-paperclip: "\f0c6";
-@fa-var-floppy-o: "\f0c7";
-@fa-var-square: "\f0c8";
-@fa-var-bars: "\f0c9";
-@fa-var-list-ul: "\f0ca";
-@fa-var-list-ol: "\f0cb";
-@fa-var-strikethrough: "\f0cc";
-@fa-var-underline: "\f0cd";
-@fa-var-table: "\f0ce";
-@fa-var-magic: "\f0d0";
-@fa-var-truck: "\f0d1";
-@fa-var-pinterest: "\f0d2";
-@fa-var-pinterest-square: "\f0d3";
-@fa-var-google-plus-square: "\f0d4";
-@fa-var-google-plus: "\f0d5";
-@fa-var-money: "\f0d6";
-@fa-var-caret-down: "\f0d7";
-@fa-var-caret-up: "\f0d8";
-@fa-var-caret-left: "\f0d9";
-@fa-var-caret-right: "\f0da";
-@fa-var-columns: "\f0db";
-@fa-var-sort: "\f0dc";
-@fa-var-sort-asc: "\f0dd";
-@fa-var-sort-desc: "\f0de";
-@fa-var-envelope: "\f0e0";
-@fa-var-linkedin: "\f0e1";
-@fa-var-undo: "\f0e2";
-@fa-var-gavel: "\f0e3";
-@fa-var-tachometer: "\f0e4";
-@fa-var-comment-o: "\f0e5";
-@fa-var-comments-o: "\f0e6";
-@fa-var-bolt: "\f0e7";
-@fa-var-sitemap: "\f0e8";
-@fa-var-umbrella: "\f0e9";
-@fa-var-clipboard: "\f0ea";
-@fa-var-lightbulb-o: "\f0eb";
-@fa-var-exchange: "\f0ec";
-@fa-var-cloud-download: "\f0ed";
-@fa-var-cloud-upload: "\f0ee";
-@fa-var-user-md: "\f0f0";
-@fa-var-stethoscope: "\f0f1";
-@fa-var-suitcase: "\f0f2";
-@fa-var-bell-o: "\f0a2";
-@fa-var-coffee: "\f0f4";
-@fa-var-cutlery: "\f0f5";
-@fa-var-file-text-o: "\f0f6";
-@fa-var-building-o: "\f0f7";
-@fa-var-hospital-o: "\f0f8";
-@fa-var-ambulance: "\f0f9";
-@fa-var-medkit: "\f0fa";
-@fa-var-fighter-jet: "\f0fb";
-@fa-var-beer: "\f0fc";
-@fa-var-h-square: "\f0fd";
-@fa-var-plus-square: "\f0fe";
-@fa-var-angle-double-left: "\f100";
-@fa-var-angle-double-right: "\f101";
-@fa-var-angle-double-up: "\f102";
-@fa-var-angle-double-down: "\f103";
-@fa-var-angle-left: "\f104";
-@fa-var-angle-right: "\f105";
-@fa-var-angle-up: "\f106";
-@fa-var-angle-down: "\f107";
-@fa-var-desktop: "\f108";
-@fa-var-laptop: "\f109";
-@fa-var-tablet: "\f10a";
-@fa-var-mobile: "\f10b";
-@fa-var-circle-o: "\f10c";
-@fa-var-quote-left: "\f10d";
-@fa-var-quote-right: "\f10e";
-@fa-var-spinner: "\f110";
-@fa-var-circle: "\f111";
-@fa-var-reply: "\f112";
-@fa-var-github-alt: "\f113";
-@fa-var-folder-o: "\f114";
-@fa-var-folder-open-o: "\f115";
-@fa-var-smile-o: "\f118";
-@fa-var-frown-o: "\f119";
-@fa-var-meh-o: "\f11a";
-@fa-var-gamepad: "\f11b";
-@fa-var-keyboard-o: "\f11c";
-@fa-var-flag-o: "\f11d";
-@fa-var-flag-checkered: "\f11e";
-@fa-var-terminal: "\f120";
-@fa-var-code: "\f121";
-@fa-var-reply-all: "\f122";
-@fa-var-mail-reply-all: "\f122";
-@fa-var-star-half-o: "\f123";
-@fa-var-location-arrow: "\f124";
-@fa-var-crop: "\f125";
-@fa-var-code-fork: "\f126";
-@fa-var-chain-broken: "\f127";
-@fa-var-question: "\f128";
-@fa-var-info: "\f129";
-@fa-var-exclamation: "\f12a";
-@fa-var-superscript: "\f12b";
-@fa-var-subscript: "\f12c";
-@fa-var-eraser: "\f12d";
-@fa-var-puzzle-piece: "\f12e";
-@fa-var-microphone: "\f130";
-@fa-var-microphone-slash: "\f131";
-@fa-var-shield: "\f132";
-@fa-var-calendar-o: "\f133";
-@fa-var-fire-extinguisher: "\f134";
-@fa-var-rocket: "\f135";
-@fa-var-maxcdn: "\f136";
-@fa-var-chevron-circle-left: "\f137";
-@fa-var-chevron-circle-right: "\f138";
-@fa-var-chevron-circle-up: "\f139";
-@fa-var-chevron-circle-down: "\f13a";
-@fa-var-html5: "\f13b";
-@fa-var-css3: "\f13c";
-@fa-var-anchor: "\f13d";
-@fa-var-unlock-alt: "\f13e";
-@fa-var-bullseye: "\f140";
-@fa-var-ellipsis-h: "\f141";
-@fa-var-ellipsis-v: "\f142";
-@fa-var-rss-square: "\f143";
-@fa-var-play-circle: "\f144";
-@fa-var-ticket: "\f145";
-@fa-var-minus-square: "\f146";
-@fa-var-minus-square-o: "\f147";
-@fa-var-level-up: "\f148";
-@fa-var-level-down: "\f149";
-@fa-var-check-square: "\f14a";
-@fa-var-pencil-square: "\f14b";
-@fa-var-external-link-square: "\f14c";
-@fa-var-share-square: "\f14d";
-@fa-var-compass: "\f14e";
-@fa-var-caret-square-o-down: "\f150";
-@fa-var-caret-square-o-up: "\f151";
-@fa-var-caret-square-o-right: "\f152";
-@fa-var-eur: "\f153";
-@fa-var-gbp: "\f154";
-@fa-var-usd: "\f155";
-@fa-var-inr: "\f156";
-@fa-var-jpy: "\f157";
-@fa-var-rub: "\f158";
-@fa-var-krw: "\f159";
-@fa-var-btc: "\f15a";
-@fa-var-file: "\f15b";
-@fa-var-file-text: "\f15c";
-@fa-var-sort-alpha-asc: "\f15d";
-@fa-var-sort-alpha-desc: "\f15e";
-@fa-var-sort-amount-asc: "\f160";
-@fa-var-sort-amount-desc: "\f161";
-@fa-var-sort-numeric-asc: "\f162";
-@fa-var-sort-numeric-desc: "\f163";
-@fa-var-thumbs-up: "\f164";
-@fa-var-thumbs-down: "\f165";
-@fa-var-youtube-square: "\f166";
-@fa-var-youtube: "\f167";
-@fa-var-xing: "\f168";
-@fa-var-xing-square: "\f169";
-@fa-var-youtube-play: "\f16a";
-@fa-var-dropbox: "\f16b";
-@fa-var-stack-overflow: "\f16c";
-@fa-var-instagram: "\f16d";
-@fa-var-flickr: "\f16e";
-@fa-var-adn: "\f170";
-@fa-var-bitbucket: "\f171";
-@fa-var-bitbucket-square: "\f172";
-@fa-var-tumblr: "\f173";
-@fa-var-tumblr-square: "\f174";
-@fa-var-long-arrow-down: "\f175";
-@fa-var-long-arrow-up: "\f176";
-@fa-var-long-arrow-left: "\f177";
-@fa-var-long-arrow-right: "\f178";
-@fa-var-apple: "\f179";
-@fa-var-windows: "\f17a";
-@fa-var-android: "\f17b";
-@fa-var-linux: "\f17c";
-@fa-var-dribbble: "\f17d";
-@fa-var-skype: "\f17e";
-@fa-var-foursquare: "\f180";
-@fa-var-trello: "\f181";
-@fa-var-female: "\f182";
-@fa-var-male: "\f183";
-@fa-var-gittip: "\f184";
-@fa-var-sun-o: "\f185";
-@fa-var-moon-o: "\f186";
-@fa-var-archive: "\f187";
-@fa-var-bug: "\f188";
-@fa-var-vk: "\f189";
-@fa-var-weibo: "\f18a";
-@fa-var-renren: "\f18b";
-@fa-var-pagelines: "\f18c";
-@fa-var-stack-exchange: "\f18d";
-@fa-var-arrow-circle-o-right: "\f18e";
-@fa-var-arrow-circle-o-left: "\f190";
-@fa-var-caret-square-o-left: "\f191";
-@fa-var-dot-circle-o: "\f192";
-@fa-var-wheelchair: "\f193";
-@fa-var-vimeo-square: "\f194";
-@fa-var-try: "\f195";
-@fa-var-plus-square-o: "\f196";
-
diff --git a/milfs/css/font-awesome/scss/_bordered-pulled.scss b/milfs/css/font-awesome/scss/_bordered-pulled.scss
deleted file mode 100644
index 904a09c..0000000
--- a/milfs/css/font-awesome/scss/_bordered-pulled.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-// Bordered & Pulled
-// -------------------------
-
-.#{$fa-css-prefix}-border {
-  padding: .2em .25em .15em;
-  border: solid .08em $fa-border-color;
-  border-radius: .1em;
-}
-
-.pull-right { float: right; }
-.pull-left { float: left; }
-
-.#{$fa-css-prefix} {
-  &.pull-left { margin-right: .3em; }
-  &.pull-right { margin-left: .3em; }
-}
diff --git a/milfs/css/font-awesome/scss/_core.scss b/milfs/css/font-awesome/scss/_core.scss
deleted file mode 100644
index f75871f..0000000
--- a/milfs/css/font-awesome/scss/_core.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// Base Class Definition
-// -------------------------
-
-.#{$fa-css-prefix} {
-  display: inline-block;
-  font-family: FontAwesome;
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
diff --git a/milfs/css/font-awesome/scss/_fixed-width.scss b/milfs/css/font-awesome/scss/_fixed-width.scss
deleted file mode 100644
index b01670a..0000000
--- a/milfs/css/font-awesome/scss/_fixed-width.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Fixed Width Icons
-// -------------------------
-.#{$fa-css-prefix}-fw {
-  width: (18em / 14);
-  text-align: center;
-}
diff --git a/milfs/css/font-awesome/scss/_icons.scss b/milfs/css/font-awesome/scss/_icons.scss
deleted file mode 100644
index 9219969..0000000
--- a/milfs/css/font-awesome/scss/_icons.scss
+++ /dev/null
@@ -1,412 +0,0 @@
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
-   readers do not read off random characters that represent icons */
-
-.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
-.#{$fa-css-prefix}-music:before { content: $fa-var-music; }
-.#{$fa-css-prefix}-search:before { content: $fa-var-search; }
-.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; }
-.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; }
-.#{$fa-css-prefix}-star:before { content: $fa-var-star; }
-.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; }
-.#{$fa-css-prefix}-user:before { content: $fa-var-user; }
-.#{$fa-css-prefix}-film:before { content: $fa-var-film; }
-.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; }
-.#{$fa-css-prefix}-th:before { content: $fa-var-th; }
-.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; }
-.#{$fa-css-prefix}-check:before { content: $fa-var-check; }
-.#{$fa-css-prefix}-times:before { content: $fa-var-times; }
-.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; }
-.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; }
-.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; }
-.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; }
-.#{$fa-css-prefix}-gear:before,
-.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; }
-.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; }
-.#{$fa-css-prefix}-home:before { content: $fa-var-home; }
-.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; }
-.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; }
-.#{$fa-css-prefix}-road:before { content: $fa-var-road; }
-.#{$fa-css-prefix}-download:before { content: $fa-var-download; }
-.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; }
-.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; }
-.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; }
-.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; }
-.#{$fa-css-prefix}-rotate-right:before,
-.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; }
-.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; }
-.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; }
-.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; }
-.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; }
-.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; }
-.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; }
-.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; }
-.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; }
-.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; }
-.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; }
-.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; }
-.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; }
-.#{$fa-css-prefix}-book:before { content: $fa-var-book; }
-.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; }
-.#{$fa-css-prefix}-print:before { content: $fa-var-print; }
-.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; }
-.#{$fa-css-prefix}-font:before { content: $fa-var-font; }
-.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; }
-.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; }
-.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; }
-.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; }
-.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; }
-.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; }
-.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; }
-.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; }
-.#{$fa-css-prefix}-list:before { content: $fa-var-list; }
-.#{$fa-css-prefix}-dedent:before,
-.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; }
-.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; }
-.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; }
-.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; }
-.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; }
-.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; }
-.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; }
-.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; }
-.#{$fa-css-prefix}-edit:before,
-.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; }
-.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; }
-.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; }
-.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; }
-.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; }
-.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; }
-.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; }
-.#{$fa-css-prefix}-play:before { content: $fa-var-play; }
-.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; }
-.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; }
-.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; }
-.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; }
-.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; }
-.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; }
-.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; }
-.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; }
-.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; }
-.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; }
-.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; }
-.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; }
-.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; }
-.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; }
-.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; }
-.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; }
-.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; }
-.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; }
-.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; }
-.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; }
-.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; }
-.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; }
-.#{$fa-css-prefix}-mail-forward:before,
-.#{$fa-css-prefix}-share:before { content: $fa-var-share; }
-.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; }
-.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; }
-.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; }
-.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; }
-.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; }
-.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; }
-.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; }
-.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; }
-.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; }
-.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; }
-.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; }
-.#{$fa-css-prefix}-warning:before,
-.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; }
-.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; }
-.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; }
-.#{$fa-css-prefix}-random:before { content: $fa-var-random; }
-.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; }
-.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; }
-.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; }
-.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; }
-.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; }
-.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; }
-.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; }
-.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; }
-.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; }
-.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; }
-.#{$fa-css-prefix}-bar-chart-o:before { content: $fa-var-bar-chart-o; }
-.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; }
-.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; }
-.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; }
-.#{$fa-css-prefix}-key:before { content: $fa-var-key; }
-.#{$fa-css-prefix}-gears:before,
-.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; }
-.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; }
-.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; }
-.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; }
-.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; }
-.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; }
-.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; }
-.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; }
-.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; }
-.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; }
-.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; }
-.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; }
-.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; }
-.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; }
-.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; }
-.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; }
-.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; }
-.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; }
-.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; }
-.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; }
-.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; }
-.#{$fa-css-prefix}-github:before { content: $fa-var-github; }
-.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; }
-.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; }
-.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; }
-.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; }
-.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; }
-.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; }
-.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; }
-.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; }
-.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; }
-.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; }
-.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; }
-.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; }
-.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; }
-.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; }
-.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; }
-.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; }
-.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; }
-.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; }
-.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; }
-.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; }
-.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; }
-.#{$fa-css-prefix}-group:before,
-.#{$fa-css-prefix}-users:before { content: $fa-var-users; }
-.#{$fa-css-prefix}-chain:before,
-.#{$fa-css-prefix}-link:before { content: $fa-var-link; }
-.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; }
-.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; }
-.#{$fa-css-prefix}-cut:before,
-.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; }
-.#{$fa-css-prefix}-copy:before,
-.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; }
-.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; }
-.#{$fa-css-prefix}-save:before,
-.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; }
-.#{$fa-css-prefix}-square:before { content: $fa-var-square; }
-.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; }
-.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; }
-.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; }
-.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; }
-.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; }
-.#{$fa-css-prefix}-table:before { content: $fa-var-table; }
-.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; }
-.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; }
-.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; }
-.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; }
-.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; }
-.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; }
-.#{$fa-css-prefix}-money:before { content: $fa-var-money; }
-.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; }
-.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; }
-.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; }
-.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; }
-.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; }
-.#{$fa-css-prefix}-unsorted:before,
-.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; }
-.#{$fa-css-prefix}-sort-down:before,
-.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; }
-.#{$fa-css-prefix}-sort-up:before,
-.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; }
-.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; }
-.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; }
-.#{$fa-css-prefix}-rotate-left:before,
-.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; }
-.#{$fa-css-prefix}-legal:before,
-.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; }
-.#{$fa-css-prefix}-dashboard:before,
-.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; }
-.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; }
-.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; }
-.#{$fa-css-prefix}-flash:before,
-.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; }
-.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; }
-.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; }
-.#{$fa-css-prefix}-paste:before,
-.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; }
-.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; }
-.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; }
-.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; }
-.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; }
-.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; }
-.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; }
-.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; }
-.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; }
-.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; }
-.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; }
-.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; }
-.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; }
-.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; }
-.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; }
-.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; }
-.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; }
-.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; }
-.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; }
-.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; }
-.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; }
-.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; }
-.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; }
-.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; }
-.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; }
-.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; }
-.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; }
-.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; }
-.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; }
-.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; }
-.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; }
-.#{$fa-css-prefix}-mobile-phone:before,
-.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; }
-.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; }
-.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; }
-.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; }
-.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; }
-.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; }
-.#{$fa-css-prefix}-mail-reply:before,
-.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; }
-.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; }
-.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; }
-.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; }
-.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; }
-.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; }
-.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; }
-.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; }
-.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; }
-.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; }
-.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; }
-.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; }
-.#{$fa-css-prefix}-code:before { content: $fa-var-code; }
-.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; }
-.#{$fa-css-prefix}-mail-reply-all:before { content: $fa-var-mail-reply-all; }
-.#{$fa-css-prefix}-star-half-empty:before,
-.#{$fa-css-prefix}-star-half-full:before,
-.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; }
-.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; }
-.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; }
-.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; }
-.#{$fa-css-prefix}-unlink:before,
-.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; }
-.#{$fa-css-prefix}-question:before { content: $fa-var-question; }
-.#{$fa-css-prefix}-info:before { content: $fa-var-info; }
-.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; }
-.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; }
-.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; }
-.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; }
-.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; }
-.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; }
-.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; }
-.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; }
-.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; }
-.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; }
-.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; }
-.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; }
-.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; }
-.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; }
-.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; }
-.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; }
-.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; }
-.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; }
-.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; }
-.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; }
-.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; }
-.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; }
-.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; }
-.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; }
-.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; }
-.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; }
-.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; }
-.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; }
-.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; }
-.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; }
-.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; }
-.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; }
-.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; }
-.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; }
-.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; }
-.#{$fa-css-prefix}-toggle-down:before,
-.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; }
-.#{$fa-css-prefix}-toggle-up:before,
-.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; }
-.#{$fa-css-prefix}-toggle-right:before,
-.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; }
-.#{$fa-css-prefix}-euro:before,
-.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; }
-.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; }
-.#{$fa-css-prefix}-dollar:before,
-.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; }
-.#{$fa-css-prefix}-rupee:before,
-.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; }
-.#{$fa-css-prefix}-cny:before,
-.#{$fa-css-prefix}-rmb:before,
-.#{$fa-css-prefix}-yen:before,
-.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; }
-.#{$fa-css-prefix}-ruble:before,
-.#{$fa-css-prefix}-rouble:before,
-.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; }
-.#{$fa-css-prefix}-won:before,
-.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; }
-.#{$fa-css-prefix}-bitcoin:before,
-.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; }
-.#{$fa-css-prefix}-file:before { content: $fa-var-file; }
-.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; }
-.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; }
-.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; }
-.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; }
-.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; }
-.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; }
-.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; }
-.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; }
-.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; }
-.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; }
-.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; }
-.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; }
-.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; }
-.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; }
-.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; }
-.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; }
-.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; }
-.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; }
-.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; }
-.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; }
-.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; }
-.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; }
-.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; }
-.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; }
-.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; }
-.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; }
-.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; }
-.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; }
-.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; }
-.#{$fa-css-prefix}-android:before { content: $fa-var-android; }
-.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; }
-.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; }
-.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; }
-.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; }
-.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; }
-.#{$fa-css-prefix}-female:before { content: $fa-var-female; }
-.#{$fa-css-prefix}-male:before { content: $fa-var-male; }
-.#{$fa-css-prefix}-gittip:before { content: $fa-var-gittip; }
-.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; }
-.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; }
-.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; }
-.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; }
-.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; }
-.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; }
-.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; }
-.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; }
-.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; }
-.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; }
-.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; }
-.#{$fa-css-prefix}-toggle-left:before,
-.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; }
-.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; }
-.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; }
-.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; }
-.#{$fa-css-prefix}-turkish-lira:before,
-.#{$fa-css-prefix}-try:before { content: $fa-var-try; }
-.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; }
diff --git a/milfs/css/font-awesome/scss/_larger.scss b/milfs/css/font-awesome/scss/_larger.scss
deleted file mode 100644
index 4119795..0000000
--- a/milfs/css/font-awesome/scss/_larger.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-// Icon Sizes
-// -------------------------
-
-/* makes the font 33% larger relative to the icon container */
-.#{$fa-css-prefix}-lg {
-  font-size: (4em / 3);
-  line-height: (3em / 4);
-  vertical-align: -15%;
-}
-.#{$fa-css-prefix}-2x { font-size: 2em; }
-.#{$fa-css-prefix}-3x { font-size: 3em; }
-.#{$fa-css-prefix}-4x { font-size: 4em; }
-.#{$fa-css-prefix}-5x { font-size: 5em; }
diff --git a/milfs/css/font-awesome/scss/_list.scss b/milfs/css/font-awesome/scss/_list.scss
deleted file mode 100644
index 44137d7..0000000
--- a/milfs/css/font-awesome/scss/_list.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-// List Icons
-// -------------------------
-
-.#{$fa-css-prefix}-ul {
-  padding-left: 0;
-  margin-left: $fa-li-width;
-  list-style-type: none;
-  > li { position: relative; }
-}
-.#{$fa-css-prefix}-li {
-  position: absolute;
-  left: -$fa-li-width;
-  width: $fa-li-width;
-  top: (2em / 14);
-  text-align: center;
-  &.#{$fa-css-prefix}-lg {
-    left: -$fa-li-width + (4em / 14);
-  }
-}
diff --git a/milfs/css/font-awesome/scss/_mixins.scss b/milfs/css/font-awesome/scss/_mixins.scss
deleted file mode 100644
index effaf0b..0000000
--- a/milfs/css/font-awesome/scss/_mixins.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// Mixins
-// --------------------------
-
-@mixin fa-icon-rotate($degrees, $rotation) {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);
-  -webkit-transform: rotate($degrees);
-     -moz-transform: rotate($degrees);
-      -ms-transform: rotate($degrees);
-       -o-transform: rotate($degrees);
-          transform: rotate($degrees);
-}
-
-@mixin fa-icon-flip($horiz, $vert, $rotation) {
-  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation);
-  -webkit-transform: scale($horiz, $vert);
-     -moz-transform: scale($horiz, $vert);
-      -ms-transform: scale($horiz, $vert);
-       -o-transform: scale($horiz, $vert);
-          transform: scale($horiz, $vert);
-}
diff --git a/milfs/css/font-awesome/scss/_path.scss b/milfs/css/font-awesome/scss/_path.scss
deleted file mode 100644
index 2679b07..0000000
--- a/milfs/css/font-awesome/scss/_path.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-/* FONT PATH
- * -------------------------- */
-
-@font-face {
-  font-family: 'FontAwesome';
-  src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
-  src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
-    url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
-    url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
-    url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
-  //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
-  font-weight: normal;
-  font-style: normal;
-}
diff --git a/milfs/css/font-awesome/scss/_rotated-flipped.scss b/milfs/css/font-awesome/scss/_rotated-flipped.scss
deleted file mode 100644
index acd62fe..0000000
--- a/milfs/css/font-awesome/scss/_rotated-flipped.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-// Rotated & Flipped Icons
-// -------------------------
-
-.#{$fa-css-prefix}-rotate-90  { @include fa-icon-rotate(90deg, 1);  }
-.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
-.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
-
-.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
-.#{$fa-css-prefix}-flip-vertical   { @include fa-icon-flip(1, -1, 2); }
diff --git a/milfs/css/font-awesome/scss/_spinning.scss b/milfs/css/font-awesome/scss/_spinning.scss
deleted file mode 100644
index 7405112..0000000
--- a/milfs/css/font-awesome/scss/_spinning.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-// Spinning Icons
-// --------------------------
-
-.#{$fa-css-prefix}-spin {
-  -webkit-animation: spin 2s infinite linear;
-  -moz-animation: spin 2s infinite linear;
-  -o-animation: spin 2s infinite linear;
-  animation: spin 2s infinite linear;
-}
-
-@-moz-keyframes spin {
-  0% { -moz-transform: rotate(0deg); }
-  100% { -moz-transform: rotate(359deg); }
-}
-@-webkit-keyframes spin {
-  0% { -webkit-transform: rotate(0deg); }
-  100% { -webkit-transform: rotate(359deg); }
-}
-@-o-keyframes spin {
-  0% { -o-transform: rotate(0deg); }
-  100% { -o-transform: rotate(359deg); }
-}
-@-ms-keyframes spin {
-  0% { -ms-transform: rotate(0deg); }
-  100% { -ms-transform: rotate(359deg); }
-}
-@keyframes spin {
-  0% { transform: rotate(0deg); }
-  100% { transform: rotate(359deg); }
-}
diff --git a/milfs/css/font-awesome/scss/_stacked.scss b/milfs/css/font-awesome/scss/_stacked.scss
deleted file mode 100644
index 5d65d0a..0000000
--- a/milfs/css/font-awesome/scss/_stacked.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// Stacked Icons
-// -------------------------
-
-.#{$fa-css-prefix}-stack {
-  position: relative;
-  display: inline-block;
-  width: 2em;
-  height: 2em;
-  line-height: 2em;
-  vertical-align: middle;
-}
-.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
-  position: absolute;
-  left: 0;
-  width: 100%;
-  text-align: center;
-}
-.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
-.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
-.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
diff --git a/milfs/css/font-awesome/scss/_variables.scss b/milfs/css/font-awesome/scss/_variables.scss
deleted file mode 100644
index e8243ad..0000000
--- a/milfs/css/font-awesome/scss/_variables.scss
+++ /dev/null
@@ -1,381 +0,0 @@
-// Variables
-// --------------------------
-
-$fa-font-path:        "../fonts" !default;
-//$fa-font-path:        "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts" !default; // for referencing Bootstrap CDN font files directly
-$fa-css-prefix:       fa !default;
-$fa-version:          "4.0.3" !default;
-$fa-border-color:     #eee !default;
-$fa-inverse:          #fff !default;
-$fa-li-width:        (30em / 14) !default;
-
-$fa-var-glass: "\f000";
-$fa-var-music: "\f001";
-$fa-var-search: "\f002";
-$fa-var-envelope-o: "\f003";
-$fa-var-heart: "\f004";
-$fa-var-star: "\f005";
-$fa-var-star-o: "\f006";
-$fa-var-user: "\f007";
-$fa-var-film: "\f008";
-$fa-var-th-large: "\f009";
-$fa-var-th: "\f00a";
-$fa-var-th-list: "\f00b";
-$fa-var-check: "\f00c";
-$fa-var-times: "\f00d";
-$fa-var-search-plus: "\f00e";
-$fa-var-search-minus: "\f010";
-$fa-var-power-off: "\f011";
-$fa-var-signal: "\f012";
-$fa-var-cog: "\f013";
-$fa-var-trash-o: "\f014";
-$fa-var-home: "\f015";
-$fa-var-file-o: "\f016";
-$fa-var-clock-o: "\f017";
-$fa-var-road: "\f018";
-$fa-var-download: "\f019";
-$fa-var-arrow-circle-o-down: "\f01a";
-$fa-var-arrow-circle-o-up: "\f01b";
-$fa-var-inbox: "\f01c";
-$fa-var-play-circle-o: "\f01d";
-$fa-var-repeat: "\f01e";
-$fa-var-refresh: "\f021";
-$fa-var-list-alt: "\f022";
-$fa-var-lock: "\f023";
-$fa-var-flag: "\f024";
-$fa-var-headphones: "\f025";
-$fa-var-volume-off: "\f026";
-$fa-var-volume-down: "\f027";
-$fa-var-volume-up: "\f028";
-$fa-var-qrcode: "\f029";
-$fa-var-barcode: "\f02a";
-$fa-var-tag: "\f02b";
-$fa-var-tags: "\f02c";
-$fa-var-book: "\f02d";
-$fa-var-bookmark: "\f02e";
-$fa-var-print: "\f02f";
-$fa-var-camera: "\f030";
-$fa-var-font: "\f031";
-$fa-var-bold: "\f032";
-$fa-var-italic: "\f033";
-$fa-var-text-height: "\f034";
-$fa-var-text-width: "\f035";
-$fa-var-align-left: "\f036";
-$fa-var-align-center: "\f037";
-$fa-var-align-right: "\f038";
-$fa-var-align-justify: "\f039";
-$fa-var-list: "\f03a";
-$fa-var-outdent: "\f03b";
-$fa-var-indent: "\f03c";
-$fa-var-video-camera: "\f03d";
-$fa-var-picture-o: "\f03e";
-$fa-var-pencil: "\f040";
-$fa-var-map-marker: "\f041";
-$fa-var-adjust: "\f042";
-$fa-var-tint: "\f043";
-$fa-var-pencil-square-o: "\f044";
-$fa-var-share-square-o: "\f045";
-$fa-var-check-square-o: "\f046";
-$fa-var-arrows: "\f047";
-$fa-var-step-backward: "\f048";
-$fa-var-fast-backward: "\f049";
-$fa-var-backward: "\f04a";
-$fa-var-play: "\f04b";
-$fa-var-pause: "\f04c";
-$fa-var-stop: "\f04d";
-$fa-var-forward: "\f04e";
-$fa-var-fast-forward: "\f050";
-$fa-var-step-forward: "\f051";
-$fa-var-eject: "\f052";
-$fa-var-chevron-left: "\f053";
-$fa-var-chevron-right: "\f054";
-$fa-var-plus-circle: "\f055";
-$fa-var-minus-circle: "\f056";
-$fa-var-times-circle: "\f057";
-$fa-var-check-circle: "\f058";
-$fa-var-question-circle: "\f059";
-$fa-var-info-circle: "\f05a";
-$fa-var-crosshairs: "\f05b";
-$fa-var-times-circle-o: "\f05c";
-$fa-var-check-circle-o: "\f05d";
-$fa-var-ban: "\f05e";
-$fa-var-arrow-left: "\f060";
-$fa-var-arrow-right: "\f061";
-$fa-var-arrow-up: "\f062";
-$fa-var-arrow-down: "\f063";
-$fa-var-share: "\f064";
-$fa-var-expand: "\f065";
-$fa-var-compress: "\f066";
-$fa-var-plus: "\f067";
-$fa-var-minus: "\f068";
-$fa-var-asterisk: "\f069";
-$fa-var-exclamation-circle: "\f06a";
-$fa-var-gift: "\f06b";
-$fa-var-leaf: "\f06c";
-$fa-var-fire: "\f06d";
-$fa-var-eye: "\f06e";
-$fa-var-eye-slash: "\f070";
-$fa-var-exclamation-triangle: "\f071";
-$fa-var-plane: "\f072";
-$fa-var-calendar: "\f073";
-$fa-var-random: "\f074";
-$fa-var-comment: "\f075";
-$fa-var-magnet: "\f076";
-$fa-var-chevron-up: "\f077";
-$fa-var-chevron-down: "\f078";
-$fa-var-retweet: "\f079";
-$fa-var-shopping-cart: "\f07a";
-$fa-var-folder: "\f07b";
-$fa-var-folder-open: "\f07c";
-$fa-var-arrows-v: "\f07d";
-$fa-var-arrows-h: "\f07e";
-$fa-var-bar-chart-o: "\f080";
-$fa-var-twitter-square: "\f081";
-$fa-var-facebook-square: "\f082";
-$fa-var-camera-retro: "\f083";
-$fa-var-key: "\f084";
-$fa-var-cogs: "\f085";
-$fa-var-comments: "\f086";
-$fa-var-thumbs-o-up: "\f087";
-$fa-var-thumbs-o-down: "\f088";
-$fa-var-star-half: "\f089";
-$fa-var-heart-o: "\f08a";
-$fa-var-sign-out: "\f08b";
-$fa-var-linkedin-square: "\f08c";
-$fa-var-thumb-tack: "\f08d";
-$fa-var-external-link: "\f08e";
-$fa-var-sign-in: "\f090";
-$fa-var-trophy: "\f091";
-$fa-var-github-square: "\f092";
-$fa-var-upload: "\f093";
-$fa-var-lemon-o: "\f094";
-$fa-var-phone: "\f095";
-$fa-var-square-o: "\f096";
-$fa-var-bookmark-o: "\f097";
-$fa-var-phone-square: "\f098";
-$fa-var-twitter: "\f099";
-$fa-var-facebook: "\f09a";
-$fa-var-github: "\f09b";
-$fa-var-unlock: "\f09c";
-$fa-var-credit-card: "\f09d";
-$fa-var-rss: "\f09e";
-$fa-var-hdd-o: "\f0a0";
-$fa-var-bullhorn: "\f0a1";
-$fa-var-bell: "\f0f3";
-$fa-var-certificate: "\f0a3";
-$fa-var-hand-o-right: "\f0a4";
-$fa-var-hand-o-left: "\f0a5";
-$fa-var-hand-o-up: "\f0a6";
-$fa-var-hand-o-down: "\f0a7";
-$fa-var-arrow-circle-left: "\f0a8";
-$fa-var-arrow-circle-right: "\f0a9";
-$fa-var-arrow-circle-up: "\f0aa";
-$fa-var-arrow-circle-down: "\f0ab";
-$fa-var-globe: "\f0ac";
-$fa-var-wrench: "\f0ad";
-$fa-var-tasks: "\f0ae";
-$fa-var-filter: "\f0b0";
-$fa-var-briefcase: "\f0b1";
-$fa-var-arrows-alt: "\f0b2";
-$fa-var-users: "\f0c0";
-$fa-var-link: "\f0c1";
-$fa-var-cloud: "\f0c2";
-$fa-var-flask: "\f0c3";
-$fa-var-scissors: "\f0c4";
-$fa-var-files-o: "\f0c5";
-$fa-var-paperclip: "\f0c6";
-$fa-var-floppy-o: "\f0c7";
-$fa-var-square: "\f0c8";
-$fa-var-bars: "\f0c9";
-$fa-var-list-ul: "\f0ca";
-$fa-var-list-ol: "\f0cb";
-$fa-var-strikethrough: "\f0cc";
-$fa-var-underline: "\f0cd";
-$fa-var-table: "\f0ce";
-$fa-var-magic: "\f0d0";
-$fa-var-truck: "\f0d1";
-$fa-var-pinterest: "\f0d2";
-$fa-var-pinterest-square: "\f0d3";
-$fa-var-google-plus-square: "\f0d4";
-$fa-var-google-plus: "\f0d5";
-$fa-var-money: "\f0d6";
-$fa-var-caret-down: "\f0d7";
-$fa-var-caret-up: "\f0d8";
-$fa-var-caret-left: "\f0d9";
-$fa-var-caret-right: "\f0da";
-$fa-var-columns: "\f0db";
-$fa-var-sort: "\f0dc";
-$fa-var-sort-asc: "\f0dd";
-$fa-var-sort-desc: "\f0de";
-$fa-var-envelope: "\f0e0";
-$fa-var-linkedin: "\f0e1";
-$fa-var-undo: "\f0e2";
-$fa-var-gavel: "\f0e3";
-$fa-var-tachometer: "\f0e4";
-$fa-var-comment-o: "\f0e5";
-$fa-var-comments-o: "\f0e6";
-$fa-var-bolt: "\f0e7";
-$fa-var-sitemap: "\f0e8";
-$fa-var-umbrella: "\f0e9";
-$fa-var-clipboard: "\f0ea";
-$fa-var-lightbulb-o: "\f0eb";
-$fa-var-exchange: "\f0ec";
-$fa-var-cloud-download: "\f0ed";
-$fa-var-cloud-upload: "\f0ee";
-$fa-var-user-md: "\f0f0";
-$fa-var-stethoscope: "\f0f1";
-$fa-var-suitcase: "\f0f2";
-$fa-var-bell-o: "\f0a2";
-$fa-var-coffee: "\f0f4";
-$fa-var-cutlery: "\f0f5";
-$fa-var-file-text-o: "\f0f6";
-$fa-var-building-o: "\f0f7";
-$fa-var-hospital-o: "\f0f8";
-$fa-var-ambulance: "\f0f9";
-$fa-var-medkit: "\f0fa";
-$fa-var-fighter-jet: "\f0fb";
-$fa-var-beer: "\f0fc";
-$fa-var-h-square: "\f0fd";
-$fa-var-plus-square: "\f0fe";
-$fa-var-angle-double-left: "\f100";
-$fa-var-angle-double-right: "\f101";
-$fa-var-angle-double-up: "\f102";
-$fa-var-angle-double-down: "\f103";
-$fa-var-angle-left: "\f104";
-$fa-var-angle-right: "\f105";
-$fa-var-angle-up: "\f106";
-$fa-var-angle-down: "\f107";
-$fa-var-desktop: "\f108";
-$fa-var-laptop: "\f109";
-$fa-var-tablet: "\f10a";
-$fa-var-mobile: "\f10b";
-$fa-var-circle-o: "\f10c";
-$fa-var-quote-left: "\f10d";
-$fa-var-quote-right: "\f10e";
-$fa-var-spinner: "\f110";
-$fa-var-circle: "\f111";
-$fa-var-reply: "\f112";
-$fa-var-github-alt: "\f113";
-$fa-var-folder-o: "\f114";
-$fa-var-folder-open-o: "\f115";
-$fa-var-smile-o: "\f118";
-$fa-var-frown-o: "\f119";
-$fa-var-meh-o: "\f11a";
-$fa-var-gamepad: "\f11b";
-$fa-var-keyboard-o: "\f11c";
-$fa-var-flag-o: "\f11d";
-$fa-var-flag-checkered: "\f11e";
-$fa-var-terminal: "\f120";
-$fa-var-code: "\f121";
-$fa-var-reply-all: "\f122";
-$fa-var-mail-reply-all: "\f122";
-$fa-var-star-half-o: "\f123";
-$fa-var-location-arrow: "\f124";
-$fa-var-crop: "\f125";
-$fa-var-code-fork: "\f126";
-$fa-var-chain-broken: "\f127";
-$fa-var-question: "\f128";
-$fa-var-info: "\f129";
-$fa-var-exclamation: "\f12a";
-$fa-var-superscript: "\f12b";
-$fa-var-subscript: "\f12c";
-$fa-var-eraser: "\f12d";
-$fa-var-puzzle-piece: "\f12e";
-$fa-var-microphone: "\f130";
-$fa-var-microphone-slash: "\f131";
-$fa-var-shield: "\f132";
-$fa-var-calendar-o: "\f133";
-$fa-var-fire-extinguisher: "\f134";
-$fa-var-rocket: "\f135";
-$fa-var-maxcdn: "\f136";
-$fa-var-chevron-circle-left: "\f137";
-$fa-var-chevron-circle-right: "\f138";
-$fa-var-chevron-circle-up: "\f139";
-$fa-var-chevron-circle-down: "\f13a";
-$fa-var-html5: "\f13b";
-$fa-var-css3: "\f13c";
-$fa-var-anchor: "\f13d";
-$fa-var-unlock-alt: "\f13e";
-$fa-var-bullseye: "\f140";
-$fa-var-ellipsis-h: "\f141";
-$fa-var-ellipsis-v: "\f142";
-$fa-var-rss-square: "\f143";
-$fa-var-play-circle: "\f144";
-$fa-var-ticket: "\f145";
-$fa-var-minus-square: "\f146";
-$fa-var-minus-square-o: "\f147";
-$fa-var-level-up: "\f148";
-$fa-var-level-down: "\f149";
-$fa-var-check-square: "\f14a";
-$fa-var-pencil-square: "\f14b";
-$fa-var-external-link-square: "\f14c";
-$fa-var-share-square: "\f14d";
-$fa-var-compass: "\f14e";
-$fa-var-caret-square-o-down: "\f150";
-$fa-var-caret-square-o-up: "\f151";
-$fa-var-caret-square-o-right: "\f152";
-$fa-var-eur: "\f153";
-$fa-var-gbp: "\f154";
-$fa-var-usd: "\f155";
-$fa-var-inr: "\f156";
-$fa-var-jpy: "\f157";
-$fa-var-rub: "\f158";
-$fa-var-krw: "\f159";
-$fa-var-btc: "\f15a";
-$fa-var-file: "\f15b";
-$fa-var-file-text: "\f15c";
-$fa-var-sort-alpha-asc: "\f15d";
-$fa-var-sort-alpha-desc: "\f15e";
-$fa-var-sort-amount-asc: "\f160";
-$fa-var-sort-amount-desc: "\f161";
-$fa-var-sort-numeric-asc: "\f162";
-$fa-var-sort-numeric-desc: "\f163";
-$fa-var-thumbs-up: "\f164";
-$fa-var-thumbs-down: "\f165";
-$fa-var-youtube-square: "\f166";
-$fa-var-youtube: "\f167";
-$fa-var-xing: "\f168";
-$fa-var-xing-square: "\f169";
-$fa-var-youtube-play: "\f16a";
-$fa-var-dropbox: "\f16b";
-$fa-var-stack-overflow: "\f16c";
-$fa-var-instagram: "\f16d";
-$fa-var-flickr: "\f16e";
-$fa-var-adn: "\f170";
-$fa-var-bitbucket: "\f171";
-$fa-var-bitbucket-square: "\f172";
-$fa-var-tumblr: "\f173";
-$fa-var-tumblr-square: "\f174";
-$fa-var-long-arrow-down: "\f175";
-$fa-var-long-arrow-up: "\f176";
-$fa-var-long-arrow-left: "\f177";
-$fa-var-long-arrow-right: "\f178";
-$fa-var-apple: "\f179";
-$fa-var-windows: "\f17a";
-$fa-var-android: "\f17b";
-$fa-var-linux: "\f17c";
-$fa-var-dribbble: "\f17d";
-$fa-var-skype: "\f17e";
-$fa-var-foursquare: "\f180";
-$fa-var-trello: "\f181";
-$fa-var-female: "\f182";
-$fa-var-male: "\f183";
-$fa-var-gittip: "\f184";
-$fa-var-sun-o: "\f185";
-$fa-var-moon-o: "\f186";
-$fa-var-archive: "\f187";
-$fa-var-bug: "\f188";
-$fa-var-vk: "\f189";
-$fa-var-weibo: "\f18a";
-$fa-var-renren: "\f18b";
-$fa-var-pagelines: "\f18c";
-$fa-var-stack-exchange: "\f18d";
-$fa-var-arrow-circle-o-right: "\f18e";
-$fa-var-arrow-circle-o-left: "\f190";
-$fa-var-caret-square-o-left: "\f191";
-$fa-var-dot-circle-o: "\f192";
-$fa-var-wheelchair: "\f193";
-$fa-var-vimeo-square: "\f194";
-$fa-var-try: "\f195";
-$fa-var-plus-square-o: "\f196";
-
diff --git a/milfs/css/font-awesome/scss/font-awesome.scss b/milfs/css/font-awesome/scss/font-awesome.scss
deleted file mode 100644
index 343bbe1..0000000
--- a/milfs/css/font-awesome/scss/font-awesome.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-/*!
- *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-
-@import "variables";
-@import "mixins";
-@import "path";
-@import "core";
-@import "larger";
-@import "fixed-width";
-@import "list";
-@import "bordered-pulled";
-@import "spinning";
-@import "rotated-flipped";
-@import "stacked";
-@import "icons";
diff --git a/milfs/css/images/buttons.gif b/milfs/css/images/buttons.gif
deleted file mode 100644
index 2e464d0..0000000
Binary files a/milfs/css/images/buttons.gif and /dev/null differ
diff --git a/milfs/css/images/toolbar.gif b/milfs/css/images/toolbar.gif
deleted file mode 100644
index e6eb2da..0000000
Binary files a/milfs/css/images/toolbar.gif and /dev/null differ
diff --git a/milfs/css/jquery.cleditor.css b/milfs/css/jquery.cleditor.css
deleted file mode 100644
index fa4481d..0000000
--- a/milfs/css/jquery.cleditor.css
+++ /dev/null
@@ -1,26 +0,0 @@
-.cleditorMain {border:1px solid #999; padding:0 1px 1px; background-color:white}
-.cleditorMain,
-.cleditorPopup,
-.cleditorMain * {-moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box}
-.cleditorMain iframe {border:none; margin:0; padding:0}
-.cleditorMain textarea {overflow-y:scroll; font:10pt Arial,Verdana; resize:none; outline:none}
-.cleditorToolbar {background: url('images/toolbar.gif') repeat}
-.cleditorGroup {float:left; height:26px}
-.cleditorButton {float:left; width:24px; height:24px; margin:1px 0 1px 0; background: url('images/buttons.gif')}
-.cleditorDisabled {opacity:0.3; filter:alpha(opacity=30)}
-.cleditorDivider {float:left; width:1px; height:23px; margin:1px 0 1px 0; background:#CCC}
-.cleditorPopup {border:solid 1px #999; background-color:white; color:#333333; position:absolute; font:10pt Arial,Verdana; cursor:default; z-index:10000}
-.cleditorList div {padding:2px 4px 2px 4px}
-.cleditorList p,
-.cleditorList h1,
-.cleditorList h2,
-.cleditorList h3,
-.cleditorList h4,
-.cleditorList h5,
-.cleditorList h6,
-.cleditorList font {padding:0; margin:0; background-color:Transparent}
-.cleditorColor {width:150px; padding:1px 0 0 1px}
-.cleditorColor div {float:left; width:14px; height:14px; margin:0 1px 1px 0}
-.cleditorPrompt {background-color:#F6F7F9; padding:8px; font-size:8.5pt}
-.cleditorPrompt label {padding-bottom:8px}
-.cleditorMsg {background-color:#FDFCEE; width:150px; padding:4px; font-size:8.5pt}
\ No newline at end of file
diff --git a/milfs/css/jquery.keypad.css b/milfs/css/jquery.keypad.css
deleted file mode 100644
index dd6810c..0000000
--- a/milfs/css/jquery.keypad.css
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Main style sheet for jQuery Keypad v2.0.0. */
-button.keypad-trigger {
-	width: 25px;
-	padding: 0px;
-}
-img.keypad-trigger {
-	margin: 2px;
-	vertical-align: middle;
-}
-.keypad-popup, .keypad-inline, .keypad-key, .keypad-special {
-	font-family: Arial,Helvetica,sans-serif;
-	font-size: 14px;
-}
-.keypad-popup {
-	display: none;
-	z-index: 10;
-	margin: 0;
-	padding: 0;
-	background-color: #fff;
-	color: #000;
-	border: 1px solid #888;
-	-moz-border-radius: 0.25em;
-	-webkit-border-radius: 0.25em;
-	border-radius: 0.25em;
-}
-.keypad-keyentry {
-	display: none;
-}
-.keypad-inline {
-	background-color: #fff;
-	border: 1px solid #888;
-	-moz-border-radius: 0.25em;
-	-webkit-border-radius: 0.25em;
-	border-radius: 0.25em;
-}
-.keypad-disabled {
-	position: absolute;
-	z-index: 100;
-	background-color: white;
-	opacity: 0.5;
-	filter: alpha(opacity=50);
-}
-.keypad-rtl {
-	direction: rtl;
-}
-.keypad-prompt {
-	clear: both;
-	text-align: center;
-}
-.keypad-prompt.ui-widget-header {
-	margin: 0.125em;
-}
-.keypad-row {
-	width: 100%;
-}
-.keypad-space {
-	display: inline-block;
-	margin: 0.125em;
-	width: 2em;
-}
-.keypad-half-space {
-	display: inline-block;
-	margin: 0.125em 0.0625em;
-	width: 1em;
-}
-.keypad-key, .keypad-special {
-	margin: 0.125em;
-	padding: 0em;
-	width: 2em;
-	background-color: #f4f4f4;
-	-moz-border-radius: 0.25em;
-	-webkit-border-radius: 0.25em;
-	border-radius: 0.25em;
-	text-align: center;
-	cursor: pointer;
-}
-.keypad-key[disabled] {
-	border: 0.125em outset;
-}
-.keypad-key-down {
-}
-.keypad-special {
-	width: 4.25em;
-}
-.keypad-spacebar {
-	width: 13.25em;
-}
-.keypad-tab {
-	width: 2em;
-}
-.keypad-clear, .keypad-back, .keypad-close, .keypad-shift {
-	color: #fff;
-	font-weight: bold;
-}
-.keypad-clear {
-	background-color: #a00;
-}
-.keypad-back {
-	background-color: #00a;
-}
-.keypad-close {
-	background-color: #0a0;
-}
-.keypad-shift {
-	background-color: #0aa;
-}
diff --git a/milfs/css/salgar.css b/milfs/css/salgar.css
deleted file mode 100644
index cf35453..0000000
--- a/milfs/css/salgar.css
+++ /dev/null
@@ -1,166 +0,0 @@
-* {
-	margin: 0;
-	padding: 0;
-}
-
-body {
-	background: #222;
-	font-family: Georgia, serif;
-	color: #fff;
-	font-size: 14px;
-}
-
-a {
-	color: #ffffcc;
-	text-decoration: none;
-	-webkit-transition: 0.5s;
-	-moz-transition: 0.5s;
-	-o-transition: 0.5s;
-	-ms-transition: 0.5s;
-	transition: 0.5s;
-}
-	a:hover,
-	a.selected {
-		color: #ffcc00;
-	}
-
-h1,h2,h4,h5,h6 {
-	text-align: center;
-	color: #ccc;
-	text-shadow: #000 1px 1px 2px;
-	margin-bottom: 5px;
-}
-	h1 {
-		font-size: 14px;
-	}
-	h2 {
-		font-size: 12px;
-	}
-
-	#timeline {
-		width: 800px;
-		height: 100%;
-		overflow: hidden;
-		margin: 50px auto;
-		position: relative;
-		background: url('timeline/dot.gif') left 45px repeat-x;
-	}
-		#dates {
-			width: 800px;
-			height: 60px;
-			overflow: hidden;
-		}
-			#dates li {
-				list-style: none;
-				float: left;
-				width: 200px;
-				height: 50px;
-				font-size: 10px;
-				text-align: center;
-				background: url('timeline/biggerdot.png') center bottom no-repeat;
-			}
-				#dates a {
-					line-height: 12px;
-					padding-bottom: 10px;
-				}
-				#dates .selected {
-			        font-size: 14px;
-			        z-index:10000;
-			        background-color: black;
-			        
-				}
-		
-		#issues {
-			width: 800px;
-			height: 350px;
-			overflow: auto;
-		}	
-			#issues li {
-				width: 800px;
-				height: 350px;
-				list-style: none;
-				float: left;
-			}
-				#issues li.selected img {
-					-webkit-transform: scale(1.1,1.1);
-					-moz-transform: scale(1.1,1.1);
-				    -o-transform: scale(1.1,1.1);
-				    -ms-transform: scale(1.1,1.1);
-				    transform: scale(1.1,1.1);
-				}
-				#issues li img {
-					float: left;
-					margin: 10px 30px 10px 50px;
-					background: transparent;
-					-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE 8 */   
-					filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);/* IE 6 & 7 */      
-					zoom: 1;
-					-webkit-transition: all 2s ease-in-out;
-					-moz-transition: all 2s ease-in-out;
-					-o-transition: all 2s ease-in-out;
-					-ms-transition: all 2s ease-in-out; 
-					transition: all 2s ease-in-out;
-					-webkit-transform: scale(0.7,0.7);
-					-moz-transform: scale(0.7,0.7);
-				    -o-transform: scale(0.7,0.7);
-				    -ms-transform: scale(0.7,0.7);
-				    transform: scale(0.7,0.7);
-				}
-				#issues li h1 {
-					color: #ffcc00;
-					font-size: 24px;
-					margin: 20px 0;
-					text-shadow: #000 1px 1px 2px;
-				}
-				#issues li p {
-					font-size: 14px;
-					margin-right: 70px;
-					font-weight: normal;
-					line-height: 22px;
-					text-shadow: #000 1px 1px 2px;
-				}
-		#grad_left,
-		#grad_right {
-			width: 100px;
-			height: 350px;
-			position: absolute;
-			top: 0;
-		}
-			#grad_left {
-		        left: 0;
-		        background: url('timeline/grad_left.png') repeat-y;
-			}
-			#grad_right {
-		        right: 0;
-		        background: url('timeline/grad_right.png') repeat-y;
-			}
-		
-		#next,
-		#prev {
-			position: absolute;
-			top: 0;
-			font-size: 70px;
-			top: 170px;
-			width: 22px;
-			height: 38px;
-			background-position: 0 0;
-			background-repeat: no-repeat;
-			text-indent: -9999px;
-			overflow: hidden;
-		}
-			#next:hover,
-			#prev:hover {
-				background-position: 0 -76px;
-			}
-			#next {
-				right: 0;
-				background-image: url('timeline/next.png');
-			}
-			#prev {
-				left: 0;
-				background-image: url('timeline/prev.png');
-			}
-				#next.disabled,
-				#prev.disabled {
-					opacity: 0.2;
-				}
\ No newline at end of file
diff --git a/milfs/css/sticky-footer-navbar.css b/milfs/css/sticky-footer-navbar.css
deleted file mode 100644
index ee80380..0000000
--- a/milfs/css/sticky-footer-navbar.css
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Sticky footer styles
--------------------------------------------------- */
-html {
-  position: relative;
-  min-height: 100%;
-}
-body {
-  /* Margin bottom by footer height */
-  margin-bottom: 60px;
-}
-.footer {
-  position: absolute;
-  bottom: 0;
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  height: 60px;
-  background-color: #f5f5f5;
-}
-
-
-/* Custom page CSS
--------------------------------------------------- */
-/* Not required for template or sticky footer method. */
-
-body > .container {
-  padding: 60px 15px 0;
-}
-.container .text-muted {
-  margin: 20px 0;
-}
-
-.footer > .container {
-  padding-right: 15px;
-  padding-left: 15px;
-}
-
-code {
-  font-size: 80%;
-}
diff --git a/milfs/css/style.css b/milfs/css/style.css
deleted file mode 100644
index 5d39f70..0000000
--- a/milfs/css/style.css
+++ /dev/null
@@ -1,172 +0,0 @@
- * {
-	margin: 0;
-	padding: 0;
-}
-
-body {
-	background: #222;
-	font-family: Georgia, serif;
-	color: #fff;
-	font-size: 14px;
-}
-
-#dates a {
-	color: gray;
-	text-decoration: none;
-	-webkit-transition: 0.5s;
-	-moz-transition: 0.5s;
-	-o-transition: 0.5s;
-	-ms-transition: 0.5s;
-	transition: 0.5s;
-	font-size: 12px;
-}
-#dates 	a:hover,
-#dates 	a.selected {
-		color: red;
-		font-size: 18px;
-	}
-/*
-h1,h2,h4,h5,h6 {
-	text-align: center;
-	color: #ccc;
-	text-shadow: #000 1px 1px 2px;
-	margin-bottom: 5px;
-}
-	h1 {
-		font-size: 18px;
-	}
-	h2 {
-		font-size: 14px;
-	}
-.sociales {
-	text-align: center;
-	margin-bottom: 20px;
-}
-*/
-	#timeline {
-		width: 95%;
-		height: 500px;
-		overflow: hidden;
-		margin: 100px auto;
-		position: relative;
-
-	}
-		#dates {
-			width: 800px;
-			height: 60px;
-			overflow: hidden;
-					background: url('timeline/dot.gif') left 45px repeat-x;
-		}
-			#dates li {
-				list-style: none;
-				float: left;
-				width: 100px;
-				height: 50px;
-				font-size: 24px;
-				text-align: center;
-				background: url('timeline/biggerdot.png') center bottom no-repeat;
-			}
-				#dates a {
-					line-height: 18px;
-					padding-bottom: 10px;
-				}
-				#dates .selected {
-			        font-size: 18px;
-				}
-		
-		#issues {
-			width: 800px;
-			height: 500px;
-			overflow: hidden;
-		}	
-			#issues li {
-				width: 900px;
-				height: 500px;
-				list-style: none;
-				float: left;
-			}
-				#issues li.selected img {
-					-webkit-transform: scale(1.1,1.1);
-					-moz-transform: scale(1.1,1.1);
-				    -o-transform: scale(1.1,1.1);
-				    -ms-transform: scale(1.1,1.1);
-				    transform: scale(1.1,1.1);
-				}
-				#issues li img {
-					float: left;
-					margin: 10px 30px 10px 50px;
-					background: transparent;
-					-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE 8 */   
-					filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);/* IE 6 & 7 */      
-					zoom: 1;
-					-webkit-transition: all 2s ease-in-out;
-					-moz-transition: all 2s ease-in-out;
-					-o-transition: all 2s ease-in-out;
-					-ms-transition: all 2s ease-in-out; 
-					transition: all 2s ease-in-out;
-					-webkit-transform: scale(0.7,0.7);
-					-moz-transform: scale(0.7,0.7);
-				    -o-transform: scale(0.7,0.7);
-				    -ms-transform: scale(0.7,0.7);
-				    transform: scale(0.7,0.7);
-				}
-				#issues li h1 {
-					
-					font-size: 48px;
-					margin: 20px 0;
-					color: red;
-					/*text-shadow: #000 1px 1px 2px;*/
-				}
-				#issues li p {
-					font-size: 14px;
-					margin-right: 70px;
-					font-weight: normal;
-					line-height: 22px;
-					/* text-shadow: #000 1px 1px 2px;*/
-				}
-		
-		#grad_left,
-		#grad_right {
-			width: 100px;
-			height: 500px;
-			position: absolute;
-			top: 0;
-		}
-			#grad_left {
-		        left: 0;
-		       /* background: url('timeline/grad_left.png') repeat-y;*/
-			}
-			#grad_right {
-		        right: 0;
-		       /* background: url('timeline/grad_right.png') repeat-y;*/
-			}
-		
-		#next,
-		#prev {
-			position: absolute;
-			top: 0;
-			font-size: 70px;
-			top: 170px;
-			width: 22px;
-			height: 38px;
-			background-position: 0 0;
-			background-repeat: no-repeat;
-			text-indent: -9999px;
-			overflow: hidden;
-		}
-			#next:hover,
-			#prev:hover {
-				background-position: 0 -76px;
-			}
-			#next {
-				right: 0;
-				background-image: url('timeline/next.png');
-			}
-			#prev {
-				left: 0;
-				background-image: url('timeline/prev.png');
-			}
-				#next.disabled,
-				#prev.disabled {
-					opacity: 0.2;
-				}
\ No newline at end of file
diff --git a/milfs/css/styletimeline.css b/milfs/css/styletimeline.css
deleted file mode 100644
index 4196bb4..0000000
--- a/milfs/css/styletimeline.css
+++ /dev/null
@@ -1,175 +0,0 @@
-* {
-	margin: 0;
-	padding: 0;
-}
-
-body {
-	background: #222;
-	font-family: Georgia, serif;
-	color: #fff;
-	font-size: 14px;
-}
-
-a {
-	color: #ffffcc;
-	text-decoration: none;
-	-webkit-transition: 0.5s;
-	-moz-transition: 0.5s;
-	-o-transition: 0.5s;
-	-ms-transition: 0.5s;
-	transition: 0.5s;
-}
-	a:hover,
-	a.selected {
-		color: #ffcc00;
-	}
-
-h1,h2,h4,h5,h6 {
-	text-align: center;
-	color: #ccc;
-	text-shadow: #000 1px 1px 2px;
-	margin-bottom: 5px;
-}
-	h1 {
-		font-size: 14px;
-	}
-	h2 {
-		font-size: 12px;
-	}
-	#titulo_timeline {
-		font-size: 24px;
-		color: #ffcc00;
-		
-	}
-	#descripcion_timeline {
-		font-size: 10px;
-
-		
-	}
-	#timeline {
-		width: 800px;
-		height: 100%;
-		overflow: hidden;
-		margin: 50px auto;
-		position: relative;
-		background: url('timeline/dot.gif') left 45px repeat-x;
-	}
-		#dates {
-			width: 800px;
-			height: 60px;
-			overflow: hidden;
-		}
-			#dates li {
-				list-style: none;
-				float: left;
-				width: 100px;
-				height: 50px;
-				font-size: 12px;
-				text-align: center;
-				background: url('timeline/biggerdot.png') center bottom no-repeat;
-			}
-				#dates a {
-					line-height: 12px;
-					padding-bottom: 10px;
-				}
-				#dates .selected {
-			        font-size: 12px;
-			        z-index:10000;
-			        background-color: black;
-			        
-				}
-		
-		#issues {
-			width: 800px;
-			height: 350px;
-			overflow: auto;
-		}	
-			#issues li {
-				width: 800px;
-				height: 350px;
-				list-style: none;
-				float: left;
-			}
-				#issues li.selected img {
-					-webkit-transform: scale(1.1,1.1);
-					-moz-transform: scale(1.1,1.1);
-				    -o-transform: scale(1.1,1.1);
-				    -ms-transform: scale(1.1,1.1);
-				    transform: scale(1.1,1.1);
-				}
-				#issues li img {
-					float: left;
-					margin: 10px 30px 10px 50px;
-					background: transparent;
-					-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; /* IE 8 */   
-					filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);/* IE 6 & 7 */      
-					zoom: 1;
-					-webkit-transition: all 2s ease-in-out;
-					-moz-transition: all 2s ease-in-out;
-					-o-transition: all 2s ease-in-out;
-					-ms-transition: all 2s ease-in-out; 
-					transition: all 2s ease-in-out;
-					-webkit-transform: scale(0.7,0.7);
-					-moz-transform: scale(0.7,0.7);
-				    -o-transform: scale(0.7,0.7);
-				    -ms-transform: scale(0.7,0.7);
-				    transform: scale(0.7,0.7);
-				}
-				#issues li h1 {
-					color: #ffcc00;
-					font-size: 24px;
-					margin: 20px 0;
-					text-shadow: #000 1px 1px 2px;
-				}
-				#issues li p {
-					font-size: 14px;
-					margin-right: 70px;
-					font-weight: normal;
-					line-height: 22px;
-					text-shadow: #000 1px 1px 2px;
-				}
-		#grad_left,
-		#grad_right {
-			width: 100px;
-			height: 350px;
-			position: absolute;
-			top: 0;
-		}
-			#grad_left {
-		        left: 0;
-		        /* background: url('timeline/grad_left.png') repeat-y;*/
-			}
-			#grad_right {
-		        right: 0;
-		       /* background: url('timeline/grad_right.png') repeat-y;*/
-			}
-		
-		#next,
-		#prev {
-			position: absolute;
-			top: 0;
-			font-size: 70px;
-			top: 170px;
-			width: 22px;
-			height: 38px;
-			background-position: 0 0;
-			background-repeat: no-repeat;
-			text-indent: -9999px;
-			overflow: hidden;
-		}
-			#next:hover,
-			#prev:hover {
-				background-position: 0 -76px;
-			}
-			#next {
-				right: 0;
-				background-image: url('timeline/next.png');
-			}
-			#prev {
-				left: 0;
-				background-image: url('timeline/prev.png');
-			}
-				#next.disabled,
-				#prev.disabled {
-					opacity: 0.2;
-				}
diff --git a/milfs/css/timeline/biggerdot.png b/milfs/css/timeline/biggerdot.png
deleted file mode 100644
index 66324b6..0000000
Binary files a/milfs/css/timeline/biggerdot.png and /dev/null differ
diff --git a/milfs/css/timeline/buttons.gif b/milfs/css/timeline/buttons.gif
deleted file mode 100644
index 2e464d0..0000000
Binary files a/milfs/css/timeline/buttons.gif and /dev/null differ
diff --git a/milfs/css/timeline/dot.gif b/milfs/css/timeline/dot.gif
deleted file mode 100644
index 609bda0..0000000
Binary files a/milfs/css/timeline/dot.gif and /dev/null differ
diff --git a/milfs/css/timeline/grad_bottom.png b/milfs/css/timeline/grad_bottom.png
deleted file mode 100644
index cd2295b..0000000
Binary files a/milfs/css/timeline/grad_bottom.png and /dev/null differ
diff --git a/milfs/css/timeline/grad_left.png b/milfs/css/timeline/grad_left.png
deleted file mode 100644
index e7e3653..0000000
Binary files a/milfs/css/timeline/grad_left.png and /dev/null differ
diff --git a/milfs/css/timeline/grad_right.png b/milfs/css/timeline/grad_right.png
deleted file mode 100644
index 031dcab..0000000
Binary files a/milfs/css/timeline/grad_right.png and /dev/null differ
diff --git a/milfs/css/timeline/grad_top.png b/milfs/css/timeline/grad_top.png
deleted file mode 100644
index 4e0a5da..0000000
Binary files a/milfs/css/timeline/grad_top.png and /dev/null differ
diff --git a/milfs/css/timeline/next.png b/milfs/css/timeline/next.png
deleted file mode 100644
index a5639fa..0000000
Binary files a/milfs/css/timeline/next.png and /dev/null differ
diff --git a/milfs/css/timeline/next_v.png b/milfs/css/timeline/next_v.png
deleted file mode 100644
index 05e84ff..0000000
Binary files a/milfs/css/timeline/next_v.png and /dev/null differ
diff --git a/milfs/css/timeline/prev.png b/milfs/css/timeline/prev.png
deleted file mode 100644
index b4bd42d..0000000
Binary files a/milfs/css/timeline/prev.png and /dev/null differ
diff --git a/milfs/css/timeline/prev_v.png b/milfs/css/timeline/prev_v.png
deleted file mode 100644
index 95b6ff8..0000000
Binary files a/milfs/css/timeline/prev_v.png and /dev/null differ
diff --git a/milfs/css/timeline/toolbar.gif b/milfs/css/timeline/toolbar.gif
deleted file mode 100644
index e6eb2da..0000000
Binary files a/milfs/css/timeline/toolbar.gif and /dev/null differ
diff --git a/milfs/directorio.php b/milfs/directorio.php
deleted file mode 100644
index 56ed360..0000000
--- a/milfs/directorio.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-///este archivo debe estar un nivel superior al directorio milfs 
-session_start();
-        if(isset($_REQUEST[debug])) {ini_set('display_errors', 'On');}
-require ('milfs/xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('milfs/funciones/funciones.php');
-require ('milfs/funciones/experimentales.php');
-//require ('milfs/funciones/convert.php');
-require ('milfs/funciones/login.php');
-require_once ('milfs/includes/markdown.php');
-require ("milfs/funciones/conex.php");
-$formulario ="5";
-$campo_filtro ="74";
-$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') ;
-$formulario_descripcion = remplacetas('form_id','id',"$formulario",'descripcion',"") ;
-$formulario_nombre = remplacetas('form_id','id',"$formulario",'nombre',"") ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-     <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha256-k2/8zcNbxVIh5mnQ52A0r3a6jAgMGxFJFE2707UxGCk= sha512-ZV9KawG2Legkwp3nAlxLIVFudTauWuBpC10uEafMHYL0Sarrz5A7G79kXh5+5+woxQ5HM559XX2UZjMJ36Wplg==" crossorigin="anonymous">
-<link rel="stylesheet" href="milfs/css/style.css" media="screen" /> 
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<!-- <link href="milfs/css/estilos.php" rel="stylesheet">  -->
-	<script src="milfs/js/jquery.min.js"></script>
-<script src="milfs/js/jquery.timelinr-0.9.54.js"></script>
-<style type="text/css">
-/*@font-face {
-font-family: Brandon_light;
-src: url("milfs/patos/fuentes/Brandon_light.otf") format("opentype");
-}*/
-body{
-
-}
-
-.modal-dialog {
-  padding: 5px;
-  border-radius: 3px;
-  max-width: 700px;
-}
-
-.modal-content {
-  /*height: 100%;*/
-  border-radius: 5px;;
-}
-.container-fluid {
-	/*padding: 0px !important;*/
-	}
-a.pie{
-color: white !important;
-}
-a.menu{
-color: white !important;
-}
-a:active{
-color: black !important;
-}
-
-
-	</style>
-</head>
-<body  >
-
-    
-<!-- /container -->
-	<br>	<br>
-	<div class='container'>
-	<div class='jumbotron'>
-		<div class='row'>
-			<div class='col-md-3'>
-			<img class="img img-responsive" style="width:100%; " src="milfs/images/secure/?file=600/<?php echo $logo[0] ?>" >
-			
-			</div>
-			<div class='col-md-9'>
-			<h1><?php echo $razon_social[0]; ?></h1>
-			<?php echo "<h2>$formulario_nombre[0] <br><small>$formulario_descripcion[0]<small></h2> ";   ?>
-			</div>
-		</div>
-	
-	</div>
-	
-	<div class='row'>
-		<div class='col-sm-7 col-md-2' >
-		<div class='btn btn-success btn-block' onclick ="xajax_mostrar_modal('<?php echo $formulario; ?>','','');"> <i class='fa fa-plus-square'></i> Agregar </a></div>
-		</div>
-		<div class='col-sm-7 col-md-5' >
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-		<?php echo portal_filtro_campos_select($formulario,"$campo_filtro","mostrar_resultado","grid");  ?>
-			</div>
-		</div>
-		<?php  echo buscar_datos("","$formulario","grid","mostrar_resultado"); ?>
-	</div>
-		
-	<br>
-	<div id ='mostrar_resultado' style='  ' class="container">
-	
-	</div>
-
-	<div class="" style="background-color: black; color:white; ">
-<!-- 	<img class='img img-resposive' src="milfs/patos/images/pie.png" style="width:100%" alt=""> -->
-
-	</div>
-	</div>
-</div>
-  <!-- Modal -->
-
-<div class='modal fade  ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog modal-lg' style='  ' >
-    <div class='modal-content'  style=' '>
-    	<div class="modal-header">
-        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
-			<br>
-      </div>
-      <div class='modal-body'>
-       <div id='muestra_form' class="row"></div>
-      </div>
-    </div>
-  </div>
-
-<!-- 
-	       <div class='pie' style=" position: fixed;
-  bottom: 0; 
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  
- ">
-	      
-        	</div> -->  
-
-
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-<!--      <script src="milfs/js/jquery.min.js"></script>  -->
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
-<!--     <script src="milfs/js/bootstrap.min.js"></script>  -->
-    <script src="milfs/js/scripts.js"></script> 
-        
-</body>
-</html>
diff --git a/milfs/favicon-152.png b/milfs/favicon-152.png
deleted file mode 100644
index 7e1395b..0000000
Binary files a/milfs/favicon-152.png and /dev/null differ
diff --git a/milfs/fonts/glyphicons-halflings-regular.eot b/milfs/fonts/glyphicons-halflings-regular.eot
deleted file mode 100644
index 4a4ca86..0000000
Binary files a/milfs/fonts/glyphicons-halflings-regular.eot and /dev/null differ
diff --git a/milfs/fonts/glyphicons-halflings-regular.svg b/milfs/fonts/glyphicons-halflings-regular.svg
deleted file mode 100644
index e3e2dc7..0000000
--- a/milfs/fonts/glyphicons-halflings-regular.svg
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
-<font-face units-per-em="1200" ascent="960" descent="-240" />
-<missing-glyph horiz-adv-x="500" />
-<glyph />
-<glyph />
-<glyph unicode="&#xd;" />
-<glyph unicode=" " />
-<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
-<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#x2000;" horiz-adv-x="652" />
-<glyph unicode="&#x2001;" horiz-adv-x="1304" />
-<glyph unicode="&#x2002;" horiz-adv-x="652" />
-<glyph unicode="&#x2003;" horiz-adv-x="1304" />
-<glyph unicode="&#x2004;" horiz-adv-x="434" />
-<glyph unicode="&#x2005;" horiz-adv-x="326" />
-<glyph unicode="&#x2006;" horiz-adv-x="217" />
-<glyph unicode="&#x2007;" horiz-adv-x="217" />
-<glyph unicode="&#x2008;" horiz-adv-x="163" />
-<glyph unicode="&#x2009;" horiz-adv-x="260" />
-<glyph unicode="&#x200a;" horiz-adv-x="72" />
-<glyph unicode="&#x202f;" horiz-adv-x="260" />
-<glyph unicode="&#x205f;" horiz-adv-x="326" />
-<glyph unicode="&#x20ac;" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
-<glyph unicode="&#x2212;" d="M200 400h900v300h-900v-300z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#x2601;" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
-<glyph unicode="&#x2709;" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
-<glyph unicode="&#x270f;" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
-<glyph unicode="&#xe001;" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
-<glyph unicode="&#xe002;" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
-<glyph unicode="&#xe003;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
-<glyph unicode="&#xe005;" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
-<glyph unicode="&#xe006;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
-<glyph unicode="&#xe007;" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
-<glyph unicode="&#xe008;" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
-<glyph unicode="&#xe009;" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
-<glyph unicode="&#xe010;" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe011;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe012;" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe013;" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
-<glyph unicode="&#xe014;" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
-<glyph unicode="&#xe015;" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
-<glyph unicode="&#xe016;" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
-<glyph unicode="&#xe017;" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
-<glyph unicode="&#xe018;" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
-<glyph unicode="&#xe019;" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
-<glyph unicode="&#xe020;" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
-<glyph unicode="&#xe021;" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
-<glyph unicode="&#xe022;" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
-<glyph unicode="&#xe023;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
-<glyph unicode="&#xe024;" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
-<glyph unicode="&#xe025;" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
-<glyph unicode="&#xe026;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
-<glyph unicode="&#xe027;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
-<glyph unicode="&#xe028;" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
-<glyph unicode="&#xe029;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
-<glyph unicode="&#xe030;" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
-<glyph unicode="&#xe031;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
-<glyph unicode="&#xe032;" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
-<glyph unicode="&#xe033;" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
-<glyph unicode="&#xe034;" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
-<glyph unicode="&#xe035;" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
-<glyph unicode="&#xe036;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
-<glyph unicode="&#xe037;" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
-<glyph unicode="&#xe038;" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
-<glyph unicode="&#xe039;" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
-<glyph unicode="&#xe040;" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
-<glyph unicode="&#xe041;" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
-<glyph unicode="&#xe042;" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
-<glyph unicode="&#xe043;" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
-<glyph unicode="&#xe044;" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
-<glyph unicode="&#xe045;" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
-<glyph unicode="&#xe046;" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
-<glyph unicode="&#xe047;" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
-<glyph unicode="&#xe048;" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
-<glyph unicode="&#xe049;" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
-<glyph unicode="&#xe050;" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
-<glyph unicode="&#xe051;" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
-<glyph unicode="&#xe052;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe053;" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe054;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe055;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe056;" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe057;" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
-<glyph unicode="&#xe058;" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
-<glyph unicode="&#xe059;" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
-<glyph unicode="&#xe060;" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
-<glyph unicode="&#xe062;" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
-<glyph unicode="&#xe063;" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
-<glyph unicode="&#xe064;" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
-<glyph unicode="&#xe065;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
-<glyph unicode="&#xe066;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
-<glyph unicode="&#xe067;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
-<glyph unicode="&#xe068;" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
-<glyph unicode="&#xe069;" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe070;" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe071;" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
-<glyph unicode="&#xe072;" d="M200 0l900 550l-900 550v-1100z" />
-<glyph unicode="&#xe073;" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="&#xe074;" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
-<glyph unicode="&#xe075;" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
-<glyph unicode="&#xe076;" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
-<glyph unicode="&#xe077;" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
-<glyph unicode="&#xe078;" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
-<glyph unicode="&#xe079;" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
-<glyph unicode="&#xe080;" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
-<glyph unicode="&#xe081;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
-<glyph unicode="&#xe082;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
-<glyph unicode="&#xe083;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
-<glyph unicode="&#xe084;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
-<glyph unicode="&#xe085;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
-<glyph unicode="&#xe086;" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
-<glyph unicode="&#xe087;" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
-<glyph unicode="&#xe088;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
-<glyph unicode="&#xe089;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
-<glyph unicode="&#xe090;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
-<glyph unicode="&#xe091;" d="M0 547l600 453v-300h600v-300h-600v-301z" />
-<glyph unicode="&#xe092;" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
-<glyph unicode="&#xe093;" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
-<glyph unicode="&#xe094;" d="M104 600h296v600h300v-600h298l-449 -600z" />
-<glyph unicode="&#xe095;" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
-<glyph unicode="&#xe096;" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
-<glyph unicode="&#xe097;" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
-<glyph unicode="&#xe101;" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
-<glyph unicode="&#xe102;" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
-<glyph unicode="&#xe103;" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
-<glyph unicode="&#xe104;" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
-<glyph unicode="&#xe105;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
-<glyph unicode="&#xe106;" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
-<glyph unicode="&#xe107;" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
-<glyph unicode="&#xe108;" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
-<glyph unicode="&#xe109;" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
-<glyph unicode="&#xe110;" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
-<glyph unicode="&#xe111;" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
-<glyph unicode="&#xe112;" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
-<glyph unicode="&#xe113;" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
-<glyph unicode="&#xe114;" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
-<glyph unicode="&#xe115;" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
-<glyph unicode="&#xe116;" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
-<glyph unicode="&#xe117;" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
-<glyph unicode="&#xe118;" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
-<glyph unicode="&#xe119;" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
-<glyph unicode="&#xe120;" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
-<glyph unicode="&#xe121;" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
-<glyph unicode="&#xe122;" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
-<glyph unicode="&#xe123;" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
-<glyph unicode="&#xe124;" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
-<glyph unicode="&#xe125;" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
-<glyph unicode="&#xe126;" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
-<glyph unicode="&#xe127;" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
-<glyph unicode="&#xe128;" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
-<glyph unicode="&#xe129;" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
-<glyph unicode="&#xe130;" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
-<glyph unicode="&#xe131;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
-<glyph unicode="&#xe132;" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
-<glyph unicode="&#xe133;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
-<glyph unicode="&#xe134;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
-<glyph unicode="&#xe135;" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
-<glyph unicode="&#xe136;" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
-<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
-<glyph unicode="&#xe138;" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
-<glyph unicode="&#xe139;" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
-<glyph unicode="&#xe140;" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
-<glyph unicode="&#xe141;" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
-<glyph unicode="&#xe142;" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
-<glyph unicode="&#xe143;" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
-<glyph unicode="&#xe144;" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
-<glyph unicode="&#xe145;" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
-<glyph unicode="&#xe146;" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
-<glyph unicode="&#xe148;" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
-<glyph unicode="&#xe149;" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
-<glyph unicode="&#xe150;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
-<glyph unicode="&#xe151;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
-<glyph unicode="&#xe152;" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
-<glyph unicode="&#xe153;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
-<glyph unicode="&#xe154;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
-<glyph unicode="&#xe155;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
-<glyph unicode="&#xe156;" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
-<glyph unicode="&#xe157;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
-<glyph unicode="&#xe158;" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
-<glyph unicode="&#xe159;" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
-<glyph unicode="&#xe160;" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
-<glyph unicode="&#xe161;" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
-<glyph unicode="&#xe162;" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
-<glyph unicode="&#xe163;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
-<glyph unicode="&#xe164;" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
-<glyph unicode="&#xe165;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
-<glyph unicode="&#xe166;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe167;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe168;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe169;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe170;" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
-<glyph unicode="&#xe171;" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
-<glyph unicode="&#xe172;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
-<glyph unicode="&#xe173;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
-<glyph unicode="&#xe174;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
-<glyph unicode="&#xe175;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
-<glyph unicode="&#xe176;" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
-<glyph unicode="&#xe177;" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
-<glyph unicode="&#xe178;" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
-<glyph unicode="&#xe179;" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
-<glyph unicode="&#xe180;" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
-<glyph unicode="&#xe181;" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
-<glyph unicode="&#xe182;" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
-<glyph unicode="&#xe183;" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
-<glyph unicode="&#xe184;" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
-<glyph unicode="&#xe185;" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
-<glyph unicode="&#xe186;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="&#xe187;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
-<glyph unicode="&#xe188;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
-<glyph unicode="&#xe189;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
-<glyph unicode="&#xe190;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
-<glyph unicode="&#xe191;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="&#xe192;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
-<glyph unicode="&#xe193;" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
-<glyph unicode="&#xe194;" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
-<glyph unicode="&#xe195;" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
-<glyph unicode="&#xe197;" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
-<glyph unicode="&#xe198;" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
-<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
-<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/milfs/fonts/glyphicons-halflings-regular.ttf b/milfs/fonts/glyphicons-halflings-regular.ttf
deleted file mode 100644
index 67fa00b..0000000
Binary files a/milfs/fonts/glyphicons-halflings-regular.ttf and /dev/null differ
diff --git a/milfs/fonts/glyphicons-halflings-regular.woff b/milfs/fonts/glyphicons-halflings-regular.woff
deleted file mode 100644
index 8c54182..0000000
Binary files a/milfs/fonts/glyphicons-halflings-regular.woff and /dev/null differ
diff --git a/milfs/formulario.php b/milfs/formulario.php
deleted file mode 100644
index e90c2de..0000000
--- a/milfs/formulario.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-/// ESTE ARCHIVO DEBE ESTAR UN NIVEL POR ENCIMA DEL DIRECTORIO milfs 
-session_start();
-//ini_set('display_errors', 'On');
-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') ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700,300' rel='stylesheet' type='text/css'>
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="milfs/css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<!-- <link href="milfs/css/styletimeline.css" rel="stylesheet"> -->
-
-<!--   <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> -->
-<!--   <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>"> -->
-<style type="text/css">
-.navbar-header > p { font-size:20px; color: white; font-family: "Open Sans",sans-serif; font-weight: normal;display:inline }
-.navbar-header > strong{ font-size:20px; color: #802a2a; font-weight: normal; font-family: "Open Sans",sans-serif; ;display:inline}
-.navbar-header {width: 50%;}
-</style>
-
-</head>
-<body>
-     <script src="milfs/js/jquery.min.js"></script> 
-    <script src="milfs/js/bootstrap.min.js"></script>
-    <script src="milfs/js/scripts.js"></script>
-    <script src="milfs/js/jquery.timelinr-0.9.54.js"></script>
-<?php echo $onload; ?>
-
-      <nav class="navbar navbar-inverse" role="navigation">
-      	<div class="container-fluid">
-      	  <div class='col-sx-12 ' id='logo_cabecera' style='width:100%;left:40px; background-color: white; '>
-      	 
-		      <div class='pull-right' >
-		      	<div style="">
-		      	<a title="Email" target="_redes" href="mailto:<?php echo $email[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-envelope'></i></span></a>
-		      	<a title="Facebook" target="_redes" href="<?php echo $facebook[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-facebook-square'></i></span></a>
-		      	<a title="Twitter" target="_redes" href="https://twitter.com/<?php echo $twitter[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-twitter'></i></span></a>
-		      	<a title="Inicio" target="" href="?"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-home'></i></span></a>
-		      	
-		      	</div>
-		      	
-		      </div>
-	      </div>
-          <div class="navbar-header" style="  ">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
-              <span class="sr-only">Toggle navigation</span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-            </button>
-            
-            	<p>|<?php echo $razon_social[0];?>|</p>
-	<strong><?php echo $slogan[0];?></strong>
-				
-          </div>
-          <div class="navbar-collapse collapse">
-            <ul class="nav navbar-nav">
-            
-					<li></li>
-              
-            </ul>
-
-          </div><!--/.nav-collapse -->
-		</div>
-      </nav>
-
-
-  
-    <div class="container-fluid">
-
-<div id='contenedor'>
-<?php 
-
- echo formulario_areas("$_REQUEST[id]");
-?>
-<br></br>
-<br></br>
-<br></br>
-	</div>
-
-	</div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-       <div class='pie' style=" position: fixed; z-index: 10000;
-  bottom: 0;
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  height: 50px;
-  background-color: black;
-//background-image: url('milfs/images/menosmicos/background.jpg');
-">
-	      <p class='text-center'> <?php echo "$razon_social[0] $slogan[0] $direccion[0] $telefono[0] <a href ='$web[0]'>$web[0]</a>";  ?></p>
-        <a class='pull-right' href='http://QWERTY.co/milfs'>Powered by: &copy; MILFS </a> 
-        	</div> 
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-
-</body>
-</html>
diff --git a/milfs/funciones/.giosaveXCKCCY b/milfs/funciones/.giosaveXCKCCY
deleted file mode 100644
index e69de29..0000000
diff --git a/milfs/funciones/.goutputstream-05TT7X b/milfs/funciones/.goutputstream-05TT7X
deleted file mode 100644
index 8079cee..0000000
--- a/milfs/funciones/.goutputstream-05TT7X
+++ /dev/null
@@ -1,8047 +0,0 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-function landingpage_contenido($id_empresa){
-$consulta= "SELECT * FROM form_id WHERE publico ='1' AND id_empresa= '$id_empresa' ";
-
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-	$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$linea="";
-	$fila = 0;
-		while( $row = mysql_fetch_array( $sql ) ) {
-		
-		$linea .= "<h1>$fila $row[nombre]</h1>";
-		$fila++
-		}
-	}
-return $linea;
-}
-
-function buscar_imagen($form,$control,$tipo,$empresa) {
-	
-	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',$id,'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]'") ;
-//$imagen = "$imagen[0]";
-return $imagen[0];
-}
-return;
-}
-
-function wait($div){
-$respuesta = new xajaxResponse('utf-8');
-$resultado ="<h1><i class='fa fa-spinner fa-pulse'></i> Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos'); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		return $resultado;
-		}
-$link=Conectarse(); 
-
-mysql_query("SET NAMES 'utf8'");
-$id_empresa= $_SESSION['id_empresa'];
-$consulta = "SELECT * FROM empresa ";
-$sql=mysql_query($consulta,$link);
-
-$resultado="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row[id_campo];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysql_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "<td>$contenido[0]</td>";
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td>$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:100px;' class='actions' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group'>
-								<a class='btn btn-default' target='form' href='?c=$row[control]'><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "<srong class='text-success'>$descripcion</strong>";
-	$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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-$impresion
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id&c=$control'>http://$_SERVER[HTTP_HOST]/milfs?id=$id&c=$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Títulos</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"images/secure/?file=600/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i></a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a></td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-$resultado = "	
-	<br>
-	<p>El campo titulo, se usa como indice del formulario en algunas visualizaciones como el <strong>timeline</strong></p>
-	<h3>Campo de Título actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></h3>
-	<br>
-	<div class='input-group'>
-		<span class='input-group-addon'>Cambiar campo título</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_titulo('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-	</div>
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='?formulario=$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-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<div class='container-fluid'>";
-		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<h2>$nombre[0]</h2><legend>$descripcion[0]</legend>$impresion<br>"; 
-	//														}
-$resultado = "<div class='container-fluid'>$resultado</div>";
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-															
-								//		}
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-$formulario ="
-$accion
-<div id='formulario_session'>
-	<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-		<div class='form-group>
-			<label for='usuario'>Usuario </label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='password'>Clave </label>
-				<input type='password' id='password' name='password' class='form-control'>
-		</div>
-		<br>
-		<div class='row'>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-			</div>
-			<div class='col-sm-4'>
-			<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-			</div>
-		</div>
-	</form>
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No pudimos encontrar tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-
-	
-	}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-}else {	}
-
-									}
-									$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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="
-<div class='col-sm-5 col-md-5'>
-	<!-- <form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'> -->
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-<!-- 	</form> -->
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='http://qwerty.co/qr/?d=http://$_SERVER[HTTP_HOST]/milfs?id=$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='http://$_SERVER[HTTP_HOST]/milfs?id=$perfil' value='http://$_SERVER[HTTP_HOST]/milfs?id=$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-			<label for='UploadFile'>$campo_imagen_nombre</label>
-			<div class='col-lg-12'>
-			 $subir_imagen  
-			</div>
-			
-		</div>
-	  
-	
-		</div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-				<!-- <input class='form-control'   class='sr-only' type='' id='imagen' name='imagen' > -->
-	";
-	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 .= "<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'><legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[url]/?id=$formulario&c=$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-			</style>
-<div style='width;100%; min-height:900px; padding: 0.3%; background-image: url(images/iron.jpg); background-attachment:fixed; background-color: gray ;'>
-	<div class='container-fluid' style=' border-radius:3px; background-color:white; max-width:800px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			( $visitas )
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='http://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-$contenido_listado = contenido_listado("$row[id]");
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-						}
-
-$resultado_nav .="</li>";
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='?id=$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='?id=$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-															}
-
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = mysql_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysql_query($consulta,$link);
-//if (mysql_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"id");
-		$resultado[1]=mysql_result($sql,0,"campo_nombre");
-		$resultado[2] =$consulta;
-											}else{ 	$resultado[0]='';
-														$resultado[2] =$consulta;
-														}
-return $resultado;
-}
-
-
-function formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado=mysql_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$id_campo,$tipo) {
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-$consulta ="SELECT *  FROM form_datos WHERE form_id = '$id' order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"timestamp");
-		$resultado[1]=mysql_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysql_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=600/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar imagen</div>";	
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; height:300px;
-					
-					'>
-
-
-				</div>
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos de la institución</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</div>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-										<div style='';>
-								$subir_imagen
-						</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	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 ="<div class='alert alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-		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 = "<img class='img img-responsive' style='width:100%' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$contenido'>
-									<a href='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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 = "
-
-			<img class=' img-responsive'  style='width:100%'  src='http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/600x250.png?access_token=$mapbox_token' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado =" $full 
-		<!-- <a class='btn btn-default pull-right' onclick=\"xajax_formulario_modal('$id','','$control',''); \"> Ampliar</a> 
-		<a target='_blank' href='index.php?id=$id&c=$control' class='btn btn-default pull-right'><i class='fa fa-share-square-o'></i> Compartir</a> -->";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="<div class='alert alert-warning'>
-	<h4>Responder con:</h4>
-						<table class='table table-condensed '>";
-	while( $row = mysql_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a href ='?id=$row[id]&c=$control&t=r' title='$row[descripcion]'>$row[nombre]</a></td></tr>";
-
-}
-	$resultado .="</table></div>";	
-}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 .="
-
-<form method='post' class='' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id'>
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
-<input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" />
-<iframe name='iframeUpload' style='display:none' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div>
-</form>
-";
-return $resultado;
- 
-}
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 .="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id=perfil name=perfil value=$perfil type='hidden' >
-Archivo formulario $perfil: <input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\"xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 .= "<div id=importador_select name=importador_select></div>
-		<div id=importador_archivo name=importador_archivo></div> ";
-
-return $formulario; 
-		}
-	
-	$div = "importador_archivo";
-
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-
- $resultado .= "Importando formulario <b>$perfil_nombre</b> ($perfil)
- <table class='table table-bordered table-striped'>";
-	$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 .= "<tr>";
-        $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 = "<i class='fa fa-check-square-o'></i>";
-  			
-  			
-  			}
-  			else {
-  			$class='danger';
-  			}
-
-
-  				}
-	
-									}
-
-					
-}            
-			            $resultado .= "<td  >$columna  $sql_resultado </td>";
-            
-            $numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $posicion = 0;
-        for ($c=0; $c < $numero; $c++) {
-        	$titulo = $datos[$c] ;
-        $verificar_campo =   	formulario_verificar_campo($perfil,$titulo);
-  			if($verificar_campo == NULL){$verificar_campo ="<i class='fa fa-frown-o'></i>"; $class='danger';}
-  			else{$verificar_campo ="<i class='fa fa-check-square-o'></i>"; $class='success';}
-        	$campo[$posicion] = $datos[$c];
-            $resultado .= "<th class='$class'>$verificar_campo $titulo</th>";
-            $posicion ++;
-            
-        }
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='http://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'));\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION[id_usuario]."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area');
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'));\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row[activo] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							Obligatorio
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' title='OBLIGATORIO'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$_SESSION[grupo_formularios]','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Formularios</legend>"; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('$_SESSION[grupo_formularios]','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
-   			
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if($primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		$ultimo_control = $ultimo[1];
-		if($ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='".$_SESSION['url']."/map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default ' href='$_SESSION[url]?form=$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		
-												<h2>$nombre_formulario[0]<br><small>$descripcion_formulario[0]</small></h2>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-3'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-											<div class='col-md-3'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div>
-											<div class='col-md-3'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-3'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-		<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-		$item
-		</div>";
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "		<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='$_SESSION[url]mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "<table class='table table-condensed table-striped table-hover' >
-			<legend>$mensaje[0]</legend>
-								<tr><td></td>$listado_titulos</tr> 
-								$listado_campos
-							</table> ";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select</table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='$value' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='$value' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-		<div class='col-md-$cols' style='$style'>
-		<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-			
-			$label 
-			<div class='col-md-12'>
-			
-			$render 
-			
-			
-		</div>
-		</div>
-		</div>
-$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] <br> ";
-														}
-							}
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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  <!--, V= $V -->)<br>";
-//$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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='?id=$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$impresion = formulario_imprimir("","$formulario[control]","preview"); 
-//$impresion = mostrar_identificador($formulario['control']);
-		$exito ="
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]'>http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='?id=$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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 = "
-	<div class='alert alert-info'  >
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='http://qwerty.co/qr/?d=http://$_SERVER[HTTP_HOST]/milfs?id=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='http://$_SERVER[HTTP_HOST]/milfs?id=$id' value='http://$_SERVER[HTTP_HOST]/milfs?id=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-				<!-- <input class='form-control'   class='sr-only' type='' id='imagen' name='imagen' > -->
-	<div class='row'>
-	";
-	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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-       <!--  <li>$consultas</li> -->
-        <li>$importador</li>
-        <li id='borra_tmp'>$limpiar_cache</li>
-         <li><a  href='#'  data-target='#muestraInfo'  data-toggle='modal'><i class='fa fa-smile-o '></i> Presentación</a></li>
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-function Conectarse(){
-	if ( !isset ( $link ) ) {
-		
-	@include("includes/datos.php");
-   		if(!isset($db)) {
-  	 @include("milfs/includes/datos.php");
-  	    		if(!isset($db)) {
-   		 include("../milfs/includes/datos.php");
-   		}
-   		}
-
-
-   if (!($link=mysqli_connect($servidor,$usuario,$password,$db)))
-   {
-      echo "Error conectando a la base de datos.  ";
-      exit();
-   }
- /*  if (!mysqli_select_db($db,$link))
-   {
-      echo "Error seleccionando la base de datos.";
-      exit();
-   }
-   */
-	$_SESSION['path']= $path_instalacion;
-	$_SESSION['path_images_secure']= $path_images_secure;
-	$_SESSION['url']= $url;
-	$_SESSION['site']= $site;
-	$_SESSION['analizador']= "$codigo_analizador";
-	$_SESSION['upload_size']= $upload_size;
-   return $link;
-   }
-}
-function Conectarse_recursivo(){
-	if ( !isset ( $link ) ) {
-		
-	@include("milfs/includes/datos.php");
-   		if(!isset($db)) {
-   @include("../milfs/includes/datos.php");
-     	    		if(!isset($db)) {
-   		 include("../includes/datos.php");
-   		
-   		}
-   		}
-
-   if (!($link=mysqli_connect($servidor,$usuario,$password,$db)))
-   {
-      echo "Error conectando a la base de datos. $servidor,$usuario,$password,$db  ";
-      exit();
-   }
- /*  if (!mysqli_select_db($db,$link))
-   {
-      echo "Error seleccionando la base de datos.";
-      exit();
-   }
-   */
-	$_SESSION['path']= $path_instalacion;
-	$_SESSION['path_images_secure']= $path_images_secure;
-	$_SESSION['url']= $url;
-	$_SESSION['site']= $site;
-	$_SESSION['analizador']= "$codigo_analizador";
-	$_SESSION['upload_size']= $upload_size;
-   return $link;
-   }
-}
-?>
\ 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 @@
-<?php
- function simpleText($html){
- 
-	$html = str_replace('&ndash;','-',$html);
-	$html = str_replace('&quot;','"',$html);
-	$html = preg_replace('/\&amp;(nbsp);/','&${1};',$html);
- 
-	//formatting
-	// bold
-	$html = preg_replace('/\'\'\'([^\n\']+)\'\'\'/','<strong>${1}</strong>',$html);
-	// emphasized
-	$html = preg_replace('/\'\'([^\'\n]+)\'\'?/','<em>${1}</em>',$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} &raquo; ${3}',$html);
-	// Template
-	//$html = preg_replace('/{{([^}]*)}}/',' ',$html);
-	// categories
-	//$html = preg_replace('/\[\[([^\|\n\]]+)([\|]([^\]]+))?\]\]/','',$html);
-	$html = preg_replace('/\[\[([^\|\n\]]{2})([\:]([^\]]+))?\]\]/','Translation: ${1} &raquo; ${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\': ]+)\]/','<a href="${1}">${1}</a>',$html);
-	$html = preg_replace_callback('/\[([^\[\]\|\n\': ]+)\]/','helper_externlinks',$html);
-	// with text
-	//$html = preg_replace('/\[([^\[\]\|\n\' ]+)[\| ]([^\]\']+)\]/','<a href="${1}">${2}</a>',$html);
-	$html = preg_replace_callback('/\[([^\[\]\|\n\' ]+)[\| ]([^\]\']+)\]/','helper_externlinks',$html);
-	
-	// allowed tags
-	$html = preg_replace('/&lt;(\/?)(small|sup|sub|u)&gt;/','<${1}${2}>',$html);
-	
-	$html = preg_replace('/\n*&lt;br *\/?&gt;\n*/',"\n",$html);
-	$html = preg_replace('/&lt;(\/?)(math|pre|code|nowiki)&gt;/','<${1}pre>',$html);
-	$html = preg_replace('/&lt;!--/','<!--',$html);
-	$html = preg_replace('/--&gt;/',' -->',$html);
- 
-	// headings
-	for($i=7;$i>0;$i--){
-		$html = preg_replace(
-			'/\n+[=]{'.$i.'}([^=]+)[=]{'.$i.'}\n*/',
-			'<h'.$i.'>${1}</h'.$i.'>',
-			$html
-		);
-	}
-	
-	//lists
-	$html = preg_replace(
-		'/(\n[ ]*[^#* ][^\n]*)\n(([ ]*[*]([^\n]*)\n)+)/',
-		'${1}<ul>'."\n".'${2}'.'</ul>'."\n",
-		$html
-	);
-	$html = preg_replace(
-		'/(\n[ ]*[^#* ][^\n]*)\n(([ ]*[#]([^\n]*)\n)+)/',
-		'${1}<ol>'."\n".'${2}'.'</ol>'."\n",
-		$html
-	);
-	$html = preg_replace('/\n[ ]*[\*#]+([^\n]*)/','<li>${1}</li>',$html);
-	
-	$html = preg_replace('/----/','<hr />',$html);
- 
-	//$html = nl2br($html);
-	// line breaks
-	$html = preg_replace('/[\n\r]{4}/',"<br/><br/>",$html);
-	$html = preg_replace('/[\n\r]{2}/',"<br/>",$html);
-	
-	$html = preg_replace('/[>]<br\/>[<]/',"><",$html);
- 
-	return $html;
-}
-function helper_externlinks($matches){
-	$target = $matches[1];
-	$text = empty($matches[2])?$matches[1]:$matches[2];
-	return '<a href="'.$target.'">'.$text.'</a>';
-}
-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 '<a '.$class.' href="?pages='.$target.'">'.$text.'</a>';
-}
-function convertTables($text){
-	$lines = explode("\n",$text);
-	$innertable = 0;
-	$innertabledata = array();
-	foreach($lines as $line){
-		//echo "<pre>".++$i.": ".htmlspecialchars($line)."</pre>";
-		$line = str_replace("position:relative","",$line);
-		$line = str_replace("position:absolute","",$line);
-		if(substr($line,0,2) == '{|'){
-			// inner table
-			//echo "<p>beginning inner table #$innertable</p>";
-			$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 = "<table ".$stuff[0].">\n";
-		} else if(substr($line,0,1) == '|'){
-			// table related
-			$line = substr($line,1);
-			if(substr($line,0,5) == '-----'){
-				// row break
-				if($thopen)
-					$table .="</th>\n";
-				if($tdopen)
-					$table .="</td>\n";
-				if($rowopen)
-					$table .="\t</tr>\n";
-				$table .= "\t<tr>\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 .="</td>\n";
-				if(count($stuff)==1)
-					$table .= "\t\t<td>".simpleText($stuff[0]);
-				else
-					$table .= "\t\t<td ".$stuff[0].">".
-						simpleText($stuff[1]);
-				$tdopen = true;
-			}
-		} else if(substr($line,0,1) == '!'){
-			// th
-			$stuff = explode('| ',substr($line,1),2);
-			if($thopen)
-				$table .="</th>\n";
-			if(count($stuff)==1)
-				$table .= "\t\t<th>".simpleText($stuff[0]);
-			else
-				$table .= "\t\t<th ".$stuff[0].">".
-					simpleText($stuff[1]);
-			$thopen = true;
-		}else{
-			// plain text
-			$table .= simpleText($line) ."\n";
-		}
-		//echo "<pre>".++$i.": ".htmlspecialchars($line)."</pre>";
-		//echo "<p>Table so far: <pre>".htmlspecialchars($table)."</pre></p>";
-	}
-	if($thopen)
-		$table .="</th>\n";
-	if($tdopen)
-		$table .="</td>\n";
-	if($rowopen)
-		$table .="\t</tr>\n";
-	if($tableopen)
-		$table .="</table>\n";
-	//echo "<hr />";
-	//echo "<p>Table at the end: <pre>".htmlspecialchars($table)."</pre></p>";
-	//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 @@
-<?php
-
-
-function tuitealo($form,$tipo) {
-	if($tipo =='formulario') {
-		 	$formulario = formulario_areas('15','campos');
-		 			$descripcion = remplacetas('form_id','id','15','descripcion',"") ;
-		 			$nombre = remplacetas('form_id','id','15','nombre',"") ;
-							$formulario ="
-
-		<h1 >$nombre[0]</h1>
-		<h2>$descripcion[0]</h2>
-	<form id='form_tuitealo'  >
-	 $formulario
-	<br>
-
-	<div id='tuitealo_div'>
-		<div id='tuitealo_error'></div>
-	<a class='btn btn-block btn-primary' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar');\">Previsualizar</a>
-	</div>
-</form>
-	</div>
-	<br>
-	<div  class='text-center'>
-	<p class='text-center'>Powered by: <a href='http://qwerty.co/milfs'>MIFS</a></p> 	
-	</div>
-
-	<br>		
-		
-		";
-		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 ="<div class='alert alert-warning text-center'><h1><i class='fa fa-exclamation-triangle'></i> Hay campos vacíos</h1></div>";
-			$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 ="<i class='fa fa-exclamation-triangle'></i> 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 ="<br> 
-			
-		<div id='tuitealo_error'></div>	
-	<div class='alert alert-$alert'><div class='badge'>$largo</div>$mensaje<h1>$texto</h1></div>
-
-	<a class='btn btn-block btn-primary' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar');\">Previsualizar</a>
-	<a class='btn btn-block btn-success' onclick=\"xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'confirmar');\">Tuitéalo</a>
-	<img style='width:1px;' src='milfs/images/100x100.png' 
-			onload=\"
-			document.getElementById('82[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			document.getElementById('83[0]').onkeyup = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			document.getElementById('84[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			document.getElementById('85[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			document.getElementById('86[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			document.getElementById('87[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			document.getElementById('88[0]').onchange = function(){xajax_tuitealo(xajax.getFormValues('form_tuitealo'),'previsualizar')};
-			
-			\" >
-	"; 
-	   	
-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="
-<div class='col-sm-3 col-md-3'>
-	<form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'>
-		<div class='form-group'>
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos(xajax.getFormValues('formulario_buscar_datos'),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-		</div>
-	</form>
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-
-   $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h1>Resultados de: $valor</h1>$encontrados  </div>  ";						
-$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 = "<div class='container-fluid'>$descripcion $buscador</div> ";
-		
-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 .= "
-		
-						<div class='container ' role='row' id='grid_$i'  style='width: 80%; padding:5px;'>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-if($cols =="12") { $cols_grid ="";}else { $cols_grid ="col-md-$cols";}
-$contenido .="<div class='$cols_grid' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br> 
-
-	<div id='grid_resultado' style='background-color: #ffcc00'> 
-
-		$contenido
-		</div>
-		<div class='container-fluid' >
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados 
-		</div>
-		</div>
-	</div><br>
- ";
-
-
-///$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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-
-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 ="<div class='alert alert-success'>
-	<h4>Respuestas:</h4>
-						<table class='table table-condensed '>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-			$respuesta = mostrar_identificador("$identificador","$row[form_id]","",'simple');
-			$fecha = date($format, $row['timestamp']);
-		$resultado .= "<tr><td> $respuesta <small>$timestamp</small></td></tr>";
-
-}
-	$resultado .="</table>
-	</div>";	
-}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 ="
-						<table class='table table-condensed '>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a class='btn btn-success' onclick = \"xajax_formulario_embebido_ajax('$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre]</a> $row[descripcion] </td></tr>";
-
-}
-	$resultado .="</table>";	
-}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 .= "<li><a href='#cabecera' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a href='#cabecera' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='#cabecera'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='#cabecera' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  href='#cabecera'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a  href='#cabecera'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = " 
-		<div class='row'>
-			<div class='col-sm-12'>
-			</div>
-		</div>
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>	
-				</ul>
-				     $paginacion
-			</div>
-		</div>";
-						
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= "<br>$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="	<div class='row'>
-		<div class='col-sm-7 col-md-2' >
-		
-		<div class='btn btn-success btn-block' onclick =\"xajax_formulario_embebido_ajax('$form','','nuevo');\"> <i class='fa fa-plus-square'></i> Agregar </a></div>
-		</div>
-		<div class='col-sm-7 col-md-5' >
-		$filtro
-		</div>
-		 $buscador
-	</div>";
-}
-$resultado = "
-<a name='cabecera'></a>
-<div id='mostrar_resultado'>
-$acciones
-
-$linea
-$encabezado
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
-	/*$datos = $resultado;
-	$div ="contenido_de_modal";
-	$resultado = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-	$logo="<img class='img img-responsive img-rounded center-block' src='milfs/images/secure/?file=300/$row[imagen]'>";
-	$contenido ="
-	<div class='col-sm-$cols' style=''>
-		<a href='e$row[id]'>	
-			<div class='alert center-block' style='background-color: white; min-height: 400px;'>
-				$logo
-				<br>
-				<h2 class='text-center'>$row[razon_social]<br><small>$row[slogan]</small></h2>
-			</div>
-		</a>
-	</div>";     	
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-		<div class='container-fluid'>
-			$encontrados
-		</div>	
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-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 ="<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<div class='thumbnail'>
-				<a href='i$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-rounded'>
-				</a>
-			</div>$uri";
-					
-	}else {
-		$miniatura ="<a href='i$identificador' >i$identificador</a>";
-		$mostrar_imagen = "<img src='$qr' alt='$identificador' title='' style='width:100%'; class='img img-responsive img-rounded'>";
-
-			
-
-		}
-
- //<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
-	if($plantilla[0] !="" ) {
-	$impresion = mostrar_identificador($identificador,"","landingpage");
-	} else{ 
-	$contenido = mostrar_identificador($identificador,"","");
-	$impresion = "
-		<!-- plantilla landingpage $identificador -->
-	<br><div class='clearfix'></div>
-
-<a  name='control_$identificador'></a>
-    <div class='content-section-a'>
-
-        <div class='container-fluid'>
-		
-	         <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    <div class='clearfix'></div>
-                    	
-                     $contenido 
-                     $miniatura                  
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                   $mostrar_imagen
-                </div>
-            </div>
-
-			<div class='link-compartir text-center'><a href='i$identificador' ><i class='fa fa-share-square'></i> Compartir </a></div>
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-	<!-- plantilla landingpage --> 
-	
-	";
-	
-	}
- $linea = "
- 			$impresion 
- 			 <!-- formulario de respuesta -->
- 			 <div class='center-block' style='max-width:600px;'>
- 			 <div class='container-fluid'>
- 			 $respuestas
-
- 			 </div>
- 			 </div>
- 			 <!-- formulario de respuesta -->
- 					";
-
-	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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-	*/	
-		
-	//// 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 = "<a href='i$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}	
-	$resultado_linea="<div id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='s$row[id]'><h3>Mas información</h3></a>";
-							$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 = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x300.png?access_token=$mapbox_token' >
-			"; }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='milfs/map.php?id=$row[id]' target='mapa'>$miniatura</a>";}else {$mapa='';}
-			if ( $fila%2==0){
-
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-b'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive' src='milfs/images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>			
-			
-			"; 
-			
-			}else{
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-
-            <div class='row'>
-                <div class='col-lg-5 col-lg-offset-1 col-sm-push-6  col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-sm-pull-6  col-sm-6'>
-                    <img class='img-responsive' src='milfs/images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-			
-	</div>
-			";
-			}
-			
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos',''); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysqli_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='$_SESSION[url]images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='$_SESSION[url]images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";	
-			}
-		else {
-@$listado_campos .= "<td title='$tipo_campo[0]' >$contenido[0]</td>";
-}
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:100px;' class='actions' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group'>
-								<a class='btn btn-default' target='form' href='../i$row[control]'><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../d$row[control]'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>	
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-				
-				<div class='form-group'>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion'); \"><i class='fa fa-save'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]i$control'>$_SESSION[site]i$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Títulos</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"images/secure/?file=600/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i></a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a></td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-$resultado = "	
-	<br>
-	<p>El campo titulo, se usa como indice del formulario en algunas visualizaciones como el <strong>timeline</strong></p>
-	<h3>Campo de Título actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></h3>
-	<br>
-	<div class='input-group'>
-		<span class='input-group-addon'>Cambiar campo título</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_titulo('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-	</div>
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-			$resultado
-			</div>";
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='f$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-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= "<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>";
-		$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		if($tipo=="") {
-		$resultado = "
-		<div class='container-fluid'>
-			$visitas
-			<h2>$nombre[0]</h2>
-				<legend>$descripcion[0]</legend> 
-				<!-- formulario_imprimir() -->
-				$impresion
-				<!-- formulario_imprimir() -->
-			<br>
-		</div>"; }else {
-$resultado = "$impresion";
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-$formulario ="
-$accion
-<div id='formulario_session'>
-	<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-		<div class='form-group>
-			<label for='usuario'>Usuario </label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='password'>Clave </label>
-				<input type='password' id='password' name='password' class='form-control'>
-		</div>
-		<br>
-		<div class='row'>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-			</div>
-			<div class='col-sm-4'>
-			<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-			</div>
-		</div>
-	</form>
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No pudimos encontrar tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-
-	
-	}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-}else {	}
-
-									}
-									$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$respuesta->addAssign("$div","innerHTML",$alerta);
-			return $respuesta;
-}
-	if (is_array($valores) ){
-	$valor = $valores['valor'];
-									}
-	else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-<div class='col-sm-5 col-md-5'>
-	<!-- <form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'> -->
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-<!-- 	</form> -->
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = landingpage_contenido_identificador($row['control']);
-   //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='http://qwerty.co/qr/?d=$_SESSION[site]f$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='$_SESSION[site]f$perfil'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[site]f$perfil' value='$_SESSION[site]f$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-			
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>".$campo_imagen_nombre."</label>
-				<div class='col-lg-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	";
-	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 .= "
-<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'>
-<legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form 
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[site]/?i$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-			</style>
-<div style='width;100%; min-height:900px; padding: 0.3%; background-image: url(milfs/images/iron.jpg); background-attachment:fixed; background-color: gray ;'>
-	<div class='container-fluid' style=' border-radius:3px; background-color:white; max-width:800px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-							$salir
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white; max-width:800px;  overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-			<!-- formulario_areas -->
-				$impresion
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-			
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='http://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-$contenido_listado = contenido_listado("$row[id]");
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-						}
-
-$resultado_nav .="</li>";
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-															}
-
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysqli_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = mysqli_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysqli_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysqli_query($consulta,$link);
-//if (mysqli_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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 formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado[0]=mysqli_result($sql,0,"timestamp");
-		$resultado[1]=mysqli_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysqli_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='$_SESSION[url]images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysqli_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=600/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar imagen</div>";	
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; height:300px;
-					
-					'>
-
-
-				</div>
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos de la institución</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</div>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-				<div class='container alert alert-warning'>
-				
-				$parametrizacion
-				</div>
-						<div style='';>
-								$subir_imagen
-						</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados</small> <i class='fa fa-key'></i></h1>( $_SESSION[id] )</div>";
-		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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]images/secure/?file=600/$contenido'>
-									<a href='$_SESSION[url]milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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 = "
-
-			<img class=' img-responsive'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x250.png?access_token=$mapbox_token' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado ="$full";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-
-<form method='post' class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" /> 
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div> 
-</form>
-";
-return $resultado;
- 
-}
-
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-  
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 .= "<td  >$columna  $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='fa fa-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='fa fa-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-				
-				else{$verificar_campo_aviso =""; $class='success';}
-				
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='http://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div','');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysqli_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							Obligatorio
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' title='OBLIGATORIO'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Formularios</legend>"; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
-   			
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='".$_SESSION['url']."map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default btn-warning' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='fa fa-upload'></i> Importar (Experimental)</a>
-								 			<a class='btn btn-default ' href='$_SESSION[site]f$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		
-												<h4>$nombre_formulario[0]<br><small>$descripcion_formulario[0]</small></h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='fa fa-save'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-		<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-		$item
-		</div>";
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "		<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='$_SESSION[url]mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $control != "") {
-				$render="";$label=""; $campo_tipo_accion="oculto";
-			}else {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		$campo_descripcion="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label 
-				<div class='col-md-12'>
-				$render 
-					$campo_descripcion
-				</div>
-			</div>
-		</div>
-$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] <br> ";
-														}
-							}
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";
-			}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]i$formulario[control]'>$_SESSION[site]i$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="
-	
-			<div class='alert alert-success text-center'><h1><i class='fa fa-smile-o'></i><small> Todo bien pero al parecer no se moficaron registros </small></h1></div>";
-		$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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-	
-	
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='http://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='$_SESSION[url]/?form=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-			
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-      
-        <!-- <li>$importador</li> -->
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-
-
-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="
-	<div class='input-group'>
-	<div id='$div' onclick= \"xajax_formulario_estadistica_ocultar('$id_form','$id_campo','eliminar','$tipo'); \"; class='btn btn-xs btn-danger' title='Elimine esta gráfica si no es relevante'>Eliminar gráfica</div>
-	</div>
-	";
-}else {$resultado="";}
-	return $resultado;
-}elseif($accion =="eliminar") {
-
-$borrar= parametrizacion_linea("$tipo","$id_form",'ocultar',"$id_campo",'','',"$id_campo");  
-//$resultado="<span class='disabled'>$id_campo $borrar</span>";
-$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 .="<tr><td>$row[cantidad]</td><td>$row[contenido]</td><td></td></tr>";
-		}
-		$datos= json_encode($dato);
-		
-		$resultado ="
-	<table class='table'>		
-		<tr><td>$row[cantidad]</td><td>$row[contenido]</td><td></td></tr>
-		$lineas
-	</table>		
-
-		";
-		$manejo_grafica = formulario_estadistica_ocultar("$id_form","$id_campo","","$tipo");
-$grafica ="
-<div id='contenedor_grafica_$tipo_$id_campo' >
-<div class='' style='width:200px;'  id='grafica_$tipo_$id_campo' ></div>
-$manejo_grafica
-</div>
-<script>
-
-new Morris.Bar({
-  // ID of the element in which to draw the chart.
-  element: 'grafica_$tipo_$id_campo',
-  // Chart data records -- each entry in this array corresponds to a point on
-  // the chart.
-  data: $datos,
-  // The name of the data record attribute that contains x-values.
-  xkey: 'contenido',
-  // A list of names of data record attributes that contain y-values.
-  ykeys: ['cantidad'],
-  // Labels for the ykeys -- will be displayed when you hover over the
-  // chart.
-  labels: ['contenido']
-});
-</script>
-
-";		
-		
-		}
-		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= "<a  class='btn btn-info ' target='mapa' href='milfs/map.php?id=$id' target='mapa'>Mapa</a>
-				<a  class='btn btn-info ' target='mapa' href='milfs/json.php?id=$id' target='mapa'>{GEOJson}</a>
-	";}else {$mapa='';}
-$acciones="<div class='btn-group' role='group' aria-label='...'>
-
-  <a class='btn btn-info ' target='api' href='$_SESSION[site]/milfs/api.php?id=$id'> {json}</a>
-  <a class='btn btn-info ' target='api' href='$_SESSION[site]/milfs/api.php?id=$id&tipo=simple'> {json simple}</a>
-  $mapa
-
-  <a class='btn btn-info ' target='api' href='$_SESSION[site]/b$id?registros=10'>Mostrar</a>
-  <a class='btn btn-info ' target='api' href='$_SESSION[site]/f$id?registros=10'>Llenar</a>
-  <a class='btn btn-info ' target='api' href='$_SESSION[site]/g$id?registros=10'>Embeber</a>
-  <a class='btn btn-info ' target='api' href='$_SESSION[site]/opendata.php?tipo=documento&id=$id'>Doc</a>
-  $buscador
-
-</div>";
-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 .="
-			<li><a onclick=\"document.getElementById('filtro_$id_campo').value='$row[campo_valor]'; xajax_filtro_generico_buscar(xajax.getFormValues('formulario_filtro_$formulario'),'$formulario');\" >$row[campo_valor]</a></li>
-	";
-
-}
-$opciones ="
-	<li><a onclick=\"document.getElementById('filtro_$id_campo').value=''; xajax_filtro_generico_buscar(xajax.getFormValues('formulario_filtro_$formulario'),'$formulario');\" >Limpiar</a></li>
-	$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 .="
-		
-			<div class='dropdown' style='display:inline'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				$row[campo_nombre]  <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $listado
-				 </ul>
-				 <input class='form-control' id='filtro_$row[id_campo]' name ='filtro_$row[id_campo]'>
-		 	</div>
-	 	
-	";
-
-}
-$filtro= "
-	<form id='formulario_filtro_$formulario' name ='formulario_filtro_$formulario' >
-	
-		$filtro 
-		
-	
-	</form>";
-
-}
-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 .= "<li > <a class='btn btn-link'  onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" >$valor_actual </a> </li>";
-}
-
-}
-/*$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-			$resultado
-			</div>";
-	*/		
-		$resultado="
-			<div class='dropdown'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				Filtro $campo_nombre[0] <i class='glyphicon glyphicon-filter'></i>
-				 <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $listado
-				 </ul>
-		 	</div>
-	";
-	
-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.= "<li><a href='$onchange=$row[$value]'> ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id <img class='img img-rounded' src='milfs/images/secure/?file=150/$row[imagen]' style='max-height:30px;'> </a></li>";
-			}
-		}
-		$resultado="
-			<div class='dropdown'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				$nombre
-				 <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $lis
-				 </ul>
-		 	</div>
-	";
-	}
-	else{
-		$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";
-	}
-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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','presentacion');
-
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
-        	$contenido
-      ";
-										}else{$contenido = $consulta;}
-
-
-		return $contenido;
-
-}
-$xajax->registerFunction("contenido_presentacion");
-
-
-
-function formulario_contar_registros($id,$id_campo,$id_empresa,$clave) {
-		$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-	
-	if($id_empresa ==""){$empresa="";}else{$empresa ="AND id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'";}
-	if($clave ==""){$clave="";}else{$clave ="AND contenido LIKE '%%".mysqli_real_escape_string($link,$clave)."%%'";}
-$consulta ="SELECT distinct(contenido)   FROM form_datos WHERE form_id = '".mysqli_real_escape_string($link,$id)."' AND id_campo = '".mysqli_real_escape_string($link,$id_campo)."' $empresa $clave  ";
-
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_num_rows($sql);
-		}else {$resultado =0;}
-return $resultado ;
-}
-
-
-function formulario_campo_semantico($cadena,$formulario,$tipo,$accion) {
-		$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-$consulta ="SELECT id_campo,campo_nombre,campo_descripcion FROM `form_campos` , form_contenido_campos 
-				WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='".mysqli_real_escape_string($link,$formulario)."' AND campo_nombre LIKE '%%".mysqli_real_escape_string($link,$cadena)."%%' 
-				GROUP BY id_campo ";
-$consulta_todos ="SELECT id_campo,campo_nombre,campo_descripcion FROM `form_campos` , form_contenido_campos 
-				WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='".mysqli_real_escape_string($link,$formulario)."' AND campo_nombre NOT LIKE '%%".mysqli_real_escape_string($link,$cadena)."%%'
-				GROUP BY id_campo ";
-				
-$sql=mysqli_query($consulta_todos,$link);
-if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-				$lista.="<li class='list-group-item ' title='$row[campo_descripcion]'><input type='radio' value='$row[id_campo]' id='$cadena' name='$cadena' > $row[campo_nombre] </li>";			
-					}
-					}
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-				$lista_todos.="<li class='list-group-item list-group-item-success' title='$row[campo_descripcion]'><input type='radio' value='$row[id_campo]' id='$cadena' name='$cadena' > $row[campo_nombre]</li>";			
-					}
-					}
-								
-	$resultado="<ul class='item-list'>$lista_todos $lista </ul>";	
-return $resultado ;
-}
-
-
-function marcar($mensaje,$div) {
-
-
-
-	$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("$div","innerHTML","$mensaje");
-			return $respuesta;
-
-}
-$xajax->registerFunction("marcar");
-
-
-
-function mailer($accion,$formulario,$campo,$empresa){
-	if($_SESSION['id'] != 1) {
-		return;
-	}
-	$respuesta = new xajaxResponse('utf-8');
-	$boton="<div class='btn btn-default' onclick=\"xajax_mailer('listado','','',''); \" >Listas de correo</div>";	
-	if($accion=="") {
-			
-	return $boton;
-	}
-		
-
-		$link=Conectarse();
-				mysqli_query("SET NAMES 'UTF8'");
-	if($accion =="listado") {
-		$consulta ="
-			SELECT form_id.id_empresa, razon_social, nombre AS nombre_formulario, descripcion AS descripcion_formulario, form_contenido_campos.id_form , form_contenido_campos.id_campo ,form_campos.campo_nombre 
-			FROM form_datos, empresa, `form_campos` , form_contenido_campos , form_id 
-			WHERE form_datos.id_campo = form_campos.id AND form_id.id_empresa = empresa.id AND`form_campos`.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = form_id.id AND ( campo_tipo ='12' OR campo_tipo ='13') 
-			GROUP BY form_id.id_empresa,form_contenido_campos.id_form , form_contenido_campos.id_campo 
-			ORDER BY razon_social,form_id.nombre
-			";
-		$sql=mysqli_query($consulta,$link);  
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-					$cantidad = formulario_contar_registros("$row[id_form]","$row[id_campo]","$row[id_empresa]","");
-					$consulta_cantidad = $cantidad;
-					if ($consulta_cantidad > 0 ){$cantidad = "<div class='btn btn-default btn-xs ' onclick=\"xajax_mailer('seleccion','$row[id_form]','$row[id_campo]','$row[id_empresa]'); \" > Enviar $cantidad <span class='glyphicon glyphicon-envelope' aria-hidden='true'></span></div>";}
-					else{$cantidad ="";}
-					$opciones .="<li class='list-group-item'>$row[razon_social] / <strong>$row[nombre_formulario]</strong> / $row[campo_nombre]  $cantidad</li>";
-					}
-					
-					$resultado="
-					<ul class='list-group'>
-						 $opciones
-					</ul>
-	
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-	}
-	
-
-			
-	if($accion =="seleccion") {
-			$consulta ="
-			SELECT * 
-			FROM form_datos 
-			WHERE form_datos.id_campo = '".mysqli_real_escape_string($link,$campo)."' 
-				AND form_datos.id_empresa = '".mysqli_real_escape_string($link,$empresa)."'
-				AND form_datos.form_id = '".mysqli_real_escape_string($link,$formulario)."'
-			
-			GROUP BY contenido
-			ORDER BY contenido
-			";
-	$sql=mysqli_query($consulta,$link);  
-	$cantidad_mensajes = mysqli_num_rows($sql);
-	$listado_campos = formulario_campo_semantico("nombre","$formulario",'','');
-	$nombre_lista =  remplacetas("form_id","id","$formulario","Nombre","");
-	
-	$delay = 15;
-	$tiempo= ($cantidad_mensajes * $delay);
-	$tiempo = conversorSegundosHoras($tiempo);
-			$formato ="
-			<div class='container' id='div_formato'>
-				<form id='formato_mensaje' name='formato_mensaje'>
-				<label>Seleccione un campo para el personalizar el nombre</label>
-				<div style='max-height:150px; overflow:auto'>$listado_campos</div>
-					<br>
-					<div class='input-group'>
-						<span class='input-group-addon'>Asunto:</span>
-						<input class='form-control' id='asunto' name='asunto' placeholder='asunto del mensaje'>
-					</div>
-					<div class='form-group'>
-						<label for='mensaje'>Cuerpo del mensaje</label> <div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-						<textarea id='mensaje' name='mensaje' class='wysiwyg form-control' placeholder='Texto del mensaje'></textarea>
-					</div>
-					<input type='hidden' name='formulario' id='formulario' value='$formulario'>
-					<input type='hidden' name='campo' id='campo' value='$campo'>
-					<input type='hidden' name='empresa' id='empresa' value='$empresa'>
-					<input type='hidden' name='delay' id='delay' value='$delay'>
-
-					<div class='btn btn-warning pull-right' onclick=\"xajax_marcar('<div class=\'alert alert-warning\'><h2>Enviando $cantidad_mensajes Mensajes <small>Espere $tiempo aproximadamente </small></h2><h1>No cierre esta ventana hasta que termine</h1> </div> ','div_formato');xajax_mailer('enviar',xajax.getFormValues('formato_mensaje'),'',''); \">Enviar</div>
-					<div class='btn btn-success pull-right' onclick=\"xajax_mailer('preview',xajax.getFormValues('formato_mensaje'),'',''); \">Preview</div>
-					<br>
-				</form>	
-				<div id='preview'></div>	
-			</div>	
-			<br>
-			
-
-			";
-			
-		
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-						$validar_email = validar_email("$row[contenido]");
-						$div="$row[control]";
-						
-					$opciones .="<li class='list-group-item'>$row[contenido] $validar_email $row[control] <div id='$div'></div></li>";
-					}
-					
-					$resultado="
-					
-					<h3>$nombre_lista[0] [$formulario]</h3>
-					$formato
-					<ul class='list-group'>
-						 $opciones
-					</ul>
-	
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-					
-	}
-if($accion =="enviar" OR $accion =="preview" ) {
-	$id_campo = $formulario['campo'];
-	$campo_nombre = $formulario['nombre'];
-	
-	$id_empresa = $formulario['empresa'];
-	$id_formulario = $formulario['formulario'];
-	$asunto = $formulario['asunto'];
-	$mensaje = $formulario['mensaje'];
-	$mensaje .="<hr><h4>Enviado desde <a href='https://tupale.co'>https://tupale.co / $id_formulario</a></h4>";
-	//$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-	$delay = $formulario['delay'];
-		$consulta ="
-			SELECT * 
-			FROM form_datos 
-			WHERE form_datos.id_campo = '".mysqli_real_escape_string($link,$id_campo)."' 
-				AND form_datos.id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'
-				AND form_datos.form_id = '".mysqli_real_escape_string($link,$id_formulario)."'
-			
-			GROUP BY contenido
-			ORDER BY contenido
-			";
-	
-			$sql=mysqli_query($consulta,$link);  
-			
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-				//	mysqli_data_seek($sql, 0);
-					$id_empresa= "$_SESSION[id_empresa]";
-		$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","");
-								$headers = "MIME-Version: 1.0\r\n"; 
-								$headers .= "Content-type: text/html; charset=iso-utf-8\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"; 
- 
-
-if($accion =="enviar") {
-
-	
-					while( $row = mysqli_fetch_array( $sql ) ) {
-
-	$nombre = remplacetas('form_datos','form_id',"$id_formulario","contenido"," id_campo='$campo_nombre' AND control = '$row[control]'") ;
-	$nombre= $nombre[0];
-	//$nombre = "BEREMUNDO";//$nombre[0];
-//	eval("\$asunto_preview = \" $asunto \";");
-//	eval("\$mensaje_preview = \"$mensaje \";"); 
- $campos= array('{nombre}','{debug}');
- $remplazos= array("$nombre",'Hola');
-	 $asunto_preview = str_replace($campos,$remplazos, $asunto);
-	 $mensaje_preview = str_replace($campos,$remplazos, $mensaje);
-
-
-	$preview ="
-<h2>$asunto_preview</h2>	
-
-<div>
-
-$mensaje_preview
-</div><hr>
-	";
-$envio = mail("$row[contenido]",$asunto_preview,"$mensaje_preview ","$headers");
-if($envio){ $cantidad++ ; $confirmacion .= "$row[contenido] ";}
-sleep($delay);
-					}
-mail("info@tupale.co","[ Envio completo $row[form_id] ] $asunto","$confirmacion $mensaje","$headers");	
-
-				$respuesta->addAssign("preview","innerHTML","$preview");
-	
-			return $respuesta;
-			
-}
-$cantidad =0;
-			//		mysqli_data_seek($sql, 0);
-					while( $row = mysqli_fetch_array( $sql ) ) {
-							$nombre = remplacetas('form_datos','form_id',"$id_formulario","contenido"," id_campo='$campo_nombre' AND control = '$row[control]'") ;
-	$nombre= $nombre[0];
-	//$nombre = "BEREMUNDO";//$nombre[0];
-//	eval("\$asunto_preview = \" $asunto \";");
-//	eval("\$mensaje_preview = \"$mensaje \";"); 
- $campos= array('{nombre}','{debug}');
- $remplazos= array("$nombre",'Hola');
-	 $asunto_preview = str_replace($campos,$remplazos, $asunto);
-	 $mensaje_preview = str_replace($campos,$remplazos, $mensaje);
-
-
-	$preview ="
-<h2>$asunto_preview</h2>	
-
-<div>
-
-$mensaje_preview
-</div><hr>
-	";
-					}
-				//	mail("info@tupale.co","[ Envio completo $row[form_id] ] $asunto","$confirmacion $mensaje","$headers");
-					$resultado="
-					<div class='alert alert-success'><h1>Mensajes Enviados, puede continuar.</h1></div>
-	
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-				//	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-				//	return $respuesta;
-			$respuesta->addAssign("preview","innerHTML","$preview");
-	
-			return $respuesta;
-	}
-
-	
-			$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h1>Listas de correo $boton</h1>");
-			//$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("mailer");
-
-
-function formulario_permitidos($form_id,$usuario,$onchange,$accion){
-
-if($accion =="listado"){
-$link=Conectarse();
-				mysqli_query("SET NAMES 'UTF8'");
-				mysqli_real_escape_string($link,$usuario);
-				$consulta ="
-					SELECT * FROM `form_parametrizacion` WHERE tabla ='id_usuario' AND campo = '$usuario' 
-					AND  descripcion ='autorizacion' ";
-				$sql=mysqli_query($consulta,$link);  
-				if($sql){
-						if (mysqli_num_rows($sql)!='0'){
-							mysqli_data_seek($sql, 0);
-							
-							while( $row = mysqli_fetch_array( $sql ) ) {
-					$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$row[opcion]",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-							
-							$opciones .="<option value='$row[opcion]'> $nombre /$descripcion </option>";
-							}
-							
-							$resultado="
-			
-							<select class='form-control' onchange = \"$onchange \">
-							<option value=''> Seleccione </option>
-								$opciones
-
-							</select>
-			
-							";}
-						else { $resultado="<span class='text-danger'>No hay formularios autorizados</span>";}
-							}
-return $resultado;
-}
-}
-
-
-function formulario_permisos_usuario($form_id,$usuario,$accion){
-
-if($accion =="listado"){
-$link=Conectarse();
-				mysqli_query("SET NAMES 'UTF8'");
-				mysqli_real_escape_string($link,$usuario);
-				$consulta ="
-					SELECT * FROM `form_parametrizacion` WHERE tabla ='id_usuario' AND campo = '$usuario' 
-					AND  descripcion ='autorizacion' ";
-				$sql=mysqli_query($consulta,$link);  
-				if($sql){
-					//	if (mysqli_num_rows($sql)!='0'){
-							mysqli_data_seek($sql, 0);
-							$opciones ="<tr><th class='text-center'>Formulario</th><th></th></tr>";
-							while( $row = mysqli_fetch_array( $sql ) ) {
-					$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$row[opcion]",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-							$revocar= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','div_$row[id]'); \">
-									<i class='glyphicon glyphicon-trash'></i> Revocar 
-								</div>";
-							$opciones .="<tr id='div_$row[id]'><td><strong>$nombre </strong> $descripcion </td><td>$revocar</td></tr>";
-							}
-							
-							$resultado="
-			
-							<table id='listado_permisos_linea' class='table table-condensed table-striped table-hover'>
-							
-								$opciones
-								<div class='' ></div>
-							</table>
-			
-							";
-					//	}
-							}
-return $resultado;
-}
-if($form_id =="") {
-	$listado = formulario_permisos_usuario("$form_id","$usuario","listado");
-	$listado_formularios = select_key('form_id,form_grupo','id','form_id.id','nombre',"xajax_formulario_permisos_usuario((this.value),'$usuario','grabar')","form_id.id_empresa = '$_SESSION[id_empresa]' AND form_id.id = form_grupo.id  ",'tipo_consulta');
-	$listado_formularios= "
-			<div class='input-group'>
-				<span class='input-group-addon'>
-					Permisos:
-				</span>
-				$listado_formularios
-			</div>
-			<div class='hidden' id='autorizacion_confimar'></div>
-			<div class='list-group' id='listado_permisos'>
-			$listado
-			</div>
-	";
-	return $listado_formularios;
-	}
-
-	
-	
-//	$resultado = "<li class='list-group-item'><div class='btn btn-danger btn-xs'><i class='glyphicon glyphicon-trash'></i> X </div> <strong>$nombre</strong> $descripcion</li>";
-	$respuesta = new xajaxResponse('utf-8');
-	if($accion =="grabar") {
-		$existe = remplacetas('form_parametrizacion','campo',"$usuario",'opcion',"opcion='$form_id' and  descripcion = 'autorizacion'") ;
-		if( $existe[0] == $form_id ) {	
-		$respuesta->addAlert("El usuario ya está autorizado para usar ese formulario ");
-		return $respuesta;
-		}
-					$nombre = remplacetas('form_id',"id","$form_id",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$form_id",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-						$insertar = parametrizacion_linea('id_usuario',"$usuario","$form_id",'autorizacion','');
-						$revocar= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$insertar','div_$insertar'); \">
-									<i class='glyphicon glyphicon-trash'></i> Revocar 
-								</div>";
-									$linea ="<tr id='div_$insertar'><td><strong>$nombre nombre </strong> $descripcion </td><td>$revocar</td></tr>";
-			//$respuesta->addScript("xajax_parametrizacion_linea('id_usuario','$usuario','$form_id','autorizacion','autorizacion_confimar')");
-			//$actualizado = formulario_permisos_usuario("$form_id","$usuario","listado");
-	$respuesta->addAppend("listado_permisos_linea","innerHTML","$linea");
-	return $respuesta;
-     
-	}
-			
-				
-					
-					
-
-$respuesta->addAssign("listado_permisos","innerHTML","$resultado");
-
-			return $respuesta;
-			
-}
-$xajax->registerFunction("formulario_permisos_usuario");
-
-
-function adjuntar_basico($id){
-
-$formulario= '
-<script>
-/*jslint unparam: true */
-/*global window, $ */
-$(function () {
-    "use strict";
-    // Change this to the location of your server-side upload handler:
-    var url = "plugins/upload/server/php/";
-    $("#fileupload").fileupload({
-        url: url,
-        dataType: "json",
-      	param_names: "files_33",
-        done: function (e, data) {
-            $.each(data.result.files_33, function (index, file) {
-                $("<p/>").text(file.name).appendTo("#files_33");
-            });
-        },
-        progressall: function (e, data) {
-            var progress = parseInt(data.loaded / data.total * 100, 10);
-            $("#progress .progress-bar").css(
-                "width",
-                progress + "%"
-            );
-        }
-    }).prop("disabled", !$.support.fileInput)
-        .parent().addClass($.support.fileInput ? undefined : "disabled");
-});
-</script>
-  ';
-  $formulario .= "
-	<!-- 	UPLOAD  -->
-	
-	 <!-- Button to select & upload files -->
-  <span class='btn btn-success fileinput-button'>
-    <span>Select files...</span>
-    <!-- The file input field used as target for the file upload widget -->
-    <input id='fileupload' type='file' name='files_33' multiple>
-  </span>
-  
-  
-  <!-- The global progress bar -->
-  <p>Upload progress</p>
-  <div id='progress' class='progress progress-success progress-striped'>
-    <div class='bar'></div>
-  </div>
- 
-  
-  
-  <!-- The list of files uploaded -->
-  <p>Files uploaded:</p>
-  <ul id='files_33'></ul>
-  
-  
-  
-	<!-- 	UPLOAD  -->
-
-";
-
-return $formulario;
-}
-
-
-function adjuntar($id){
-
-$formulario= '
-		 <script>
-
-
-/*jslint unparam: true, regexp: true */
-/*global window, $ */
-$(function () {
-    "use strict";
-    // Change this to the location of your server-side upload handler:
-    var url = "plugins/upload/server/php/",
-        uploadButton = $("<button/>")
-            .addClass("btn btn-primary")
-            .prop("disabled", true)
-            .text("Processing...")
-            .on("click", function () {
-                var $this = $(this),
-                    data = $this.data();
-                $this
-                    .off("click")
-                    .text("Abort")
-                    .on("click", function () {
-                        $this.remove();
-                        data.abort();
-                    });
-                data.submit().always(function () {
-                    $this.remove();
-                });
-            });
-    $("#fileupload").fileupload({
-        url: url,
-        dataType: "json",
-        autoUpload: false,
-        acceptFileTypes: /(\.|\/)(gif|jpe?g|png|pdf|txt|csv|odt|gpx)$/i,
-        maxFileSize: 999000,
-        //formData: [{ name: "custom_dir", value: "/var/www/images_secure/" }],
-        // 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),
-        previewMaxWidth: 100,
-        previewMaxHeight: 100,
-        previewCrop: true
-    }).on("fileuploadadd", function (e, data) {
-        data.context = $("<div/>").appendTo("#files");
-        $.each(data.files'.$id.', function (index, file) {
-            var node = $("<p/>")
-                    .append($("<span/>").text(file.name));
-            if (!index) {
-                node
-                    .append("<br>")
-                    .append(uploadButton.clone(true).data(data));
-            }
-            node.appendTo(data.context);
-         
-        });
-    }).on("fileuploadprocessalways", function (e, data) {
-        var index = data.index,
-            file = data.files'.$id.'[index],
-            node = $(data.context.children()[index]);
-        if (file.preview) {
-            node
-                .prepend("<br>")
-                .prepend(file.preview);
-        }
-        if (file.error) {
-            node
-                .append("<br>")
-                .append($("<span class=\'text-danger\'/>").text(file.error));
-        }
-        if (index + 1 === data.files.length) {
-            data.context.find("button")
-                .text("Upload")
-                .prop("disabled", !!data.files.error);
-        }
-    }).on("fileuploadprogressall", function (e, data) {
-        var progress = parseInt(data.loaded / data.total * 100, 10);
-        $("#progress .progress-bar").css(
-            "width",
-            progress + "%"
-        );
-    }).on("fileuploaddone", function (e, data) {
-        $.each(data.result.files'.$id.', function (index, file) {
-            if (file.url) {
-                var link = $("<a>")
-                    .attr("target", "_blank")
-                    .prop("href", file.url);
-                $(data.context.children()[index])
-                    .wrap(link);
-            } else if (file.error) {
-                var error = $("<span class=\'text-danger\'/>").text(file.error);
-                $(data.context.children()[index])
-                    .append("<br> ")
-                    .append(error);
-            }
-        });
-    }).on("fileuploadfail", function (e, data) {
-        $.each(data.files'.$id.', function (index) {
-            var error = $("<span class=\text-danger\'/>").text("File upload failed.");
-            $(data.context.children()[index])
-                .append("<br>")
-                .append(error);
-        });
-    }).prop("disabled", !$.support.fileInput)
-        .parent().addClass($.support.fileInput ? undefined : "disabled");
-});
-  </script>	
-  ';
-  $formulario .= "
-	<!-- 	UPLOAD  -->
-	
-	 <!-- Button to select & upload files -->
-  <span class='btn btn-success fileinput-button'>
-    <span>Select files...</span>
-    <!-- The file input field used as target for the file upload widget -->
-    <input id='fileupload' type='file' name='files".$id."[]' multiple>
-  </span>
-  
-  
-  <!-- The global progress bar -->
-  <p>Upload progress</p>
-  <div id='progress' class='progress progress-success progress-striped'>
-    <div class='bar'></div>
-  </div>
- 
-  
-  
-  <!-- The list of files uploaded -->
-  <p>Files uploaded:</p>
-  <ul id='files'></ul>
-  
-  
-  
-	<!-- 	UPLOAD  -->
-
-";
-
-return $formulario;
-}
-
-
-function identificador_resaltado($id_empresa,$tipo) {
-
-$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-	if($resaltado[0] !="") {
-	$resaltado = mostrar_identificador("$resaltado[0]","","resaltado",'',"");
-	
-	}else{
-	$resaltado ="";
-	
-	}
-
-return $resaltado;
-
-
-}
-
-function generar_acceso($identificador,$tipo,$datos){
-	$respuesta = new xajaxResponse('utf-8');
-$formulario = 	remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-$publico = remplacetas('form_id','id',"$formulario[0]",'publico',"") ;
-$permiso_actual = 	remplacetas('form_permisos','control',"$identificador",'permiso',"") ;
-$ahora = time();
-$un_dia = $ahora + 86400;
-$un_dia=date('Y-m-d' , $un_dia);
-	if($permiso_actual[0] !="") {
-	$vencimiento_permiso_actual = 	remplacetas('form_permisos','control',"$identificador",'vencimiento',"") ;
-	$fecha_vencimiento_permiso_actual = "Válido hasta: ".date ( "Y-m-d H:i:s" , $vencimiento_permiso_actual[0]); 
-	$revocar ="
-				<div class='col-md-2'>
-					<div class='input-group '>
-						<div class='btn btn-danger btn-block' onClick=\"xajax_generar_acceso('$identificador','revocar','')\" >Revocar</div>
-					</div>
-				</div>";
-	}else {
-	
-	$fecha_vencimiento_permiso_actual = "";
-	}
-
-
-	
-	
-	
-
-
-if($tipo =="") {
-	if($publico[0] != '1') {
-		if($permiso_actual[0] !=="") { 
-			$boton = "	<a class='btn btn-default btn-block btn-xs btn-warning'  onClick=\"xajax_generar_acceso('$identificador','consultar','')\">
-	 Cambiar acceso <i class='glyphicon glyphicon-unlock'></i></span></a>";	
-		}
-		else{
-	$boton = "	<a class='btn btn-default btn-block btn-xs'  onClick=\"xajax_generar_acceso('$identificador','consultar','')\">
-	Generar acceso <i class='glyphicon glyphicon-lock'></i></span></a>";	
-		}
-	}
-	else { $boton ="<span class='text-warning '>Contenido público <i class='glyphicon glyphicon-unlock'></i></span>";	}
-		return $boton;
-	}
-elseif($tipo=="consultar") {
-	$resultado ="
-
-		<div class='row'>
-			<div class='col-md-5'>
-				<div id='mostrar_permiso'>
-					<p>
-						<a href='i$identificador$permiso_actual[0]' target='_blank'>$permiso_actual[0]</a> 
-						<br><small>$fecha_vencimiento_permiso_actual</small>
-						
-					</p>
-				</div>
-
-			</div>
-			<div class='col-md-5'>
-				<div class='input-group '>
-					<input type='date' class='form-control' value='$un_dia' placeholder='Fecha de vencimiento' id='vencimiento' name='vencimiento'>
-					<span class='input-group-btn'>
-					<div class='btn btn-warning' onClick=\"xajax_generar_acceso('$identificador','crear',document.getElementById('vencimiento').value ); \" >Generar nuevo acceso</div>
-					</span>
-				</div>
-			</div>
-			$revocar
-		</div>
-		
-	";
-
-}
-elseif($tipo=="crear") {
-	$permiso= rand().time();
-
-$consulta ="INSERT INTO `form_permisos` (`id`, `control`, `permiso`, `vencimiento`, `creacion`, `id_usuario`) 
-					VALUES (NULL, '$identificador', SHA1('$permiso'), UNIX_TIMESTAMP('$datos'), CURRENT_TIMESTAMP, '$_SESSION[id]');";
-$link=Conectarse(); 
-mysqli_query("SET NAMES 'utf8'");
-if($permiso_actual[0] !="") {
-	$borrar =" DELETE FROM form_permisos WHERE control='".mysqli_real_escape_string($link,$identificador)."' LIMIT 1";
-	$consulta_borrar =mysqli_query($borrar,$link);
-}
-	$consulta =mysqli_query($consulta,$link);
-	///xajax_generar_acceso('$identificador','consultar','')
-	$respuesta->addscript("xajax_generar_acceso('$identificador','consultar','')");	
-	return $respuesta;
-	
-}
-elseif($tipo=="revocar") {
-	
-$link=Conectarse(); 
-mysqli_query("SET NAMES 'utf8'");
-if($permiso_actual[0] !="") {
-	$borrar =" DELETE FROM form_permisos WHERE control='".mysqli_real_escape_string($link,$identificador)."' LIMIT 1";
-	$consulta_borrar =mysqli_query($borrar,$link);
-	$revocado="<h1 class='alert-danger text-center'>El permiso fue revocado</h1>"; 
-	$respuesta->addAssign("mostrar_permiso","innerHTML","$revocado");
-	return $respuesta;
-}
-	
-
-}
-else {}
-
-
-
-$regresar =" <a class='btn btn-default' onclick=\"xajax_consultar_formulario('$formulario[0]','10','','modal'); \"><i class='glyphicon glyphicon-arrow-left'></i> Regresar </a>";
-
-			$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;
-return $respuesta;
-}
-$xajax->registerFunction("generar_acceso");
-
-
-
-
-
-function resumen_identificador($identificador,$id_turno,$area,$formulario){
-
-if($formulario =="boton") {
-	$boton = "	<a class='btn btn-default  btn-xs'  onClick=\"xajax_resumen_identificador('$identificador','$id_turno','','')\"><i class='glyphicon glyphicon-eye-open'></i> Estructura</a>";		
-		return $boton;
-	}
-$respuesta = new xajaxResponse('utf-8');
-$areas = mostrar_areas("$identificador",$id_turno,$autorizado);
-
-$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("muestra_form","innerHTML","$areas");
-			$formulario = 	remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-			$regresar =" <a class='btn btn-default' onclick=\"xajax_consultar_formulario('$formulario[0]','10','','modal'); \"><i class='glyphicon glyphicon-arrow-left'></i> Regresar </a>";
-			$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;
-return $respuesta;
-}
-$xajax->registerFunction("resumen_identificador");
-
-
-
-
-function mostrar_areas($identificador,$id_turno,$autorizado){
-		if(strlen($identificador) > 32) {
-	$identificador_original= $identificador;
-	$key =  substr($identificador, 32, $length = 40);
-	$identificador =  substr($identificador, 0, $length = 32);
-	}else {$identificador_original = $identificador;}
-//// seguridad ////
-
-
-	$control = mysql_seguridad($identificador);
-	if($id =="") {
-		$id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
-		$publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
-		$id_seguridad = $id_seguridad[0];
-		
-	}else{
-		$publico = remplacetas('form_id','id',$id,'publico','') ;
-		$id_seguridad = $id;
-	}
-		$empresa_seguridad = remplacetas('form_id','id',$id_seguridad,'id_empresa','') ;
-		if($publico[0] != "1" ){
-		$permiso_actual = 	remplacetas('form_permisos','control',"$control",'permiso',"") ;
-		$permiso_vencimiento = 	remplacetas('form_permisos','control',"$control",'vencimiento',"") ;
-		if($permiso_actual[0] =="") {$sigue_restringido = 1;}
-		elseif($permiso_actual[0] != $key) {$sigue_restringido = 1;}
-		elseif($permiso_vencimiento[0] < time()) {$sigue_restringido = 1;}
-		else{$sigue_restringido ="";}
-		
-		}
-		
-		if($publico[0] != "1" and ( $_SESSION['id_empresa'] != $empresa_seguridad[0] ) AND $sigue_restringido !="" ) {
-		$resultado ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados </small> 
-		<i class='glyphicon glyphicon-lock'></i></h1></div>";
-		return $resultado;
-
-																					}
-//// seguridad ////
-$link=Conectarse(); 
-mysqli_query("SET NAMES 'utf8'");
-
-$listado_atenciones ="";	
-	
-	$sql_areas=" 	SELECT DISTINCT(form_datos.id_campo), form_campos.campo_area ,form_areas.nombre as consulta_area_nombre, form_datos.id 
-						FROM form_datos, form_campos, form_areas 
-						WHERE form_datos.control = '$identificador' 
-						AND form_campos.id = form_datos.id_campo 
-						AND form_datos.contenido != '' 
-						AND	form_campos.campo_area = form_areas.id 
-						GROUP BY form_campos.campo_area 
-						ORDER BY form_areas.orden
-													";		
-	$consulta_areas=mysqli_query($sql_areas,$link);
-if (mysqli_num_rows($consulta_areas)!='0'){/// si hay datos en la consulta
-while( $row = mysqli_fetch_array( $consulta_areas ) ) {//// se clasifica por area
-$cuadro_area .="<div class=''> <p>$row[consulta_area_nombre]</p >";
-$area = $row['campo_area'];
-$id_consulta_datos = $row['id'];
-/// los campos de cada area
-///se buscan los datos de la consulta
-$sql_datos_consulta ="
-		SELECT DISTINCT(form_datos.id_campo)AS id_campo ,form_datos.id, 
-				form_datos.contenido, form_campos.campo_nombre , 
-				form_campos.campo_descripcion ,
-				form_datos.form_id,
-				form_datos.control,
-				form_datos.orden
-		FROM form_datos, form_campos 
-		WHERE form_datos.control = '$identificador' 
-		AND form_campos.id = form_datos.id_campo 
-		AND form_campos.campo_area = '$area' 
-		GROUP BY id_campo,form_datos.orden
-		ORDER BY form_datos.id_campo, form_datos.orden ASC, timestamp DESC			 
-					 
-					";
-
-$datos_consulta=mysqli_query($sql_datos_consulta,$link);
-//$estado_turno = usuario_datos_consultar($id_turno,'turnos_usuario','estado');
-if (mysqli_num_rows($datos_consulta)!='0'){
-
-$listado_atenciones = " 
-								<table id='tabla_$identificador' style='' class='tabla_datos table table-hover table-striped table-bordered table-condensed table-responsive'  >
-								 ";
-							
-while( $row = mysqli_fetch_array( $datos_consulta ) ) {
-	
-	//// PRIVACIDAD
-			$privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
-			$privacidad = $privado;
-			$privado = explode(":",$privado[0]);
-			$privado = $privado[1];
-/// PRIVACIDAD
-///if($privado !='1') {
-	
-	if( !is_null($row['orden'])) { $orden_multiple ="and orden ='$row[orden]' ";}else { $orden_multiple ="";}
-		$contenido = 	remplacetas('form_datos','form_id',"$row[form_id]",'contenido'," id_campo ='$row[id_campo]' and control ='$identificador' $orden_multiple ") ;
-		if($contenido[0] !="" AND $privado !="1") {
-			$tipo_campo = remplacetas('form_campos','id',"$row[id_campo]",'campo_tipo',"") ;
-			if($tipo_campo[0] =="15" ) {$imagen ="<img style='width:100%' class='img img-responsive' src='$_SESSION[site]milfs/images/secure/?file=300/$contenido[0]'> "; $contenido[0]="";}else{$imagen ="";}
-			if($tipo_campo[0] =="6" ) {$render =imprimir_buscador_campo($row[id_campo],$contenido[0]) ;}
-			else {$render=html_entity_decode($contenido[0]);}
-			
-			//imprimir_buscador_campo($id_campo,$valor) 
-$listado_atenciones .= "<tr >
-										<td  align='right'  width='25%' title=' ($row[id_campo]) ".$row['campo_descripcion']." '><b> ".$row['campo_nombre'].": </b> </td>
-										<td style=' word-wrap: break-word;'valign='top'>$imagen <p  style=' word-wrap: break-word;'> $render</p> </td>
-									</tr>";
-								}else { $listado_atenciones .= "";}
-															}/// fin d el array para datos de la consulta
-															
-$listado_atenciones = "<div class=''>$listado_atenciones</table></div>";
-							
-										} else { }/// fin de si hay resultados en $datos_consulta
-
-/// fin de los campos de cada area
-$cuadro_area .=" $listado_atenciones </div> ";
-															}
-															
-															
-										}		else{$listado_atenciones.=" <tr><td>No hay resultados</td></tr>"; $cuadro_area ="$listado_atenciones ";}			
-																												
-//																	}///fin de las atenciones mostradas por timestamp
-
-///												}/// fin de las atenciones en ese turno
-
-///											else{$listado_atenciones.="";}
-/// fin de la clasificacion de atenciones por timestamp
-
-//$nombre_paciente = usuario_datos_consultar($id_usuario,'usuario','nombre_completo');
-$nuevo_select .= "<h2>Resumen de atenciones </h2>
-
-
-
-$area
-
-
-
-";
-
-return $cuadro_area;
-	
-} 
-
-
-
-
-function borrar_linea($tabla,$id,$div){
-	if($usuario =="") {
-	$link=Conectarse();
-	mysqli_query("SET NAMES 'UTF8'");
-	mysqli_real_escape_string($link,$id);
-	mysqli_real_escape_string($link,$tabla);
-	$consulta ="DELETE FROM $tabla WHERE `id` = '$id' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1";
-	$sql=mysqli_query($consulta,$link);  
-	if($sql){ $resultado ="<div class='alert alert-success text-center '>El registro fue eliminado</div>"; }
-	else { $resultado ="<div class='alert alert-warning text-center '>No se pudo eliminar el registro</div>"; }
-	}
-	if($div =="") {
-		return ;
-	}else{
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("$div","innerHTML","$resultado");
-			
-			return $respuesta;
-	}
-
-									
-}
-$xajax->registerFunction("borrar_linea");
-
-
-
-function autorizar_usuarios($usuario,$grupo,$accion){
-	if($usuario =="") {
-	$link=Conectarse();
-	mysqli_query("SET NAMES 'UTF8'");
-	mysqli_real_escape_string($link,$usuario);
-	$consulta ="
-		SELECT *, form_parametrizacion.id as id, usuarios.id as usuario FROM `form_parametrizacion`, usuarios WHERE form_parametrizacion.campo = usuarios.id 
-		AND  form_parametrizacion.id_empresa ='$_SESSION[id_empresa]' AND descripcion ='autorizacion' ORDER BY p_nombre ASC";
-	$sql=mysqli_query($consulta,$link);  
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				$opciones ="<tr><th>Nombres</th><th>Email</th><th>Rol</th><th>Acción</th></tr>";
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$rol ="
-				<div id='autorizacion_confimar_$row[id]'>
-					<select class='form-control'  onchange= \"
-							xajax_borrar_linea('form_parametrizacion','$row[id]','borrar_$row[id]')
-							xajax_parametrizacion_linea('id_empresa','$row[usuario]',(this.value),'autorizacion','autorizacion_confimar_$row[id]') \">
-						<option value= '$row[opcion]' selected >".ucfirst ($row['opcion'])."</option>
-						<option value= 'editor'>Editor</option>
-						<option value= 'administrador'>Administrador</option>
-					</select></div><div style='display:none;' id='borrar_$row[id]'></div>				
-				";										
-				$revocar= "
-					<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','div_$row[id]'); \">
-						<i class='glyphicon glyphicon-trash'></i> Revocar 
-					</div>";
-				$opciones .="<tr id='div_$row[id]'><td>$row[p_nombre] $row[p_apellido] </td><td>$row[email]</td><td>$row[opcion]</td><td>$revocar</td></tr>";
-				}
-				
-				$resultado="
-
-				<table class='table table-condensed table-striped table-hover'>
-				
-					$opciones
-				</table>
-
-				";
-			}
-				}
-		$resultado = "
-				<div id='div_autorizaciones'></div>
-				<h2>Gestión de usuarios</h2>
-		$resultado
-				<div class='input-group'>
-					<span class='input-group-addon'>Autorizar usuario por Email</span>
-					<input type='email' class='form-control' id='email_autorizacion' placeholder='Escriba el email del usuario que desea autorizar'>
-					<span class='input-group-btn'>
-					<div class='btn btn-warning' onclick =\"xajax_autorizar_usuarios(document.getElementById('email_autorizacion').value,'editor','autorizar'); \">Autorizar</div>
-					</span>
-				</div>
-				<div id='div_autorizacion_confimar'></div>
-				<div id='autorizacion_confimar'></div>
-		
-		";
-	}else {
-	$respuesta = new xajaxResponse('utf-8');
-	$verifica = 	remplacetas('usuarios','email',"$usuario",'id',"") ;
-	if($verifica[0] =="") {
-		$resultado ="<div class='alert alert-danger'><h2>El usuario <strong>$usuario</strong> no está registrado  $verifica[0]</h2></div>";
-		 $respuesta->addAssign("div_autorizacion_confimar","innerHTML","$resultado");
-	}
-	else {
-	 //xajax_parametrizacion_linea('id_empresa','campo','opcion','descripcion','DIV');
-	 //parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-	  $respuesta->addScript("xajax_parametrizacion_linea('id_empresa','$verifica[0]','editor','autorizacion','autorizacion_confimar')");
-	 $resultado ="<div class='alert alert-success'><h2>Se agregó el usuario <strong>$usuario</strong> <div id='div_autorizacion_confimar'></div></h2></div>";
-	 $respuesta->addAssign("div_autorizacion_confimar","innerHTML","$resultado");
-	
-	 
-			
-	}
-	return $respuesta;
-	}
-	
-	
-return $resultado;
-}
-$xajax->registerFunction("autorizar_usuarios");
-
-function cambiar_empresa($id_usuario,$id_empresa) {
-	$principal = 	remplacetas('usuarios','id',$id_usuario,'id_empresa',"") ;
-	$principal_nombre = 	remplacetas('empresa','id',$principal[0],'razon_social',"") ;
-if($id_empresa !="") { 
-	$respuesta = new xajaxResponse('utf-8');
-	if($id_empresa=="principal") {
-
-	
-		$_SESSION[id_empresa] = "$principal[0]";	
-		$_SESSION['grupo'] = "1";
-		$respuesta->addRedirect("e$principal[0]");
-		$respuesta->addAssign("div_cambiar_empresa","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-	$revisar_usuario = remplacetas('form_parametrizacion','campo',"$id_usuario",'opcion'," tabla='id_empresa' and  descripcion = 'autorizacion'") ;
-	if($revisar_usuario[0]=="") {
-		$resultado ="<div class='alert alert-danger text-center'><h2>No tiene autorizacion </h2>";	
-	}else{
-		$_SESSION[id_empresa] = "$id_empresa";	
-		$_SESSION['grupo'] = "$revisar_usuario[0]";	
-	}
-			$respuesta->addAssign("div_cambiar_empresa","innerHTML","$resultado");
-			$respuesta->addRedirect("e$id_empresa");
-			return $respuesta;
-}
-
-
-$link=Conectarse();
-	mysqli_query("SET NAMES 'UTF8'");
-	mysqli_real_escape_string($link,$id_usuario);
-	$consulta ="SELECT empresa.id, razon_social, opcion FROM form_parametrizacion , empresa 
-	WHERE form_parametrizacion.id_empresa = empresa.id AND `campo` = '$id_usuario' AND descripcion ='autorizacion' ORDER BY razon_social";
-
-	$sql=mysqli_query($consulta,$link);  
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				$opciones ="<option value='principal' >$principal_nombre[0]</option>";
-				while( $row = mysqli_fetch_array( $sql ) ) {
-					if($_SESSION[id_empresa] == $row[id]) { $selected='selected';}else{ $selected='';}
-				$opciones .="<option value='$row[id]' $selected >$row[razon_social]</option>";
-				}
-				
-				$select="<div id='div_cambiar_empresa'></div>
-							<select onChange=\"xajax_cambiar_empresa('$id_usuario',(this.value)); \" class='form-control ' id='cambiar_empresa' class='form_control'>$opciones</select>";
-			}
-
-	}
-	return $select;
-
-									
-}
-$xajax->registerFunction("cambiar_empresa");
-
-
-function clonar_identificador($control){
-		$nuevo_control = md5(rand(1,99999999).microtime());
-		$ip =  obtener_ip();	
-		$graba_ip = "INET_ATON('".$ip."') ";
-	$link=Conectarse();
-	mysqli_query("SET NAMES 'UTF8'");
-	mysqli_real_escape_string($link,$control);
-	$consulta="SELECT * FROM form_datos WHERE control ='$control'";
-	$sql=mysqli_query($consulta,$link);  
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$values .= "('$row[id_campo]','$row[form_id]','$row[proceso]', '$row[orden]', '$_SESSION[id]', '$row[id_empresa]','".mysqli_real_escape_string($link,$row['contenido'])."',UNIX_TIMESTAMP(),$graba_ip, '$nuevo_control'),";
-				}
-				$values = substr($values, 0, -1);
-				$values = "(`id_campo`,	`form_id`, `proceso`, `orden`, `id_usuario`,`id_empresa`,`contenido`,`timestamp`,`ip`,`control`) VALUES  $values ";
-			}
-	$consulta_insertar_campos = "INSERT INTO form_datos $values "; 
-	$sql_insert_campos=mysqli_query($consulta_insertar_campos,$link);
-	}
-			$respuesta = new xajaxResponse('utf-8');
-			$resultado ="
-				<div class='alert alert-success'>
-					<p><i class='glyphicon glyphicon-smile-o'></i> El registro fue clonado a $nuevo_control <br><b>Por favor actualice esta vista</b></p>
-				</div>
-					";
-			//$respuesta->addAlert("EL REGISTRO SE CLONO $nuevo_control");//<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','$registros','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-			//$resultado=" $consulta // $consulta_insertar_campos ";
-			$respuesta->addAssign("clonar_$control","innerHTML","$resultado");
-			return $respuesta;
-									
-								}
-$xajax->registerFunction("clonar_identificador");
-
-
-
-function cerrar_sesion(){
-
-			session_destroy();
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addRedirect("");
-			return $respuesta;
-									
-								}
-$xajax->registerFunction("cerrar_sesion");
-
-
-function listado_entradas($formulario,$registros){
-	$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and  opcion = 'titulo'") ;
- if($campo_titulo[0] !="") { $w_campo ="AND id_campo='$campo_titulo[0]' "; $w_nombre_campo =" id_campo='$campo_titulo[0]' ";  }
-$consulta = "SELECT * FROM form_datos WHERE  form_id='$formulario' $w_campo GROUP BY control  ORDER BY id DESC LIMIT $registros ";
-$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);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$contenido =strip_tags($row['contenido']);
-	if($campo_titulo[0] !="") { 
-		$nombre = remplacetas_orden('form_datos','control',$row['control'],'contenido',"  $w_nombre_campo " ,"ORDER BY timestamp DESC") ;
-	}else {$nombre[0] = $contenido; }
-	
-	$maximo ="80";
-	$size= strlen($contenido);
-	if($size > $maximo) {
-	$contenido =substr($contenido,0,$maximo)."... ";
-	}
-	else{
-	$contenido = $contenido;
-	}
-	///href='../d$row[control]'
-	$listado .= "
-					<li class='list-group-item' ><a  class='btn btn-link '  onclick =\"xajax_formulario_embebido_ajax('$formulario','$row[control]','edit') \"  target='nuevo'> $nombre[0]</a></li>
-				
-							"; 
-	
-}
-	
-$resultado= "
-	<ul class='list-group'>
-		$listado
-	</ul>";
-}
-
-
-return $resultado;
-
-}
-$xajax->registerFunction("listado_entradas");
-
-
-function panel_aplicaciones($tipo,$empresa,$div){
-	$registros='10';
-	if($empresa=="" AND $_SESSION['id'] !="") { $w_empresa ="AND propietario = '$_SESSION[id]' ";}
-	elseif($empresa=="" ) { $w_empresa ="AND id_empresa = '$_SESSION[id_empresa]' ";}
-	else{ $w_empresa ="AND id_empresa = '$empresa' ";}
-
-$consulta = "SELECT * FROM form_id WHERE   activo='$tipo' $w_empresa  ORDER BY id 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);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-			
-		$entradas = listado_entradas($row['id'],"$registros");
-	//href='../g$row[id]'
-	$listado .= "
-
-					<div class='panel panel-default'>
-						<div class='panel-heading' role='tab' id='tab_$row[id]'>
-						<h3>".strip_tags($row['nombre'])." <small>ID $row[id]</small></h3>
-							<a 
-								data-toggle='collapse' 
-								role='button'
-								data-parent= '#listado_aplicaciones_disponibles'
-								href='#collapse_$row[id]'
-								aria-expanded='false'
-								aria-controls='collapse_$row[id]'
-							 	class='collapsed btn btn-default'
-							 	>Mostrar últimos $registros</a> 
-							 	<a class='btn btn-default'  target='nuevo' onclick=\"xajax_formulario_embebido_ajax('$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Nueva entrada</a>
-							<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','$registros','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-						</div>
-						<div id='collapse_$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='tab_$row[id]'>
-							<div class='panel-body'>
-							$entradas
-							</div>
-						</div>
-					</div>
-
-							"; 
-	
-}
-	
-$resultado= "
-		<div class='btn btn-default btn-xs pull-right' onclick=\"xajax_limpia_div('div_panel_aplicaciones'); \" >Cerrar (X)</div> 
-		<h2>Aplicaciones disponibles</h2>
-			<div class='panel-group' id='listado_aplicaciones_disponibles' tole='tablist' aria-multiselectable='true'>
-			$listado
-			</div>
-		
-
-	<br>";
-}
-if($div =="") {
-	$cambiar_empresa = cambiar_empresa($_SESSION['id'],'');
-$boton="
-<div style='max-width:800px;' class='container-fluid'>
-	$cambiar_empresa
-	<div class='btn-group form-inline' role='group' aria-label='botonera-administracion'>
-		<div onclick=\"xajax_panel_aplicaciones('$tipo','$empresa','div_panel_aplicaciones'); \" class='btn btn-default btn-xs'>Editor</div>
-		<a href='milfs/' class='btn btn-default btn-xs'>Des-administrador</a>
-		<a class='btn btn-default btn-xs' onclick=\"xajax_cerrar_sesion(); \"> $_SESSION[username] Salir <i class='glyphicon glyphicon-log-out '></i></a>
-	</div>
-</div>
-			<div class='container-fluid' id='div_panel_aplicaciones' style='max-height:500px; overflow:auto;'></div>";
-$resultado="$boton";
-return $resultado;
-}else {
-
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-		}
-}
-$xajax->registerFunction("panel_aplicaciones");
-
-
-function asistente_aplicaciones($accion,$id,$nombre,$descripcion){
-$div = "asistente_aplicacion";
-$respuesta = new xajaxResponse('utf-8');
-	$nombre_original = remplacetas('form_id',"id","$id",'nombre',"") ;
-	$nombre_original = $nombre_original[0] ;
-	
-	$descripcion_original = remplacetas('form_id',"id","$id",'descripcion',"") ;
-	$descripcion_original = strip_tags($descripcion_original[0]);
-	
-	$encabezado ="
-		<h2 class='text-center'>$nombre</h2>
-		<h3>$descripcion</h3>
-		<p class='text-center'>$nombre_original<small> $descripcion_original </small></p>	
-	";
-	
-	if($accion =="" ) {
-	$resultado= "
-		<br>
-		<div id='$div' class='jumbotron'>
-		<div class='center-block btn btn-success' onclick=\"xajax_asistente_aplicaciones('listado','','','');\"; ><H3><i class='glyphicon glyphicon-magic'></i> CREA TU APLICACIÓN EN 3 PASOS</H3></div>
-		</div>";
-		return $resultado;
-	}
-	elseif($accion=='listado') {
-		if(!isset($_SESSION['id']) AND !isset($_SESSION['control_usuario_milfs'])  ) {
-
-			$habilitado="";
-			$disable ="disabled";
-			$aviso ="<div class='text-center alert alert-warning'><h2><i class='glyphicon glyphicon-exclamation-triangle'></i><br>Por favor ingresa o regístrate para empezar a crear tu aplicación.</h2></div>";
-							
-		}
-		else{ 
-			$validar_email = verificacion_email("$_SESSION[nombre_usuario_milfs]",'','verificar');
-			if($validar_email =="" and !isset($_SESSION[id])) {
-							$aviso ="<div class='text-center alert alert-warning'><h2><i class='glyphicon glyphicon-exclamation-triangle'></i><br>Por <strong>verifica tu email</strong> para empezar a crear tu aplicación.</h2></div>";;
-				$habilitado="";
-				$disable ="disabled";}
-			else {
-			$aviso="<h2>Elige un tipo de aplicación</h2>";
-			$habilitado="1";
-			}
-		}
-		$consulta = "
-			SELECT form_id.id, nombre,descripcion FROM form_id, form_grupo 
-			WHERE  form_id.id = form_grupo.id AND form_id.id_empresa = '1' AND form_grupo.grupo = 'Publico' 
-			ORDER BY nombre ASC ";
-		$link=Conectarse();
-			mysqli_query("SET NAMES 'UTF8'");
-			mysqli_real_escape_string($link,$consulta);
-		$sql=mysqli_query($consulta,$link);
-			if (mysqli_num_rows($sql)!='0'){
-				while( $row = mysqli_fetch_array( $sql ) ) {
-					if($habilitado=="1") {$onclick="onclick=\"xajax_asistente_aplicaciones('nombre','$row[id]','','');\";";}
-					else{$onclick="onclick=\"alert('Por favor ingresa o regístrate para empezar a crear tu aplicación.')\";";}
-					$listado .= "
-									<li class='list-group-item' >
-										<blockquote class='text-$alerta'>
-											<button $disable  $onclick class='btn btn-primary btn-block'>".strip_tags($row['nombre'])."</button>
-											<footer>".strip_tags($row['descripcion'])." </footer>
-											
-										</blockquote>
-									</li>"; 
-				
-				}
-			$resultado ="
-			$aviso
-	
-			$listado";
-			}
-	}
-	elseif($accion=='nombre') {
-		$resultado ="
-		$encabezado
-		<div id='nombre_aplicacion_input' class='input-group text-center' style='width:100%'>
-			<label for='nombre_aplicacion' class='sr-only' >Pon un nombre a tu aplicación</label>
-			<input value='$nombre' id='nombre_aplicacion' type='text' class='text-center form-control input-lg' placeholder='Pon un nombre a tu aplicación'>
-		</div>
-		<br>
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='descripcion_aplicacion' name='descripcion_aplicacion' value='$descripcion'>
-			<div onclick=\"xajax_asistente_aplicaciones('listado','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div onclick=\"xajax_asistente_aplicaciones('descripcion','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-right' >SIGUIENTE <i class='glyphicon glyphicon-arrow-right'></i> </div>
-			<div id='asistente_aviso'></div>	
-		</div>	
-				
-		
-		";	
-	
-	}
-	elseif($accion=='descripcion') {
-		if($nombre=="") {
-			$aviso="<span class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor pon un nombre a tu aplicación </span>";
-		$respuesta->addAssign("nombre_aplicacion_input","className"," input-group has-error text-center ");
-		$respuesta->addAssign("asistente_aviso","innerHTML","$aviso");
-		return $respuesta;
-		
-		}
-		$resultado ="
-		$encabezado
-		<div id='descripcion_aplicacion_input' class='input-group' style='width:100%'>
-			<label for='descripcion_aplicacion' class='sr-only' >Describe tu aplicación</label>
-			<br><div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-			<textarea type='text' id='descripcion_aplicacion' class='wysiwyg form-control input-lg' placeholder='Describe a tu aplicación'>$descripcion</textarea>
-		</div>
-		<br>
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='nombre_aplicacion' name='nombre_aplicacion' value='$nombre'> 
-			<div onclick=\"xajax_asistente_aplicaciones('nombre','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div onclick=\"xajax_asistente_aplicaciones('grabar','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-right' >SIGUIENTE <i class='glyphicon glyphicon-arrow-right'></i> </div>
-			<div id='asistente_aviso'></div>	
-		</div>	
-				
-		
-		";	
-	
-	}
-	elseif($accion=='grabar') {
-		if($descripcion=="") {
-			$aviso="<span class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor describe tu aplicación </span>";
-		$respuesta->addAssign("descripcion_aplicacion_input","className"," input-group has-error text-center ");
-		$respuesta->addAssign("asistente_aviso","innerHTML","$aviso");
-		return $respuesta;
-		
-		}
-		$resultado=" $encabezado
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='nombre_aplicacion' name='nombre_aplicacion' value='$nombre'> 
-			<input type='hidden' id='descripcion_aplicacion' name='descripcion_aplicacion' value='$descripcion'> 
-			<div onclick=\"xajax_asistente_aplicaciones('descripcion','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div  onclick = \"xajax_clonar_formulario('$id','$_SESSION[id_empresa]',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value,'aplicacion'); \" class='btn btn-success btn-lg pull-right' ><i class='glyphicon glyphicon-floppy-disk'></i> GRABAR </div>
-		</div>		
-		
-		";
-	}
-	else {}
-	
-
-
-
-
-$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-			
-}
-$xajax->registerFunction("asistente_aplicaciones");
-
-
-function mostrar_interacciones($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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-							
-						</blockquote>
-					</li>"; 
-	
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-		
-			<ul class='list-group'>
-				$listado
-			</ul>
-		
-	</div>";
-}
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-			
-}
-$xajax->registerFunction("mostrar_interacciones");
-
-
-function contar_interacciones($identificador,$tipo,$usuario){
-	$resultado ="";
-$consulta = "SELECT distinct(id) as cantidad FROM form_interacciones WHERE identificador = '$identificador' AND tipo= '$tipo' ";
-$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);
-//$resultado = mysqli_result($sql,0,"cantidad");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-function interaccion_identificador($identificador,$accion) {
-$revisar_interacciones="";
-$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();	
-		
-	mysqli_query("SET NAMES 'utf8'");
-	$mensaje=strip_tags($mensaje) ;
-	mysqli_real_escape_string($link,$mensaje);
-			$consulta="INSERT INTO form_interacciones SET mensaje='".mysqli_real_escape_string($link,$mensaje)."' ,estado='0' ,identificador='$nuevo_identificador', tipo='$tipo',ip=$graba_ip,usuario='$_SESSION[control_usuario_milfs]' ";
-	mysqli_real_escape_string($link,$consulta);
-	$sql=mysqli_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 <strong>$tipo</strong> 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 <stron><a href='https://$web[0]/I$nuevo_identificador'>$nombre_formulario[0]</a></strong> 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] ".$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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $email[0]</h2>"; }else {$exito .="<span class='text-danger'><i class='glyphicon glyphicon-meh-o'></i> Error enviando correo</span>";}		
-		
-		
-		$div = "".$tipo."_cantidad_$nuevo_identificador";
-		$cantidad = contar_interacciones("$nuevo_identificador","$tipo","$_SESSION[control_usuario_milfs]");
-		$resultado="<div class='alert alert-success'><h2>El mensaje se ha enviado, si es necesario nos comunicaremos contigo</h2>$exito</div>";
-		$respuesta->addAssign("$div","innerHTML","$cantidad");
-	
-	}else{
-			$resultado="<div class='alert alert-warning'><h2><i class='glyphicon glyphicon-meh-o'></i> Algo salió mal <small> Por favor inténtalo de nuevo </small>$consulta</h2></div>";
-	}
-	
-	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("myModalLabel_info","innerHTML","<h2>$accion</h2>");
-			return $respuesta;
-
-			
-	}
-	if($accion =="") {
-		$cantidad_Si = contar_interacciones("$identificador","Si","");
-		$cantidad_No = contar_interacciones("$identificador","No","");
-		$cantidad_Comentar = contar_interacciones("$identificador","Comentar","");
-		$cantidad_Reportar = contar_interacciones("$identificador","Reportar","");
-		$cantidad_Mensaje = contar_interacciones("$identificador","Mensaje","");
-		if(isset($_SESSION['id_empresa'])){
-		if($_SESSION['id_empresa'] == "$id_empresa") { 
-			$revisar_interacciones="	  <div class='btn btn-success' onclick=\"xajax_mostrar_interacciones('$identificador','todo','','mostrar_interacciones_$identificador');\">Mostrar Todo</div>";
-			}
-		else {$revisar_interacciones="";}
-			}
-	$menu ="
-	<div class='btn-group btn-group-xs' role='group' aria-label='botonera'>
-	  <div  id='Mensaje_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Mensaje'); \" class='btn btn-default' role='' ><span class='glyphicon glyphicon glyphicon glyphicon glyphicon-envelope' aria-hidden='true'></span> Mensaje <span class='badge' id='Mensaje_cantidad_$identificador'>$cantidad_Mensaje</span></div>
-	  <div  id='Si_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Si'); \"class='btn btn-success' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-up' aria-hidden='true'></span> Si <span class='badge' id='Si_cantidad_$identificador'>$cantidad_Si</span></div>
-	  <div  id='No_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','No'); \" class='btn btn-warning' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-down' aria-hidden='true'></span> No <span class='badge' id='No_cantidad_$identificador'>$cantidad_No</span></div>
-	  <div  id='Reportar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Reportar'); \" class='btn btn-danger' role='' ><span class='glyphicon glyphicon glyphicon-remove-sign' aria-hidden='true'></span> Reportar <span class='badge' id='Reportar_cantidad_$identificador'>$cantidad_Reportar</span></div>
-	  <div  id='Comentar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comentar'); \" class='btn btn-info' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-pencil' aria-hidden='true'></span> Comentar <span class='badge' id='Comentar_cantidad_$identificador'>$cantidad_Comentar</span></div>
-	  <div class='btn btn-info' onclick=\"xajax_mostrar_interacciones('$identificador','Comentar','','mostrar_interacciones_$identificador');\">Mostrar</div>
-	  $revisar_interacciones
-	</div>
-	
-	<div id='mostrar_interacciones_$identificador'></div>
-	";
-	return $menu;
-	}
-	/*
-	elseif($accion=="Si") {	}
-	elseif($accion=="No") {	}
-	elseif($accion=="Compartir") {	}
-	*/
-	else {
-if(isset($_SESSION['usuario_milfs']) ) {
-$formato="
-<div class='container-fluid barra_interaccion'>
-	<form id ='formulario_interaccion' name ='formulario_interaccion'>
-	<div class='input-group col-xs-12'>
-		<label for='texto_interaccion'>Comentario</label>
-		<textarea class='form-control' id='texto_interaccion' name='texto_interaccion' placeholder='Escribe tu comentario' ></textarea>
-	</div>
-	<br>
-	<input type='hidden' value='$accion' id='tipo' name='tipo'>
-	<input type='hidden' value='$identificador' id='identificador' name='identificador'>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div data-dismiss='modal' onclick = \"xajax_limpia_div('muestra_form'); \"aria-hidden='true'  class='btn btn-danger btn-block'>Cancelar</div>
-		</div >
-		<div class='col-xs-6'>
-			<div onclick=\"xajax_interaccion_identificador(xajax.getFormValues('formulario_interaccion'),'Grabar'); \" class='btn btn-success  btn-block'>Enviar</div>
-		</div >
-	</div>
-	</form>
-</div>
-
-";
-
-}
-
-else{
-	 require ("milfs/includes/parametrizacion.php");
-/// SI EL USUARIO NO ESTA LOGUEADO
-$login = milfs_session("$login_formulario","$login_campo_usuario","$login_campo_password","","");
-$formato ="
-<div class='alert alert-success'><h2>Por favor ingresa para <b>$accion</b></h2>
-$login
-</div>";
-}
-
-}
-
-
-			//$div_contenido = "<div id='$div'>$div</div>";
-			$respuesta->addAssign("muestra_form","innerHTML","$formato");
-			$respuesta->addAssign("myModalLabel_info","innerHTML","<h2>$accion <small>$_SESSION[nombre_usuario_milfs]<small> </h2> ");
-			//$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="
-<div class='alert alert-danger'>
-	<h2>Se eliminará definitivamente este registro</h2>
-	<div class='row '>
-		<a class='col-md-6 btn btn-danger  btn-xs' onclick=\"xajax_eliminar_identificador('$identificador','eliminar'); \" href='#'><i class='glyphicon glyphicon-trash'></i> Eliminar</a>
-		<a class='col-md-6 btn btn-warning  btn-xs' onclick=\"xajax_limpia_div('$div'); ; \" href='#'><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</a>
-	</div>
-</div>
-";
-}
-if($accion =="eliminar") {
-	$consulta_eliminar="DELETE FROM `form_datos` WHERE `form_datos`.`control` = '$identificador' ";
-	$link=Conectarse();	
-	mysqli_query("SET NAMES 'utf8'");
-	mysqli_real_escape_string($link,$consulta_eliminar);
-	$sql_borrar=mysqli_query($consulta_eliminar,$link);
-	if($sql_borrar) {
-$resultado ="
-<div class='alert alert-success'>
-	<p><i class='glyphicon glyphicon-smile-o'></i> Se eliminó definitivamente este registro.<br><b>Por favor actualice esta vista</b></p>
-</div>
-	";
-						}
-						else {
-$resultado ="
-<div class='alert alert-warning'>
-	<p><i class='glyphicon glyphicon-meh-o'></i> Algo salió mal, quizá el registro ya había sido eliminado <small> Por favor actualice esta vista </small></p> 
-</div>
-	";
-						}
-}
-	$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 ="
-					<div class='form-group col-md-6'>
-						<label for='Proyecto_mover'>Seleccione proyecto</label>
-						$empresas
-					</div>
-					";
-			$cols ="6";
-		
-			$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario_mover');
-///<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
-	$resultado="
-
-<div id='panel_mover' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_mover' >
-	<div class='panel-heading'>
-		<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_move' aria-expanded='false' aria-controls='collapseExample'>
-			<i class='glyphicon glyphicon-arrows'></i> Mover 
-		</a> 
-		<span class='panel-title'> El formulario y su contenido se moverán al proyecto seleccionado</span>
-	</div>
-	<div class='panel-body collapse' id='panel_move'>
-		<div class='form-group col-md-$cols'>
-			<label for='Formulario_mover'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_mover_formulario(document.getElementById('Formulario_mover').value,document.getElementById('Proyecto_mover').value,'mover'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Mover</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-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 <strong>$nuevo_nombre</strong> 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 ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-$link=Conectarse();	
-	mysqli_query("SET NAMES 'utf8'");
-	mysqli_real_escape_string($link,$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=mysqli_query($consulta_update_form,$link);
-
-	$consulta_update_campos = "UPDATE form_datos SET id_empresa= '$id_empresa' WHERE form_id = '$formulario' ";
- 	$sql_update_campos=mysqli_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 ="
-	<div class='alert alert-success'>
-	<h2>Se movió el formulario <strong>$nombre[0]</strong> y sus <strong>$cantidad</strong> registros. <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='glyphicon glyphicon-refresh'></i> Actualizar</a></h2>
-	</div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-	}    
-$xajax->registerFunction("mover_formulario");
-
-
-
-
-function clonar_formulario($formulario,$id_empresa,$nuevo_nombre,$descripcion,$tipo){
-$div ="div_clonar";
-$error ="";
-	$grupo = remplacetas('form_id',"id","$formulario",'nombre',"") ;
-	$grupo = strip_tags($grupo[0]);
-if($tipo =="formato") {
-			if($_SESSION['id'] == '1') {
-			$w_empresa = "";
-			$empresas = select('empresa','id','razon_social','',"",'Proyecto');
-$empresa ="
-		<div class='form-group col-md-4'>
-			<label for='empresa'>Seleccione proyecto</label>
-			$empresas
-		</div>
-		";
-		$cols ="4";
-		}else {
-			$empresa ="<input type='hidden' value='' name='Proyecto' id='Proyecto'>";
-			$w_empresa = "id_empresa = '$_SESSION[id_empresa]'";
-			$cols="6";
-		}
-	$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario');
-	$resultado="
-
-<div id='panel_clonar' class='panel panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_clonar' >
-	<div class='panel-heading'>
-	
-	<a  data-parent='#accordion_accion_formulario'  class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_clone' aria-expanded='false' aria-controls='collapseExample'>
-	<i class='glyphicon glyphicon-clone'></i> Clonar</a> <span class='panel-title'>Se copiará la estructura del formulario pero no su contenido.</span>
-	</div>
-	<div class='panel-body collapse' id='panel_clone'>
-		<div class='form-group col-md-$cols'>
-			<label for='formulario'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-		<div class='form-group col-md-$cols'>
-			<label for='nuevo_nombre'>Nombre </label>
-			<input class='form-control' id='nuevo_nombre' name='nuevo_nombre' placeholder='Nombre que tendrá el formulario nuevo' >
-		</div>
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_clonar_formulario(document.getElementById('Formulario').value,document.getElementById('Proyecto').value,document.getElementById('nuevo_nombre').value,'','clonar'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Clonar</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-return $resultado;
-}
-if($id_empresa =="") {
-	if(isset($_SESSION['id_empresa'])){$id_empresa= $_SESSION['id_empresa'];}
-	else {$id_empresa = "1";}
-}
-		$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 <strong>$nuevo_nombre</strong> en ese proyecto.";}
-	if( $formulario =="" or $nuevo_nombre ==""  ) { $error ="Asegúrese de que ningún campo esté vacío.";}
-	
-	if($error !="") {
-		$resultado ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-$link=Conectarse();	
-	mysqli_query("SET NAMES 'utf8'");
-	mysqli_real_escape_string($link,$nuevo_nombre);
-
-	if($descripcion =="") {
-	$descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
-	$descripcion =$descripcion[0];
-	}
-	$modificable = remplacetas('form_id','id',$formulario,'modificable','') ;
-	$publico = remplacetas('form_id','id',$formulario,'publico','') ;
-		/// establecer propietario para el nuevo form 
-		if(!isset($_SESSION['id_empresa'])){
-		$validar_email = verificacion_email("$_SESSION[nombre_usuario_milfs]",'','verificar');
-				}
-		if(isset($_SESSION[nombre_usuario_milfs]) AND $validar_email !="") {
-			$id_usuario = "$validar_email";		}
-		else {
-			$id_usuario = "$_SESSION[id]";
-		}
-	$consulta_insert = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`) 
-	VALUES ('$nuevo_nombre', '$descripcion', '1', '$modificable[0]', '$publico[0]', '$id_usuario','','$id_empresa')";
-
-$sql_insert=mysqli_query($consulta_insert,$link);
-$ultimo_id = mysqli_insert_id($link);
-
-
- 	$consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- 	$sql_grupo=mysqli_query($consulta_grupo,$link);
-
- 	
-//// CLONAR CAMPOS 	
-$consulta="SELECT * FROM form_contenido_campos WHERE id_form ='$formulario'";
-	$sql=mysqli_query($consulta,$link);  
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_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=mysqli_query($consulta_insertar_campos,$link);
-	}
-/// FIN DE CLONAR CAMPOS 
-/// CONAR PLANTILLAS
-$consulta_plantillas="SELECT * FROM form_parametrizacion WHERE tabla= 'form_id' AND campo ='$formulario'";
-	$sql=mysqli_query($consulta_plantillas,$link);  
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$control = md5(rand(1,99999999).microtime());
-				$values_plantilla .= "('$row[tabla]','$ultimo_id','$row[opcion]','".mysqli_real_escape_string($link,$row[descripcion])."','$row[visible]','$id_empresa'),";
-				}
-				$values_plantilla = substr($values_plantilla, 0, -1);
-				$values_plantilla = "(`tabla`,	`campo`, `opcion`, `descripcion`, `visible`,`id_empresa`) VALUES  $values_plantilla ";
-			}
-			
-	$consulta_insertar_plantilla = "INSERT INTO form_parametrizacion $values_plantilla "; 
-	$sql_insert_plantillas=mysqli_query($consulta_insertar_plantilla,$link);
-	}
-//// FIN DE CLONAR PLANTILLAS
-if($tipo=="aplicacion") {
-	$div="asistente_aplicacion";
-	$resultado ="
-	<div class='alert alert-success text-center'>
-		<h1><i class='glyphicon glyphicon-smile-o'></i>
-		<br>Felicidades tu aplicación 
-		<br>
-		<strong>'$nuevo_nombre'</strong>
-		<br>fue creada y ahora está disponible en  </h1>
-		<a style='word-wrap: break-word; ' target='aplicacion' href='$_SESSION[site]a$ultimo_id' >
-		<img src='https://qwerty.co/qr/?d=$_SESSION[site]a$ultimo_id'><br>$_SESSION[site]a$ultimo_id <i class='glyphicon glyphicon-external-link-square'></i>
-		</a>
-	
-	</div>";
-
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-}
-
-	$resultado ="<div class='alert alert-success'><h1>El formulario <strong>'$nuevo_nombre'</strong> se grabó  <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='glyphicon glyphicon-refresh'></i> Actualizar</a></h1></div>";
-	$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="
-<br>
-<legend>Estilos</legend>
-	<div id='div_css' class ='text-success'></div>
-	<div class='input-group'>
-		<span class='input-group-addon'>
-		CSS para tema bootstrap
-		</span>
-		<input placeholder='https://https://bootsw... ' value='$css[0]'  id='css_url'  name='css_url'  type='url' class='form-control'>
-		<span class='input-group-btn'>
-		<div class='btn btn-default btn-warning ' 
-			onclick=\"xajax_parametrizacion_linea('css','index','bootstrap',document.getElementById('css_url').value,'div_css'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-		</div>
-	</div>
-	<div class='input-group  col-md-12'>
-		<label for='css_adicional'>CSS adicional</label>
-		<textarea style='width:100%' id='css_adicional' name='css_adicional' class='form-control' placeholder ='Escriba css valido'>$css_adicional[0]</textarea>
-	</div>
-	<div class='input-group pull-right'>
-			<div class=' btn btn-default btn-warning ' 
-			onclick=\"xajax_parametrizacion_linea('css','index','adicional',document.getElementById('css_adicional').value,'div_css_adicional'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-		</div>
-	</div>
-		<pre style='max-height: 300px; overflow:auto ' id='div_css_adicional' class ='text-success'>/* HOJA DE ESTILOS CSS ACTUAL  */ 
-		$css_adicional[0]
-		</pre>
-
-";
-}	
-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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>	
-						 						<a href='I$row[campo]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded ' src ='milfs/images/secure/?file=300/$imagen[0]'>
-						 						</a>
-						 					</figure>
-						 					<span class='fh5co-meta'><a href='I$row[campo]'>$formulario_titulo[0] </a>
-							 					<span class=' fh5co-date'><i class='glyphicon glyphicon-eye-open'></i> $row[descripcion]</span>
-						 					</span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='I$row[campo]'>$titulo[0]</a></h4>
-											
-						 				</article> 
-						 				";		
-						 			}
-						 			$resultado = "
-						 				<legend class='text-center'>LO MAS VISTO</legend>
-						 					$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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>	
-						 						<a href='I$row[campo]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded' src ='milfs/images/secure/?file=300/$empresa_logo[0]'>
-						 						</a>
-						 					</figure>
-							 					<span class='fh5co-meta'><a href='a$row[campo]'>$formulario_titulo[0]</a>
-							 					<span class=' fh5co-date'><i class='glyphicon glyphicon-eye-open'></i> $row[descripcion]</span>
-						 					</span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='a$row[campo]'>$titulo[0]</a></h4>
-											
-						 				</article> 
-						 				";		
-		 			
-			 		}
-			 					$resultado = "
-						 				<legend class='text-center'>PROYECTOS MAS ACTIVOS</legend>
-						 					$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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>	
-						 						<a href='I$row[control]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded' src ='milfs/images/secure/?file=300/$imagen[0]'>
-						 						</a>
-						 					</figure>
-						 					<span class='fh5co-meta'><a href='I$row[control]'>$titulo_post[0] </a></span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='I$row[control]'>$row[nombre]</a></h4>
-						 				</article> 
-						 				";	
-						 			}
-						 			$resultado = "
-										<legend class='text-center'>$titulo</legend>
-						 					$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 .= "<!-- ($identificador','$row[form_id]','','simple','$row[timestamp]')  --> $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 ="
-						<table class='table table-condensed '>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a class='btn btn-success' onclick = \"xajax_formulario_embebido_ajax('$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre]</a> $row[descripcion] </td></tr>";
-
-}
-	$resultado .="</table>";	
-}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&registros=$registros&pagina=1&orden=$orden";
-					$href_2 = "$origen&registros=$registros&pagina=".($pagina-1)."&orden=$orden";
-				}
-				else {
-					$href_1= "#cabecera#";
-					$href_2= "#cabecera#";
-					 }
-
-           	 $link .= "<li><a href='$href_1' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a href='$href_2' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-            	
-        		if(isset($_REQUEST['registros'])) {
-					$href_3 = "$origen&registros=$registros&pagina=$x&orden=$orden";
-				}
-				else {
-					$href_3= "#cabecera#";
-					 }
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='$href_3'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='$href_3' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         {
-         	if(isset($_REQUEST['registros'])) {
-					$href_4 = "$origen&registros=$registros&pagina=".($pagina+1)."&orden=$orden";
-					$href_5 = "$origen&registros=$registros&pagina=$pages&orden=$orden";
-				}
-				else {
-					$href_4= "$href_4";
-					$href_5= "$href_5";
-					 }
-         	 $link .= "<li><a  href='$href_4'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a  href='$href_5'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = " 
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-			 <div class='text-center center-block'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>	
-				</ul>
-				     $paginacion
-			 </div>
-			</div>
-		</div> ";
-						
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<td >$listado_campos</td>";}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 .= "<br>$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 = "		<div class='btn btn-default btn-block ' onclick =\"xajax_formulario_embebido_ajax('$form','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </a></div>";
-	}
-$acciones="
-
-<div class='container-fluid'>
-	<div class='row'>
-		<div class='col-sm-2 col-md-2' >
-		</div>
-		<div class='col-sm-2 col-md-2' >
-		$agregar
-		</div>
-		<div class='col-sm-4 col-md-4' >
-		 $filtro 
-		 $filtro_drop
-		 
-		</div>
-		<div class='col-sm-4 col-md-4' >
-		 $buscador
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-		
-		$filtro_generico
-		</div>
-	</div>
-</div>
- 
-
-	<br>";
-}
-	$descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
-	//$descripcion_limpia = strip_tags($descripcion[0]);
-	$nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
-$resultado = "
-<a name='cabecera'></a>
-<h1><a href='b$id_form'>$nombre[0]</a></h1>
-<h2>$descripcion[0]</h2>
-$acciones 
-<div id='mostrar_resultado'>
-<!-- landingpage_contenido_identificador() -->
- $linea
- <!-- landingpage_contenido_identificador() -->
-$encabezado
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning alert_sin_resultados' ><h1 title=''>Aún no hay resultados</h1> $consulta_limite </div>";
-		if($tipo =="contenido" OR $tipo =="embebido" ) {
-			return $resultado; 
-		}
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
-	/*$datos = $resultado;
-	$div ="contenido_de_modal";
-	$resultado = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-		if($row['imagen'] !="") {
-	$logo="<img style= 'max-height:150px;max-width:400px;' class='img img-responsive img-rounded center-block' src='milfs/images/secure/?file=150/$row[imagen]'>";
-									}
-	 else {
-	 		  		$logo_empresa =  remplacetas('empresa','id',"1",'imagen','');
-	 		$logo="<img style= 'height:150px;' class='img img-responsive img-rounded center-block' src='milfs/images/sinimagen.jpg'>";
-	 }
-	// $slogan= substr($row[slogan],0, $length = 100)."";
-	$slogan = $row['slogan'];
-	$contenido ="
-
-	<article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-		<div style=' height:300px; overflow:auto;'  class='thumbnail'>	
-			<div style=' height:200px;'>		
-				<h4 class='fh5co-article-title text-center '>$row[razon_social]</h4>
-				<figure>
-				<a href='e$row[id_empresa]'>	$logo	</a>
-				</figure>
-				
-			</div>
-			<span class='fh5co-meta '><a class='text-center' href='e$row[id_empresa]'>$slogan</a></span>
-		</div>
-	</article>";     	
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-<legend class='text-center'>PROYECTOS</legend>
-			$encontrados
-
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";
-	}
-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 =" <a title='$titulo_anterior[0]' href='I$anterior[0]' class='fh5co-post-prev'><span><i class='icon-chevron-left'></i> $campo_orden[0] Anterior</span>
-			</a>";
-			}
-			if($siguiente[0] !='') {
-			$post_siguiente =" <a title='$titulo_siguiente[0]' href='I$siguiente[0]' class='fh5co-post-next'><span>Siguiente <i class='icon-chevron-right'></i></span>
-			</a>";	
-			}
-			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 ="<img class='img-responsive img-rounded ' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<figure class='animate-box'>
-				<a href='I$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-responsive img-rounded'>
-				</a>
-			</figure> $uri";
-					
-	}else {
-		$miniatura ="
-			<figure class='animate-box'>
-				<a href='I$identificador' >I$identificador</a>
-			</figure>
-			";
-		$mostrar_imagen = "
-		<figure class='animate-box'>
-			<img src='$qr' alt='$identificador' title='' style=''; class='img img-responsive img-rounded'>
-		</figure>";
-
-			
-
-		}
-
- //<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>
-	//$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 = "
-	<!-- Exportado desde Tupale.co  --> 
-		<!-- plantilla landingpage $identificador -->
-<span class='fh5co-meta animate-box'>$identificador_original </span>
-<a  name='control_$identificador'></a>
-    <div class='content-section-a '>
-
-        <div class='container-fluid'>
-        
-        			<div class='row rp-b'>
-
-						<div class='col-lg-12 col-md-12 cp-l animate-box text-left'>
-							$contenido 
-
-                   </div>
-					</div>
-
-			<div class='link-compartir text-center  animate-box '><a href='I$identificador' ><i class='glyphicon glyphicon-share-square'></i> Compartir </a></div>
-        </div>
-    
-    </div>		
-
-	<!-- plantilla landingpage --> 
-	
-	";
-	
-	}
-	 				if(!isset($_SESSION['id_empresa'])){
-	$edicion ="<a href='d$identificador' target='editar'><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>"; 
-//		$edicion ="<a class='btn btn-default btn-xs' onclick= \"xajax_formulario_embebido_ajax('$form','$identificador','edit') \"><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>";
-	}else {$edicion="";}
-$documento="<a href='opendata.php?tipo=documento&identificador=$identificador'>Generar documento</a>";
-	
- $linea = "
-$manejadores  
-		<div class='container-fluid'>
-			<div class='row fh5co-post-entry single-entry'>
-				<article class=' mostrar_identificador_full   col-xs-12 '>
-		 		 $documento
-		 			$impresion 
-					$edicion 
-		 			 <!-- formulario de respuesta -->
-			 			 <div class='center-block' style=''>
-				 			 <div class='container-fluid'>
-				 			 $respuestas
-				
-				 			 </div>
-			 			 </div>
-		 			 <!-- formulario de respuesta -->
-		 		
-		 		</article>
-	 		</div>
- 		</div>
- 		<hr>
- 					";
-
-	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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-	*/	
-		
-	//// 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 = "<a href='I$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}	
-	$resultado_linea="<div id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='glyphicon glyphicon-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='b$row[id]?registros=10'> Consultar <i class='glyphicon glyphicon-external-link-square'></i></a>";
-							$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 = "
-
-			<img alt='$row[nombre]' class=' imagen_presentacion img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x200.png?access_token=$mapbox_token' >
-			<br>";
-		/* 				$miniatura = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Ftupale.co%2Fmilfs%2Fimages%2Ficonos%2Fpin.png(-75.59825420379637,6.24539309025971,17)/-75.59825420379637,6.24539309025971,17/600x200.png?access_token=pk.eyJ1IjoiZmNhc3Ryb3QiLCJhIjoiY2lnOWw1bmd1MG93eXVsbTJpcmluYTBxdCJ9.yG7C1rEH6-MpZBEEb68IVg' >
-			";*/
-			
-			 }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='milfs/map.php?id=$row[id]' target='mapa'>$miniatura Ver mapa</a>";}else {$mapa='';}
-		$descripcion_limpia = strip_tags($row['descripcion']);
-		if($imagen !="") {
-	$imagen ="
-	
-							<figure>
-							<a href='b$row[id]?registros=10'>
-								<img style='max-height:170px; ' class='img img-rounded img-responsive' src='milfs/images/secure/?file=300/$imagen' alt='$row[nombre]'>
-								<!-- <figcaption class='articulo_caption' >$row[nombre]</figcaption> -->
-							</a>
-							</figure>
-							";
-}
-	$contenido ="   	
-		<h2  class='text-center titulo_formulario section-heading'><a href='b$row[id]?registros=10'>$row[nombre] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-		$imagen
-      <p class='descripcion_formulario text-left'>$descripcion_limpia </p>";	
-			
-//			if ( $fila%2==0){
-	$linea .= "
-			
-			<div style='  '  class='  articulo_cuadro col-md-4'  id='b_articulo_formulario_$row[id]'>
-				<div style='height:500px; overflow-y:auto; overflow-x:hidden; padding:10px;' class=' thumbnail '  id='b_articulo_formulario_$row[id]'>
-				<a  name='formulario_$row[id]'></a>
-					<div class='row rp-b '>
-
-						<div class='articulo_contenido  col-md-12 animate-box'>
-
-							<p>$contenido</p>
-						</div>
-
-					</div>
-					<div class='row'>
-						<div class='col-md-12 animate-box'>
-						$mapa
-						</div>
-					</div>
-				</div>
-			</div>
-				
-			";
-/*			
-			}else{
-	$linea .= "
-			<a  name='formulario_$row[id]'></a>
-				<div  class='articulo_cuadro col-md-12' id='a_articulo_formulario_$row[id]'>
-					<div class='row rp-b'>
-						<div class='col-lg-4 col-md-12 animate-box'>
-							<br>
-							<figure>
-								<a href='b$row[id]?registros=10'>
-								$imagen
-								</a>
-								<figcaption>$row[nombre]</figcaption>
-							</figure>
-							$link
-						</div>
-						<div class='col-lg-8 col-md-12 cp-l animate-box'>
-							<p>$contenido</p>
-						</div>
-					</div>
-					<div class='row'>
-						<div class='col-md-12 animate-box'>
-						$mapa
-						</div>
-					</div>
-				</div>
-				<div class='clearfix visible-lg-block visible-md-block visible-sm-block visible-xs-block  animate-box'><hr></div>
-			";
-		}
-	*/		
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$fila++;
-		}
-	}
-	$linea ="
-	<div class='container-fluid' id='contenedor_landingpage '>
-		
-		$linea
-	</div>	
-	";
-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 ="<h1><i class='glyphicon glyphicon-spinner '></i> $mensaje Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \" xajax_campos_tabla(this.value,'div_tabla_campos','$limite',''); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>No usados </option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	$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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='glyphicon glyphicon-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='glyphicon glyphicon-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<legend> 
-		<a onclick = \" xajax_campos_tabla('$filtro','div_tabla_campos','$limite','$anterior'); \"><<< ANTERIORES</a>
-		Mostrando $cantidad_mostrada de  $cantidad_total
-		<a onclick = \" xajax_campos_tabla('$filtro','div_tabla_campos','$limite','$fin'); \">SIGUIENTES >>></a>
-		</legend>
-	
-		
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='glyphicon glyphicon-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='glyphicon glyphicon-object-group'></i></th><th><i title='Estado' class='glyphicon glyphicon-eye-open'></i></th><th><i title='Empresa' class='glyphicon glyphicon-hospital-o'></i></th><th><i title='Propietario' class='glyphicon glyphicon-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='glyphicon glyphicon-remove-sign'></i></a>
-		<strong class='text-danger center'><i class='glyphicon glyphicon-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='glyphicon glyphicon-remove-sign'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='glyphicon glyphicon-cog'></i><i class='glyphicon glyphicon-cog'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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="<div id='dominio_$row[id]'><a class='btn btn-danger btn-sm' onclick=\"xajax_configurar_dominio($row[id],'eliminar'); \">DESconfigurar</a></div> ";		
-		}
-	else{
-			$configuracion_dominio="<div id='dominio_$row[id]'><a class='btn btn-warning btn-sm' onclick=\"xajax_configurar_dominio($row[id],'crear'); \">Configurar</a></div> ";
-			}
-	$acciones = "<a href='#' onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i> </a> Estado: $estado 
-	
-	$configuracion_dominio";
-	
-	}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='glyphicon glyphicon-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='glyphicon glyphicon-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='glyphicon glyphicon-trash'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='glyphicon glyphicon-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysqli_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-		
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='https://".$web[0]."/milfs/images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='https://".$web[0]."/milfs/images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";	
-			}
-		else {
-@$listado_campos .= "<td title='$tipo_campo[0]' >$contenido[0]</td>";
-}
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 
-	 $areas = resumen_identificador("$row[control]",'','','boton');
-	 $acceso = generar_acceso($row[control],"","");
-	 	if($resaltado[0] =="$row[control]") {$iresaltar =" <span class='badge'>Resaltado</span>"; $alert="info";}
-	 	else {
-	 		$iresaltar = "<div class='btn btn-default btn-xs ' 
-	 			onclick=\"xajax_parametrizacion_linea('index','resaltado','resaltado','$row[control]','resultado_resaltado'); \" title='Si se marca este item se mostrará en la portada'> Resaltar</div>
-	 			<div id='resultado_resaltado'> </div>";
-	 		$alert="";
-	 		
-	 		}
-	 	
-	 	$menu ="<td  class='actions $alert ' >
-
-							
-							<div class='container-fluid'>
-								<div class='row'>
-									<div class='col-md-12'>
-									<a class='btn btn-default  btn-xs' target='form' href='../I$row[control]'><i class='glyphicon glyphicon-eye-open'></i> Plantilla</a>
-									</div>
-									<div class='col-md-12' >
-									$areas
-									<div id='areas_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-										<a title='Editar' class='btn btn-default btn-xs' onclick=\"xajax_formulario_embebido_ajax('$row[form_id]','$row[control]','edit'); \"><i class='glyphicon glyphicon-pencil'></i> E</a>
-										<a title='Borrar' class='btn btn-default  btn-xs' onclick=\"xajax_eliminar_identificador('$row[control]',''); \" href='#'><i class='glyphicon glyphicon-trash'></i> B</a>
-										<a title='Clonar' class='btn btn-default  btn-xs' onclick=\"xajax_clonar_identificador('$row[control]',''); \" href='#'><i class='glyphicon glyphicon-clone'></i> C</a>
-										<div id='eliminar_$row[control]'></div>
-										<div id='clonar_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12' >
-									$acceso
-									<div id='areas_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-									$imagen 
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-									$iresaltar
-									</div>
-								</div >
-								
-							</div>
-		
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> </div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='glyphicon glyphicon-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>	
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-				
-				<div class='input-group class='has-error''>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-					<small class='text-danger'> *Campo obligatorio</small>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion','',''); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>	
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-				
-				<div class='input-group class='has-error''>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-					<small class='text-danger'> *Campo obligatorio</small>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='glyphicon glyphicon-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$control'>$_SESSION[site]I$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='glyphicon glyphicon-remove-sign'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion_limpia[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='glyphicon glyphicon-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Campos especiales</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><a href='?id=$perfil&buscar=$categoria_campo:$contenido'><img style=' height:50px;' class='' src='$icono' style=''></a><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='glyphicon glyphicon-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 </ul>
-</div>
-";
-}
-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 ="<i class='glyphicon glyphicon-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 </ul>
-</div>
-";
-}
-	$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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='glyphicon glyphicon-eye-open'></i></a> Editar</td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='glyphicon glyphicon-plus-sign'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='glyphicon glyphicon-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='glyphicon glyphicon-plus-sign'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='glyphicon glyphicon-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='glyphicon glyphicon-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
- 			<div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div> 
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='wysiwyg form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				<div id='div_campos'>
-					<div class='btn btn-default btn-xs' onclick=\"xajax_parametrizacion_plantilla_campos_inteligentes('$formulario'); \" >Campos inteligentes</div>
-					$campos
-				</div>
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='glyphicon glyphicon-floppy-disk'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='glyphicon glyphicon-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='glyphicon glyphicon-remove-sign'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-		
-$resultado = "	
-	<legend>Campos especiales</legend>
-	<ul>
-	<li>Campo de <b>Título</b> actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></li>
-	<li>Campo de <b>Orden</b> actual<strong> $campo_orden_nombre[0] [$campo_orden[0]]</strong> <small> (Este campo debe ser del tipo numérico)</small></li>
-	</ul>
-
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione campo</span>		 
-
-		 <select class='form-control' id='seleccion_campo' name='seleccion_campo'  onchange=\"\">
-		 <option value=''>Borrar el valor actual</option>
-		 $listado
-		 </select>
-	</div>
-		<br>
-			<div class=' btn btn-success  ' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','titulo',document.getElementById('seleccion_campo').value,'div_seleccion_titulo'); \">
-			<i class='glyphicon glyphicon-floppy-disk'></i>
-			Usar como Título
-			</div>
-			<div class=' btn btn-success  ' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','orden',document.getElementById('seleccion_campo').value,'div_seleccion_titulo'); \">
-			<i class='glyphicon glyphicon-floppy-disk'></i>
-			Usar como Orden
-			</div>
-			
-		
-<div id='div_seleccion_titulo'></div>
-	
-	
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-			$resultado
-			</div>";
-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]'
-	//<li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li> 
-	$estadisticas = formulario_estadistica("$formulario","$row[id_campo]","contenido","barras");
-$listado .= "<tr> <td>$row[id_campo]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td>$estadisticas</td></tr>";
-}
-$resultado = "	
-
-		 
-
-		
-		<table class='table table-condensed  table-striped table-bordered table-hover'> 
-		<tr> <th>Id</th><th>Nombre campo</th><th>Descripcion</th></tr>
-		$listado
-		</table>
-		 
-		
-";
-}
-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 .= "<li class='list-group-item'><a href='?id=$row[id]' title=''>$nombre</a></li>";
-}
-$resultado = "	
-
-
-		 <ul class='list-group'>
-		 $listado
-		 </ul>
-";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
-	$datos_form="";
-	$edicion="";
-	$resultado="";
-	$tipo="$tipo";
-	if($form != "") {$id_form = "$form";
-	
-		$datos_form ="	
-			<h2>$nombre[0]</h2>
-			<legend>$descripcion[0]</legend> 
-			";
-					
-	}else {$id_form ="";}
-
-		$impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp); 
-		if($impresion !="") {
-			$visitas= contar_visitas($control,'identificador') ;
-			$visitas= "<small><i class='glyphicon glyphicon-eye-open'></i> $visitas</small>";
-		//$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		//$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		$interaccion = interaccion_identificador("$control",'');
-		if($tipo=="") {
-		$resultado = "
-
-
-<div   id ='mostrar_identificador_$control' class='mostrar_identificador row rp-b'>
-		<div  >
-			$visitas
-				$datos_form
-				<!-- formulario_imprimir() -->
-
-								$impresion
-
-				<!-- formulario_imprimir() -->
-
-			
-		</div>
-
-		</div>
-				$interaccion
-				$edicion
-
-		"; }else {
-$resultado = "$impresion";
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning alert_sin_resultados'><h1>No hay resultados</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='glyphicon glyphicon-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='glyphicon glyphicon-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='glyphicon glyphicon-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 ="
-<div style='text-align: center;'>
-
-<h2>Código de validación</h2>
-<H1>$rrn</H1>
-<h3>Por favor escribe este código en el campo correspondiente</h3>
-</div>
-
-			";
-		$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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $dato</h2>";
-$resultado="
-<div class='form-group has-error' id='codigo_confirmacion'>
-		<span class='help-block'>Escribe el código de confirmación que enviamos a tu correo. </span>
-			<div class='input-group'  id=''>
-				<span class='input-group-addon'>
-					<i class='glyphicon glyphicon-key'></i>
-				</span>
-				<input type='hidden' id='rrn' name='rrn' value='$rrncode'>
-				
-				<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'>
-				<span class='input-group-btn'>
-				<div onclick=\"xajax_verificacion_email('$control_usuario',xajax.getFormValues('formulario_verificacion_email'),'confirmar');\"  class='btn btn-danger'>Comprobar</div>
-				</span> 
-			</div>
-		
-</div>
-";				 
-				  }
-			else {$resultado .="<span class='text-danger'><i class='glyphicon glyphicon-meh-o'></i> Error enviando correo</span>";}		
-
-$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="<div class='alert alert-danger'>El codigo no es valido, inténtalo de nuevo</div>";
-		}
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-else {}
-
-	if($validado[0] != md5("$email[0]")) { 
-		$verificar_email = "
-		<div class='alert alert-success'>
-			<h2><i class='glyphicon glyphicon-smile-o'></i> Vamos a validar tu email </h2>
-			<p>Enviaremos un código de verificación a para validarlo.</p>
-			<form role='form' id='formulario_verificacion_email'> 
-				<div class='input-group has-success'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope'></i>
-					</span>
-						<input type='hidden' id='control' name='control' value='$usuario[0]'>
-						<input type='email' class='form-control ' id='enviar_email' name='enviar_email' value='$email[0]'>
-					<span class='input-group-btn'>
-						<div onclick=\"xajax_verificacion_email('$control_usuario',document.getElementById('enviar_email').value,'enviar');\" class='btn btn-success'>Enviar código</div>
-					</span>
-				</div>
-			<div id='$div'></div>
-			
-			</form>
-		</div>
-		
-		";
-		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 = "
-				<h2>
-					<img style='width:40px;' class='img img-circle' src='$avatar'> Hola $_SESSION[nombre_usuario_milfs] 
-				</h2> $validar_email
-				<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='glyphicon glyphicon-log-out'></i> SALIR </a>
-				
-				";
-				return $formulario;
-			}else {
-				
-				if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
-			$social_login="";
-			$cols="12";
-				}
-				else {
-					$cols="10";
-			$social_login="
-				<div class='col-md-2'>
-				<legend>
-				Ingresa con:
-				</legend>
-					<div class='list-group'>
-						<a class=' list-group-item btn btn-default ' href='sociallogin.php?provider=twitter'>Twitter <i class='glyphicon glyphicon-twitter'></i></a>
-						<a class=' list-group-item btn btn-default ' href='sociallogin.php?provider=facebook'>Facebook <i class='glyphicon glyphicon-facebook'></i></a>
-					</div>
-				</div>
-			
-			";	
-			//return $formulario;
-				}
-			$formulario ="
-			$accion
-			<div class='row' id='formulario_session'>
-				<div class='col-md-$cols'>
-					<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-						<div class='form-group>
-							<label for='usuario'>Usuario </label>
-								<input type='text' id='usuario' name='usuario' class='form-control'>
-						</div>
-						<div class='form-group>
-							<label for='password'>Clave </label>
-								<input type='password' id='password' name='password' class='form-control'>
-						</div>
-						<br>
-						<div class='row'>
-							<div class='col-sm-4'>
-								<div class='btn  btn-default ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar</div>
-							</div>
-							<div class='col-sm-4'>
-								<div class='btn  btn-default  ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-							</div>
-							<div class='col-sm-4'>
-							<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-							</div>
-						</div>
-					</form>
-				</div>
-			$social_login
-				<div id='resultado'></div>
-			</div>
-				
-			
-			";
-			$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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador código </div>";
-					$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-					return $respuesta;
-				
-				}
-		$campos = formulario_areas($form_id,'campos');
-		
-		$boton ="
-		<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-		onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-		Registrarse</button>
-		";
-		$control = md5(rand(1,99999999).microtime());
-			$formulario ="
-		<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-		<input type='hidden' value='$control' id='control' name='control'>
-		$campos
-		$boton
-		</form>
-			<div id='resultado'></div>
-		";
-			
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-			
-			if($datos =="") {
-			//$campos = formulario_areas($form_id,'campos');
-			$campos ="
-			
-			<div class='form-group>
-			<label for='usuario'>Usuario</label>
-			<input type='text' id='usuario' name='usuario' class='form-control'>
-			</div>
-			<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-			<input type='text' id='codigo' name='codigo' class='form-control'>
-			</div>
-			";
-			$boton ="
-			<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-			";
-			$control = md5(rand(1,99999999).microtime());
-			$formulario ="
-			<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-			<input type='hidden' value='$control' id='control' name='control'>
-			$campos
-			<br>
-			$boton
-			
-			</form>
-			<div id='resultado'></div>
-			";
-			}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 ="
-			<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-			<div class='row'>
-			<div class='form-group col-md-6'>
-			<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-			</div>
-			</div>
-			<div class='col-md-6 form-group'>
-			<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-			</div>
-			</div>
-			</div>
-			<div class='row'>
-			<div class='col-md-12'>
-			<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-			</div> 
-			</form>
-			
-			";
-			
-			$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 ="
-			<h1>Hola $datos[usuario]</h1>
-			El código para recuperar tu contraseña es:
-			<h2>$password[0]</h2>
-			Regresa pronto :-)
-			
-			";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-			
-			}else{
-			
-			$formulario="<div class='alert alert-warning'><h1>No encontramos tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-			
-			}
-			
-			
-			}
-			$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-			$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 ="<div class='alert alert-success'><h1>Gracias por regresar $_SESSION[nombre_usuario_milfs] <i class='glyphicon glyphicon-smile-o'></i></h1></div>  ";
-			$respuesta->addScript("javascript:location.reload(true);");
-			}else {$resultado ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-			$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-					
-						
-						}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-					}else {	}
-					
-														}
-				require ("milfs/includes/parametrizacion.php");
-				$insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","");	
-			$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-			$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 = "
-				<h2>
-					<img style='width:40px;' class='img img-circle' src='$avatar'> Hola $_SESSION[nombre_usuario_milfs] 
-				</h2> $validar_email
-				<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='glyphicon glyphicon-log-out'></i> SALIR </a>
-				
-				";
-				
-			}else{
-	      $formulario ="
-	      <div class=' btn btn-default btn-xs' onclick=\"xajax_milfs_session('$login_formulario','$login_campo_usuario','$login_campo_password','','');\">Login</div>
-	       ";   
-	    }         
-	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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$respuesta->addAssign("$div","innerHTML",$alerta);
-			return $respuesta;
-}
-	if (is_array($valores) ){
-	$valor = $valores['valor'];
-									}
-	else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<span class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"> Buscar</div>
-				</span>
-			</div>
-
-
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style='' class='alert alert-info'>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$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 ="<div class='col-sm-$cols thumbnail' style=''  ><div class=''> $datos</div></div>";     	
-
-	$encontrados .="$contenido  ";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<h2>Resultados de: $valor</h2>
-<div class=''>$encontrados </div>  ";						
-
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	
-	<div class=''  >
-		<div class='row'>
-			<div class='col-md-3'>	
-				
-				<img class='img img-responsive' src='$_SESSION[site]/milfs/images/secure/?file=150/$logo[0]'>
-			</div>
-			<div class='col-md-9'>
-			<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-			</div>
-		</div>
-	</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-			
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>".$campo_imagen_nombre."</label>
-				<div class='col-lg-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	";
-	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 .= "
-<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'>
-<legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class=''>
-				<span class=' checkbox'>
-					<label>
-					<input class='text-success' type = 'checkbox' id ='continuar' name='continuar' value='1'> Continuar editando
-					</label>
-				</span>
-	</div>
-	<div class='row'>
-		<div class='col-xs-6'>
-
-			<div calss='input-group'>
-				
-				<span class='input-group-btn'>
-					<div  onclick=\"  xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-				</span>
-			</div>
-		</div>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='milfs/?psi' target='_psi'><i class='glyphicon glyphicon-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form 
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='glyphicon glyphicon-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='glyphicon glyphicon-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='glyphicon glyphicon-file'></i> <strong>$cantidad</strong> archivos, <i class='glyphicon glyphicon-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='glyphicon glyphicon-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[site]i$valor' target='referencia'>Ver referencia</a> ";
-}
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados  </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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.= "<a class='list-group-item btn-link' onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> ";
-
-															}
-
-$resultado .= "
-			<ul class='  list-group' style='max-height:300px; overflow:auto;' >
-			$lista
-			</ul>
-		<div id='$div' ></div>
-		<div class='text-$alert'>$aviso</div> ";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "<div class='text-warning text-center' title='NO tiene permiso para agregar datos esta aplicación'><p> <i class='glyphicon glyphicon-key'></i></p></div>";
-		//$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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-    /*  background-image: url(milfs/images/iron.jpg); */
-			</style>
-<!-- <div style='width;100%; min-height:900px; padding: 0.3%; background-attachment:fixed; background-color: gray ;'> -->
-<div style=''>
-	<div class='container-fluid' style=' border-radius:3px;  box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='glyphicon glyphicon-eye-open'></i> $visitas</small></h4>
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 = "  <div class='alert alert-danger'><h1>NO tiene permiso para usar este formulario <i class='glyphicon glyphicon-key'></i></h1>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small> // $_SESSION[id] != $propietario[0] //</h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white;  overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='glyphicon glyphicon-eye-open'></i> $visitas</small></h4>
-			
-			<!-- formulario_areas -->
-			$impresion 
-				
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-			
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='https://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	if($id_empresa !=''){
-			$onclick ="";	
-						$accion = " href='./s$row[id_formulario]' ";
-		 }else {
-		 	$onclick ="";	
-			$accion = " href='./e$row[id_empresa]' ";
-			}
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='glyphicon glyphicon-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i > 0 AND $divider > 0 ) {
-				if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			}
-			$i++;
-	$descripcion_corta = substr($row['descripcion'],0, $length = 100);
-		$geo = buscar_campo_tipo($row['id'],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='glyphicon glyphicon-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row['nombre'];
-
-if($row['nombre'] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#$accion' onclick=\" $onclick \" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row['nombre'] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-/*$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' 
-							$accion   class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-							*/
-$resultado_nav .= "<li class='dropdown'  >
-							<a class=''  role='button' 
-							$accion   class='dropdown-toggle' > $nombre </a>
-							$contenido_listado
-							";
-							
-						}
-
-$resultado_nav .="</li>";
-
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","","");
-if($row['nombre'] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row['id'],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row['id'],"$campo_imagen[0]");
-if(@$imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-		if($divider > 0 ) {
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-		}
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-			if($tipo =="sitemap") {
-$contenido_listado = contenido_listado("$row[id]");
-}
-															}
-if($tipo =="sitemap") {
-$resultado = "$resultado $contenido_listado";
-}
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-	$resultado="";
-	
-$link=Conectarse(); 
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = mysqli_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysqli_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysqli_query($consulta,$link);
-//if (mysqli_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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 formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado[0]=mysqli_result($sql,0,"timestamp");
-		$resultado[1]=mysqli_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysqli_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='images/secure/?file=150/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if (  $_SESSION['grupo'] != 1  ) {	return;}
-	$div='contenido';
-	
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='glyphicon glyphicon-cog'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='glyphicon glyphicon-plus'></i> <i class='glyphicon glyphicon-user'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='glyphicon glyphicon-cog'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysqli_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		//$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_web =  remplacetas('empresa','id',"$_SESSION[id_empresa]",'web','');
-		$empresa_web =  "<strong>$empresa_web[0]</strong> (Para editar este campo comuníquese con el soporte de técnico )";
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=300/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		$parametrizacion_css = parametrizacion_css("","","");
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar logo</div><br>";	
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-		$usuarios_autorizados = autorizar_usuarios('','','');
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; width: 200px; height:200px;
-					
-					'><a href='#logo'>Cambiar logo</a>
-					
-
-
-				</div>
-				$usuarios_autorizados
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos del proyecto</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</h2>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-				
-				$parametrizacion_css
-
-						<div style='' id='logo' >
-						<legend>Cambiar logo</legend>
-						
-								$subir_imagen
-								
-						</div>
-						<hr>
-				<div class='container alert alert-warning'>
-				
-				$parametrizacion
-				</div>
-			
-					";
-
-	$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","");
-	return $respuesta;
-}
-else {
-		$respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
-	$respuesta->addAssign("formUpload","innerHTML","");
-	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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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;
-	$valor = str_replace('"',"'", $valor);
-	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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','cerrar','$div','$indice'); \">
-				<i class=' glyphicon glyphicon-remove-sign'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='glyphicon glyphicon-floppy-disk'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-	
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' glyphicon glyphicon-remove-sign'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='glyphicon glyphicon-floppy-disk'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-	//$respuesta->addScript("(document.getElementById('".$campo."_".$id."".$rrn."').focus())");
-		}
-								}
-elseif($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysqli_real_escape_string($link,$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= $campo."_".rand(123,9999);
-  if($valor =="") {$aviso="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='glyphicon glyphicon-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	else {$campo = "";}
-		
-		return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo,$timestamp) {
-
-	  			if(strlen($control) > 32) {
-					$identificador_original= $control;
-					$key =  substr($control, 32, $length = 40);
-					$control =  substr($control, 0, $length = 32);
-				} else {$identificador_original = $control;}
-				
-$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','') ;
-		$id_seguridad = $id_seguridad[0];
-		
-	}else{
-		$publico = remplacetas('form_id','id',$id,'publico','') ;
-		$id_seguridad = $id;
-	}
-		$empresa_seguridad = remplacetas('form_id','id',$id_seguridad,'id_empresa','') ;
-		if($publico[0] != "1" ){
-		$permiso_actual = 	remplacetas('form_permisos','control',"$control",'permiso',"") ;
-		$permiso_vencimiento = 	remplacetas('form_permisos','control',"$control",'vencimiento',"") ;
-		if($permiso_actual[0] =="") {$sigue_restringido = 1;}
-		elseif($permiso_actual[0] != $key) {$sigue_restringido = 1;}
-		elseif($permiso_vencimiento[0] < time()) {$sigue_restringido = 1;}
-		else{$sigue_restringido ="";}
-		
-		}
-		
-		if($publico[0] != "1" and ( $_SESSION['id_empresa'] != $empresa_seguridad[0] ) AND $sigue_restringido !="" ) {
-		$resultado ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados </small> 
-		<i class='glyphicon glyphicon-lock'></i></h1></div>";
-		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",'',"$timestamp");
-		$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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]images/secure/?file=600/$contenido'>
-									<a href='milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='glyphicon glyphicon-search-plus'></i></a>
-									";
-				$laimagen = $contenido;
-									 }else{$contenido=""; $laimagen="";}}
-				elseif($campo_tipo =='15' ){if($contenido !=""){
-				$imagen = "<img class='img img-responsive'  src='$_SESSION[url]images/secure/?file=600/$contenido'>
-									
-									";
-				$laimagen = $imagen;
-									 }else{$imagen=""; $laimagen="";}}
-										
-		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/pin.png");
-			$contenido = "
-
-			<img class=' img img-round img-responsive'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x150.png?access_token=$mapbox_token' >
-			<a target='mapa' href='https://www.openstreetmap.org/?mlat=$lon&mlon=$lat#map=$zoom/$lon/$lat&layers=C'>Ver mapa</a>
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-
-		<iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe>";
-							}else {
-			//			$contenido =$contenido;
-			$contenido = trim($contenido); 
-			$contenido = "
-
-		<iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe>";
-					}
-				}
-
-
-		else {
-	$html ="$contenido";
-	$contenido = nl2br($html);
-	//$contenido = Markdown($contenido);
-	$contenido=  html_entity_decode($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']] = trim(strip_tags($contenido));
-	$campo_limpio_80[$row['id_campo']] = 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/pin.png");
-								$icon = "$_SESSION[site]milfs/images/iconos/pin.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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 data-toc-skip class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado ="$full";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-<!-- $javascript // $path // $id // $respuesta // $_SESSION[path_images_secure] // -->
-<form method='post' class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" /> 
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div> 
-</form>
-";
-return $resultado;
- 
-}
-
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='glyphicon glyphicon-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-  
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 .= "<td  >$columna  $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='glyphicon glyphicon-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='glyphicon glyphicon-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-				
-				else{$verificar_campo_aviso =""; $class='success';}
-				
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='glyphicon glyphicon-trash'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' style='width:100%' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='https://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='glyphicon glyphicon-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger alert_sin_resultados'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='glyphicon glyphicon-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='glyphicon glyphicon-trash'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='glyphicon glyphicon-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='glyphicon glyphicon-eye-open'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='glyphicon glyphicon-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='glyphicon glyphicon-pencil'></i> Edit</a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger alert_sin_resultados'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row['id_campo'] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='glyphicon glyphicon-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."]</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='glyphicon glyphicon-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_formulario_crear_campo('$area','','$div'); \"><i class='glyphicon glyphicon-plus-sign'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysqli_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='glyphicon glyphicon-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='glyphicon glyphicon-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md hidden-sx'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' >
-							Obligatorio<br>
-							<div class='input-group '>
-							
-								<span class='input-group-addon'>0</span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'>1</span>
-							</div>
-							
-								Privacidad<br>
-							<div class='input-group '>
-									<span class='input-group-addon'>0</span>
-									<input class='form-control' type='range' value='$privado' min='0' max='1' name='privado_$row[control]' id='privado_$row[control]'
-									onchange =\"xajax_campo_privacidad(this.value,'$row[id_campo]','$id_formulario','grabar')\">
-									<span class='input-group-addon alert-success' title='el contenido de este campo no se mostrará'>1</span>
-								
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='glyphicon glyphicon-trash'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div><hr>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='glyphicon glyphicon-plus-sign'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='glyphicon glyphicon-exclamation-triangle'></i> 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="<i class='glyphicon glyphicon-exclamation-triangle'></i> 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 = "<i class='glyphicon glyphicon-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='glyphicon glyphicon-plus-sign-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='glyphicon glyphicon-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Administración de Formularios</legend>";
-	 unset($_SESSION['grupo_formularios']);
-	 }
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div'); \"><i class='glyphicon glyphicon-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
- $clonar = clonar_formulario($formulario,$id_empresa,"","","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='glyphicon glyphicon-plus-sign-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='milfs/map.php?id=$id' target='mapa'><i class='glyphicon glyphicon-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default btn-warning' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='glyphicon glyphicon-upload'></i> Importar (Experimental)</a>
-								 			<a class='btn btn-default ' href='../g$id' target='formulario'><i class='glyphicon glyphicon-floppy-disk'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='glyphicon glyphicon-floppy-disk'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-								    		<a class='btn btn-default btn-default collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		<i class='glyphicon glyphicon-edit'></i> Editar
-								    		</a>
-												<h4>$nombre_formulario[0]</h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='glyphicon glyphicon-trash'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='glyphicon glyphicon-floppy-disk'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-			<div class='panel-group' id='accordion_accion_formulario' role='tablist' aria-multiselectable='true'>
-				$clonar
-				$mover
-				<div id='panel_administrar' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_administrar' >
-					<div class='panel-heading'>
-						<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_administrador' aria-expanded='false' aria-controls='collapseExample'>
-							<i class='glyphicon glyphicon-bars'></i> Administrar 
-						</a> 
-						<span class='panel-title'> Administración de formularios</span>
-					</div>
-					<div class='panel-body collapse' id='panel_administrador'>
-<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-						$item
-						</div>
-					</div>
-				</div>
-			</div>
-		
-		";
-/*
-								
-		*/
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='glyphicon glyphicon-trash'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='glyphicon glyphicon-trash'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">".($item+1)."
-		<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'rango'){
-					$rango = rango("form_campos_valores","campo_valor","id_form_campo","$id_campo","$value","".$id_campo."[".$item."]",""); $render = "$rango <small>$campo_descripcion</small> ";}		
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='glyphicon glyphicon-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "	
-
-							
-							<textarea class=' form-control'  cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]'  placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-							
-			   	<div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-					<!-- <div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"save_$clase_item()\">Cerrar</div> -->
-					<textarea  class='wysiwyg form-control $clase_item '  form-control ' cols='50'  rows='5' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >$value</textarea>
-					
-					<script type='text/javascript'>
-						    
-						/*		
-									//// wysiwyg
-									var edit_$clase_item = function() {
-									  $('.$clase_item').summernote({height: 250, codemirror: { theme: 'default' }});
-									};
-									
-									var save_$clase_item = function() {
-									  var makrup = $('.$clase_item').summernote('code');
-									  $('.$clase_item').summernote('destroy');
-									};
-					*/
-									/*
-									$(document).ready(function() {
-									  $('.$clase_item').summernote();
-									});
-							*/
-					</script>
-					
-					";
-			$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 /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea class='form-control '  onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >$value</textarea>";
-			$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 <small>$campo_descripcion</small> "; $cols='12';	 }
-		elseif($campo_tipo_accion == 'radio'){
-			$select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "$select <small>$campo_descripcion</small> ";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 <small>$campo_descripcion</small> ";}
-		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 <small>$campo_descripcion</small>";
-			$cols='12';	}
-		elseif($campo_tipo_accion == 'relacion'){
-			$select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
-			$render = "$select  <small>$campo_descripcion</small>";
-			$cols='12';	}
-		elseif($campo_tipo_accion == 'buscador'){
-			$select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
-			$render = "$select <small>$campo_descripcion</small> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";
-			$cols='12';															
-															}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $control != "") {
-				$render="";$label=""; $campo_tipo_accion="oculto";
-			}else {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div class='col-md-12' id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='laber_formulario' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' laber_formulario sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		$campo_descripcion="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label 
-				<div class='col-md-12'  data-toggle='tooltip' data-placement='top' title='$campo_descripcion'>
-				$render 
-				<small></small> 
-				</div>
-			</div>
-			
-		</div>
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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("<p><br></p>", "", $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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";
-			}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-$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 ="
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 Gracias por aportar  $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$formulario[control]'>$_SESSION[site]I$formulario[control]</a></p>
-<p>
-<strong>Descargo de responsabilidades</strong>
-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: <a href='milfs/?psi' target='_psi'> Políticas de privacidad y protección de datos.</a>
-</p>";
-			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 ="
-	
-			<div class='alert alert-success text-center'><h1><i class='glyphicon glyphicon-smile-o'></i><small> Todo bien pero al parecer no se modicaron registros </small></h1></div>";
-		$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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-	
-	
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='https://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='?form=$id'><i class='glyphicon glyphicon-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-			
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados </div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-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 .= "<option value='$row[campo_valor]' $selected > $row[campo_valor] </option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = "<h1 class='text-center'><a href='../'>Continuar... </a></h1>";//  	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 = "
-			<li>
-				<a title='agregar usuarios' class='btn link' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\">
-				<i class='glyphicon glyphicon-user'></i> Gestión de usuarios</a>
-			</li>";	
-	$menu = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-			$usuarios
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-   }
-    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 ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'confirmar')\">Grabar </div>";
-$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","<br><br>$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 ="<div class='alert alert-danger'>Por favor escribe  una clave. $formulario[password_express_confirmar] // $formulario[password_express]</div> $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 ="<div class='alert alert-danger'>Por favor escribe y confirma una clave. $formulario[password_express_confirmar] // $formulario[password_express]</div> $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 <div class='alert alert-danger'>No hay un email válido //  $formulario[email_express_confirmar] </div>";
-		$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 ="
-<div style='border: solid 1px; padding:20px ; border-radius: 10px; background-color:#E6F8E0 '>
-<h1>Registro</h1>
-
-<hr />
-<h3>Código de validación</h3>
-<p>Bienvenido a nuestra aplicación.  Por favor digita el siguente código para validar tu cuenta.</p>
-<H1>$rrn</H1>
-
-
-</div>
-		$aviso
-			";
-
-mail("$email_envio","$asunto","$cuerpo","$headers") ;
-			$boton ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'validar');\">Confirmar</div>";
-			$control = MD5(mktime().$rrncode);
-	$resultado .="
-		<div class='row'>
-			<div class='col-sm-2'>
-			</div>
-			<div class='col-sm-8'>
-				<div class='form-group has-error' id='codigo_confirmacion'>
-				<span class='help-block'>Escribe el código de confirmación <strong>$rrn</strong></span>
-					<div class='input-group'  id=''>
-						<span class='input-group-addon'>
-							<i class='glyphicon glyphicon-key'></i>
-						</span>
-						<input type='hidden' id='rrn' name='rrn' value='$rrncode'>
-						<input type='hidden' id='hidden' name='control' value='$control'>
-						<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'> 
-					</div>
-				
-				</div>
-			</div>			
-			<div class='col-sm-2'>
-			
-			</div>
-		</div>	
-	$boton
-	";
-									}
-									
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-			
-			
-	}elseif($accion =="elegir") {
-		$form = "
-<div id='login_express'>
-	<div class='' id='datos_usuario'>
-		<div class='row' id=''>	
-			<div class='col-sm-6'>
-				<div class='btn btn-primary  btn-block' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'nuevo');\" >Usuario nuevo</div>
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-success btn-block'  data-target=\"#modal_login\" data-toggle=\"modal\" >Ya estoy registrado</div>
-			<div>
-		</div>
-
-	</div>
-</div>
-		              <a target='_blank' href='http://qwerty.co/faq/category/19/privacidad-y-protecci%C3%B3n-de-datos.html'>Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.</a> </p> 
-		              ";
-				return $form;
-	}
-elseif($accion =="validar") {
-				$boton ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'confirmar');\">Confirmar</div>";
-				$div = "registro_confirmacion_email";
-				
-				
-if($formulario[password_express_confirmar] =="" OR $formulario[password_express_confirmar] != $formulario[password_express] ){
-	$resultado ="<div class='alert alert-danger'>Por favor escribe y confirma una clave.</div> $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 = "<div class='alert alert-success'><h1>Bienvenido</h1>
-<p>Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.</p>
-</div>";
-$div = "contenido";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}else{
-$resultado = "<div class='alert alert-danger'><h3>Error</h3>El Código de confirmación no es correcto, por favor inténtalo nuevamente.</div>";
-}
-
-$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 ="
-<div class='input-group'>
-	<span class='input-group-addon'>Empresa</span>
-	$empresa
-</div>
-
-";
-}
-$listado_usuarios = usuarios_listado($tabla_autenticacion,"");
-$mailer = mailer('','','','');
-$form = "
-
-<div class='alert alert-warning'>
-<form class='form' id='$nombre_formulario' name='$nombre_formulario' >
-<input type='hidden' value = 'nuevo_$nombre_formato' id='nombre_formulario' name='nombre_formulario' >
-	<legend>Usuario </legend>
-		$empresa
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='email_express_grupo'>
-				
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope-o'></i>
-					</span>
-					<input value=''  type='email' id='email_express' name='email_express' placeholder='Email' class='form-control'
-						onclick=\"(this.value=''); \"
-					 	onchange=\"xajax_validar_usuario('email',(this.value),'email_express','login'); \"  > 
-				</div>
-			</div>
-			<div class='col-md-6'>
-				<label></label>
-				<div class='input-group' id='email_express_confirmar_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope'></i>
-					</span>
-					<input value='' type='email' id='email_express_confirmar' name='email_express_confirmar' placeholder='Confirmar email' class='form-control'
-					onclick=\"(this.value=''); \"
-					onchange= \"xajax_confirma_campo((document.getElementById('email_express').value),(this.value),'email_express','email_express_confirmar'); \"  > 
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='nombre_express'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user'></i>
-					</span>
-					<input type='text' id='nombre_express' name='nombre_express' placeholder='Nombre' class='form-control'> 
-				</div>
-			</div>
-		
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='apellido_express'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user '></i>
-					</span>
-					<input type='text' id='apellido_express' name='apellido_express' placeholder='Apellido' class='form-control'> 
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='documento_express_grupo' title='Documento de identidad'>
-					
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-certificate'></i>
-					</span>
-					<input type='number' id='documento_express' name='documento_express' placeholder='Documento de identidad' class='form-control' 
-					onclick=\"(this.value=''); \"> 
-				</div>
-			</div>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='telefono_express'>
-					
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-phone'></i>
-					</span>
-					<input type='phone' id='telefono_express' name='telefono_express' placeholder='Teléfono' class='form-control' 
-					onclick=\"(this.value=''); \"> 
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='password_express_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i>
-					</span>
-					<input type='password' id='password_express' name='password_express' placeholder='Clave' class='form-control'
-					onclick=\"(this.value=''); \"> 
-				</div>
-			</div>
-			<div class='col-sm-6'>
-			<label></label>
-				<div class='input-group' id='password_express_confirmar_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-lock'></i>
-					</span>
-					<input type='password' id='password_express_confirmar' name='password_express_confirmar' placeholder='Confirma tu clave' class='form-control'
-					onclick=\"(this.value=''); \"
-					onchange= \"xajax_confirma_campo((document.getElementById('password_express').value),(this.value),'password_express','password_express_confirmar'); \" > 
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<br>
-				<div id='registro_confirmacion_email'>				
-$boton
-				</div>
-				
-			</div>
-		</div>
-
-</form>
-</div>
-
-<!-- listado_usuarios -->
-$mailer
-$listado_usuarios
-<!-- listado_usuarios -->
-
-";		
-$respuesta->addAssign("$div","innerHTML",$form);
-return $respuesta;
-		
-	}
-
-
-elseif($accion =="boton"){ 
-
-$modal ="      
-		<form class='navbar-form navbar-left' role='form' id='form_contacto' name='form_contacto'>
-        <div class='form-group'>
-          <input type='text' class='form-control input-small' placeholder='Email o usuario' id='email' name='email'>
-        </div>
-        <div class='form-group'>
-          <input type='password' class='form-control input-small' placeholder='Clave ****' id='password' name='password'>
-        </div>
-        <div  class='btn btn-default' onclick=\"xajax_revisar_ingreso(xajax.getFormValues('form_contacto')) ; \"><i class='glyphicon glyphicon-log-in '></i></div>
-      </form>";
-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= "	
-	<div class='container'>
-		<div class='col-md-6'>
-			<form id='buscar_funcionario' name='buscar_funcionario' >
-				<div class='form-group'>
-					<label for='documento'>Documento</label>
-					<input class='form-control' id='documento' name='documento' >
-				</div>
-				<div class='form-group'>
-					<div class='btn btn-success' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('buscar_funcionario'),'busqueda','$div');\" >Buscar</div>
-				</div>
-				
-			</form>
-		</div>
-		<div class='col-md-6'>
-		<div class='btn btn-warning' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('buscar_funcionario'),'nuevo','$div');\">Usuario nuevo</div>
-		</div>
-	</div>
-	<div id='$div'></div>
-	";
-	
-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 ="<ul>";
-		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 ="
-			<div class='input-group'>
-				<span class='input-group-addon'>
-					Grupo:
-				</span>
-				$grupo
-			</div>		
-		
-		";
-			}
-		
-		//$ = editar_campo("$tabla_autenticacion",$row['id_usuario'],"","","","");
-	$listado_formularios = formulario_permisos_usuario("","$id",'');
-	$subir_imagen = subir_imagen("","");
-	$resultado .= " 
-	<div class='panel panel-default'>
-		<div class='panel-heading'>
-			<h2 >Perfil de usuario</h2>
-		</div>
-		<div class='panel-body'>
-			<div class='row'>
-				<div class='col-md-4'>
-					<div class='img-rounded img-responsive ' id='banner' style=' 
-						
-						background-position:top center  ;
-						-webkit-background-size: cover;
-						-moz-background-size: cover;
-						-o-background-size: cover;
-						background-size: cover;
-						
-						background-repeat:no-repeat;
-						background-image: url($imagen ) ; 	
-						padding:10px;
-						padding:10px;  min-height:600px;
-						
-						'><a href='#logo'></a>
-						
-	
-	
-					</div>
-				
-				$subir_imagen
-				<input type='hidden' id='imagen' name='imagen'>
-				<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'$_SESSION[tabla_autenticacion]','$row[id_usuario]') \"; 
-								class='btn btn-default btn-sx'>Cambiar imagen</div>
-				</div>
-				<div class='col-md-8'>
-					<ul class='list-group'>
-						<li class='list-group-item'>Nombre de usuario: $username</li>
-						<li class='list-group-item'>Primer nombre: $p_nombre</li>
-						<li class='list-group-item'>Otros nombres: $s_nombre</li>
-						<li class='list-group-item'>Primer apellido: $p_apellido</li>
-						<li class='list-group-item'>Otros apellidos: $s_apellido</li>
-						<li class='list-group-item'>Fecha de nacimieno: $fecha_nacimiento</li>
-						<li class='list-group-item'>Teléfono: $telefono_celular</li>
-						<li class='list-group-item'>Titulo profesional: $titulo_profesional</li>
-						<li class='list-group-item'>Ocupación: $ocupacion</li>
-						<li class='list-group-item'>Cargo: $cargo</li>
-						<li class='list-group-item '><div class='row'><div class='col-xs-6'>$grupo</div></div></li>
-						<li class='list-group-item '><div class=''> $listado_formularios</div>
-							
-						</li>
-						
-					</ul>
-				</div>
-			</div>
-		</div>
-	</div>
-						";
-	
-	
-	}
-	
-	$resultado .= "</ul>";}else {
-	
-		$resultado ="<div class='alert alert-danger'>No existe el usuario </div>";
-	}
-	
-				$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 ="
-	<div class='alert alert-info row'>
-	<h2>Crear un usuario</h2>
-		<form name='nuevo_usuario' id='nuevo_usuario'>
-		
-		<fieldset>
-		<legend>Datos personales</legend>
-			<div class='form-group'>
-				<label for='p_nombre'>Primer nombre</label>
-				<input class='form-control' name='p_nombre' id='p_nombre'>
-			</div>		
-			<div class='form-group'>
-				<label for='s_nombre'>Segundo nombre</label>
-				<input class='form-control' name='s_nombre' id='s_nombre'>
-			</div>		
-			<div class='form-group'>
-				<label for='p_apellido'>Primer apellido</label>
-				<input class='form-control' name='p_apellido' id='p_apellido'>
-			</div>		
-			<div class='form-group'>
-				<label for='s_apellido'>Segundo apellido</label>
-				<input class='form-control' name='s_apellido' id='s_apellido' >
-			</div>		
-			<div class='form-group'>
-				<label for='fecha_nacimiento'>Fecha de Nacimiento</label>
-				<input class='form-control' name='fecha_nacimiento' id='fecha_nacimiento' type='date'>
-			</div>		
-			<div class='form-group'>
-				<label for='documento_numero'>Documento de identidad</label>
-				<input class='form-control' name='documento_numero'  id='documento_numero' >
-			</div>		
-			<div class='form-group'>
-				<label for='telefono_delular'>Teléfono</label>
-				<input class='form-control' name='telefono_celular'  id='telefono_celular' >
-			</div>	
-		</fieldset>
-		<fieldset>
-		<legend>Datos de acceso</legend>
-
-			<div class='form-group'>
-				<label for='id_grupo'>Grupo</label>
-				$grupo
-			</div>	
-			<div class='form-group'>
-				<label for='username'>Nombre de usuario</label>
-				<input class='form-control' name='username' id='username'>
-			</div>	
-	
-
-					<div class='form-group'  >
-						<label for='email'>Email</label>
-						<div class=''  id='email_grupo'>
-							
-							<input class='form-control' name='email'  id='email'  onclick= \"(this.value='');(document.getElementById('email_confirmacion').value='')\" >
-						</div>		
-					</div>		
-	
-					<div class='form-group' >
-						<label for='email_confirmacion'>Confirmar email</label>
-						<div class='' id='email_confirmacion_grupo'>
-
-							<input class=' form-control  ' name='email_confirmacion'  id='email_confirmacion' onchange= \"xajax_confirma_campo((document.getElementById('email').value),(document.getElementById('email_confirmacion').value),'email','email_confirmacion') \" >
-						</div>	
-					</div>	
-	
-
-		</fieldset>
-		<fieldset>
-		<legend>Datos laborales</legend>	
-			<div class='form-group'>
-				<label for='titulo_profesional'>Título profesional</label>
-				<input class='form-control' name='titulo_profesional'  id='titulo_profesional' >
-			</div>		
-			<div class='form-group'>
-				<label for='ocupacion'>Ocupación</label>
-				<input class='form-control' name='ocupacion'  id='ocupacion' >
-			</div>		
-			<div class='form-group'>
-				<label for='cargo'>Cargo</label>
-				<input class='form-control' name='cargo'  id='cargo' >
-			</div>
-		</fieldset>
-			<div class='form-group col-md-6'>
-				<div class='btn btn-success btn-block' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('nuevo_usuario'),'grabar','$div');\" >Grabar</div>
-			</div>
-			<div class='form-group col-md-6'>
-				<div class='btn btn-danger btn-block' onclick =\" xajax_buscar_funcionario('','','$div');\" >Cancelar</div>
-			</div>
-		</form>
-	</div>	
-	
-	";	
-	
-	}
-	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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Username</th><th>Nombre</th><th>Email</th><th>Documento</th><th>Empresa</th><th></th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i></a>";}
-	else {$acciones="";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$username</td><td>$p_nombre $p_apellido</td><td>$row[email]</td><td>$row[documento_numero]</td><td> $empresa[0] $grupo[0]</td><td><div class='btn btn-warning btn-xs' onclick =\" xajax_buscar_funcionario('$row[id]','busqueda','$div');\" >Editar</div></td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle '></i> No hay resultados</div>";
-	}
-
-	if($div =="") {
-		$div="contenido";		
-	//	$resultado ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \">Configuración multiempresa</a>";
-		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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-							
-						</blockquote>
-					</li>"; 
-	
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-		
-			<ul class='list-group'>
-				$listado
-			</ul>
-		
-	</div>";
-}
-$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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-
-function banner_empresa($id_empresa,$form){
-	
-	if($form !=""){
-					$titulo = 	remplacetas('form_id','id',$form,'nombre',"") ;
-			$descripcion = 	remplacetas('form_id','id',$form,'descripcion',"") ;	
-			$formulario="
-			<h2 id='titulo_formulario'>$titulo[0]</h2>
-			<h3 id='descripcion_formulario' >$descripcion[0]</h3>
-			
-			";
-		
-		}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=" 
-<div class='container' id='contenedor_cabecera'>
-	<div class='col-md-3' id='logo_cabecera'>
-		<a href='./e$id_empresa'>
-		<img id='logo_cabecera' class='center-block img img-responsive' style='' src='milfs/images/secure/?file=300/$logo[0]'>
-		</a>
-	</div>
-	<div class='col-md-9'>
-		<h1 id='titulo_cabecera' data-toc-skip=''>
-		<a href=''>$razon_social[0]</a></h1>    
-		<div id='slogan_cabecera'>
-		<p>$slogan[0]</p>
-		$formulario
-		</div>
-	</div>
-</div>
-	  		
-	  		
-	  		";
-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 ="<h2>Restaurar</h2>";
-$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 .= "<div id='mensaje_$clave'>$contenido[0] <a href='#' onclick=\"xajax_parametrizacion_linea('form_id','$form','mostrar','visible','mensaje_$clave','','$clave');  javascript: document.getElementById('nota_$form-$clave').className= ' note yellow visble'; \"  '  > <i class='fa fa-undo' aria-hidden='true'></i></a></div><br>";
-	
-	}
-	
-	if ($accion ==""){
-$boton ="<div class='btn btn-warning' onclick=\"xajax_notas_papelera('$form','listado') \"> <i class='fa fa-trash'></i> Papelera</div><div id='papelera_$form'></div>";	
-	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 ="
-<hr>
-<div class='col-md-12'>
-<h2>Configuración</h2>
-	<div class='panel-group' id='accordion'>
-	  <div class='panel panel-default'>
-	    <div class='panel-heading'>
-	      <h4 class='panel-title'>
-	        <a data-toggle='collapse' data-parent='#accordion' href='#collapse1' onclick=\"xajax_agregar_campos('consultar_campos','consultar_campo','$form')\">
-	        Campos</a>
-	      </h4>
-	    </div>
-	    <div id='collapse1' class='panel-collapse collapse '>
-	      <div class='panel-body'>
-	      	
-				<div id='consultar_campo'></div>
-	      </div>
-	    </div>
-	  </div>
-	  <div class='panel panel-default'>
-	    <div class='panel-heading'>
-	      <h4 class='panel-title'>
-	        <a data-toggle='collapse' data-parent='#accordion' href='#collapse2'>
-	        Notas</a>
-	      </h4>
-	    </div>
-	    <div id='collapse2' class='panel-collapse collapse'>
-	      <div class='panel-body'>$parametrizaciones_listado</div>
-	    </div>
-	  </div>
-	  
-	</div>
-	
-</div>
-
-
-
-
-";	
-	
-	
-		$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', '<br>', '<BR>'),'', $text);
-$text = str_replace(array('?','¿','¡','!','&nbsp;','"',"  ",">","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<br> ";
-	 //$array_compuestos[] = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', strip_tags($tags));;
-	 $array_compuestos[] = strip_tags($tags);
-	}
-$text = strip_tags($text);
-$text = str_replace(array('?','¿','¡','!','&nbsp;','\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 .= "<SPAN title='$cant' CLASS='badge label-warning'  draggable='true' id='#$ht ' ondragstart=\"evdragstart(event,this)\">$c </span>  " ;
-									$array_prueba = print_r($wordCounter,true);
-									if($div !=""){ $accion="xajax_buscar_datos('$c','$form','$plantilla','$div'); "; }else{$accion="";}
-									$nube .= "<a href='#' onclick =\"$accion\"><span class='etiquetatam$valor_relativo'  style=''  title='$c $cant'  id='#$ht ' >$c</span></a>  " ;
-									}
-	  					}
-	}
-	$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="
-		
-			<div class=''>
-			$nube
-			<div style='clear:both'></div>
-			</div>
-		
-		
-		";
-		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 .= "<div class='div_$campo' >$id_campo $valor esto</div>";
-
-	}
-
-
-
-
-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 .= "<li ><a title='$row[id_usuario]' href='#'>$Autor <span class='badge'>$row[cantidad]</span></a></li> ";
-					}else { $otros .= "<li ><a title='$row[id_usuario]' href='#'>Otro <span class='badge'>$row[cantidad]</span></a></li>";}
-				}
-		$resultado = "$cantidad <ul>$autor $otros</ul> ";
-		
-		}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 .= "<li id='li_$row[item]'> $row[descripcion] $row[cantidad]</li>";
-				}
-				}
-}
-
-
-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 .= "<td class='$clave text-center'>$v</td>"; 
-	}
-	$tabla_clasificacion = "<table class='table table-responsive'><tr>$tabla_clasificacion</tr></table>";
-$contenido ="
-<hr>
-<div class='col-md-5'>
-	<ul class='list-group'>
-	<li class ='list-group-item active'>Estadísticas</li>
-		<li class='list-group-item' >Total notas: <strong>$cantidad_notas</strong> </li>
-		<li class='list-group-item'>Autores: <strong>$cantidad_autores</strong></li>
-		<li class='list-group-item'>Me gusta: <strong>$total_gusta</strong> 
-		 Compromisos: <strong>$total_compromisos</strong> 
-		 Comentarios: <strong>$total_comentarios</strong></li>
-		 <li class='list-group-item'><h3>Clasificación</h3>$tabla_clasificacion</li>
-		
-	</ul>
-</div>
-<div class='col-md-5'>
-<div class='container-fluid'>
-<ul class='list-group'>
-<li class ='list-group-item active'>Palabras mas usadas</li>
-<li class='list-group-item'>$corpus</li>
-<ul>
-</div>
-</div>
-
-
-";	
-	
-	
-		$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 = "  <div class='alert alert-danger'><h2><a href='./milfs/'>Ingresa</a> Para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></h2></div>";
-		$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 = "
-			<div class='alert alert-danger'><p>Ingresa con tu usuario para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></p>	</div>
-			<div id='div_login'>$login</div>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		else{ $permiso_identificador =  ""; $salir="";}
-	
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0]  )){
-	$aviso = "<div class='alert alert-warning text-center '>
-					<h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado Para modificar esta información</small><br> pertenece a un grupo de trabajo diferente</h1></div>";
-				$resultado = "
-			<div class='container-fluid' style=''>
-							$salir	$aviso
-			</div>
-				 ";
-			$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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small> </h1></div>";
-			$seguridad ="
-
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-							
-			$resultado ="
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-				$seguridad
-			</div>
-		
-				 ";
-			$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="<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_nota_$control'),'');\" >Grabar</div>
-			</div>";
-		$nota="
-		<div id='nueva_nota_$control'>
-		
-			
-				<div id='nota_$id-$control' class='note yellow  $mostrar  ' style=\" width: 500px; height:500px; position:absolute; margin:auto; top:".$y."px; left:".$x."px;  z-index: 2000 \">
-					<a class='btn btn-danger' href='#'  onclick=\"xajax_limpia_div('nueva_nota_$control') \">Cancelar</a>
-					<a class='btn btn-warning' href='#' onclick =\"xajax_formulario_embebido_ajax($datos,'$id','$opciones','$tipo'); xajax_limpia_div('nueva_nota_$control')  \">Mas datos</a>
-							<div class='botonera'>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'yellow';  javascript: document.getElementById('nota_$id-$control').className= 'note yellow'; \"class='pull-right yellow btn accion'  style=''></div>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'blue'; javascript: document.getElementById('nota_$id-$control').className= 'note blue'; \" class='pull-right blue btn accion' ></div>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'green';  javascript: document.getElementById('nota_$id-$control').className= 'note green'; \"class='pull-right green btn accion' ></div>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'red';  javascript: document.getElementById('nota_$id-$control').className= 'note red'; \"class='pull-right red btn accion' ></div>
-							</div>
-												
-
-					<hr name=''>
-					<div id='div_$control'></div>
-					<form autocomplete='off' name='form_nota_$control' id='form_nota_$control'>
-					<div id='input_$id_campo"."[0]' ></div>
-						<textarea id='$id_campo"."[0]'  name='$id_campo"."[0]' placeholder='Escribe tu nota'></textarea>
-						<input type='hidden' value='$control' name='control' id='control'>
-						<input type='hidden' id='form_id' name='form_id' value='$id'>
-						<input type='hidden' id='tipo' name='tipo' value='nuevo'>
-						<input type='hidden' id='tipo_form' name='tipo_form' value='mini'>
-						<input type='hidden' id='metadatos' name='metadatos' value='$metadatos'>
-						<input type='hidden' id='clase_$control' name='clase' value=''>
-						<div  id='mensaje_$control' class='hidden'></div>
-						$boton
-					</form>
-				</div>
-			
-		</div>"; 	//$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 = "
-
-	<div class='container-fluid' style='  background-color:white;  overflow:no;' id='contenedor_datos' >
-			<!-- formulario_areas -->
-			$impresion
-			<!-- formulario_areas -->
-	</div>
-	";
-
-			$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 = "<a onclick=\"xajax_aplicacion_configuracion('','contenido','$form'); \"href='#menu-toggle' class='btn btn-default menu-toggle' id='configuracion-toggle'><i class='fa fa-cogs' aria-hidden='true'></i></a>";
-			}else{
-			$administracion = "";
-			}
-	  		$notes = notes("$form",'','','');
-
-	  		$footer="
-
-<nav class='navbar navbar-inverse navbar-fixed-bottom'>
-<div class='list-inline'>
-	<ul class=' center-block' style='
-	    float:none;
-	    margin:0 auto;
-	    display: block;
-	    text-align: center;'>
-
-                <a href='e$empresa[0]' class='btn btn-default ' >
-                    <i class='fa fa-home' aria-hidden='true'></i>
-                </a>
-                <a class='btn btn-default ' onclick=\"coordenadas(event); \"  href='#' >
-                <i class='fa fa fa-plus' aria-hidden='true'></i>
-                </a>
-
-
-				<div class='btn-group'>
-				 
-                <a href='#' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
-                     <i class='fa fa fa-search-plus' aria-hidden='true'></i>
-                </a>
-                <ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    <li>
-	                    
-	                    	<div class='hidden' id='zoom_label'>$zoom_label</div>
-	                    	
-	                    	 <input id='zoom_nivel' class='' onchange=\"viewport.style.zoom=(this.value);  xajax_parametrizacion_linea('form_id','$form','zoom',(this.value),'zoom_label','','tablero'); \";  type='range' min='0.3' value='$zoom[0]' max='2' step='0.01' />
-	                    
-                    </li>
-                </ul>
-            </div>
-            <a onclick=\"xajax_notas_estadisticas('$form','contenido',''); \"href='#menu-toggle' class='btn btn-default menu-toggle' id='estadisticas-toggle'><i class='fa fa-bar-chart' aria-hidden='true'></i></a>
-            $administracion
-          
-			<a href='https://tupale.co' class='navbar-brand  pull-right'>Tupale.co</a>
-			
-
-        </ul> 
-        </div>
-</nav>
-";
-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
-    <div id='wrapper-sidebar' class='toggled'>
-
-        <!-- Sidebar -->
-        <div id='sidebar-wrapper'>
-				<div id='contenido' class='sidebar-contenido '>
-				$estadisticas
-				</div>
-        </div>
-        <!-- /#sidebar-wrapper -->
-
-    </div>
-<div id='viewport' title='Doble click para agregar una nota' style='width:100%; zoom: $zoom[0]; ' onclick=\" xajax_ultimos_registros(document.getElementById('ultimo_id').value,'$form'); \"   >
-
-	<div id='main' ondblclick=\"coordenadas(event);\"  style=' top: 1000px;' >
-	<div class='container-fluid'>
-
-</div>
-		<div  class=' img-rounded tablero_titulo ' style='' ><h1>$titulo[0] <br><small>$descripcion[0]</small></h1>
-		<span class='data'>$form-titulo</span>
-		<div class='hidden' id='mensaje_titulo'></div>
-			<div id='div_session'>
-			$login 
-			</div>
-		</div>
-
-
-		$notes
-	    <span id='prueba' class=''></span>
-	</div>	
-</div> 
-<script type='text/javascript'>
-
-
-
-
-  // #wall is the infinite wall.
-  // The wall is made of tiles 100px wide and 100px high.
-  var infinitedrag = jQuery.infinitedrag('#main', {}, {
-    width: 366,
-    height: 366,
-    start_col: 0,
-    start_row: 0
-    
-  });
-  
-  
-  function coordenadas(event) {
- x=event.clientX;
- y=event.clientY;
- autor='$autor';
-// var cordenadas= 'x:'+x+'y'+y;
- var datos = [['id','$form'],['x',x],['y',y],['z',++zIndex],['autor',autor]];
-//alert(cordenadas);
-javascript:xajax_formulario_mini(datos,'$form','','nuevo');
-//javascript:xajax_formulario_embebido_ajax(datos,'$form','','nuevo');
- 
-}
-
-
-</script> 		
-	  		
-	  		";
-
-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 .= "... <button type='button' class='btn btn-link btn-xs' data-html='true' data-toggle='tooltipx' data-placement='top' title='$titulo[0]'>[+]</button>";	}
-		
-		$interaccion = interaccion_identificador("$row[control]",'','simple','','');
-	$notes.= "
-	<div id='nota_$id-$row[control]' class='note $color $mostrar' style=\"  left: ".$left."px; top: ".$top."px; z-index: ".$zindex." \">
-				<div class='pull-left'>
-			<a  href='#'  onclick=\"xajax_mostrar_modal('$id','$row[control]','landingpage');\" ><i class='fa fa-plus'></i></a>
-			</div>
-			
-		<div class='botonera'>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','mostrar','hidden','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'hidden'; \"class='pull-right  '  ><i class='btn btn-xs fa fa-trash-o' aria-hidden='true'></i></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','fantasma','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note '; \"class='pull-right '  ><i class='btn btn-xs  fa  fa-low-vision' aria-hidden='true'></i></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','yellow','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note yellow'; \"class='pull-right yellow btn accion'  style=''></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','blue','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note blue'; \" class='pull-right blue btn accion' ></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','green','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note green'; \"class='pull-right green btn accion' ></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','red','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note red'; \"class='pull-right red btn accion' ></div>
-		</div>
-		<hr>
-		
-		<p>$texto</p> 
-		
-		<span class='data'>$id-$row[control]</span>
-		<div class='hidden' id='mensaje_$row[control]'></div>
-		<div class='footer ' role='row'>
-				<div class='btn-group '>
-				    <a href='#' class='btn btn-xs btn-link dropdown-toggle' data-toggle='dropdown' aria-expanded='false'>
-				         <i class='fa fa fa-thumbs-o-up' aria-hidden='true'></i>
-				    </a>
-				    <ul class='dropdown-menu drop-up text-center' role='menu'>
-				        <li>
-				        $interaccion
-				        </li>
-				    </ul>
-				</div>
-			<!-- <div class='pull-left'>
-						 <div id='gusta_$row[control]' class='$gustax btn btn-xs col-xs-6' title='Me gusta' onclick=\"xajax_parametrizacion_linea('form_id','$id','gusta','$autor_logueado','mensaje_$row[control]','','$row[control]'); 
-						  javascript: document.getElementById('gusta_$row[control]').className= 'text-success btn btn-xs col-xs-6'; \"  >
-						 	<i class=' fa fa-thumbs-o-up' aria-hidden='true'></i>
-						 </div>
-						 <div id='comprometo_$row[control]' data-toggle='tooltip' class='$comprometox btn btn-xs   col-xs-6' title='Me comprometo' 
-						 onclick=\"xajax_parametrizacion_linea('form_id','$id','comprometo','$autor_logueado','mensaje_$row[control]','','$row[control]');  
-						 javascript: document.getElementById('comprometo_$row[control]').className= 'text-success btn btn-xs col-xs-6'; \"  >
-						 	<i class='fa fa-handshake-o' aria-hidden='true'></i>
-						 </div>
-						
-			</div> -->
-			<div class='pull-right'>
-				<footer>$autor<footer>
-			</div>
-		</div>
-		
-	</div>
-	
-	";
-	// parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-
-	$orden = ($orden+2);
-	$orden_left = ($orden+1);
-	$ultimo = mktime();
-	$ultimo_id = $ultimo;
-}
-
-return "$notes <input type='hidden' id='ultimo_id' name='ultimo_id' value='$ultimo_id'>";
-
-}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 = "<a href='b$row[id]?registros=10'> Consultar <i class='glyphicon glyphicon-external-link-square'></i></a>";
-							$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= "<a class='boton_land btn btn-default ' href='mapero.php?id=$row[id]' target='mapa'><i class='fa fa-globe' aria-hidden='true'></i> Mapa</a>";}else {$mapa='';}
-		$descripcion_limpia = strip_tags($row['descripcion']);
-		if($imagen !="") {
-				$imagen ="
-			
-										<figure>
-										<a href='$favorita'>
-											<img style='max-height:170px; ' class='img img-rounded img-responsive' src='milfs/images/secure/?file=300/$imagen' alt='$row[nombre]'>
-											<!-- <figcaption class='articulo_caption' >$row[nombre]</figcaption> -->
-										</a>
-										</figure>
-										";
-			}
-	$contenido ="
-		<h2  class='text-center titulo_formulario section-heading'><a href='$favorita'>$row[grupo] $row[cantidad] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-
-    
-		<p class='descripcion_formulario text-left'>$descripcion_limpia </p>";
-
-//			if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar ="	<div class='boton_land btn btn-default ' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </div>";}
-							else{$boton_agregar =	"";}
-if($ver_data[0] !="0") {$boton_ver_data ="	<a target='datos'class='boton_land btn btn-default ' href= 'opendata.php?id=$row[id]'> <i class='fa fa-bar-chart' aria-hidden='true'></i> OpenData</a>";}
-									else{$boton_ver_data =	"";}
-
-	if($mostrar[0] !="0") {
-		//// PRIVACIDAD
-			$publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
-	$linea .= "<li class='list-group-item' title='' data-toggle='tooltip' data-placement='auto' data-html='true'><a class='' href='k$id_empresa&suite=$row[grupo]'><h2>$row[grupo]</h2></a></li>";
-	$linea_consulta .= "<li title='$descripcion[0]' data-toggle='tooltip' data-placement='auto' data-html='true'><a href='#mostrar' onclick=\" xajax_consultar_contenido_formulario('$row[id]','5','','','','$plantilla')\">$titulo[0]</a></li>";
-	$lista .= "<li class='list-group-item'  ><a href='#mostrar' onclick=\" xajax_consultar_contenido_formulario('$row[id]','5','','','','$plantilla')\">$titulo[0]</a> $descripcion[0]</li>";
-	$linea_editar .= "<li title='$descripcion[0]' data-toggle='tooltip' data-placement='auto' data-html='true'><a href='#' class=' ' title='Agregar' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\">$titulo[0]</a></li>";
-	
-			}else{
-					if($llenar[0] !="0"){
-		///	 $linea .="<li>$row[grupo] // $row[campo] </li>	";
-		}
-
-			}
-		}else {
-
-		}
-
-		$fila++;
-		}
-		
-	if($suite!="") { 	
-	
-
-			
-$footer="
-
-<nav class='navbar navbar-inverse navbar-fixed-bottom'>
-<div class='list-inline'>
-	<ul class=' center-block' style='
-	    float:none;
-	    margin:0 auto;
-	    display: block;
-	    text-align: center;'>
-
-                <a href='k$id_empresa' class='btn btn-default ' >
-                    <i class='fa fa-home' aria-hidden='true'></i>
-                </a>
-                <a href='#inicio' class='btn btn-default ' >
-                    <i class='fa fa-list' aria-hidden='true'></i>
-                </a>
-
-<!--                 <a href='#mapa' class='btn btn-default ' >
-                    <i class='fa fa-map' aria-hidden='true'></i>
-                </a> -->
-
-				<div class='btn-group'>
-				 
-                <a href='#' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
-                     <i class='fa fa-eye' aria-hidden='true'></i>
-                </a>
-                <ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    $linea_consulta
-                </ul>
-            </div>
-
-				<div class='btn-group'>
-				 
-                <a href='#' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
-                     <i class='fa fa-plus' aria-hidden='true'></i>
-                </a>
-                <ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    $linea_editar
-                </ul>
-            </div>
-            
-           
-            
-        
-        </ul>
-        </div>
-</nav>
-";
-$resultado ="
-
-	<div class='reveal' style='bottom: 80px !important;'>
-					<div class='slides' >
-						<section id='inicio' class='scrollable present text-center' style='' >
-							
-								<img style='width: 100%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-								
-									
-								
-								<h2>$descripcion[0]</h2>
-								<hr>
-								<h1>$razon_social[0]</h1>
-								<h2>$slogan[0]</h2>
-								<hr>
-								<ul class='list-group'>
-										$lista
-									</ul>
-								<hr>
-								<a href='https://tupale.co'>Tupale.co</a>
-							
-						</section>
-						<section id='mostrar' class='scrollable present text-center' style='' >
-							<div id='mostrar_resultado' class='text-center'>
-							<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-							</div>
-						</section>
-						<section id='mapa'>
-						<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-						</section>
-					</div>
-	</div>
-	$footer		  
-		
-	";
-	
-	}else {
-			$titulo = 	 remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-
-	
-$resultado ="
-	<div class='reveal' style='bottom: 80px !important;'>
-					<div class='slides' >
-						<section id='inicio' class='scrollable present text-center' style='' >
-							
-								<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-								
-									
-								
-								<h2>$descripcion[0]</h2>
-								<hr>
-								<h1>$razon_social[0]</h1>
-								<h2>$slogan[0]</h2>
-								<hr>
-								<ul class='list-group'>
-										$linea
-									</ul>
-								<hr>
-								<a href='https://tupale.co'>Tupale.co</a>
-							
-						</section>
-						
-					</div>
-	</div>		
-	";
-	}
-	}else{
-$resultado ="
-	<div class='reveal' style='bottom: 80px !important;'>
-					<div class='slides' >
-						<section id='inicio' class='scrollable present text-center' style='' >
-							
-								<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-								
-									
-								
-								<h2>$descripcion[0]</h2>
-								<hr>
-								<h1>$razon_social[0]</h1>
-								<h2>$slogan[0]</h2>
-								<hr>
-								<h1 class='text-danger'>Sigue intentando :( </h1>
-								<hr>
-								<a href='https://tupale.co'>Tupale.co</a>
-							
-						</section>
-						
-					</div>
-	</div>		
-	";	
-	
-	}
-
-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 ="<div class='alert alert-danger'><h1>No tiene autorización para revisar este contenido</h1></div>";
-				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 ="
-		<h3 class='text-danger'>$campo_chequeo_nombre $valor</h3>
-			<div class='input-group'>
-				<span class='input-group-addon'>URL</span>
-				<input class='form-control' value='$uri' >
-			</div>
-			";
-		}	
-			$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="
-					<div class='cabecera_planilla row'>
-						<div class='col-xs-2'>					
-							<img src='milfs/images/secure/?file=150/$imagen[0]' class='img  img_planilla'>
-						</div>
-						<div class=''col-xs-10>
-							<h1>$razon_social[0] <small>$slogan[0]</small></h1>
-							<h2>$nombre_formulario[0] <small>$descripcion_formulario[0]</small></h2>
-							
-						</div>
-					</div>";
-					
-$fila=1;
- $cantidad = mysqli_num_rows($sql);
-
-
-
-//$tipo[1]="campo";
-
-//$tipo="linea_planilla";
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-/*
-	if($fila % $registros == 0) {$separador="</table></div  >$pie<div class='saltopagina'></div>
-		
-		$cabecera
-		<div class='table-responsive' >
-			<table id='planilla' class='table table-bordered table-striped'>
-			<thead><th></th>$titulo</thead>";}else {$separador="";}
-	*/		
-			
-//$linea = formulario_imprimir_linea("$id","$row[control]",$tipo);
-$linea = formulario_imprimir_linea("$id","$row[control]",$tipo);
-		$despliegue .= "<tr><td><small>$fila</small></td>$linea</tr> $separador";
-		//formulario_imprimir_linea("$row[form_id]","$row[control]")
-		$fila++;
-		
-		
-}
-
-//return print_r(mysqli_fetch_array( $sql )); //"<h1>Hola mundo $cabecera  xxx $campo $valor // $cantidad</h1>";
-
-$tabla= "<div class='container'> $cabecera $cadena_busqueda $filtro_campos $filtro 
- <div class='table-responsive' >
-	<table id='planilla' class='table table-bordered table-striped table-responsive table-hover'>
-	<thead>	<th></th>
-		$titulo 
-	</thead>
-	<tbody>
-		$despliegue
-	</tbody>
-	</table></div></div>
-	
-		 <script type='text/javascript'>
-	$('#planilla').DataTable( {
-    dom: 'Bfrtip',
-    pageLength:5,
-    buttons: [
-        'copy', 'excel', 'csv','print'
-    ]
-} );
-</script>
-	$pie";
-$resultado= "<div id='check_div' class='container-fluid'>$tabla</div>";
-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 ="<div class='alert alert-danger'><h1>No tiene autorización para revisar este contenido</h1></div>";
-				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="
-					<div class='cabecera_planilla row'>
-						<div class='col-xs-2'>					
-							<img src='milfs/images/secure/?file=150/$imagen[0]' class='img  img_planilla'>
-						</div>
-						<div class=''col-xs-10>
-							<h1>$razon_social[0] <small>$slogan[0]</small></h1>
-							<h2>$nombre_formulario[0] <small>$descripcion_formulario[0]</small></h2>
-						</div>
-					</div>";
-					
-$fila=1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	if($fila % $registros == 0) {$separador="</table>$pie<div class='saltopagina'></div>$cabecera<table class='table table-bordered table-striped'><th></th>$titulo";}else {$separador="";}
-$linea = formulario_imprimir_linea("$id","$row[control]","linea_planilla");
-		$despliegue .= "<tr><td><small>$fila</small></td>$linea</tr> $separador";
-		//formulario_imprimir_linea("$row[form_id]","$row[control]")
-		$fila++;
-		
-		
-}
-
-$tabla= "$cabecera<table class='table table-bordered table-striped'><th></th>$titulo $despliegue</table>$pie";
-return "<div class='container-fluid'>$tabla</div>";
-}
-
-
-
-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 ="<div style='background-color:white; max-height: 300px;'><ul class='list-group'>";
-	$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 .="<li class='list-group-item'><a onclick=\"document.getElementById('$name').value='$row[equipo]'; xajax_equipos('',$proyecto,'$name','div_$name');\">$row[equipo]</a></li>";
-}}
-$resultado .="</ul></div>";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-}
-else{
-
-$resultado ="<input value='' type='text' id='$name' name='$name' placeholder='$name' class='form-control'
-					onkeyup=\"xajax_equipos(this.value,$proyecto,'$name','div_$name') \"
-					>
-					";
-					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 .= "
-<style>
-.item-galeria{
-   position: absolute;
-      bottom:0px;
-      color:#fff;
-      background-color:#000;
-      padding:2px ;
-      opacity:0.5;
-      height: 50px;
-      overflow:hidden;
-       width:190px; z-index:20; word-wrap: break-word;
-           -webkit-transition: height 2s, bottom 1s; /* Safari */
-    transition: height 2s, bottom 2s;
-}
-.item-galeria-over{
-   position: absolute;
-      top:0px;
-      color:#fff;
-      height: 100%;
-      background-color:#000000;
-      padding:2px ;
-      opacity:0.8;
-      width:190px; z-index:20; word-wrap: break-word;
-          -webkit-transition: height 2s, top 2s; /* Safari */
-    transition: height 2s, top 2s;
-}
-</style>
-<div style='   display: table-cell;
-  position: relative;
-  margin: 10px;
-  float: left;
-  padding: 5px;
-  background-color: grey;
-  height: 200px;
-    width: 200px;
-    z-index:10;'
-
-    onmouseenter=\"xajax_cambiar_propiedades('div_titulo_$row[control]','className','item-galeria-over'); \"
-	onmouseleave=\"xajax_cambiar_propiedades('div_titulo_$row[control]','className','item-galeria'); \"
-	><img class='img img-responsive' src='$imagen'>
-<div id='div_titulo_$row[control]'
-	style='' class='item-galeria'>
-	      <ul class='list-unstyled'>
-	      	<li class=''>$titulo[0]</li>
-
-	      	<li>Autor: $autor[0]</li>
-	      	<li>Licencia: $licencia[0]</li>
-	      	<input class='form-control' value='$url' onmouseenter='select()'>
-	      </ul>
-      </div>
-    </div>";
-
-}
-$resultado="
-<div class='container' style='  display: table;'>$contenido</div>";
-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="<img src='$link_url' alt='$valor' class='imagen_multiple_$campo img img-responsive'>";	
-				
-			}else{$valor="<a class='link_multiple_$campo' href='$link_url' >$valor</a>";	}
-			}
-					$linea .= "<div class='div_$campo' >$valor</div>";
- if(is_array($valor)) {
-			foreach ($valor as $c => $v) {
-					$linea .= "<div class='div_$campo' >$v</div>";
-}
-
-			
-									
-
-			}
-	}
-
-$resultado="
-<div class='container-fluid container_$campo_$control'>$linea $campo_tipo[0]</div>
-
-";
-
-
-
-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 .= "<tr><td>$id_campo $valor</td></tr>";
-		$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 .= "<tr><td>$v</td></tr>";
-				if(is_array($v)){
-				foreach ($v as $c1 => $v1) {
-					$linea .= "<tr><td>$v1</td></tr>";
-				}}
-			}
-	}
-
-$resultado="
-<table class='table table-striped ' id='tabla_$control' >
-<tr><th>$campo_nombre[0]</th></tr>
-$linea
-</table>
-
-";
-}
-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="<td >$listado_campos</td>";}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 = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   viewBox="0 0 744.09448819 1052.3622047"
-   id="svg'.$formulario.'"
-   version="1.1">
-  <defs
-     id="def_'.$formulario.'">
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath'.$formulario.'">
-
-    </clipPath>
-  </defs>
-  <metadata
-     id="metadata'.$formulario.'">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-
-';
-$pie="</svg>";
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= "<br>$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 .="
-			<li><a onclick=\"document.getElementById('filtro_$id_campo').value='$row[campo_valor]'; xajax_filtro_generico_buscar(xajax.getFormValues('formulario_filtro_$formulario'),'$formulario');\" >$row[campo_valor]</a></li>
-	";
-
-}
-$opciones ="
-	<li><a onclick=\"document.getElementById('filtro_$id_campo').value=''; xajax_filtro_generico_buscar(xajax.getFormValues('formulario_filtro_$formulario'),'$formulario');\" >Limpiar</a></li>
-	$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 .="
-
-			<div class='dropdown' style='display:inline'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				$row[campo_nombre]  <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $listado
-				 </ul>
-				 <input class='form-control' id='filtro_$row[id_campo]' name ='filtro_$row[id_campo]'>
-		 	</div>
-
-	";
-
-}
-$filtro = "
-	<form autocomplete='off' id='formulario_filtro_$formulario' name ='formulario_filtro_$formulario' >
-
-		$filtro
-
-
-	</form>";
-
-}
-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 .= "<td>$campo_nombre $contenido[0]</td>";
-    	$campos_insertar[] ="campo_$campo_nombre ='$contenido[0]'";
-
-    }
-		$campos_insertar[] ="control ='$row_contenido[control]'";
-			$lineas .= "<tr><td>$row_contenido[control] </td>$los_campos //</tr>";
-			$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 ;//" // <h1>$tabla_temporal</h1> ** $crear ; $insert ; $consultar ; * <table>$lineas</table> // ";
-}
-
-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="
-	<div class='input-group'>
-	<div id='$div' onclick= \"xajax_formulario_estadistica_ocultar('$id_form','$id_campo','eliminar','$tipo'); \"; class='btn btn-xs btn-danger' title='Elimine esta gráfica si no es relevante'>Eliminar gráfica</div>
-	</div>
-	";
-}else {$resultado="";}
-	return $resultado;
-}elseif($accion =="eliminar") {
-
-$borrar= parametrizacion_linea("$tipo","$id_form",'ocultar',"$id_campo",'','',"$id_campo");
-//$resultado="<span class='disabled'>$id_campo $borrar</span>";
-$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 .="<tr><td>$row[cantidad]</td><td>$row[contenido]</td><td></td></tr>";
-			
-			$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 ="
-	<table class='table'>
-		<tr><td>$row[cantidad]</td><td>$row[contenido]</td><td></td></tr>
-		$lineas
-	</table>
-
-		";
-		$manejo_grafica = formulario_estadistica_ocultar("$id_form","$id_campo","","$tipo");
-$grafica ="
-<div id='contenedor_grafica_$tipo_$id_campo' >
-
-    <div id='canvas-holder_$tipo_$id_campo' style='width:100%'>
-        <canvas id='chart-area_$tipo_$id_campo' />
-    </div>
-
-</div>
-    <script>
-
-
-    window.onload = mostrar('bar');
-
-function mostrar(tipo) {
-var config = {
-        type:tipo,
-        data: {
-$data_grafica   },
-        options: {
-            responsive: true,
-            scales: { xAxes: [{display: false}]},        
-            legend: { display: false   },
-            tooltips: {
-            callbacks: {
-                label: function(tooltipItem, data) {
-                  
-                    var label = data.labels[tooltipItem.index].label;
-                    return label;
-                }}}
-            
-        }
-    };
-	        
-	        var ctx = document.getElementById('chart-area_$tipo_$id_campo').getContext('2d');
-	        
-        window.myPie = new Chart(ctx, config );
-}
-
-
-    </script>
-
-";
-
-		}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= "<li class='list-inline-item'><a title='Mapa'  class='btn btn-info ' href='#/mapa' ><i class='fa fa-map-o' aria-hidden='true'></i></a></li>";
-	$mapa= "<li class='list-inline-item'><a  class='btn btn-info ' target='mapa' href='mapero.php?id=$id' target='mapa'>Mapa</a></li>
-				<li class='list-inline-item'><a  class='btn btn-info ' target='mapa' href='milfs/geojson.php?id=$id' target='mapa'>{GEOJson}</a></li>
-	";}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 = "<li class='list-inline-item'><a href='#' class='btn btn-info '  title='Agregar' onclick =\"xajax_formulario_embebido_ajax('','$id','','nuevo');\"><i class='fa fa-plus-square-o'></i></a>";
-	$camara = "
-
-                
-	<div class='btn-group'>
-				 
-                <a onclick=\"parent.location='#galeria'\"  href='#' class='btn btn-info dropdown-toggle' data-toggle='dropdown' aria-expanded='false'>
-                     <i class='fa fa-picture-o' aria-hidden='true'></i>
-                </a>
-					<ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    <li title='' data-toggle='tooltip' data-placement='auto' data-html='true' data-original-title='Toma una foto'>
-                    <a href='#galeria' onclick =\"xajax_formulario_embebido_ajax('','$id','','nuevo');\">
-                    <h1>
-                    
-                    <i class='fa fa-plus fa-6' aria-hidden='true'></i>
-                    <i class='fa fa-camera-retro fa-6' aria-hidden='true'></i>
-                    </h1>
-                    </a>
-                    </li>
-                </ul>
-	</div>	
-                ";
-	
-	}else{
-$camara= "
-	<li class='list-inline-item'>
-		<a title='Galería'  class='btn btn-info ' href='#galeria' >
-			<i class='fa fa-picture-o' aria-hidden='true'></i>
-		</a>
-	</li>";	
-	}
-		  		$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="<div class='list-inline' >
-
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]/milfs/api.php?id=$id'> {json}</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]/milfs/api.php?id=$id&tipo=simple'> {json simple}</a>
-  $mapa
-
-  <li  class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]l$id'>Informe</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]b$id?registros=10'>Mostrar</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]f$id?registros=10'>Llenar</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]g$id'>Embeber</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]opendata.php?tipo=documento&id=$id'>Doc</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]opendata.php?tipo=svg&id=$id'>SVG</a></li>
-
-
-</div>";
-
-}
-
-elseif($tipo=="aplicacion"){
-$acciones="
-	<div class='list-inline' >
-	<li class='list-inline-item'><a title='Inicio'  class='btn btn-info ' href='#inicio' ><i class='fa fa-home' aria-hidden='true'></i></a></li>
-	<li class='list-inline-item'><a title='Listado'  class='btn btn-info ' href='#listado' ><i class='fa fa-list' aria-hidden='true'></i></a></li>
-	$mapa_aplicacion 
-	$galeria_aplicacion
-	<li class='list-inline-item'><a title='Estadisticas'  class='btn btn-info ' href='#/estadisticas' ><i class='fa fa-area-chart' aria-hidden='true'></i></a></li>
-	<li class='list-inline-item'><a onclick =\"xajax_compartir('$id',''); \" title='Compartir'  class='btn btn-info ' href='#compartir' ><i class='fa fa-share-alt' aria-hidden='true'></i></a></li>
-	$agregar
-	<li class='list-inline-item'><a href='#' onclick=\"imprimir_registros() \";title='Imprimir'  class='btn btn-info ' href='#' ><i class='fa fa-print' aria-hidden='true'></i></a></li>
-	<li class='list-inline-item'><a onclick =\"javascript:location.reload(true) \" title='Actualizar'  class='btn btn-info ' href='#' ><i class='fa fa-refresh' aria-hidden='true'></i></a></li>
-
-	</div>
-	<script>
-function imprimir_registros() {
-    var cantidad;
-    var registros = prompt('Cuantos registros desea imprimir en cada página?', '5');
-    if (registros == null || cantidad == '') {
-        alert('La impresión se ha cancelado !');
-    } else {
-		 alert('Un momento por favor: se imprimirán '+registros+' registros por página');
-         window.open(\"p$id?registros=\" + registros + \"&print\", 'impresion');
-    }
-     
-    
-}
-</script>";
-}
-
-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="
-<div class='row text-center' role='row ' >
-		<div class='col-md-2'>
-          <h1>Compartir:</h1>
-		</div>
-		<div class='col-md-1'>
-          <a class='btn btn-success  btn-block' href='$url' target='_blank'><i class='fa fa-share-alt fa-6' aria-hidden='true' style=' font-size: $size !important;'></i></a>
-		</div>
-		<div class='col-md-1'>
-          <a target='redes' class='btn btn-success  btn-block' href='http://twitter.com/share?url=$url&amp;text=$twitter'><i class='fa fa-twitter fa-6' style=' font-size: $size !important;'></i></a> 
-		</div>
-		<div class='col-md-1'>
-		          <a target='redes' class='btn btn-success btn-block' href='https://www.facebook.com/sharer/sharer.php?u=$url'><i class='fa fa-facebook-official fa-6' style=' font-size: $size !important;'></i></a>
-       		</div>
-		<div class='col-md-1'>
-		   <a target='redes' class='btn btn-success btn-block' href='mailto://?subject=$titulo[0]&body=$impresion $url '><i class='fa fa-envelope-o fa-6' style=' font-size: $size !important;'></i></a>
-		</div>
-		<div class='col-md-1'>
-		          <a target='redes' class='btn btn-success btn-block' href=\"javascript:window.open('https://t.me/share/url?url='+encodeURIComponent(window.location.href), '_blank')\" data-action=''><i class='fa fa-telegram' aria-hidden='true'  style=' font-size: $size !important;'></i></a>
-      		</div>
-		<div class='col-md-1'>
-		    <a target='redes' class='btn btn-success btn-block'  href='whatsapp://send?text=$url' data-action='share/whatsapp/share'><i class='fa fa-whatsapp' aria-hidden='true'  style=' font-size: $size !important;'></i></a>
-
-		</div>
-		<div class='col-md-1'>
-		          <a class='btn btn-success btn-block' href='https://qwerty.co/qr/?d=$url' target='_blank'><img src='https://qwerty.co/qr/?d=$url' style=' height: $size !important;'></a>
-          
-      </div>
-</div>
-
-";
-}
-
-$encabezado ="<h1>$titulo[0]<small>$descripcion[0]</small></h1>";
-			$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 .= "<li > <a class='btn btn-link'  onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" >$valor_actual </a> </li>";
-//onclick="xajax_portal_filtro_cadena('74','566','eab23a3e8e815f46a371a43ba9abc9ea','mostrar_resultado','landingpage') "
-
-}
-
-}
-/*$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-			$resultado
-			</div>";
-	*/
-		$resultado="
-			<div class='dropdown'>
-				<button class='col-xs-12 col-sm-12 btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				Filtro $campo_nombre[0] <i class='glyphicon glyphicon-filter'></i>
-				 <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $listado
-				 </ul>
-		 	</div>
-	";
-
-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.= "<li><a href='$onchange=$row[$value]'> ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id <img class='img img-rounded' src='milfs/images/secure/?file=150/$row[imagen]' style='max-height:30px;'> </a></li>";
-			}
-		}
-		$resultado="
-			<div class='dropdown'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				$nombre
-				 <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $lis
-				 </ul>
-		 	</div>
-	";
-	}
-	else{
-		$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0019</div>";
-	}
-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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = "
-
-";
-
-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]",'','presentacion');
-
-	$contenido  .= "$contenido_desplegado ";
-
-														}
- 	$contenido = "
-        	$contenido
-      ";
-										}else{$contenido = "";}
-
-
-		return $contenido;
-
-}
-$xajax->registerFunction("contenido_presentacion");
-
-
-
-function formulario_contar_registros($id,$id_campo,$id_empresa,$clave) {
-		$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-
-	if($id_empresa ==""){$empresa="";}else{$empresa ="AND id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'";}
-	if($clave ==""){$clave="";}else{$clave ="AND contenido LIKE '%%".mysqli_real_escape_string($link,$clave)."%%'";}
-	if($id_campo ==""){$w_id_campo="";}else{$w_id_campo ="AND id_campo = '".mysqli_real_escape_string($link,$id_campo)."' ";}
-$consulta ="SELECT distinct(contenido)   FROM form_datos WHERE form_id = '".mysqli_real_escape_string($link,$id)."' $w_id_campo $empresa $clave  ";
-
-		$sql=mysqli_query($link,$consulta);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_num_rows($sql);
-		}else {$resultado =0;}
-return $resultado ;
-}
-
-
-function formulario_campo_semantico($cadena,$formulario,$tipo,$accion) {
-		$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-$consulta ="SELECT id_campo,campo_nombre,campo_descripcion FROM `form_campos` , form_contenido_campos
-				WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='".mysqli_real_escape_string($link,$formulario)."' AND campo_nombre LIKE '%%".mysqli_real_escape_string($link,$cadena)."%%'
-				GROUP BY id_campo ";
-$consulta_todos ="SELECT id_campo,campo_nombre,campo_descripcion FROM `form_campos` , form_contenido_campos
-				WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='".mysqli_real_escape_string($link,$formulario)."' AND campo_nombre NOT LIKE '%%".mysqli_real_escape_string($link,$cadena)."%%'
-				GROUP BY id_campo ";
-
-$sql=mysqli_query($link,$consulta_todos);
-if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-				$lista.="<li class='list-group-item ' title='$row[campo_descripcion]'><input type='radio' value='$row[id_campo]' id='$cadena' name='$cadena' > $row[campo_nombre] </li>";
-					}
-					}
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-				$lista_todos.="<li class='list-group-item list-group-item-success' title='$row[campo_descripcion]'><input type='radio' value='$row[id_campo]' id='$cadena' name='$cadena' > $row[campo_nombre]</li>";
-				$id =$row['id_campo'];
-					}
-					}
-if($tipo=='preciso') {
-	$resultado="$id";
-}else{
-	$resultado="<ul class='item-list'>$lista_todos $lista </ul>";
-}
-return $resultado ;
-}
-
-
-function marcar($mensaje,$div) {
-
-
-
-	$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("$div","innerHTML","$mensaje");
-			return $respuesta;
-
-}
-$xajax->registerFunction("marcar");
-
-
-
-function mailer($accion,$formulario,$campo,$empresa){
-	if($_SESSION['id'] != 1) {
-		return;
-	}
-	$respuesta = new xajaxResponse('utf-8');
-	$boton="<div class='btn btn-default' onclick=\"xajax_mailer('listado','','',''); \" >Listas de correo</div>";
-	if($accion=="") {
-
-	return $boton;
-	}
-
-
-		$link=Conectarse();
-				mysqli_set_charset($link, "utf8");
-	if($accion =="listado") {
-		$consulta ="
-			SELECT form_id.id_empresa, razon_social, nombre AS nombre_formulario, descripcion AS descripcion_formulario, form_contenido_campos.id_form , form_contenido_campos.id_campo ,form_campos.campo_nombre
-			FROM form_datos, empresa, `form_campos` , form_contenido_campos , form_id
-			WHERE form_datos.id_campo = form_campos.id AND form_id.id_empresa = empresa.id AND`form_campos`.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = form_id.id AND ( campo_tipo ='12' OR campo_tipo ='13')
-			GROUP BY form_id.id_empresa,form_contenido_campos.id_form , form_contenido_campos.id_campo
-			ORDER BY razon_social,form_id.nombre
-			";
-		$sql=mysqli_query($link,$consulta);
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-					$cantidad = formulario_contar_registros("$row[id_form]","$row[id_campo]","$row[id_empresa]","");
-					$consulta_cantidad = $cantidad;
-					if ($consulta_cantidad > 0 ){$cantidad = "<div class='btn btn-default btn-xs ' onclick=\"xajax_mailer('seleccion','$row[id_form]','$row[id_campo]','$row[id_empresa]'); \" > Enviar $cantidad <span class='glyphicon glyphicon-envelope' aria-hidden='true'></span></div>";}
-					else{$cantidad ="";}
-					$opciones .="<li class='list-group-item'>$row[razon_social] / <strong>$row[nombre_formulario]</strong> / $row[campo_nombre]  $cantidad</li>";
-					}
-
-					$resultado="
-					<ul class='list-group'>
-						 $opciones
-					</ul>
-
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-	}
-
-
-
-	if($accion =="seleccion") {
-			$consulta ="
-			SELECT *
-			FROM form_datos
-			WHERE form_datos.id_campo = '".mysqli_real_escape_string($link,$campo)."'
-				AND form_datos.id_empresa = '".mysqli_real_escape_string($link,$empresa)."'
-				AND form_datos.form_id = '".mysqli_real_escape_string($link,$formulario)."'
-
-			GROUP BY contenido
-			ORDER BY contenido
-			";
-	$sql=mysqli_query($link,$consulta);
-	$cantidad_mensajes = mysqli_num_rows($sql);
-	$listado_campos = formulario_campo_semantico("nombre","$formulario",'','');
-	$nombre_lista =  remplacetas("form_id","id","$formulario","Nombre","");
-
-	$delay = 9;
-	$tiempo= ($cantidad_mensajes * $delay);
-	$tiempo = conversorSegundosHoras($tiempo);
-			$formato ="
-			<div class='container' id='div_formato'>
-				<form autocomplete='off' id='formato_mensaje' name='formato_mensaje'>
-				<label>Seleccione un campo para el personalizar el nombre</label>
-				<div style='max-height:150px; overflow:auto'>$listado_campos</div>
-					<br>
-					<div class='input-group'>
-						<span class='input-group-addon'>Asunto:</span>
-						<input class='form-control' id='asunto' name='asunto' placeholder='asunto del mensaje'>
-					</div>
-					<div class='form-group'>
-						<label for='mensaje'>Cuerpo del mensaje</label> <div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-						<textarea id='mensaje' name='mensaje' class='wysiwyg form-control' placeholder='Texto del mensaje'></textarea>
-					</div>
-					<input type='hidden' name='formulario' id='formulario' value='$formulario'>
-					<input type='hidden' name='campo' id='campo' value='$campo'>
-					<input type='hidden' name='empresa' id='empresa' value='$empresa'>
-					<input type='hidden' name='delay' id='delay' value='$delay'>
-
-					<div class='btn btn-warning pull-right' onclick=\"xajax_marcar('<div class=\'alert alert-warning\'><h2>Enviando $cantidad_mensajes Mensajes <small>El envío tardará $tiempo aproximadamente, se le enviará un correo cuando halla finalizado. </small></h2></div> ','div_formato');xajax_mailer('enviar',xajax.getFormValues('formato_mensaje'),'',''); \">Enviar</div
-					<div class='btn btn-success pull-right' onclick=\"xajax_mailer('preview',xajax.getFormValues('formato_mensaje'),'',''); \">Preview</div>
-					<br>
-				</form>
-				<div id='preview'></div>
-			</div>
-			<br>
-
-
-			";
-
-
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-						$validar_email = validar_email("$row[contenido]");
-						$div="$row[control]";
-
-					$opciones .="<li class='list-group-item'>$row[contenido] $validar_email $row[control] <div id='$div'></div></li>";
-					}
-
-					$resultado="
-
-					<h3>$nombre_lista[0] [$formulario]</h3>
-					$formato
-					<ul class='list-group'>
-						 $opciones
-					</ul>
-
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-
-	}
-if($accion =="enviar" OR $accion =="preview" ) {
-	$id_campo = $formulario['campo'];
-	$campo_nombre = $formulario['nombre'];
-
-	$id_empresa = $formulario['empresa'];
-	$id_formulario = $formulario['formulario'];
-	$asunto = $formulario['asunto'];
-	$mensaje = $formulario['mensaje'];
-	$mensaje .="<hr><h4>Enviado desde <a href='https://tupale.co'>https://tupale.co / $id_formulario</a></h4>";
-	//$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-	$delay = $formulario['delay'];
-		$consulta ="
-			SELECT *
-			FROM form_datos
-			WHERE form_datos.id_campo = '".mysqli_real_escape_string($link,$id_campo)."'
-				AND form_datos.id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'
-				AND form_datos.form_id = '".mysqli_real_escape_string($link,$id_formulario)."'
-
-			GROUP BY contenido
-			ORDER BY contenido
-			";
-
-			$sql=mysqli_query($link,$consulta);
-
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-				//	mysqli_data_seek($sql, 0);
-					$id_empresa= "$_SESSION[id_empresa]";
-		$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","");
-								$headers = "MIME-Version: 1.0\r\n";
-								$headers .= "Content-type: text/html; charset=iso-utf-8\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";
-
-
-if($accion =="enviar") {
-
-
-					while( $row = mysqli_fetch_array( $sql ) ) {
-
-	$nombre = remplacetas('form_datos','form_id',"$id_formulario","contenido"," id_campo='$campo_nombre' AND control = '$row[control]'") ;
-	$nombre= $nombre[0];
-	//$nombre = "BEREMUNDO";//$nombre[0];
-//	eval("\$asunto_preview = \" $asunto \";");
-//	eval("\$mensaje_preview = \"$mensaje \";");
- $campos= array('{nombre}','{debug}');
- $remplazos= array("$nombre",'Hola');
-	 $asunto_preview = str_replace($campos,$remplazos, $asunto);
-	 $mensaje_preview = str_replace($campos,$remplazos, $mensaje);
-
-
-	$preview ="
-<h2>$asunto_preview</h2>
-
-<div>
-
-$mensaje_preview
-</div><hr>
-	";
-$envio = mail("$row[contenido]",$asunto_preview,"$mensaje_preview ","$headers");
-if($envio){ $cantidad++ ; $confirmacion .= "$row[contenido] ";}
-sleep($delay);
-					}
-mail("info@tupale.co","[ Envio completo $row[form_id] ] $asunto","$confirmacion $mensaje","$headers");
-
-				$respuesta->addAssign("preview","innerHTML","$preview");
-
-			return $respuesta;
-
-}
-$cantidad =0;
-			//		mysqli_data_seek($sql, 0);
-					while( $row = mysqli_fetch_array( $sql ) ) {
-							$nombre = remplacetas('form_datos','form_id',"$id_formulario","contenido"," id_campo='$campo_nombre' AND control = '$row[control]'") ;
-	$nombre= $nombre[0];
-	//$nombre = "BEREMUNDO";//$nombre[0];
-//	eval("\$asunto_preview = \" $asunto \";");
-//	eval("\$mensaje_preview = \"$mensaje \";");
- $campos= array('{nombre}','{debug}');
- $remplazos= array("$nombre",'Hola');
-	 $asunto_preview = str_replace($campos,$remplazos, $asunto);
-	 $mensaje_preview = str_replace($campos,$remplazos, $mensaje);
-
-
-	$preview ="
-<h2>$asunto_preview</h2>
-
-<div>
-
-$mensaje_preview
-</div><hr>
-	";
-					}
-				//	mail("info@tupale.co","[ Envio completo $row[form_id] ] $asunto","$confirmacion $mensaje","$headers");
-					$resultado="
-					<div class='alert alert-success'><h1>Mensajes Enviados, puede continuar.</h1></div>
-
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-				//	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-				//	return $respuesta;
-			$respuesta->addAssign("preview","innerHTML","$preview");
-
-			return $respuesta;
-	}
-
-
-			$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h1>Listas de correo $boton</h1>");
-			//$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("mailer");
-
-
-function formulario_permitidos($form_id,$usuario,$onchange,$accion){
-
-if($accion =="listado"){
-$link=Conectarse();
-				mysqli_set_charset($link, "utf8");
-				mysqli_real_escape_string($link,$usuario);
-				$consulta ="
-					SELECT * FROM `form_parametrizacion` WHERE tabla ='id_usuario' AND campo = '$usuario'
-					AND  descripcion ='autorizacion' ";
-				$sql=mysqli_query($link,$consulta);
-				if($sql){
-						if (mysqli_num_rows($sql)!='0'){
-							mysqli_data_seek($sql, 0);
-
-							while( $row = mysqli_fetch_array( $sql ) ) {
-					$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$row[opcion]",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-
-							$opciones .="<option value='$row[opcion]'> $nombre /$descripcion </option>";
-							}
-
-							$resultado="
-
-							<select class='form-control' onchange = \"$onchange \">
-							<option value=''> Seleccione </option>
-								$opciones
-
-							</select>
-
-							";}
-						else { $resultado="<span class='text-danger'>No hay formularios autorizados</span>";}
-							}
-return $resultado;
-}
-}
-
-
-function formulario_permisos_usuario($form_id,$usuario,$accion){
-
-if($accion =="listado"){
-$link=Conectarse();
-				mysqli_set_charset($link, "utf8");
-				mysqli_real_escape_string($link,$usuario);
-				$consulta ="
-					SELECT * FROM `form_parametrizacion` WHERE tabla ='id_usuario' AND campo = '$usuario'
-					AND  descripcion ='autorizacion' ";
-				$sql=mysqli_query($link,$consulta);
-				if($sql){
-					//	if (mysqli_num_rows($sql)!='0'){
-							mysqli_data_seek($sql, 0);
-							$opciones ="<tr><th class='text-center'>Formulario</th><th></th></tr>";
-							while( $row = mysqli_fetch_array( $sql ) ) {
-					$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$row[opcion]",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-							$revocar= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','div_$row[id]'); \">
-									<i class='glyphicon glyphicon-trash'></i> Revocar
-								</div>";
-							$opciones .="<tr id='div_$row[id]'><td><strong>$nombre </strong> $descripcion </td><td>$revocar</td></tr>";
-							}
-
-							$resultado="
-
-							<table id='listado_permisos_linea' class='table table-condensed table-striped table-hover'>
-
-								$opciones
-								<div class='' ></div>
-							</table>
-
-							";
-					//	}
-							}
-return $resultado;
-}
-if($form_id =="") {
-	$listado = formulario_permisos_usuario("$form_id","$usuario","listado");
-	$listado_formularios = select_key('form_id,form_grupo','id','form_id.id','nombre',"xajax_formulario_permisos_usuario((this.value),'$usuario','grabar')","form_id.id_empresa = '$_SESSION[id_empresa]' AND form_id.id = form_grupo.id  ",'tipo_consulta');
-	$listado_formularios= "
-			<div class='input-group'>
-				<span class='input-group-addon'>
-					Permisos:
-				</span>
-				$listado_formularios
-			</div>
-			<div class='hidden' id='autorizacion_confimar'></div>
-			<div class='list-group' id='listado_permisos'>
-			$listado
-			</div>
-	";
-	return $listado_formularios;
-	}
-
-
-
-//	$resultado = "<li class='list-group-item'><div class='btn btn-danger btn-xs'><i class='glyphicon glyphicon-trash'></i> X </div> <strong>$nombre</strong> $descripcion</li>";
-	$respuesta = new xajaxResponse('utf-8');
-	if($accion =="grabar") {
-		$existe = remplacetas('form_parametrizacion','campo',"$usuario",'opcion',"opcion='$form_id' and  descripcion = 'autorizacion'") ;
-		if( $existe[0] == $form_id ) {
-		$respuesta->addAlert("El usuario ya está autorizado para usar ese formulario ");
-		return $respuesta;
-		}
-					$nombre = remplacetas('form_id',"id","$form_id",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$form_id",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-						$insertar = parametrizacion_linea('id_usuario',"$usuario","$form_id",'autorizacion','','','');
-						$revocar= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','insertar','div_insertar'); \">
-									<i class='glyphicon glyphicon-trash'></i> Revocar
-								</div>";
-									$linea ="<tr id='div_insertar'><td><strong>$nombre nombre </strong> $descripcion </td><td>$revocar</td></tr>";
-			//$respuesta->addScript("xajax_parametrizacion_linea('id_usuario','$usuario','$form_id','autorizacion','autorizacion_confimar')");
-			//$actualizado = formulario_permisos_usuario("$form_id","$usuario","listado");
-	$respuesta->addAppend("listado_permisos_linea","innerHTML","$linea");
-	return $respuesta;
-
-	}
-
-
-
-
-
-$respuesta->addAssign("listado_permisos","innerHTML","$resultado");
-
-			return $respuesta;
-
-}
-$xajax->registerFunction("formulario_permisos_usuario");
-
-
-function adjuntar_basico($id){
-
-$formulario= '
-<script>
-/*jslint unparam: true */
-/*global window, $ */
-$(function () {
-    "use strict";
-    // Change this to the location of your server-side upload handler:
-    var url = "plugins/upload/server/php/";
-    $("#fileupload").fileupload({
-        url: url,
-        dataType: "json",
-      	param_names: "files_33",
-        done: function (e, data) {
-            $.each(data.result.files_33, function (index, file) {
-                $("<p/>").text(file.name).appendTo("#files_33");
-            });
-        },
-        progressall: function (e, data) {
-            var progress = parseInt(data.loaded / data.total * 100, 10);
-            $("#progress .progress-bar").css(
-                "width",
-                progress + "%"
-            );
-        }
-    }).prop("disabled", !$.support.fileInput)
-        .parent().addClass($.support.fileInput ? undefined : "disabled");
-});
-</script>
-  ';
-  $formulario .= "
-	<!-- 	UPLOAD  -->
-
-	 <!-- Button to select & upload files -->
-  <span class='btn btn-success fileinput-button'>
-    <span>Select files...</span>
-    <!-- The file input field used as target for the file upload widget -->
-    <input id='fileupload' type='file' name='files_33' multiple>
-  </span>
-
-
-  <!-- The global progress bar -->
-  <p>Upload progress</p>
-  <div id='progress' class='progress progress-success progress-striped'>
-    <div class='bar'></div>
-  </div>
-
-
-
-  <!-- The list of files uploaded -->
-  <p>Files uploaded:</p>
-  <ul id='files_33'></ul>
-
-
-
-	<!-- 	UPLOAD  -->
-
-";
-
-return $formulario;
-}
-
-
-function adjuntar($id){
-
-$formulario= '
-		 <script>
-
-
-/*jslint unparam: true, regexp: true */
-/*global window, $ */
-$(function () {
-    "use strict";
-    // Change this to the location of your server-side upload handler:
-    var url = "plugins/upload/server/php/",
-        uploadButton = $("<button/>")
-            .addClass("btn btn-primary")
-            .prop("disabled", true)
-            .text("Processing...")
-            .on("click", function () {
-                var $this = $(this),
-                    data = $this.data();
-                $this
-                    .off("click")
-                    .text("Abort")
-                    .on("click", function () {
-                        $this.remove();
-                        data.abort();
-                    });
-                data.submit().always(function () {
-                    $this.remove();
-                });
-            });
-    $("#fileupload").fileupload({
-        url: url,
-        dataType: "json",
-        autoUpload: false,
-        acceptFileTypes: /(\.|\/)(gif|jpe?g|png|pdf|txt|csv|odt|gpx)$/i,
-        maxFileSize: 999000,
-        //formData: [{ name: "custom_dir", value: "/var/www/images_secure/" }],
-        // 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),
-        previewMaxWidth: 100,
-        previewMaxHeight: 100,
-        previewCrop: true
-    }).on("fileuploadadd", function (e, data) {
-        data.context = $("<div/>").appendTo("#files");
-        $.each(data.files'.$id.', function (index, file) {
-            var node = $("<p/>")
-                    .append($("<span/>").text(file.name));
-            if (!index) {
-                node
-                    .append("<br>")
-                    .append(uploadButton.clone(true).data(data));
-            }
-            node.appendTo(data.context);
-
-        });
-    }).on("fileuploadprocessalways", function (e, data) {
-        var index = data.index,
-            file = data.files'.$id.'[index],
-            node = $(data.context.children()[index]);
-        if (file.preview) {
-            node
-                .prepend("<br>")
-                .prepend(file.preview);
-        }
-        if (file.error) {
-            node
-                .append("<br>")
-                .append($("<span class=\'text-danger\'/>").text(file.error));
-        }
-        if (index + 1 === data.files.length) {
-            data.context.find("button")
-                .text("Upload")
-                .prop("disabled", !!data.files.error);
-        }
-    }).on("fileuploadprogressall", function (e, data) {
-        var progress = parseInt(data.loaded / data.total * 100, 10);
-        $("#progress .progress-bar").css(
-            "width",
-            progress + "%"
-        );
-    }).on("fileuploaddone", function (e, data) {
-        $.each(data.result.files'.$id.', function (index, file) {
-            if (file.url) {
-                var link = $("<a>")
-                    .attr("target", "_blank")
-                    .prop("href", file.url);
-                $(data.context.children()[index])
-                    .wrap(link);
-            } else if (file.error) {
-                var error = $("<span class=\'text-danger\'/>").text(file.error);
-                $(data.context.children()[index])
-                    .append("<br> ")
-                    .append(error);
-            }
-        });
-    }).on("fileuploadfail", function (e, data) {
-        $.each(data.files'.$id.', function (index) {
-            var error = $("<span class=\text-danger\'/>").text("File upload failed.");
-            $(data.context.children()[index])
-                .append("<br>")
-                .append(error);
-        });
-    }).prop("disabled", !$.support.fileInput)
-        .parent().addClass($.support.fileInput ? undefined : "disabled");
-});
-  </script>
-  ';
-  $formulario .= "
-	<!-- 	UPLOAD  -->
-
-	 <!-- Button to select & upload files -->
-  <span class='btn btn-success fileinput-button'>
-    <span>Select files...</span>
-    <!-- The file input field used as target for the file upload widget -->
-    <input id='fileupload' type='file' name='files".$id."[]' multiple>
-  </span>
-
-
-  <!-- The global progress bar -->
-  <p>Upload progress</p>
-  <div id='progress' class='progress progress-success progress-striped'>
-    <div class='bar'></div>
-  </div>
-
-
-
-  <!-- The list of files uploaded -->
-  <p>Files uploaded:</p>
-  <ul id='files'></ul>
-
-
-
-	<!-- 	UPLOAD  -->
-
-";
-
-return $formulario;
-}
-
-
-function identificador_resaltado($id_empresa,$tipo) {
-
-$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-	if($resaltado[0] !="") {
-	$resaltado = mostrar_identificador("$resaltado[0]","","resaltado",'',"");
-
-	}else{
-	$resaltado ="";
-
-	}
-
-return $resaltado;
-
-
-}
-
-function generar_acceso($identificador,$tipo,$datos){
-	$respuesta = new xajaxResponse('utf-8');
-$formulario = 	remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-$publico = remplacetas('form_id','id',"$formulario[0]",'publico',"") ;
-$permiso_actual = 	remplacetas('form_permisos','control',"$identificador",'permiso',"") ;
-$ahora = time();
-$un_dia = $ahora + 86400;
-$un_dia=date('Y-m-d' , $un_dia);
-	if($permiso_actual[0] !="") {
-	$vencimiento_permiso_actual = 	remplacetas('form_permisos','control',"$identificador",'vencimiento',"") ;
-	$fecha_vencimiento_permiso_actual = "Válido hasta: ".date ( "Y-m-d H:i:s" , $vencimiento_permiso_actual[0]);
-	$revocar ="
-				<div class='col-md-2'>
-					<div class='input-group '>
-						<div class='btn btn-danger btn-block' onClick=\"xajax_generar_acceso('$identificador','revocar','')\" >Revocar</div>
-					</div>
-				</div>";
-	}else {
-
-	$fecha_vencimiento_permiso_actual = "";
-	}
-
-
-
-
-
-
-
-if($tipo =="") {
-	if($publico[0] != '1') {
-		if($permiso_actual[0] !=="") {
-			$boton = "	<a class='btn btn-default btn-block btn-xs btn-warning'  onClick=\"xajax_generar_acceso('$identificador','consultar','')\">
-	 Cambiar acceso <i class='glyphicon glyphicon-unlock'></i></span></a>";
-		}
-		else{
-	$boton = "	<a class='btn btn-default btn-block btn-xs'  onClick=\"xajax_generar_acceso('$identificador','consultar','')\">
-	Generar acceso <i class='glyphicon glyphicon-lock'></i></span></a>";
-		}
-	}
-	else { $boton ="<span class='text-warning '>Contenido público <i class='glyphicon glyphicon-unlock'></i></span>";	}
-		return $boton;
-	}
-elseif($tipo=="consultar") {
-	$resultado ="
-
-		<div class='row'>
-			<div class='col-md-5'>
-				<div id='mostrar_permiso'>
-					<p>
-						<a href='../i$identificador$permiso_actual[0]' target='_blank'>$permiso_actual[0]</a>
-						<br><small>$fecha_vencimiento_permiso_actual</small>
-
-					</p>
-				</div>
-
-			</div>
-			<div class='col-md-5'>
-				<div class='input-group '>
-					<input type='date' class='form-control' value='$un_dia' placeholder='Fecha de vencimiento' id='vencimiento' name='vencimiento'>
-					<span class='input-group-btn'>
-					<div class='btn btn-warning' onClick=\"xajax_generar_acceso('$identificador','crear',document.getElementById('vencimiento').value ); \" >Generar nuevo acceso</div>
-					</span>
-				</div>
-			</div>
-			$revocar
-		</div>
-
-	";
-
-}
-elseif($tipo=="crear") {
-	$permiso= rand().time();
-
-$consulta ="INSERT INTO `form_permisos` (`id`, `control`, `permiso`, `vencimiento`, `creacion`, `id_usuario`)
-					VALUES (NULL, '$identificador', SHA1('$permiso'), UNIX_TIMESTAMP('$datos'), CURRENT_TIMESTAMP, '$_SESSION[id]');";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($permiso_actual[0] !="") {
-	$borrar =" DELETE FROM form_permisos WHERE control='".mysqli_real_escape_string($link,$identificador)."' LIMIT 1";
-	$consulta_borrar =mysqli_query($link,$borrar);
-}
-	$consulta =mysqli_query($link,$consulta);
-	///xajax_generar_acceso('$identificador','consultar','')
-	$respuesta->addscript("xajax_generar_acceso('$identificador','consultar','')");
-	return $respuesta;
-
-}
-elseif($tipo=="revocar") {
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($permiso_actual[0] !="") {
-	$borrar =" DELETE FROM form_permisos WHERE control='".mysqli_real_escape_string($link,$identificador)."' LIMIT 1";
-	$consulta_borrar =mysqli_query($link,$borrar);
-	$revocado="<h1 class='alert-danger text-center'>El permiso fue revocado</h1>";
-	$respuesta->addAssign("mostrar_permiso","innerHTML","$revocado");
-	return $respuesta;
-}
-
-
-}
-else {}
-
-
-
-$regresar =" <a class='btn btn-default' onclick=\"xajax_consultar_formulario('$formulario[0]','10','','modal'); \"><i class='glyphicon glyphicon-arrow-left'></i> Regresar </a>";
-
-			$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;
-return $respuesta;
-}
-$xajax->registerFunction("generar_acceso");
-
-
-
-
-
-function resumen_identificador($identificador,$id_turno,$area,$formulario){
-
-if($formulario =="boton") {
-	$boton = "	<a class='btn btn-default  btn-xs'  onClick=\"xajax_resumen_identificador('$identificador','$id_turno','','')\"><i class='glyphicon glyphicon-eye-open'></i> Estructura</a>";
-		return $boton;
-	}
-$respuesta = new xajaxResponse('utf-8');
-$areas = mostrar_areas("$identificador",$id_turno,$autorizado);
-
-$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("muestra_form","innerHTML","$areas");
-			$formulario = 	remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-			$regresar =" <a class='btn btn-default' onclick=\"xajax_consultar_formulario('$formulario[0]','10','','modal'); \"><i class='glyphicon glyphicon-arrow-left'></i> Regresar </a>";
-			$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;
-return $respuesta;
-}
-$xajax->registerFunction("resumen_identificador");
-
-
-
-
-function mostrar_areas($identificador,$id_turno,$autorizado,$tipo){
-	$id="";
-	$cuadro_area="";
-	$area="";
-	$json_array="";
-	$valor_actual ="";
-		if(strlen($identificador) > 32) {
-	$identificador_original= $identificador;
-	$key =  substr($identificador, 32, $length = 40);
-	$identificador =  substr($identificador, 0, $length = 32);
-	}else {$identificador_original = $identificador;}
-//// seguridad ////
-
-
-	$control = mysql_seguridad($identificador);
-	if($id =="") {
-		$id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
-		$publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
-		$id_seguridad = $id_seguridad[0];
-
-	}else{
-		$publico = remplacetas('form_id','id',$id,'publico','') ;
-		$id_seguridad = $id;
-	}
-	if( isset($_SESSION['id_empresa']  )) { $id_empresa = $_SESSION['id_empresa'];}else { $id_empresa =""; }
-		$empresa_seguridad = remplacetas('form_id','id',$id_seguridad,'id_empresa','') ;
-		if($publico[0] != "1" ){
-		$permiso_actual = 	remplacetas('form_permisos','control',"$control",'permiso',"") ;
-		$permiso_vencimiento = 	remplacetas('form_permisos','control',"$control",'vencimiento',"") ;
-		if($permiso_actual[0] =="") {$sigue_restringido = 1;}
-		elseif($permiso_actual[0] != $key) {$sigue_restringido = 1;}
-		elseif($permiso_vencimiento[0] < time()) {$sigue_restringido = 1;}
-		else{$sigue_restringido ="";}
-
-		}
-
-		if($publico[0] != "1" and ( $id_empresa != $empresa_seguridad[0] ) AND $sigue_restringido !="" ) {
-		$resultado ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados </small>
-		<i class='glyphicon glyphicon-lock'></i></h1></div>";
-		return $resultado;
-
-																					}
-//// seguridad ////
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$listado_atenciones ="";
-
-	$sql_areas=" 	SELECT DISTINCT(form_datos.id_campo), form_campos.campo_area ,form_areas.nombre as consulta_area_nombre, form_datos.id
-						FROM form_datos, form_campos, form_areas
-						WHERE form_datos.control = '$identificador'
-						AND form_campos.id = form_datos.id_campo
-						AND form_datos.contenido != ''
-						AND	form_campos.campo_area = form_areas.id
-						GROUP BY form_campos.campo_area
-						ORDER BY form_areas.orden
-													";
-	$consulta_areas=mysqli_query($link,$sql_areas);
-if (mysqli_num_rows($consulta_areas)!='0'){/// si hay datos en la consulta
-while( $row = mysqli_fetch_array( $consulta_areas ) ) {//// se clasifica por area
-$cuadro_area .="<div class=''> <label>$row[consulta_area_nombre]</label >";
-$area = $row['campo_area'];
-$id_consulta_datos = $row['id'];
-/// los campos de cada area
-///se buscan los datos de la consulta
-$sql_datos_consulta ="
-		SELECT DISTINCT(form_datos.id_campo)AS id_campo ,form_datos.id,
-				form_datos.contenido, form_campos.campo_nombre ,
-				form_campos.campo_descripcion ,
-				form_datos.form_id,
-				form_datos.control,
-				form_datos.orden
-		FROM form_datos, form_campos
-		WHERE form_datos.control = '$identificador'
-		AND form_campos.id = form_datos.id_campo
-		AND form_campos.campo_area = '$area'
-		GROUP BY id_campo,form_datos.orden
-		ORDER BY form_datos.id_campo, form_datos.orden ASC, timestamp DESC
-
-					";
-
-$datos_consulta=mysqli_query($link,$sql_datos_consulta);
-//$estado_turno = usuario_datos_consultar($id_turno,'turnos_usuario','estado');
-if (mysqli_num_rows($datos_consulta)!='0'){
-
-$json_array = array();
-$listado_atenciones = "
-								<table id='tabla_estructura_$identificador' style='' class='tabla_datos table table-hover table-striped table-bordered table-condensed table-responsive'  >
-								 ";
-
-while( $row = mysqli_fetch_array( $datos_consulta ) ) {
-
-	//// PRIVACIDAD
-			$privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
-			$privacidad = $privado;
-			$privado = explode(":",$privado[0]);
-			if(isset($privado[1])) {
-			$privado = $privado[1];}
-/// PRIVACIDAD
-///if($privado !='1') {
-
-	if( !is_null($row['orden'])) { $orden_multiple ="and orden ='$row[orden]' ";}else { $orden_multiple ="";}
-		$contenido = 	remplacetas('form_datos','form_id',"$row[form_id]",'contenido'," id_campo ='$row[id_campo]' and control ='$identificador' $orden_multiple ") ;
-		if($contenido[0] !="" AND $privado !="1") {
-			$tipo_campo = remplacetas('form_campos','id',"$row[id_campo]",'campo_tipo',"") ;
-			if($tipo_campo[0] =="15" ) {$imagen ="<img style='' class='lazy img img-responsive imagen_estructurada' src='$_SESSION[site]milfs/images/secure/?file=300/$contenido[0]'> "; $contenido[0]="";}else{$imagen ="";}
-			if($tipo_campo[0] =="6" ) {$contenido[0] =imprimir_buscador_campo("$row[id_campo]",$contenido[0]) ; }
-			if($tipo_campo[0] =="29" ) {$contenido[0] ="<img class='img img-responsive'  src='$contenido[0]'> "; }//$contenido="<img class='img img-responsive'  src='$contenido'>";
-			if($tipo_campo[0] =="31" ) {
-				$link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
-				$contenido[0] = "<a id='link_$row[id_campo]_$row[orden]' href='$link_url' target='_blank' >$contenido[0]</a>";				
-				}
-			if($tipo_campo[0]=='10'){
-				$render = relacion_render("$row[form_id]","$row[id_campo]",$contenido[0],'5','');
-			 $contenido[0] = "$valor_actual";}
-			else {$render=html_entity_decode($contenido[0]);}
-			if($tipo_campo[0]=='24' or $tipo_campo[0]=='30'){ $render= json_render("$contenido[0]","html","$control");}
-
-			 
-$json_array[$row['campo_nombre']."_titulo"] = "$contenido[0]";
-			//imprimir_buscador_campo($id_campo,$valor)
-$listado_atenciones .= "<tr >
-										<td  class='small'  width='25%' title=' ($row[id_campo]) ".$row['campo_descripcion']." '> ".$row['campo_nombre'].": </td>
-										<td style=' word-wrap: break-word;'>$imagen <strong class='' style=' word-wrap: break-word;'> $render </strong> </td>
-									</tr>";
-								}else { $listado_atenciones .= "";}
-															}/// fin d el array para datos de la consulta
-
-$listado_atenciones = "<div class='contenedor_estructura'>$listado_atenciones</table></div>";
-
-										} else { }/// fin de si hay resultados en $datos_consulta
-
-/// fin de los campos de cada area
-$cuadro_area .=" $listado_atenciones </div> ";
-															}
-
-
-										}		else{$listado_atenciones.=" <tr><td>No hay resultados 0020</td></tr>"; $cuadro_area ="$listado_atenciones ";}
-
-//																	}///fin de las atenciones mostradas por timestamp
-
-///												}/// fin de las atenciones en ese turno
-
-///											else{$listado_atenciones.="";}
-/// fin de la clasificacion de atenciones por timestamp
-
-//$nombre_paciente = usuario_datos_consultar($id_usuario,'usuario','nombre_completo');
-$nuevo_select = "<h2>Resumen de atenciones </h2>
-
-
-
-$area
-
-
-
-";
-if($tipo == "api" ) {
-//print_r($sql_datos_consulta);
-return $json_array;
-}
-else{
-return $cuadro_area;
-	}
-}
-
-
-
-
-function borrar_linea($tabla,$id,$div){
-	if($usuario =="") {
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$id);
-	mysqli_real_escape_string($link,$tabla);
-	$consulta ="DELETE FROM $tabla WHERE `id` = '$id' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){ $resultado ="<div class='alert alert-success text-center '>El registro fue eliminado</div>"; }
-	else { $resultado ="<div class='alert alert-warning text-center '>No se pudo eliminar el registro</div>"; }
-	}
-	if($div =="") {
-		return ;
-	}else{
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-	}
-
-
-}
-$xajax->registerFunction("borrar_linea");
-
-
-
-function autorizar_usuarios($usuario,$grupo,$accion){
-	if($usuario =="") {
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$usuario);
-	$consulta ="
-		SELECT *, form_parametrizacion.id as id, usuarios.id as usuario FROM `form_parametrizacion`, usuarios WHERE form_parametrizacion.campo = usuarios.id
-		AND  form_parametrizacion.id_empresa ='$_SESSION[id_empresa]' AND descripcion ='autorizacion' ORDER BY p_nombre ASC";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				$opciones ="<tr><th>Nombres</th><th>Email</th><th>Rol</th><th>Acción</th></tr>";
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$rol ="
-				<div id='autorizacion_confimar_$row[id]'>
-					<select class='form-control'  onchange= \"
-							xajax_borrar_linea('form_parametrizacion','$row[id]','borrar_$row[id]')
-							xajax_parametrizacion_linea('id_empresa','$row[usuario]',(this.value),'autorizacion','autorizacion_confimar_$row[id]') \">
-						<option value= '$row[opcion]' selected >".ucfirst ($row['opcion'])."</option>
-						<option value= 'editor'>Editor</option>
-						<option value= 'administrador'>Administrador</option>
-					</select></div><div style='display:none;' id='borrar_$row[id]'></div>
-				";
-				$revocar= "
-					<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','div_$row[id]'); \">
-						<i class='glyphicon glyphicon-trash'></i> Revocar
-					</div>";
-				$opciones .="<tr id='div_$row[id]'><td>$row[p_nombre] $row[p_apellido] </td><td>$row[email]</td><td>$row[opcion]</td><td>$revocar</td></tr>";
-				}
-
-				$resultado="
-
-				<table class='table table-condensed table-striped table-hover'>
-
-					$opciones
-				</table>
-
-				";
-			}
-				}
-		$resultado = "
-				<div id='div_autorizaciones'></div>
-				<h2>Gestión de usuarios</h2>
-		$resultado
-				<div class='input-group'>
-					<span class='input-group-addon'>Autorizar usuario por Email</span>
-					<input type='email' class='form-control' id='email_autorizacion' placeholder='Escriba el email del usuario que desea autorizar'>
-					<span class='input-group-btn'>
-					<div class='btn btn-warning' onclick =\"xajax_autorizar_usuarios(document.getElementById('email_autorizacion').value,'editor','autorizar'); \">Autorizar</div>
-					</span>
-				</div>
-				<div id='div_autorizacion_confimar'></div>
-				<div id='autorizacion_confimar'></div>
-
-		";
-	}else {
-	$respuesta = new xajaxResponse('utf-8');
-	$verifica = 	remplacetas('usuarios','email',"$usuario",'id',"") ;
-	if($verifica[0] =="") {
-		$resultado ="<div class='alert alert-danger'><h2>El usuario <strong>$usuario</strong> no está registrado  $verifica[0]</h2></div>";
-		 $respuesta->addAssign("div_autorizacion_confimar","innerHTML","$resultado");
-	}
-	else {
-	 //xajax_parametrizacion_linea('id_empresa','campo','opcion','descripcion','DIV');
-	 //parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-	  $respuesta->addScript("xajax_parametrizacion_linea('id_empresa','$verifica[0]','editor','autorizacion','autorizacion_confimar')");
-	 $resultado ="<div class='alert alert-success'><h2>Se agregó el usuario <strong>$usuario</strong> <div id='div_autorizacion_confimar'></div></h2></div>";
-	 $respuesta->addAssign("div_autorizacion_confimar","innerHTML","$resultado");
-
-
-
-	}
-	return $respuesta;
-	}
-
-
-return $resultado;
-}
-$xajax->registerFunction("autorizar_usuarios");
-
-function cambiar_empresa($id_usuario,$id_empresa) {
-$select = "";
-
-	$principal = 	remplacetas('usuarios','id',$id_usuario,'id_empresa',"") ;
-	$principal_nombre = 	remplacetas('empresa','id',$principal[0],'razon_social',"") ;
-if($id_empresa !="") {
-	$respuesta = new xajaxResponse('utf-8');
-	if($id_empresa=="principal") {
-
-
-		$_SESSION[id_empresa] = "$principal[0]";
-		$_SESSION['grupo'] = "1";
-		$respuesta->addRedirect("e$principal[0]");
-		$respuesta->addAssign("div_cambiar_empresa","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-	$revisar_usuario = remplacetas('form_parametrizacion','campo',"$id_usuario",'opcion'," tabla='id_empresa' and  descripcion = 'autorizacion'") ;
-	if($revisar_usuario[0]=="") {
-		$resultado ="<div class='alert alert-danger text-center'><h2>No tiene autorizacion </h2>";
-	}else{
-		$_SESSION[id_empresa] = "$id_empresa";
-		$_SESSION['grupo'] = "$revisar_usuario[0]";
-	}
-			$respuesta->addAssign("div_cambiar_empresa","innerHTML","$resultado");
-			$respuesta->addRedirect("e$id_empresa");
-			return $respuesta;
-}
-
-
-$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$id_usuario);
-	$consulta ="SELECT empresa.id, razon_social, opcion FROM form_parametrizacion , empresa
-	WHERE form_parametrizacion.id_empresa = empresa.id AND `campo` = '$id_usuario' AND descripcion ='autorizacion' ORDER BY razon_social";
-
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				$opciones ="<option value='principal' >$principal_nombre[0]</option>";
-				while( $row = mysqli_fetch_array( $sql ) ) {
-					if($_SESSION['id_empresa'] == $row[id]) { $selected='selected';}else{ $selected='';}
-				$opciones .="<option value='$row[id]' $selected >$row[razon_social]</option>";
-				}
-
-				$select="<div id='div_cambiar_empresa'></div>
-							<select onChange=\"xajax_cambiar_empresa('$id_usuario',(this.value)); \" class='form-control ' id='cambiar_empresa' class='form_control'>$opciones</select>";
-			}
-
-	}
-	return $select;
-
-
-}
-$xajax->registerFunction("cambiar_empresa");
-
-
-function clonar_identificador($control){
-		$nuevo_control = md5(rand(1,99999999).microtime());
-		$ip =  obtener_ip();
-		$graba_ip = "INET_ATON('".$ip."') ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$control);
-	$consulta="SELECT * FROM form_datos WHERE control ='$control'";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$values .= "('$row[id_campo]','$row[form_id]','$row[proceso]', '$row[orden]', '$_SESSION[id]', '$row[id_empresa]','".mysqli_real_escape_string($link,$row['contenido'])."',UNIX_TIMESTAMP(),$graba_ip, '$nuevo_control'),";
-				}
-				$values = substr($values, 0, -1);
-				$values = "(`id_campo`,	`form_id`, `proceso`, `orden`, `id_usuario`,`id_empresa`,`contenido`,`timestamp`,`ip`,`control`) VALUES  $values ";
-			}
-	$consulta_insertar_campos = "INSERT INTO form_datos $values ";
-	$sql_insert_campos=mysqli_query($link,$consulta_insertar_campos);
-	}
-			$respuesta = new xajaxResponse('utf-8');
-			$resultado ="
-				<div class='alert alert-success'>
-					<p><i class='glyphicon glyphicon-smile-o'></i> El registro fue clonado a $nuevo_control <br><b>Por favor actualice esta vista</b></p>
-				</div>
-					";
-			//$respuesta->addAlert("EL REGISTRO SE CLONO $nuevo_control");//<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','$registros','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-			//$resultado=" $consulta // $consulta_insertar_campos ";
-			$respuesta->addAssign("clonar_$control","innerHTML","$resultado");
-			return $respuesta;
-
-								}
-$xajax->registerFunction("clonar_identificador");
-
-
-
-function cerrar_sesion(){
-
-			session_destroy();
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addRedirect("");
-			return $respuesta;
-
-								}
-$xajax->registerFunction("cerrar_sesion");
-
-
-function listado_entradas($formulario,$registros){
-$w_campo = "";
-$resultado = "";
-$listado = "";
-
-	$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and  opcion = 'titulo'") ;
- if($campo_titulo[0] !="") { $w_campo ="AND id_campo='$campo_titulo[0]' "; $w_nombre_campo =" id_campo='$campo_titulo[0]' ";  }
-$consulta = "SELECT * FROM form_datos WHERE  form_id='$formulario' $w_campo GROUP BY control  ORDER BY id DESC LIMIT $registros ";
-$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);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$contenido =strip_tags($row['contenido']);
-	if($campo_titulo[0] !="") {
-		$nombre = remplacetas_orden('form_datos','control',$row['control'],'contenido',"  $w_nombre_campo " ,"ORDER BY timestamp DESC") ;
-	}else {$nombre[0] = $contenido; }
-
-	$maximo ="80";
-	$size= strlen($contenido);
-	if($size > $maximo) {
-	$contenido =substr($contenido,0,$maximo)."... ";
-	}
-	else{
-	$contenido = $contenido;
-	}
-	///href='../d$row[control]'
-	$listado .= "
-					<li class='list-group-item' ><a  class='btn btn-link '  onclick =\"xajax_formulario_embebido_ajax('','$formulario','$row[control]','edit') \"  target='nuevo'> $nombre[0]</a></li>
-
-							";
-
-}
-
-$resultado= "
-	<ul class='list-group'>
-		$listado
-	</ul>";
-}
-
-
-return $resultado;
-
-}
-$xajax->registerFunction("listado_entradas");
-
-
-function panel_aplicaciones($tipo,$empresa,$div){
-$no_mostrar = "";
-$resultado = "";
-$listado = "";
-
-	$registros='10';
-	if($empresa=="" AND $_SESSION['id'] !="") { $w_empresa ="AND propietario = '$_SESSION[id]' ";}
-	elseif($empresa=="" ) { $w_empresa ="AND id_empresa = '$_SESSION[id_empresa]' ";}
-	else{ $w_empresa ="AND id_empresa = '$empresa' ";}
-
-$consulta = "SELECT * FROM form_id WHERE   activo='$tipo' $w_empresa  ORDER BY id 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);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		$entradas = listado_entradas($row['id'],"$registros");
-	//href='../g$row[id]'
-	$listado .= "
-
-					<div class='panel panel-default'>
-						<div class='panel-heading' role='tab' id='tab_$row[id]'>
-						<h3>".strip_tags($row['nombre'])." <small>ID $row[id]</small></h3>
-							<a
-								data-toggle='collapse'
-								role='button'
-								data-parent= '#listado_aplicaciones_disponibles'
-								href='#collapse_$row[id]'
-								aria-expanded='false'
-								aria-controls='collapse_$row[id]'
-							 	class='collapsed btn btn-default'
-							 	>Mostrar últimos $registros</a>
-							 	<a class='btn btn-default'  target='nuevo' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Nueva entrada</a>
-							<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','$registros','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-						</div>
-						<div id='collapse_$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='tab_$row[id]'>
-							<div class='panel-body'>
-							$entradas
-							</div>
-						</div>
-					</div>
-
-							";
-
-}
-
-$resultado= "
-			
-		<div class='btn btn-default btn-xs pull-right' onclick=\"xajax_limpia_div('div_panel_aplicaciones'); \" >Cerrar (X)</div>
-		<h2>Aplicaciones disponibles</h2>
-			<div class='panel-group' id='listado_aplicaciones_disponibles' tole='tablist' aria-multiselectable='true'>
-			$listado
-			</div>
-
-
-	<br>";
-}
-if($div =="") {
-	$cambiar_empresa = cambiar_empresa($_SESSION['id'],'');
-$boton="
-<div style='max-width:100%;' class='container-fluid noprint text-center $no_mostrar ' id='cabecera-botonera-admin'>
-	$cambiar_empresa
-	<div class='btn-group btn form-inline' role='group' aria-label='botonera-administracion' id='botonera-admin'>
-		<div onclick=\"xajax_panel_aplicaciones('$tipo','$empresa','div_panel_aplicaciones'); \" class='btn btn-botonera-admin'>Editor</div>
-		<a href='milfs/' class='btn btn-botonera-admin'>Des-administrador</a>
-		<a class='btn btn-botonera-admin hidden-xs' onclick=\"xajax_cerrar_sesion(); \">$_SESSION[username] $_SESSION[equipo] Salir <i class='glyphicon glyphicon-log-out '></i></a>
-	</div>
-</div>
-
-		<a class='btn btn-botonera-admin visible-xs' onclick=\"xajax_cerrar_sesion(); \">$_SESSION[username] $_SESSION[equipo] Salir <i class='glyphicon glyphicon-log-out '></i></a>
-			<div class='container-fluid' id='div_panel_aplicaciones' style='max-height:500px; overflow:auto;'></div>";
-$resultado="$boton";
-return $resultado;
-}else {
-
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-		}
-}
-$xajax->registerFunction("panel_aplicaciones");
-
-
-function asistente_aplicaciones($accion,$id,$nombre,$descripcion){
-$div = "asistente_aplicacion";
-$empresa_asistente ="3";
-$respuesta = new xajaxResponse('utf-8');
-	$nombre_original = remplacetas('form_id',"id","$id",'nombre',"") ;
-	$nombre_original = $nombre_original[0] ;
-
-	$descripcion_original = remplacetas('form_id',"id","$id",'descripcion',"") ;
-	$descripcion_original = strip_tags($descripcion_original[0]);
-
-	$encabezado ="
-		<h2 class='text-center'>$nombre</h2>
-		<h3>$descripcion</h3>
-		<p class='text-center'>$nombre_original</p>
-	";
-
-	if($accion =="" ) {
-	$resultado= "
-		<br>
-		<div id='$div' class='jumbotron'>
-		<div class='center-block btn btn-success' onclick=\"xajax_asistente_aplicaciones('listado','','','');\"; ><H3><i class='glyphicon glyphicon-magic'></i> ¡Bienvenido - Comencemos! </H3></div>
-		</div>";
-		return $resultado;
-	}
-	elseif($accion=='listado') {
-		if(!isset($_SESSION['id']) AND !isset($_SESSION['control_usuario_milfs'])  ) {
-
-			$habilitado="";
-			$disable ="disabled";
-			$aviso ="<div class='text-center alert alert-warning'><h2><i class='glyphicon glyphicon-exclamation-triangle'></i><br>Por favor ingresa o regístrate para empezar a crear tu aplicación.</h2></div>";
-
-		}
-		else{
-			$validar_email = verificacion_email("$_SESSION[nombre_usuario_milfs]",'','verificar');
-			if($validar_email =="" and !isset($_SESSION[id])) {
-							$aviso ="<div class='text-center alert alert-warning'><h2><i class='glyphicon glyphicon-exclamation-triangle'></i><br>Por <strong>verifica tu email</strong> para empezar a crear tu aplicación.</h2></div>";;
-				$habilitado="";
-				$disable ="disabled";}
-			else {
-			$aviso="<h2>Elige un tipo de aplicación</h2>";
-			$habilitado="1";
-			}
-		}
-		$consulta = "
-			SELECT form_id.id, nombre,descripcion FROM form_id, form_grupo
-			WHERE  form_id.id = form_grupo.id AND form_id.id_empresa = '$empresa_asistente' AND form_grupo.grupo = 'Publico'
-			ORDER BY nombre ASC ";
-		$link=Conectarse();
-			mysqli_set_charset($link, "utf8");
-			mysqli_real_escape_string($link,$consulta);
-		$sql=mysqli_query($link,$consulta);
-			if (mysqli_num_rows($sql)!='0'){
-				while( $row = mysqli_fetch_array( $sql ) ) {
-					if($habilitado=="1") {$onclick="onclick=\"xajax_asistente_aplicaciones('nombre','$row[id]','','');\";";}
-					else{$onclick="onclick=\"alert('Por favor ingresa o regístrate para empezar a crear tu aplicación.')\";";}
-					$listado .= "
-									<li class='list-group-item' >
-										<blockquote class='text-$alerta'>
-											<button $disable  $onclick class='btn btn-primary btn-block'>".strip_tags($row['nombre'])."</button>
-											<footer>".strip_tags($row['descripcion'])." </footer>
-
-										</blockquote>
-									</li>";
-
-				}
-			$resultado ="
-			$aviso
-
-			$listado";
-			}
-	}
-	elseif($accion=='nombre') {
-		$resultado ="
-		$encabezado
-		<div id='nombre_aplicacion_input' class='input-group text-center' style='width:100%'>
-			<label for='nombre_aplicacion' class='sr-only' >Pon un nombre a tu aplicación</label>
-			<input value='$nombre' id='nombre_aplicacion' type='text' class='text-center form-control input-lg' placeholder='Pon un nombre a tu aplicación'>
-		</div>
-		<br>
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='descripcion_aplicacion' name='descripcion_aplicacion' value='$descripcion'>
-			<div onclick=\"xajax_asistente_aplicaciones('listado','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div onclick=\"xajax_asistente_aplicaciones('descripcion','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-right' >SIGUIENTE <i class='glyphicon glyphicon-arrow-right'></i> </div>
-			<div id='asistente_aviso'></div>
-		</div>
-
-
-		";
-
-	}
-	elseif($accion=='descripcion') {
-		if($nombre=="") {
-			$aviso="<span class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor pon un nombre a tu aplicación </span>";
-		$respuesta->addAssign("nombre_aplicacion_input","className"," input-group has-error text-center ");
-		$respuesta->addAssign("asistente_aviso","innerHTML","$aviso");
-		return $respuesta;
-
-		}
-		$resultado ="
-		$encabezado
-		<div id='descripcion_aplicacion_input' class='input-group' style='width:100%'>
-			<label for='descripcion_aplicacion' class='sr-only' >Describe tu aplicación</label>
-			<br><div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-			<textarea type='text' id='descripcion_aplicacion' class='wysiwyg form-control input-lg' placeholder='Describe a tu aplicación'>$descripcion</textarea>
-		</div>
-		<br>
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='nombre_aplicacion' name='nombre_aplicacion' value='$nombre'>
-			<div onclick=\"xajax_asistente_aplicaciones('nombre','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div onclick=\"xajax_asistente_aplicaciones('grabar','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-right' >SIGUIENTE <i class='glyphicon glyphicon-arrow-right'></i> </div>
-			<div id='asistente_aviso'></div>
-		</div>
-
-
-		";
-
-	}
-	elseif($accion=='grabar') {
-		if($descripcion=="") {
-			$aviso="<span class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor describe tu aplicación </span>";
-		$respuesta->addAssign("descripcion_aplicacion_input","className"," input-group has-error text-center ");
-		$respuesta->addAssign("asistente_aviso","innerHTML","$aviso");
-		return $respuesta;
-
-		}
-		$resultado=" $encabezado
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='nombre_aplicacion' name='nombre_aplicacion' value='$nombre'>
-			<input type='hidden' id='descripcion_aplicacion' name='descripcion_aplicacion' value='$descripcion'>
-			<div onclick=\"xajax_asistente_aplicaciones('descripcion','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div  onclick = \"xajax_clonar_formulario('$id','$_SESSION[id_empresa]',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value,'aplicacion'); \" class='btn btn-success btn-lg pull-right' ><i class='glyphicon glyphicon-floppy-disk'></i> GRABAR </div>
-		</div>
-
-		";
-	}
-	else {}
-
-
-
-
-
-$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-
-}
-$xajax->registerFunction("asistente_aplicaciones");
-
-
-function mostrar_interacciones($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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-
-						</blockquote>
-					</li>";
-
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-
-			<ul class='list-group'>
-				$listado
-			</ul>
-
-	</div>";
-}else{
-$resultado="<div class='alert alert-danger'><h2>Aún no hay interacciones que mostrar. </h2></div>";
-
-}
-$respuesta = new xajaxResponse('utf-8');
-
-			$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("modal_landing","className","modal-dialog modal-xs");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h2>$accion <small>$_SESSION[nombre_usuario_milfs]<small> </h2> ");
-
-			$respuesta->addScript("$('#muestraInfo').removeClass('fade').modal('hide')");
-			$respuesta->addScript("$('#muestraInfo').modal('toggle')");
-
-
-			return $respuesta;
-
-
-
-}
-$xajax->registerFunction("mostrar_interacciones");
-
-
-function contar_interacciones($identificador,$tipo,$usuario,$id_form){
-	$resultado ="";
-	$w_usuario ="";
-	$w_form ="";
-	if($usuario !=""){ $w_usuario = " AND usuario = '$usuario'";}
-	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 distinct(id) as cantidad FROM form_interacciones WHERE identificador !='' $w_identificador $w_tipo $w_usuario $w_form ";
-$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");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-function interaccion_identificador($identificador,$accion,$tipo,$campo) {
-$revisar_interacciones="";
-
-
-//onclick=\"xajax_interaccion_identificador('$identificador','Gusta','check','');
-
-$respuesta = new xajaxResponse('utf-8');
-	$empresa =  remplacetas("form_datos","control","$identificador","id_empresa","");
-
-	$id_empresa = $empresa[0];
-
-	if(is_array($identificador)) {
-	$identificador_array= $identificador;
-	$tipo=$identificador['tipo'];
-	$mensaje=$identificador['texto_interaccion'];
-	$nuevo_identificador=$identificador['identificador'];
-	$id_formulario =  remplacetas("form_datos","control","$nuevo_identificador","form_id","");
-	$id_form = $id_formulario[0];
-	$empresa =  remplacetas("form_datos","control","$nuevo_identificador","id_empresa","");
-	$id_empresa = $empresa[0];
-		$ip =  obtener_ip();
-		$graba_ip = "INET_ATON('".$ip."') ";
-
-		$link=Conectarse();
-
-	mysqli_set_charset($link, "utf8");
-	$mensaje=strip_tags($mensaje) ;
-	mysqli_real_escape_string($link,$mensaje);
-	if($_SESSION["id"] !="") { $usuario="MILF-$_SESSION[id]";}else{ $usuario = "$_SESSION[control_usuario_milfs]"; }
-			$consulta="INSERT INTO form_interacciones SET id_form='$id_form' , mensaje='".mysqli_real_escape_string($link,$mensaje)."' ,estado='0' ,identificador='$nuevo_identificador', tipo='$tipo',ip=$graba_ip,usuario='$usuario' ";
-	mysqli_real_escape_string($link,$consulta);
-	$sql=mysqli_query($link,$consulta);
-
-	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 <strong>$tipo</strong> 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 <stron><a href='https://$web[0]/I$nuevo_identificador'>$nombre_formulario[0]</a></strong> 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] ".$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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $email[0]</h2>"; }else {$exito .="<span class='text-danger'><i class='glyphicon glyphicon-meh-o'></i> Error enviando correo</span>";}
-
-
-		$div = "".$tipo."_cantidad_$nuevo_identificador";
-		$cantidad = contar_interacciones("$nuevo_identificador","$tipo","");
-		$resultado="<div class='alert alert-success'><h2>El mensaje se ha enviado, si es necesario nos comunicaremos contigo</h2> </div>";
-		$respuesta->addAssign("$div","innerHTML","$cantidad");
-
-	}else{
-			$resultado="<div class='alert alert-warning'><h2><i class='glyphicon glyphicon-meh-o'></i> Algo salió mal <small> Por favor inténtalo de nuevo </small></h2></div>";
-	}
-
-	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-		//	$respuesta->addAssign("myModalLabel_info","innerHTML","<h2>$accion</h2>");
-			return $respuesta;
-
-
-	}
-	if($accion =="") {
-		$cantidad_me_gusta = contar_interacciones("$identificador","Gusta","","");
-		$cantidad_me_comprometo = contar_interacciones("$identificador","Comprometo","","");
-		$cantidad_Si = contar_interacciones("$identificador","Si","","");
-		$cantidad_No = contar_interacciones("$identificador","No","","");
-		$cantidad_Comentar = contar_interacciones("$identificador","Comentar","","");
-		$cantidad_Reportar = contar_interacciones("$identificador","Reportar","","");
-		$cantidad_Mensaje = contar_interacciones("$identificador","Mensaje","","");
-		if(isset($_SESSION['id_empresa'])){
-		if($_SESSION['id_empresa'] == "$id_empresa") { 
-			$revisar_interacciones="	  
-<div  id='Comentar_$identificador' onclick=\"xajax_mostrar_interacciones('$identificador','todo','','mostrar_interacciones_$identificador');\" class='btn btn-info btn-xs' role='' title='Comentar' >
-	  		<span class='fa fa-eye' aria-hidden='true'></span><span class='hidden-xs'><br> Mostrar </span>
-	  	</div>
-		";
-			}
-		else {$revisar_interacciones="";}
-			}
-			
-			if($tipo =="simple") {
-				
-					$menu ="
-	<div id='botones-social_$identificador' class='btn-group btn-group-justified botones_social interacciones_identificador' role='group' aria-label='botonera' >
-		<div  id='Gusta_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Gusta','',''); \"class='btn btn-primary btn-xs' role='' title='Me gusta'>
-			<span class='badge' id='Gusta_cantidad_$identificador'>$cantidad_me_gusta</span> <span class='fa fa fa-thumbs-o-up' aria-hidden='true'></span><span class='hidden-xs'><br> Me gusta </span>
-		</div>
-	  	<div  id='Comprometo_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comprometo','',''); \" class='btn btn-success btn-xs' role='' title='Me comprometo' >
-	  		<span class='badge' id='Comprometo_cantidad_$identificador'>$cantidad_me_comprometo</span> <span class='fa fa-handshake-o' aria-hidden='true'></span><span class='hidden-xs'><br> Me comprometo</span>
-	  	</div>
-	  	<div  id='Comentar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comentar','',''); \" class='btn btn-warning btn-xs' role='' title='Comentar' >
-	  		<span class='badge' id='Comentar_cantidad_$identificador'>$cantidad_Comentar</span> <span class='fa fa-comment-o' aria-hidden='true'></span><span class='hidden-xs'><br> Comentar </span>
-	  	</div>
-
-	  $revisar_interacciones
-	</div>
-
-
-	";
-	
-			}
-			elseif($tipo =="check") {
-				$form = remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-				///$css = remplacetas('form_parametrizacion','campo',"index",'descripcion'," tabla='css' and  opcion = 'bootstrap' and id_empresa = '$_SESSION[id_empresa]'") ;
-
-				//onclick=\"xajax_parametrizacion_linea('form_id','$id','gusta','$autor_logueado','mensaje_$row[control]','','$row[control]'); 
-				//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-				$valor = remplacetas('form_parametrizacion','campo',"$form[0]",'opcion'," tabla='form_id' and  item = '$identificador' ") ;
-				if($valor[0] ==1){$checked='checked'; }else{$checked='';}
-					//$descripcion = array();
-				/*	$descripcion['usuario'] = "usuario";$_SESSION['id'];
-					$descripcion['timestamp'] = time();
-					$descripcion_json = json_encode($descripcion);
-					*/
-					//$json = json_encode("$valor");
-				//	$descripcion="$_SESSION[id]|";
-					
-				$menu="
-				<div class='form-check'> 
-					<label class='form-check-label' for='$identificador-$campo' >
-					<input $checked class=' form-check-input' type='checkbox' value='$valor[0]' id='$identificador-$campo'name ='$identificador-$campo'
-					onchange=\"$(this).attr('value', this.checked ? 1 : 0);xajax_parametrizacion_linea('form_id','$form[0]',(this.value),'$campo','check_$identificador-$campo','','$identificador') \">
-					 <div class='hidden' id='check_$identificador-$campo'></div>
-					</label>
-				</div>
-";
-				
-				}
-			else{
-	$menu ="
-	<div id='botones-social' class='btn-group btn-group-xs' role='group' aria-label='botonera'>
-	  <div  id='Mensaje_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Mensaje','',''); \" class='btn btn-default' role='' ><span class='glyphicon glyphicon glyphicon glyphicon glyphicon-envelope' aria-hidden='true'></span> Mensaje <span class='badge' id='Mensaje_cantidad_$identificador'>$cantidad_Mensaje</span></div>
-	  <div  id='Si_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Si','',''); \"class='btn btn-success' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-up' aria-hidden='true'></span> Si <span class='badge' id='Si_cantidad_$identificador'>$cantidad_Si</span></div>
-	  <div  id='No_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','No','',''); \" class='btn btn-warning' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-down' aria-hidden='true'></span> No <span class='badge' id='No_cantidad_$identificador'>$cantidad_No</span></div>
-	  <div  id='Reportar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Reportar','',''); \" class='btn btn-danger' role='' ><span class='glyphicon glyphicon glyphicon-remove-sign' aria-hidden='true'></span> Reportar <span class='badge' id='Reportar_cantidad_$identificador'>$cantidad_Reportar</span></div>
-	  <div  id='Comentar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comentar','',''); \" class='btn btn-info' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-pencil' aria-hidden='true'></span> Comentar <span class='badge' id='Comentar_cantidad_$identificador'>$cantidad_Comentar</span></div>
-	  <div class='btn btn-info' onclick=\"xajax_mostrar_interacciones('$identificador','Comentar','','mostrar_interacciones_$identificador');\">Mostrar</div>
-	  $revisar_interacciones
-	</div>
-
-
-	";
-	
-}
-	return $menu;
-	}
-	/*
-	elseif($accion=="Si") {	}
-	elseif($accion=="No") {	}
-	elseif($accion=="Compartir") {	}
-	*/
-	else {
-		
-
-			
-			
-if(isset($_SESSION['usuario_milfs']) OR $_SESSION['id'] !="")  {
-	
-	if($_SESSION["id"] !="") { $usuario="MILF-$_SESSION[id]";}else{ $usuario = "$_SESSION[control_usuario_milfs]"; }
-	$existe = contar_interacciones("$identificador","$accion","$usuario");
-	if($existe < 1 OR $accion =="Comentar") {
-	
-$formato="
-<div class='barra_interaccion'>
-	<form autocomplete='off' id ='formulario_interaccion' name ='formulario_interaccion'>
-	<div class='input-group col-xs-12'>
-		<label for='texto_interaccion'>Comentario</label>
-		<textarea class='form-control' id='texto_interaccion' name='texto_interaccion' placeholder='Escribe tu comentario' ></textarea>
-	</div>
-	<br>
-	<input type='hidden' value='$accion' id='tipo' name='tipo'>
-	<input type='hidden' value='$identificador' id='identificador' name='identificador'>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div data-dismiss='modal' onclick = \"xajax_limpia_div('muestra_form'); \"aria-hidden='true'  class='btn btn-danger btn-block'>Cancelar</div>
-		</div >
-		<div class='col-xs-6'>
-			<div onclick=\"xajax_interaccion_identificador(xajax.getFormValues('formulario_interaccion'),'Grabar','',''); \" class='btn btn-success  btn-block'>Enviar</div>
-		</div >
-	</div>
-	</form>
-</div>
-
-";
-
-}else{
-
- $formato= "<div class='alert alert-warning'><h2>Ya has dicho <quote>Me $accion</quote> </h2></div>";
-}
-}
-else{
-
-	 require ("./milfs/includes/parametrizacion.php");
-
-/// SI EL USUARIO NO ESTA LOGUEADO
-$login = milfs_session("$login_formulario","$login_campo_usuario","$login_campo_password","boton","","div_interacciones");
-
-
-$formato ="
-<div id='div_interacciones'>
-	<div class='alert alert-success'><h2>Por favor ingresa para <b>$accion</b></h2>
-	$login
-	</div>
-</div>
-";
-
-
-}
-
-
-
-}
-
-
-			//$div_contenido = "<div id='$div'>$div</div>";
-			$respuesta->addAssign("muestra_form","innerHTML","$formato");
-			$respuesta->addAssign("modal_landing","className","modal-dialog modal-xs");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h2>$accion <small>$_SESSION[nombre_usuario_milfs]<small> </h2> ");
-		
-			//$respuesta->addAssign("pie_modal","innerHTML","$pie");
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-			///$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-			
-			$respuesta->addScript("$('#muestraInfo').removeClass('fade').modal('hide')");
-			$respuesta->addScript("$('#muestraInfo').modal('toggle')");
-
-
-			return $respuesta;
-}
-$xajax->registerFunction("interaccion_identificador");
-
-function eliminar_identificador($identificador,$accion,$formulario) {
-	$respuesta = new xajaxResponse('utf-8');
-	$div="eliminar_$identificador";
-if($accion =="") {
-	$resultado="
-<div class='alert alert-danger'>
-	<h2>Se eliminará definitivamente este registro</h2>
-	<div class='row '>
-		<a class='col-md-6 btn btn-danger  btn-xs' onclick=\"xajax_eliminar_identificador('$identificador','eliminar','$formulario'); \" href='#'><i class='glyphicon glyphicon-trash'></i> Eliminar</a>
-		<a class='col-md-6 btn btn-warning  btn-xs' onclick=\"xajax_limpia_div('$div'); ; \" href='#'><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</a>
-	</div>
-</div>
-";
-}
-if($accion =="eliminar") {
-	$consulta_eliminar="DELETE FROM `form_datos` WHERE `form_datos`.`control` = '$identificador' AND form_id='$formulario' ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$consulta_eliminar);
-	$sql_borrar=mysqli_query($link,$consulta_eliminar);
-	if($sql_borrar) {
-$resultado ="
-<div class='alert alert-success'>
-	<p><i class='glyphicon glyphicon-smile-o'></i> Se eliminó definitivamente este registro.<br><b>Por favor actualice esta vista</b></p>
-</div>
-	";
-						}
-						else {
-$resultado ="
-<div class='alert alert-warning'>
-	<p><i class='glyphicon glyphicon-meh-o'></i> Algo salió mal, quizá el registro ya había sido eliminado <small> Por favor actualice esta vista </small></p>
-</div>
-	";
-						}
-}
-	$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 ="
-					<div class='form-group col-md-6'>
-						<label for='Proyecto_mover'>Seleccione proyecto</label>
-						$empresas
-					</div>
-					";
-			$cols ="6";
-
-			$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario_mover');
-///<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
-	$resultado="
-
-<div id='panel_mover' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_mover' >
-	<div class='panel-heading'>
-		<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_move' aria-expanded='false' aria-controls='collapseExample'>
-			<i class='glyphicon glyphicon-arrows'></i> Mover
-		</a>
-		<span class='panel-title'> El formulario y su contenido se moverán al proyecto seleccionado</span>
-	</div>
-	<div class='panel-body collapse' id='panel_move'>
-		<div class='form-group col-md-$cols'>
-			<label for='Formulario_mover'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_mover_formulario(document.getElementById('Formulario_mover').value,document.getElementById('Proyecto_mover').value,'mover'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Mover</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-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 <strong>$nuevo_nombre</strong> 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 ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$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=mysqli_query($link,$consulta_update_form);
-
-	$consulta_update_campos = "UPDATE form_datos SET id_empresa= '$id_empresa' WHERE form_id = '$formulario' ";
- 	$sql_update_campos=mysqli_query($link,$consulta_update_campos);
-
-	if($sql_update_campos){
-			if (mysqli_affected_rows($sql_update_campos)!='0'){
-				$cantidad = mysqli_affected_rows();
-				$nombre = remplacetas('form_id','id',"$formulario",'nombre'," id_empresa = '$id_empresa'") ;
-			}
-
-	}
-
-
-
-
-
-	$resultado ="
-	<div class='alert alert-success'>
-	<h2>Se movió el formulario <strong>$nombre[0]</strong> y sus <strong>$cantidad</strong> registros. <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='glyphicon glyphicon-refresh'></i> Actualizar</a></h2>
-	</div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-	}
-$xajax->registerFunction("mover_formulario");
-
-
-
-
-function clonar_formulario($formulario,$id_empresa,$nuevo_nombre,$descripcion,$tipo){
-$div ="div_clonar";
-$error ="";
-	$grupo = remplacetas('form_id',"id","$formulario",'nombre',"") ;
-	$grupo = strip_tags($grupo[0]);
-if($tipo =="formato") {
-			if($_SESSION['id'] == '1') {
-			$w_empresa = "";
-			$empresas = select('empresa','id','razon_social','',"",'Proyecto');
-$empresa ="
-		<div class='form-group col-md-4'>
-			<label for='empresa'>Seleccione proyecto</label>
-			$empresas
-		</div>
-		";
-		$cols ="4";
-		}else {
-			$empresa ="<input type='hidden' value='' name='Proyecto' id='Proyecto'>";
-			$w_empresa = "id_empresa = '$_SESSION[id_empresa]'";
-			$cols="6";
-		}
-	$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario');
-	$resultado="
-
-<div id='panel_clonar' class='panel panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_clonar' >
-	<div class='panel-heading'>
-
-	<a  data-parent='#accordion_accion_formulario'  class='btn btn-primary' id='form_btn_clone' role='button' data-toggle='collapse' href='#panel_clone' aria-expanded='false' aria-controls='collapseExample'>
-	<i class='glyphicon glyphicon-clone'></i> Clonar</a> <span class='panel-title'>Se copiará la estructura del formulario pero no su contenido.</span>
-	</div>
-	<div class='panel-body collapse' id='panel_clone'>
-		<div class='form-group col-md-$cols'>
-			<label for='formulario'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-		<div class='form-group col-md-$cols'>
-			<label for='nuevo_nombre'>Nombre </label>
-			<input class='form-control' id='nuevo_nombre' name='nuevo_nombre' placeholder='Nombre que tendrá el formulario nuevo' >
-		</div>
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_clonar_formulario(document.getElementById('Formulario').value,document.getElementById('Proyecto').value,document.getElementById('nuevo_nombre').value,'','clonar'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Clonar</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-return $resultado;
-}
-if($id_empresa =="") {
-	if(isset($_SESSION['id_empresa'])){$id_empresa= $_SESSION['id_empresa'];}
-	else {$id_empresa = "1";}
-}
-		$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 <strong>$nuevo_nombre</strong> en ese proyecto.";}
-	if( $formulario =="" or $nuevo_nombre ==""  ) { $error ="Asegúrese de que ningún campo esté vacío.";}
-
-	if($error !="") {
-		$resultado ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$nuevo_nombre);
-
-	if($descripcion =="") {
-	$descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
-	$descripcion =$descripcion[0];
-	}
-	$modificable = remplacetas('form_id','id',$formulario,'modificable','') ;
-	$publico = remplacetas('form_id','id',$formulario,'publico','') ;
-		/// establecer propietario para el nuevo form
-		if(!isset($_SESSION['id_empresa'])){
-		$validar_email = verificacion_email("$_SESSION[nombre_usuario_milfs]",'','verificar');
-				}
-		if(isset($_SESSION['nombre_usuario_milfs']) AND $validar_email !="") {
-			$id_usuario = "$validar_email";		}
-		else {
-			$id_usuario = "$_SESSION[id]";
-		}
-	$consulta_insert = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-	VALUES ('$nuevo_nombre', '$descripcion', '1', '$modificable[0]', '$publico[0]', '$id_usuario','','$id_empresa')";
-
-$sql_insert=mysqli_query($link,$consulta_insert);
-$ultimo_id = mysqli_insert_id($link);
-
-
- 	$consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- 	$sql_grupo=mysqli_query($link,$consulta_grupo);
-
-
-//// CLONAR CAMPOS
-$consulta="SELECT * FROM form_contenido_campos WHERE id_form ='$formulario'";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_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=mysqli_query($link,$consulta_insertar_campos);
-	}
-/// FIN DE CLONAR CAMPOS
-/// CONAR PLANTILLAS
-$consulta_plantillas="SELECT * FROM form_parametrizacion WHERE tabla= 'form_id' AND campo ='$formulario'";
-	$sql=mysqli_query($link,$consulta_plantillas);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$control = md5(rand(1,99999999).microtime());
-				$values_plantilla .= "('$row[tabla]','$ultimo_id','$row[opcion]','".mysqli_real_escape_string($link,$row[descripcion])."','$row[visible]','$id_empresa'),";
-				}
-				$values_plantilla = substr($values_plantilla, 0, -1);
-				$values_plantilla = "(`tabla`,	`campo`, `opcion`, `descripcion`, `visible`,`id_empresa`) VALUES  $values_plantilla ";
-			}
-
-	$consulta_insertar_plantilla = "INSERT INTO form_parametrizacion $values_plantilla ";
-	$sql_insert_plantillas=mysqli_query($link,$consulta_insertar_plantilla);
-	}
-//// FIN DE CLONAR PLANTILLAS
-if($tipo=="aplicacion") {
-	$div="asistente_aplicacion";
-	$resultado ="
-	<div class='alert alert-success text-center'>
-		<h1><i class='glyphicon glyphicon-smile-o'></i>
-		<br>Felicidades tu aplicación
-		<br>
-		<strong>'$nuevo_nombre'</strong>
-		<br>fue creada y ahora está disponible en  </h1>
-		<a style='word-wrap: break-word; ' target='aplicacion' href='$_SESSION[site]a$ultimo_id' >
-		<img src='https://qwerty.co/qr/?d=$_SESSION[site]a$ultimo_id'><br>$_SESSION[site]a$ultimo_id <i class='glyphicon glyphicon-external-link-square'></i>
-		</a>
-
-	</div>";
-
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-}
-
-	$resultado ="<div class='alert alert-success'><h1>El formulario <strong>'$nuevo_nombre'</strong> se grabó  <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='glyphicon glyphicon-refresh'></i> Actualizar</a></h1></div>";
-	$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="
-<br>
-<legend>Estilos</legend>
-	<div id='div_css' class ='text-success'></div>
-	<div class='input-group'>
-		<span class='input-group-addon'>
-		CSS para tema bootstrap
-		</span>
-		<input placeholder='https://https://bootsw... ' value='$css[0]'  id='css_url'  name='css_url'  type='url' class='form-control'>
-		<span class='input-group-btn'>
-		<div class='btn btn-default btn-warning '
-			onclick=\"xajax_parametrizacion_linea('css','index','bootstrap',document.getElementById('css_url').value,'div_css'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-		</div>
-	</div>
-	<div class='input-group  col-md-12'>
-		<label for='css_adicional'>CSS adicional</label>
-		<textarea style='width:100%' id='css_adicional' name='css_adicional' class='form-control' placeholder ='Escriba css valido'>$css_adicional[0]</textarea>
-	</div>
-	<div class='input-group pull-right'>
-			<div class=' btn btn-default btn-warning '
-			onclick=\"xajax_parametrizacion_linea('css','index','adicional',document.getElementById('css_adicional').value,'div_css_adicional'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-		</div>
-	</div>
-		<pre style='max-height: 300px; overflow:auto ' id='div_css_adicional' class ='text-success'>/* HOJA DE ESTILOS CSS ACTUAL  */
-		$css_adicional[0]
-		</pre>
-
-";
-}
-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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure class='vistos_figure'>
-						 						<a href='i$row[campo]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded ' src ='milfs/images/secure/?file=300/$imagen[0]'>
-						 						</a>
-						 					</figure>
-						 					<span class='vistos_encabezado'><a href='i$row[campo]'>$formulario_titulo[0] </a>
-							 					<span class=' fh5co-date'><i class='glyphicon glyphicon-eye-open'></i> $row[descripcion]</span>
-						 					</span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='i$row[campo]'>$titulo[0]</a></h4>
-
-						 				</article>
-						 				";
-						 			}
-						 			$resultado = "
-						 				<legend class='text-center'>LO MAS VISTO</legend>
-						 					$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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>
-						 						<a href='I$row[campo]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded' src ='milfs/images/secure/?file=300/$empresa_logo[0]'>
-						 						</a>
-						 					</figure>
-							 					<span class='fh5co-meta'><a href='a$row[campo]'>$formulario_titulo[0]</a>
-							 					<span class=' fh5co-date'><i class='glyphicon glyphicon-eye-open'></i> $row[descripcion]</span>
-						 					</span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='a$row[campo]'>$titulo[0]</a></h4>
-
-						 				</article>
-						 				";
-
-			 		}
-			 					$resultado = "
-						 				<legend class='text-center'>PROYECTOS MAS ACTIVOS</legend>
-						 					$contenido
-						 				";
-
-		 		}
-				elseif($tipo =='ultimos')  {
-								//while( $row = mysqli_fetch_array( $sql ) ) {
-								
-								while( $row = mysqli_fetch_array( $sql ) ) {
-																	if($form ==""){ $datos_formulario =" <h4 style='word-wrap: break-word; ' class='article-title'><a href='i$row[control]'>$row[nombre]</a></h4>";}
-																	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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>
-						 						<a href='i$row[control]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded' src ='milfs/images/secure/?file=150/$imagen[0]'>
-						 						</a>
-						 					</figure>
-						 					<span class='fh5co-meta'><a href='i$row[control]'>$titulo_post[0] </a></span>
-											$datos_formulario
-						 				</article>
-						 				";
-						 			}
-						 			$resultado = "
-										<legend class='text-center'>$titulo</legend>
-						 					$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 .= "<div class='respuesta'><br> $respuesta</div><hr>  ";
-
-}
-	$resultado .="";
-}else{$resultado ="";}
-$resultado = "<div class='respuestas'>$resultado $formulario_respuesta</div>";
-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 ="
-						<div class='formulario_respuesta_contenedor'>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-		$descripcion =substr($row[descripcion],0, $length = 80);
-		$caracteres = strlen("$descripcion");
-		if($caracteres > 80) { $descripcion= "$descripcion ... ";}  
-		$resultado .= "<div id='btn_anidado' class='respuesta_linea'><a class='btn btn-success col-xs-12' style='white-space:normal !important;    word-wrap: break-word; 'onclick = \"xajax_formulario_embebido_ajax('','$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre] <small>$descripcion</small></a>  </div> ";
-
-}
-	$resultado .="</div>";
-}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&registros=$registros&pagina=1&orden=$orden";
-					$href_2 = "$origen&registros=$registros&pagina=".($pagina-1)."&orden=$orden";
-				}
-				else {
-					$href_1= "#cabecera#";
-					$href_2= "#cabecera#";
-					 }
-
-           	 $link .= "<li><a href='$href_1' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a href='$href_2' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-
-        		if(isset($_REQUEST['registros'])) {
-					$href_3 = "$origen&registros=$registros&pagina=$x&orden=$orden";
-				}
-				else {
-					$href_3= "#cabecera#";
-					 }
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='$href_3'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='$href_3' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         {
-         	if(isset($_REQUEST['registros'])) {
-					$href_4 = "$origen&registros=$registros&pagina=".($pagina+1)."&orden=$orden";
-					$href_5 = "$origen&registros=$registros&pagina=$pages&orden=$orden";
-				}
-				else {
-					$href_4= "$href_4";
-					$href_5= "$href_5";
-					 }
-         	 $link .= "<li><a  href='$href_4'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a  href='$href_5'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = "
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-			 <div class='text-center center-block'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>
-				</ul>
-				     $paginacion
-			 </div>
-			</div>
-		</div> ";
-
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>";
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<hr> $nombre[0] $descripcion[0]";
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-//	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}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 .= "<br>$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 = "		<div class='btn btn-default btn-block ' onclick =\"xajax_formulario_embebido_ajax('','$form','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </a></div>";
-	}
-$acciones="
-
-<div class='container-fluid'>
-	<div class='row'>
-
-		<div class='col-xs-12 col-sm-3 col-md-3 col-lg-3' id='btn_agregar'>
-		$agregar
-		</div>
-
-		<div class='col-xs-12 col-sm-5 col-md-5 col-lg-4' id='btn_filtro' >
-		 $filtro
-		 $filtro_drop
-		 </div>
-
-		 <div class='col-xs-12 col-sm-4 col-md-4' id='buscador_centro'>$buscador</div> 
-		
-		<div class='col-md-12'>
-
-		$filtro_generico
-		$formulario_tabla_temporal
-	</div>
-</div>
-
-
-	<br>";
-}
-
-$resultado = "
-
-<a name='cabecera'></a>
-
-$acciones
-<div id='mostrar_resultado' class='mostrar_resultado_landingpage'>
-<!-- landingpage_contenido_identificador() -->
- $linea
- <!-- landingpage_contenido_identificador() -->
-$encabezado
-
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning alert_sin_resultados' ><h1 title=''>No hay resultados 0021</h1> </div>";
-		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 = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-		if($row['imagen'] !="") {
-	$logo="<img  class='lazy  img-responsive img-rounded' alt='$row[razon_social]' src='milfs/images/loading.gif'  data-src='milfs/images/secure/?file=300/$row[imagen]' style='width:300px; display:block; background-image: url(\"\");
-        background-repeat: no-repeat;
-        background-position: 50% 50%;'  >";
-									}
-	 else {
-	 		  		$logo_empresa =  remplacetas('empresa','id',"1",'imagen','');
-	 		//$logo="<img class=' lazy img img-responsive'     data-src='milfs/images/sinimagen.jpg'  alt='$row[razon_social]'>";
-	 		$logo="<img class=' lazy img img-responsive'  style='width:300px; display:block;'   data-src='milfs/images/sinimagen.jpg'  alt='$row[razon_social]'>";
-	 }
-	// $slogan= substr($row[slogan],0, $length = 100)."";
-	$slogan = $row['slogan'];
-	$dominio = remplacetas('empresa','id',"$row[id_empresa]",'web','') ;
-	$contenido ="
-	              <div class='proyecto col-md-$cols col-sm-$cols' title=''>
-	              <div class='div_proyecto'>
-                    <a href='http://$dominio[0]/e$row[id_empresa]' target ='empresa'>
-                    <div class='proyecto_titulo ' style=''>$row[razon_social]</div>
-                    $logo
-
-
-                    </a>
-                    </div>
-                  </div>
-
-	";
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-            <!-- PROYECTOS -->
-            <section class='container-fluid' id='proyectos'>
-              <div class=' text-center'>
-                <h1>Proyectos</h1>
-                <p class='lead'>Conoce los proyectos que usan Tupale.co para la implementación de sus herramientas, selecciona para conocer más</p>
-              </div>
-              <div class='container-fluid'>
-                <div class=''>
-                  $encontrados
-
-                </div>
-              </div>
-          </section>
-          <!-- FIN Proyectos -->
-
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0023</div>";
-	}
-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 =" <a title='$titulo_anterior[0]' href='I$anterior[0]' class='fh5co-post-prev'><span><i class='icon-chevron-left'></i> $campo_orden[0] Anterior</span>
-			</a>";
-			}
-			if($siguiente[0] !='') {
-			$post_siguiente =" <a title='$titulo_siguiente[0]' href='I$siguiente[0]' class='fh5co-post-next'><span>Siguiente <i class='icon-chevron-right'></i></span>
-			</a>";
-			}
-			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 ="<img class='img-responsive img-rounded ' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<figure class='animate-box'>
-				<a href='I$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-responsive img-rounded'>
-				</a>
-			</figure> $uri";
-
-	}else {
-		$miniatura ="
-			<figure class='animate-box'>
-				<a href='I$identificador' >I$identificador</a>
-			</figure>
-			";
-		$mostrar_imagen = "
-		<figure class='animate-box'>
-			<img src='$qr' alt='$identificador' title='' style=''; class='img img-responsive img-rounded'>
-		</figure>";
-
-
-
-		}
-
-
-	if($plantilla_original !="" ) {
-	$impresion = mostrar_identificador($identificador_original,"$form","$plantilla","","");
-
-	} else{
-	$contenido = @mostrar_areas("$identificador_original","","");
-	$impresion = "
-	<!-- Exportado desde Tupale.co  -->
-<!-- plantilla landingpage $identificador -->
-
-<a  name='control_$identificador' class='clase_listado'></a>
-<div class='container-fluid'>
-<div class='col-lg-12 col-md-12 col-xs-12 '>
-$contenido
-</div>
-
-</div>
-<!-- plantilla landingpage -->
-	";
-
-	}
-	if($tipo=="head") {
-		$edicion="";
-		$documento=""; $respuestas="";} else{
-	 				if(isset($_SESSION['id_empresa'])){
-	$edicion ="<div class='editar_documento' id='editar'> <a href='d$identificador' target='editar'> <i class='fa fa-pencil-square-o'> </i> Editar </a> <div>";
-	}else {$edicion="";}
-	}
-	$documento="<div style='padding-top: 30px;'class='exportar_documento' id='gen_documento'><a href='opendata.php?tipo=documento&identificador=$identificador'><i class='fa fa-file-text-o'></i> Exportar</a></div>";
-
-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 <small class='pull-right'>https://tupale.co</small>";
-$salto = "<div class='saltopagina'></div>";
-$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 ="<div class='container text-center cabecera_formulario'>
-					<h3 class='formulario_nombre'>".$formulario_nombre['0']."</h3>
-					<h4 class='formulario_descripcion'>".$formulario_descripcion['0']."</h4>
-				</div>  ";		
-		$cabecera="<hr>
-		<div class='row'>
-			<div class='col-xs-10'>
-				$encabezado_empresa 
-				$cabecera
-				
-			</div>
-			<div class='col-xs-2'>
-				<div class='qr'>
-					<img src='$qr' alt='$identificador' title='' style='width:150px;'; class=''>
-					<div class='caption'>
-					<!-- <font size='-10'>$identificador</font> -->
-					</div>
-				</div>
-				
-			</div>
-			<div class=''>
-			$usuario_datos
-			
-			</div>
-		</div>";}
-		
-		
-		else{
-		
-$cabecera="";		
-$pie="";		
-$salto="";		
-		}
-		if($tipo =="li") { 
-		 $linea ="
-		 $impresion
-		 ";
-		 }
-		else{
-				 $linea = "  
-				 
-				
-				
-							<div class='mostrar_identificador_full '>
-				 				$cabecera $manejadores
-						 		$documento $edicion
-						 		$impresion
-									
-						 		<!-- formulario de respuesta --> 
-							 		<div id='formulario_respuesta_$identificador' class='formulario_respuesta ' style=''>$respuestas
-							 		</div>
-						 		<!-- formulario de respuesta -->
-				
-								$pie
-					 		</div>
-								$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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros);
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													}
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-
-	*/
-
-	//// 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 = "<a href='I$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}
-	$resultado_linea="<div class='row' id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='glyphicon glyphicon-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='b$row[id]?registros=10'> Consultar <i class='glyphicon glyphicon-external-link-square'></i></a>";
-							$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 = "
-			
-			<img alt='$row[nombre]' class=' lazy imagen_presentacion img-responsive img-rounded'  style='width:100%'  data-src='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=250x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' >
-			<br>";
-		/* 				$miniatura = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Ftupale.co%2Fmilfs%2Fimages%2Ficonos%2Fpin.png(-75.59825420379637,6.24539309025971,17)/-75.59825420379637,6.24539309025971,17/600x200.png?access_token=pk.eyJ1IjoiZmNhc3Ryb3QiLCJhIjoiY2lnOWw1bmd1MG93eXVsbTJpcmluYTBxdCJ9.yG7C1rEH6-MpZBEEb68IVg' >
-			";*/
-
-			 }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		//if($geo[0] !='') { $mapa= "<a href='mapero.php?id=$row[id]' target='mapa'>$miniatura Ver mapa</a>";}else {$mapa='';}
-		if($geo[0] !='') { $mapa= "<a class='boton_land btn btn-default ' href='mapero.php?id=$row[id]' target='mapa'><i class='fa fa-globe' aria-hidden='true'></i> Mapa</a>";}else {$mapa='';}
-		$descripcion_limpia = strip_tags($row['descripcion']);
-		if($imagen !="") {
-	$imagen ="
-
-							<figure id ='figure_$row[id]' >
-							<a href='$favorita'>
-								<img class='img img-responsive img-secciones' src='milfs/images/secure/?file=300/$imagen' alt='$row[nombre]'>
-								<!-- <figcaption class='articulo_caption' >$row[nombre]</figcaption> -->
-							</a>
-							</figure>
-							";
-}
-	$contenido ="
-		<h2 id ='h2_$row[id]'   class='text-center titulo_formulario section-heading'><a href='$favorita'>$row[nombre] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-		
-    
-		<p id ='p_contenido_$row[id]' class='descripcion_formulario text-left'>$descripcion_limpia </p>";
-
-//			if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar ="	<div class='boton_land btn btn-default ' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </div>";}
-							else{$boton_agregar =	"";}
-if($ver_data[0] !="0") {$boton_ver_data ="	<a target='datos'class='boton_land btn btn-default ' href= 'opendata.php?id=$row[id]'> <i class='fa fa-bar-chart' aria-hidden='true'></i> OpenData</a>";}
-									else{$boton_ver_data =	"";}
-
-	if($mostrar[0] !="0") {
-		//// PRIVACIDAD
-			$publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
-	$linea .= "
-
-<div style='  ' class='  articulo_cuadro col-xs-12 col-sm-10 col-lg-10' id='b_articulo_formulario_$row[id]'>
-    <div class=' thumbnail box-secciones' id='b_articulo_formulario_$row[id]'>
-        <a name='formulario_$row[id]'></a>
-        <div class='row rp-b '>
-            <div class='articulo_contenido  col-md-4'>
-                $imagen
-            </div>
-            <div id='articulo_contenido_$row[id]' class='articulo_contenido  col-md-8 animate-box'>
-                <p>$contenido</p>
-                <div id='botonera_landing' class='btn-group.btn-group-justified btn-group-sm' role='group'>
-                    $boton_agregar $mapa $boton_ver_data
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-			";
-			}else{
-					if($llenar[0] !="0"){
-			 $linea .="
-<div style='  ' class='  articulo_cuadro col-xs-12 col-sm-10 col-lg-10' id='b_articulo_formulario_$row[id]'>
-    <div class=' thumbnail box-secciones ' id='b_articulo_formulario_$row[id]'>
-        <a name='formulario_$row[id]'></a>
-        <div class='row rp-b '>
-        	<div class='articulo_contenido  col-md-4'>
-        		$imagen
-        	</div>
-            <div class='articulo_contenido  col-md-8 animate-box'>
-                <h2 class='text-center titulo_formulario section-heading'>
-						<a href='#' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\" >$row[nombre] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-                <p class='descripcion_formulario text-left'>$row[descripcion] </p>
-                $boton_agregar
-            </div>
-        </div>
-        
-    </div>
-</div>
-		";}
-
-			}
-		}else {
-
-		$linea .=" ";}
-
-		$fila++;
-		}
-	}
-	$linea ="
-	<div class='container-fluid' id='contenedor_landingpage '>
-
-		$linea
-	</div>
-	";
-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 ="<h1><i class='glyphicon glyphicon-spinner '></i> $mensaje Procesando ...</h1>";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-function campos_buscador($nombre,$tipo) {
-if($nombre=="") {
-		$filtros = "
-	<div class='input-group '>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \" xajax_campos_tabla(this.value,'div_tabla_campos','$limite','',document.getElementById('buscador_campos').value); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>No usados </option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-
-	";
-$resultado ="
-<div class='row'>
-<div class='col-md-6'>
-$filtros
-</div>
-<div class='col-md-6'>
-<div class='input-group '>
-  <input type='text' id='buscador_campos' class='form-control' placeholder='Buscador de campos'  onkeyup = \" xajax_campos_tabla(document.getElementById('filtro_campos').value,'div_tabla_campos','','',(this.value));\" >
-  <span class='input-group-addon' id='basic-addon2'><i class='glyphicon glyphicon-search'></i></span>
-</div>
-</div>
-</div>";
-
-}
-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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='glyphicon glyphicon-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='glyphicon glyphicon-heart'></i> $row[id_especialista]";
-				}
-				if($_SESSION['id'] == 1){ 
-				 $metacampo_titulo="<th>MC</th>";
-				if($row['tipo_contenido'] ==1) {
-				$metacampo="<td title='Metacampo'><input checked type='checkbox' onclick=\" xajax_update_campo('form_campos','$row[id]','tipo_contenido','0','grabar','metacampo_$row[id]','id','nada'); \"><div id='metacampo_$row[id]'></div>";
-				}
-				else {
-				$metacampo="<td title='Metacampo'><input  type='checkbox' onclick=\" xajax_update_campo('form_campos','$row[id]','tipo_contenido','1','grabar','metacampo_$row[id]','id','nada'); \"><div id='metacampo_$row[id]'></div>";
-				}
-				}
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td>$metacampo<td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-
-	$tabla = "
-
-		<div id='div_tabla_campos'>
-		<legend>
-		<a onclick = \" xajax_campos_tabla('$filtro','div_tabla_campos','$limite','$anterior','$valor'); \"><<< ANTERIORES</a>
-		Mostrando $cantidad_mostrada de  $cantidad_total
-		<a onclick = \" xajax_campos_tabla('$filtro','div_tabla_campos','$limite','$fin','$valor'); \">SIGUIENTES >>></a>
-		</legend>
-
-
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='glyphicon glyphicon-list' title='Tipo'></i> Tipo</th>$metacampo_titulo<th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='glyphicon glyphicon-object-group'></i></th><th><i title='Estado' class='glyphicon glyphicon-eye-open'></i></th><th><i title='Empresa' class='glyphicon glyphicon-hospital-o'></i></th><th><i title='Propietario' class='glyphicon glyphicon-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='glyphicon glyphicon-remove-sign'></i></a>
-		<strong class='text-danger center'><i class='glyphicon glyphicon-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='glyphicon glyphicon-remove-sign'></i></a>
-					<br>
-					$linea
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='glyphicon glyphicon-cog'></i><i class='glyphicon glyphicon-cog'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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="<div id='dominio_$row[id]'><a class='btn btn-danger btn-sm' onclick=\"xajax_configurar_dominio($row[id],'eliminar'); \">DESconfigurar</a></div> ";
-		}
-	else{
-			$configuracion_dominio="<div id='dominio_$row[id]'><a class='btn btn-warning btn-sm' onclick=\"xajax_configurar_dominio($row[id],'crear'); \">Configurar</a></div> ";
-			}
-	$acciones = "<a href='#' onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i> </a> Estado: $estado
-
-	$configuracion_dominio";
-
-	}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0024</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form autocomplete='off' role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form autocomplete='off' class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='glyphicon glyphicon-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='glyphicon glyphicon-search'></i></div>
-						</div>
-					</div>
-
-
-		</form>
-
-	";
-/////// FILTRO
-
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='glyphicon glyphicon-trash'></i></a>
-
-		 ";
-
-				if($formato!='csv'){
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='glyphicon glyphicon-file-text-o'></i></a>";}
-
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-
-
-
-
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-
-	$total_registros = mysqli_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>";
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='https://".$web[0]."/milfs/images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='https://".$web[0]."/milfs/images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";
-			if($multiple[0] =='1') { 	$contenido_multiple  =  formulario_valor_campo("$id_form","$valor","","$row[control]",'',"$row[timestamp]"); 
-														//$contenido[0] = $contenido_multiple[8];
-															$listado_campos.="<td>$contenido_multiple[11]</td>";
-														}else{$listado_campos.="<td>$editar_contenido</td>";}
-			}
-		elseif($tipo_campo[0]=='10'){
-				$valor_actual = relacion_render("$id_form","$row[id_campo]",$contenido[0],'5','relacion_drop');
-			 @$listado_campos .= "<td title='' >$valor_actual</td>";	}
-		elseif($tipo_campo[0] =="6" ) {
-			$contenido_campo =imprimir_buscador_campo($valor,$contenido[0]) ;
-						 @$listado_campos .= "<td title='' >$contenido_campo </td>";
-						 }
-		elseif($tipo_campo[0] =="29" ) {
-
-						 @$listado_campos .= "<td title='' ><img class='img' height='100'  src='$contenido[0]'> </td>";
-						 }
-		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 .= "<td title='' >$valor_actual</td>";
-						 }
-		elseif($tipo_campo[0] =="31") {
-			//$json = html_entity_decode($contenido[0]);
-			$link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
-			$valor_actual = "<a id='link_$row[id_campo]_$row[orden]_consultar_formulario'  href='$link_url' target='_blank' >$contenido[0]</a>";
-						 @$listado_campos .= "<td title='' >$valor_actual</td>";
-						 }
-						 //
-						 //			if($tipo_campo[0] =="29" ) {$contenido[0] ="<img class='img img-responsive'  src='$contenido[0]'> "; }//$contenido="<img class='img img-responsive'  src='$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 .= "<td title='$tipo_campo[0]' >$contenido[0] </td>";
-}
- 			
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;} 
-
-	 $areas = resumen_identificador("$row[control]",'','','boton');
-	 $acceso = generar_acceso($row[control],"","");
-	 	if($resaltado[0] =="$row[control]") {$iresaltar =" <span class='badge'>Resaltado</span>"; $alert="info";}
-	 	else {
-	 		$iresaltar = "<div class='btn btn-default btn-xs '
-	 			onclick=\"xajax_parametrizacion_linea('index','resaltado','resaltado','$row[control]','resultado_resaltado'); \" title='Si se marca este item se mostrará en la portada'> Resaltar</div>
-	 			<div id='resultado_resaltado'> </div>";
-	 		$alert="";
-
-	 		}
-
-	 	$menu ="<td  class='actions $alert ' >
-
-
-							<div class='container-fluid'>
-								<div class='row'>
-									<div class='col-md-12'>
-									<a class='btn btn-default  btn-xs' target='form' href='../I$row[control]'><i class='glyphicon glyphicon-eye-open'></i> Plantilla</a>
-									</div>
-									<div class='col-md-12' >
-									$areas
-									<div id='areas_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-										<a title='Editar' class='btn btn-default btn-xs' onclick=\"xajax_formulario_embebido_ajax('','$row[form_id]','$row[control]','edit'); \"><i class='glyphicon glyphicon-pencil'></i> E</a>
-										<a title='Borrar' class='btn btn-default  btn-xs' onclick=\"xajax_eliminar_identificador('$row[control]','','$row[form_id]'); \" href='#'><i class='glyphicon glyphicon-trash'></i> B</a>
-										<a title='Clonar' class='btn btn-default  btn-xs' onclick=\"xajax_clonar_identificador('$row[control]',''); \" href='#'><i class='glyphicon glyphicon-clone'></i> C</a>
-										<div id='eliminar_$row[control]'></div>
-										<div id='clonar_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12' >
-									$acceso
-									<div id='areas_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-									$imagen
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-									$iresaltar
-									</div>
-								</div >
-
-							</div>
-
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla
-
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados 0001</h1> </div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='glyphicon glyphicon-cloud-download'></i></a>";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 =
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='glyphicon glyphicon-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$control'>$_SESSION[site]I$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='glyphicon glyphicon-remove-sign'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion_limpia[0]</h4>
-
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='glyphicon glyphicon-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Campos especiales</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='mapa_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_mapa('$perfil','div_parametrizacion','') \" >Mapa</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<ul class='list-group'>
-
-";
-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 .= "
-<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'>
-	<a href='?id=$perfil&buscar=$categoria_campo:$contenido'>
-		<img style=' height:50px;' class='' src='$icono' style=''>
-	</a>
-	<small>$contenido</small>
-</div>";
-$resultado .="<li class='list-group'><a href='?id=$perfil&buscar=$categoria_campo:$contenido'><img style=' height:50px;' class='' src='$icono' style=''> $contenido</a></li>";
-															}
-$resultado .= "	</ul >";
-										}
-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 = "
-		<br>
-		<p>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.
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias
-		<form autocomplete='off' id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$proyecto_logo\"  />";
-while( $row = mysqli_fetch_array( $sql ) ) {
-	if($row[id_campo] == $campo_imagen ) {$imagen ="<i class='glyphicon glyphicon-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>
-
-		 
-";
-
-}
-/*
-$campo_400[$row[id_campo]]
-	$campo_80[$row[id_campo]]
-	$campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-
-
-		 	</li>
-		 $listado
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador_logo' ondragstart=\"evdragstart(event,this)\"  title=' Logo'>Logo</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$proyecto_nombre' ondragstart=\"evdragstart(event,this)\"  title='Nombre'>Proyecto</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$proyecto_slogan' ondragstart=\"evdragstart(event,this)\"  title='Slogan'>Slogan</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$proyecto_web' ondragstart=\"evdragstart(event,this)\"  title='Web'>Web</span></li>
-		 </ul>
-</div>
-";
-}
-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 ="<i class='glyphicon glyphicon-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]]
-	$campo_80[$row[id_campo]]
-	$campo_55[$row[id_campo]]
-*/
-$identificador_logo=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$proyecto_logo\"  />";
-
-$resultado = "
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-
-
-		 	</li>
-		 $listado
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador_logo' ondragstart=\"evdragstart(event,this)\"  title=' Logo'>Logo</span></li>
-		 </ul>
-</div>
-";
-}
-	$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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='glyphicon glyphicon-eye-open'></i></a> Editar</td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='glyphicon glyphicon-plus-sign'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='glyphicon glyphicon-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-
-}
-else {
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='glyphicon glyphicon-plus-sign'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form autocomplete='off' id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='glyphicon glyphicon-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='glyphicon glyphicon-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
- 			<div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='wysiwyg form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				<div id='div_campos'>
-					<div class='btn btn-default btn-xs' onclick=\"xajax_parametrizacion_plantilla_campos_inteligentes('$formulario'); \" >Campos inteligentes</div>
-					$campos
-				</div>
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='glyphicon glyphicon-floppy-disk'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='glyphicon glyphicon-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='glyphicon glyphicon-remove-sign'></i></div>
-			</div>
-
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 ="
-<br><labeL for='json_extra'>Defina en cada linea un geojson adicional que se mostrará en el mapa $formulario </label>
-<br>Ejemplo: [Nombre de la capa] url.geojson
-	<textarea class='form-control' rows=10 placeholder='[Nombre de la capa] url.geojson' id='json_extra' name ='json_extra'>$li</textarea>
-	<div class='btn btn-success center-block' onclick=\"xajax_parametrizacion_mapa('$formulario','resultado_json',document.getElementById('json_extra').value) \">Grabar</div>
-	<br><div id='resultado_json'></div>";
-			$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 .="<li class='list-group-item'><strong>$v[1]:</strong> $v[0] </li>";
-			}
-
-	}
-
-}
-	$resultado_visible="<ul class='list-group'>$li</ul>";
-//	$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-
-$resultado = "
-	<legend>Campos especiales</legend>
-	<ul>
-	<li>Campo de <b>Título</b> actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></li>
-	<li>Campo de <b>Descripción</b> actual<strong> $campo_descripcion_nombre[0] [$campo_descripcion[0]]</strong> <small> (Este campo debe ser del tipo nota)</small></li>
-	<li>Campo de <b>Orden</b> actual<strong> $campo_orden_nombre[0] [$campo_orden[0]]</strong> <small> (Este campo debe ser del tipo numérico)</small></li>
-	</ul>
-
-	<div class='input-group'>
-		<span class='input-group-addon'>Campo</span>
-
-		 <select class='form-control' id='seleccion_campo' name='seleccion_campo'  onchange=\"\">
-		 <option value=''>Borrar el valor actual</option>
-		 $listado
-		 </select>
-			<div class='input-group-btn'>
-			        <button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'><span class='caret'></span> Seleccionar</button>
-			        <ul class='dropdown-menu dropdown-menu-right'>
-			          <li><a href='#' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','titulo',document.getElementById('seleccion_campo').value,'div_seleccion_titulo','xajax_parametrizacion_titulo(\'$formulario\',\'div_parametrizacion\',\'\') ',''); \">Título</a></li>
-			          <li><a href='#' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','orden',document.getElementById('seleccion_campo').value,'div_seleccion_titulo','xajax_parametrizacion_titulo(\'$formulario\',\'div_parametrizacion\',\'\') ',''); \">Orden</a></li>
-			          <li><a href='#'onclick=\"xajax_parametrizacion_linea('form_id','$formulario','descripcion',document.getElementById('seleccion_campo').value,'div_seleccion_titulo','xajax_parametrizacion_titulo(\'$formulario\',\'div_parametrizacion\',\'\') ',''); \">Descripción</a></li>
-			          
-			        </ul>
-			</div>
-	</div>
-
-<div id='div_seleccion_titulo'></div>
-
-
-
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-if($div !="") {
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-
-$resultado = "
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-			$resultado
-			</div>";
-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 ="<div class='alert alert-danger'><h1>Acceso restringido<small>Esta aplicación contiene datos privados </small>
-		<i class='glyphicon glyphicon-lock'></i></h1></div>";
-
-		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]'
-	//<li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-	    	//// 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') {
-//<tr> <td class='col-xs-1'>$row[id_campo] x</td><td class='col-xs-2'>$row[campo_nombre] x</td><td class='col-xs-4'>$row[campo_descripcion] x</td><td class='col-xs-5'>$estadisticasx x</td></tr>
-	$estadisticas = formulario_estadistica("$formulario","$row[id_campo]","contenido","barras");
-$listado .= "
-				<tr>
-              <td class='col-xs-2'>
-              		<ul class='list-group'>
-		              <li class='list-group-item'>Id: $row[id_campo]</li>
-		              <li class='list-group-item'>Nombre: $row[campo_nombre]</li>
-		              <li class='list-group-item'>Tipo: $tipo_campo[0]</li> 
-		              <li class='list-group-item'>Descripción: $row[campo_descripcion]</li>
-	              </ul>
-              </td>
-              <td class='col-xs-10'><strong> $row[campo_descripcion]</strong>$estadisticas </td>
-            </tr>
-";
-}else {$listado.="";}
-}
-$resultado = "
-
-
-		<table class='table table-bordered'>
-
-		<tbody>
-		$listado
-		</tbody>
-		</table>
-
-
-";
-}
-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 .= "<li class='list-group-item'><a href='?id=$row[id]' title=''>$nombre</a></li>";
-}
-$resultado = "
-
-
-		 <ul class='list-group'>
-		 $listado
-		 </ul>
-";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label>
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>";
-															}
-															$resultado .= "</ol>";
-										}
-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 ="
-			<h2>$nombre[0]</h2>
-			<legend>$descripcion[0]</legend>
-			";
-
-	}else {$id_form ="";}
-
-		$impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp)."";
-		if($impresion !="") {
-			//$visitas= contar_visitas($control,'identificador') ;
-			//$visitas= "<small><i class='glyphicon glyphicon-eye-open'></i> $visitas</small>";
-		//$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 = "
-
-
-<div   id ='mostrar_identificador_$control' class='mostrar_identificador '>
-			$visitas
-				$datos_form
-				<!-- formulario_imprimir() -->
-
-								$impresion
-
-				<!-- formulario_imprimir() -->
-
-
-				$interaccion
-				$edicion
-</div>
-		"; }else {
-$resultado = $impresion;
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning alert_sin_resultados'><h1>No hay resultados 0002</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form autocomplete='off' role='form' class='' id='form_mensajes' name='form_mensajes'>
-
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'),'');\" >ENVIAR MENSAJE</div>
-			</div>
-
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form autocomplete='off' role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'>
-
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'),'');\" >ENVIAR MENSAJE</div>
-			</div>
-
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form autocomplete='off' role='form' class='' id='form_mensajes' name='form_mensajes'>
-
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'),'');\" >ENVIAR MENSAJE</div>
-			</div>
-
-
-		</form>
-	</div>
-</div>";
-
-
-
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='glyphicon glyphicon-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='glyphicon glyphicon-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='glyphicon glyphicon-reply'></i> Responder</a>
-	              	</div>
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);
-		$lista .="</div>";
-		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 ="
-<div style='text-align: center;'>
-
-<h2>Código de validación</h2>
-<H1>$rrn</H1>
-<h3>Por favor escribe este código en el campo correspondiente</h3>
-</div>
-
-			";
-		$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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $dato</h2>";
-$resultado="
-<div class='form-group has-error' id='codigo_confirmacion'>
-		<span class='help-block'>Escribe el código de confirmación que enviamos a tu correo. </span>
-			<div class='input-group'  id=''>
-				<span class='input-group-addon'>
-					<i class='glyphicon glyphicon-key'></i>
-				</span>
-				<input type='hidden' id='rrn' name='rrn' value='$rrncode'>
-
-				<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'>
-				<span class='input-group-btn'>
-				<div onclick=\"xajax_verificacion_email('$control_usuario',xajax.getFormValues('formulario_verificacion_email'),'confirmar');\"  class='btn btn-danger'>Comprobar </div>
-				</span>
-			</div>
-
-</div>
-";
-				  }
-			else {$resultado .="<span class='text-danger'><i class='glyphicon glyphicon-meh-o'></i> Error enviando correo</span>";}
-
-$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="<div class='alert alert-danger'>El codigo no es valido, inténtalo de nuevo</div>";
-		}
-
-$respuesta->addAssign("intento_$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-else {}
-
-	if($validado[0] != md5("$email[0]")) {
-		$verificar_email = "
-		<div id='contenedor_login_validacion' >
-			<div  class='alert alert-dismissible alert-info'>
-				<button class='close' data-dismiss='alert'>x</button>
-				<h2><i class='glyphicon glyphicon-smile-o'></i> Vamos a validar tu email </h2>
-				<p>Enviaremos un código de verificación a para validarlo.</p>
-				<form autocomplete='off' role='form' id='formulario_verificacion_email'>
-					<div class='input-group has-success'>
-						<span class='input-group-addon'>
-							<i class='glyphicon glyphicon-envelope'></i>
-						</span>
-							<input type='hidden' id='control' name='control' value='$usuario[0]'>
-							<input type='email' class='form-control ' id='enviar_email' name='enviar_email' value='$email[0]'>
-						<span class='input-group-btn'>
-							<div onclick=\"xajax_verificacion_email('$control_usuario',document.getElementById('enviar_email').value,'enviar');\" class='btn btn-warning'>Enviar código</div>
-						</span>
-					</div>
-				<div id='$div'></div>
-				<div id='intento_$div'></div>
-	
-				</form>
-			</div>
-		</div>
-
-		";
-		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 = "
-				<p>
-					<img style='width:40px;' class='img img-circle' src='$avatar'> Hola $_SESSION[nombre_usuario_milfs]
-				</p> $validar_email
-				<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='glyphicon glyphicon-log-out'></i> SALIR </a>
-
-				";
-				return $formulario;
-			}else {
-
-/*				if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
-			$social_login="";
-			$cols="12";
-				}
-				else {
-					*/
-					$cols="10";
-			$social_login="
-				<div class='col-md-12'>
-
-					<div class='list-group'>
-						<a class=' list-group-item btn btn-default ' href='./milfs'>MILFS</a>
-						<a class=' list-group-item btn btn-default ' href='#'  onclick=\"javascript: document.getElementById('div_formulario_session').className= 'visible col-md-12'; \">TUPALE.CO</a>
-						<a class=' list-group-item btn btn-default ' href='./sociallogin.php?provider=twitter'><i class='fa fa-twitter'></i> Twitter</a>
-<!-- 						<a class=' list-group-item btn btn-default ' href='./sociallogin.php?provider=facebook'><i class='fa fa-facebook'></i> Facebook</a> -->
-					</div>
-				</div>
-
-			";
-			//return $formulario;
-//				}
-			$formulario ="
-			$accion
-			<div class='row' id='formulario_session'>
-			$social_login
-				<div class='col-md-10 invisible' id='div_formulario_session' >
-					<form autocomplete='off' class='form-horizontal ' autocomplete='off' id='login_milfs' name ='login_milfs' >
-						<div class='form-group>
-							<label for='usuario'>Usuario </label>
-								<input type='text' id='usuario' name='usuario' class='form-control'>
-						</div>
-						<div class='form-group>
-							<label for='password'>Clave </label>
-								<input type='password' id='password' name='password' class='form-control'>
-						</div>
-						<br>
-						<div class='row'>
-							<div class='col-xs-4'>
-								<div class='btn  btn-default ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','','$div') \">Recuperar</div>
-							</div>
-							<div class='col-xs-4'>
-								<div class='btn  btn-default  ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','','$div') \">Registrarse</div>
-							</div>
-							<div class='col-xs-4'>
-							<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs'),'$div') \">ingresar</div>
-							</div>
-						</div>
-					</form>
-				</div>
-			
-				<div id='resultado'></div>
-			</div>
-
-
-			";
-			$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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador código </div>";
-					$respuesta->addAssign("$div","innerHTML",$formulario);
-					return $respuesta;
-
-				}
-		$campos = formulario_areas('',$form_id,'campos','','','','');
-
-		$boton ="
-		<button id='boton_registro' href='#' class='btn btn-success btn-block'
-		onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro'),'$div'); \" >
-		Registrarse </button>
-		";
-		$control = md5(rand(1,99999999).microtime());
-			$formulario ="
-	<div class='container'>
-		<form autocomplete='off' class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-		<input type='hidden' value='$control' id='control' name='control'>
-		$campos
-		$boton
-		</form>
-			<div id='resultado'></div>
-	</div>
-		";
-
-			$respuesta->addAssign("$div","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
-			if($datos =="") {
-			//$campos = formulario_areas('',$form_id,'campos');
-			$campos ="
-
-			<div class='form-group>
-			<label for='usuario'>Usuario</label>
-			<input type='text' id='usuario' name='usuario' class='form-control'>
-			</div>
-			<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-			<input type='text' id='codigo' name='codigo' class='form-control'>
-			</div>
-			";
-			$boton ="
-			<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro'),'$div'); \" >Solicitar clave</div>
-			";
-			$control = md5(rand(1,99999999).microtime());
-			$formulario ="
-			<form autocomplete='off' class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-			<input type='hidden' value='$control' id='control' name='control'>
-			$campos
-			<br>
-			$boton
-
-			</form>
-			<div id='resultado'></div>
-			";
-			}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 ="
-			<form autocomplete='off' class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-			<div class='row'>
-			<div class='form-group col-md-6'>
-			<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'>
-			</div>
-			</div>
-			<div class='col-md-6 form-group'>
-			<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'>
-			</div>
-			</div>
-			</div>
-			<div class='row'>
-			<div class='col-md-12'>
-			<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-			</div>
-			</form>
-
-			";
-
-			$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 ="
-			<h1>Hola $datos[usuario]</h1>
-			El código para recuperar tu contraseña es:
-			<h2>$password[0]</h2>
-			Regresa pronto :-)
-
-			";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-
-			}else{
-
-			$formulario="<div class='alert alert-warning'><h1>No encontramos tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";
-
-			}
-
-
-			}
-			$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-			$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 ="<div class='alert alert-success'><h1>Gracias por regresar $_SESSION[nombre_usuario_milfs] <i class='glyphicon glyphicon-smile-o'></i></h1></div>  ";
-			$respuesta->addScript("javascript:location.reload(true);");
-			}else {$resultado ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :(  </div>";
-			$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 ="<div class='alert alert-success'>Gracias por registrarse, Actualiza e ingresa con los nuevos datos. $login </div>";
-
-
-						}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-					}else {	}
-
-														}
-				require ("milfs/includes/parametrizacion.php");
-				$insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","","");
-			$resultado ="<div class='alert alert-success'>Gracias por registrarse, Actualiza e ingresa con los nuevos datos.   </div>";
-			$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 = "
-				<i>
-					<img style='width:40px;' class='img img-circle' src='$avatar'> $_SESSION[nombre_usuario_milfs] <a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir','$div') \"><i class='fa fa-sign-out'></i> SALIR </a>
-				</i> $validar_email
-				
-
-				";
-
-			}else{
-	      $formulario ="
-	      <div id='formulario_login' class='' >
-	      <div class=' btn btn-success btn-block' onclick=\"xajax_milfs_session('$login_formulario','$login_campo_usuario','$login_campo_password','','','$div');\">Ingresa</div>
-	      </div>
-	       ";
-	    }
-	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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$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="
-
-<div class='col-xs-12' id='buscador_blog'>
-			<div class='col-xs-12 col-md-10 input-group' >
-				<input placeholder='Escribe para buscar' class='form-control' id='$control_buscador' name= '$control_buscador'>
-			</div>
-
-			<div class='col-md-2' id='lupa_buscador'style='padding: 0px;'>
-			<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('$control_buscador').value),'$id_form','$plantilla','$div'); \"><i class='fa fa-search'></i></div>
-			</div>
-</div>
-
-";
-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 .= "
-
-						<div class='container-fluid ' role='row' id='grid_$i'  style='' class='alert alert-info'>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$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 ="<div class='col-sm-$cols thumbnail' style=''  ><div class=''> $datos</div></div>";
-
-	$encontrados .="$contenido  ";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<h2>Resultados de: $valor</h2>
-<div class=''>$encontrados </div>  ";
-
-$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 .= "
-
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador
-
-	<div id='grid_resultado'>
-
-		$contenido
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-
-	<div class=''  >
-		<div class='row'>
-			<div class='col-md-3'>
-
-				<img class='img img-responsive' src='$_SESSION[url]/milfs/images/secure/?file=150/$logo[0]'>
-			</div>
-			<div class='col-md-9'>
-			<h2>$nombre<small style='display:block;'>$descripcion </small></h2>
-			</div>
-		</div>
-	</div>";
-
-$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 ="
-	<div class=''>
-				<span class=' checkbox'>
-					<label>
-					<input class='text-success' type = 'checkbox' id ='continuar' name='continuar' value='1'> Continuar editando
-					</label>
-				</span>
-	</div> ";
-}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 ="<a class='btn btn-default btn-responsive prev ' href='#'><i class='fa fa-backward' aria-hidden='true'></i> Anterior</a>";}
-	if($fila == $cantidad) { $boton="
-	
-	<div class='row' id='respuesta_$control' name='respuesta_$control' >
-		</div>
-			$continuar_editando
-		<div class='row'>
-			<div class='col-xs-4'>
-				<div calss='input-group'>
-					<span class='input-group-btn'>
-						$anterior
-					</span>
-				</div>
-			</div>
-			<div class='col-xs-4'>
-				<div calss='input-group'>
-					<span class='input-group-btn'>
-						<div  onclick=\"  xajax_formulario_grabar(xajax.getFormValues('$control'),'');\"  class='btn btn-block btn-success'>Grabar</div>
-					</span>
-				</div>
-			</div>
-			<div class='col-xs-4'>
-				<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-			</div>
-		</div>
-	
-	
-	";}
-	else{
-	$boton="	$anterior
-				<a class='btn btn-success btn-responsive next pull-right' href='#'>Siguiente <i class='fa fa-forward' aria-hidden='true'></i></a>";
-		}
-	if($tipo=='campos') {
-		$boton =""	;
-	}else{ $boton= $boton;}
-$resultado_campos .= "
-      <div class='tab-pane fade in $activo ' id='step_$fila'>
-         <div class=''>
-
-				<legend class='legend-area visible-xs' id='legend_$fila'>$fila. $area_nombre </legend>
-				$campos
-
-				
-			</div>$boton
-		</div>
-				
-				";
-				
-$resultado_solo_campos .= "
-      <fieldset>
-        
-
-				<legend class='legend-area ' id='legend_$fila'>$fila. $area_nombre </legend>
-				$campos
-
-			
-		</fieldset>
-				
-				";
-				
-				
-$controladores .= "	<li class='$activo  '>
-									<a href='#step_$fila' data-toggle='tab' data-step='$fila' data-toggle='tooltip' title='$area_nombre' data-placement='top' > <p><span class='area_numero'>$fila.</span><span class='hidden-sm area_nombre'> $area_nombre</span></p> </a>
-									
-							</li>
-
-";
-															}
-
-
-//// botonera form
-
-
-$metadatos = json_encode($metadatos);
-$muestra_form = "
-
-<div id ='div_$control'  >
-	<div class='container-fluid' id='myWizard'>
-		<div class='progress'>
-	     <div class='progress-bar progress-bar-success' role='progressbar' aria-valuenow='1' aria-valuemin='1' aria-valuemax='$fila' style='width: 10%;'>
-	      Paso 1 de $fila
-	     </div>
-		</div>
-	   <div class='navbar hidden-xs '>
-	      <div class='navbar-inner'>
-	            <ul class='nav nav-pills nav-justified'>
-	               $controladores
-	            </ul>
-	      </div>
-	   </div>
-	  
-			<form autocomplete='off' role='form' id='$control'  name='$control' class='form-horizontal' autocomplete='off'  >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-			<input type='hidden'  id= 'metadatos'  name= 'metadatos' value='$metadatos' >
-	. 	<div class='tab-content'>
-			$resultado_campos 
-		</div>
-		<br>
-		
-	</div>
-			</form>
-</div>
-
-
-
-<script type='text/javascript' >
-
-
-
-
-$(document).ready(function(){
-
-        $('#muestraInfo').on('show.bs.modal', function () {
-            alert('The modal is about to be shown.');
-             $script; 
-    });
-});
-
-$('.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) / $fila ) * 100;
-  
-  $('.progress-bar').css({width: percent + '%'});
-  $('.progress-bar').text('Paso ' + step + ' de $fila' );
-  
-  //e.relatedTarget // previous tab
-  
-})
-
-$('.first').click(function(){
-
-  $('#myWizard a:first').tab('show')
-
-})
-</script>
-							";
-
-//// 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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'><!-- $eliminar --></td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0003</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form autocomplete='off' role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='glyphicon glyphicon-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-
-            }
-        }
-
-    }
-
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") {
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='glyphicon glyphicon-file'></i> <strong>$cantidad</strong> archivos, <i class='glyphicon glyphicon-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='glyphicon glyphicon-globe'></i> <strong>$mapa</strong>  georeferenciadas
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-
-    			$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 = "<a href = '$_SESSION[site]i$valor' target='referencia'>Ver referencia</a> ";
-}
-}
-
-	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="  <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-		if($row[control] == "$valor") {
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-															}
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0004 </div>";}
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> <a href='$crue[1]' target ='crear'>No hay datos <strong>Crear Nuevo</strong></a></div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>$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 = "<a href = '$_SESSION[site]i$valor' target='referencia'>Ver referencia</a> ";
-	}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.= "<a class='list-group-item btn-link' onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> ";
-
-															}
-
-$resultado .= "
-			<ul class='  list-group' style='max-height:300px; overflow:auto;' >
-			$lista
-			</ul>
-		<div id='$div' ></div>
-		<div class='text-$alert'>$aviso</div> ";
-										}
-		else{
-			if($publico[0] == '0' AND $propietario[0] != $_SESSION['id']){$agregar ="";}else{$agregar ="<a class='btn btn-default ' href='../g$formulario' target='formulario'>Agregar nuevo registro</a>";}
-			$resultado = "$publico[0] // $propietario[0] // $formulario <div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados para <strong>$valor</strong> $agregar</div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0006</div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0007</div>";}
-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="<div class='alert danger' style='color:white;'>La aplicación no tiene imágenes</div>";
-		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&registros=$registros&pagina=1&orden=$orden";
-					$href_2 = "$origen&registros=$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 .= "<li><a href='$href_1' title='Cambiar a grupo 1'  onClick=\"xajax_aplicacion_carrusel('$form','$registros','1','','$orden','$plantilla');\' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a href='$href_2' title='Cambiar a grupo ".($pagina-1)."'  onClick=\"xajax_aplicacion_carrusel('$form','$registros','".($pagina-1)."','','$orden','$plantilla');\" style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-
-        		if(isset($_REQUEST['registros'])) {
-					$href_3 = "$origen&registros=$registros&pagina=$x&orden=$orden";
-				}
-				else {
-					$href_3= "#cabecera#";
-					 }
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='$href_3'  title='Cambiar a grupo $x' onClick=\"xajax_aplicacion_carrusel('$form','$registros','$x','','$orden','$plantilla');\" style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='$href_3' title='Cambiar a grupo $x' onClick=\"xajax_aplicacion_carrusel('$form','$registros','$x','','$orden','$plantilla');\" style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         {
-         	if(isset($_REQUEST['registros'])) {
-					$href_4 = "$origen&registros=$registros&pagina=".($pagina+1)."&orden=$orden";
-					$href_5 = "$origen&registros=$registros&pagina=$pages&orden=$orden";
-				}
-				else {
-					$href_4= "#cabecera#";
-					$href_5= "#cabecera#";
-					 }
-         	 $link .= "<li><a  href='$href_4'  title='Cambiar a grupo ".($pagina+1)."' onClick=\"xajax_aplicacion_carrusel('$form','$registros','".($pagina+1)."','','$orden','$plantilla');\" style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a  href='$href_5'  title='Cambiar a grupo $pages' onClick=\"xajax_aplicacion_carrusel('$form','$registros','$pages','','$orden','$plantilla');\" style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = "
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-			 <div class='text-center center-block'>
-			 <p>Los resultados se muestras en grupos de $registros registros</p>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>
-				</ul>
-				     $paginacion 
-			 </div>
-			</div>
-		</div> ";
-
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>";
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<hr> $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 ="
-<div class='lazy' style=' min-height: 500px; height: 500px;
-  background-image: url($_SESSION[url]images/secure/?file=600/$imagen[0]);
-  background-position: center center;
-  background-size: contain;
-	background-repeat:no-repeat;
- ' class='carrousel_item'>
-	<div class='center-block text-center' style='   '> 
-		<div class='carousel-caption d-none d-md-block'>
-		       <h2> $titulo[0]</h2>
-		        <small>$campo_limpio[562]</small>
-		
-		</div>
-	</div>
-</div>	
-	
-	";
-	
-		}
-
-			
-	$items .= " <div class='item $activo'  style='max-height: 600px;'  >
-							$contenido_desplegado
-					</div>";
-
-
-
-	$indicadores .= "<div><img  class='lazy' height='50px'  width='100px'   data-src='$_SESSION[url]images/secure/?file=150/$imagen[0]' src='' ></div>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado ";
-	$ordenado = ($ordenado +1 );
-
-															}
-	$items .= " <div class='item $activo'  style='max-height: 600px;'  >
-							<a  href='$href_4'  title='Mostrar mas' onClick=\"xajax_aplicacion_carrusel('$form','$registros','".($pagina+1)."','','$orden','$plantilla');\" style='cursor:pointer'>
-							<i style='font-size:400px;' class=' fa fa-plus-square-o'></i></a>
-					</div>";
-		$indicadores .= "<div>
-							</div>";
-$scripts ="
-
-			  <script type='text/javascript'>
-			    $(document).on('ready', function() {
-			    $('.lazy').slick({
-				  lazyLoad: 'ondemand',
-				  slidesToShow: 3,
-				  slidesToScroll: 1
-				});
-			    
-			 $('.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
-			});
-				
-			
-			    });
-			</script> 
-
-";
-
-$carrusel="
-	<div class='slider slider-nav1'>
-		$indicadores
-</div>
-<div class='slider slider-for1'>
-		$items
-	</div>
-
-$scripts
-";
- $contenido = " <div id= '$div'>$carrusel</div>";
-
-
-										}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 = "<div class='text-warning text-center' title='NO tiene permiso para agregar datos esta aplicación'><p> <i class='glyphicon glyphicon-key'></i></p></div>";
-		//$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 = "
-			
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-    /*  background-image: url(milfs/images/iron.jpg); */
-			</style>
-<!-- <div style='width;100%; min-height:900px; padding: 0.3%; background-attachment:fixed; background-color: gray ;'> -->
-<div style=''>
-	<div class='container-fluid' style=' border-radius:3px;  box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >
-			
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-
-
-
-	</div>
-	<br>
-
-<div>	";
-			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 = "
-
-	<div class=''  >
-		<div class='col-xs-12 col-md-8 '>
-		$encabezado 
-		</div>
-		<div class='col-md-12 hidden-xs'>
-		<h2 class='pull-right '>$formulario_nombre[0]<small class='hidden-xs' > $formulario_descripcion[0]</small></h2>
-		</div>
-	
-	</div>";
-	$publico = remplacetas('form_id','id',"$id",'modificable',"") ;
-	$equipo = 	remplacetas('form_datos','control',$opciones,'equipo',"") ;
-	if($publico[0] =="0" AND $_SESSION[id] =="") {
-		$resultado = "  <div class='alert alert-danger'><h1><a href='./milfs/'>Ingresa</a> con tu usuario para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></h1>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		else{ $permiso_identificador =  ""; $salir="";}
-	
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0]  )){
-	$aviso = "<div class='alert alert-warning text-center '>
-					<h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado Para modificar esta información</small><br> pertenece a un grupo de trabajo diferente</h1></div>";
-
-				$resultado = "
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-
-			</div>
-				 ";
-//			$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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small> </h1></div>";
-			$seguridad ="
-
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-							
-			$resultado ="$cabecera
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-				$seguridad
-			</div>
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white;  overflow:no;' id='contenedor_datos' >
-			
-
-			<!-- formulario_areas -->
-			$impresion
-
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' >
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='https://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-					$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$mostrar = remplacetas('form_parametrizacion','campo',$row['id'],'descripcion'," tabla='form_id' AND opcion='mostrar_portal'") ;
-$vista_favorita = vista_favorita($row['id_formulario']);
-	if($id_empresa !=''){
-			$onclick ="";
-						$accion = " href='./$vista_favorita' ";
-		 }else {
-		 	$onclick ="";
-			$accion = " href='./e$row[id_empresa]' ";
-			}
-	 if ( isset ( $_SESSION['id'] ) ) {
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='glyphicon glyphicon-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i > 0 AND $divider > 0 ) {
-				if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			}
-			$i++;
-	$descripcion_corta = substr($row['descripcion'],0, $length = 100);
-		$geo = buscar_campo_tipo($row['id'],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='mapero.php?id=$row[id]' target='mapa'><i class='glyphicon glyphicon-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row['nombre'];
-
-if($row['nombre'] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#$accion' onclick=\" $onclick \" class='dropdown-toggle' data-toggle=''> $nombre  </a>
-							$contenido_listado
-							";
-}
-
-elseif($row['nombre'] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}
-										else{
-/*$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'
-							$accion   class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-							*/
-							
-		if($mostrar[0] !="0") {
-$resultado_nav .= "<li class='dropdown'  >
-							<a class=''  role='button'
-							$accion   class='dropdown-toggle' > $nombre</a>
-							$contenido_listado
-							";
-$resultado_nav .="</li>";
-$li_barra .= "<li >
-							<a class=''  role='button'
-							$accion   class='dropdown-toggle' > $nombre</a>
-							$contenido_listado
-					</li>";
-}else{} 
-
-
-						}
-
-
-
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","","");
-if($row['nombre'] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row['id'],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row['id'],"$campo_imagen[0]");
-if(@$imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\");
-										background-repeat: no-repeat;
-										background-size :cover;
-										background-position: center; ";}
-else {
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF));
-//$bg = "background-color: #$color_aleatorio ;";
-$bg = "background-color: gray ;";
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-		if($divider > 0 ) {
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-		}
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-			if($tipo =="sitemap") {
-$contenido_listado = contenido_listado("$row[id]");
-}
-
-
-															}
-if($tipo =="sitemap") {
-$resultado = "$resultado $contenido_listado";
-}
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-		$resultado_barra ="$li_barra";
-											//	}
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 <hr> ";
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-					<div class='parallax_$row[control] lazy'></div>
-							<div style='min-height:200px;'>
-							<div class='container'>$contenido_desplegado</div>
-							</div>
-
-						 ";
-						$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 = "
-
-		<style>
-		body, html {
-    height: 100%;
-}
-		$css
-		
-			
-		
-		</style>
-		
-
-        
-        $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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = "
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado ";
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
-
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-
-
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>";
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-	$resultado="";
-
-$link=Conectarse();
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = mysqli_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido");
-}
-return $contenido.$control;
-
-}
-
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	if($id=="") {
-					$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-					$id= $value[0];
-	}
-	$respuesta = new xajaxResponse('utf-8');
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla",'');
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;
-			}
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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_set_charset($link, "utf8");
-		$sql=mysqli_query($link,$consulta);
-		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 formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-		$sql=mysqli_query($link,$consulta);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-		$sql=mysqli_query($link,$consulta);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado[0]=mysqli_result($sql,0,"timestamp");
-		$resultado[1]=mysqli_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysqli_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-		@include("includes/datos.php");
-		
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row ' role='row'>
-	<div class='col-md-2 '>
-		<img id='logo_empresa' class='img img-rounded img-responsive' src='http://$_SESSION[site]milfs/images/secure/?file=150/$imagen[0]'>
-	</div>
-	<div class='col-md-10 col-xs-12'>
-		<div class='caption text-center'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead  hidden-xs'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small' id='empresa_pie'>$razon_social[0] | <a href='https://$web[0]' target='web'>$web[0]</a><span class='hidden-xs'> | $direccion[0] | $email[0] </span></div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if (  $_SESSION['grupo'] != 1  ) {	return;}
-	$div='contenido';
-
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='glyphicon glyphicon-cog'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('','');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express('','nuevo');\"><i class='glyphicon glyphicon-plus'></i> <i class='glyphicon glyphicon-user'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='glyphicon glyphicon-cog'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysqli_query($link,$consulta);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","","","","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","","","","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","","","","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","","","","");
-		//$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_web =  remplacetas('empresa','id',"$_SESSION[id_empresa]",'web','');
-		$empresa_web =  "<strong>$empresa_web[0]</strong> (Para editar este campo comuníquese con el soporte de técnico )";
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","","","","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","","","","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","","","","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=300/$background[0]";
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","","","","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","","","","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","","","","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","","","","");
-		$parametrizacion_css = parametrizacion_css("","","");
-		$subir_imagen = subir_imagen("","imagen","milfs");
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]','imagen') \";
-								class='btn btn-success'>Cambiar logo</div><br>";
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-		$usuarios_autorizados = autorizar_usuarios('','','');  
-		$pagina_inicio_definida = remplacetas('form_parametrizacion','id_empresa',$_SESSION[id_empresa],'descripcion'," tabla='empresa' AND opcion='pagina_inicio'") ;
-
-		$listado_formularios = select_key('form_id,form_grupo','id','form_id.id','nombre',"xajax_parametrizacion_linea('empresa',$_SESSION[id_empresa],'pagina_inicio',(this.value),'div_pagina_inicio','','');","form_id.id_empresa = '$_SESSION[id_empresa]' AND form_id.id = form_grupo.id  ",'tipo_consulta',"$pagina_inicio_definida[0]");
-	$pagina_inicio= "
-	<br>
-	<div class='container'>
-		
-		<div class='input-group'>
-				<span class='input-group-addon'>
-					Página de Inicio : <span id='div_pagina_inicio'>$pagina_inicio_definida[0]</span>
-				</span>
-				$listado_formularios
-			</div> 
-			
-			
-	</div>
-			
-	";
-		
-	$resultado .="
-				<div class='img-round ' id='banner_imagen' style='
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ;
-					padding:10px;
-					padding:10px; width: 200px; height:200px;
-
-					'><a href='#logo'>Cambiar logo</a>
-
-
-
-				</div>
-				
-				$pagina_inicio
-				$usuarios_autorizados
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos del proyecto</h2>
-
-
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-
-
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</h2>
-
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-
-					</div>
-				</div>
-
-				$parametrizacion_css
-
-						<div style='' id='logo' >
-						<legend>Cambiar logo</legend>
-
-								$subir_imagen
-
-						</div>
-						<hr>
-
-
-					";
-
-	$respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id,$campo) {
-	$respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "UPDATE $tabla SET `$campo` = '".$imagen."' WHERE `id` = '$id';";
-	$sql_consulta=mysqli_query($link,$consulta);
-	if($sql_consulta) {
-if($tabla =='empresa') {
-	$respuesta->addAssign("banner_$campo","style.backgroundImage","url('images/secure/?file=600/$imagen')");
-	$respuesta->addAssign("formUpload_$campo","innerHTML","");
-	return $respuesta;
-}
-else {
-		$respuesta->addAssign("banner_$campo","style.backgroundImage","url('images/secure/?file=600/$imagen')");
-	$respuesta->addAssign("formUpload_$campo","innerHTML","");
-	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_set_charset($link, "utf8");
-	$edit = "UPDATE  $tabla SET  $campo =  '$valor' WHERE id = '$key' $accion limit 1; ";
-	$sql=mysqli_query($link,$edit);
-		if(mysqli_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_set_charset($link, "utf8");
-	$borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-//	$edit = "UPDATE  $tabla SET  $campo =  '$valor' WHERE id = '$key' limit 1; ";
-	$sql=mysqli_query($link,$borrar);
-		if(mysqli_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_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);
-		if(mysqli_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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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_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);
-		if(mysqli_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 update_campo($tabla,$key,$campo,$valor,$accion,$div,$indice,$onchange){
-
-
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-
-
-if($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysqli_real_escape_string($link,$valor)."' WHERE $indice = '$key' limit 1; ";
-	$sql=mysqli_query($link,$edit);
-		if(mysqli_affected_rows($link) != 0){
-
-														}
-	//	$campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-
-				$respuesta = new xajaxResponse('utf-8');
-				if($onchange =="") {
-			 $respuesta->addScript("javascript:location.reload(true);");; 
-		}else{$respuesta->addAssign($div,"innerHTML","");}
-	//	$respuesta->addAssign($div,"innerHTML",$edit); 
-		//$respuesta->addScript("$onchange"); 
-	return $respuesta;
-				
-
-								}
-
-
-
-}
-
-$xajax->registerFunction("update_campo");
-
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
-//Definicion de variables
-//$accion = "";
-
-	$indice=$indice;
-	$valor = str_replace('"',"'", $valor);
-	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_set_charset($link, "utf8");
-	$consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE  $id = '$key' LIMIT 1";
-	$sql_consulta=mysqli_query($link,$consulta);
-	$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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','cerrar','$div','$indice'); \">
-				<i class=' glyphicon glyphicon-remove-sign'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" >
-				<i class='glyphicon glyphicon-floppy-disk'> </i>
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text'
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-
-		</div>
-	";
-
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' glyphicon glyphicon-remove-sign'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" >
-				<i class='glyphicon glyphicon-floppy-disk'> </i>
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-
-		</div>
-	";
-	//$respuesta->addScript("(document.getElementById('".$campo."_".$id."".$rrn."').focus())");
-		}
-								}
-elseif($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysqli_real_escape_string($link,$valor)."' WHERE $id = '$key' limit 1; ";
-	$sql=mysqli_query($link,$edit);
-		if(mysqli_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= $campo."_".rand(123,9999);
-  if($valor =="") {$aviso="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='glyphicon glyphicon-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-
-					";
-													}
-	else {$campo = "";}
-
-		return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo,$timestamp) {
-	
-	$control_existe = 	remplacetas('form_datos','control',"$control",'id',"") ;
-$contenido_full="";
-	  			if(strlen($control) > 32) {
-					$identificador_original= $control;
-					$key =  substr($control, 32, $length = 40);
-					$control =  substr($control, 0, $length = 32);
-				} else {$identificador_original = $control;}
-
-$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','') ;
-		$id_seguridad = $id_seguridad[0];
-
-	}else{
-		$publico = remplacetas('form_id','id',$id,'publico','') ;
-		$id_seguridad = $id;
-	}
-		$empresa_seguridad = remplacetas('form_id','id',$id_seguridad,'id_empresa','') ;
-		if($publico[0] != "1" ){
-		$permiso_actual = 	remplacetas('form_permisos','control',"$control",'permiso',"") ;
-		$permiso_vencimiento = 	remplacetas('form_permisos','control',"$control",'vencimiento',"") ;
-		if($permiso_actual[0] =="") {$sigue_restringido = 1;}
-		elseif($permiso_actual[0] != $key) {$sigue_restringido = 1;}
-		elseif($permiso_vencimiento[0] < time()) {$sigue_restringido = 1;}
-		else{$sigue_restringido ="";}
-
-		}
-		if($control_existe[0] ==""){return $control;}
-		if($publico[0] != "1" and ( $_SESSION['id_empresa'] != $empresa_seguridad[0] ) AND $sigue_restringido !="" ) {
-		$resultado ="<div class='alert alert-danger'><h6>Acceso restringido <small>Esta aplicación contiene datos privados ($id),$control,$tipo,$timestamp </small>
-		<i class='glyphicon glyphicon-lock'></i></h6></div>";
-		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
-						GROUP BY form_contenido_campos.id_campo,form_datos.orden
-						ORDER BY form_contenido_campos.orden ASC 
-						  $limit
-						";
-	}else {
-	$consulta = "SELECT *FROM form_contenido_campos , form_datos WHERE form_datos.control = '$control' AND form_contenido_campos.id_campo = form_datos.id_campo $where_timestamp GROUP BY form_contenido_campos.id_campo,form_datos.orden"	;
-	}
-	$control = mysql_seguridad($control);
-
-$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];
-		$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",'',"$timestamp");
-		$contenido_array = $contenido;
-		$contenido_multiple= $contenido[10];
-		//		$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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]milfs/images/secure/?file=600/$contenido'>
-									<a href='milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='glyphicon glyphicon-search-plus'></i></a>
-									";
-				$laimagen = $contenido;
-									 }else{$contenido=""; $laimagen="";}}
-				elseif($campo_tipo =='15' ){if($contenido !=""){
-				$imagen = "<img class='img img-responsive'  src='$_SESSION[url]milfs/images/secure/?file=600/$contenido'>
-
-									";
-				$laimagen = $imagen;
-									 }else{$imagen=""; $laimagen="";}}
-		elseif($campo_tipo=='29'){
-			$contenido="<img class='img img-responsive'  src='$contenido'>";
-		}
-		elseif($campo_tipo=='14'){
-			if($contenido !='') {
-													$campos = explode(" ",$contenido);
-														$lat = $campos[0];
-														$lon = $campos[1];
-														$zoom = $campos[2];
-														if($zoom < 4) { $zoom = 8;}
-			@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/pin.png");
-			$contenido = "
-
-			<img class='lazy img img-round img-responsive'  style='width:100%'  src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=250x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ if($tipo=="array"){ $contenido = $contenido;}else { $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}}
-		elseif($campo_tipo=='18'){ $contenido = "";}
-		elseif($campo_tipo=='20'){ $contenido = ""; $campo_nombre[0]="";}
-		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=="30" or $campo_tipo=="24"){
-			$contenido_full = json_render("$contenido","csv","$control");
-				$valor_actual = json_render("$contenido","html","$control");
-			 $contenido = "$valor_actual";}
-		elseif($campo_tipo =="31"){
-			if($multiple=="1") {
-					/*	foreach ($contenido[9] as $id_campo => $valor) {
-						$contenido_matriz .= "<li>$id_campo : $valor</li>";
-						$valor_actual = json_render("$contenido","html","$control");
-						}
-						$contenido=$contenido_matriz;*/
-						$valor_actual = json_tabla("$contenido_array[9]","$row[id_campo]","$control");
-						$contenido=$valor_actual;
-				} 
-			@include("includes/datos.php");
-			$link_url = "$url"."milfs/archivos/?archivo=$contenido";
-			$contenido = "<a  id='link_$row[id_campo]_$row[orden]_formulario_imprimir' href='$link_url' target='_blank' >$contenido</a> $multiple  ";		
-		}
-		
-		elseif($campo_tipo=="24"){
-			$contenido_full = json_render("$contenido","csv","$control");
-				$valor_actual = json_render("$contenido","html","$control");
-			 $contenido = "$valor_actual";}
-
-		elseif($campo_tipo=='5' AND $contenido !=""){
-		if($tipo =="") {
-		$contenido = trim($contenido); $contenido = "
-
-		<iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe>";
-							}else {
-			//			$contenido =$contenido;
-			$contenido = trim($contenido);
-			$contenido = "
-
-		<iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe>";
-					}
-				}
-
-
-		else {
-	$html ="$contenido";
-	$contenido = nl2br($html);
-	//$contenido = Markdown($contenido);
-	$contenido=  html_entity_decode($contenido);
-			}
-
-
-//////}
-
-	$campo_nombre =  remplacetas('form_campos','id',$row['id_campo'],'campo_nombre','');
-	if($campo_tipo=='20'){ $campo_nombre[0] = "";}
-	$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; 
-		$caracteres = strlen("$contenido");
-	$campo_400[$row['id_campo']] = substr($contenido,0, $length = 400);//$contenido;
-		if($caracteres > 440) {	$campo_400[$row['id_campo']] .= "... <button type='button' class='btn btn-link' data-html='true' data-toggle='tooltip' data-placement='top' title='$contenido'>[+]</button>";	}
-	$campo_80[$row['id_campo']] = substr($contenido,0, $length = 80);//$contenido;
-		if($caracteres > 80) {	$campo_80[$row['id_campo']] .= "... <button type='button' class='btn btn-link' data-html='true' data-toggle='tooltip' data-placement='top' title='$contenido'>[+]</button>";	}
-	$campo_55[$row['id_campo']] = substr($contenido,0, $length = 55);//$contenido;
-		if($caracteres > 55) {	$campo_55[$row['id_campo']] .= "... <button type='button' class='btn btn-link' data-html='true' data-toggle='tooltip' data-placement='top' title='$contenido'>[+]</button>";	}
-	$campo_full[$row['id_campo']] = $contenido_full;
-	$campo_limpio[$row['id_campo']] = trim(strip_tags($contenido," "));
-	$campo_multiple[$row['id_campo']] = $contenido;
-	$campo_limpio_80[$row['id_campo']] = strip_tags($contenido);
-	$fecha  = date ( "Y-m-d h:i:s" , $row['timestamp'] );
-	$id_empresa = $empresa_seguridad[0];
-			$razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-			$proyecto_nombre = $razon_social[0];
-			$slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
-			$proyecto_slogan = $slogan[0];
-	  		$web =  remplacetas('empresa','id',"$id_empresa",'web','');
-	  		$proyecto_web = $web[0];
-	  		$logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-	  		$proyecto_logo = $logo[0];
-
-
-	$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/pin.png");
-								$icon = "$_SESSION[site]milfs/images/iconos/pin.png";
-													}else{
-
-								$icon = $icono[0];
-													}
-						$icono  = "$icon";
-					//$array[icon][iconSize] =[50,50];
-
-																	}else{}
-$array = array();
-if($contenido_original !="") {
-	//// si el campo es tipo password (18) no se muestra
-			if($campo_tipo !='18'){
-				if(isset($_REQUEST['metadatos'])){$tipo="metadatos";}
-			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 .= "
-	<div  id='contenedor_$row[id_campo]' class='contenedor_campo'>
-		<pdata-toc-skip class='campo_contenido' id='contenido_$row[id_campo]'>
-				<span tiple= '$campo_tipo' class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</span><span class='pull-right'> $metadatos </span><br>
-				$contenido</p>
-	</div>";
-	
-}
-
-$array_contenido[$campo_nombre[0]][] = $contenido;
-}
-
-														}
-$array=$array_contenido;
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";
-							}
-
-		$resultado ="$full";
-
-	return $resultado;
-
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-
-<form autocomplete='off' method='post'  class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" />
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload_$id'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div>
-</form>
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='glyphicon glyphicon-upload'></i> Importador</a>";
-
-	return $resultado;
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form autocomplete='off' method='post' enctype='multipart/form-data'
-action=  $javascript
-target='iframeUploadArchivo'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 = "<i class='fa fa-check-square-o'></i>";
-  			$resultado = "GRABADO $fila".time();
-  			//$sql_resultado = "oK";
-  			}
-  			else {
-  			$class='danger';
-  			}
-  				}
-									}
-}
-//$resultado .= "<td  >$columna ( $control ) //- $controlcito - // $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='glyphicon glyphicon-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='glyphicon glyphicon-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-
-				else{$verificar_campo_aviso =""; $class='success';}
-}else{$verificar_campo_aviso =""; $class='success';}
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-
-
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='glyphicon glyphicon-trash'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail $lazy'  data-src='images/secure/?file=150/$imagen' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-$td .= "<td class='planilla_contenido_$row[id_campo]' >$imagen</td>";
-	}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 ="<td  class=' col_$row[id_campo] planilla_contenido_$row[id_campo] $clase_interaccion $class_area'>$interaccion_form $interaccion</td>"; $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 ="<th class='col_$row[id_campo] planilla_titulo_$row[id_campo] $clase_interaccion $class_area'></th>"; $col_checkeo_td ="<td class='col_$row[id_campo] planilla_contenido_$row[id_campo] $clase_interaccion $class_area'>$checkin $interaccion</td>";}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 = "<img class=' $lazy img img-responsive'  src='$_SESSION[site]milfs/images/secure/?file=$size/$contenido' style='max-height: $size"."px !important;' >"; }
-				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 = "
-		 <img class='$lazy img-round img img-responsive'  style='max-height: 100px !important;' src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=250x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > 
- 						";
-											} else { $contenido ='';} 
-											
-											//return "vacio";
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			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="<img style=' max-height: 100px;' class='img img-responsive'  src='$contenido_completo'>";}
-			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 .= "<td style ='max-width:200px;' class='col_$row[id_campo] planilla_contenido_$row[id_campo] $clase_interaccion $class_area'>$contenido</td>$col_checkeo_td";
-	}else{ $csv.="<td class='col_$row[id_campo] planilla_contenido_$row[id_campo] $class_area $clase_interaccion'></td> $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 = "<img alt='$contenido' class='img img-rounded' style='height:100px;' data-src='$_SESSION[site]milfs/images/secure/?file=600/$contenido' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-						<img style='height:100px;'  class='lazy img-rounded img '  data-src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin'  src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			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 .= "<th class='col_$row[id_campo] plantilla_titulo_$row[id_campo] $clase_interaccion $class_area' title='$row[id_campo]'>$contenido </th>$col_checkeo_titulo";
-
-	}else{
-
-	$td .= "<td class='col_$row[id_campo] planilla_contenido_$row[id_campo] $class_area $clase_interaccion '>$contenido  </td>$col_checkeo_td"; 
-	}
-	if($campo_tipo=='18'){ $td .= "";} 
-
-															}
-
-if($tipo=="titulos") {	$identificador ="<th class='col_$row[id_campo] col_control control_planilla'>Identificador</th>"; }
-else {$identificador ="<td class='col_$row[id_campo] control_planilla  col_control $clase_interaccion'> $control $interaccion_form </td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='glyphicon glyphicon-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger alert_sin_resultados'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0008 </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='glyphicon glyphicon-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0009</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='glyphicon glyphicon-trash'></i></a> ";
-				if($formato!='csv'){
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='glyphicon glyphicon-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros);
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													}
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = "
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='glyphicon glyphicon-eye-open'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='glyphicon glyphicon-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='glyphicon glyphicon-pencil'></i> Edit</a>
-								$imagen
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger alert_sin_resultados'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0010 </h1></div>";
-																}
-	//$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 = "
-						<select  class='form-control' name='$name' id='$name' >
-							";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-
-
-	$listado .="<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-
-															}
-$resultado .= "	$listado</select >";
-										}
-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 = "<label for='id_campo'>Campo</label>
-						<select $onchange class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row['id_campo'] == "$categoria"){
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";
-										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='glyphicon glyphicon-search'></i>  Consultas</a>";
-	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 = "
-		<form autocomplete='off' role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-
-						</div>
-					</div>
-				</div>
-			</div>
-		</form>
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div>
-
-";
-$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 ="<form autocomplete='off' name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'>
-	</form><h2 class='alert alert-success'>El campo se creó con éxito
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$id_form_campo','contenido_$id_form_campo');\"><i class='glyphicon glyphicon-edit'></i></a> $campo_nombre ";
-$campos_formulario .= " <div name='crear_campos_consulta_$campo_area".$id_form_campo."' id='crear_campos_consulta_$campo_area".$id_form_campo."'>	$edicion</div>";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form autocomplete='off' name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form autocomplete='off' name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}elseif($tipo =='10'){
-	$resultado ="<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Ejemplo - id_form:24 key:144 limit:100'>$valores</textarea> ";
-}elseif($tipo =='6'){
-	$resultado ="<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='id_form:2 key:789 descripcion:790'>$valores</textarea> ";
-}elseif($tipo =='3'){
-	$resultado ="<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='min;max;pasos'>$valores</textarea> ";
-}elseif($tipo =='33'){
-	
-	if ($valores =='diario') {$selected_diario= "checked"; $selected_historico ="";}
-	if ($valores =='historico') {$selected_diario= ""; $selected_historico ="checked";}
-	$resultado ="	<div class='radio'>
-						<label>
-						<input $selected_diario type='radio' value='diario'  id='opciones' name='opciones' title='El consecutivo se reiniciará cada dia' > Reinicio diario
-						</label>
-					</div>
-					<div class='radio'>
-						<label>
-						<input $selected_historico  type='radio' value='historico'  id='opciones' name='opciones' title='El consecutivo no se reinicia' > Sin reinicio
-						</label>
-					         
-					</div>";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinidos'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
-								}
-
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."]</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}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 .= "
-<div id='div_campos'>
-	<div name='contenido_$area' id='contenido_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form autocomplete='off' role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-
-
-
-
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />
-	<i class='glyphicon glyphicon-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_formulario_crear_campo('$area','','$div'); \"><i class='glyphicon glyphicon-plus-sign'></i> Campos </a>";
-
-					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 = "
-
-
-	<form autocomplete='off' name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'>
-
-	</form>
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-
-
-<hr>$buscador <br>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area".$campo."' id='crear_campos_consulta_$area".$campo."'>	</div>";
-while( $row = mysqli_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$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 .= "
-
-<div id='contenido_$misma_area".$row[id]."'>
-<div class='alert alert-info' >
-<form autocomplete='off' role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<textarea class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>$row[campo_nombre]</textarea>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas $row[campo_area]
-			</div>
-		</div>
-		<div class='col-sm-12'>
-
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='glyphicon glyphicon-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='glyphicon glyphicon-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_contenido_cambiar('contenido_$misma_area".$row[id]."','');\" ><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</div>
-		</div>
-	</div>
-
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay formularios para editar</div>";
-										}
-										}
-
-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<h2>$nombre</h2>
-				";
-				
-				$parametrizacion = parametrizacion_titulo("$id",'','') ;
-$resultado .= "<label>Configuración del formulario</label>
-			<div class='alert alert-success'><div id='div_parametrizacion'>$parametrizacion</div></div>
-			";
-
-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 = "<a class='btn btn-link' onclick=\"xajax_formulario_crear_campo('','$row[id_campo]','contenido_$row[id_campo]');\"><i class='fa fa-pencil'></i><span class='hidden-xs'> Editar</span></a><span style='display:inline;'></span> ";
-				$tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"",'') ;
-			//$multiple = $multiple[0];
-			
-
-$resultado .= "<div class='row alert alert-info'>
-						<div class='col-md-4'>
-							<ul class='list-group'>
-								<li class='list-group-item active'>Campo: <strong>$row[campo_nombre]</strong><br>Id: <strong>$row[id_campo]</strong> Tipo: <strong>$tipo_nombre[0]</strong></li>
-							</ul>
-						</div>
-						<div class='col-md-8' >
-							<label class='checkbox-inline'>
-							  <input type='checkbox' value='$valor_obligatorio' onclick =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \" $obligatorio_check>
-							  Obligatorio
-							</label>
-							
-							<label class='checkbox-inline'>
-							  <input type='checkbox' value='$valor_privado' onclick =\"xajax_campo_privacidad(this.value,'$row[id_campo]','$id_formulario','grabar')\" $privado_check>
-							  Privado
-							 </label>
-							
-							<label class='checkbox-inline'>
-							  <input type='checkbox' value='$valor_multiple' onclick =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \" $multiple_check>
-							  Multiple
-							</label>
-								<div class='row'>
-									<div class='col-md-3 hidden-xs'>
-									$edicion 
-									</div>
-									<div class='col-md-3 col-xs-6 '>	
-										<span style='display:inline;' title='ELIMINAR'  id='eliminar_$row[control]' >
-											
-												<a class='btn btn-danger btn-link' title='Click para cambiar el valor'
-												onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-												<i class='fa fa-ban'></i><span class=''> Quitar</span>
-												</a>
-										</span>
-									</div>
-									<div class='col-md-6 col-xs-6'>
-										<div class='input-group ' title='ordenar'>
-												<span class='input-group-addon' ><small><i class='fa fa-sort' aria-hidden='true' ></i></small><span class='hidden' id='orden_$row[control]'>$row[orden]</span></span>
-												<input  style='max-width: 100px;;' type='number' value='$row[orden]'  size='3' class='form-control' id='input_orden_$row[control]'
-												onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-											</div>
-											
-										</div>
-									</div>
-								</div>
-								 <div id='contenido_$row[id_campo]' class='' ></div>
-						</div>";
-															}
-
-$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 ="
-	<div name='atencion' id='atencion' style='display:inline'></div>
-		<form autocomplete='off' name='nuevo_campo' id='nuevo_campo' role='form'>
-			<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-			<input type='hidden' name='div' id='div' value='atencion'>
-		</form>
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear campo</div>
-			</div>
-	</div>
-
-";
-								while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='glyphicon glyphicon-plus-sign'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";
-
-											}/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='glyphicon glyphicon-exclamation-triangle'></i> 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="<i class='glyphicon glyphicon-exclamation-triangle'></i> 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 = "
-									<p class='text-danger'>Seguro que desea eliminar el campo de esta consulta?</p>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor'
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<i class='fa fa-ban'></i> Quitar del formulario
-								</a>";
-$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 ="<a title='Click para cambiar el valor'
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-
-$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 ="<a title='Click para cambiar el valor'
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='glyphicon glyphicon-plus-sign-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form autocomplete='off' role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label>
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta
-	</div>
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'>
-	</div>
-	<div class='input-group '>
-
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";
-
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div',''); \"><i class='glyphicon glyphicon-list'></i> Formularios</a></li> ";
-
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-
-	}else{ $leyenda_filtro_grupo ="<legend>Administración de Formularios</legend>";
-	 unset($_SESSION['grupo_formularios']);
-	 }
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div',''); \"><i class='glyphicon glyphicon-list'></i> Formularios</a> ";
-$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 = "<input placeholder='Sensible a mayúsculas'  title='Sensible a mayúsculas' class='form-control' id='id_form' id='id_form' onchange=\"xajax_formulario_listado('','contenido',(this.value)) \">";
-				$listado_grupos ="
-		<div class='row'>
-			<div class='col-md-6'>
-				<div class='input-group'>
-					<span class='input-group-addon'>Grupos</span>
-					$listado_grupos
-					
-				</div>
-			</div>
-			<div class='col-md-6'>
-				<div class='input-group'>
-					<span class='input-group-addon'>Buscador</span>
-					$buscador
-					
-				</div>
-			</div>
-		</div>
-				";
- $clonar = clonar_formulario($formulario,$id_empresa,"","","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
-   			$nuevo_formulario = "
-				<div class='form-group'>
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='glyphicon glyphicon-plus-sign-o'></i> Crear formulario </a>
-				</div>";
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$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 ="<option value='$modificable[0]' selected>$Modificable</option>";
-			}
-		$modificable = "<tr><td>
-		<div class='input-group'>
-			<div class='input-group-addon'>
-			Formulario
-			</div>
-				<select class='form-control' onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-				$select_modificable
-					<option value='0'>Privado</option>
-					<option value='1'>Público</option>
-					<option value='2'>Semi-publico</option>
-				</select>
-
-
-						</td></tr>";
-
-
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='mapero.php?id=$id' target='mapa'><i class='glyphicon glyphicon-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-
-					<form autocomplete='off' id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'>
-								<input name='id' id='id' type='hidden' value='$row[id]'>
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-
-					</form>
-				</div>
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-
-								 		<div class='col-xs-12 col-sm-6' id='form_admin'>
-								 		<h4>$nombre_formulario[0]</h4>
-
-								    		<div style='display:none' id='div_mostrar_portal_$row[id]'></div>
-											<ul class='list-group'>
-												<li class='list-group-item'>
-												<a class='btn btn-default ' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='glyphicon glyphicon-upload'></i> Importar</a>
-								 			<a class='btn btn-default ' href='../g$id' target='formulario'><i class='glyphicon glyphicon-floppy-disk'></i> Llenar</a>
-
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-								    		<a class='btn btn-default btn-default collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		<i class='glyphicon glyphicon-edit'></i> Editar
-								    		</a>
-												</li>
-												<li class='list-group-item'>
-												<div class='input-group'>
-													<span class='input-group-addon'>NO</span>
-													<input type='range' value='$mostrar[0]'  class='form-control' NAME='mostrar_portal' id='mostrar_portal' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','mostrar_portal',(this.value),'div_mostrar_portal_$row[id]'); \"
-													min='0' max='1'  >
-													<span class='input-group-addon'>SI</span><span class='input-group-addon alert-success' id= 'div_$name'>Mostrar en el portal</span>
-												</div>
-												</li>
-												<li class='list-group-item'>
-												<div class='input-group'>
-													<span class='input-group-addon'>NO</span>
-													<input type='range' value='$llenar[0]'  class='form-control' NAME='llenar_portal' id='llenar_portal' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','llenar_portal',(this.value),'div_mostrar_portal_$row[id]'); \"
-													min='0' max='1'  >
-													<span class='input-group-addon'>SI</span><span class='input-group-addon alert-success' id= 'div_$name'>Llenar desde el portal</span>
-												</div>
-												</li>
-												<li class='list-group-item'>
-												<div class='input-group'>
-													<span class='input-group-addon'>NO</span>
-													<input type='range' value='$ver_data[0]'  class='form-control' NAME='ver_data_portal' id='ver_data_portal' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','ver_data_portal',(this.value),'div_mostrar_portal_$row[id]'); \"
-													min='0' max='1'  >
-													<span class='input-group-addon'>SI</span><span class='input-group-addon alert-success' id= 'div_$name'>Ver data desde el portal</span>
-												</div>
-												</li>
-
-											</ul>
-
-
-
-							    		</div>
-							    		<div class='col-xs-10 col-sm-5' id='form_admin_data'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-
-								    	</div>
-								    	<div class='col-xs-2 col-sm-1 alert alert-info' id='form_admin_id'>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-
-							   </div>
-
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='glyphicon glyphicon-trash'></i> Eliminar</a></div>
-											</div>
-										</div>
-
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>
-											<li class='list-group-item'>
-											
-													<div class='input-group ' >
-														<span class='input-group-addon primary'>Vista favorita <strong id='div_vista_favorita_$row[id]'>	$vista_favorita[0]</strong></span>
-														<select class='form-control' id='vista_favorita_$row[id]' name='vista_favorita_$row[id]' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','vista_favorita',document.getElementById('vista_favorita_$row[id]').value,'div_vista_favorita_$row[id]'); \">
-															<option value='$vista_favorita[0]' selected>$vista_favorita[0]</option>
-															<option value='libro'>Libro [b]</option>
-															<option value='aplicacion'>Aplicación [a]</option>
-															<option value='set'>Set de datos [s]</option>
-															<option value='mapa'>Mapa</option>
-															<option value='formulario'>Formulario</option>
-															<option value='presentacion'>Presentación</option>
-															<option value='timeline'>Timeline</option>
-															<option value='informe'>Informe</option>
-															<option value='planilla'>Planilla</option>
-															<option value='agenda'>Agenda</option>
-															<option value='checklist'>Checklist</option>
-															<option value='notas'>Notas</option>
-															<option value='landingpage'>Landingpage</option>
-														</select>
-													</div>
-													
-											
-											</li>
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:145px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='glyphicon glyphicon-floppy-disk'></i>  Grabar y previsualizar</div>
-												</div>
-
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:200px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable
-											</div>
-										</div>
-								</div>
-						</div>
-
-					</div> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-
-	//$resultado .="";
-										}
-
-
-else{ $resultado .= "<div class='alert alert-warning' ><h2>No hay formularios para mostrar</h2></div> ";}
-
-		$resultado_formulario ="
-			<div class='panel-group' id='accordion_accion_formulario' role='tablist' aria-multiselectable='true'>
-
-				<div id='panel_administrar' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_administrar' >
-					<div class='panel-heading'>
-						<a data-parent='#accordion_accion_formulario' class='btn btn-primary' id='form_btn_admin' role='button' data-toggle='collapse' href='#panel_administrador' aria-expanded='false' aria-controls='collapseExample'>
-							<i class='glyphicon glyphicon-bars'></i> Administrar
-						</a>
-						
-						<span class='panel-title'> Administración de formularios </span>
-					</div>
-					<div class='panel-body collapse $mostrar_panel' id='panel_administrador'>
-<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-						$item
-						</div>
-					</div>
-				</div>
-				$clonar
-				$mover
-			</div>
-
-		";
-/*
-
-		*/
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='glyphicon glyphicon-trash'></i> Aceptar</a>
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</a>
-				</div> ";
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='glyphicon glyphicon-trash'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'>
- $render
-
-</div>
-
-
-
-	";
-	$boton= "<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "
-
-<div id='wrap'>
-<div id='alert_$name' class='alert alert-info'>
-
-    
-      
-   
-   <input id='$name' name='$name' value='$valor' type='hidden'/>
-    
-    <div class='row '>
-    	<div class='col-md-4'>
-    	<input class='form-control' value='' type='file' id='$campo-$item' name='$campo-$item' class='rm-input' 
-      			onchange=\"$onchange \"
-      			onclick=\"document.getElementById('progressBar_').value='0'; document.getElementById('image_preview_$name').src = '';
-      			 document.getElementById('alert_$name').className = 'alert alert-info';
-      			 document.getElementById('div_preview_$name').innerHTML = '';
-      			 \";
-      />
-    	</div>
-    	<div class='col-md-4'>
-    		<img id='image_preview_$name' style='max-width:200px;' alt='' /><div id= div_preview_$name></div>
-    	</div>
-    	<div class='col-md-4' id=''>
-	    	<div id='div_adjunto_$name'>
-	    	<div id='fileSize_$name'></div><div id='fileType_$name'></div><div id='fileName_$name'></div><div id='percentageCalc_$name'></div>
-	    	</div>
-    	</div>
-    </div>
-   
-
-
-</div>
-<progress id='progressBar_' value='0' max='100' class='rm-progress' style='width:100%'></progress>
-<div id='percentageCalc_'></div>
-
-</div>
-
-";
-
-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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 = "<input min='$min'  max='$max' value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='' > <label class='label_date'>$campo_descripcion </label> $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 = "<input min='$min'  max='$max' value='$value' type='datetime-local' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='' > <label class='label_date'>$campo_descripcion </label> $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 <small>$campo_descripcion</small> ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='glyphicon glyphicon-search'></i></div>
-			</span>
-		</div>
-
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-
-	<iframe id='mapita' src='./milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]$exif' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-
-																				 ";
-																				 //<iframe id='mapita' src='$_SESSION[site]milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]$exif' width='100%' height='300px'></iframe>
-					$cols='12';
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-						<code>Se enviará un email </code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "
-
-
-							<textarea class=' form-control'  cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]'  placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';
-			}
-																//$subir_imagen = subir_imagen('');
-		elseif($campo_tipo_accion == 'imagen'){ 
-		//	$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		//$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //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 = "
-
-			   	<div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-					<!-- <div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"save_$clase_item()\">Cerrar</div> -->
-					<textarea  class='wysiwyg form-control $clase_item '  form-control ' cols='50'  rows='5' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >$value</textarea>
-
-					<script type='text/javascript'>
-
-						/*
-									//// wysiwyg
-									var edit_$clase_item = function() {
-									  $('.$clase_item').summernote({height: 250, codemirror: { theme: 'default' }});
-									};
-
-									var save_$clase_item = function() {
-									  var makrup = $('.$clase_item').summernote('code');
-									  $('.$clase_item').summernote('destroy');
-									};
-					*/
-									/*
-									$(document).ready(function() {
-									  $('.$clase_item').summernote();
-									});
-							*/
-					</script>
-
-					";
-			$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 ="<textarea class='form-control '  onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value),'');\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >$value</textarea>";
-								}
-			else{ 
-				$cols='6';
-				$size= $limite."em";
-				$dibujar_campo =" <input style ='width :$size !important;' size='$limite' maxlength='$limite'  class='form-control '  type='text' onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value),'');\"   id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' value='$value'>";}	
-			$render = "$limite /
-
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span>
-				$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<small>$campo_descripcion</small> "; $cols='6';	 }
-		elseif($campo_tipo_accion == 'radio'){
-			$select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "$select <small>$campo_descripcion</small> ";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>";
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>";
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr>
-						$listado_campos
-					</table>
-				</div>
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 <small>$campo_descripcion</small>";
-			$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 <small>$campo_descripcion</small>";
-//			$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 <small>$campo_descripcion</small>";}
-		elseif($campo_tipo_accion == 'relacion'){
-			$select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
-			$render = "$select  <small>$campo_descripcion</small>";
-			$cols='12';	}
-		elseif($campo_tipo_accion == 'buscador'){
-			$select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
-			$render = "$select <small>$campo_descripcion</small> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';
-		}
-		elseif($campo_tipo_accion == 'firma'){
-
-$render = "
-<input type='hidden' id='".$id_campo."[".$item."]'  name='".$id_campo."[".$item."]' >
-<iframe  width='100%' height='400px'  src='librerias/firma/modal.php?campo=$id_campo&item=$item' frameborder='0' allowFullScreen   ></iframe>
-";
-			$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 = "<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span>
-															<input $onchange min='$min' max='$max' step='$pasos' value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' >
-															<code>(solo números)</code>$aviso_rango $aviso_pasos";
-			$cols='6';
-															}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $control != "" or $control ==="vacio") {
-				$render="";$label=""; $campo_tipo_accion="oculto";
-			}else {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div>
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div>
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){
-			if ($item=='0'){
-$boton= "		<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-			</div>";}else{ $boton=""; }
-/*		$campo_multiple  = "
-	<div class='col-md-12' id='id_campo_$id_campo"."_X".$item."'>
-
-
-	</div>
-	
-	";*/
-}
-	if($item == 0) { $label = "<label class='label_formulario' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' label_formulario sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN
-			//	if($campo_tipo_accion == 'imagen'){		$label="";		$campo_descripcion="";		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label
-				<div class='col-md-12' data-html='true' data-toggle='tooltip' data-placement='top' title='$campo_descripcion'>
-				$render
-				<small></small>
-				</div>
-			</div>
-
-		</div>
-		$campo_multiple 
-		<div class='' id='multiple_id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo'>$boton</div>
-		</div>
-
-
-		";
-
-///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 <strong>$valor</strong> 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 <strong>$valor</strong> 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 .= "<li>$contenido_campo[0]</li>";
-	$contenido_array[]=$contenido_campo[0];
-	$editable .= "<li>".editar_campo("form_datos","$identificador","contenido","","","","")."</li>";
-	
-														}
-							}
-//							$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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 ="
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "funcion" ){
-		
-		return "grabado";
-		}
-	
-	elseif($tipo == "solocampos" ){
-
-
-		$exito ="
-	<div class='alert alert-success'><h2>ok
-		   </h2>
-
-	</div>";
-
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 Gracias por aportar  $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div> ";
-
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$formulario[control]'>$_SESSION[site]I$formulario[control]</a></p>
-<p>
-<strong>Descargo de responsabilidades</strong>
-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: <a href='milfs/?psi' target='_psi'> Políticas de privacidad y protección de datos.</a>
-</p>";
-			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 ="
-
-			<div class='alert alert-success text-center'><h1><i class='glyphicon glyphicon-smile-o'></i><small> Todo bien pero al parecer no se modificaron registros</small>$formulario[control] // $formulario[tipo] //</h1></div>";
-		$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= "<div style='' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','','".($item+1)."') \">
-		<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-		</div>";
-				$resultado .= "
-				<div class='' id='multiple_id_campo_$id_campo"."_".($item+1)."'>
-					$boton
-			</div>";
-		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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control","");
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-
-
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>
-				<img class='img img-responsive'  src='https://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='?form=$id'><i class='glyphicon glyphicon-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-
-	</div>";
-
-$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]");
-
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen
-				</div>
-			</div>
-	  </div>
-	}*/
-	$muestra_form = "
-	<div id ='div_$control' class=''   >
-<!-- Antiguo subir imagen -->
-
-		<form autocomplete='off' role='form' id='$control'  autocomplete='off' name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-
-				$aviso
-				$seguridad
-			</div>
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'),'');\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] =="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0011</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option  value='$row[$value]' $selected  >  ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." </option>";
-															}
-														}
-$resultado .= "</select>  " ;
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0011</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>$nombre</option>$vacio
-<option value=''>Todos</option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-
-$resultado .= "<option  value='$row[id]' > ".substr(@$row['campo_nombre'], 0, 150 )." </option>";
-															}
-														
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='fa fa-exclamation-triangle'></i> No hay resultados hygfj5 </div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0012</div>";}
-
-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 ="<option value='otro' selected>Otro: $valor</option>";
-	}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<SELECT $onchange  class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-	$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 .= "<option value='$row[campo_valor]' $selected > $row[campo_valor] </option>";
-
-															}
-$resultado .= "</select> <div id='div_otro_$name'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 013</div>";}
-
-return $resultado;
-}
-
-function select_otro($id_campo,$valor,$seleccion){
-	$respuesta = new xajaxResponse('utf-8');
-	if(strtolower($seleccion) =='otro'){
-	
-		$resultado ="
-		<input type='text' id='$id_campo' name='$id_campo' value='$valor' class='form-control' placeholder='Escriba el otro valor'>
-		";
-	   	//	$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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0014</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0014</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  >
-						<label>
-							<input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected >
-							 $row[campo_valor]
-						</label>
-					</div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0015</div>";}
-
-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=" <SELECT class='form-control' NAME='$name"."[]"."' id='$name"."[]"."' multiple >" ;
-	//$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 .= "
-					<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  NAME='$name"."[]"."' id='$name"."[]"."'value='$valor_limpio' $selected >
-							 $valor_limpio
-						</label>
-					</div>";
-																	}
-	//$resultado .= "</select> $valor_actual";
-	}
-	else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0027</div>";}
-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=" <SELECT class='form-control' NAME='$name"."[]"."' id='$name"."[]"."' multiple >" ;
-		while( $row = mysqli_fetch_array( $sql ) ) {
-			$existe = strpos($valor_actual, $row[campo_valor]);
-			if( $existe != ""){$selected="selected";}
-			else{$selected ="";}
-			$resultado .= "<option value='$row[campo_valor]' $selected >$row[campo_valor]</option>";
-																	}
-	$resultado .= "</select> $valor_actual";
-	}
-	else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0026</div>";}
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0017</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = "<h1 class='text-center'><a href='../'>Continuar... </a></h1>";//  	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 = "
-			<li>
-				<a title='agregar usuarios' class='btn link pull-left' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\">
-				<i class='glyphicon glyphicon-user'></i> Gestión de usuarios</a>
-			</li>";
-	$menu =
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-      <li><a href='https://$url_home' target='web'><i class='glyphicon glyphicon-home'></i></a></li>
-        <li>$crear_campos</li>
-
-        $listado
-			$usuarios
-         <li >$configuracion</li>
-
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-
-     $login
-
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-   }
-    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 ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'confirmar')\">Grabar </div>";
-$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","<br><br>$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 ="<div class='alert alert-danger'>Por favor escribe  una clave. $formulario[password_express_confirmar] // $formulario[password_express]</div> $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 ="<div class='alert alert-danger'>Por favor escribe y confirma una clave. $formulario[password_express_confirmar] // $formulario[password_express]</div> $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 <div class='alert alert-danger'>No hay un email válido //  $formulario[email_express_confirmar] </div>";
-		$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 ="
-<div style='border: solid 1px; padding:20px ; border-radius: 10px; background-color:#E6F8E0 '>
-<h1>Registro</h1>
-
-<hr />
-<h3>Código de validación</h3>
-<p>Bienvenido a nuestra aplicación.  Por favor digita el siguente código para validar tu cuenta.</p>
-<H1>$rrn</H1>
-
-
-</div>
-		$aviso
-			";
-
-mail("$email_envio","$asunto","$cuerpo","$headers") ;
-			$boton ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'validar');\">Confirmar</div>";
-			$control = MD5(mktime().$rrncode);
-	$resultado .="
-		<div class='row'>
-			<div class='col-sm-2'>
-			</div>
-			<div class='col-sm-8'>
-				<div class='form-group has-error' id='codigo_confirmacion'>
-				<span class='help-block'>Escribe el código de confirmación <strong>$rrn</strong></span>
-					<div class='input-group'  id=''>
-						<span class='input-group-addon'>
-							<i class='glyphicon glyphicon-key'></i>
-						</span>
-						<input type='hidden' id='rrn' name='rrn' value='$rrncode'>
-						<input type='hidden' id='hidden' name='control' value='$control'>
-						<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'>
-					</div>
-
-				</div>
-			</div>
-			<div class='col-sm-2'>
-
-			</div>
-		</div>
-	$boton
-	";
-									}
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-	}elseif($accion =="elegir") {
-		$form = "
-<div id='login_express'>
-	<div class='' id='datos_usuario'>
-		<div class='row' id=''>
-			<div class='col-sm-6'>
-				<div class='btn btn-primary  btn-block' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'nuevo');\" >Usuario nuevo</div>
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-success btn-block'  data-target=\"#modal_login\" data-toggle=\"modal\" >Ya estoy registrado</div>
-			<div>
-		</div>
-
-	</div>
-</div>
-		              <a target='_blank' href='http://qwerty.co/faq/category/19/privacidad-y-protecci%C3%B3n-de-datos.html'>Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.</a> </p>
-		              ";
-				return $form;
-	}
-elseif($accion =="validar") {
-				$boton ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'confirmar');\">Confirmar</div>";
-				$div = "registro_confirmacion_email";
-
-
-if($formulario[password_express_confirmar] =="" OR $formulario[password_express_confirmar] != $formulario[password_express] ){
-	$resultado ="<div class='alert alert-danger'>Por favor escribe y confirma una clave.</div> $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 = "<div class='alert alert-success'><h1>Bienvenido</h1>
-<p>Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.</p>
-</div>";
-$div = "contenido";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}else{
-$resultado = "<div class='alert alert-danger'><h3>Error</h3>El Código de confirmación no es correcto, por favor inténtalo nuevamente.</div>";
-}
-
-$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 ="
-<div class='input-group'>
-
-	<span class='input-group-addon'><i class=' glyphicon glyphicon-heart-empty'></i> Proyecto </span>
-
-	$empresa
-</div>
-
-";
-}
-$listado_usuarios = usuarios_listado($tabla_autenticacion,"");
-$mailer = mailer('','','','');
-$id_empresa = "document.getElementById('id_empresa').value";
-$equipo = equipos('',"$id_empresa",'equipo','') ;
-$form = "
-
-<div class='alert alert-warning'>
-<form autocomplete='off' autocomplete='off' class='form' id='$nombre_formulario' name='$nombre_formulario' >
-<input type='hidden' value = 'nuevo_$nombre_formulario' id='nombre_formulario' name='nombre_formulario' >
-	<legend>Usuario </legend>
-		<div class='row'>
-			<div class='col-md-6'>
-				<label></label>
-		$empresa
-			</div>
-			<div class='col-md-6'>
-				<label></label>
-				<div class='input-group' id='equipo_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user '></i><i class='glyphicon glyphicon-user '></i>
-					</span>
-					$equipo
-
-				</div>
-				<div style='position:absolute; z-index:100; left: 50px;' id='div_equipo'></div>
-			</div>
-		</div>
-
-
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='email_express_grupo'>
-
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope'></i>
-					</span>
-					<input value=''  type='email' id='email_express' name='email_express' placeholder='Email' class='form-control'
-						onclick=\"(this.value=''); \"
-					 	onchange=\"xajax_validar_usuario('email',(this.value),'email_express','login'); \"  >
-				</div>
-			</div>
-			<div class='col-md-6'>
-				<label></label>
-				<div class='input-group' id='email_express_confirmar_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope'></i>
-					</span>
-					<input value='' type='email' id='email_express_confirmar' name='email_express_confirmar' placeholder='Confirmar email' class='form-control'
-					onclick=\"(this.value=''); \"
-					onchange= \"xajax_confirma_campo((document.getElementById('email_express').value),(this.value),'email_express','email_express_confirmar'); \"  >
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='nombre_express'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user'></i>
-					</span>
-					<input type='text' id='nombre_express' name='nombre_express' placeholder='Nombre' class='form-control'>
-				</div>
-			</div>
-
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='apellido_express'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user '></i>
-					</span>
-					<input type='text' id='apellido_express' name='apellido_express' placeholder='Apellido' class='form-control'>
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='documento_express_grupo' title='Documento de identidad'>
-
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-certificate'></i>
-					</span>
-					<input type='number' id='documento_express' name='documento_express' placeholder='Documento de identidad' class='form-control'
-					onclick=\"(this.value=''); \">
-				</div>
-			</div>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='telefono_express'>
-
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-phone'></i>
-					</span>
-					<input type='phone' id='telefono_express' name='telefono_express' placeholder='Teléfono' class='form-control'
-					onclick=\"(this.value=''); \">
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='password_express_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-lock'></i>
-					</span>
-					<input type='password' id='password_express' name='password_express' placeholder='Clave' class='form-control'
-					onclick=\"(this.value=''); \">
-				</div>
-			</div>
-			<div class='col-sm-6'>
-			<label></label>
-				<div class='input-group' id='password_express_confirmar_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-lock'></i>
-					</span>
-					<input type='password' id='password_express_confirmar' name='password_express_confirmar' placeholder='Confirma tu clave' class='form-control'
-					onclick=\"(this.value=''); \"
-					onchange= \"xajax_confirma_campo((document.getElementById('password_express').value),(this.value),'password_express','password_express_confirmar'); \" >
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<br>
-				<div id='registro_confirmacion_email'>
-$boton
-				</div>
-
-			</div>
-		</div>
-
-</form>
-</div>
-
-<!-- listado_usuarios -->
-$mailer
-$listado_usuarios
-<!-- listado_usuarios -->
-
-";
-$respuesta->addAssign("$div","innerHTML",$form);
-return $respuesta;
-
-	}
-
-
-elseif($accion =="boton"){
-
-$modal ="
-		<form autocomplete='off' class='navbar-form navbar-left' role='form' id='form_contacto' name='form_contacto'>
-        <div class='form-group'>
-          <input type='text' class='form-control input-small' placeholder='Email o usuario' id='email' name='email'>
-        </div>
-        <div class='form-group'>
-          <input type='password' class='form-control input-small' placeholder='Clave ****' id='password' name='password'>
-        </div>
-        <div  class='btn btn-default' onclick=\"xajax_revisar_ingreso(xajax.getFormValues('form_contacto')) ; \"><i class='glyphicon glyphicon-log-in '></i></div>
-      </form>";
-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 ="
-		
-		<li class='list-group-item '>
-		<div class=''>Sucursales Permitidas</div>
-		$listado_sucursales
-		$sucursales_permitidas
-		</li> 
-		
-		
-		
-		";
-		}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= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','linea_$row[id]'); \">
-									<i class='glyphicon glyphicon-trash'></i>
-								</div>";
-								//xajax_parametrizacion_editar_sucursal(this.value,'establecer','$capa','1','')
-					}elseif($accion=='establecer'){
-						$revocar="<div class='btn  btn-info btn-xs' onclick=\"xajax_parametrizacion_editar_sucursal('$row[opcion]','establecer','capa_sucursal','1','')\">
-									ESTABLECER
-								</div>";
-						}else{}
-
-
-							$opciones .="<div id='linea_$row[id]'><li > $sucursal_area[0] $sucursal_nombre[0] $sucursal_descripcion[0]  $revocar</li></div>";
-							
-					if(mysqli_num_rows($sql) == 1 AND  $accion =='comprobar'){
-								
-								return $row['opcion'] ;
-								}
-								
-							}
-
-							$resultado="$opciones";
-							
-							
-
-							
-							}
-						else { $resultado="<span class='text-danger'>No hay sucursales autorizadas</span>";}
-							}
-							
-			if($accion=="listado"){
-				return "<ul><div id='listado_sucursal_linea'>$resultado</div></ul>";
-			}
-			elseif($accion=="establecer"){
-				return "<ul><div id='listado_sucursal_linea'>$resultado</div></ul>";
-			}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 ="<div id='linea_$id_sucursal'><li> $sucursal_area[0] $sucursal_nombre[0] $sucursal_descripcion[0]  $revocar</li></div>";
-			//$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= "
-	<div class='container'>
-		<div class='col-md-6'>
-			<form autocomplete='off' id='buscar_funcionario' name='buscar_funcionario' >
-				<div class='form-group'>
-					<label for='documento'>Documento</label>
-					<input class='form-control' id='documento' name='documento' >
-				</div>
-				<div class='form-group'>
-					<div class='btn btn-success' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('buscar_funcionario'),'busqueda','$div');\" >Buscar</div>
-				</div>
-
-			</form>
-		</div>
-		<div class='col-md-6'>
-		<div class='btn btn-warning' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('buscar_funcionario'),'nuevo','$div');\">Usuario nuevo</div>
-		</div>
-	</div>
-	<div id='$div'></div>
-	";
-
-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 ="<ul>";
-		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 ="
-			<div class='input-group'>
-				<span class='input-group-addon'>
-					Grupo:
-				</span>
-				$grupo
-			</div>
-
-		";
-			}
-
-		//$ = 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 .= "
-	<div class='panel panel-default'>
-		<div class='panel-heading'>
-			<h2 >Perfil de usuario</h2>
-		</div>
-		<div class='panel-body'>
-			<div class='row'>
-				<div class='col-md-4'>
-					<div class='img-rounded img-responsive ' id='banner_imagen' style='
-
-						background-position:top center  ;
-						-webkit-background-size: cover;
-						-moz-background-size: cover;
-						-o-background-size: cover;
-						background-size: cover;
-
-						background-repeat:no-repeat;
-						background-image: url($imagen ) ;
-						padding:10px;
-						padding:10px;  min-height:600px;
-
-						'><a href='#logo'></a>
-
-
-
-					</div>
-
-				$subir_imagen
-				<input type='hidden' id='imagen' name='imagen'>
-				<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'$_SESSION[tabla_autenticacion]','$row[id_usuario]','imagen') \";
-								class='btn btn-default btn-sx'>Cambiar imagen</div>
-				</div>
-				<div class='col-md-8'>
-					<ul class='list-group'>
-						<li class='list-group-item'>Nombre de usuario: $username</li>
-						<li class='list-group-item'>Primer nombre: $p_nombre</li>
-						<li class='list-group-item'>Otros nombres: $s_nombre</li>
-						<li class='list-group-item'>Primer apellido: $p_apellido</li>
-						<li class='list-group-item'>Otros apellidos: $s_apellido</li>
-						<li class='list-group-item'>Fecha de nacimieno: $fecha_nacimiento</li>
-						<li class='list-group-item'>Teléfono: $telefono_celular</li>
-						<li class='list-group-item'>Titulo profesional: $titulo_profesional</li>
-						<li class='list-group-item'>Ocupación: $ocupacion</li>
-						<li class='list-group-item'>Cargo: $cargo</li>
-						<li class='list-group-item '>
-							<div class='row'>
-								<div class='col-xs-6'>$grupo</div>
-								<div class='col-xs-6'>$equipo</div>
-							</div>
-						</li>
-						<li class='list-group-item '><div class=''> $listado_formularios</div></li>
-						$listado_sucursales
-						<li class='list-group-item '>
-						<h3>Firma escaneada</h3>
-											<div class='img-rounded img-responsive ' id='banner_firma' style='
-
-						background-position:top center  ;
-						-webkit-background-size: cover;
-						-moz-background-size: cover;
-						-o-background-size: cover;
-						background-size: cover;
-
-						background-repeat:no-repeat;
-						background-image: url($firma ) ;
-						padding:10px;
-						padding:10px; 
-						 min-height:300px;
-						width: 800px;
-
-						'><a href='#firma'></a>
-
-
-
-					</div>
-					$subir_firma
-				<input type='hidden' id='firma' name='firma'>
-				<div onclick = \"xajax_cambiar_imagen((document.getElementById('firma').value),'$_SESSION[tabla_autenticacion]','$row[id_usuario]','firma') \";
-								class='btn btn-default btn-sx'>Establece firma</div>
-				</div>
-				</li>
-					</ul>
-
-				</div>
-			</div>
-		</div>
-	</div>
-						";
-
-
-	}
-
-	$resultado .= "</ul>";}else {
-
-		$resultado ="<div class='alert alert-danger'>No existe el usuario </div>";
-	}
-
-				$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 ="
-	<div class='alert alert-info row'>
-	<h2>Crear un usuario</h2>
-		<form autocomplete='off' name='nuevo_usuario' id='nuevo_usuario'>
-
-		<fieldset>
-		<legend>Datos personales</legend>
-			<div class='form-group'>
-				<label for='p_nombre'>Primer nombre</label>
-				<input class='form-control' name='p_nombre' id='p_nombre'>
-			</div>
-			<div class='form-group'>
-				<label for='s_nombre'>Segundo nombre</label>
-				<input class='form-control' name='s_nombre' id='s_nombre'>
-			</div>
-			<div class='form-group'>
-				<label for='p_apellido'>Primer apellido</label>
-				<input class='form-control' name='p_apellido' id='p_apellido'>
-			</div>
-			<div class='form-group'>
-				<label for='s_apellido'>Segundo apellido</label>
-				<input class='form-control' name='s_apellido' id='s_apellido' >
-			</div>
-			<div class='form-group'>
-				<label for='fecha_nacimiento'>Fecha de Nacimiento</label>
-				<input class='form-control' name='fecha_nacimiento' id='fecha_nacimiento' type='date'>
-			</div>
-			<div class='form-group'>
-				<label for='documento_numero'>Documento de identidad</label>
-				<input class='form-control' name='documento_numero'  id='documento_numero' >
-			</div>
-			<div class='form-group'>
-				<label for='telefono_celular'>Teléfono</label>
-				<input class='form-control' name='telefono_celular'  id='telefono_celular' >
-			</div>
-		</fieldset>
-		<fieldset>
-		<legend>Datos de acceso</legend>
-
-			<div class='form-group'>
-				<label for='id_grupo'>Grupo</label>
-				$grupo
-			</div>
-			<div class='form-group'>
-				<label for='username'>Nombre de usuario</label>
-				<input class='form-control' name='username' id='username'>
-			</div>
-
-
-					<div class='form-group'  >
-						<label for='email'>Email</label>
-						<div class=''  id='email_grupo'>
-
-							<input class='form-control' name='email'  id='email'  onclick= \"(this.value='');(document.getElementById('email_confirmacion').value='')\" >
-						</div>
-					</div>
-
-					<div class='form-group' >
-						<label for='email_confirmacion'>Confirmar email</label>
-						<div class='' id='email_confirmacion_grupo'>
-
-							<input class=' form-control  ' name='email_confirmacion'  id='email_confirmacion' onchange= \"xajax_confirma_campo((document.getElementById('email').value),(document.getElementById('email_confirmacion').value),'email','email_confirmacion') \" >
-						</div>
-					</div>
-
-
-		</fieldset>
-		<fieldset>
-		<legend>Datos laborales</legend>
-			<div class='form-group'>
-				<label for='titulo_profesional'>Título profesional</label>
-				<input class='form-control' name='titulo_profesional'  id='titulo_profesional' >
-			</div>
-			<div class='form-group'>
-				<label for='ocupacion'>Ocupación</label>
-				<input class='form-control' name='ocupacion'  id='ocupacion' >
-			</div>
-			<div class='form-group'>
-				<label for='cargo'>Cargo</label>
-				<input class='form-control' name='cargo'  id='cargo' >
-			</div>
-		</fieldset>
-			<div class='form-group col-md-6'>
-				<div class='btn btn-success btn-block' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('nuevo_usuario'),'grabar','$div');\" >Grabar</div>
-			</div>
-			<div class='form-group col-md-6'>
-				<div class='btn btn-danger btn-block' onclick =\" xajax_buscar_funcionario('','','$div');\" >Cancelar</div>
-			</div>
-		</form>
-	</div>
-
-	";
-
-	}
-	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="<table class='table table-striped table-responsive' >
-<legend></legend>
-<tr ><th>Id</th><th>Username</th><th>Nombre</th><th>Email</th><th>Proyecto</th><th>Equipo</th><th></th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-//	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i></a>";}
-	else {$acciones="";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$username</td><td>$p_nombre $p_apellido</td><td>$email </td><td title='$row[id_empresa]'><strong>$empresa[0]</strong> <br> $grupo[0] </td><td>$equipo </td><td><div class='btn btn-warning btn-xs' onclick =\" xajax_buscar_funcionario('$row[id]','busqueda','$div');\" >Editar</div></td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle '></i> No hay resultados 0018</div>";
-	}
-
-	if($div =="") {
-		$div="contenido";
-	//	$resultado ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \">Configuración multiempresa</a>";
-		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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-
-						</blockquote>
-					</li>";
-
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-
-			<ul class='list-group'>
-				$listado
-			</ul>
-
-	</div>";
-}
-$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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-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",'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 = "<a href='?identificador=$identificador' > Ver mas ...</a>";
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- $linea = "<code>$identificador</code>
- <br>
-
-<a  name='control_$identificador'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='$clase'>
-                    
-                    <div class='clearfix'></div>
-                    <!-- plantilla landingpage --> 
-                     $impresion
-                     $uri
-                    <!-- plantilla landingpage --> 
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive img-rounded ' src='images/secure/?file=600/$imagen' alt=''>
-                   
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-<!-- plantilla landingpage --> 
-";
-
-	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 = "<a href='?identificador=$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- /*$linea .= "<code>$row[control]</code>
- <br>
-
-<a  name='control_$row[control]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='$clase'>
-                    
-                    <div class='clearfix'></div>
-                    <!-- plantilla landingpage --> 
-                     $impresion
-                     $uri
-                    <!-- plantilla landingpage --> 
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive img-rounded ' src='images/secure/?file=600/$imagen' alt=''>
-                   
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-<!-- plantilla landingpage --> 
-";*/
-}	
-	}
-	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 = "<a href='?set=$row[id]'><h3>Mas información</h3></a>";
-							$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 = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/600x300.png?access_token=$mapbox_token' >
-			"; }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='map.php?id=$row[id]' target='mapa'>$miniatura</a>";}else {$mapa='';}
-			if ( $fila%2==0){
-
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-b'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive' src='images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>			
-			
-			"; 
-			
-			}else{
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-
-            <div class='row'>
-                <div class='col-lg-5 col-lg-offset-1 col-sm-push-6  col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-sm-pull-6  col-sm-6'>
-                    <img class='img-responsive' src='images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-			
-	</div>
-			";
-			}
-			
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$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 ="<h1><i class='fa fa-spinner fa-pulse'></i> Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos'); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysql_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "<td>$contenido[0]</td>";
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td>$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:100px;' class='actions' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group'>
-								<a class='btn btn-default' target='form' href='?c=$row[control]'><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-$impresion
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='http://$_SERVER[HTTP_HOST]/milfs/?identificador=$control'>http://$_SERVER[HTTP_HOST]/milfs?id=$id&c=$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Títulos</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"images/secure/?file=600/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i></a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a></td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-$resultado = "	
-	<br>
-	<p>El campo titulo, se usa como indice del formulario en algunas visualizaciones como el <strong>timeline</strong></p>
-	<h3>Campo de Título actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></h3>
-	<br>
-	<div class='input-group'>
-		<span class='input-group-addon'>Cambiar campo título</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_titulo('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-	</div>
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='?formulario=$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-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<div class='container-fluid'>";
-		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= "<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>";
-		$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		$resultado .= "$visitas<h2>$nombre[0]</h2><legend>$descripcion[0]</legend>$impresion<br>"; 
-	//														}
-$resultado = "<div class='container-fluid'>$resultado</div>";
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-															
-								//		}
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-$formulario ="
-$accion
-<div id='formulario_session'>
-	<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-		<div class='form-group>
-			<label for='usuario'>Usuario </label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='password'>Clave </label>
-				<input type='password' id='password' name='password' class='form-control'>
-		</div>
-		<br>
-		<div class='row'>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-			</div>
-			<div class='col-sm-4'>
-			<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-			</div>
-		</div>
-	</form>
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No pudimos encontrar tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-
-	
-	}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-}else {	}
-
-									}
-									$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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="
-<div class='col-sm-5 col-md-5'>
-	<!-- <form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'> -->
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-<!-- 	</form> -->
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='http://qwerty.co/qr/?d=http://$_SERVER[HTTP_HOST]/milfs?id=$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='http://$_SERVER[HTTP_HOST]/milfs?id=$perfil' value='http://$_SERVER[HTTP_HOST]/milfs?id=$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-			<label for='UploadFile'>".$campo_imagen_nombre."</label>
-			<div class='col-lg-12'>
-			 $subir_imagen  
-			</div>
-			
-		</div>
-	  
-	
-		</div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-				<!-- <input class='form-control'   class='sr-only' type='' id='imagen' name='imagen' > -->
-	";
-	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 .= "<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'><legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[url]/?id=$formulario&c=$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-			</style>
-<div style='width;100%; min-height:900px; padding: 0.3%; background-image: url(images/iron.jpg); background-attachment:fixed; background-color: gray ;'>
-	<div class='container-fluid' style=' border-radius:3px; background-color:white; max-width:800px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			( $visitas )
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='http://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-$contenido_listado = contenido_listado("$row[id]");
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-						}
-
-$resultado_nav .="</li>";
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='?id=$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='?id=$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-															}
-
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = mysql_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysql_query($consulta,$link);
-//if (mysql_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"id");
-		$resultado[1]=mysql_result($sql,0,"campo_nombre");
-		$resultado[2] =$consulta;
-											}else{ 	$resultado[0]='';
-														$resultado[2] =$consulta;
-														}
-return $resultado;
-}
-
-
-function formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado=mysql_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$id_campo,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-$consulta ="SELECT *  FROM form_datos WHERE form_id = '$id' order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"timestamp");
-		$resultado[1]=mysql_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysql_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=600/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar imagen</div>";	
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; height:300px;
-					
-					'>
-
-
-				</div>
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos de la institución</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</div>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-										<div style='';>
-								$subir_imagen
-						</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados</small> <i class='fa fa-key'></i></h1>( $_SESSION[id] )</div>";
-		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 = "<img class='img img-responsive' style='width:100%' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$contenido'>
-									<a href='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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 = "
-
-			<img class=' img-responsive'  style='width:100%'  src='http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/600x250.png?access_token=$mapbox_token' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado =" $full 
-		<!-- <a class='btn btn-default pull-right' onclick=\"xajax_formulario_modal('$id','','$control',''); \"> Ampliar</a> 
-		<a target='_blank' href='index.php?id=$id&c=$control' class='btn btn-default pull-right'><i class='fa fa-share-square-o'></i> Compartir</a> -->";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="<div class='alert alert-warning'>
-	<h4>Responder con:</h4>
-						<table class='table table-condensed '>";
-	while( $row = mysql_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a href ='?id=$row[id]&c=$control&t=r' title='$row[descripcion]'>$row[nombre]</a></td></tr>";
-
-}
-	$resultado .="</table></div>";	
-}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 .="
-
-<form method='post' class='' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id'>
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
-<input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" />
-<iframe name='iframeUpload' style='display:none' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div>
-</form>
-";
-return $resultado;
- 
-}
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 .="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id=perfil name=perfil value=$perfil type='hidden' >
-Archivo formulario $perfil: <input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\"xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 .= "<div id=importador_select name=importador_select></div>
-		<div id=importador_archivo name=importador_archivo></div> ";
-
-return $formulario; 
-		}
-	
-	$div = "importador_archivo";
-
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-
- $resultado .= "Importando formulario <b>$perfil_nombre</b> ($perfil)
- <table class='table table-bordered table-striped'>";
-	$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 .= "<tr>";
-        $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 = "<i class='fa fa-check-square-o'></i>";
-  			
-  			
-  			}
-  			else {
-  			$class='danger';
-  			}
-
-
-  				}
-	
-									}
-
-					
-}            
-			            $resultado .= "<td  >$columna  $sql_resultado </td>";
-            
-            $numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $posicion = 0;
-        for ($c=0; $c < $numero; $c++) {
-        	$titulo = $datos[$c] ;
-        $verificar_campo =   	formulario_verificar_campo($perfil,$titulo);
-  			if($verificar_campo == NULL){$verificar_campo ="<i class='fa fa-frown-o'></i>"; $class='danger';}
-  			else{$verificar_campo ="<i class='fa fa-check-square-o'></i>"; $class='success';}
-        	$campo[$posicion] = $datos[$c];
-            $resultado .= "<th class='$class'>$verificar_campo $titulo</th>";
-            $posicion ++;
-            
-        }
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='http://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( @$row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							Obligatorio
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' title='OBLIGATORIO'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Formularios</legend>"; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
-   			
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='".$_SESSION['url']."map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default ' href='$_SESSION[url]?form=$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		
-												<h4>$nombre_formulario[0]<br><small>$descripcion_formulario[0]</small></h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-3'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-											<div class='col-md-3'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div>
-											<div class='col-md-3'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-3'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='fa fa-save'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-		<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-		$item
-		</div>";
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "		<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='$_SESSION[url]mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $id_dato !="") {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-														}else {$render="";$label="";$campo_tipo_accion="oculto";}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-		<div class='col-md-$cols' style='$style'>
-		<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-			
-			$label 
-			<div class='col-md-12'>
-			
-			$render 
-			$campo_descripcion
-			
-			
-		</div>
-		</div>
-		</div>
-$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] <br> ";
-														}
-							}
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";
-			}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='?id=$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='http://$_SERVER[HTTP_HOST]/milfs/?identificador=$formulario[control]'>http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="
-	
-			<div class='alert alert-success text-center'><h1><i class='fa fa-smile-o'></i><small> Todo bien pero al parecer no se moficaron registros </small></h1></div>";
-		$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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='?id=$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-	
-	
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='http://qwerty.co/qr/?d=http://$_SERVER[HTTP_HOST]/milfs?id=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='http://$_SERVER[HTTP_HOST]/milfs?id=$id' value='http://$_SERVER[HTTP_HOST]/milfs?id=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-				<!-- <input class='form-control'   class='sr-only' type='' id='imagen' name='imagen' > -->
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-			
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='@$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-      
-        <li>$importador</li>
-        <li id='borra_tmp'>$limpiar_cache</li>
-         <li><a  href='#'  data-target='#muestraInfo'  data-toggle='modal'><i class='fa fa-smile-o '></i> Presentación</a></li>
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-
-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 = "<a href='?identificador=$identificador' > Ver mas ...</a>";
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- $linea = "<code>$identificador</code>
- <br>
-
-<a  name='control_$identificador'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='$clase'>
-                    
-                    <div class='clearfix'></div>
-                    <!-- plantilla landingpage --> 
-                     $impresion
-                     $uri
-                    <!-- plantilla landingpage --> 
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive img-rounded ' src='images/secure/?file=600/$imagen' alt=''>
-                   
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-<!-- plantilla landingpage --> 
-";
-
-	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 = "<a href='?identificador=$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
- /*$linea .= "<code>$row[control]</code>
- <br>
-
-<a  name='control_$row[control]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='$clase'>
-                    
-                    <div class='clearfix'></div>
-                    <!-- plantilla landingpage --> 
-                     $impresion
-                     $uri
-                    <!-- plantilla landingpage --> 
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive img-rounded ' src='images/secure/?file=600/$imagen' alt=''>
-                   
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-<!-- plantilla landingpage --> 
-";*/
-}	
-	}
-	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 = "<a href='?set=$row[id]'><h3>Mas información</h3></a>";
-							$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 = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/600x300.png?access_token=$mapbox_token' >
-			"; }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='map.php?id=$row[id]' target='mapa'>$miniatura</a>";}else {$mapa='';}
-			if ( $fila%2==0){
-
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-b'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive' src='images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>			
-			
-			"; 
-			
-			}else{
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-
-            <div class='row'>
-                <div class='col-lg-5 col-lg-offset-1 col-sm-push-6  col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-sm-pull-6  col-sm-6'>
-                    <img class='img-responsive' src='images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-			
-	</div>
-			";
-			}
-			
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$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 ="<h1><i class='fa fa-spinner fa-pulse'></i> Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos'); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row[id_campo];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysql_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "<td>$contenido[0]</td>";
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td>$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:100px;' class='actions' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group'>
-								<a class='btn btn-default' target='form' href='?c=$row[control]'><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-$impresion
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='http://$_SERVER[HTTP_HOST]/milfs/?identificador=$control'>http://$_SERVER[HTTP_HOST]/milfs?id=$id&c=$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Títulos</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"images/secure/?file=600/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i></a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a></td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-$resultado = "	
-	<br>
-	<p>El campo titulo, se usa como indice del formulario en algunas visualizaciones como el <strong>timeline</strong></p>
-	<h3>Campo de Título actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></h3>
-	<br>
-	<div class='input-group'>
-		<span class='input-group-addon'>Cambiar campo título</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_titulo('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-	</div>
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='http://$_SERVER[HTTP_HOST]/milfs/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='?formulario=$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-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<div class='container-fluid'>";
-		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= "<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>";
-		$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		$resultado .= "$visitas<h2>$nombre[0]</h2><legend>$descripcion[0]</legend>$impresion<br>"; 
-	//														}
-$resultado = "<div class='container-fluid'>$resultado</div>";
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-															
-								//		}
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-$formulario ="
-$accion
-<div id='formulario_session'>
-	<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-		<div class='form-group>
-			<label for='usuario'>Usuario </label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='password'>Clave </label>
-				<input type='password' id='password' name='password' class='form-control'>
-		</div>
-		<br>
-		<div class='row'>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-			</div>
-			<div class='col-sm-4'>
-			<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-			</div>
-		</div>
-	</form>
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No pudimos encontrar tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-
-	
-	}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-}else {	}
-
-									}
-									$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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="
-<div class='col-sm-5 col-md-5'>
-	<!-- <form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'> -->
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-<!-- 	</form> -->
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='http://qwerty.co/qr/?d=http://$_SERVER[HTTP_HOST]/milfs?id=$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='http://$_SERVER[HTTP_HOST]/milfs?id=$perfil' value='http://$_SERVER[HTTP_HOST]/milfs?id=$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-			<label for='UploadFile'>".$campo_imagen_nombre."</label>
-			<div class='col-lg-12'>
-			 $subir_imagen  
-			</div>
-			
-		</div>
-	  
-	
-		</div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-				<!-- <input class='form-control'   class='sr-only' type='' id='imagen' name='imagen' > -->
-	";
-	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 .= "<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'><legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[url]/?id=$formulario&c=$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-			</style>
-<div style='width;100%; min-height:900px; padding: 0.3%; background-image: url(images/iron.jpg); background-attachment:fixed; background-color: gray ;'>
-	<div class='container-fluid' style=' border-radius:3px; background-color:white; max-width:800px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			( $visitas )
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='http://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-$contenido_listado = contenido_listado("$row[id]");
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-						}
-
-$resultado_nav .="</li>";
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='?id=$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='?id=$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-															}
-
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = mysql_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysql_query($consulta,$link);
-//if (mysql_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"id");
-		$resultado[1]=mysql_result($sql,0,"campo_nombre");
-		$resultado[2] =$consulta;
-											}else{ 	$resultado[0]='';
-														$resultado[2] =$consulta;
-														}
-return $resultado;
-}
-
-
-function formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado=mysql_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$id_campo,$tipo) {
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-$consulta ="SELECT *  FROM form_datos WHERE form_id = '$id' order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"timestamp");
-		$resultado[1]=mysql_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysql_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=600/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar imagen</div>";	
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; height:300px;
-					
-					'>
-
-
-				</div>
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos de la institución</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</div>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-										<div style='';>
-								$subir_imagen
-						</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados</small> <i class='fa fa-key'></i></h1>( $_SESSION[id] )</div>";
-		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 = "<img class='img img-responsive' style='width:100%' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$contenido'>
-									<a href='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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 = "
-
-			<img class=' img-responsive'  style='width:100%'  src='http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/600x250.png?access_token=$mapbox_token' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado =" $full 
-		<!-- <a class='btn btn-default pull-right' onclick=\"xajax_formulario_modal('$id','','$control',''); \"> Ampliar</a> 
-		<a target='_blank' href='index.php?id=$id&c=$control' class='btn btn-default pull-right'><i class='fa fa-share-square-o'></i> Compartir</a> -->";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="<div class='alert alert-warning'>
-	<h4>Responder con:</h4>
-						<table class='table table-condensed '>";
-	while( $row = mysql_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a href ='?id=$row[id]&c=$control&t=r' title='$row[descripcion]'>$row[nombre]</a></td></tr>";
-
-}
-	$resultado .="</table></div>";	
-}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 .="
-
-<form method='post' class='' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id'>
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
-<input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" />
-<iframe name='iframeUpload' style='display:none' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div>
-</form>
-";
-return $resultado;
- 
-}
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 .="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id=perfil name=perfil value=$perfil type='hidden' >
-Archivo formulario $perfil: <input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\"xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 .= "<div id=importador_select name=importador_select></div>
-		<div id=importador_archivo name=importador_archivo></div> ";
-
-return $formulario; 
-		}
-	
-	$div = "importador_archivo";
-
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-
- $resultado .= "Importando formulario <b>$perfil_nombre</b> ($perfil)
- <table class='table table-bordered table-striped'>";
-	$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 .= "<tr>";
-        $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 = "<i class='fa fa-check-square-o'></i>";
-  			
-  			
-  			}
-  			else {
-  			$class='danger';
-  			}
-
-
-  				}
-	
-									}
-
-					
-}            
-			            $resultado .= "<td  >$columna  $sql_resultado </td>";
-            
-            $numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $posicion = 0;
-        for ($c=0; $c < $numero; $c++) {
-        	$titulo = $datos[$c] ;
-        $verificar_campo =   	formulario_verificar_campo($perfil,$titulo);
-  			if($verificar_campo == NULL){$verificar_campo ="<i class='fa fa-frown-o'></i>"; $class='danger';}
-  			else{$verificar_campo ="<i class='fa fa-check-square-o'></i>"; $class='success';}
-        	$campo[$posicion] = $datos[$c];
-            $resultado .= "<th class='$class'>$verificar_campo $titulo</th>";
-            $posicion ++;
-            
-        }
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='http://$_SERVER[HTTP_HOST]/milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='http://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='http://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Fraw.githubusercontent.com%2Fhumano%2Fmilfs%2Fmaster%2Fmilfs%2Fimages%2Ficonos%2Fnegro.png($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='?id=$row[form_id]&c=$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'));\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION[id_usuario]."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area');
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'));\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row[activo] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							Obligatorio
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' title='OBLIGATORIO'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Formularios</legend>"; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('$_SESSION[grupo_formularios]','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
-   			
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if($primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		$ultimo_control = $ultimo[1];
-		if($ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='".$_SESSION['url']."map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default ' href='$_SESSION[url]?form=$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		
-												<h4>$nombre_formulario[0]<br><small>$descripcion_formulario[0]</small></h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-3'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-											<div class='col-md-3'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div>
-											<div class='col-md-3'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-3'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='fa fa-save'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-		<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-		$item
-		</div>";
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "		<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='$_SESSION[url]mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='$value' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='$value' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-		<div class='col-md-$cols' style='$style'>
-		<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-			
-			$label 
-			<div class='col-md-12'>
-			
-			$render 
-			$campo_descripcion
-			
-			
-		</div>
-		</div>
-		</div>
-$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] <br> ";
-														}
-							}
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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  <!--, V= $V -->)<br>";
-//$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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='?id=$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='http://$_SERVER[HTTP_HOST]/milfs/?identificador=$formulario[control]'>http://$_SERVER[HTTP_HOST]/milfs?id=$formulario[form_id]&c=$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='?id=$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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 = "
-	<div class='alert alert-info'  >
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='http://qwerty.co/qr/?d=http://$_SERVER[HTTP_HOST]/milfs?id=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='http://$_SERVER[HTTP_HOST]/milfs?id=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='http://$_SERVER[HTTP_HOST]/milfs?id=$id' value='http://$_SERVER[HTTP_HOST]/milfs?id=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-				<!-- <input class='form-control'   class='sr-only' type='' id='imagen' name='imagen' > -->
-	<div class='row'>
-	";
-	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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[campo_valor] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-      
-        <li>$importador</li>
-        <li id='borra_tmp'>$limpiar_cache</li>
-         <li><a  href='#'  data-target='#muestraInfo'  data-toggle='modal'><i class='fa fa-smile-o '></i> Presentación</a></li>
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-function mostrar_interacciones($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();
-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);
-
-require ("milfs/includes/parametrizacion.php");
-
-
-while( $row = mysql_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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-							
-						</blockquote>
-					</li>"; 
-	
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-		
-			<ul class='list-group'>
-				$listado
-			</ul>
-		
-	</div>";
-}
-$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 <strong>$tipo</strong> 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 <stron><a href='https://$web[0]/I$nuevo_identificador'>$nombre_formulario[0]</a></strong> 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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $email[0]</h2>"; }else {$exito .="<span class='text-danger'><i class='fa fa-meh-o'></i> Error enviando correo</span>";}		
-		
-		
-		$div = "".$tipo."_cantidad_$nuevo_identificador";
-		$cantidad = contar_interacciones("$nuevo_identificador","$tipo","$_SESSION[control_usuario_milfs]");
-		$resultado="<div class='alert alert-success'><h2>El mensaje se ha enviado, si es necesario nos comunicaremos contigo</h2>$exito</div>";
-		$respuesta->addAssign("$div","innerHTML","$cantidad");
-	
-	}else{
-			$resultado="<div class='alert alert-warning'><h2><i class='fa fa-meh-o'></i> Algo salió mal <small> Por favor inténtalo de nuevo </small>$consulta</h2></div>";
-	}
-	
-	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("myModalLabel_info","innerHTML","<h2>$accion</h2>");
-			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="	  <div class='btn btn-success' onclick=\"xajax_mostrar_interacciones('$identificador','todo','','mostrar_interacciones_$identificador');\">Mostrar Todo</div>";
-			
-			}
-	$menu ="
-	<div class='btn-group btn-group-xs' role='group' aria-label='botonera'>
-	  <div  id='Mensaje_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Mensaje'); \" class='btn btn-default' role='' ><span class='glyphicon glyphicon glyphicon glyphicon glyphicon-envelope' aria-hidden='true'></span> Mensaje <span class='badge' id='Mensaje_cantidad_$identificador'>$cantidad_Mensaje</span></div>
-	  <div  id='Si_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Si'); \"class='btn btn-success' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-up' aria-hidden='true'></span> Si <span class='badge' id='Si_cantidad_$identificador'>$cantidad_Si</span></div>
-	  <div  id='No_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','No'); \" class='btn btn-warning' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-down' aria-hidden='true'></span> No <span class='badge' id='No_cantidad_$identificador'>$cantidad_No</span></div>
-	  <div  id='Reportar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Reportar'); \" class='btn btn-danger' role='' ><span class='glyphicon glyphicon glyphicon-remove-sign' aria-hidden='true'></span> Reportar <span class='badge' id='Reportar_cantidad_$identificador'>$cantidad_Reportar</span></div>
-	  <div  id='Comentar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comentar'); \" class='btn btn-info' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-pencil' aria-hidden='true'></span> Comentar <span class='badge' id='Comentar_cantidad_$identificador'>$cantidad_Comentar</span></div>
-	  <div class='btn btn-info' onclick=\"xajax_mostrar_interacciones('$identificador','Comentar','$_SESSION[usuario_milfs]','mostrar_interacciones_$identificador');\">Mostrar</div>
-	  $revisar_interacciones
-	</div>
-	
-	<div id='mostrar_interacciones_$identificador'></div>
-	";
-	return $menu;
-	}
-	/*
-	elseif($accion=="Si") {	}
-	elseif($accion=="No") {	}
-	elseif($accion=="Compartir") {	}
-	*/
-	else {
-if(isset($_SESSION['usuario_milfs']) ) {
-$formato="
-<div class='container-fluid barra_interaccion'>
-	<form id ='formulario_interaccion' name ='formulario_interaccion'>
-	<div class='input-group col-xs-12'>
-		<label for='texto_interaccion'>Comentario</label>
-		<textarea class='form-control' id='texto_interaccion' name='texto_interaccion' placeholder='Escribe tu comentario' ></textarea>
-	</div>
-	<br>
-	<input type='hidden' value='$accion' id='tipo' name='tipo'>
-	<input type='hidden' value='$identificador' id='identificador' name='identificador'>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div data-dismiss='modal' onclick = \"xajax_limpia_div('muestra_form'); \"aria-hidden='true'  class='btn btn-danger btn-block'>Cancelar</div>
-		</div >
-		<div class='col-xs-6'>
-			<div onclick=\"xajax_interaccion_identificador(xajax.getFormValues('formulario_interaccion'),'Grabar'); \" class='btn btn-success  btn-block'>Enviar</div>
-		</div >
-	</div>
-	</form>
-</div>
-
-";
-
-}
-
-else{
-	 require ("milfs/includes/parametrizacion.php");
-/// SI EL USUARIO NO ESTA LOGUEADO
-$login = milfs_session("$login_formulario","$login_campo_usuario","$login_campo_password","","");
-$formato ="
-<div class='alert alert-success'><h2>Por favor ingresa para <b>$accion</b></h2>
-$login
-</div>";
-}
-
-}
-
-
-			//$div_contenido = "<div id='$div'>$div</div>";
-			$respuesta->addAssign("muestra_form","innerHTML","$formato");
-			$respuesta->addAssign("myModalLabel_info","innerHTML","<h2>$accion <small>$_SESSION[nombre_usuario_milfs]<small> </h2> ");
-			//$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="
-<div class='alert alert-danger'>
-	<h2>Se eliminará definitivamente este registro</h2>
-	<div class='row '>
-		<a class='col-md-6 btn btn-danger  btn-xs' onclick=\"xajax_eliminar_identificador('$identificador','eliminar'); \" href='#'><i class='fa fa-trash'></i> Eliminar</a>
-		<a class='col-md-6 btn btn-warning  btn-xs' onclick=\"xajax_limpia_div('$div'); ; \" href='#'><i class='fa fa-times'></i> Cancelar</a>
-	</div>
-</div>
-";
-}
-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 ="
-<div class='alert alert-success'>
-	<p><i class='fa fa-smile-o'></i> Se eliminó definitivamente este registro.<br><b>Por favor actualice esta vista</b></p>
-</div>
-	";
-						}
-						else {
-$resultado ="
-<div class='alert alert-warning'>
-	<p><i class='fa fa-meh-o'></i> Algo salió mal, quizá el registro ya había sido eliminado <small> Por favor actualice esta vista </small></p> 
-</div>
-	";
-						}
-}
-	$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 ="
-					<div class='form-group col-md-6'>
-						<label for='Proyecto_mover'>Seleccione proyecto</label>
-						$empresas
-					</div>
-					";
-			$cols ="6";
-		
-			$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario_mover');
-///<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
-	$resultado="
-
-<div id='panel_mover' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_mover' >
-	<div class='panel-heading'>
-		<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_move' aria-expanded='false' aria-controls='collapseExample'>
-			<i class='fa fa-arrows'></i> Mover 
-		</a> 
-		<span class='panel-title'> El formulario y su contenido se moverán al proyecto seleccionado</span>
-	</div>
-	<div class='panel-body collapse' id='panel_move'>
-		<div class='form-group col-md-$cols'>
-			<label for='Formulario_mover'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_mover_formulario(document.getElementById('Formulario_mover').value,document.getElementById('Proyecto_mover').value,'mover'); \"><i class='fa fa-save'></i> Mover</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-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 <strong>$nuevo_nombre</strong> 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 ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$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 ="
-	<div class='alert alert-success'>
-	<h2>Se movió el formulario <strong>$nombre[0]</strong> y sus <strong>$cantidad</strong> registros. <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='fa fa-refresh'></i> Actualizar</a></h2>
-	</div>";
-	$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 ="
-		<div class='form-group col-md-4'>
-			<label for='empresa'>Seleccione proyecto</label>
-			$empresas
-		</div>
-		";
-		$cols ="4";
-		}else {
-			$empresa ="<input type='hidden' value='' name='Proyecto' id='Proyecto'>";
-			$w_empresa = "id_empresa = '$_SESSION[id_empresa]'";
-			$cols="6";
-		}
-	$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario');
-	$resultado="
-
-<div id='panel_clonar' class='panel panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_clonar' >
-	<div class='panel-heading'>
-	
-	<a  data-parent='#accordion_accion_formulario'  class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_clone' aria-expanded='false' aria-controls='collapseExample'>
-	<i class='fa fa-clone'></i> Clonar</a> <span class='panel-title'>Se copiará la estructura del formulario pero no su contenido.</span>
-	</div>
-	<div class='panel-body collapse' id='panel_clone'>
-		<div class='form-group col-md-$cols'>
-			<label for='formulario'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-		<div class='form-group col-md-$cols'>
-			<label for='nuevo_nombre'>Nombre </label>
-			<input class='form-control' id='nuevo_nombre' name='nuevo_nombre' placeholder='Nombre que tendrá el formulario nuevo' >
-		</div>
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_clonar_formulario(document.getElementById('Formulario').value,document.getElementById('Proyecto').value,document.getElementById('nuevo_nombre').value,'clonar'); \"><i class='fa fa-save'></i> Clonar</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-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 <strong>$nuevo_nombre</strong> en ese proyecto.";}
-	if( $formulario =="" or $nuevo_nombre ==""  ) { $error ="Asegúrese de que ningún campo esté vacío.";}
-	
-	if($error !="") {
-		$resultado ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$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 ="<div class='alert alert-success'><h1>El formulario <strong>$nuevo_nombre</strong> se grabó  <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='fa fa-refresh'></i> Actualizar</a></h1></div>";
-	$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="
-<br>
-<legend>Estilos</legend>
-	<div id='div_css' class ='text-success'></div>
-	<div class='input-group'>
-		<span class='input-group-addon'>
-		CSS para tema bootstrap
-		</span>
-		<input placeholder='https://https://bootsw... ' value='$css[0]'  id='css_url'  name='css_url'  type='url' class='form-control'>
-		<span class='input-group-btn'>
-		<div class='btn btn-default btn-warning ' 
-			onclick=\"xajax_parametrizacion_linea('css','index','bootstrap',document.getElementById('css_url').value,'div_css'); \"><i class='fa fa-save'></i> Grabar</div>
-		</div>
-	</div>
-	<div class='input-group  col-md-12'>
-		<label for='css_adicional'>CSS adicional</label>
-		<textarea style='width:100%' id='css_adicional' name='css_adicional' class='form-control' placeholder ='Escriba css valido'>$css_adicional[0]</textarea>
-	</div>
-	<div class='input-group pull-right'>
-			<div class=' btn btn-default btn-warning ' 
-			onclick=\"xajax_parametrizacion_linea('css','index','adicional',document.getElementById('css_adicional').value,'div_css_adicional'); \"><i class='fa fa-save'></i> Grabar</div>
-		</div>
-	</div>
-		<pre style='max-height: 300px; overflow:auto ' id='div_css_adicional' class ='text-success'>/* HOJA DE ESTILOS CSS ACTUAL  */ 
-		$css_adicional[0]
-		</pre>
-
-";
-}	
-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 .= "<div class='col-md-2 '>
-												 <h5><small><i class='fa fa-eye'></i> $row[descripcion]</small></h5>
-												 <a href='i$row[campo]'>
-						 						<img style='max-height:100px;' class='center-block img img-responsive  img-rounded' src ='milfs/images/secure/?file=150/$imagen[0]'>
-						 						
-						 						</a>
-						 						 $impresion
-						 						<!--  $row[campo] $formulario_titulo[0] $formulario[0] *  -->
-						 						</div> ";		
-						 			}
-						 			$resultado = "
-						 			 	
-						 				<hr>
-						 				<p class='text-center'>LO MAS VISTO</p>
-						 				<div class='row'>
-						
-						 					$contenido
-						 				</div>
-						 				<hr class='intro-divider'>
-						 				";
-		 			}
-				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 .= "<div class='col-md-2 '>
-												 <h5><small><i class='fa fa-binoculars'></i> $row[descripcion]</small></h5>
-												 <a href='a$row[campo]'>
-						 						<img style='max-height:100px;' class='center-block img img-responsive  img-rounded' src ='milfs/images/secure/?file=150/$empresa_logo[0]'>
-						 						<p class='text-center'>$formulario_titulo[0]</p>
-						 						</a>
-						 						</div> ";	
-		 			
-			 		}
-			 								 			$resultado = "
-						 			 	
-						 				<hr>
-						 				<p class='text-center'>LO MAS ACTIVO</p>
-						 				<div class='row'>
-						
-						 					$contenido
-						 				</div>
-						 				<hr class='intro-divider'>
-						 				";
-			 		
-		 		}
-				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 .= "<div class='col-md-2 '>
-												 <a href='a$row[form_id]'>
-						 						<img style='max-height:100px;' class='center-block img img-responsive  img-rounded' src ='milfs/images/secure/?file=150/$imagen[0]'>
-						 						<p class='text-center'>$row[nombre]</p>
-						 						</a>
-						 						 $impresion
-						 						
-						 						</div> ";		
-						 			}
-						 			$resultado = "
-						 			 	
-						 				<hr>
-						 				<p class='text-center'>LO ÚLTIMO</p>
-						 				<div class='row'>
-						
-						 					$contenido
-						 				</div>
-						 				<hr class='intro-divider'>
-						 				";
-		 			}
-		 		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 .= "<!-- ($identificador','$row[form_id]','','simple','$row[timestamp]')  --> $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 ="
-						<table class='table table-condensed '>";
-	while( $row = mysql_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a class='btn btn-success' onclick = \"xajax_formulario_embebido_ajax('$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre]</a> $row[descripcion] </td></tr>";
-
-}
-	$resultado .="</table>";	
-}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&registros=$registros&pagina=1&orden=$orden";
-					$href_2 = "$origen&registros=$registros&pagina=".($pagina-1)."&orden=$orden";
-				}
-				else {
-					$href_1= "#cabecera#";
-					$href_2= "#cabecera#";
-					 }
-
-           	 $link .= "<li><a href='$href_1' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','','$orden');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a href='$href_2' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','','$orden');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-            	
-        		if(isset($_REQUEST[registros])) {
-					$href_3 = "$origen&registros=$registros&pagina=$x&orden=$orden";
-				}
-				else {
-					$href_3= "#cabecera#";
-					 }
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='$href_3'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='$href_3' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         {
-         	if(isset($_REQUEST[registros])) {
-					$href_4 = "$origen&registros=$registros&pagina=".($pagina+1)."&orden=$orden";
-					$href_5 = "$origen&registros=$registros&pagina=$pages&orden=$orden";
-				}
-				else {
-					$href_4= "$href_4";
-					$href_5= "$href_5";
-					 }
-         	 $link .= "<li><a  href='$href_4'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','','$orden');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a  href='$href_5'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','','$orden');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = " 
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-<!--  			<div class='text-center'>Registros=$_REQUEST[registros] / Pagina = $_REQUEST[pagina] / Orden= $_REQUEST[orden] / Campo orden $campo_orden  </div>  -->
-			 <div class='text-center center-block'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>	
-				</ul>
-				     $paginacion
-			 </div>
-			</div>
-		</div> ";
-						
-//	$total_registros = mysql_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= "<br>$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 = "		<div class='btn btn-default ' onclick =\"xajax_formulario_embebido_ajax('$form','','nuevo');\"> <i class='fa fa-plus-square'></i> Agregar </a></div>";
-	}
-$acciones="
-<br>
-<div class='container'>
-		<div class='col-sm-12 col-md-12' >
-		<div class='form-inline'>	$agregar $filtro $buscador </div>
-		</div>
-		 
-	</div>
-	<br>";
-}
-	//$descripcion = remplacetas('form_id','id',$id_form,'descripcion','') ;
-	//$descripcion_limpia = strip_tags($descripcion[0]);
-	//$nombre = remplacetas('form_id','id',$id_form,'nombre','') ;
-$resultado = "
-<a name='cabecera'></a>
-<h1><a href='b$id_form'>$nombre[0]</a></h1>
-<h2>$descripcion[0]</h2>
-$acciones 
-<div id='mostrar_resultado'>
- $linea
-$encabezado
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
-	/*$datos = $resultado;
-	$div ="contenido_de_modal";
-	$resultado = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-		if($row[imagen] !="") {
-	$logo="<img style= 'max-height:150px;max-width:400px;' class='img img-responsive img-rounded center-block' src='milfs/images/secure/?file=150/$row[imagen]'>";
-									}
-	 else {
-	 		  		$logo_empresa =  remplacetas('empresa','id',"1",'imagen','');
-	 		$logo="<img style= 'height:150px;' class='img img-responsive img-rounded center-block' src='milfs/images/sinimagen.jpg'>";
-	 }
-	 $slogan= substr($row[slogan],0, $length = 140)."";
-	$contenido ="
-	<div class='  col-sm-$cols' style=''>
-		
-			<div class='container  img-thumbnail ' style='overflow:auto; word-wrap: break-word; margin:2px; padding: 5px; width: 100%;  height: 350px; '>
-			<h2 style= '' class='text-center'><small>$row[razon_social]</small></h2>
-				<a href='e$row[id_empresa]'>	$logo	</a>
-				<div class='caption center-block'>
-				<div class='slogan'>$slogan</div>
-				<a class=' ' style='     '  href='e$row[id_empresa]'>	Apoya esta causa</a>
-				
-
-				</div>
-			</div>
-							<!-- <br><a class='center-block btn-default btn  ' style='     '  href='e$row[id_empresa]'>	Apoya esta causa</a> -->
-	
-	</div>";     	
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-		<div class='container-fluid'>
-			$encontrados
-		</div>	
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-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 ="<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<div class='thumbnail'>
-				<a href='i$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-rounded'>
-				</a>
-			</div>$uri";
-					
-	}else {
-		$miniatura ="<a href='i$identificador' >i$identificador</a>";
-		$mostrar_imagen = "<img src='$qr' alt='$identificador' title='' style='width:100%'; class='img img-responsive img-rounded'>";
-
-			
-
-		}
-
- //<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
-	if($plantilla[0] !="" ) {
-	$impresion = mostrar_identificador($identificador,"","landingpage","","");
-	} else{ 
-	$contenido = mostrar_identificador($identificador,"","","","");
-	$impresion = "
-		<!-- plantilla landingpage $identificador -->
-	<br><div class='clearfix'></div>
-
-<a  name='control_$identificador'></a>
-    <div class='content-section-a'>
-
-        <div class='container-fluid'>
-		
-	         <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    <div class='clearfix'></div>
-                    	
-                     $contenido 
-                     $miniatura                  
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                   $mostrar_imagen
-                </div>
-            </div>
-
-			<div class='link-compartir text-center'><a href='i$identificador' ><i class='fa fa-share-square'></i> Compartir </a></div>
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-	<!-- plantilla landingpage --> 
-	
-	";
-	
-	}
-	 				if($_SESSION[id_empresa] !=""){
-///	$edicion ="<a href='d$identificador'><i class='fa fa-pencil-square-o'></i></a>"; 
-		$edicion ="<a class='btn btn-default btn-xs' onclick= \"xajax_formulario_embebido_ajax('$form','$identificador','edit') \"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-	}else {$edicion="";}
- $linea = "
-<!--  		<div class='mostrar_identificador_full container-fluid' style='background-color: #F1F8E0;  max-width:80% ;'> -->
- 		<div class=' img-thumbnail  mostrar_identificador_full  ' style='width:100%'>
- 			$impresion 
-			$edicion
- 			 <!-- formulario de respuesta -->
-	 			 <div class='center-block' style=''>
-		 			 <div class='container-fluid'>
-		 			 $respuestas
-		
-		 			 </div>
-	 			 </div>
- 			 <!-- formulario de respuesta -->
- 		</div>
- 		<br>-
- 		<br>
- 		
- 					";
-
-	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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-	*/	
-		
-	//// 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 = "<a href='i$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}	
-	$resultado_linea="<div id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='b$row[id]?registros=10'><i class='fa fa-external-link-square'></i> Consultar información</a>";
-							$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 = "
-
-			<img class=' img-responsive img-rounded'  style=''  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x200.png?access_token=$mapbox_token' >
-			<br>"; }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='milfs/map.php?id=$row[id]' target='mapa'>$miniatura</a>";}else {$mapa='';}
-	$imagen ="<img style='width:100%; ' class='img img-rounded img-responsive' src='milfs/images/secure/?file=300/$imagen' alt='$row[nombre]'>";
-	$contenido ="   	
-		<h2 class='section-heading'>$row[nombre]</h2>
-      <p class=''>$row[descripcion]</p>";	
-			
-			if ( $fila%2==0){
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div style='padding:10px;' class='content-section-b container-fluid thumbnail'>
-
-        
-            <div class='row'>
-            
-                <div class='col-lg-5 col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    
-                    $imagen
-                    
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                   
-                    $contenido
-                    $link
-                    
-                    $mapa
-                </div>
-            </div>
-
-        
-        <!-- /.container -->
-
-    </div>			
-			
-			"; 
-			
-			}else{
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div style='padding:20px;' class='content-section-a container-fluid thumbnail'>
-
-            <div class='row'>
-                <div class='col-lg-5 col-lg-offset-1 col-sm-push-6  col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    $imagen
-                </div>
-                <div class='col-lg-5 col-sm-pull-6  col-sm-6'>
-                    
-                    $contenido
-                    $link
-                    $mapa
-                </div>
-            </div>
-
-        <!-- /.container -->
-			
-	</div>
-			";
-			}
-			
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$fila++;
-		}
-	}
-	$linea ="
-	<div class='container'>
-			<div class='col-sm-10'>
-			$linea
-			</div>
-<!-- 			<div class='col-sm-2 hidden-xs hidden-sm'>
-				<div class='container'>
-				<nav style=' max-height:95% !important ; overflow:auto !important;  ' id='toc' data-spy='affix' data-toggle='toc'></nav>
-				</div>
-			</div> -->
-			
-
-	</div>	
-	";
-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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos',''); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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="<div id='dominio_$row[id]'><a class='btn btn-danger btn-sm' onclick=\"xajax_configurar_dominio($row[id],'eliminar'); \">DESconfigurar</a></div> ";		
-		}
-	else{
-			$configuracion_dominio="<div id='dominio_$row[id]'><a class='btn btn-warning btn-sm' onclick=\"xajax_configurar_dominio($row[id],'crear'); \">Configurar</a></div> ";
-			}
-	$acciones = "<a href='#' onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado 
-	
-	$configuracion_dominio";
-	
-	}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysql_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='$_SESSION[url]images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";	
-			}
-		else {
-@$listado_campos .= "<td title='$tipo_campo[0]' >$contenido[0]</td>";
-}
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:150px;' class='actions' >
-
-							
-								<div class='container-fluid'>
-								<div class='row'>
-									<div class='col-md-12'>
-									<a class='btn btn-default btn-block btn-xs' target='form' href='../i$row[control]'><i class='fa fa-eye'></i> Ver</a>
-									</div>
-									<div class='col-md-12'>
-									<a class='btn btn-default btn-block btn-xs' target='form' href='../d$row[control]'><i class='fa fa-pencil'></i> Editar</a>
-									</div>
-									<div class='col-md-12' >
-									<a class='btn btn-default btn-block btn-xs' onclick=\"xajax_eliminar_identificador('$row[control]',''); \" href='#'><i class='fa fa-trash'></i> Eliminar</a>
-									<div id='eliminar_$row[control]'></div>
-									</div>
-									<div class='col-md-12'>
-									$imagen 
-									</div>
-								</div>
-								</div>
-							
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>	
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-				
-				<div class='input-group class='has-error''>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-					<small class='text-danger'> *Campo obligatorio</small>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion'); \"><i class='fa fa-save'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$control'>$_SESSION[site]i$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion_limpia[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Campos especiales</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i> Editar</a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a> Editar</td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-		
-$resultado = "	
-	<legend>Campos especiales</legend>
-	<ul>
-	<li>Campo de <b>Título</b> actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></li>
-	<li>Campo de <b>Orden</b> actual<strong> $campo_orden_nombre[0] [$campo_orden[0]]</strong> <small> (Este campo debe ser del tipo numérico)</small></li>
-	</ul>
-
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione campo</span>		 
-
-		 <select class='form-control' id='seleccion_campo' name='seleccion_campo'  onchange=\"\">
-		 <option value=''>Borrar el valor actual</option>
-		 $listado
-		 </select>
-	</div>
-		<br>
-			<div class=' btn btn-success  ' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','titulo',document.getElementById('seleccion_campo').value,'div_seleccion_titulo'); \">
-			<i class='fa fa-save'></i>
-			Usar como Título
-			</div>
-			<div class=' btn btn-success  ' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','orden',document.getElementById('seleccion_campo').value,'div_seleccion_titulo'); \">
-			<i class='fa fa-save'></i>
-			Usar como Orden
-			</div>
-			
-		
-<div id='div_seleccion_titulo'></div>
-	
-	
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-			$resultado
-			</div>";
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='f$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-return $resultado ;
-}
-
-function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
-	$resultado="";
-	$tipo="$tipo";
-	if($form != "") {$id_form = "$form";
-	
-		$datos_form ="	
-			<h2>$nombre[0]</h2>
-			<legend>$descripcion[0]</legend> 
-			";
-					
-	}else {$id_form ="";}
-
-		$impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp); 
-		if($impresion !="") {
-			$visitas= contar_visitas($control,'identificador') ;
-			$visitas= "<small><i class='fa fa-eye'></i> $visitas</small>";
-		//$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		//$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		$interaccion = interaccion_identificador("$control");
-		if($tipo=="") {
-		$resultado = "
-<!-- 		<div id ='mostrar_identificador_$control' class='mostrar_identificador container-fluid' style='max-width:650px; background-color:white;'> -->
-		<div id ='mostrar_identificador_$control' class='mostrar_identificador' style=' background-color:white;'>
-			$visitas
-				$datos_form
-				<!-- formulario_imprimir() -->
-				$impresion
-				<!-- formulario_imprimir() -->
-				$interaccion
-				$edicion
-			<br>
-		</div>"; }else {
-$resultado = "$impresion";
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<h2><img style='width:40px;' class='img img-circle' src='$avatar'> Hola  $_SESSION[nombre_usuario_milfs] </h2> <a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-	
-	if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
-$social_login="";
-	}
-	else {
-$social_login="
-	<div class='col-md-4'>
-		<div class='list-group'>
-			<a class='btn-info list-group-item btn btn-info btn-block' href='sociallogin.php?provider=twitter'>Ingresar con Twitter <i class='fa fa-twitter'></i></a>
-			<a class='btn-info list-group-item btn btn-info btn-block' href='sociallogin.php?provider=facebook'>Ingresar con Facebook <i class='fa fa-facebook'></i></a>
-		</div>
-	</div>
-
-";	
-	}
-$formulario ="
-$accion
-<div class='row' id='formulario_session'>
-	<div class='col-md-8'>
-		<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-			<div class='form-group>
-				<label for='usuario'>Usuario </label>
-					<input type='text' id='usuario' name='usuario' class='form-control'>
-			</div>
-			<div class='form-group>
-				<label for='password'>Clave </label>
-					<input type='password' id='password' name='password' class='form-control'>
-			</div>
-			<br>
-			<div class='row'>
-				<div class='col-sm-4'>
-					<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-				</div>
-				<div class='col-sm-4'>
-					<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-				</div>
-				<div class='col-sm-4'>
-				<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-				</div>
-			</div>
-		</form>
-	</div>
-$social_login
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador código $_SESSION[id]</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No encontramos tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-	
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<div class='alert alert-success'><h1>Gracias por regresar $_SESSION[nombre_usuario_milfs] <i class='fa fa-smile-o'></i></h1></div>  ";
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-		
-			
-			}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-		}else {	}
-		
-											}
-	require ("milfs/includes/parametrizacion.php");
-	$insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","");	
-$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$respuesta->addAssign("$div","innerHTML",$alerta);
-			return $respuesta;
-}
-	if (is_array($valores) ){
-	$valor = $valores['valor'];
-									}
-	else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-
-
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = landingpage_contenido_identificador($row['control']);
-   //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='https://qwerty.co/qr/?d=$_SESSION[site]f$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='$_SESSION[site]f$perfil'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[site]f$perfil' value='$_SESSION[site]f$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-			
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>".$campo_imagen_nombre."</label>
-				<div class='col-lg-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	";
-	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 .= "
-<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'>
-<legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div  onclick=\"  xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='milfs/?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form 
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[site]/?i$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-    /*  background-image: url(milfs/images/iron.jpg); */
-			</style>
-<!-- <div style='width;100%; min-height:900px; padding: 0.3%; background-attachment:fixed; background-color: gray ;'> -->
-<div style=''>
-	<div class='container-fluid' style=' border-radius:3px;  box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 = "  <div class='alert alert-danger'><h1>NO tiene permiso para usar este formulario <i class='fa fa-key'></i></h1>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-							$salir
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white; max-width:800px;  overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-			
-			<!-- formulario_areas -->
-			$impresion 
-				
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-			
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='https://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	if($id_empresa !=''){
-			$onclick ="";	
-						$accion = " href='./s$row[id_formulario]' ";
-		 }else {
-		 	$onclick ="";	
-			$accion = " href='./e$row[id_empresa]' ";
-			}
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#$accion' onclick=\" $onclick \" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-/*$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' 
-							$accion   class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-							*/
-$resultado_nav .= "<li class='dropdown'  >
-							<a class=''  role='button' 
-							$accion   class='dropdown-toggle' > $nombre </a>
-							$contenido_listado
-							";
-							
-						}
-
-$resultado_nav .="</li>";
-
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-			if($tipo =="sitemap") {
-$contenido_listado = contenido_listado("$row[id]");
-}
-															}
-if($tipo =="sitemap") {
-$resultado = "$resultado $contenido_listado";
-}
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = mysql_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysql_query($consulta,$link);
-//if (mysql_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"id");
-		$resultado[1]=mysql_result($sql,0,"campo_nombre");
-		$resultado[2] =$consulta;
-											}else{ 	$resultado[0]='';
-														$resultado[2] =$consulta;
-														}
-return $resultado;
-}
-
-
-function formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado=mysql_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"timestamp");
-		$resultado[1]=mysql_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysql_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysql_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		//$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_web =  remplacetas('empresa','id',"$_SESSION[id_empresa]",'web','');
-		$empresa_web =  "<strong>$empresa_web[0]</strong> (Para editar este campo comuníquese con el soporte de técnico )";
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=300/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		$parametrizacion_css = parametrizacion_css("","","");
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar logo</div><br>";	
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; width: 300px; height:300px;
-					
-					'><a href='#logo'>Cambiar logo</a>
-					
-
-
-				</div>
-				
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos del proyecto</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</h2>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-				
-				$parametrizacion_css
-
-						<div style='' id='logo' >
-						<legend>Cambiar logo</legend>
-						
-								$subir_imagen
-						</div>
-						<hr>
-				<div class='container alert alert-warning'>
-				
-				$parametrizacion
-				</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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;
-	$valor = str_replace('"',"'", $valor);
-	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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-elseif($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysql_real_escape_string($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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	else {$campo = "";}
-		
-		return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo,$timestamp) {
-$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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados</small> ( ) <i class='fa fa-key'></i></h1></div>";
-		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(); 
-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",'',"$timestamp");
-		$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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]images/secure/?file=600/$contenido'>
-									<a href='milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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/pin.png");
-			$contenido = "
-
-			<img class=' img img-round img-responsive'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x150.png?access_token=$mapbox_token' >
-			<a target='mapa' href='https://www.openstreetmap.org/?mlat=$lon&mlon=$lat#map=$zoom/$lon/$lat&layers=C'>Ver mapa</a>
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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/pin.png");
-								$icon = "$_SESSION[site]milfs/images/iconos/pin.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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 data-toc-skip class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado ="$full";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-<!-- $javascript // $path // $id // $respuesta // -->
-<form method='post' class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" /> 
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div> 
-</form>
-";
-return $resultado;
- 
-}
-
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-  
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 .= "<td  >$columna  $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='fa fa-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='fa fa-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-				
-				else{$verificar_campo_aviso =""; $class='success';}
-				
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='https://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='fa fa-pencil'></i> Edit</a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( @$row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."]</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div','');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md hidden-sx'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' >
-							Obligatorio<br>
-							<div class='input-group '>
-							
-								<span class='input-group-addon'>0</span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'>1</span>
-							</div>
-							
-								Privacidad<br>
-							<div class='input-group '>
-									<span class='input-group-addon'>0</span>
-									<input class='form-control' type='range' value='$privado' min='0' max='1' name='privado_$row[control]' id='privado_$row[control]'
-									onchange =\"xajax_campo_privacidad(this.value,'$row[id_campo]','$id_formulario','grabar')\">
-									<span class='input-group-addon alert-success' title='el contenido de este campo no se mostrará'>1</span>
-								
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div><hr>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Administración de Formularios</legend>";
-	 unset($_SESSION['grupo_formularios']);
-	 }
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
- $clonar = clonar_formulario($formulario,$id_empresa,"","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='milfs/map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default btn-warning' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='fa fa-upload'></i> Importar (Experimental)</a>
-								 			<a class='btn btn-default ' href='../g$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='btn btn-default btn-default collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		<i class='fa fa-edit'></i> Editar
-								    		</a>
-												<h4>$nombre_formulario[0]</h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='fa fa-save'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-			<div class='panel-group' id='accordion_accion_formulario' role='tablist' aria-multiselectable='true'>
-				$clonar
-				$mover
-				<div id='panel_administrar' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_administrar' >
-					<div class='panel-heading'>
-						<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_administrador' aria-expanded='false' aria-controls='collapseExample'>
-							<i class='fa fa-bars'></i> Administrar 
-						</a> 
-						<span class='panel-title'> Administración de formularios</span>
-					</div>
-					<div class='panel-body collapse' id='panel_administrador'>
-<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-						$item
-						</div>
-					</div>
-				</div>
-			</div>
-		
-		";
-/*
-								
-		*/
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">".($item+1)."
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $control != "") {
-				$render="";$label=""; $campo_tipo_accion="oculto";
-			}else {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div class='col-md-12' id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		$campo_descripcion="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label 
-				<div class='col-md-12'>
-				$render 
-					$campo_descripcion 
-				</div>
-			</div>
-			
-		</div>
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";
-			}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$formulario[control]'>$_SESSION[site]i$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="
-	
-			<div class='alert alert-success text-center'><h1><i class='fa fa-smile-o'></i><small> Todo bien pero al parecer no se modicaron registros </small></h1></div>";
-		$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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-	
-	
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='https://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='?form=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-			
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-      
-        <!-- <li>$importador</li> -->
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-function mas_visto($tipo,$limite) {
-$resultado= "";
-$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 .= "<div class='col-md-2 '>
-												 <h5><small><i class='fa fa-eye'></i> $row[descripcion]</small></h5>
-												 <a href='i$row[campo]'>
-						 						<img style='max-height:100px;' class='center-block img img-responsive  img-rounded' src ='milfs/images/secure/?file=150/$imagen[0]'>
-						 						
-						 						</a>
-						 						 $impresion
-						 						<!--  $row[campo] $formulario_titulo[0] $formulario[0] *  -->
-						 						</div> ";		
-						 			}
-						 			$resultado = "
-						 			 	
-						 				<hr>
-						 				<p class='text-center'>LO MAS VISTO</p>
-						 				<div class='row'>
-						
-						 					$contenido
-						 				</div>
-						 				<hr class='intro-divider'>
-						 				";
-		 			}
-				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 .= "<div class='col-md-2 '>
-												 <h5><small><i class='fa fa-binoculars'></i> $row[descripcion]</small></h5>
-												 <a href='a$row[campo]'>
-						 						<img style='max-height:100px;' class='center-block img img-responsive  img-rounded' src ='milfs/images/secure/?file=150/$empresa_logo[0]'>
-						 						<p class='text-center'>$formulario_titulo[0]</p>
-						 						</a>
-						 						</div> ";	
-		 			
-			 		}
-			 								 			$resultado = "
-						 			 	
-						 				<hr>
-						 				<p class='text-center'>LO MAS ACTIVO</p>
-						 				<div class='row'>
-						
-						 					$contenido
-						 				</div>
-						 				<hr class='intro-divider'>
-						 				";
-			 		
-		 		}
-		 		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 .= "<!-- ($identificador','$row[form_id]','','simple','$row[timestamp]')  --> $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 ="
-						<table class='table table-condensed '>";
-	while( $row = mysql_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a class='btn btn-success' onclick = \"xajax_formulario_embebido_ajax('$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre]</a> $row[descripcion] </td></tr>";
-
-}
-	$resultado .="</table>";	
-}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 .= "<li><a href='#cabecera' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a href='#cabecera' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='#cabecera'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='#cabecera' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  href='#cabecera'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a  href='#cabecera'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = " 
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-			 <div class='text-center center-block'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>	
-				</ul>
-				     $paginacion
-			 </div>
-			</div>
-		</div> ";
-						
-//	$total_registros = mysql_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= "<br>$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="
-<br>
-<div class='container'>
-		<div class='col-sm-7 col-md-2' >
-		
-		<div class='btn btn-success btn-block' onclick =\"xajax_formulario_embebido_ajax('$form','','nuevo');\"> <i class='fa fa-plus-square'></i> Agregar </a></div>
-		</div>
-		<div class='col-sm-7 col-md-5' >
-		$filtro
-		</div>
-		 $buscador
-	</div>
-	<br>";
-}
-$resultado = "
-<a name='cabecera'></a>
-<div id='mostrar_resultado'>
-$acciones
-
-$linea
-$encabezado
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
-	/*$datos = $resultado;
-	$div ="contenido_de_modal";
-	$resultado = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-		if($row[imagen] !="") {
-	$logo="<img style= 'max-height:150px;max-width:400px;' class='img img-responsive img-rounded center-block' src='milfs/images/secure/?file=150/$row[imagen]'>";
-									}
-	 else {
-	 		  		$logo_empresa =  remplacetas('empresa','id',"1",'imagen','');
-	 		$logo="<img style= 'height:150px;' class='img img-responsive img-rounded center-block' src='milfs/images/sinimagen.jpg'>";
-	 }
-	 $slogan= substr($row[slogan],0, $length = 140);
-	$contenido ="
-	<div class='  col-sm-$cols' style=''>
-		
-			<div class=' img-thumbnail ' style='margin:5px; padding: 10px; width: 300px;  height: 400px; '>
-			<h2 style= 'height: 100px;' class='text-center'>$row[razon_social]
-				</h2>
-				<a href='e$row[id_empresa]'>	$logo	</a>
-				<div class='caption center-block'>
-				<div class='slogan'>$slogan</div>
-				
-				<a class='btn-default btn  ' style='   position: absolute;   bottom: 10px; right:15px;   '  href='e$row[id_empresa]'>	Apoya esta causa</a>
-				</div>
-			</div>
-			<br>
-	
-	</div>";     	
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-		<div class='container-fluid'>
-			$encontrados
-		</div>	
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-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 ="<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<div class='thumbnail'>
-				<a href='i$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-rounded'>
-				</a>
-			</div>$uri";
-					
-	}else {
-		$miniatura ="<a href='i$identificador' >i$identificador</a>";
-		$mostrar_imagen = "<img src='$qr' alt='$identificador' title='' style='width:100%'; class='img img-responsive img-rounded'>";
-
-			
-
-		}
-
- //<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
-	if($plantilla[0] !="" ) {
-	$impresion = mostrar_identificador($identificador,"","landingpage","","");
-	} else{ 
-	$contenido = mostrar_identificador($identificador,"","","","");
-	$impresion = "
-		<!-- plantilla landingpage $identificador -->
-	<br><div class='clearfix'></div>
-
-<a  name='control_$identificador'></a>
-    <div class='content-section-a'>
-
-        <div class='container-fluid'>
-		
-	         <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    <div class='clearfix'></div>
-                    	
-                     $contenido 
-                     $miniatura                  
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                   $mostrar_imagen
-                </div>
-            </div>
-
-			<div class='link-compartir text-center'><a href='i$identificador' ><i class='fa fa-share-square'></i> Compartir </a></div>
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-	<!-- plantilla landingpage --> 
-	
-	";
-	
-	}
- $linea = "
- 		<div class='mostrar_identificador_full container-fluid' style='background-color: #F1F8E0;  max-width:80% ;'>
- 			$impresion 
- 			 <!-- formulario de respuesta -->
- 			 <div class='center-block' style='max-width:600px;'>
- 			 <div class='container-fluid'>
- 			 $respuestas
-
- 			 </div>
- 			 </div>
- 			 <!-- formulario de respuesta -->
- 		</div>
- 		<br>
- 					";
-
-	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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-	*/	
-		
-	//// 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 = "<a href='i$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}	
-	$resultado_linea="<div id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='s$row[id]'><h3>Mas información</h3></a>";
-							$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 = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x300.png?access_token=$mapbox_token' >
-			"; }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='milfs/map.php?id=$row[id]' target='mapa'>$miniatura</a>";}else {$mapa='';}
-			if ( $fila%2==0){
-
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-b'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive' src='milfs/images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>			
-			
-			"; 
-			
-			}else{
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-
-            <div class='row'>
-                <div class='col-lg-5 col-lg-offset-1 col-sm-push-6  col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-sm-pull-6  col-sm-6'>
-                    <img class='img-responsive' src='milfs/images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-			
-	</div>
-			";
-			}
-			
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos',''); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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="<div id='dominio_$row[id]'><a class='btn btn-danger btn-sm' onclick=\"xajax_configurar_dominio($row[id],'eliminar'); \">DESconfigurar</a></div> ";		
-		}
-	else{
-			$configuracion_dominio="<div id='dominio_$row[id]'><a class='btn btn-warning btn-sm' onclick=\"xajax_configurar_dominio($row[id],'crear'); \">Configurar</a></div> ";
-			}
-	$acciones = "<a href='#' onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado 
-	
-	$configuracion_dominio";
-	
-	}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysql_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='$_SESSION[url]images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";	
-			}
-		else {
-@$listado_campos .= "<td title='$tipo_campo[0]' >$contenido[0]</td>";
-}
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:100px;' class='actions' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group'>
-								<a class='btn btn-default' target='form' href='../i$row[control]'><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../d$row[control]'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>	
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-				
-				<div class='form-group'>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion'); \"><i class='fa fa-save'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]i$control'>$_SESSION[site]i$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion_limpia[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Títulos</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i></a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a></td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-$resultado = "	
-	<br>
-	<p>El campo titulo, se usa como indice del formulario en algunas visualizaciones como el <strong>timeline</strong></p>
-	<h3>Campo de Título actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></h3>
-	<br>
-	<div class='input-group'>
-		<span class='input-group-addon'>Cambiar campo título</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_titulo('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-	</div>
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-			$resultado
-			</div>";
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='f$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysql_num_rows($sql)!='0'){
-
-while( $row = mysql_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-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= "<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>";
-		$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		if($tipo=="") {
-		$resultado = "
-		<div id ='mostrar_identificador_$control' class='mostrar_identificador container-fluid' style='max-width:650px, background-color:white;'>
-			$visitas
-			<h2>$nombre[0]</h2>
-				<legend>$descripcion[0]</legend> 
-				<!-- formulario_imprimir() -->
-				$impresion
-				<!-- formulario_imprimir() -->
-			<br>
-		</div>"; }else {
-$resultado = "$impresion";
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<h2><img style='width:40px;' class='img img-circle' src='$avatar'> Hola  $_SESSION[nombre_usuario_milfs] </h2> <a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-$formulario ="
-$accion
-<div class='row' id='formulario_session'>
-	<div class='col-md-8'>
-		<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-			<div class='form-group>
-				<label for='usuario'>Usuario </label>
-					<input type='text' id='usuario' name='usuario' class='form-control'>
-			</div>
-			<div class='form-group>
-				<label for='password'>Clave </label>
-					<input type='password' id='password' name='password' class='form-control'>
-			</div>
-			<br>
-			<div class='row'>
-				<div class='col-sm-4'>
-					<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-				</div>
-				<div class='col-sm-4'>
-					<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-				</div>
-				<div class='col-sm-4'>
-				<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-				</div>
-			</div>
-		</form>
-	</div>
-	<div class='col-md-4'>
-		<div class='list-group'>
-			<a class='btn-info list-group-item btn btn-info btn-block' href='sociallogin.php?provider=twitter'>Ingresar con Twitter <i class='fa fa-twitter'></i></a>
-			<a class='btn-info list-group-item btn btn-info btn-block' href='sociallogin.php?provider=facebook'>Ingresar con Facebook <i class='fa fa-facebook'></i></a>
-		</div>
-	</div>
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador código $_SESSION[id]</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No encontramos tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-	
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<div class='alert alert-success'><h1>Gracias por regresar $_SESSION[nombre_usuario_milfs] <i class='fa fa-smile-o'></i></h1></div>  ";
-$respuesta->addScript("javascript:location.reload(true);");
-}else {$resultado ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-
-	
-	}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-}else {	}
-
-									}
-$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$respuesta->addAssign("$div","innerHTML",$alerta);
-			return $respuesta;
-}
-	if (is_array($valores) ){
-	$valor = $valores['valor'];
-									}
-	else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-<div class='col-sm-5 col-md-5'>
-	<!-- <form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'> -->
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-<!-- 	</form> -->
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = landingpage_contenido_identificador($row['control']);
-   //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='https://qwerty.co/qr/?d=$_SESSION[site]f$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='$_SESSION[site]f$perfil'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[site]f$perfil' value='$_SESSION[site]f$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-			
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>".$campo_imagen_nombre."</label>
-				<div class='col-lg-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	";
-	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 .= "
-<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'>
-<legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div  onclick=\"  xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='milfs/?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form 
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysql_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[site]/?i$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysql_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-			</style>
-<div style='width;100%; min-height:900px; padding: 0.3%; background-image: url(milfs/images/iron.jpg); background-attachment:fixed; background-color: gray ;'>
-	<div class='container-fluid' style=' border-radius:3px; background-color:white; max-width:800px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 = "  <div class='alert alert-danger'><h1>NO tiene permiso para usar este formulario <i class='fa fa-key'></i></h1>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-							$salir
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white; max-width:800px;  overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-			
-			<!-- formulario_areas -->
-				$impresion
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-			
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='https://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	if($id_empresa !=''){
-			$onclick ="";	
-						$accion = " href='./s$row[id_formulario]' ";
-		 }else {
-		 	$onclick ="";	
-			$accion = " href='./e$row[id_empresa]' ";
-			}
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-//$contenido_listado = contenido_listado("$row[id]");
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#$accion' onclick=\" $onclick \" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-/*$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' 
-							$accion   class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-							*/
-$resultado_nav .= "<li class='dropdown'  >
-							<a class=''  role='button' 
-							$accion   class='dropdown-toggle' > $nombre </a>
-							$contenido_listado
-							";
-							
-						}
-
-$resultado_nav .="</li>";
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-															}
-
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysql_data_seek($sql, 0);
-while( $row = mysql_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = mysql_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysql_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysql_query($consulta,$link);
-if (mysql_num_rows($sql)!='0'){
-	$control = mysql_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysql_query($consulta,$link);
-//if (mysql_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"id");
-		$resultado[1]=mysql_result($sql,0,"campo_nombre");
-		$resultado[2] =$consulta;
-											}else{ 	$resultado[0]='';
-														$resultado[2] =$consulta;
-														}
-return $resultado;
-}
-
-
-function formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado=mysql_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-		$sql=mysql_query($consulta,$link);
-		if (mysql_num_rows($sql)!='0'){
-		$resultado[0]=mysql_result($sql,0,"timestamp");
-		$resultado[1]=mysql_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysql_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysql_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysql_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		//$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_web =  remplacetas('empresa','id',"$_SESSION[id_empresa]",'web','');
-		$empresa_web =  "<strong>$empresa_web[0]</strong> (Para editar este campo comuníquese con el soporte de técnico )";
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=300/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar logo</div><br>";	
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; width: 300px; height:300px;
-					
-					'><a href='#logo'>Cambiar logo</a>
-					
-
-
-				</div>
-				
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos de la institución</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</h2>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-
-						<div style='' id='logo' >
-						<h2>Cambiar logo</h2>
-						
-								$subir_imagen
-						</div>
-						<hr>
-				<div class='container alert alert-danger'>
-				
-				$parametrizacion
-				</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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;
-	$valor = str_replace('"',"'", $valor);
-	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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-elseif($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysql_real_escape_string($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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	else {$campo = "";}
-		
-		return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo,$timestamp) {
-$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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados</small> ( ) <i class='fa fa-key'></i></h1></div>";
-		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(); 
-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",'',"$timestamp");
-		$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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]images/secure/?file=600/$contenido'>
-									<a href='milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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 = "
-
-			<img class=' img-responsive'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x250.png?access_token=$mapbox_token' >
-			<a target='mapa' href='https://www.openstreetmap.org/?mlat=$lon&mlon=$lat#map=$zoom/$lon/$lat&layers=C'>Ver mapa</a>
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado ="$full";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-<!-- $javascript // $path // $id // $respuesta // -->
-<form method='post' class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" /> 
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div> 
-</form>
-";
-return $resultado;
- 
-}
-
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysql_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-  
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 .= "<td  >$columna  $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='fa fa-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='fa fa-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-				
-				else{$verificar_campo_aviso =""; $class='success';}
-				
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='https://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( @$row = mysql_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div','');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysql_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysql_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md hidden-sx'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' >
-							Obligatorio<br>
-							<div class='input-group '>
-							
-								<span class='input-group-addon'>0</span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'>1</span>
-							</div>
-							
-								Privacidad<br>
-							<div class='input-group '>
-									<span class='input-group-addon'>0</span>
-									<input class='form-control' type='range' value='$privado' min='0' max='1' name='privado_$row[control]' id='privado_$row[control]'
-									onchange =\"xajax_campo_privacidad(this.value,'$row[id_campo]','$id_formulario','grabar')\">
-									<span class='input-group-addon alert-success' title='el contenido de este campo no se mostrará'>1</span>
-								
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div><hr>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysql_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Formularios</legend>"; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
-   			
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='milfs/map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default btn-warning' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='fa fa-upload'></i> Importar (Experimental)</a>
-								 			<a class='btn btn-default ' href='../g$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='btn btn-default btn-default collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		<i class='fa fa-edit'></i> Editar
-								    		</a>
-												<h4>$nombre_formulario[0]</h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='fa fa-save'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-		<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-		$item
-		</div>";
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">".($item+1)."
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $control != "") {
-				$render="";$label=""; $campo_tipo_accion="oculto";
-			}else {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div class='col-md-12' id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		$campo_descripcion="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label 
-				<div class='col-md-12'>
-				$render 
-					$campo_descripcion
-				</div>
-			</div>
-			
-		</div>
-$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] <br> ";
-														}
-							}
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";
-			}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]i$formulario[control]'>$_SESSION[site]i$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="
-	
-			<div class='alert alert-success text-center'><h1><i class='fa fa-smile-o'></i><small> Todo bien pero al parecer no se modicaron registros </small></h1></div>";
-		$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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-	
-	
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='https://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='?form=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-			
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysql_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-      
-        <!-- <li>$importador</li> -->
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-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 ="<h2>Restaurar</h2>";
-$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 .= "<div id='mensaje_$clave'>$contenido[0] <a href='#' onclick=\"xajax_parametrizacion_linea('form_id','$form','mostrar','visible','mensaje_$clave','','$clave');  javascript: document.getElementById('nota_$form-$clave').className= ' note yellow visble'; \"  '  > <i class='fa fa-undo' aria-hidden='true'></i></a></div><br>";
-	
-	}
-	
-	if ($accion ==""){
-$boton ="<div class='btn btn-warning' onclick=\"xajax_notas_papelera('$form','listado') \"> <i class='fa fa-trash'></i> Papelera</div><div id='papelera_$form'></div>";	
-	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 ="
-<hr>
-<div class='col-md-12'>
-<h2>Configuración</h2>
-	<div class='panel-group' id='accordion'>
-	  <div class='panel panel-default'>
-	    <div class='panel-heading'>
-	      <h4 class='panel-title'>
-	        <a data-toggle='collapse' data-parent='#accordion' href='#collapse1' onclick=\"xajax_agregar_campos('consultar_campos','consultar_campo','$form')\">
-	        Campos</a>
-	      </h4>
-	    </div>
-	    <div id='collapse1' class='panel-collapse collapse '>
-	      <div class='panel-body'>
-	      	
-				<div id='consultar_campo'></div>
-	      </div>
-	    </div>
-	  </div>
-	  <div class='panel panel-default'>
-	    <div class='panel-heading'>
-	      <h4 class='panel-title'>
-	        <a data-toggle='collapse' data-parent='#accordion' href='#collapse2'>
-	        Notas</a>
-	      </h4>
-	    </div>
-	    <div id='collapse2' class='panel-collapse collapse'>
-	      <div class='panel-body'>$parametrizaciones_listado</div>
-	    </div>
-	  </div>
-	  
-	</div>
-	
-</div>
-
-
-
-
-";	
-	
-	
-		$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', '<br>', '<BR>'),'', $text);
-$text = str_replace(array('?','¿','¡','!','&nbsp;','"',"  ",">","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<br> ";
-	 //$array_compuestos[] = str_replace(array('(',')',':','.','?','!','-','*','-','"','¿','¡',':',';','“','”','‘','’','“',"'","+","/>"), ' ', strip_tags($tags));;
-	 $array_compuestos[] = strip_tags($tags);
-	}
-$text = strip_tags($text);
-$text = str_replace(array('?','¿','¡','!','&nbsp;','\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 .= "<SPAN title='$cant' CLASS='badge label-warning'  draggable='true' id='#$ht ' ondragstart=\"evdragstart(event,this)\">$c </span>  " ;
-									$array_prueba = print_r($wordCounter,true);
-									$nube .= "<a href='#'><span class='etiquetatam$valor_relativo'  style=''  title='$c $cant'  id='#$ht ' >$c</span></a>  " ;
-									}
-	  					}
-	}
-	$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="
-		
-			<div class=''>
-			$nube
-			<div style='clear:both'></div>
-			</div>
-		
-		
-		";
-		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 .= "<div class='div_$campo' >$id_campo $valor esto</div>";
-
-	}
-
-
-
-
-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 .= "<li ><a title='$row[id_usuario]' href='#'>$Autor <span class='badge'>$row[cantidad]</span></a></li> ";
-					}else { $otros .= "<li ><a title='$row[id_usuario]' href='#'>Otro <span class='badge'>$row[cantidad]</span></a></li>";}
-				}
-		$resultado = "$cantidad <ul>$autor $otros</ul> ";
-		
-		}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 .= "<li id='li_$row[item]'> $row[descripcion] $row[cantidad]</li>";
-				}
-				}
-}
-
-
-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 .= "<td class='$clave text-center'>$v</td>"; 
-	}
-	$tabla_clasificacion = "<table class='table table-responsive'><tr>$tabla_clasificacion</tr></table>";
-$contenido ="
-<hr>
-<div class='col-md-5'>
-	<ul class='list-group'>
-	<li class ='list-group-item active'>Estadísticas</li>
-		<li class='list-group-item' >Total notas: <strong>$cantidad_notas</strong> </li>
-		<li class='list-group-item'>Autores: <strong>$cantidad_autores</strong></li>
-		<li class='list-group-item'>Me gusta: <strong>$total_gusta</strong> 
-		 Compromisos: <strong>$total_compromisos</strong> 
-		 Comentarios: <strong>$total_comentarios</strong></li>
-		 <li class='list-group-item'><h3>Clasificación</h3>$tabla_clasificacion</li>
-		
-	</ul>
-</div>
-<div class='col-md-5'>
-<div class='container-fluid'>
-<ul class='list-group'>
-<li class ='list-group-item active'>Palabras mas usadas</li>
-<li class='list-group-item'>$corpus</li>
-<ul>
-</div>
-</div>
-
-
-";	
-	
-	
-		$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 = "  <div class='alert alert-danger'><h2><a href='./milfs/'>Ingresa</a> Para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></h2></div>";
-		$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 = "
-			<div class='alert alert-danger'><p>Ingresa con tu usuario para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></p>	</div>
-			<div id='div_login'>$login</div>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		else{ $permiso_identificador =  ""; $salir="";}
-	
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0]  )){
-	$aviso = "<div class='alert alert-warning text-center '>
-					<h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado Para modificar esta información</small><br> pertenece a un grupo de trabajo diferente</h1></div>";
-				$resultado = "
-			<div class='container-fluid' style=''>
-							$salir	$aviso
-			</div>
-				 ";
-			$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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small> </h1></div>";
-			$seguridad ="
-
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-							
-			$resultado ="
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-				$seguridad
-			</div>
-		
-				 ";
-			$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="<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_nota_$control'));\" >Grabar</div>
-			</div>";
-		$nota="
-		<div id='nueva_nota_$control'>
-		
-			
-				<div id='nota_$id-$control' class='note yellow  $mostrar  ' style=\" width: 500px; height:500px; position:absolute; margin:auto; top:".$y."px; left:".$x."px;  z-index: 2000 \">
-					<a class='btn btn-danger' href='#'  onclick=\"xajax_limpia_div('nueva_nota_$control') \">Cancelar</a>
-					<a class='btn btn-warning' href='#' onclick =\"xajax_formulario_embebido_ajax($datos,'$id','$opciones','$tipo'); xajax_limpia_div('nueva_nota_$control')  \">Mas datos</a>
-							<div class='botonera'>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'yellow';  javascript: document.getElementById('nota_$id-$control').className= 'note yellow'; \"class='pull-right yellow btn accion'  style=''></div>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'blue'; javascript: document.getElementById('nota_$id-$control').className= 'note blue'; \" class='pull-right blue btn accion' ></div>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'green';  javascript: document.getElementById('nota_$id-$control').className= 'note green'; \"class='pull-right green btn accion' ></div>
-								<div onclick=\" javascript: document.getElementById('clase_$control').value= 'red';  javascript: document.getElementById('nota_$id-$control').className= 'note red'; \"class='pull-right red btn accion' ></div>
-							</div>
-												
-
-					<hr name=''>
-					<div id='div_$control'></div>
-					<form name='form_nota_$control' id='form_nota_$control'>
-					<div id='input_$id_campo"."[0]' ></div>
-						<textarea id='$id_campo"."[0]'  name='$id_campo"."[0]' placeholder='Escribe tu nota'></textarea>
-						<input type='hidden' value='$control' name='control' id='control'>
-						<input type='hidden' id='form_id' name='form_id' value='$id'>
-						<input type='hidden' id='tipo' name='tipo' value='nuevo'>
-						<input type='hidden' id='tipo_form' name='tipo_form' value='mini'>
-						<input type='hidden' id='metadatos' name='metadatos' value='$metadatos'>
-						<input type='hidden' id='clase_$control' name='clase' value=''>
-						<div  id='mensaje_$control' class='hidden'></div>
-						$boton
-					</form>
-				</div>
-			
-		</div>"; 	//$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 = "
-
-	<div class='container-fluid' style='  background-color:white;  overflow:no;' id='contenedor_datos' >
-			<!-- formulario_areas -->
-			$impresion
-			<!-- formulario_areas -->
-	</div>
-	";
-
-			$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 = "<a onclick=\"xajax_aplicacion_configuracion('','contenido','$form'); \"href='#menu-toggle' class='btn btn-default menu-toggle' id='configuracion-toggle'><i class='fa fa-cogs' aria-hidden='true'></i></a>";
-			}else{
-			$administracion = "";
-			}
-	  		$notes = notes("$form",'','','');
-
-	  		$footer="
-
-<nav class='navbar navbar-inverse navbar-fixed-bottom'>
-<div class='list-inline'>
-	<ul class=' center-block' style='
-	    float:none;
-	    margin:0 auto;
-	    display: block;
-	    text-align: center;'>
-
-                <a href='e$empresa[0]' class='btn btn-default ' >
-                    <i class='fa fa-home' aria-hidden='true'></i>
-                </a>
-                <a class='btn btn-default ' onclick=\"coordenadas(event); \"  href='#' >
-                <i class='fa fa fa-plus' aria-hidden='true'></i>
-                </a>
-
-
-				<div class='btn-group'>
-				 
-                <a href='#' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
-                     <i class='fa fa fa-search-plus' aria-hidden='true'></i>
-                </a>
-                <ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    <li>
-	                    
-	                    	<div class='hidden' id='zoom_label'>$zoom_label</div>
-	                    	
-	                    	 <input id='zoom_nivel' class='' onchange=\"viewport.style.zoom=(this.value);  xajax_parametrizacion_linea('form_id','$form','zoom',(this.value),'zoom_label','','tablero'); \";  type='range' min='0.3' value='$zoom[0]' max='2' step='0.01' />
-	                    
-                    </li>
-                </ul>
-            </div>
-            <a onclick=\"xajax_notas_estadisticas('$form','contenido',''); \"href='#menu-toggle' class='btn btn-default menu-toggle' id='estadisticas-toggle'><i class='fa fa-bar-chart' aria-hidden='true'></i></a>
-            $administracion
-          
-			<a href='https://tupale.co' class='navbar-brand  pull-right'>Tupale.co</a>
-			
-
-        </ul> 
-        </div>
-</nav>
-";
-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
-    <div id='wrapper-sidebar' class='toggled'>
-
-        <!-- Sidebar -->
-        <div id='sidebar-wrapper'>
-				<div id='contenido' class='sidebar-contenido '>
-				$estadisticas
-				</div>
-        </div>
-        <!-- /#sidebar-wrapper -->
-
-    </div>
-<div id='viewport' title='Doble click para agregar una nota' style='width:100%; zoom: $zoom[0]; ' onclick=\" xajax_ultimos_registros(document.getElementById('ultimo_id').value,'$form'); \"   >
-
-	<div id='main' ondblclick=\"coordenadas(event);\"  style=' top: 1000px;' >
-	<div class='container-fluid'>
-
-</div>
-		<div  class=' img-rounded tablero_titulo ' style='' ><h1>$titulo[0] <br><small>$descripcion[0]</small></h1>
-		<span class='data'>$form-titulo</span>
-		<div class='hidden' id='mensaje_titulo'></div>
-			<div id='div_session'>
-			$login 
-			</div>
-		</div>
-
-
-		$notes
-	    <span id='prueba' class=''></span>
-	</div>	
-</div> 
-<script type='text/javascript'>
-
-
-
-
-  // #wall is the infinite wall.
-  // The wall is made of tiles 100px wide and 100px high.
-  var infinitedrag = jQuery.infinitedrag('#main', {}, {
-    width: 366,
-    height: 366,
-    start_col: 0,
-    start_row: 0
-    
-  });
-  
-  
-  function coordenadas(event) {
- x=event.clientX;
- y=event.clientY;
- autor='$autor';
-// var cordenadas= 'x:'+x+'y'+y;
- var datos = [['id','$form'],['x',x],['y',y],['z',++zIndex],['autor',autor]];
-//alert(cordenadas);
-javascript:xajax_formulario_mini(datos,'$form','','nuevo');
-//javascript:xajax_formulario_embebido_ajax(datos,'$form','','nuevo');
- 
-}
-
-
-</script> 		
-	  		
-	  		";
-
-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 .= "... <button type='button' class='btn btn-link btn-xs' data-html='true' data-toggle='tooltipx' data-placement='top' title='$titulo[0]'>[+]</button>";	}
-		
-		$interaccion = interaccion_identificador("$row[control]",'','simple');
-	$notes.= "
-	<div id='nota_$id-$row[control]' class='note $color $mostrar' style=\"  left: ".$left."px; top: ".$top."px; z-index: ".$zindex." \">
-				<div class='pull-left'>
-			<a  href='#'  onclick=\"xajax_mostrar_modal('$id','$row[control]','landingpage');\" ><i class='fa fa-plus'></i></a>
-			</div>
-			
-		<div class='botonera'>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','mostrar','hidden','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'hidden'; \"class='pull-right  '  ><i class='btn btn-xs fa fa-trash-o' aria-hidden='true'></i></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','fantasma','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note '; \"class='pull-right '  ><i class='btn btn-xs  fa  fa-low-vision' aria-hidden='true'></i></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','yellow','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note yellow'; \"class='pull-right yellow btn accion'  style=''></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','blue','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note blue'; \" class='pull-right blue btn accion' ></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','green','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note green'; \"class='pull-right green btn accion' ></div>
-		<div onclick=\"xajax_parametrizacion_linea('form_id','$id','clase','red','mensaje_$row[control]','','$row[control]');  javascript: document.getElementById('nota_$id-$row[control]').className= 'note red'; \"class='pull-right red btn accion' ></div>
-		</div>
-		<hr>
-		
-		<p>$texto</p> 
-		
-		<span class='data'>$id-$row[control]</span>
-		<div class='hidden' id='mensaje_$row[control]'></div>
-		<div class='footer ' role='row'>
-				<div class='btn-group '>
-				    <a href='#' class='btn btn-xs btn-link dropdown-toggle' data-toggle='dropdown' aria-expanded='false'>
-				         <i class='fa fa fa-thumbs-o-up' aria-hidden='true'></i>
-				    </a>
-				    <ul class='dropdown-menu drop-up text-center' role='menu'>
-				        <li>
-				        $interaccion
-				        </li>
-				    </ul>
-				</div>
-			<!-- <div class='pull-left'>
-						 <div id='gusta_$row[control]' class='$gustax btn btn-xs col-xs-6' title='Me gusta' onclick=\"xajax_parametrizacion_linea('form_id','$id','gusta','$autor_logueado','mensaje_$row[control]','','$row[control]'); 
-						  javascript: document.getElementById('gusta_$row[control]').className= 'text-success btn btn-xs col-xs-6'; \"  >
-						 	<i class=' fa fa-thumbs-o-up' aria-hidden='true'></i>
-						 </div>
-						 <div id='comprometo_$row[control]' data-toggle='tooltip' class='$comprometox btn btn-xs   col-xs-6' title='Me comprometo' 
-						 onclick=\"xajax_parametrizacion_linea('form_id','$id','comprometo','$autor_logueado','mensaje_$row[control]','','$row[control]');  
-						 javascript: document.getElementById('comprometo_$row[control]').className= 'text-success btn btn-xs col-xs-6'; \"  >
-						 	<i class='fa fa-handshake-o' aria-hidden='true'></i>
-						 </div>
-						
-			</div> -->
-			<div class='pull-right'>
-				<footer>$autor<footer>
-			</div>
-		</div>
-		
-	</div>
-	
-	";
-	// parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div,$script,$item)
-
-	$orden = ($orden+2);
-	$orden_left = ($orden+1);
-	$ultimo = mktime();
-	$ultimo_id = $ultimo;
-}
-
-return "$notes <input type='hidden' id='ultimo_id' name='ultimo_id' value='$ultimo_id'>";
-
-}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 = "<a href='b$row[id]?registros=10'> Consultar <i class='glyphicon glyphicon-external-link-square'></i></a>";
-							$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= "<a class='boton_land btn btn-default ' href='mapero.php?id=$row[id]' target='mapa'><i class='fa fa-globe' aria-hidden='true'></i> Mapa</a>";}else {$mapa='';}
-		$descripcion_limpia = strip_tags($row['descripcion']);
-		if($imagen !="") {
-				$imagen ="
-			
-										<figure>
-										<a href='$favorita'>
-											<img style='max-height:170px; ' class='img img-rounded img-responsive' src='milfs/images/secure/?file=300/$imagen' alt='$row[nombre]'>
-											<!-- <figcaption class='articulo_caption' >$row[nombre]</figcaption> -->
-										</a>
-										</figure>
-										";
-			}
-	$contenido ="
-		<h2  class='text-center titulo_formulario section-heading'><a href='$favorita'>$row[grupo] $row[cantidad] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-
-    
-		<p class='descripcion_formulario text-left'>$descripcion_limpia </p>";
-
-//			if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar ="	<div class='boton_land btn btn-default ' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </div>";}
-							else{$boton_agregar =	"";}
-if($ver_data[0] !="0") {$boton_ver_data ="	<a target='datos'class='boton_land btn btn-default ' href= 'opendata.php?id=$row[id]'> <i class='fa fa-bar-chart' aria-hidden='true'></i> OpenData</a>";}
-									else{$boton_ver_data =	"";}
-
-	if($mostrar[0] !="0") {
-		//// PRIVACIDAD
-			$publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
-	$linea .= "<li class='list-group-item' title='' data-toggle='tooltip' data-placement='auto' data-html='true'><a class='' href='k$id_empresa&suite=$row[grupo]'><h2>$row[grupo]</h2></a></li>";
-	$linea_consulta .= "<li title='$descripcion[0]' data-toggle='tooltip' data-placement='auto' data-html='true'><a href='#mostrar' onclick=\" xajax_consultar_contenido_formulario('$row[id]','5','','','','$plantilla')\">$titulo[0]</a></li>";
-	$lista .= "<li class='list-group-item'  ><a href='#mostrar' onclick=\" xajax_consultar_contenido_formulario('$row[id]','5','','','','$plantilla')\">$titulo[0]</a> $descripcion[0]</li>";
-	$linea_editar .= "<li title='$descripcion[0]' data-toggle='tooltip' data-placement='auto' data-html='true'><a href='#' class=' ' title='Agregar' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\">$titulo[0]</a></li>";
-	
-			}else{
-					if($llenar[0] !="0"){
-		///	 $linea .="<li>$row[grupo] // $row[campo] </li>	";
-		}
-
-			}
-		}else {
-
-		}
-
-		$fila++;
-		}
-		
-	if($suite!="") { 	
-	
-
-			
-$footer="
-
-<nav class='navbar navbar-inverse navbar-fixed-bottom'>
-<div class='list-inline'>
-	<ul class=' center-block' style='
-	    float:none;
-	    margin:0 auto;
-	    display: block;
-	    text-align: center;'>
-
-                <a href='k$id_empresa' class='btn btn-default ' >
-                    <i class='fa fa-home' aria-hidden='true'></i>
-                </a>
-                <a href='#inicio' class='btn btn-default ' >
-                    <i class='fa fa-list' aria-hidden='true'></i>
-                </a>
-
-<!--                 <a href='#mapa' class='btn btn-default ' >
-                    <i class='fa fa-map' aria-hidden='true'></i>
-                </a> -->
-
-				<div class='btn-group'>
-				 
-                <a href='#' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
-                     <i class='fa fa-eye' aria-hidden='true'></i>
-                </a>
-                <ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    $linea_consulta
-                </ul>
-            </div>
-
-				<div class='btn-group'>
-				 
-                <a href='#' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
-                     <i class='fa fa-plus' aria-hidden='true'></i>
-                </a>
-                <ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    $linea_editar
-                </ul>
-            </div>
-            
-           
-            
-        
-        </ul>
-        </div>
-</nav>
-";
-$resultado ="
-
-	<div class='reveal' style='bottom: 80px !important;'>
-					<div class='slides' >
-						<section id='inicio' class='scrollable present text-center' style='' >
-							
-								<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-								
-									
-								
-								<h2>$descripcion[0]</h2>
-								<hr>
-								<h1>$razon_social[0]</h1>
-								<h2>$slogan[0]</h2>
-								<hr>
-								<ul class='list-group'>
-										$lista
-									</ul>
-								<hr>
-								<a href='https://tupale.co'>Tupale.co</a>
-							
-						</section>
-						<section id='mostrar' class='scrollable present text-center' style='' >
-							<div id='mostrar_resultado' class='text-center'>
-							<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-							</div>
-						</section>
-						<section id='mapa'>
-						<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-						</section>
-					</div>
-	</div>
-	$footer		  
-		
-	";
-	
-	}else {
-			$titulo = 	 remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-
-	
-$resultado ="
-	<div class='reveal' style='bottom: 80px !important;'>
-					<div class='slides' >
-						<section id='inicio' class='scrollable present text-center' style='' >
-							
-								<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-								
-									
-								
-								<h2>$descripcion[0]</h2>
-								<hr>
-								<h1>$razon_social[0]</h1>
-								<h2>$slogan[0]</h2>
-								<hr>
-								<ul class='list-group'>
-										$linea
-									</ul>
-								<hr>
-								<a href='https://tupale.co'>Tupale.co</a>
-							
-						</section>
-						
-					</div>
-	</div>		
-	";
-	}
-	}else{
-$resultado ="
-	<div class='reveal' style='bottom: 80px !important;'>
-					<div class='slides' >
-						<section id='inicio' class='scrollable present text-center' style='' >
-							
-								<img style='width: 20%;
-									  display: block;
-									  margin-left: auto;
-									  margin-right: auto;' src='milfs/images/secure/?file=600/$logo[0]' alt='' class='img img-responsive  center-block'>
-								
-									
-								
-								<h2>$descripcion[0]</h2>
-								<hr>
-								<h1>$razon_social[0]</h1>
-								<h2>$slogan[0]</h2>
-								<hr>
-								<h1 class='text-danger'>Sigue intentando :( </h1>
-								<hr>
-								<a href='https://tupale.co'>Tupale.co</a>
-							
-						</section>
-						
-					</div>
-	</div>		
-	";	
-	
-	}
-
-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 ="<div class='alert alert-danger'><h1>No tiene autorización para revisar este contenido</h1></div>";
-				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="
-					<div class='cabecera_planilla row'>
-						<div class='col-xs-2'>					
-							<img src='milfs/images/secure/?file=150/$imagen[0]' class='img  img_planilla'>
-						</div>
-						<div class=''col-xs-10>
-							<h1>$razon_social[0] <small>$slogan[0]</small></h1>
-							<h2>$nombre_formulario[0] <small>$descripcion_formulario[0]</small></h2>
-						</div>
-					</div>";
-					
-$fila=1;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	if($fila % $registros == 0) {$separador="</table>$pie<div class='saltopagina'></div>$cabecera<table class='table table-bordered table-striped'><th></th>$titulo";}else {$separador="";}
-$linea = formulario_imprimir_linea("$id","$row[control]","linea_planilla");
-		$despliegue .= "<tr><td><small>$fila</small></td>$linea</tr> $separador";
-		//formulario_imprimir_linea("$row[form_id]","$row[control]")
-		$fila++;
-		
-		
-}
-
-$tabla= "$cabecera<table class='table table-bordered table-striped'><th></th>$titulo $despliegue</table>$pie";
-return "<div class='container-fluid'>$tabla</div>";
-}
-
-
-
-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 ="<div style='background-color:white; max-height: 300px;'><ul class='list-group'>";
-	$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 .="<li class='list-group-item'><a onclick=\"document.getElementById('$name').value='$row[equipo]'; xajax_equipos('',$proyecto,'$name','div_$name');\">$row[equipo]</a></li>";
-}}
-$resultado .="</ul></div>";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-}
-else{
-
-$resultado ="<input value='' type='text' id='$name' name='$name' placeholder='$name' class='form-control'
-					onkeyup=\"xajax_equipos(this.value,$proyecto,'$name','div_$name') \"
-					>
-					";
-					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 .= "
-<style>
-.item-galeria{
-   position: absolute;
-      bottom:0px;
-      color:#fff;
-      background-color:#000;
-      padding:2px ;
-      opacity:0.5;
-      height: 50px;
-      overflow:hidden;
-       width:190px; z-index:20; word-wrap: break-word;
-           -webkit-transition: height 2s, bottom 1s; /* Safari */
-    transition: height 2s, bottom 2s;
-}
-.item-galeria-over{
-   position: absolute;
-      top:0px;
-      color:#fff;
-      height: 100%;
-      background-color:#000000;
-      padding:2px ;
-      opacity:0.8;
-      width:190px; z-index:20; word-wrap: break-word;
-          -webkit-transition: height 2s, top 2s; /* Safari */
-    transition: height 2s, top 2s;
-}
-</style>
-<div style='   display: table-cell;
-  position: relative;
-  margin: 10px;
-  float: left;
-  padding: 5px;
-  background-color: grey;
-  height: 200px;
-    width: 200px;
-    z-index:10;'
-
-    onmouseenter=\"xajax_cambiar_propiedades('div_titulo_$row[control]','className','item-galeria-over'); \"
-	onmouseleave=\"xajax_cambiar_propiedades('div_titulo_$row[control]','className','item-galeria'); \"
-	><img class='img img-responsive' src='$imagen'>
-<div id='div_titulo_$row[control]'
-	style='' class='item-galeria'>
-	      <ul class='list-unstyled'>
-	      	<li class=''>$titulo[0]</li>
-
-	      	<li>Autor: $autor[0]</li>
-	      	<li>Licencia: $licencia[0]</li>
-	      	<input class='form-control' value='$url' onmouseenter='select()'>
-	      </ul>
-      </div>
-    </div>";
-
-}
-$resultado="
-<div class='container' style='  display: table;'>$contenido</div>";
-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="<img src='$link_url' alt='$valor' class='imagen_multiple_$campo img img-responsive'>";	
-				
-			}else{$valor="<a class='link_multiple_$campo' href='$link_url' >$valor</a>";	}
-			}
-					$linea .= "<div class='div_$campo' >$valor</div>";
- if(is_array($valor)) {
-			foreach ($valor as $c => $v) {
-					$linea .= "<div class='div_$campo' >$v</div>";
-}
-
-			
-									
-
-			}
-	}
-
-$resultado="
-<div class='container-fluid container_$campo_$control'>$linea $campo_tipo[0]</div>
-
-";
-
-
-
-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 .= "<tr><td>$id_campo $valor</td></tr>";
-		$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 .= "<tr><td>$c $v</td></tr>";
-				foreach ($v as $c1 => $v1) {
-					$linea .= "<tr><td>$v1</td></tr>";
-				}
-			}
-	}
-
-$resultado="
-<table class='table table-striped ' id='tabla_$control' >
-<tr><th>$campo_nombre[0]</th></tr>
-$linea
-</table>
-
-";
-}
-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="<td >$listado_campos</td>";}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 = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   viewBox="0 0 744.09448819 1052.3622047"
-   id="svg'.$formulario.'"
-   version="1.1">
-  <defs
-     id="def_'.$formulario.'">
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath'.$formulario.'">
-
-    </clipPath>
-  </defs>
-  <metadata
-     id="metadata'.$formulario.'">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-
-';
-$pie="</svg>";
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= "<br>$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 .="
-			<li><a onclick=\"document.getElementById('filtro_$id_campo').value='$row[campo_valor]'; xajax_filtro_generico_buscar(xajax.getFormValues('formulario_filtro_$formulario'),'$formulario');\" >$row[campo_valor]</a></li>
-	";
-
-}
-$opciones ="
-	<li><a onclick=\"document.getElementById('filtro_$id_campo').value=''; xajax_filtro_generico_buscar(xajax.getFormValues('formulario_filtro_$formulario'),'$formulario');\" >Limpiar</a></li>
-	$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 .="
-
-			<div class='dropdown' style='display:inline'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				$row[campo_nombre]  <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $listado
-				 </ul>
-				 <input class='form-control' id='filtro_$row[id_campo]' name ='filtro_$row[id_campo]'>
-		 	</div>
-
-	";
-
-}
-$filtro = "
-	<form id='formulario_filtro_$formulario' name ='formulario_filtro_$formulario' >
-
-		$filtro
-
-
-	</form>";
-
-}
-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 .= "<td>$campo_nombre $contenido[0]</td>";
-    	$campos_insertar[] ="campo_$campo_nombre ='$contenido[0]'";
-
-    }
-		$campos_insertar[] ="control ='$row_contenido[control]'";
-			$lineas .= "<tr><td>$row_contenido[control] </td>$los_campos //</tr>";
-			$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 ;//" // <h1>$tabla_temporal</h1> ** $crear ; $insert ; $consultar ; * <table>$lineas</table> // ";
-}
-
-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="
-	<div class='input-group'>
-	<div id='$div' onclick= \"xajax_formulario_estadistica_ocultar('$id_form','$id_campo','eliminar','$tipo'); \"; class='btn btn-xs btn-danger' title='Elimine esta gráfica si no es relevante'>Eliminar gráfica</div>
-	</div>
-	";
-}else {$resultado="";}
-	return $resultado;
-}elseif($accion =="eliminar") {
-
-$borrar= parametrizacion_linea("$tipo","$id_form",'ocultar',"$id_campo",'','',"$id_campo");
-//$resultado="<span class='disabled'>$id_campo $borrar</span>";
-$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 .="<tr><td>$row[cantidad]</td><td>$row[contenido]</td><td></td></tr>";
-			
-			$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 ="
-	<table class='table'>
-		<tr><td>$row[cantidad]</td><td>$row[contenido]</td><td></td></tr>
-		$lineas
-	</table>
-
-		";
-		$manejo_grafica = formulario_estadistica_ocultar("$id_form","$id_campo","","$tipo");
-$grafica ="
-<div id='contenedor_grafica_$tipo_$id_campo' >
-
-    <div id='canvas-holder_$tipo_$id_campo' style='width:100%'>
-        <canvas id='chart-area_$tipo_$id_campo' />
-    </div>
-
-</div>
-    <script>
-
-
-    window.onload = mostrar('bar');
-
-function mostrar(tipo) {
-var config = {
-        type:tipo,
-        data: {
-$data_grafica   },
-        options: {
-            responsive: true,
-            scales: { xAxes: [{display: false}]},        
-            legend: { display: false   },
-            tooltips: {
-            callbacks: {
-                label: function(tooltipItem, data) {
-                  
-                    var label = data.labels[tooltipItem.index].label;
-                    return label;
-                }}}
-            
-        }
-    };
-	        
-	        var ctx = document.getElementById('chart-area_$tipo_$id_campo').getContext('2d');
-	        
-        window.myPie = new Chart(ctx, config );
-}
-
-
-    </script>
-
-";
-
-		}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= "<li class='list-inline-item'><a title='Mapa'  class='btn btn-info ' href='#/mapa' ><i class='fa fa-map-o' aria-hidden='true'></i></a></li>";
-	$mapa= "<li class='list-inline-item'><a  class='btn btn-info ' target='mapa' href='mapero.php?id=$id' target='mapa'>Mapa</a></li>
-				<li class='list-inline-item'><a  class='btn btn-info ' target='mapa' href='milfs/geojson.php?id=$id' target='mapa'>{GEOJson}</a></li>
-	";}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 = "<li class='list-inline-item'><a href='#' class='btn btn-info '  title='Agregar' onclick =\"xajax_formulario_embebido_ajax('','$id','','nuevo');\"><i class='fa fa-plus-square-o'></i></a>";
-	$camara = "
-
-                
-	<div class='btn-group'>
-				 
-                <a onclick=\"parent.location='#galeria'\"  href='#' class='btn btn-info dropdown-toggle' data-toggle='dropdown' aria-expanded='false'>
-                     <i class='fa fa-picture-o' aria-hidden='true'></i>
-                </a>
-					<ul class='dropdown-menu drop-up dropdown-menu-right' role='menu'>
-                    <li title='' data-toggle='tooltip' data-placement='auto' data-html='true' data-original-title='Toma una foto'>
-                    <a href='#galeria' onclick =\"xajax_formulario_embebido_ajax('','$id','','nuevo');\">
-                    <h1>
-                    
-                    <i class='fa fa-plus fa-6' aria-hidden='true'></i>
-                    <i class='fa fa-camera-retro fa-6' aria-hidden='true'></i>
-                    </h1>
-                    </a>
-                    </li>
-                </ul>
-	</div>	
-                ";
-	
-	}else{
-$camara= "
-	<li class='list-inline-item'>
-		<a title='Galería'  class='btn btn-info ' href='#galeria' >
-			<i class='fa fa-picture-o' aria-hidden='true'></i>
-		</a>
-	</li>";	
-	}
-		  		$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="<div class='list-inline' >
-
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]/milfs/api.php?id=$id'> {json}</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]/milfs/api.php?id=$id&tipo=simple'> {json simple}</a>
-  $mapa
-
-  <li  class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]l$id'>Informe</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]b$id?registros=10'>Mostrar</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]f$id?registros=10'>Llenar</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]g$id'>Embeber</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]opendata.php?tipo=documento&id=$id'>Doc</a></li>
-  <li class='list-inline-item'><a class='btn btn-info ' target='api' href='$_SESSION[site]opendata.php?tipo=svg&id=$id'>SVG</a></li>
-
-
-</div>";
-
-}
-
-elseif($tipo=="aplicacion"){
-$acciones="
-	<div class='list-inline' >
-	<li class='list-inline-item'><a title='Inicio'  class='btn btn-info ' href='#inicio' ><i class='fa fa-home' aria-hidden='true'></i></a></li>
-	<li class='list-inline-item'><a title='Listado'  class='btn btn-info ' href='#listado' ><i class='fa fa-list' aria-hidden='true'></i></a></li>
-	$mapa_aplicacion 
-	$galeria_aplicacion
-	<li class='list-inline-item'><a title='Estadisticas'  class='btn btn-info ' href='#/estadisticas' ><i class='fa fa-area-chart' aria-hidden='true'></i></a></li>
-	<li class='list-inline-item'><a onclick =\"xajax_compartir('$id',''); \" title='Compartir'  class='btn btn-info ' href='#compartir' ><i class='fa fa-share-alt' aria-hidden='true'></i></a></li>
-	$agregar
-	<li class='list-inline-item'><a href='#' onclick=\"imprimir_registros() \";title='Imprimir'  class='btn btn-info ' href='#' ><i class='fa fa-print' aria-hidden='true'></i></a></li>
-	<li class='list-inline-item'><a onclick =\"javascript:location.reload(true) \" title='Actualizar'  class='btn btn-info ' href='#' ><i class='fa fa-refresh' aria-hidden='true'></i></a></li>
-
-	</div>
-	<script>
-function imprimir_registros() {
-    var cantidad;
-    var registros = prompt('Cuantos registros desea imprimir en cada página?', '5');
-    if (registros == null || cantidad == '') {
-        alert('La impresión se ha cancelado !');
-    } else {
-		 alert('Un momento por favor: se imprimirán '+registros+' registros por página');
-         window.open(\"p74?registros=\" + registros + \"&print\", 'impresion');
-    }
-     
-    
-}
-</script>";
-}
-
-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="
-<div class='row text-center' role='row ' >
-		<div class='col-md-2'>
-          <h1>Compartir:</h1>
-		</div>
-		<div class='col-md-1'>
-          <a class='btn btn-success  btn-block' href='$url' target='_blank'><i class='fa fa-share-alt fa-6' aria-hidden='true' style=' font-size: $size !important;'></i></a>
-		</div>
-		<div class='col-md-1'>
-          <a target='redes' class='btn btn-success  btn-block' href='http://twitter.com/share?url=$url&amp;text=$twitter'><i class='fa fa-twitter fa-6' style=' font-size: $size !important;'></i></a> 
-		</div>
-		<div class='col-md-1'>
-		          <a target='redes' class='btn btn-success btn-block' href='https://www.facebook.com/sharer/sharer.php?u=$url'><i class='fa fa-facebook-official fa-6' style=' font-size: $size !important;'></i></a>
-       		</div>
-		<div class='col-md-1'>
-		   <a target='redes' class='btn btn-success btn-block' href='mailto://?subject=$titulo[0]&body=$impresion $url '><i class='fa fa-envelope-o fa-6' style=' font-size: $size !important;'></i></a>
-		</div>
-		<div class='col-md-1'>
-		          <a target='redes' class='btn btn-success btn-block' href=\"javascript:window.open('https://t.me/share/url?url='+encodeURIComponent(window.location.href), '_blank')\" data-action=''><i class='fa fa-telegram' aria-hidden='true'  style=' font-size: $size !important;'></i></a>
-      		</div>
-		<div class='col-md-1'>
-		    <a target='redes' class='btn btn-success btn-block'  href='whatsapp://send?text=$url' data-action='share/whatsapp/share'><i class='fa fa-whatsapp' aria-hidden='true'  style=' font-size: $size !important;'></i></a>
-
-		</div>
-		<div class='col-md-1'>
-		          <a class='btn btn-success btn-block' href='https://qwerty.co/qr/?d=$url' target='_blank'><img src='https://qwerty.co/qr/?d=$url' style=' height: $size !important;'></a>
-          
-      </div>
-</div>
-
-";
-}
-
-$encabezado ="<h1>$titulo[0]<small>$descripcion[0]</small></h1>";
-			$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 .= "<li > <a class='btn btn-link'  onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" >$valor_actual </a> </li>";
-}
-
-}
-/*$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-			$resultado
-			</div>";
-	*/
-		$resultado="
-			<div class='dropdown'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				Filtro $campo_nombre[0] <i class='glyphicon glyphicon-filter'></i>
-				 <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $listado
-				 </ul>
-		 	</div>
-	";
-
-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.= "<li><a href='$onchange=$row[$value]'> ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id <img class='img img-rounded' src='milfs/images/secure/?file=150/$row[imagen]' style='max-height:30px;'> </a></li>";
-			}
-		}
-		$resultado="
-			<div class='dropdown'>
-				<button class='btn btn-default dropdown-toggle' type='button' id='drown_$tabla' data-toggle='dropdown' aria-haspopup='true' aria-expanded='true'>
-				$nombre
-				 <span class='caret'></span>
-				 </button>
-				 <ul class='dropdown-menu' aria-labelledby='drown_$tabla'>
-				 $lis
-				 </ul>
-		 	</div>
-	";
-	}
-	else{
-		$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0019</div>";
-	}
-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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = "
-
-";
-
-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]",'','presentacion');
-
-	$contenido  .= "$contenido_desplegado ";
-
-														}
- 	$contenido = "
-        	$contenido
-      ";
-										}else{$contenido = "";}
-
-
-		return $contenido;
-
-}
-$xajax->registerFunction("contenido_presentacion");
-
-
-
-function formulario_contar_registros($id,$id_campo,$id_empresa,$clave) {
-		$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-
-	if($id_empresa ==""){$empresa="";}else{$empresa ="AND id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'";}
-	if($clave ==""){$clave="";}else{$clave ="AND contenido LIKE '%%".mysqli_real_escape_string($link,$clave)."%%'";}
-	if($id_campo ==""){$w_id_campo="";}else{$w_id_campo ="AND id_campo = '".mysqli_real_escape_string($link,$id_campo)."' ";}
-$consulta ="SELECT distinct(contenido)   FROM form_datos WHERE form_id = '".mysqli_real_escape_string($link,$id)."' $w_id_campo $empresa $clave  ";
-
-		$sql=mysqli_query($link,$consulta);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_num_rows($sql);
-		}else {$resultado =0;}
-return $resultado ;
-}
-
-
-function formulario_campo_semantico($cadena,$formulario,$tipo,$accion) {
-		$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-$consulta ="SELECT id_campo,campo_nombre,campo_descripcion FROM `form_campos` , form_contenido_campos
-				WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='".mysqli_real_escape_string($link,$formulario)."' AND campo_nombre LIKE '%%".mysqli_real_escape_string($link,$cadena)."%%'
-				GROUP BY id_campo ";
-$consulta_todos ="SELECT id_campo,campo_nombre,campo_descripcion FROM `form_campos` , form_contenido_campos
-				WHERE form_campos.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form ='".mysqli_real_escape_string($link,$formulario)."' AND campo_nombre NOT LIKE '%%".mysqli_real_escape_string($link,$cadena)."%%'
-				GROUP BY id_campo ";
-
-$sql=mysqli_query($link,$consulta_todos);
-if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-				$lista.="<li class='list-group-item ' title='$row[campo_descripcion]'><input type='radio' value='$row[id_campo]' id='$cadena' name='$cadena' > $row[campo_nombre] </li>";
-					}
-					}
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-				$lista_todos.="<li class='list-group-item list-group-item-success' title='$row[campo_descripcion]'><input type='radio' value='$row[id_campo]' id='$cadena' name='$cadena' > $row[campo_nombre]</li>";
-				$id =$row['id_campo'];
-					}
-					}
-if($tipo=='preciso') {
-	$resultado="$id";
-}else{
-	$resultado="<ul class='item-list'>$lista_todos $lista </ul>";
-}
-return $resultado ;
-}
-
-
-function marcar($mensaje,$div) {
-
-
-
-	$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("$div","innerHTML","$mensaje");
-			return $respuesta;
-
-}
-$xajax->registerFunction("marcar");
-
-
-
-function mailer($accion,$formulario,$campo,$empresa){
-	if($_SESSION['id'] != 1) {
-		return;
-	}
-	$respuesta = new xajaxResponse('utf-8');
-	$boton="<div class='btn btn-default' onclick=\"xajax_mailer('listado','','',''); \" >Listas de correo</div>";
-	if($accion=="") {
-
-	return $boton;
-	}
-
-
-		$link=Conectarse();
-				mysqli_set_charset($link, "utf8");
-	if($accion =="listado") {
-		$consulta ="
-			SELECT form_id.id_empresa, razon_social, nombre AS nombre_formulario, descripcion AS descripcion_formulario, form_contenido_campos.id_form , form_contenido_campos.id_campo ,form_campos.campo_nombre
-			FROM form_datos, empresa, `form_campos` , form_contenido_campos , form_id
-			WHERE form_datos.id_campo = form_campos.id AND form_id.id_empresa = empresa.id AND`form_campos`.id = form_contenido_campos.id_campo AND form_contenido_campos.id_form = form_id.id AND ( campo_tipo ='12' OR campo_tipo ='13')
-			GROUP BY form_id.id_empresa,form_contenido_campos.id_form , form_contenido_campos.id_campo
-			ORDER BY razon_social,form_id.nombre
-			";
-		$sql=mysqli_query($link,$consulta);
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					//$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-					$cantidad = formulario_contar_registros("$row[id_form]","$row[id_campo]","$row[id_empresa]","");
-					$consulta_cantidad = $cantidad;
-					if ($consulta_cantidad > 0 ){$cantidad = "<div class='btn btn-default btn-xs ' onclick=\"xajax_mailer('seleccion','$row[id_form]','$row[id_campo]','$row[id_empresa]'); \" > Enviar $cantidad <span class='glyphicon glyphicon-envelope' aria-hidden='true'></span></div>";}
-					else{$cantidad ="";}
-					$opciones .="<li class='list-group-item'>$row[razon_social] / <strong>$row[nombre_formulario]</strong> / $row[campo_nombre]  $cantidad</li>";
-					}
-
-					$resultado="
-					<ul class='list-group'>
-						 $opciones
-					</ul>
-
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-	}
-
-
-
-	if($accion =="seleccion") {
-			$consulta ="
-			SELECT *
-			FROM form_datos
-			WHERE form_datos.id_campo = '".mysqli_real_escape_string($link,$campo)."'
-				AND form_datos.id_empresa = '".mysqli_real_escape_string($link,$empresa)."'
-				AND form_datos.form_id = '".mysqli_real_escape_string($link,$formulario)."'
-
-			GROUP BY contenido
-			ORDER BY contenido
-			";
-	$sql=mysqli_query($link,$consulta);
-	$cantidad_mensajes = mysqli_num_rows($sql);
-	$listado_campos = formulario_campo_semantico("nombre","$formulario",'','');
-	$nombre_lista =  remplacetas("form_id","id","$formulario","Nombre","");
-
-	$delay = 9;
-	$tiempo= ($cantidad_mensajes * $delay);
-	$tiempo = conversorSegundosHoras($tiempo);
-			$formato ="
-			<div class='container' id='div_formato'>
-				<form id='formato_mensaje' name='formato_mensaje'>
-				<label>Seleccione un campo para el personalizar el nombre</label>
-				<div style='max-height:150px; overflow:auto'>$listado_campos</div>
-					<br>
-					<div class='input-group'>
-						<span class='input-group-addon'>Asunto:</span>
-						<input class='form-control' id='asunto' name='asunto' placeholder='asunto del mensaje'>
-					</div>
-					<div class='form-group'>
-						<label for='mensaje'>Cuerpo del mensaje</label> <div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-						<textarea id='mensaje' name='mensaje' class='wysiwyg form-control' placeholder='Texto del mensaje'></textarea>
-					</div>
-					<input type='hidden' name='formulario' id='formulario' value='$formulario'>
-					<input type='hidden' name='campo' id='campo' value='$campo'>
-					<input type='hidden' name='empresa' id='empresa' value='$empresa'>
-					<input type='hidden' name='delay' id='delay' value='$delay'>
-
-					<div class='btn btn-warning pull-right' onclick=\"xajax_marcar('<div class=\'alert alert-warning\'><h2>Enviando $cantidad_mensajes Mensajes <small>El envío tardará $tiempo aproximadamente, se le enviará un correo cuando halla finalizado. </small></h2></div> ','div_formato');xajax_mailer('enviar',xajax.getFormValues('formato_mensaje'),'',''); \">Enviar</div
-					<div class='btn btn-success pull-right' onclick=\"xajax_mailer('preview',xajax.getFormValues('formato_mensaje'),'',''); \">Preview</div>
-					<br>
-				</form>
-				<div id='preview'></div>
-			</div>
-			<br>
-
-
-			";
-
-
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-					mysqli_data_seek($sql, 0);
-					$datos=array();
-					while( $row = mysqli_fetch_array( $sql ) ) {
-						$validar_email = validar_email("$row[contenido]");
-						$div="$row[control]";
-
-					$opciones .="<li class='list-group-item'>$row[contenido] $validar_email $row[control] <div id='$div'></div></li>";
-					}
-
-					$resultado="
-
-					<h3>$nombre_lista[0] [$formulario]</h3>
-					$formato
-					<ul class='list-group'>
-						 $opciones
-					</ul>
-
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-
-	}
-if($accion =="enviar" OR $accion =="preview" ) {
-	$id_campo = $formulario['campo'];
-	$campo_nombre = $formulario['nombre'];
-
-	$id_empresa = $formulario['empresa'];
-	$id_formulario = $formulario['formulario'];
-	$asunto = $formulario['asunto'];
-	$mensaje = $formulario['mensaje'];
-	$mensaje .="<hr><h4>Enviado desde <a href='https://tupale.co'>https://tupale.co / $id_formulario</a></h4>";
-	//$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-	$delay = $formulario['delay'];
-		$consulta ="
-			SELECT *
-			FROM form_datos
-			WHERE form_datos.id_campo = '".mysqli_real_escape_string($link,$id_campo)."'
-				AND form_datos.id_empresa = '".mysqli_real_escape_string($link,$id_empresa)."'
-				AND form_datos.form_id = '".mysqli_real_escape_string($link,$id_formulario)."'
-
-			GROUP BY contenido
-			ORDER BY contenido
-			";
-
-			$sql=mysqli_query($link,$consulta);
-
-		if($sql){
-				if (mysqli_num_rows($sql)!='0'){
-				//	mysqli_data_seek($sql, 0);
-					$id_empresa= "$_SESSION[id_empresa]";
-		$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","");
-								$headers = "MIME-Version: 1.0\r\n";
-								$headers .= "Content-type: text/html; charset=iso-utf-8\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";
-
-
-if($accion =="enviar") {
-
-
-					while( $row = mysqli_fetch_array( $sql ) ) {
-
-	$nombre = remplacetas('form_datos','form_id',"$id_formulario","contenido"," id_campo='$campo_nombre' AND control = '$row[control]'") ;
-	$nombre= $nombre[0];
-	//$nombre = "BEREMUNDO";//$nombre[0];
-//	eval("\$asunto_preview = \" $asunto \";");
-//	eval("\$mensaje_preview = \"$mensaje \";");
- $campos= array('{nombre}','{debug}');
- $remplazos= array("$nombre",'Hola');
-	 $asunto_preview = str_replace($campos,$remplazos, $asunto);
-	 $mensaje_preview = str_replace($campos,$remplazos, $mensaje);
-
-
-	$preview ="
-<h2>$asunto_preview</h2>
-
-<div>
-
-$mensaje_preview
-</div><hr>
-	";
-$envio = mail("$row[contenido]",$asunto_preview,"$mensaje_preview ","$headers");
-if($envio){ $cantidad++ ; $confirmacion .= "$row[contenido] ";}
-sleep($delay);
-					}
-mail("info@tupale.co","[ Envio completo $row[form_id] ] $asunto","$confirmacion $mensaje","$headers");
-
-				$respuesta->addAssign("preview","innerHTML","$preview");
-
-			return $respuesta;
-
-}
-$cantidad =0;
-			//		mysqli_data_seek($sql, 0);
-					while( $row = mysqli_fetch_array( $sql ) ) {
-							$nombre = remplacetas('form_datos','form_id',"$id_formulario","contenido"," id_campo='$campo_nombre' AND control = '$row[control]'") ;
-	$nombre= $nombre[0];
-	//$nombre = "BEREMUNDO";//$nombre[0];
-//	eval("\$asunto_preview = \" $asunto \";");
-//	eval("\$mensaje_preview = \"$mensaje \";");
- $campos= array('{nombre}','{debug}');
- $remplazos= array("$nombre",'Hola');
-	 $asunto_preview = str_replace($campos,$remplazos, $asunto);
-	 $mensaje_preview = str_replace($campos,$remplazos, $mensaje);
-
-
-	$preview ="
-<h2>$asunto_preview</h2>
-
-<div>
-
-$mensaje_preview
-</div><hr>
-	";
-					}
-				//	mail("info@tupale.co","[ Envio completo $row[form_id] ] $asunto","$confirmacion $mensaje","$headers");
-					$resultado="
-					<div class='alert alert-success'><h1>Mensajes Enviados, puede continuar.</h1></div>
-
-					";}
-				else { $resultado="<span class='text-danger'>No hay datos</span>";}
-					}
-				//	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-				//	return $respuesta;
-			$respuesta->addAssign("preview","innerHTML","$preview");
-
-			return $respuesta;
-	}
-
-
-			$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h1>Listas de correo $boton</h1>");
-			//$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("mailer");
-
-
-function formulario_permitidos($form_id,$usuario,$onchange,$accion){
-
-if($accion =="listado"){
-$link=Conectarse();
-				mysqli_set_charset($link, "utf8");
-				mysqli_real_escape_string($link,$usuario);
-				$consulta ="
-					SELECT * FROM `form_parametrizacion` WHERE tabla ='id_usuario' AND campo = '$usuario'
-					AND  descripcion ='autorizacion' ";
-				$sql=mysqli_query($link,$consulta);
-				if($sql){
-						if (mysqli_num_rows($sql)!='0'){
-							mysqli_data_seek($sql, 0);
-
-							while( $row = mysqli_fetch_array( $sql ) ) {
-					$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$row[opcion]",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-
-							$opciones .="<option value='$row[opcion]'> $nombre /$descripcion </option>";
-							}
-
-							$resultado="
-
-							<select class='form-control' onchange = \"$onchange \">
-							<option value=''> Seleccione </option>
-								$opciones
-
-							</select>
-
-							";}
-						else { $resultado="<span class='text-danger'>No hay formularios autorizados</span>";}
-							}
-return $resultado;
-}
-}
-
-
-function formulario_permisos_usuario($form_id,$usuario,$accion){
-
-if($accion =="listado"){
-$link=Conectarse();
-				mysqli_set_charset($link, "utf8");
-				mysqli_real_escape_string($link,$usuario);
-				$consulta ="
-					SELECT * FROM `form_parametrizacion` WHERE tabla ='id_usuario' AND campo = '$usuario'
-					AND  descripcion ='autorizacion' ";
-				$sql=mysqli_query($link,$consulta);
-				if($sql){
-					//	if (mysqli_num_rows($sql)!='0'){
-							mysqli_data_seek($sql, 0);
-							$opciones ="<tr><th class='text-center'>Formulario</th><th></th></tr>";
-							while( $row = mysqli_fetch_array( $sql ) ) {
-					$nombre = remplacetas('form_id',"id","$row[opcion]",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$row[opcion]",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-							$revocar= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','div_$row[id]'); \">
-									<i class='glyphicon glyphicon-trash'></i> Revocar
-								</div>";
-							$opciones .="<tr id='div_$row[id]'><td><strong>$nombre </strong> $descripcion </td><td>$revocar</td></tr>";
-							}
-
-							$resultado="
-
-							<table id='listado_permisos_linea' class='table table-condensed table-striped table-hover'>
-
-								$opciones
-								<div class='' ></div>
-							</table>
-
-							";
-					//	}
-							}
-return $resultado;
-}
-if($form_id =="") {
-	$listado = formulario_permisos_usuario("$form_id","$usuario","listado");
-	$listado_formularios = select_key('form_id,form_grupo','id','form_id.id','nombre',"xajax_formulario_permisos_usuario((this.value),'$usuario','grabar')","form_id.id_empresa = '$_SESSION[id_empresa]' AND form_id.id = form_grupo.id  ",'tipo_consulta');
-	$listado_formularios= "
-			<div class='input-group'>
-				<span class='input-group-addon'>
-					Permisos:
-				</span>
-				$listado_formularios
-			</div>
-			<div class='hidden' id='autorizacion_confimar'></div>
-			<div class='list-group' id='listado_permisos'>
-			$listado
-			</div>
-	";
-	return $listado_formularios;
-	}
-
-
-
-//	$resultado = "<li class='list-group-item'><div class='btn btn-danger btn-xs'><i class='glyphicon glyphicon-trash'></i> X </div> <strong>$nombre</strong> $descripcion</li>";
-	$respuesta = new xajaxResponse('utf-8');
-	if($accion =="grabar") {
-		$existe = remplacetas('form_parametrizacion','campo',"$usuario",'opcion',"opcion='$form_id' and  descripcion = 'autorizacion'") ;
-		if( $existe[0] == $form_id ) {
-		$respuesta->addAlert("El usuario ya está autorizado para usar ese formulario ");
-		return $respuesta;
-		}
-					$nombre = remplacetas('form_id',"id","$form_id",'nombre',"") ;
-					$nombre = $nombre[0] ;
-					$descripcion = remplacetas('form_id',"id","$form_id",'descripcion',"") ;
-					$descripcion = strip_tags($descripcion[0]);
-						$insertar = parametrizacion_linea('id_usuario',"$usuario","$form_id",'autorizacion','','','');
-						$revocar= "
-								<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','insertar','div_insertar'); \">
-									<i class='glyphicon glyphicon-trash'></i> Revocar
-								</div>";
-									$linea ="<tr id='div_insertar'><td><strong>$nombre nombre </strong> $descripcion </td><td>$revocar</td></tr>";
-			//$respuesta->addScript("xajax_parametrizacion_linea('id_usuario','$usuario','$form_id','autorizacion','autorizacion_confimar')");
-			//$actualizado = formulario_permisos_usuario("$form_id","$usuario","listado");
-	$respuesta->addAppend("listado_permisos_linea","innerHTML","$linea");
-	return $respuesta;
-
-	}
-
-
-
-
-
-$respuesta->addAssign("listado_permisos","innerHTML","$resultado");
-
-			return $respuesta;
-
-}
-$xajax->registerFunction("formulario_permisos_usuario");
-
-
-function adjuntar_basico($id){
-
-$formulario= '
-<script>
-/*jslint unparam: true */
-/*global window, $ */
-$(function () {
-    "use strict";
-    // Change this to the location of your server-side upload handler:
-    var url = "plugins/upload/server/php/";
-    $("#fileupload").fileupload({
-        url: url,
-        dataType: "json",
-      	param_names: "files_33",
-        done: function (e, data) {
-            $.each(data.result.files_33, function (index, file) {
-                $("<p/>").text(file.name).appendTo("#files_33");
-            });
-        },
-        progressall: function (e, data) {
-            var progress = parseInt(data.loaded / data.total * 100, 10);
-            $("#progress .progress-bar").css(
-                "width",
-                progress + "%"
-            );
-        }
-    }).prop("disabled", !$.support.fileInput)
-        .parent().addClass($.support.fileInput ? undefined : "disabled");
-});
-</script>
-  ';
-  $formulario .= "
-	<!-- 	UPLOAD  -->
-
-	 <!-- Button to select & upload files -->
-  <span class='btn btn-success fileinput-button'>
-    <span>Select files...</span>
-    <!-- The file input field used as target for the file upload widget -->
-    <input id='fileupload' type='file' name='files_33' multiple>
-  </span>
-
-
-  <!-- The global progress bar -->
-  <p>Upload progress</p>
-  <div id='progress' class='progress progress-success progress-striped'>
-    <div class='bar'></div>
-  </div>
-
-
-
-  <!-- The list of files uploaded -->
-  <p>Files uploaded:</p>
-  <ul id='files_33'></ul>
-
-
-
-	<!-- 	UPLOAD  -->
-
-";
-
-return $formulario;
-}
-
-
-function adjuntar($id){
-
-$formulario= '
-		 <script>
-
-
-/*jslint unparam: true, regexp: true */
-/*global window, $ */
-$(function () {
-    "use strict";
-    // Change this to the location of your server-side upload handler:
-    var url = "plugins/upload/server/php/",
-        uploadButton = $("<button/>")
-            .addClass("btn btn-primary")
-            .prop("disabled", true)
-            .text("Processing...")
-            .on("click", function () {
-                var $this = $(this),
-                    data = $this.data();
-                $this
-                    .off("click")
-                    .text("Abort")
-                    .on("click", function () {
-                        $this.remove();
-                        data.abort();
-                    });
-                data.submit().always(function () {
-                    $this.remove();
-                });
-            });
-    $("#fileupload").fileupload({
-        url: url,
-        dataType: "json",
-        autoUpload: false,
-        acceptFileTypes: /(\.|\/)(gif|jpe?g|png|pdf|txt|csv|odt|gpx)$/i,
-        maxFileSize: 999000,
-        //formData: [{ name: "custom_dir", value: "/var/www/images_secure/" }],
-        // 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),
-        previewMaxWidth: 100,
-        previewMaxHeight: 100,
-        previewCrop: true
-    }).on("fileuploadadd", function (e, data) {
-        data.context = $("<div/>").appendTo("#files");
-        $.each(data.files'.$id.', function (index, file) {
-            var node = $("<p/>")
-                    .append($("<span/>").text(file.name));
-            if (!index) {
-                node
-                    .append("<br>")
-                    .append(uploadButton.clone(true).data(data));
-            }
-            node.appendTo(data.context);
-
-        });
-    }).on("fileuploadprocessalways", function (e, data) {
-        var index = data.index,
-            file = data.files'.$id.'[index],
-            node = $(data.context.children()[index]);
-        if (file.preview) {
-            node
-                .prepend("<br>")
-                .prepend(file.preview);
-        }
-        if (file.error) {
-            node
-                .append("<br>")
-                .append($("<span class=\'text-danger\'/>").text(file.error));
-        }
-        if (index + 1 === data.files.length) {
-            data.context.find("button")
-                .text("Upload")
-                .prop("disabled", !!data.files.error);
-        }
-    }).on("fileuploadprogressall", function (e, data) {
-        var progress = parseInt(data.loaded / data.total * 100, 10);
-        $("#progress .progress-bar").css(
-            "width",
-            progress + "%"
-        );
-    }).on("fileuploaddone", function (e, data) {
-        $.each(data.result.files'.$id.', function (index, file) {
-            if (file.url) {
-                var link = $("<a>")
-                    .attr("target", "_blank")
-                    .prop("href", file.url);
-                $(data.context.children()[index])
-                    .wrap(link);
-            } else if (file.error) {
-                var error = $("<span class=\'text-danger\'/>").text(file.error);
-                $(data.context.children()[index])
-                    .append("<br> ")
-                    .append(error);
-            }
-        });
-    }).on("fileuploadfail", function (e, data) {
-        $.each(data.files'.$id.', function (index) {
-            var error = $("<span class=\text-danger\'/>").text("File upload failed.");
-            $(data.context.children()[index])
-                .append("<br>")
-                .append(error);
-        });
-    }).prop("disabled", !$.support.fileInput)
-        .parent().addClass($.support.fileInput ? undefined : "disabled");
-});
-  </script>
-  ';
-  $formulario .= "
-	<!-- 	UPLOAD  -->
-
-	 <!-- Button to select & upload files -->
-  <span class='btn btn-success fileinput-button'>
-    <span>Select files...</span>
-    <!-- The file input field used as target for the file upload widget -->
-    <input id='fileupload' type='file' name='files".$id."[]' multiple>
-  </span>
-
-
-  <!-- The global progress bar -->
-  <p>Upload progress</p>
-  <div id='progress' class='progress progress-success progress-striped'>
-    <div class='bar'></div>
-  </div>
-
-
-
-  <!-- The list of files uploaded -->
-  <p>Files uploaded:</p>
-  <ul id='files'></ul>
-
-
-
-	<!-- 	UPLOAD  -->
-
-";
-
-return $formulario;
-}
-
-
-function identificador_resaltado($id_empresa,$tipo) {
-
-$resaltado = remplacetas('form_parametrizacion','opcion','resaltado','descripcion',"id_empresa = '$id_empresa' ") ;
-	if($resaltado[0] !="") {
-	$resaltado = mostrar_identificador("$resaltado[0]","","resaltado",'',"");
-
-	}else{
-	$resaltado ="";
-
-	}
-
-return $resaltado;
-
-
-}
-
-function generar_acceso($identificador,$tipo,$datos){
-	$respuesta = new xajaxResponse('utf-8');
-$formulario = 	remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-$publico = remplacetas('form_id','id',"$formulario[0]",'publico',"") ;
-$permiso_actual = 	remplacetas('form_permisos','control',"$identificador",'permiso',"") ;
-$ahora = time();
-$un_dia = $ahora + 86400;
-$un_dia=date('Y-m-d' , $un_dia);
-	if($permiso_actual[0] !="") {
-	$vencimiento_permiso_actual = 	remplacetas('form_permisos','control',"$identificador",'vencimiento',"") ;
-	$fecha_vencimiento_permiso_actual = "Válido hasta: ".date ( "Y-m-d H:i:s" , $vencimiento_permiso_actual[0]);
-	$revocar ="
-				<div class='col-md-2'>
-					<div class='input-group '>
-						<div class='btn btn-danger btn-block' onClick=\"xajax_generar_acceso('$identificador','revocar','')\" >Revocar</div>
-					</div>
-				</div>";
-	}else {
-
-	$fecha_vencimiento_permiso_actual = "";
-	}
-
-
-
-
-
-
-
-if($tipo =="") {
-	if($publico[0] != '1') {
-		if($permiso_actual[0] !=="") {
-			$boton = "	<a class='btn btn-default btn-block btn-xs btn-warning'  onClick=\"xajax_generar_acceso('$identificador','consultar','')\">
-	 Cambiar acceso <i class='glyphicon glyphicon-unlock'></i></span></a>";
-		}
-		else{
-	$boton = "	<a class='btn btn-default btn-block btn-xs'  onClick=\"xajax_generar_acceso('$identificador','consultar','')\">
-	Generar acceso <i class='glyphicon glyphicon-lock'></i></span></a>";
-		}
-	}
-	else { $boton ="<span class='text-warning '>Contenido público <i class='glyphicon glyphicon-unlock'></i></span>";	}
-		return $boton;
-	}
-elseif($tipo=="consultar") {
-	$resultado ="
-
-		<div class='row'>
-			<div class='col-md-5'>
-				<div id='mostrar_permiso'>
-					<p>
-						<a href='i$identificador$permiso_actual[0]' target='_blank'>$permiso_actual[0]</a>
-						<br><small>$fecha_vencimiento_permiso_actual</small>
-
-					</p>
-				</div>
-
-			</div>
-			<div class='col-md-5'>
-				<div class='input-group '>
-					<input type='date' class='form-control' value='$un_dia' placeholder='Fecha de vencimiento' id='vencimiento' name='vencimiento'>
-					<span class='input-group-btn'>
-					<div class='btn btn-warning' onClick=\"xajax_generar_acceso('$identificador','crear',document.getElementById('vencimiento').value ); \" >Generar nuevo acceso</div>
-					</span>
-				</div>
-			</div>
-			$revocar
-		</div>
-
-	";
-
-}
-elseif($tipo=="crear") {
-	$permiso= rand().time();
-
-$consulta ="INSERT INTO `form_permisos` (`id`, `control`, `permiso`, `vencimiento`, `creacion`, `id_usuario`)
-					VALUES (NULL, '$identificador', SHA1('$permiso'), UNIX_TIMESTAMP('$datos'), CURRENT_TIMESTAMP, '$_SESSION[id]');";
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($permiso_actual[0] !="") {
-	$borrar =" DELETE FROM form_permisos WHERE control='".mysqli_real_escape_string($link,$identificador)."' LIMIT 1";
-	$consulta_borrar =mysqli_query($link,$borrar);
-}
-	$consulta =mysqli_query($link,$consulta);
-	///xajax_generar_acceso('$identificador','consultar','')
-	$respuesta->addscript("xajax_generar_acceso('$identificador','consultar','')");
-	return $respuesta;
-
-}
-elseif($tipo=="revocar") {
-
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-if($permiso_actual[0] !="") {
-	$borrar =" DELETE FROM form_permisos WHERE control='".mysqli_real_escape_string($link,$identificador)."' LIMIT 1";
-	$consulta_borrar =mysqli_query($link,$borrar);
-	$revocado="<h1 class='alert-danger text-center'>El permiso fue revocado</h1>";
-	$respuesta->addAssign("mostrar_permiso","innerHTML","$revocado");
-	return $respuesta;
-}
-
-
-}
-else {}
-
-
-
-$regresar =" <a class='btn btn-default' onclick=\"xajax_consultar_formulario('$formulario[0]','10','','modal'); \"><i class='glyphicon glyphicon-arrow-left'></i> Regresar </a>";
-
-			$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;
-return $respuesta;
-}
-$xajax->registerFunction("generar_acceso");
-
-
-
-
-
-function resumen_identificador($identificador,$id_turno,$area,$formulario){
-
-if($formulario =="boton") {
-	$boton = "	<a class='btn btn-default  btn-xs'  onClick=\"xajax_resumen_identificador('$identificador','$id_turno','','')\"><i class='glyphicon glyphicon-eye-open'></i> Estructura</a>";
-		return $boton;
-	}
-$respuesta = new xajaxResponse('utf-8');
-$areas = mostrar_areas("$identificador",$id_turno,$autorizado);
-
-$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("muestra_form","innerHTML","$areas");
-			$formulario = 	remplacetas('form_datos','control',"$identificador",'form_id',"") ;
-			$regresar =" <a class='btn btn-default' onclick=\"xajax_consultar_formulario('$formulario[0]','10','','modal'); \"><i class='glyphicon glyphicon-arrow-left'></i> Regresar </a>";
-			$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;
-return $respuesta;
-}
-$xajax->registerFunction("resumen_identificador");
-
-
-
-
-function mostrar_areas($identificador,$id_turno,$autorizado,$tipo){
-	$id="";
-	$cuadro_area="";
-	$area="";
-	$json_array="";
-	$valor_actual ="";
-		if(strlen($identificador) > 32) {
-	$identificador_original= $identificador;
-	$key =  substr($identificador, 32, $length = 40);
-	$identificador =  substr($identificador, 0, $length = 32);
-	}else {$identificador_original = $identificador;}
-//// seguridad ////
-
-
-	$control = mysql_seguridad($identificador);
-	if($id =="") {
-		$id_seguridad = remplacetas('form_datos','control',$control,'form_id','') ;
-		$publico = remplacetas('form_id','id',$id_seguridad[0],'publico','') ;
-		$id_seguridad = $id_seguridad[0];
-
-	}else{
-		$publico = remplacetas('form_id','id',$id,'publico','') ;
-		$id_seguridad = $id;
-	}
-	if( isset($_SESSION['id_empresa']  )) { $id_empresa = $_SESSION['id_empresa'];}else { $id_empresa =""; }
-		$empresa_seguridad = remplacetas('form_id','id',$id_seguridad,'id_empresa','') ;
-		if($publico[0] != "1" ){
-		$permiso_actual = 	remplacetas('form_permisos','control',"$control",'permiso',"") ;
-		$permiso_vencimiento = 	remplacetas('form_permisos','control',"$control",'vencimiento',"") ;
-		if($permiso_actual[0] =="") {$sigue_restringido = 1;}
-		elseif($permiso_actual[0] != $key) {$sigue_restringido = 1;}
-		elseif($permiso_vencimiento[0] < time()) {$sigue_restringido = 1;}
-		else{$sigue_restringido ="";}
-
-		}
-
-		if($publico[0] != "1" and ( $id_empresa != $empresa_seguridad[0] ) AND $sigue_restringido !="" ) {
-		$resultado ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados </small>
-		<i class='glyphicon glyphicon-lock'></i></h1></div>";
-		return $resultado;
-
-																					}
-//// seguridad ////
-$link=Conectarse();
-mysqli_set_charset($link, "utf8");
-
-$listado_atenciones ="";
-
-	$sql_areas=" 	SELECT DISTINCT(form_datos.id_campo), form_campos.campo_area ,form_areas.nombre as consulta_area_nombre, form_datos.id
-						FROM form_datos, form_campos, form_areas
-						WHERE form_datos.control = '$identificador'
-						AND form_campos.id = form_datos.id_campo
-						AND form_datos.contenido != ''
-						AND	form_campos.campo_area = form_areas.id
-						GROUP BY form_campos.campo_area
-						ORDER BY form_areas.orden
-													";
-	$consulta_areas=mysqli_query($link,$sql_areas);
-if (mysqli_num_rows($consulta_areas)!='0'){/// si hay datos en la consulta
-while( $row = mysqli_fetch_array( $consulta_areas ) ) {//// se clasifica por area
-$cuadro_area .="<div class=''> <label>$row[consulta_area_nombre]</label >";
-$area = $row['campo_area'];
-$id_consulta_datos = $row['id'];
-/// los campos de cada area
-///se buscan los datos de la consulta
-$sql_datos_consulta ="
-		SELECT DISTINCT(form_datos.id_campo)AS id_campo ,form_datos.id,
-				form_datos.contenido, form_campos.campo_nombre ,
-				form_campos.campo_descripcion ,
-				form_datos.form_id,
-				form_datos.control,
-				form_datos.orden
-		FROM form_datos, form_campos
-		WHERE form_datos.control = '$identificador'
-		AND form_campos.id = form_datos.id_campo
-		AND form_campos.campo_area = '$area'
-		GROUP BY id_campo,form_datos.orden
-		ORDER BY form_datos.id_campo, form_datos.orden ASC, timestamp DESC
-
-					";
-
-$datos_consulta=mysqli_query($link,$sql_datos_consulta);
-//$estado_turno = usuario_datos_consultar($id_turno,'turnos_usuario','estado');
-if (mysqli_num_rows($datos_consulta)!='0'){
-
-$json_array = array();
-$listado_atenciones = "
-								<table id='tabla_estructura_$identificador' style='' class='tabla_datos table table-hover table-striped table-bordered table-condensed table-responsive'  >
-								 ";
-
-while( $row = mysqli_fetch_array( $datos_consulta ) ) {
-
-	//// PRIVACIDAD
-			$privado = remplacetas('form_parametrizacion','campo',"$row[form_id]",'opcion'," tabla='form_id' AND descripcion ='$row[id_campo]' AND opcion REGEXP '^privacidad:' ") ;
-			$privacidad = $privado;
-			$privado = explode(":",$privado[0]);
-			if(isset($privado[1])) {
-			$privado = $privado[1];}
-/// PRIVACIDAD
-///if($privado !='1') {
-
-	if( !is_null($row['orden'])) { $orden_multiple ="and orden ='$row[orden]' ";}else { $orden_multiple ="";}
-		$contenido = 	remplacetas('form_datos','form_id',"$row[form_id]",'contenido'," id_campo ='$row[id_campo]' and control ='$identificador' $orden_multiple ") ;
-		if($contenido[0] !="" AND $privado !="1") {
-			$tipo_campo = remplacetas('form_campos','id',"$row[id_campo]",'campo_tipo',"") ;
-			if($tipo_campo[0] =="15" ) {$imagen ="<img style='' class='lazy img img-responsive imagen_estructurada' src='$_SESSION[site]milfs/images/secure/?file=300/$contenido[0]'> "; $contenido[0]="";}else{$imagen ="";}
-			if($tipo_campo[0] =="6" ) {$contenido[0] =imprimir_buscador_campo("$row[id_campo]",$contenido[0]) ; }
-			if($tipo_campo[0] =="29" ) {$contenido[0] ="<img class='img img-responsive'  src='$contenido[0]'> "; }//$contenido="<img class='img img-responsive'  src='$contenido'>";
-			if($tipo_campo[0] =="31" ) {
-				$link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
-				$contenido[0] = "<a id='link_$row[id_campo]_$row[orden]' href='$link_url' target='_blank' >$contenido[0]</a>";				
-				}
-			if($tipo_campo[0]=='10'){
-				$render = relacion_render("$row[form_id]","$row[id_campo]",$contenido[0],'5','');
-			 $contenido[0] = "$valor_actual";}
-			else {$render=html_entity_decode($contenido[0]);}
-
-			 
-$json_array[$row['campo_nombre']."_titulo"] = "$contenido[0]";
-			//imprimir_buscador_campo($id_campo,$valor)
-$listado_atenciones .= "<tr >
-										<td  class='small'  width='25%' title=' ($row[id_campo]) ".$row['campo_descripcion']." '> ".$row['campo_nombre'].": </td>
-										<td style=' word-wrap: break-word;'>$imagen <strong class='' style=' word-wrap: break-word;'> $render </strong> </td>
-									</tr>";
-								}else { $listado_atenciones .= "";}
-															}/// fin d el array para datos de la consulta
-
-$listado_atenciones = "<div class='contenedor_estructura'>$listado_atenciones</table></div>";
-
-										} else { }/// fin de si hay resultados en $datos_consulta
-
-/// fin de los campos de cada area
-$cuadro_area .=" $listado_atenciones </div> ";
-															}
-
-
-										}		else{$listado_atenciones.=" <tr><td>No hay resultados 0020</td></tr>"; $cuadro_area ="$listado_atenciones ";}
-
-//																	}///fin de las atenciones mostradas por timestamp
-
-///												}/// fin de las atenciones en ese turno
-
-///											else{$listado_atenciones.="";}
-/// fin de la clasificacion de atenciones por timestamp
-
-//$nombre_paciente = usuario_datos_consultar($id_usuario,'usuario','nombre_completo');
-$nuevo_select = "<h2>Resumen de atenciones </h2>
-
-
-
-$area
-
-
-
-";
-if($tipo == "api" ) {
-//print_r($sql_datos_consulta);
-return $json_array;
-}
-else{
-return $cuadro_area;
-	}
-}
-
-
-
-
-function borrar_linea($tabla,$id,$div){
-	if($usuario =="") {
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$id);
-	mysqli_real_escape_string($link,$tabla);
-	$consulta ="DELETE FROM $tabla WHERE `id` = '$id' AND id_empresa = '$_SESSION[id_empresa]' LIMIT 1";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){ $resultado ="<div class='alert alert-success text-center '>El registro fue eliminado</div>"; }
-	else { $resultado ="<div class='alert alert-warning text-center '>No se pudo eliminar el registro</div>"; }
-	}
-	if($div =="") {
-		return ;
-	}else{
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-	}
-
-
-}
-$xajax->registerFunction("borrar_linea");
-
-
-
-function autorizar_usuarios($usuario,$grupo,$accion){
-	if($usuario =="") {
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$usuario);
-	$consulta ="
-		SELECT *, form_parametrizacion.id as id, usuarios.id as usuario FROM `form_parametrizacion`, usuarios WHERE form_parametrizacion.campo = usuarios.id
-		AND  form_parametrizacion.id_empresa ='$_SESSION[id_empresa]' AND descripcion ='autorizacion' ORDER BY p_nombre ASC";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				$opciones ="<tr><th>Nombres</th><th>Email</th><th>Rol</th><th>Acción</th></tr>";
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$rol ="
-				<div id='autorizacion_confimar_$row[id]'>
-					<select class='form-control'  onchange= \"
-							xajax_borrar_linea('form_parametrizacion','$row[id]','borrar_$row[id]')
-							xajax_parametrizacion_linea('id_empresa','$row[usuario]',(this.value),'autorizacion','autorizacion_confimar_$row[id]') \">
-						<option value= '$row[opcion]' selected >".ucfirst ($row['opcion'])."</option>
-						<option value= 'editor'>Editor</option>
-						<option value= 'administrador'>Administrador</option>
-					</select></div><div style='display:none;' id='borrar_$row[id]'></div>
-				";
-				$revocar= "
-					<div class='btn btn-default btn-danger btn-xs' onclick=\"xajax_borrar_linea('form_parametrizacion','$row[id]','div_$row[id]'); \">
-						<i class='glyphicon glyphicon-trash'></i> Revocar
-					</div>";
-				$opciones .="<tr id='div_$row[id]'><td>$row[p_nombre] $row[p_apellido] </td><td>$row[email]</td><td>$row[opcion]</td><td>$revocar</td></tr>";
-				}
-
-				$resultado="
-
-				<table class='table table-condensed table-striped table-hover'>
-
-					$opciones
-				</table>
-
-				";
-			}
-				}
-		$resultado = "
-				<div id='div_autorizaciones'></div>
-				<h2>Gestión de usuarios</h2>
-		$resultado
-				<div class='input-group'>
-					<span class='input-group-addon'>Autorizar usuario por Email</span>
-					<input type='email' class='form-control' id='email_autorizacion' placeholder='Escriba el email del usuario que desea autorizar'>
-					<span class='input-group-btn'>
-					<div class='btn btn-warning' onclick =\"xajax_autorizar_usuarios(document.getElementById('email_autorizacion').value,'editor','autorizar'); \">Autorizar</div>
-					</span>
-				</div>
-				<div id='div_autorizacion_confimar'></div>
-				<div id='autorizacion_confimar'></div>
-
-		";
-	}else {
-	$respuesta = new xajaxResponse('utf-8');
-	$verifica = 	remplacetas('usuarios','email',"$usuario",'id',"") ;
-	if($verifica[0] =="") {
-		$resultado ="<div class='alert alert-danger'><h2>El usuario <strong>$usuario</strong> no está registrado  $verifica[0]</h2></div>";
-		 $respuesta->addAssign("div_autorizacion_confimar","innerHTML","$resultado");
-	}
-	else {
-	 //xajax_parametrizacion_linea('id_empresa','campo','opcion','descripcion','DIV');
-	 //parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-	  $respuesta->addScript("xajax_parametrizacion_linea('id_empresa','$verifica[0]','editor','autorizacion','autorizacion_confimar')");
-	 $resultado ="<div class='alert alert-success'><h2>Se agregó el usuario <strong>$usuario</strong> <div id='div_autorizacion_confimar'></div></h2></div>";
-	 $respuesta->addAssign("div_autorizacion_confimar","innerHTML","$resultado");
-
-
-
-	}
-	return $respuesta;
-	}
-
-
-return $resultado;
-}
-$xajax->registerFunction("autorizar_usuarios");
-
-function cambiar_empresa($id_usuario,$id_empresa) {
-$select = "";
-
-	$principal = 	remplacetas('usuarios','id',$id_usuario,'id_empresa',"") ;
-	$principal_nombre = 	remplacetas('empresa','id',$principal[0],'razon_social',"") ;
-if($id_empresa !="") {
-	$respuesta = new xajaxResponse('utf-8');
-	if($id_empresa=="principal") {
-
-
-		$_SESSION[id_empresa] = "$principal[0]";
-		$_SESSION['grupo'] = "1";
-		$respuesta->addRedirect("e$principal[0]");
-		$respuesta->addAssign("div_cambiar_empresa","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-	$revisar_usuario = remplacetas('form_parametrizacion','campo',"$id_usuario",'opcion'," tabla='id_empresa' and  descripcion = 'autorizacion'") ;
-	if($revisar_usuario[0]=="") {
-		$resultado ="<div class='alert alert-danger text-center'><h2>No tiene autorizacion </h2>";
-	}else{
-		$_SESSION[id_empresa] = "$id_empresa";
-		$_SESSION['grupo'] = "$revisar_usuario[0]";
-	}
-			$respuesta->addAssign("div_cambiar_empresa","innerHTML","$resultado");
-			$respuesta->addRedirect("e$id_empresa");
-			return $respuesta;
-}
-
-
-$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$id_usuario);
-	$consulta ="SELECT empresa.id, razon_social, opcion FROM form_parametrizacion , empresa
-	WHERE form_parametrizacion.id_empresa = empresa.id AND `campo` = '$id_usuario' AND descripcion ='autorizacion' ORDER BY razon_social";
-
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				$opciones ="<option value='principal' >$principal_nombre[0]</option>";
-				while( $row = mysqli_fetch_array( $sql ) ) {
-					if($_SESSION['id_empresa'] == $row[id]) { $selected='selected';}else{ $selected='';}
-				$opciones .="<option value='$row[id]' $selected >$row[razon_social]</option>";
-				}
-
-				$select="<div id='div_cambiar_empresa'></div>
-							<select onChange=\"xajax_cambiar_empresa('$id_usuario',(this.value)); \" class='form-control ' id='cambiar_empresa' class='form_control'>$opciones</select>";
-			}
-
-	}
-	return $select;
-
-
-}
-$xajax->registerFunction("cambiar_empresa");
-
-
-function clonar_identificador($control){
-		$nuevo_control = md5(rand(1,99999999).microtime());
-		$ip =  obtener_ip();
-		$graba_ip = "INET_ATON('".$ip."') ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$control);
-	$consulta="SELECT * FROM form_datos WHERE control ='$control'";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$values .= "('$row[id_campo]','$row[form_id]','$row[proceso]', '$row[orden]', '$_SESSION[id]', '$row[id_empresa]','".mysqli_real_escape_string($link,$row['contenido'])."',UNIX_TIMESTAMP(),$graba_ip, '$nuevo_control'),";
-				}
-				$values = substr($values, 0, -1);
-				$values = "(`id_campo`,	`form_id`, `proceso`, `orden`, `id_usuario`,`id_empresa`,`contenido`,`timestamp`,`ip`,`control`) VALUES  $values ";
-			}
-	$consulta_insertar_campos = "INSERT INTO form_datos $values ";
-	$sql_insert_campos=mysqli_query($link,$consulta_insertar_campos);
-	}
-			$respuesta = new xajaxResponse('utf-8');
-			$resultado ="
-				<div class='alert alert-success'>
-					<p><i class='glyphicon glyphicon-smile-o'></i> El registro fue clonado a $nuevo_control <br><b>Por favor actualice esta vista</b></p>
-				</div>
-					";
-			//$respuesta->addAlert("EL REGISTRO SE CLONO $nuevo_control");//<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','$registros','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-			//$resultado=" $consulta // $consulta_insertar_campos ";
-			$respuesta->addAssign("clonar_$control","innerHTML","$resultado");
-			return $respuesta;
-
-								}
-$xajax->registerFunction("clonar_identificador");
-
-
-
-function cerrar_sesion(){
-
-			session_destroy();
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addRedirect("");
-			return $respuesta;
-
-								}
-$xajax->registerFunction("cerrar_sesion");
-
-
-function listado_entradas($formulario,$registros){
-$w_campo = "";
-$resultado = "";
-$listado = "";
-
-	$campo_titulo = remplacetas('form_parametrizacion','campo',$formulario,'descripcion'," tabla='form_id' and  opcion = 'titulo'") ;
- if($campo_titulo[0] !="") { $w_campo ="AND id_campo='$campo_titulo[0]' "; $w_nombre_campo =" id_campo='$campo_titulo[0]' ";  }
-$consulta = "SELECT * FROM form_datos WHERE  form_id='$formulario' $w_campo GROUP BY control  ORDER BY id DESC LIMIT $registros ";
-$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);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$contenido =strip_tags($row['contenido']);
-	if($campo_titulo[0] !="") {
-		$nombre = remplacetas_orden('form_datos','control',$row['control'],'contenido',"  $w_nombre_campo " ,"ORDER BY timestamp DESC") ;
-	}else {$nombre[0] = $contenido; }
-
-	$maximo ="80";
-	$size= strlen($contenido);
-	if($size > $maximo) {
-	$contenido =substr($contenido,0,$maximo)."... ";
-	}
-	else{
-	$contenido = $contenido;
-	}
-	///href='../d$row[control]'
-	$listado .= "
-					<li class='list-group-item' ><a  class='btn btn-link '  onclick =\"xajax_formulario_embebido_ajax('','$formulario','$row[control]','edit') \"  target='nuevo'> $nombre[0]</a></li>
-
-							";
-
-}
-
-$resultado= "
-	<ul class='list-group'>
-		$listado
-	</ul>";
-}
-
-
-return $resultado;
-
-}
-$xajax->registerFunction("listado_entradas");
-
-
-function panel_aplicaciones($tipo,$empresa,$div){
-$resultado = "";
-$listado = "";
-
-	$registros='10';
-	if($empresa=="" AND $_SESSION['id'] !="") { $w_empresa ="AND propietario = '$_SESSION[id]' ";}
-	elseif($empresa=="" ) { $w_empresa ="AND id_empresa = '$_SESSION[id_empresa]' ";}
-	else{ $w_empresa ="AND id_empresa = '$empresa' ";}
-
-$consulta = "SELECT * FROM form_id WHERE   activo='$tipo' $w_empresa  ORDER BY id 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);
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		$entradas = listado_entradas($row['id'],"$registros");
-	//href='../g$row[id]'
-	$listado .= "
-
-					<div class='panel panel-default'>
-						<div class='panel-heading' role='tab' id='tab_$row[id]'>
-						<h3>".strip_tags($row['nombre'])." <small>ID $row[id]</small></h3>
-							<a
-								data-toggle='collapse'
-								role='button'
-								data-parent= '#listado_aplicaciones_disponibles'
-								href='#collapse_$row[id]'
-								aria-expanded='false'
-								aria-controls='collapse_$row[id]'
-							 	class='collapsed btn btn-default'
-							 	>Mostrar últimos $registros</a>
-							 	<a class='btn btn-default'  target='nuevo' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Nueva entrada</a>
-							<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','$registros','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-						</div>
-						<div id='collapse_$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='tab_$row[id]'>
-							<div class='panel-body'>
-							$entradas
-							</div>
-						</div>
-					</div>
-
-							";
-
-}
-
-$resultado= "
-		<div class='btn btn-default btn-xs pull-right' onclick=\"xajax_limpia_div('div_panel_aplicaciones'); \" >Cerrar (X)</div>
-		<h2>Aplicaciones disponibles</h2>
-			<div class='panel-group' id='listado_aplicaciones_disponibles' tole='tablist' aria-multiselectable='true'>
-			$listado
-			</div>
-
-
-	<br>";
-}
-if($div =="") {
-	$cambiar_empresa = cambiar_empresa($_SESSION['id'],'');
-$boton="
-<div style='max-width:800px;' class='container-fluid noprint  $no_mostrar '>
-	$cambiar_empresa
-	<div class='btn-group form-inline' role='group' aria-label='botonera-administracion'>
-		<div onclick=\"xajax_panel_aplicaciones('$tipo','$empresa','div_panel_aplicaciones'); \" class='btn btn-default btn-xs'>Editor</div>
-		<a href='milfs/' class='btn btn-default btn-xs'>Des-administrador</a>
-		<a class='btn btn-default btn-xs' onclick=\"xajax_cerrar_sesion(); \">$_SESSION[username] $_SESSION[equipo] Salir <i class='glyphicon glyphicon-log-out '></i></a>
-	</div>
-</div>
-			<div class='container-fluid' id='div_panel_aplicaciones' style='max-height:500px; overflow:auto;'></div>";
-$resultado="$boton";
-return $resultado;
-}else {
-
-$respuesta = new xajaxResponse('utf-8');
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-		}
-}
-$xajax->registerFunction("panel_aplicaciones");
-
-
-function asistente_aplicaciones($accion,$id,$nombre,$descripcion){
-$div = "asistente_aplicacion";
-$empresa_asistente ="3";
-$respuesta = new xajaxResponse('utf-8');
-	$nombre_original = remplacetas('form_id',"id","$id",'nombre',"") ;
-	$nombre_original = $nombre_original[0] ;
-
-	$descripcion_original = remplacetas('form_id',"id","$id",'descripcion',"") ;
-	$descripcion_original = strip_tags($descripcion_original[0]);
-
-	$encabezado ="
-		<h2 class='text-center'>$nombre</h2>
-		<h3>$descripcion</h3>
-		<p class='text-center'>$nombre_original</p>
-	";
-
-	if($accion =="" ) {
-	$resultado= "
-		<br>
-		<div id='$div' class='jumbotron'>
-		<div class='center-block btn btn-success' onclick=\"xajax_asistente_aplicaciones('listado','','','');\"; ><H3><i class='glyphicon glyphicon-magic'></i> CREA TU APLICACIÓN EN 3 PASOS</H3></div>
-		</div>";
-		return $resultado;
-	}
-	elseif($accion=='listado') {
-		if(!isset($_SESSION['id']) AND !isset($_SESSION['control_usuario_milfs'])  ) {
-
-			$habilitado="";
-			$disable ="disabled";
-			$aviso ="<div class='text-center alert alert-warning'><h2><i class='glyphicon glyphicon-exclamation-triangle'></i><br>Por favor ingresa o regístrate para empezar a crear tu aplicación.</h2></div>";
-
-		}
-		else{
-			$validar_email = verificacion_email("$_SESSION[nombre_usuario_milfs]",'','verificar');
-			if($validar_email =="" and !isset($_SESSION[id])) {
-							$aviso ="<div class='text-center alert alert-warning'><h2><i class='glyphicon glyphicon-exclamation-triangle'></i><br>Por <strong>verifica tu email</strong> para empezar a crear tu aplicación.</h2></div>";;
-				$habilitado="";
-				$disable ="disabled";}
-			else {
-			$aviso="<h2>Elige un tipo de aplicación</h2>";
-			$habilitado="1";
-			}
-		}
-		$consulta = "
-			SELECT form_id.id, nombre,descripcion FROM form_id, form_grupo
-			WHERE  form_id.id = form_grupo.id AND form_id.id_empresa = '$empresa_asistente' AND form_grupo.grupo = 'Publico'
-			ORDER BY nombre ASC ";
-		$link=Conectarse();
-			mysqli_set_charset($link, "utf8");
-			mysqli_real_escape_string($link,$consulta);
-		$sql=mysqli_query($link,$consulta);
-			if (mysqli_num_rows($sql)!='0'){
-				while( $row = mysqli_fetch_array( $sql ) ) {
-					if($habilitado=="1") {$onclick="onclick=\"xajax_asistente_aplicaciones('nombre','$row[id]','','');\";";}
-					else{$onclick="onclick=\"alert('Por favor ingresa o regístrate para empezar a crear tu aplicación.')\";";}
-					$listado .= "
-									<li class='list-group-item' >
-										<blockquote class='text-$alerta'>
-											<button $disable  $onclick class='btn btn-primary btn-block'>".strip_tags($row['nombre'])."</button>
-											<footer>".strip_tags($row['descripcion'])." </footer>
-
-										</blockquote>
-									</li>";
-
-				}
-			$resultado ="
-			$aviso
-
-			$listado";
-			}
-	}
-	elseif($accion=='nombre') {
-		$resultado ="
-		$encabezado
-		<div id='nombre_aplicacion_input' class='input-group text-center' style='width:100%'>
-			<label for='nombre_aplicacion' class='sr-only' >Pon un nombre a tu aplicación</label>
-			<input value='$nombre' id='nombre_aplicacion' type='text' class='text-center form-control input-lg' placeholder='Pon un nombre a tu aplicación'>
-		</div>
-		<br>
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='descripcion_aplicacion' name='descripcion_aplicacion' value='$descripcion'>
-			<div onclick=\"xajax_asistente_aplicaciones('listado','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div onclick=\"xajax_asistente_aplicaciones('descripcion','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-right' >SIGUIENTE <i class='glyphicon glyphicon-arrow-right'></i> </div>
-			<div id='asistente_aviso'></div>
-		</div>
-
-
-		";
-
-	}
-	elseif($accion=='descripcion') {
-		if($nombre=="") {
-			$aviso="<span class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor pon un nombre a tu aplicación </span>";
-		$respuesta->addAssign("nombre_aplicacion_input","className"," input-group has-error text-center ");
-		$respuesta->addAssign("asistente_aviso","innerHTML","$aviso");
-		return $respuesta;
-
-		}
-		$resultado ="
-		$encabezado
-		<div id='descripcion_aplicacion_input' class='input-group' style='width:100%'>
-			<label for='descripcion_aplicacion' class='sr-only' >Describe tu aplicación</label>
-			<br><div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-			<textarea type='text' id='descripcion_aplicacion' class='wysiwyg form-control input-lg' placeholder='Describe a tu aplicación'>$descripcion</textarea>
-		</div>
-		<br>
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='nombre_aplicacion' name='nombre_aplicacion' value='$nombre'>
-			<div onclick=\"xajax_asistente_aplicaciones('nombre','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div onclick=\"xajax_asistente_aplicaciones('grabar','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-right' >SIGUIENTE <i class='glyphicon glyphicon-arrow-right'></i> </div>
-			<div id='asistente_aviso'></div>
-		</div>
-
-
-		";
-
-	}
-	elseif($accion=='grabar') {
-		if($descripcion=="") {
-			$aviso="<span class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor describe tu aplicación </span>";
-		$respuesta->addAssign("descripcion_aplicacion_input","className"," input-group has-error text-center ");
-		$respuesta->addAssign("asistente_aviso","innerHTML","$aviso");
-		return $respuesta;
-
-		}
-		$resultado=" $encabezado
-		<div class='input-group text-center' style='width:100%'>
-			<input type='hidden' id='nombre_aplicacion' name='nombre_aplicacion' value='$nombre'>
-			<input type='hidden' id='descripcion_aplicacion' name='descripcion_aplicacion' value='$descripcion'>
-			<div onclick=\"xajax_asistente_aplicaciones('descripcion','$id',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value);\";  class='btn btn-success btn-lg pull-left' ><i class='glyphicon glyphicon-arrow-left'></i> ANTERIOR</div>
-			<div  onclick = \"xajax_clonar_formulario('$id','$_SESSION[id_empresa]',document.getElementById('nombre_aplicacion').value,document.getElementById('descripcion_aplicacion').value,'aplicacion'); \" class='btn btn-success btn-lg pull-right' ><i class='glyphicon glyphicon-floppy-disk'></i> GRABAR </div>
-		</div>
-
-		";
-	}
-	else {}
-
-
-
-
-
-$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-
-}
-$xajax->registerFunction("asistente_aplicaciones");
-
-
-function mostrar_interacciones($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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-
-						</blockquote>
-					</li>";
-
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-
-			<ul class='list-group'>
-				$listado
-			</ul>
-
-	</div>";
-}else{
-$resultado="<div class='alert alert-danger'><h2>Aún no hay interacciones que mostrar. </h2></div>";
-
-}
-$respuesta = new xajaxResponse('utf-8');
-
-			$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-			$respuesta->addAssign("modal_landing","className","modal-dialog modal-xs");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h2>$accion <small>$_SESSION[nombre_usuario_milfs]<small> </h2> ");
-
-			$respuesta->addScript("$('#muestraInfo').removeClass('fade').modal('hide')");
-			$respuesta->addScript("$('#muestraInfo').modal('toggle')");
-
-
-			return $respuesta;
-
-
-
-}
-$xajax->registerFunction("mostrar_interacciones");
-
-
-function contar_interacciones($identificador,$tipo,$usuario,$id_form){
-	$resultado ="";
-	if($usuario !=""){ $w_usuario = " AND usuario = '$usuario'";}
-	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 distinct(id) as cantidad FROM form_interacciones WHERE identificador !='' $w_identificador $w_tipo $w_usuario $w_form ";
-$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");
-}
-//$resultado .= " $consulta";
-return $resultado;
-}
-
-function interaccion_identificador($identificador,$accion,$tipo) {
-$revisar_interacciones="";
-
-
-
-
-$respuesta = new xajaxResponse('utf-8');
-	$empresa =  remplacetas("form_datos","control","$identificador","id_empresa","");
-
-	$id_empresa = $empresa[0];
-
-	if(is_array($identificador)) {
-	$identificador_array= $identificador;
-	$tipo=$identificador['tipo'];
-	$mensaje=$identificador['texto_interaccion'];
-	$nuevo_identificador=$identificador['identificador'];
-	$id_formulario =  remplacetas("form_datos","control","$nuevo_identificador","form_id","");
-	$id_form = $id_formulario[0];
-	$empresa =  remplacetas("form_datos","control","$nuevo_identificador","id_empresa","");
-	$id_empresa = $empresa[0];
-		$ip =  obtener_ip();
-		$graba_ip = "INET_ATON('".$ip."') ";
-
-		$link=Conectarse();
-
-	mysqli_set_charset($link, "utf8");
-	$mensaje=strip_tags($mensaje) ;
-	mysqli_real_escape_string($link,$mensaje);
-	if($_SESSION["id"] !="") { $usuario="MILF-$_SESSION[id]";}else{ $usuario = "$_SESSION[control_usuario_milfs]"; }
-			$consulta="INSERT INTO form_interacciones SET id_form='$id_form' , mensaje='".mysqli_real_escape_string($link,$mensaje)."' ,estado='0' ,identificador='$nuevo_identificador', tipo='$tipo',ip=$graba_ip,usuario='$usuario' ";
-	mysqli_real_escape_string($link,$consulta);
-	$sql=mysqli_query($link,$consulta);
-
-	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 <strong>$tipo</strong> 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 <stron><a href='https://$web[0]/I$nuevo_identificador'>$nombre_formulario[0]</a></strong> 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] ".$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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $email[0]</h2>"; }else {$exito .="<span class='text-danger'><i class='glyphicon glyphicon-meh-o'></i> Error enviando correo</span>";}
-
-
-		$div = "".$tipo."_cantidad_$nuevo_identificador";
-		$cantidad = contar_interacciones("$nuevo_identificador","$tipo","");
-		$resultado="<div class='alert alert-success'><h2>El mensaje se ha enviado, si es necesario nos comunicaremos contigo</h2> </div>";
-		$respuesta->addAssign("$div","innerHTML","$cantidad");
-
-	}else{
-			$resultado="<div class='alert alert-warning'><h2><i class='glyphicon glyphicon-meh-o'></i> Algo salió mal <small> Por favor inténtalo de nuevo </small></h2></div>";
-	}
-
-	$respuesta->addAssign("muestra_form","innerHTML","$resultado");
-		//	$respuesta->addAssign("myModalLabel_info","innerHTML","<h2>$accion</h2>");
-			return $respuesta;
-
-
-	}
-	if($accion =="") {
-		$cantidad_me_gusta = contar_interacciones("$identificador","Gusta","");
-		$cantidad_me_comprometo = contar_interacciones("$identificador","Comprometo","");
-		$cantidad_Si = contar_interacciones("$identificador","Si","");
-		$cantidad_No = contar_interacciones("$identificador","No","");
-		$cantidad_Comentar = contar_interacciones("$identificador","Comentar","");
-		$cantidad_Reportar = contar_interacciones("$identificador","Reportar","");
-		$cantidad_Mensaje = contar_interacciones("$identificador","Mensaje","");
-		if(isset($_SESSION['id_empresa'])){
-		if($_SESSION['id_empresa'] == "$id_empresa") { 
-			$revisar_interacciones="	  
-<div  id='Comentar_$identificador' onclick=\"xajax_mostrar_interacciones('$identificador','todo','','mostrar_interacciones_$identificador');\" class='btn btn-info btn-xs' role='' title='Comentar' >
-	  		<span class='fa fa-eye' aria-hidden='true'></span><span class='hidden-xs'><br> Mostrar </span>
-	  	</div>
-		";
-			}
-		else {$revisar_interacciones="";}
-			}
-			
-			if($tipo =="simple") {
-				
-					$menu ="
-	<div id='botones-social' class='btn-group btn-group-justified' role='group' aria-label='botonera' >
-		<div  id='Gusta_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Gusta'); \"class='btn btn-primary btn-xs' role='' title='Me gusta'>
-			<span class='badge' id='Gusta_cantidad_$identificador'>$cantidad_me_gusta</span> <span class='fa fa fa-thumbs-o-up' aria-hidden='true'></span><span class='hidden-xs'><br> Me gusta </span>
-		</div>
-	  	<div  id='Comprometo_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comprometo'); \" class='btn btn-success btn-xs' role='' title='Me comprometo' >
-	  		<span class='badge' id='Comprometo_cantidad_$identificador'>$cantidad_me_comprometo</span> <span class='fa fa-handshake-o' aria-hidden='true'></span><span class='hidden-xs'><br> Me comprometo</span>
-	  	</div>
-	  	<div  id='Comentar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comentar'); \" class='btn btn-warning btn-xs' role='' title='Comentar' >
-	  		<span class='badge' id='Comentar_cantidad_$identificador'>$cantidad_Comentar</span> <span class='fa fa-comment-o' aria-hidden='true'></span><span class='hidden-xs'><br> Comentar </span>
-	  	</div>
-
-	  $revisar_interacciones
-	</div>
-
-
-	";
-	
-			}
-			else{
-	$menu ="
-	<div id='botones-social' class='btn-group btn-group-xs' role='group' aria-label='botonera'>
-	  <div  id='Mensaje_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Mensaje'); \" class='btn btn-default' role='' ><span class='glyphicon glyphicon glyphicon glyphicon glyphicon-envelope' aria-hidden='true'></span> Mensaje <span class='badge' id='Mensaje_cantidad_$identificador'>$cantidad_Mensaje</span></div>
-	  <div  id='Si_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Si'); \"class='btn btn-success' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-up' aria-hidden='true'></span> Si <span class='badge' id='Si_cantidad_$identificador'>$cantidad_Si</span></div>
-	  <div  id='No_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','No'); \" class='btn btn-warning' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-thumbs-down' aria-hidden='true'></span> No <span class='badge' id='No_cantidad_$identificador'>$cantidad_No</span></div>
-	  <div  id='Reportar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Reportar'); \" class='btn btn-danger' role='' ><span class='glyphicon glyphicon glyphicon-remove-sign' aria-hidden='true'></span> Reportar <span class='badge' id='Reportar_cantidad_$identificador'>$cantidad_Reportar</span></div>
-	  <div  id='Comentar_$identificador' onclick=\"xajax_interaccion_identificador('$identificador','Comentar'); \" class='btn btn-info' role='' ><span class='glyphicon glyphicon glyphicon glyphicon-pencil' aria-hidden='true'></span> Comentar <span class='badge' id='Comentar_cantidad_$identificador'>$cantidad_Comentar</span></div>
-	  <div class='btn btn-info' onclick=\"xajax_mostrar_interacciones('$identificador','Comentar','','mostrar_interacciones_$identificador');\">Mostrar</div>
-	  $revisar_interacciones
-	</div>
-
-
-	";
-	
-}
-	return $menu;
-	}
-	/*
-	elseif($accion=="Si") {	}
-	elseif($accion=="No") {	}
-	elseif($accion=="Compartir") {	}
-	*/
-	else {
-		
-
-			
-			
-if(isset($_SESSION['usuario_milfs']) OR $_SESSION['id'] !="")  {
-	
-	if($_SESSION["id"] !="") { $usuario="MILF-$_SESSION[id]";}else{ $usuario = "$_SESSION[control_usuario_milfs]"; }
-	$existe = contar_interacciones("$identificador","$accion","$usuario");
-	if($existe < 1 OR $accion =="Comentar") {
-	
-$formato="
-<div class='barra_interaccion'>
-	<form id ='formulario_interaccion' name ='formulario_interaccion'>
-	<div class='input-group col-xs-12'>
-		<label for='texto_interaccion'>Comentario</label>
-		<textarea class='form-control' id='texto_interaccion' name='texto_interaccion' placeholder='Escribe tu comentario' ></textarea>
-	</div>
-	<br>
-	<input type='hidden' value='$accion' id='tipo' name='tipo'>
-	<input type='hidden' value='$identificador' id='identificador' name='identificador'>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div data-dismiss='modal' onclick = \"xajax_limpia_div('muestra_form'); \"aria-hidden='true'  class='btn btn-danger btn-block'>Cancelar</div>
-		</div >
-		<div class='col-xs-6'>
-			<div onclick=\"xajax_interaccion_identificador(xajax.getFormValues('formulario_interaccion'),'Grabar'); \" class='btn btn-success  btn-block'>Enviar</div>
-		</div >
-	</div>
-	</form>
-</div>
-
-";
-
-}else{
-
- $formato= "<div class='alert alert-warning'><h2>Ya has dicho <quote>Me $accion</quote> </h2></div>";
-}
-}
-else{
-
-	 require ("./milfs/includes/parametrizacion.php");
-
-/// SI EL USUARIO NO ESTA LOGUEADO
-$login = milfs_session("$login_formulario","$login_campo_usuario","$login_campo_password","boton","","div_interacciones");
-
-
-$formato ="
-<div id='div_interacciones'>
-	<div class='alert alert-success'><h2>Por favor ingresa para <b>$accion</b></h2>
-	$login
-	</div>
-</div>
-";
-
-
-}
-
-
-
-}
-
-
-			//$div_contenido = "<div id='$div'>$div</div>";
-			$respuesta->addAssign("muestra_form","innerHTML","$formato");
-			$respuesta->addAssign("modal_landing","className","modal-dialog modal-xs");
-			$respuesta->addAssign("titulo_modal","innerHTML","<h2>$accion <small>$_SESSION[nombre_usuario_milfs]<small> </h2> ");
-		
-			//$respuesta->addAssign("pie_modal","innerHTML","$pie");
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-			///$respuesta->addscript("$('#muestraInfo').modal('toggle')");
-			
-			$respuesta->addScript("$('#muestraInfo').removeClass('fade').modal('hide')");
-			$respuesta->addScript("$('#muestraInfo').modal('toggle')");
-
-
-			return $respuesta;
-}
-$xajax->registerFunction("interaccion_identificador");
-
-function eliminar_identificador($identificador,$accion,$formulario) {
-	$respuesta = new xajaxResponse('utf-8');
-	$div="eliminar_$identificador";
-if($accion =="") {
-	$resultado="
-<div class='alert alert-danger'>
-	<h2>Se eliminará definitivamente este registro</h2>
-	<div class='row '>
-		<a class='col-md-6 btn btn-danger  btn-xs' onclick=\"xajax_eliminar_identificador('$identificador','eliminar','$formulario'); \" href='#'><i class='glyphicon glyphicon-trash'></i> Eliminar</a>
-		<a class='col-md-6 btn btn-warning  btn-xs' onclick=\"xajax_limpia_div('$div'); ; \" href='#'><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</a>
-	</div>
-</div>
-";
-}
-if($accion =="eliminar") {
-	$consulta_eliminar="DELETE FROM `form_datos` WHERE `form_datos`.`control` = '$identificador' AND form_id='$formulario' ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$consulta_eliminar);
-	$sql_borrar=mysqli_query($link,$consulta_eliminar);
-	if($sql_borrar) {
-$resultado ="
-<div class='alert alert-success'>
-	<p><i class='glyphicon glyphicon-smile-o'></i> Se eliminó definitivamente este registro.<br><b>Por favor actualice esta vista</b></p>
-</div>
-	";
-						}
-						else {
-$resultado ="
-<div class='alert alert-warning'>
-	<p><i class='glyphicon glyphicon-meh-o'></i> Algo salió mal, quizá el registro ya había sido eliminado <small> Por favor actualice esta vista </small></p>
-</div>
-	";
-						}
-}
-	$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 ="
-					<div class='form-group col-md-6'>
-						<label for='Proyecto_mover'>Seleccione proyecto</label>
-						$empresas
-					</div>
-					";
-			$cols ="6";
-
-			$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario_mover');
-///<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
-	$resultado="
-
-<div id='panel_mover' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_mover' >
-	<div class='panel-heading'>
-		<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_move' aria-expanded='false' aria-controls='collapseExample'>
-			<i class='glyphicon glyphicon-arrows'></i> Mover
-		</a>
-		<span class='panel-title'> El formulario y su contenido se moverán al proyecto seleccionado</span>
-	</div>
-	<div class='panel-body collapse' id='panel_move'>
-		<div class='form-group col-md-$cols'>
-			<label for='Formulario_mover'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_mover_formulario(document.getElementById('Formulario_mover').value,document.getElementById('Proyecto_mover').value,'mover'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Mover</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-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 <strong>$nuevo_nombre</strong> 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 ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$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=mysqli_query($link,$consulta_update_form);
-
-	$consulta_update_campos = "UPDATE form_datos SET id_empresa= '$id_empresa' WHERE form_id = '$formulario' ";
- 	$sql_update_campos=mysqli_query($link,$consulta_update_campos);
-
-	if($sql_update_campos){
-			if (mysqli_affected_rows($sql_update_campos)!='0'){
-				$cantidad = mysqli_affected_rows();
-				$nombre = remplacetas('form_id','id',"$formulario",'nombre'," id_empresa = '$id_empresa'") ;
-			}
-
-	}
-
-
-
-
-
-	$resultado ="
-	<div class='alert alert-success'>
-	<h2>Se movió el formulario <strong>$nombre[0]</strong> y sus <strong>$cantidad</strong> registros. <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='glyphicon glyphicon-refresh'></i> Actualizar</a></h2>
-	</div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-	}
-$xajax->registerFunction("mover_formulario");
-
-
-
-
-function clonar_formulario($formulario,$id_empresa,$nuevo_nombre,$descripcion,$tipo){
-$div ="div_clonar";
-$error ="";
-	$grupo = remplacetas('form_id',"id","$formulario",'nombre',"") ;
-	$grupo = strip_tags($grupo[0]);
-if($tipo =="formato") {
-			if($_SESSION['id'] == '1') {
-			$w_empresa = "";
-			$empresas = select('empresa','id','razon_social','',"",'Proyecto');
-$empresa ="
-		<div class='form-group col-md-4'>
-			<label for='empresa'>Seleccione proyecto</label>
-			$empresas
-		</div>
-		";
-		$cols ="4";
-		}else {
-			$empresa ="<input type='hidden' value='' name='Proyecto' id='Proyecto'>";
-			$w_empresa = "id_empresa = '$_SESSION[id_empresa]'";
-			$cols="6";
-		}
-	$formularios = select('form_id','id','nombre','',"$w_empresa",'Formulario');
-	$resultado="
-
-<div id='panel_clonar' class='panel panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_clonar' >
-	<div class='panel-heading'>
-
-	<a  data-parent='#accordion_accion_formulario'  class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_clone' aria-expanded='false' aria-controls='collapseExample'>
-	<i class='glyphicon glyphicon-clone'></i> Clonar</a> <span class='panel-title'>Se copiará la estructura del formulario pero no su contenido.</span>
-	</div>
-	<div class='panel-body collapse' id='panel_clone'>
-		<div class='form-group col-md-$cols'>
-			<label for='formulario'>Seleccione formulario</label>
-			$formularios
-		</div>
-		$empresa
-		<div class='form-group col-md-$cols'>
-			<label for='nuevo_nombre'>Nombre </label>
-			<input class='form-control' id='nuevo_nombre' name='nuevo_nombre' placeholder='Nombre que tendrá el formulario nuevo' >
-		</div>
-		<div class='form-group col-md-12'>
-			<div class='text-warning'><b>*</b> Todos los campos son obligatorios</div>
-			<div class='btn btn-default btn-block' onclick = \"xajax_clonar_formulario(document.getElementById('Formulario').value,document.getElementById('Proyecto').value,document.getElementById('nuevo_nombre').value,'','clonar'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Clonar</div>
-		</div>
-		<div id='$div'></div>
-	</div>
-</div>
-
-";
-return $resultado;
-}
-if($id_empresa =="") {
-	if(isset($_SESSION['id_empresa'])){$id_empresa= $_SESSION['id_empresa'];}
-	else {$id_empresa = "1";}
-}
-		$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 <strong>$nuevo_nombre</strong> en ese proyecto.";}
-	if( $formulario =="" or $nuevo_nombre ==""  ) { $error ="Asegúrese de que ningún campo esté vacío.";}
-
-	if($error !="") {
-		$resultado ="<div class='alert alert-warning'><h1>$error</h1></div>";
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-			return $respuesta;
-	}
-
-$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	mysqli_real_escape_string($link,$nuevo_nombre);
-
-	if($descripcion =="") {
-	$descripcion = remplacetas('form_id','id',$formulario,'descripcion','') ;
-	$descripcion =$descripcion[0];
-	}
-	$modificable = remplacetas('form_id','id',$formulario,'modificable','') ;
-	$publico = remplacetas('form_id','id',$formulario,'publico','') ;
-		/// establecer propietario para el nuevo form
-		if(!isset($_SESSION['id_empresa'])){
-		$validar_email = verificacion_email("$_SESSION[nombre_usuario_milfs]",'','verificar');
-				}
-		if(isset($_SESSION[nombre_usuario_milfs]) AND $validar_email !="") {
-			$id_usuario = "$validar_email";		}
-		else {
-			$id_usuario = "$_SESSION[id]";
-		}
-	$consulta_insert = "INSERT INTO `form_id` ( `nombre`, `descripcion`, `activo`, `modificable`, `publico`, `propietario`, `formulario_respuesta`, `id_empresa`)
-	VALUES ('$nuevo_nombre', '$descripcion', '1', '$modificable[0]', '$publico[0]', '$id_usuario','','$id_empresa')";
-
-$sql_insert=mysqli_query($link,$consulta_insert);
-$ultimo_id = mysqli_insert_id($link);
-
-
- 	$consulta_grupo = "INSERT INTO form_grupo set id = '$ultimo_id',grupo = '$grupo' ,id_empresa= '$id_empresa'";
- 	$sql_grupo=mysqli_query($link,$consulta_grupo);
-
-
-//// CLONAR CAMPOS
-$consulta="SELECT * FROM form_contenido_campos WHERE id_form ='$formulario'";
-	$sql=mysqli_query($link,$consulta);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_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=mysqli_query($link,$consulta_insertar_campos);
-	}
-/// FIN DE CLONAR CAMPOS
-/// CONAR PLANTILLAS
-$consulta_plantillas="SELECT * FROM form_parametrizacion WHERE tabla= 'form_id' AND campo ='$formulario'";
-	$sql=mysqli_query($link,$consulta_plantillas);
-	if($sql){
-			if (mysqli_num_rows($sql)!='0'){
-				mysqli_data_seek($sql, 0);
-				while( $row = mysqli_fetch_array( $sql ) ) {
-				$control = md5(rand(1,99999999).microtime());
-				$values_plantilla .= "('$row[tabla]','$ultimo_id','$row[opcion]','".mysqli_real_escape_string($link,$row[descripcion])."','$row[visible]','$id_empresa'),";
-				}
-				$values_plantilla = substr($values_plantilla, 0, -1);
-				$values_plantilla = "(`tabla`,	`campo`, `opcion`, `descripcion`, `visible`,`id_empresa`) VALUES  $values_plantilla ";
-			}
-
-	$consulta_insertar_plantilla = "INSERT INTO form_parametrizacion $values_plantilla ";
-	$sql_insert_plantillas=mysqli_query($link,$consulta_insertar_plantilla);
-	}
-//// FIN DE CLONAR PLANTILLAS
-if($tipo=="aplicacion") {
-	$div="asistente_aplicacion";
-	$resultado ="
-	<div class='alert alert-success text-center'>
-		<h1><i class='glyphicon glyphicon-smile-o'></i>
-		<br>Felicidades tu aplicación
-		<br>
-		<strong>'$nuevo_nombre'</strong>
-		<br>fue creada y ahora está disponible en  </h1>
-		<a style='word-wrap: break-word; ' target='aplicacion' href='$_SESSION[site]a$ultimo_id' >
-		<img src='https://qwerty.co/qr/?d=$_SESSION[site]a$ultimo_id'><br>$_SESSION[site]a$ultimo_id <i class='glyphicon glyphicon-external-link-square'></i>
-		</a>
-
-	</div>";
-
-	$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-}
-
-	$resultado ="<div class='alert alert-success'><h1>El formulario <strong>'$nuevo_nombre'</strong> se grabó  <a href='#' onclick=\"xajax_formulario_listado('','contenido'); \"><i class='glyphicon glyphicon-refresh'></i> Actualizar</a></h1></div>";
-	$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="
-<br>
-<legend>Estilos</legend>
-	<div id='div_css' class ='text-success'></div>
-	<div class='input-group'>
-		<span class='input-group-addon'>
-		CSS para tema bootstrap
-		</span>
-		<input placeholder='https://https://bootsw... ' value='$css[0]'  id='css_url'  name='css_url'  type='url' class='form-control'>
-		<span class='input-group-btn'>
-		<div class='btn btn-default btn-warning '
-			onclick=\"xajax_parametrizacion_linea('css','index','bootstrap',document.getElementById('css_url').value,'div_css'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-		</div>
-	</div>
-	<div class='input-group  col-md-12'>
-		<label for='css_adicional'>CSS adicional</label>
-		<textarea style='width:100%' id='css_adicional' name='css_adicional' class='form-control' placeholder ='Escriba css valido'>$css_adicional[0]</textarea>
-	</div>
-	<div class='input-group pull-right'>
-			<div class=' btn btn-default btn-warning '
-			onclick=\"xajax_parametrizacion_linea('css','index','adicional',document.getElementById('css_adicional').value,'div_css_adicional'); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-		</div>
-	</div>
-		<pre style='max-height: 300px; overflow:auto ' id='div_css_adicional' class ='text-success'>/* HOJA DE ESTILOS CSS ACTUAL  */
-		$css_adicional[0]
-		</pre>
-
-";
-}
-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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>
-						 						<a href='I$row[campo]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded ' src ='milfs/images/secure/?file=300/$imagen[0]'>
-						 						</a>
-						 					</figure>
-						 					<span class='fh5co-meta'><a href='I$row[campo]'>$formulario_titulo[0] </a>
-							 					<span class=' fh5co-date'><i class='glyphicon glyphicon-eye-open'></i> $row[descripcion]</span>
-						 					</span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='I$row[campo]'>$titulo[0]</a></h4>
-
-						 				</article>
-						 				";
-						 			}
-						 			$resultado = "
-						 				<legend class='text-center'>LO MAS VISTO</legend>
-						 					$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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>
-						 						<a href='I$row[campo]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded' src ='milfs/images/secure/?file=300/$empresa_logo[0]'>
-						 						</a>
-						 					</figure>
-							 					<span class='fh5co-meta'><a href='a$row[campo]'>$formulario_titulo[0]</a>
-							 					<span class=' fh5co-date'><i class='glyphicon glyphicon-eye-open'></i> $row[descripcion]</span>
-						 					</span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='a$row[campo]'>$titulo[0]</a></h4>
-
-						 				</article>
-						 				";
-
-			 		}
-			 					$resultado = "
-						 				<legend class='text-center'>PROYECTOS MAS ACTIVOS</legend>
-						 					$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 .= "
-										 <article class='col-lg-$cols col-md-$cols col-sm-$cols col-xs-6 col-xxs-12 animate-box'>
-											<figure>
-						 						<a href='I$row[control]'>
-						 							<img  style=' max-height:320px;'  class=' img-responsive img-rounded' src ='milfs/images/secure/?file=300/$imagen[0]'>
-						 						</a>
-						 					</figure>
-						 					<span class='fh5co-meta'><a href='I$row[control]'>$titulo_post[0] </a></span>
-											<h4 style='word-wrap: break-word; ' class='fh5co-article-title'><a href='I$row[control]'>$row[nombre]</a></h4>
-						 				</article>
-						 				";
-						 			}
-						 			$resultado = "
-										<legend class='text-center'>$titulo</legend>
-						 					$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 .= "<!-- ($identificador','$row[form_id]','','simple//$plantilla','$row[timestamp]')  --> $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 ="
-						<div class='formulario_respuesta_contenedor'>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-		$resultado .= "<div class='respuesta_linea'><a class='btn btn-success' onclick = \"xajax_formulario_embebido_ajax('','$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre]</a> $row[descripcion] </div>";
-
-}
-	$resultado .="</div>";
-}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&registros=$registros&pagina=1&orden=$orden";
-					$href_2 = "$origen&registros=$registros&pagina=".($pagina-1)."&orden=$orden";
-				}
-				else {
-					$href_1= "#cabecera#";
-					$href_2= "#cabecera#";
-					 }
-
-           	 $link .= "<li><a href='$href_1' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a href='$href_2' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-
-        		if(isset($_REQUEST['registros'])) {
-					$href_3 = "$origen&registros=$registros&pagina=$x&orden=$orden";
-				}
-				else {
-					$href_3= "#cabecera#";
-					 }
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='$href_3'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='$href_3' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','','$orden');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         {
-         	if(isset($_REQUEST['registros'])) {
-					$href_4 = "$origen&registros=$registros&pagina=".($pagina+1)."&orden=$orden";
-					$href_5 = "$origen&registros=$registros&pagina=$pages&orden=$orden";
-				}
-				else {
-					$href_4= "$href_4";
-					$href_5= "$href_5";
-					 }
-         	 $link .= "<li><a  href='$href_4'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a  href='$href_5'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','','$orden');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = "
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-			 <div class='text-center center-block'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>
-				</ul>
-				     $paginacion
-			 </div>
-			</div>
-		</div> ";
-
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>";
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<hr> $nombre[0] $descripcion[0]";
-mysqli_data_seek($sql_total, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-//	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}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 .= "<br>$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 = "		<div class='btn btn-default btn-block ' onclick =\"xajax_formulario_embebido_ajax('','$form','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </a></div>";
-	}
-$acciones="
-
-<div class='container-fluid'>
-	<div class='row'>
-		<div class='col-sm-2 col-md-2' >
-		</div>
-		<div class='col-sm-2 col-md-2' >
-		$agregar
-		</div>
-		<div class='col-sm-4 col-md-4' >
-		 $filtro
-		 $filtro_drop
-
-		</div>
-		<div class='col-sm-4 col-md-4' >
-		 $buscador
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-
-		$filtro_generico
-		$formulario_tabla_temporal
-		</div>
-	</div>
-</div>
-
-
-	<br>";
-}
-
-$resultado = "
-<a name='cabecera'></a>
-<h1><a href='b$id_form'>$nombre[0]</a></h1>
-<h2>$descripcion[0]</h2>
-$acciones
-<div id='mostrar_resultado' class='mostrar_resultado_landingpage'>
-<!-- landingpage_contenido_identificador() -->
- $linea
- <!-- landingpage_contenido_identificador() -->
-$encabezado
-
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning alert_sin_resultados' ><h1 title=''>No hay resultados 0021</h1> </div>";
-		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 = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-		if($row['imagen'] !="") {
-	$logo="<img  class='img img-responsive img-rounded' style='' alt='$row[razon_social]' src='milfs/images/secure/?file=300/$row[imagen]'>";
-									}
-	 else {
-	 		  		$logo_empresa =  remplacetas('empresa','id',"1",'imagen','');
-	 		$logo="<img class=' img img-responsive'  style='' class=' ' src='milfs/images/sinimagen.jpg' alt='$row[razon_social]'>";
-	 }
-	// $slogan= substr($row[slogan],0, $length = 100)."";
-	$slogan = $row['slogan'];
-	$dominio = remplacetas('empresa','id',"$row[id_empresa]",'web','') ;
-	$contenido ="
-	              <div class='proyecto col-md-$cols col-sm-$cols' title=''>
-	              <div class='div_proyecto'>
-                    <a href='http://$dominio[0]/e$row[id_empresa]' target ='empresa'>
-                    <div class='proyecto_titulo ' style=''>$row[razon_social]</div>
-                    $logo
-
-
-                    </a>
-                    </div>
-                  </div>
-
-	";
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-            <!-- PROYECTOS -->
-            <section class='container-fluid' id='proyectos'>
-              <div class=' text-center'>
-                <h1>Proyectos</h1>
-                <p class='lead'>Conoce los proyectos que usan Tupale.co para la implementación de sus herramientas, selecciona para conocer más</p>
-              </div>
-              <div class='container-fluid'>
-                <div class=''>
-                  $encontrados
-
-                </div>
-              </div>
-          </section>
-          <!-- FIN Proyectos -->
-
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0023</div>";
-	}
-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 =" <a title='$titulo_anterior[0]' href='I$anterior[0]' class='fh5co-post-prev'><span><i class='icon-chevron-left'></i> $campo_orden[0] Anterior</span>
-			</a>";
-			}
-			if($siguiente[0] !='') {
-			$post_siguiente =" <a title='$titulo_siguiente[0]' href='I$siguiente[0]' class='fh5co-post-next'><span>Siguiente <i class='icon-chevron-right'></i></span>
-			</a>";
-			}
-			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 ="<img class='img-responsive img-rounded ' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<figure class='animate-box'>
-				<a href='I$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-responsive img-rounded'>
-				</a>
-			</figure> $uri";
-
-	}else {
-		$miniatura ="
-			<figure class='animate-box'>
-				<a href='I$identificador' >I$identificador</a>
-			</figure>
-			";
-		$mostrar_imagen = "
-		<figure class='animate-box'>
-			<img src='$qr' alt='$identificador' title='' style=''; class='img img-responsive img-rounded'>
-		</figure>";
-
-
-
-		}
-
- //<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>
-	//$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 = "
-	<!-- Exportado desde Tupale.co  -->
-<!-- plantilla landingpage $identificador -->
-
-<a  name='control_$identificador' class='clase_listado'></a>
-<div class='container-fluid'>
-<div class='col-lg-12 col-md-12 col-xs-12 '>
-$contenido
-</div>
-
-</div>
-<!-- plantilla landingpage -->
-	";
-
-	}
-	if($tipo=="head") {
-		$edicion="";
-		$documento=""; $respuestas="";}else{
-	 				if(!isset($_SESSION['id_empresa'])){
-	$edicion ="<a href='d$identificador' target='editar'><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>";
-//		$edicion ="<a class='btn btn-default btn-xs' onclick= \"xajax_formulario_embebido_ajax('','$form','$identificador','edit') \"><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>";
-	}else {$edicion="";}
-	$documento="<div id='gen_documento'><a href='opendata.php?tipo=documento&identificador=$identificador'>Generar documento</a></div>";
-	}
-
-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 <small class='pull-right'>https://tupale.co</small>";
-$salto = "<div class='saltopagina'></div>";
-$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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";		
-		$cabecera="<hr>
-		<div class='row'>
-			<div class='col-xs-10'>
-				$encabezado_empresa 
-				$cabecera
-				
-			</div>
-			<div class='col-xs-2'>
-				<div class='thumbnail'>
-					<img src='$qr' alt='$identificador' title='' style='width:100%;'; class=''>
-					<div class='caption'>
-					<!-- <font size='-10'>$identificador</font> -->
-					</div>
-				</div>
-				
-			</div>
-			<div class='colxs-12 '>
-			$usuario_datos
-			
-			</div>
-		</div>";}
-		
-		
-		else{
-		
-$cabecera="";		
-$pie="";		
-$salto="";		
-		}
-		if($tipo =="li") { 
-		 $linea ="
-		 $impresion
-		 ";
-		 }
-		else{
-				 $linea = "  
-				 
-				
-				
-							<div class='mostrar_identificador_full '>
-				 $cabecera $manejadores
-						 		 $documento
-						 			$impresion
-									$edicion
-						 			 <!-- formulario de respuesta -->
-							 			 <div id='formulario_respuesta_$identificador' class='formulario_respuesta ' style=''>$respuestas</div>
-						 			 <!-- formulario de respuesta -->
-				
-				$pie
-					 		</div>
-				$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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros);
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													}
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-
-	*/
-
-	//// 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 = "<a href='I$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}
-	$resultado_linea="<div class='row' id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='glyphicon glyphicon-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='b$row[id]?registros=10'> Consultar <i class='glyphicon glyphicon-external-link-square'></i></a>";
-							$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 = "
-			
-			<img alt='$row[nombre]' class=' lazy imagen_presentacion img-responsive img-rounded'  style='width:100%'  data-src='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=250x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' >
-			<br>";
-		/* 				$miniatura = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-https%3A%2F%2Ftupale.co%2Fmilfs%2Fimages%2Ficonos%2Fpin.png(-75.59825420379637,6.24539309025971,17)/-75.59825420379637,6.24539309025971,17/600x200.png?access_token=pk.eyJ1IjoiZmNhc3Ryb3QiLCJhIjoiY2lnOWw1bmd1MG93eXVsbTJpcmluYTBxdCJ9.yG7C1rEH6-MpZBEEb68IVg' >
-			";*/
-
-			 }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		//if($geo[0] !='') { $mapa= "<a href='mapero.php?id=$row[id]' target='mapa'>$miniatura Ver mapa</a>";}else {$mapa='';}
-		if($geo[0] !='') { $mapa= "<a class='boton_land btn btn-default ' href='mapero.php?id=$row[id]' target='mapa'><i class='fa fa-globe' aria-hidden='true'></i> Mapa</a>";}else {$mapa='';}
-		$descripcion_limpia = strip_tags($row['descripcion']);
-		if($imagen !="") {
-	$imagen ="
-
-							<figure>
-							<a href='$favorita'>
-								<img style='max-height:170px; ' class='img img-rounded img-responsive' src='milfs/images/secure/?file=300/$imagen' alt='$row[nombre]'>
-								<!-- <figcaption class='articulo_caption' >$row[nombre]</figcaption> -->
-							</a>
-							</figure>
-							";
-}
-	$contenido ="
-		<h2  class='text-center titulo_formulario section-heading'><a href='$favorita'>$row[nombre] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-		$imagen
-    
-		<p class='descripcion_formulario text-left'>$descripcion_limpia </p>";
-
-//			if ( $fila%2==0){
-
-
-
-if($llenar[0] !="0") {$boton_agregar ="	<div class='boton_land btn btn-default ' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\"> <i class='glyphicon glyphicon-plus-sign'></i> Agregar </div>";}
-							else{$boton_agregar =	"";}
-if($ver_data[0] !="0") {$boton_ver_data ="	<a target='datos'class='boton_land btn btn-default ' href= 'opendata.php?id=$row[id]'> <i class='fa fa-bar-chart' aria-hidden='true'></i> OpenData</a>";}
-									else{$boton_ver_data =	"";}
-
-	if($mostrar[0] !="0") {
-		//// PRIVACIDAD
-			$publico = remplacetas('form_id','id',"$row[id]",'publico',"") ;
-
-/// PRIVACIDAD
-if($publico[0] =='1') {
-	$linea .= "
-
-			<div style='  '  class='  articulo_cuadro col-md-4'  id='b_articulo_formulario_$row[id]'>
-				<div style='height:500px; overflow-y:auto; overflow-x:hidden; padding:10px;' class=' thumbnail '  id='b_articulo_formulario_$row[id]'>
-				<a  name='formulario_$row[id]'></a>
-					<div class='row rp-b '>
-
-						<div class='articulo_contenido  col-md-12 animate-box'>
-
-							<p>$contenido</p>
-						</div>
-
-					</div>
-					<div class= 'botonera_landing btn-group.btn-group-justified btn-group-sm' role='group' >
-					$boton_agregar $mapa $boton_ver_data
-					</div>
-				</div>
-			</div>
-
-			";
-			}else{
-					if($llenar[0] !="0"){
-			 $linea .="
-		<div style='  '  class='  articulo_cuadro col-md-4'  id='b_articulo_formulario_$row[id]'>
-				<div style='height:500px; overflow-y:auto; overflow-x:hidden; padding:10px;' class=' thumbnail '  id='b_articulo_formulario_$row[id]'>
-				<a  name='formulario_$row[id]'></a>
-					<div class='row rp-b '>
-
-						<div class='articulo_contenido  col-md-12 animate-box'>
-
-						<h2  class='text-center titulo_formulario section-heading'>
-						<a href='#' onclick=\"xajax_formulario_embebido_ajax('','$row[id]','','nuevo');\" >$row[nombre] <i class='glyphicon glyphicon-external-link-square'></i></a></h2>
-		$imagen
-      <p class='descripcion_formulario text-left'>$row[descripcion] </p>
-						</div>
-
-					</div>
-
-					$boton_agregar
-				</div>
-			</div>
-		";}
-
-			}
-		}else {
-
-		$linea .=" ";}
-
-		$fila++;
-		}
-	}
-	$linea ="
-	<div class='container-fluid' id='contenedor_landingpage '>
-
-		$linea
-	</div>
-	";
-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 ="<h1><i class='glyphicon glyphicon-spinner '></i> $mensaje Procesando ...</h1>";
-$respuesta->addAssign("$div","innerHTML","$resultado");
-
-			return $respuesta;
-
-}
-$xajax->registerFunction("wait");
-
-function campos_buscador($nombre,$tipo) {
-if($nombre=="") {
-		$filtros = "
-	<div class='input-group '>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \" xajax_campos_tabla(this.value,'div_tabla_campos','$limite','',document.getElementById('buscador_campos').value); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>No usados </option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-
-	";
-$resultado ="
-<div class='row'>
-<div class='col-md-6'>
-$filtros
-</div>
-<div class='col-md-6'>
-<div class='input-group '>
-  <input type='text' id='buscador_campos' class='form-control' placeholder='Buscador de campos'  onkeyup = \" xajax_campos_tabla(document.getElementById('filtro_campos').value,'div_tabla_campos','','',(this.value));\" >
-  <span class='input-group-addon' id='basic-addon2'><i class='glyphicon glyphicon-search'></i></span>
-</div>
-</div>
-</div>";
-
-}
-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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='glyphicon glyphicon-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='glyphicon glyphicon-heart'></i> $row[id_especialista]";
-				}
-				if($_SESSION['id'] == 1){ 
-				 $metacampo_titulo="<th>MC</th>";
-				if($row['tipo_contenido'] ==1) {
-				$metacampo="<td title='Metacampo'><input checked type='checkbox' class='form-control' onclick=\" xajax_update_campo('form_campos','$row[id]','tipo_contenido','0','grabar','metacampo_$row[id]','id','nada'); \"><div id='metacampo_$row[id]'></div>";
-				}
-				else {
-				$metacampo="<td title='Metacampo'><input  type='checkbox' class='form-control' onclick=\" xajax_update_campo('form_campos','$row[id]','tipo_contenido','1','grabar','metacampo_$row[id]','id','nada'); \"><div id='metacampo_$row[id]'></div>";
-				}
-				}
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td>$metacampo<td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-
-	$tabla = "
-
-		<div id='div_tabla_campos'>
-		<legend>
-		<a onclick = \" xajax_campos_tabla('$filtro','div_tabla_campos','$limite','$anterior','$valor'); \"><<< ANTERIORES</a>
-		Mostrando $cantidad_mostrada de  $cantidad_total
-		<a onclick = \" xajax_campos_tabla('$filtro','div_tabla_campos','$limite','$fin','$valor'); \">SIGUIENTES >>></a>
-		</legend>
-
-
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='glyphicon glyphicon-list' title='Tipo'></i> Tipo</th>$metacampo_titulo<th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='glyphicon glyphicon-object-group'></i></th><th><i title='Estado' class='glyphicon glyphicon-eye-open'></i></th><th><i title='Empresa' class='glyphicon glyphicon-hospital-o'></i></th><th><i title='Propietario' class='glyphicon glyphicon-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='glyphicon glyphicon-remove-sign'></i></a>
-		<strong class='text-danger center'><i class='glyphicon glyphicon-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='glyphicon glyphicon-remove-sign'></i></a>
-					<br>
-					$linea
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='glyphicon glyphicon-cog'></i><i class='glyphicon glyphicon-cog'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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="<div id='dominio_$row[id]'><a class='btn btn-danger btn-sm' onclick=\"xajax_configurar_dominio($row[id],'eliminar'); \">DESconfigurar</a></div> ";
-		}
-	else{
-			$configuracion_dominio="<div id='dominio_$row[id]'><a class='btn btn-warning btn-sm' onclick=\"xajax_configurar_dominio($row[id],'crear'); \">Configurar</a></div> ";
-			}
-	$acciones = "<a href='#' onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i> </a> Estado: $estado
-
-	$configuracion_dominio";
-
-	}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0024</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='glyphicon glyphicon-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='glyphicon glyphicon-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='glyphicon glyphicon-search'></i></div>
-						</div>
-					</div>
-
-
-		</form>
-
-	";
-/////// FILTRO
-
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='glyphicon glyphicon-trash'></i></a>
-
-		 ";
-
-				if($formato!='csv'){
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='glyphicon glyphicon-file-text-o'></i></a>";}
-
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-
-
-
-
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-
-	$total_registros = mysqli_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>";
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='https://".$web[0]."/milfs/images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='https://".$web[0]."/milfs/images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";
-			if($multiple[0] =='1') { 	$contenido_multiple  =  formulario_valor_campo("$id_form","$valor","","$row[control]",'',"$row[timestamp]"); 
-														//$contenido[0] = $contenido_multiple[8];
-															$listado_campos.="<td>$contenido_multiple[11]</td>";
-														}else{$listado_campos.="<td>$editar_contenido</td>";}
-			}
-		elseif($tipo_campo[0]=='10'){
-				$valor_actual = relacion_render("$id_form","$row[id_campo]",$contenido[0],'5','relacion_drop');
-			 @$listado_campos .= "<td title='' >$valor_actual</td>";	}
-		elseif($tipo_campo[0] =="6" ) {
-			$contenido_campo =imprimir_buscador_campo($valor,$contenido[0]) ;
-						 @$listado_campos .= "<td title='' >$contenido_campo </td>";
-						 }
-		elseif($tipo_campo[0] =="29" ) {
-
-						 @$listado_campos .= "<td title='' ><img class='img' height='100'  src='$contenido[0]'> </td>";
-						 }
-		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 .= "<td title='' >$valor_actual</td>";
-						 }
-		elseif($tipo_campo[0] =="31") {
-			//$json = html_entity_decode($contenido[0]);
-			$link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido[0]";
-			$valor_actual = "<a id='link_$row[id_campo]_$row[orden]_consultar_formulario'  href='$link_url' target='_blank' >$contenido[0]</a>";
-						 @$listado_campos .= "<td title='' >$valor_actual</td>";
-						 }
-						 //
-						 //			if($tipo_campo[0] =="29" ) {$contenido[0] ="<img class='img img-responsive'  src='$contenido[0]'> "; }//$contenido="<img class='img img-responsive'  src='$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 .= "<td title='$tipo_campo[0]' >$contenido[0] </td>";
-}
- 			
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;} 
-
-	 $areas = resumen_identificador("$row[control]",'','','boton');
-	 $acceso = generar_acceso($row[control],"","");
-	 	if($resaltado[0] =="$row[control]") {$iresaltar =" <span class='badge'>Resaltado</span>"; $alert="info";}
-	 	else {
-	 		$iresaltar = "<div class='btn btn-default btn-xs '
-	 			onclick=\"xajax_parametrizacion_linea('index','resaltado','resaltado','$row[control]','resultado_resaltado'); \" title='Si se marca este item se mostrará en la portada'> Resaltar</div>
-	 			<div id='resultado_resaltado'> </div>";
-	 		$alert="";
-
-	 		}
-
-	 	$menu ="<td  class='actions $alert ' >
-
-
-							<div class='container-fluid'>
-								<div class='row'>
-									<div class='col-md-12'>
-									<a class='btn btn-default  btn-xs' target='form' href='../I$row[control]'><i class='glyphicon glyphicon-eye-open'></i> Plantilla</a>
-									</div>
-									<div class='col-md-12' >
-									$areas
-									<div id='areas_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-										<a title='Editar' class='btn btn-default btn-xs' onclick=\"xajax_formulario_embebido_ajax('','$row[form_id]','$row[control]','edit'); \"><i class='glyphicon glyphicon-pencil'></i> E</a>
-										<a title='Borrar' class='btn btn-default  btn-xs' onclick=\"xajax_eliminar_identificador('$row[control]','','$row[form_id]'); \" href='#'><i class='glyphicon glyphicon-trash'></i> B</a>
-										<a title='Clonar' class='btn btn-default  btn-xs' onclick=\"xajax_clonar_identificador('$row[control]',''); \" href='#'><i class='glyphicon glyphicon-clone'></i> C</a>
-										<div id='eliminar_$row[control]'></div>
-										<div id='clonar_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12' >
-									$acceso
-									<div id='areas_$row[control]'></div>
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-									$imagen
-									</div>
-								</div >
-								<div class='row'>
-									<div class='col-md-12'>
-									$iresaltar
-									</div>
-								</div >
-
-							</div>
-
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla
-
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados 0001</h1> </div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='glyphicon glyphicon-cloud-download'></i></a>";
-
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-
-				<div class='input-group class='has-error''>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-					<small class='text-danger'> *Campo obligatorio</small>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion','',''); \"><i class='glyphicon glyphicon-floppy-disk'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 =
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='glyphicon glyphicon-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$control'>$_SESSION[site]I$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='glyphicon glyphicon-remove-sign'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion_limpia[0]</h4>
-
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='glyphicon glyphicon-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Campos especiales</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='mapa_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_mapa('$perfil','div_parametrizacion','') \" >Mapa</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<ul class='list-group'>
-
-";
-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 .= "
-<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'>
-	<a href='?id=$perfil&buscar=$categoria_campo:$contenido'>
-		<img style=' height:50px;' class='' src='$icono' style=''>
-	</a>
-	<small>$contenido</small>
-</div>";
-$resultado .="<li class='list-group'><a href='?id=$perfil&buscar=$categoria_campo:$contenido'><img style=' height:50px;' class='' src='$icono' style=''> $contenido</a></li>";
-															}
-$resultado .= "	</ul >";
-										}
-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 = "
-		<br>
-		<p>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.
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$proyecto_logo\"  />";
-while( $row = mysqli_fetch_array( $sql ) ) {
-	if($row[id_campo] == $campo_imagen ) {$imagen ="<i class='glyphicon glyphicon-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>
-
-		 
-";
-
-}
-/*
-$campo_400[$row[id_campo]]
-	$campo_80[$row[id_campo]]
-	$campo_55[$row[id_campo]]
-*/
-$resultado = "
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-
-
-		 	</li>
-		 $listado
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador_logo' ondragstart=\"evdragstart(event,this)\"  title=' Logo'>Logo</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$proyecto_nombre' ondragstart=\"evdragstart(event,this)\"  title='Nombre'>Proyecto</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$proyecto_slogan' ondragstart=\"evdragstart(event,this)\"  title='Slogan'>Slogan</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$proyecto_web' ondragstart=\"evdragstart(event,this)\"  title='Web'>Web</span></li>
-		 </ul>
-</div>
-";
-}
-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 ="<i class='glyphicon glyphicon-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]]
-	$campo_80[$row[id_campo]]
-	$campo_55[$row[id_campo]]
-*/
-$identificador_logo=" <img  class=\"img img-responsive img-rounded\" src=\"milfs/images/secure/?file=300/\$proyecto_logo\"  />";
-
-$resultado = "
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-
-
-		 	</li>
-		 $listado
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador_logo' ondragstart=\"evdragstart(event,this)\"  title=' Logo'>Logo</span></li>
-		 </ul>
-</div>
-";
-}
-	$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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='glyphicon glyphicon-eye-open'></i></a> Editar</td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='glyphicon glyphicon-plus-sign'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='glyphicon glyphicon-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-
-}
-else {
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='glyphicon glyphicon-plus-sign'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='glyphicon glyphicon-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='glyphicon glyphicon-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
- 			<div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='wysiwyg form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				<div id='div_campos'>
-					<div class='btn btn-default btn-xs' onclick=\"xajax_parametrizacion_plantilla_campos_inteligentes('$formulario'); \" >Campos inteligentes</div>
-					$campos
-				</div>
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='glyphicon glyphicon-floppy-disk'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='glyphicon glyphicon-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='glyphicon glyphicon-remove-sign'></i></div>
-			</div>
-
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 ="
-<br><labeL for='json_extra'>Defina en cada linea un geojson adicional que se mostrará en el mapa $formulario </label>
-<br>Ejemplo: [Nombre de la capa] url.geojson
-	<textarea class='form-control' rows=10 placeholder='[Nombre de la capa] url.geojson' id='json_extra' name ='json_extra'>$li</textarea>
-	<div class='btn btn-success center-block' onclick=\"xajax_parametrizacion_mapa('$formulario','resultado_json',document.getElementById('json_extra').value) \">Grabar</div>
-	<br><div id='resultado_json'></div>";
-			$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 .="<li class='list-group-item'><strong>$v[1]:</strong> $v[0] </li>";
-			}
-
-	}
-
-}
-	$resultado_visible="<ul class='list-group'>$li</ul>";
-//	$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-
-//($tabla,$campo,$opcion,$descripcion,$div)
-
-$resultado = "
-	<legend>Campos especiales</legend>
-	<ul>
-	<li>Campo de <b>Título</b> actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></li>
-	<li>Campo de <b>Descripción</b> actual<strong> $campo_descripcion_nombre[0] [$campo_descripcion[0]]</strong> <small> (Este campo debe ser del tipo nota)</small></li>
-	<li>Campo de <b>Orden</b> actual<strong> $campo_orden_nombre[0] [$campo_orden[0]]</strong> <small> (Este campo debe ser del tipo numérico)</small></li>
-	</ul>
-
-	<div class='input-group'>
-		<span class='input-group-addon'>Campo</span>
-
-		 <select class='form-control' id='seleccion_campo' name='seleccion_campo'  onchange=\"\">
-		 <option value=''>Borrar el valor actual</option>
-		 $listado
-		 </select>
-			<div class='input-group-btn'>
-			        <button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'><span class='caret'></span> Seleccionar</button>
-			        <ul class='dropdown-menu dropdown-menu-right'>
-			          <li><a href='#' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','titulo',document.getElementById('seleccion_campo').value,'div_seleccion_titulo','xajax_parametrizacion_titulo(\'$formulario\',\'div_parametrizacion\',\'\') ',''); \">Título</a></li>
-			          <li><a href='#' onclick=\"xajax_parametrizacion_linea('form_id','$formulario','orden',document.getElementById('seleccion_campo').value,'div_seleccion_titulo','xajax_parametrizacion_titulo(\'$formulario\',\'div_parametrizacion\',\'\') ',''); \">Orden</a></li>
-			          <li><a href='#'onclick=\"xajax_parametrizacion_linea('form_id','$formulario','descripcion',document.getElementById('seleccion_campo').value,'div_seleccion_titulo','xajax_parametrizacion_titulo(\'$formulario\',\'div_parametrizacion\',\'\') ',''); \">Descripción</a></li>
-			          
-			        </ul>
-			</div>
-	</div>
-
-<div id='div_seleccion_titulo'></div>
-
-
-
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-if($div !="") {
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; }
-}
-$resultado = "
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-
-$resultado = "
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-			$resultado
-			</div>";
-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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados </small>
-		<i class='glyphicon glyphicon-lock'></i></h1></div>";
-
-		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]'
-	//<li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-	    	//// 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') {
-//<tr> <td class='col-xs-1'>$row[id_campo] x</td><td class='col-xs-2'>$row[campo_nombre] x</td><td class='col-xs-4'>$row[campo_descripcion] x</td><td class='col-xs-5'>$estadisticasx x</td></tr>
-	$estadisticas = formulario_estadistica("$formulario","$row[id_campo]","contenido","barras");
-$listado .= "
-				<tr>
-              <td class='col-xs-2'>
-              		<ul class='list-group'>
-		              <li class='list-group-item'>Id: $row[id_campo]</li>
-		              <li class='list-group-item'>Nombre: $row[campo_nombre]</li>
-		              <li class='list-group-item'>Tipo: $tipo_campo[0]</li> 
-		              <li class='list-group-item'>Descripción: $row[campo_descripcion]</li>
-	              </ul>
-              </td>
-              <td class='col-xs-10'><strong> $row[campo_descripcion]</strong>$estadisticas </td>
-            </tr>
-";
-}else {$listado.="";}
-}
-$resultado = "
-
-
-		<table class='table table-bordered'>
-
-		<tbody>
-		$listado
-		</tbody>
-		</table>
-
-
-";
-}
-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 .= "<li class='list-group-item'><a href='?id=$row[id]' title=''>$nombre</a></li>";
-}
-$resultado = "
-
-
-		 <ul class='list-group'>
-		 $listado
-		 </ul>
-";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label>
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>";
-															}
-															$resultado .= "</ol>";
-										}
-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 ="
-			<h2>$nombre[0]</h2>
-			<legend>$descripcion[0]</legend>
-			";
-
-	}else {$id_form ="";}
-
-		$impresion = formulario_imprimir("$id_form","$control","$plantilla",$timestamp);
-		if($impresion !="") {
-			//$visitas= contar_visitas($control,'identificador') ;
-			//$visitas= "<small><i class='glyphicon glyphicon-eye-open'></i> $visitas</small>";
-		//$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 = "
-
-
-<div   id ='mostrar_identificador_$control' class='mostrar_identificador '>
-			$visitas
-				$datos_form
-				<!-- formulario_imprimir() -->
-
-								$impresion
-
-				<!-- formulario_imprimir() -->
-
-
-				$interaccion
-				$edicion
-</div>
-		"; }else {
-$resultado = $impresion;
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning alert_sin_resultados'><h1>No hay resultados 0002</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'>
-
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'>
-
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'>
-
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-
-
-		</form>
-	</div>
-</div>";
-
-
-
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='glyphicon glyphicon-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='glyphicon glyphicon-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='glyphicon glyphicon-reply'></i> Responder</a>
-	              	</div>
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);
-		$lista .="</div>";
-		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 ="
-<div style='text-align: center;'>
-
-<h2>Código de validación</h2>
-<H1>$rrn</H1>
-<h3>Por favor escribe este código en el campo correspondiente</h3>
-</div>
-
-			";
-		$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 .="<h2>Tienes un email  ! <pre>  $headers</pre>  $dato</h2>";
-$resultado="
-<div class='form-group has-error' id='codigo_confirmacion'>
-		<span class='help-block'>Escribe el código de confirmación que enviamos a tu correo. </span>
-			<div class='input-group'  id=''>
-				<span class='input-group-addon'>
-					<i class='glyphicon glyphicon-key'></i>
-				</span>
-				<input type='hidden' id='rrn' name='rrn' value='$rrncode'>
-
-				<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'>
-				<span class='input-group-btn'>
-				<div onclick=\"xajax_verificacion_email('$control_usuario',xajax.getFormValues('formulario_verificacion_email'),'confirmar');\"  class='btn btn-danger'>Comprobar </div>
-				</span>
-			</div>
-
-</div>
-";
-				  }
-			else {$resultado .="<span class='text-danger'><i class='glyphicon glyphicon-meh-o'></i> Error enviando correo</span>";}
-
-$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="<div class='alert alert-danger'>El codigo no es valido, inténtalo de nuevo</div>";
-		}
-
-$respuesta->addAssign("intento_$div","innerHTML",$resultado);
-return $respuesta;
-
-}
-else {}
-
-	if($validado[0] != md5("$email[0]")) {
-		$verificar_email = "
-		<div id='contenedor_login_validacion' >
-			<div  class='alert alert-dismissible alert-info'>
-				<button class='close' data-dismiss='alert'>x</button>
-				<h2><i class='glyphicon glyphicon-smile-o'></i> Vamos a validar tu email </h2>
-				<p>Enviaremos un código de verificación a para validarlo.</p>
-				<form role='form' id='formulario_verificacion_email'>
-					<div class='input-group has-success'>
-						<span class='input-group-addon'>
-							<i class='glyphicon glyphicon-envelope'></i>
-						</span>
-							<input type='hidden' id='control' name='control' value='$usuario[0]'>
-							<input type='email' class='form-control ' id='enviar_email' name='enviar_email' value='$email[0]'>
-						<span class='input-group-btn'>
-							<div onclick=\"xajax_verificacion_email('$control_usuario',document.getElementById('enviar_email').value,'enviar');\" class='btn btn-warning'>Enviar código</div>
-						</span>
-					</div>
-				<div id='$div'></div>
-				<div id='intento_$div'></div>
-	
-				</form>
-			</div>
-		</div>
-
-		";
-		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 = "
-				<p>
-					<img style='width:40px;' class='img img-circle' src='$avatar'> Hola $_SESSION[nombre_usuario_milfs]
-				</p> $validar_email
-				<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='glyphicon glyphicon-log-out'></i> SALIR </a>
-
-				";
-				return $formulario;
-			}else {
-
-/*				if($_SERVER['HTTP_HOST'] !="tupale.co" ) {
-			$social_login="";
-			$cols="12";
-				}
-				else {
-					*/
-					$cols="10";
-			$social_login="
-				<div class='col-md-12'>
-
-					<div class='list-group'>
-						<a class=' list-group-item btn btn-default ' href='./milfs'>MILFS</a>
-						<a class=' list-group-item btn btn-default ' href='#'  onclick=\"javascript: document.getElementById('div_formulario_session').className= 'visible col-md-12'; \">TUPALE.CO</a>
-						<a class=' list-group-item btn btn-default ' href='./sociallogin.php?provider=twitter'><i class='fa fa-twitter'></i> Twitter</a>
-<!-- 						<a class=' list-group-item btn btn-default ' href='./sociallogin.php?provider=facebook'><i class='fa fa-facebook'></i> Facebook</a> -->
-					</div>
-				</div>
-
-			";
-			//return $formulario;
-//				}
-			$formulario ="
-			$accion
-			<div class='row' id='formulario_session'>
-			$social_login
-				<div class='col-md-10 invisible' id='div_formulario_session' >
-					<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-						<div class='form-group>
-							<label for='usuario'>Usuario </label>
-								<input type='text' id='usuario' name='usuario' class='form-control'>
-						</div>
-						<div class='form-group>
-							<label for='password'>Clave </label>
-								<input type='password' id='password' name='password' class='form-control'>
-						</div>
-						<br>
-						<div class='row'>
-							<div class='col-xs-4'>
-								<div class='btn  btn-default ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','','$div') \">Recuperar</div>
-							</div>
-							<div class='col-xs-4'>
-								<div class='btn  btn-default  ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','','$div') \">Registrarse</div>
-							</div>
-							<div class='col-xs-4'>
-							<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs'),'$div') \">ingresar</div>
-							</div>
-						</div>
-					</form>
-				</div>
-			
-				<div id='resultado'></div>
-			</div>
-
-
-			";
-			$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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador código </div>";
-					$respuesta->addAssign("$div","innerHTML",$formulario);
-					return $respuesta;
-
-				}
-		$campos = formulario_areas('',$form_id,'campos');
-
-		$boton ="
-		<button id='boton_registro' href='#' class='btn btn-success btn-block'
-		onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro'),'$div'); \" >
-		Registrarse </button>
-		";
-		$control = md5(rand(1,99999999).microtime());
-			$formulario ="
-	<div class='container'>
-		<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-		<input type='hidden' value='$control' id='control' name='control'>
-		$campos
-		$boton
-		</form>
-			<div id='resultado'></div>
-	</div>
-		";
-
-			$respuesta->addAssign("$div","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-
-			if($datos =="") {
-			//$campos = formulario_areas('',$form_id,'campos');
-			$campos ="
-
-			<div class='form-group>
-			<label for='usuario'>Usuario</label>
-			<input type='text' id='usuario' name='usuario' class='form-control'>
-			</div>
-			<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-			<input type='text' id='codigo' name='codigo' class='form-control'>
-			</div>
-			";
-			$boton ="
-			<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro'),'$div'); \" >Solicitar clave</div>
-			";
-			$control = md5(rand(1,99999999).microtime());
-			$formulario ="
-			<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-			<input type='hidden' value='$control' id='control' name='control'>
-			$campos
-			<br>
-			$boton
-
-			</form>
-			<div id='resultado'></div>
-			";
-			}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 ="
-			<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-			<div class='row'>
-			<div class='form-group col-md-6'>
-			<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'>
-			</div>
-			</div>
-			<div class='col-md-6 form-group'>
-			<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'>
-			</div>
-			</div>
-			</div>
-			<div class='row'>
-			<div class='col-md-12'>
-			<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-			</div>
-			</form>
-
-			";
-
-			$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 ="
-			<h1>Hola $datos[usuario]</h1>
-			El código para recuperar tu contraseña es:
-			<h2>$password[0]</h2>
-			Regresa pronto :-)
-
-			";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-
-			}else{
-
-			$formulario="<div class='alert alert-warning'><h1>No encontramos tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";
-
-			}
-
-
-			}
-			$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-			$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 ="<div class='alert alert-success'><h1>Gracias por regresar $_SESSION[nombre_usuario_milfs] <i class='glyphicon glyphicon-smile-o'></i></h1></div>  ";
-			$respuesta->addScript("javascript:location.reload(true);");
-			}else {$resultado ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :(  </div>";
-			$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 ="<div class='alert alert-success'>Gracias por registrarse, Actualiza e ingresa con los nuevos datos. $login </div>";
-
-
-						}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-					}else {	}
-
-														}
-				require ("milfs/includes/parametrizacion.php");
-				$insertar_servicio = insertar_linea("form_datos","$login_formulario","$social_login_servicio","$portal_sigla",$control,"","","");
-			$resultado ="<div class='alert alert-success'>Gracias por registrarse, Actualiza e ingresa con los nuevos datos.   </div>";
-			$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 = "
-				<i>
-					<img style='width:40px;' class='img img-circle' src='$avatar'> $_SESSION[nombre_usuario_milfs] <a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir','$div') \"><i class='fa fa-sign-out'></i> SALIR </a>
-				</i> $validar_email
-				
-
-				";
-
-			}else{
-	      $formulario ="
-	      <div id='formulario_login' class='' >
-	      <div class=' btn btn-success btn-block' onclick=\"xajax_milfs_session('$login_formulario','$login_campo_usuario','$login_campo_password','','','$div');\">Ingresa</div>
-	      </div>
-	       ";
-	    }
-	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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$respuesta->addAssign("$div","innerHTML",$alerta);
-			return $respuesta;
-}
-	if (is_array($valores) ){
-	$valor = $valores['valor'];
-									}
-	else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-
-
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<span class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"> Buscar</div>
-				</span>
-			</div>
-
-
-";
-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 .= "
-
-						<div class='container-fluid ' role='row' id='grid_$i'  style='' class='alert alert-info'>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$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 ="<div class='col-sm-$cols thumbnail' style=''  ><div class=''> $datos</div></div>";
-
-	$encontrados .="$contenido  ";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<h2>Resultados de: $valor</h2>
-<div class=''>$encontrados </div>  ";
-
-$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 .= "
-
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador
-
-	<div id='grid_resultado'>
-
-		$contenido
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-
-	<div class=''  >
-		<div class='row'>
-			<div class='col-md-3'>
-
-				<img class='img img-responsive' src='$_SESSION[url]/milfs/images/secure/?file=150/$logo[0]'>
-			</div>
-			<div class='col-md-9'>
-			<h2>$nombre<small style='display:block;'>$descripcion </small></h2>
-			</div>
-		</div>
-	</div>";
-
-$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 ="
-	<div class=''>
-				<span class=' checkbox'>
-					<label>
-					<input class='text-success' type = 'checkbox' id ='continuar' name='continuar' value='1'> Continuar editando
-					</label>
-				</span>
-	</div> ";
-}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 ="<a class='btn btn-default btn-responsive prev ' href='#'><i class='fa fa-backward' aria-hidden='true'></i> Anterior</a>";}
-	if($fila == $cantidad) { $boton="
-	
-	<div class='row' id='respuesta_$control' name='respuesta_$control' >
-		</div>
-			$continuar_editando
-		<div class='row'>
-			<div class='col-xs-4'>
-				<div calss='input-group'>
-					<span class='input-group-btn'>
-						$anterior
-					</span>
-				</div>
-			</div>
-			<div class='col-xs-4'>
-				<div calss='input-group'>
-					<span class='input-group-btn'>
-						<div  onclick=\"  xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-					</span>
-				</div>
-			</div>
-			<div class='col-xs-4'>
-				<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-			</div>
-		</div>
-	
-	
-	";}
-	else{
-	$boton="	$anterior
-				<a class='btn btn-success btn-responsive next pull-right' href='#'>Siguiente <i class='fa fa-forward' aria-hidden='true'></i></a>";
-		}
-	if($tipo=='campos') {
-		$boton =""	;
-	}else{ $boton= $boton;}
-$resultado_campos .= "
-      <div class='tab-pane fade in $activo ' id='step_$fila'>
-         <div class=''>
-
-				<legend class='legend-area visible-xs' id ='legend_$fila'>$fila. $area_nombre </legend>
-				$campos
-
-				
-			</div>$boton
-		</div>
-				
-				";
-$controladores .= "	<li class='$activo  '>
-									<a href='#step_$fila' data-toggle='tab' data-step='$fila' data-toggle='tooltip' title='$area_nombre' data-placement='top' > <p>$fila<span class='hidden-sm'>. $area_nombre</span></p> </a>
-									
-							</li>
-
-";
-															}
-
-
-//// botonera form
-
-
-$metadatos = json_encode($metadatos);
-$muestra_form = "
-
-<div id ='div_$control'  >
-	<div class='container-fluid' id='myWizard'>
-		<div class='progress'>
-	     <div class='progress-bar progress-bar-success' role='progressbar' aria-valuenow='1' aria-valuemin='1' aria-valuemax='$fila' style='width: 10%;'>
-	      Paso 1 de $fila
-	     </div>
-		</div>
-	   <div class='navbar hidden-xs '>
-	      <div class='navbar-inner'>
-	            <ul class='nav nav-pills nav-justified'>
-	               $controladores
-	            </ul>
-	      </div>
-	   </div>
-	  
-			<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-			<input type='hidden'  id= 'metadatos'  name= 'metadatos' value='$metadatos' >
-	. 	<div class='tab-content'>
-			$resultado_campos 
-		</div>
-		<br>
-		
-	</div>
-			</form>
-</div>
-
-
-
-<script type='text/javascript' >
-
-
-
-
-$(document).ready(function(){
-
-        $('#muestraInfo').on('show.bs.modal', function () {
-            alert('The modal is about to be shown.');
-             $script; 
-    });
-});
-
-$('.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) / $fila ) * 100;
-  
-  $('.progress-bar').css({width: percent + '%'});
-  $('.progress-bar').text('Paso ' + step + ' de $fila' );
-  
-  //e.relatedTarget // previous tab
-  
-})
-
-$('.first').click(function(){
-
-  $('#myWizard a:first').tab('show')
-
-})
-</script>
-							";
-
-//// 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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0003</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){
-
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='glyphicon glyphicon-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-
-            }
-        }
-
-    }
-
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") {
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='glyphicon glyphicon-file'></i> <strong>$cantidad</strong> archivos, <i class='glyphicon glyphicon-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='glyphicon glyphicon-globe'></i> <strong>$mapa</strong>  georeferenciadas
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-
-    			$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 = "<a href = '$_SESSION[site]i$valor' target='referencia'>Ver referencia</a> ";
-}
-}
-
-	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="  <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-		if($row[control] == "$valor") {
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-															}
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0004 </div>";}
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> <a href='$crue[1]' target ='crear'>No hay datos <strong>Crear Nuevo</strong></a></div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 = "<a href = '$_SESSION[site]i$valor' target='referencia'>Ver referencia</a> ";
-	}
-		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.= "<a class='list-group-item btn-link' onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> ";
-
-															}
-
-$resultado .= "
-			<ul class='  list-group' style='max-height:300px; overflow:auto;' >
-			$lista
-			</ul>
-		<div id='$div' ></div>
-		<div class='text-$alert'>$aviso</div> ";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados para <strong>$valor</strong> <a class='btn btn-default ' href='../g$formulario' target='formulario'>Agregar nuevo registro</a></div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0006</div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0007</div>";}
-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="<div class='alert danger' style='color:white;'>La aplicación no tiene imágenes</div>";
-		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&registros=$registros&pagina=1&orden=$orden";
-					$href_2 = "$origen&registros=$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 .= "<li><a href='$href_1' title='Cambiar a grupo 1'  onClick=\"xajax_aplicacion_carrusel('$form','$registros','1','','$orden','$plantilla');\' style='cursor:pointer'><i class='glyphicon glyphicon-step-backward'></i></a> </li>
-           					<li><a href='$href_2' title='Cambiar a grupo ".($pagina-1)."'  onClick=\"xajax_aplicacion_carrusel('$form','$registros','".($pagina-1)."','','$orden','$plantilla');\" style='cursor:pointer'><i class='glyphicon glyphicon-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-
-        		if(isset($_REQUEST['registros'])) {
-					$href_3 = "$origen&registros=$registros&pagina=$x&orden=$orden";
-				}
-				else {
-					$href_3= "#cabecera#";
-					 }
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='$href_3'  title='Cambiar a grupo $x' onClick=\"xajax_aplicacion_carrusel('$form','$registros','$x','','$orden','$plantilla');\" style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='$href_3' title='Cambiar a grupo $x' onClick=\"xajax_aplicacion_carrusel('$form','$registros','$x','','$orden','$plantilla');\" style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         {
-         	if(isset($_REQUEST['registros'])) {
-					$href_4 = "$origen&registros=$registros&pagina=".($pagina+1)."&orden=$orden";
-					$href_5 = "$origen&registros=$registros&pagina=$pages&orden=$orden";
-				}
-				else {
-					$href_4= "#cabecera#";
-					$href_5= "#cabecera#";
-					 }
-         	 $link .= "<li><a  href='$href_4'  title='Cambiar a grupo ".($pagina+1)."' onClick=\"xajax_aplicacion_carrusel('$form','$registros','".($pagina+1)."','','$orden','$plantilla');\" style='cursor:pointer'><i class='glyphicon glyphicon-forward'></i></a></li>
-         				<li class=''><a  href='$href_5'  title='Cambiar a grupo $pages' onClick=\"xajax_aplicacion_carrusel('$form','$registros','$pages','','$orden','$plantilla');\" style='cursor:pointer'><i class='glyphicon glyphicon-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = "
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-			 <div class='text-center center-block'>
-			 <p>Los resultados se muestras en grupos de $registros registros</p>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>
-				</ul>
-				     $paginacion 
-			 </div>
-			</div>
-		</div> ";
-
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>";
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<hr> $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 ="
-<div class='lazy' style=' min-height: 500px; height: 500px;
-  background-image: url($_SESSION[url]images/secure/?file=600/$imagen[0]);
-  background-position: center center;
-  background-size: contain;
-	background-repeat:no-repeat;
- ' class='carrousel_item'>
-	<div class='center-block text-center' style='   '> 
-		<div class='carousel-caption d-none d-md-block'>
-		       <h2> $titulo[0]</h2>
-		        <small>$campo_limpio[562]</small>
-		
-		</div>
-	</div>
-</div>	
-	
-	";
-	
-		}
-
-			
-	$items .= " <div class='item $activo'  style='max-height: 600px;'  >
-							$contenido_desplegado
-					</div>";
-
-
-
-	$indicadores .= "<div><img  class='lazy' height='50px'  width='100px'   data-src='$_SESSION[url]images/secure/?file=150/$imagen[0]' src='' ></div>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado ";
-	$ordenado = ($ordenado +1 );
-
-															}
-	$items .= " <div class='item $activo'  style='max-height: 600px;'  >
-							<a  href='$href_4'  title='Mostrar mas' onClick=\"xajax_aplicacion_carrusel('$form','$registros','".($pagina+1)."','','$orden','$plantilla');\" style='cursor:pointer'>
-							<i style='font-size:400px;' class=' fa fa-plus-square-o'></i></a>
-					</div>";
-		$indicadores .= "<div>
-							</div>";
-$scripts ="
-
-			  <script type='text/javascript'>
-			    $(document).on('ready', function() {
-			    $('.lazy').slick({
-				  lazyLoad: 'ondemand',
-				  slidesToShow: 3,
-				  slidesToScroll: 1
-				});
-			    
-			 $('.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
-			});
-				
-			
-			    });
-			</script> 
-
-";
-
-$carrusel="
-	<div class='slider slider-nav1'>
-		$indicadores
-</div>
-<div class='slider slider-for1'>
-		$items
-	</div>
-
-$scripts
-";
- $contenido = " <div id= '$div'>$carrusel</div>";
-
-
-										}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 = "<div class='text-warning text-center' title='NO tiene permiso para agregar datos esta aplicación'><p> <i class='glyphicon glyphicon-key'></i></p></div>";
-		//$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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-    /*  background-image: url(milfs/images/iron.jpg); */
-			</style>
-<!-- <div style='width;100%; min-height:900px; padding: 0.3%; background-attachment:fixed; background-color: gray ;'> -->
-<div style=''>
-	<div class='container-fluid' style=' border-radius:3px;  box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >
-			
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-
-
-
-	</div>
-	<br>
-
-<div>	";
-			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 = "
-
-	<div class=''  >
-		<div class='col-xs-12 col-md-8 '>
-		$encabezado 
-		</div>
-		<div class='col-md-12 hidden-xs'>
-		<h2 class='pull-right '>$formulario_nombre[0]<small class='hidden-xs' > $formulario_descripcion[0]</small></h2>
-		</div>
-	
-	</div>";
-	$publico = remplacetas('form_id','id',"$id",'modificable',"") ;
-	$equipo = 	remplacetas('form_datos','control',$opciones,'equipo',"") ;
-	if($publico[0] =="0" AND $_SESSION[id] =="") {
-		$resultado = "  <div class='alert alert-danger'><h1><a href='./milfs/'>Ingresa</a> con tu usuario para agregar datos a esta aplicación. <i class='fa fa-user-circle-o'></i></h1>";
-		$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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		else{ $permiso_identificador =  ""; $salir="";}
-	
-if($equipo[0] =="" OR is_null($equipo[0]) ) {}else{
-if($tipo =='edit' AND ($_SESSION['equipo'] !== $equipo[0]  )){
-	$aviso = "<div class='alert alert-warning text-center '>
-					<h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado Para modificar esta información</small><br> pertenece a un grupo de trabajo diferente</h1></div>";
-
-				$resultado = "
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-
-			</div>
-				 ";
-//			$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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small> </h1></div>";
-			$seguridad ="
-
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-							
-			$resultado ="$cabecera
-			<div class='container-fluid' style=''>
-							$salir
-				$aviso
-				$seguridad
-			</div>
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white;  overflow:no;' id='contenedor_datos' >
-			
-
-			<!-- formulario_areas -->
-			$impresion
-
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' >
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='https://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-					$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	if($id_empresa !=''){
-			$onclick ="";
-						$accion = " href='./s$row[id_formulario]' ";
-		 }else {
-		 	$onclick ="";
-			$accion = " href='./e$row[id_empresa]' ";
-			}
-	 if ( isset ( $_SESSION['id'] ) ) {
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='glyphicon glyphicon-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i > 0 AND $divider > 0 ) {
-				if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			}
-			$i++;
-	$descripcion_corta = substr($row['descripcion'],0, $length = 100);
-		$geo = buscar_campo_tipo($row['id'],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='mapero.php?id=$row[id]' target='mapa'><i class='glyphicon glyphicon-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row['nombre'];
-
-if($row['nombre'] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#$accion' onclick=\" $onclick \" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row['nombre'] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}
-										else{
-/*$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'
-							$accion   class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-							*/
-$resultado_nav .= "<li class='dropdown'  >
-							<a class=''  role='button'
-							$accion   class='dropdown-toggle' > $nombre </a>
-							$contenido_listado
-							";
-
-						}
-
-$resultado_nav .="</li>";
-
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","","");
-if($row['nombre'] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row['id'],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row['id'],"$campo_imagen[0]");
-if(@$imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\");
-										background-repeat: no-repeat;
-										background-size :cover;
-										background-position: center; ";}
-else {
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF));
-//$bg = "background-color: #$color_aleatorio ;";
-$bg = "background-color: gray ;";
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-		if($divider > 0 ) {
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-		}
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-			if($tipo =="sitemap") {
-$contenido_listado = contenido_listado("$row[id]");
-}
-															}
-if($tipo =="sitemap") {
-$resultado = "$resultado $contenido_listado";
-}
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 <hr> ";
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-
-							$contenido_desplegado
-
-						 ";
-						$orden = $orden +800;
-														}
- 	$contenido = "
-
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0;
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-
-
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-
-
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = "
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado ";
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
-
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-
-
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>";
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-	$resultado="";
-
-$link=Conectarse();
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = mysqli_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse();
-$sql=mysqli_query($link,$consulta);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysqli_query($link,$consulta);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido");
-}
-return $contenido.$control;
-
-}
-
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	if($id=="") {
-					$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-					$id= $value[0];
-	}
-	$respuesta = new xajaxResponse('utf-8');
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla",'');
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;
-			}
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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_set_charset($link, "utf8");
-		$sql=mysqli_query($link,$consulta);
-		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 formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-		$sql=mysqli_query($link,$consulta);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-		$sql=mysqli_query($link,$consulta);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado[0]=mysqli_result($sql,0,"timestamp");
-		$resultado[1]=mysqli_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysqli_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row ' role='row'>
-	<div class='col-md-2  hidden-xs'>
-		<img id='logo_empresa' class='img img-rounded img-responsive' src='$_SESSION[site]milfs/images/secure/?file=150/$imagen[0]'>
-	</div>
-	<div class='col-md-10 col-xs-12'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead  hidden-xs'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small' id='empresa_pie'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a><span class='hidden-xs'> | $direccion[0] | $email[0] </span></div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if (  $_SESSION['grupo'] != 1  ) {	return;}
-	$div='contenido';
-
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='glyphicon glyphicon-cog'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('','');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='glyphicon glyphicon-plus'></i> <i class='glyphicon glyphicon-user'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='glyphicon glyphicon-cog'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysqli_query($link,$consulta);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		//$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_web =  remplacetas('empresa','id',"$_SESSION[id_empresa]",'web','');
-		$empresa_web =  "<strong>$empresa_web[0]</strong> (Para editar este campo comuníquese con el soporte de técnico )";
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=300/$background[0]";
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		$parametrizacion_css = parametrizacion_css("","","");
-		$subir_imagen = subir_imagen();
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]','imagen') \";
-								class='btn btn-success'>Cambiar logo</div><br>";
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-		$usuarios_autorizados = autorizar_usuarios('','','');
-	$resultado .="
-				<div class='img-round ' id='banner_imagen' style='
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ;
-					padding:10px;
-					padding:10px; width: 200px; height:200px;
-
-					'><a href='#logo'>Cambiar logo</a>
-
-
-
-				</div>
-				$usuarios_autorizados
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos del proyecto</h2>
-
-
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-
-
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</h2>
-
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-
-					</div>
-				</div>
-
-				$parametrizacion_css
-
-						<div style='' id='logo' >
-						<legend>Cambiar logo</legend>
-
-								$subir_imagen
-
-						</div>
-						<hr>
-				<div class='container alert alert-warning'>
-
-				$parametrizacion
-				</div>
-
-					";
-
-	$respuesta->addAssign($div,"innerHTML",$resultado);
-
-}
-
-return $respuesta;
-}
-$xajax->registerFunction("configuracion");
-
-
-function cambiar_imagen($imagen,$tabla,$id,$campo) {
-	$respuesta = new xajaxResponse('utf-8');
-$link = Conectarse();
-mysqli_set_charset($link, "utf8");
-$consulta = "UPDATE $tabla SET `$campo` = '".$imagen."' WHERE `id` = '$id';";
-	$sql_consulta=mysqli_query($link,$consulta);
-	if($sql_consulta) {
-if($tabla =='empresa') {
-	$respuesta->addAssign("banner","style.backgroundImage","url('images/secure/?file=600/$imagen')");
-	$respuesta->addAssign("formUpload_$id","innerHTML","");
-	return $respuesta;
-}
-else {
-		$respuesta->addAssign("banner_$campo","style.backgroundImage","url('images/secure/?file=600/$imagen')");
-	$respuesta->addAssign("formUpload_$campo","innerHTML","");
-	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_set_charset($link, "utf8");
-	$edit = "UPDATE  $tabla SET  $campo =  '$valor' WHERE id = '$key' $accion limit 1; ";
-	$sql=mysqli_query($link,$edit);
-		if(mysqli_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_set_charset($link, "utf8");
-	$borrar = "DELETE FROM $tabla WHERE id = '$key' limit 1";
-//	$edit = "UPDATE  $tabla SET  $campo =  '$valor' WHERE id = '$key' limit 1; ";
-	$sql=mysqli_query($link,$borrar);
-		if(mysqli_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_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);
-		if(mysqli_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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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_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);
-		if(mysqli_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 update_campo($tabla,$key,$campo,$valor,$accion,$div,$indice,$onchange){
-
-
-	$link=Conectarse();
-	mysqli_set_charset($link, "utf8");
-
-
-if($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysqli_real_escape_string($link,$valor)."' WHERE $indice = '$key' limit 1; ";
-	$sql=mysqli_query($link,$edit);
-		if(mysqli_affected_rows($link) != 0){
-
-														}
-	//	$campo = editar_campo("$tabla","$key","$campo","$valor","","","$indice");
-
-				$respuesta = new xajaxResponse('utf-8');
-				if($onchange =="") {
-			 $respuesta->addScript("javascript:location.reload(true);");; 
-		}else{$respuesta->addAssign($div,"innerHTML","");}
-	//	$respuesta->addAssign($div,"innerHTML",$edit); 
-		//$respuesta->addScript("$onchange"); 
-	return $respuesta;
-				
-
-								}
-
-
-
-}
-
-$xajax->registerFunction("update_campo");
-
-
-
-function editar_campo($tabla,$key,$campo,$valor,$accion,$div,$indice){
-//Definicion de variables
-//$accion = "";
-
-	$indice=$indice;
-	$valor = str_replace('"',"'", $valor);
-	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_set_charset($link, "utf8");
-	$consulta = "SELECT $id , $campo AS valor FROM $tabla WHERE  $id = '$key' LIMIT 1";
-	$sql_consulta=mysqli_query($link,$consulta);
-	$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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','cerrar','$div','$indice'); \">
-				<i class=' glyphicon glyphicon-remove-sign'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" >
-				<i class='glyphicon glyphicon-floppy-disk'> </i>
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text'
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-
-		</div>
-	";
-
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' glyphicon glyphicon-remove-sign'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" >
-				<i class='glyphicon glyphicon-floppy-disk'> </i>
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-
-		</div>
-	";
-	//$respuesta->addScript("(document.getElementById('".$campo."_".$id."".$rrn."').focus())");
-		}
-								}
-elseif($accion== "grabar"){
-
-	$edit = "UPDATE  $tabla SET  $campo =  '".mysqli_real_escape_string($link,$valor)."' WHERE $id = '$key' limit 1; ";
-	$sql=mysqli_query($link,$edit);
-		if(mysqli_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= $campo."_".rand(123,9999);
-  if($valor =="") {$aviso="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='glyphicon glyphicon-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-
-					";
-													}
-	else {$campo = "";}
-
-		return $campo;
-}
-
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-
-}
-
-$xajax->registerFunction("editar_campo");
-
-
-function formulario_imprimir($id,$control,$tipo,$timestamp) {
-$contenido_full="";
-	  			if(strlen($control) > 32) {
-					$identificador_original= $control;
-					$key =  substr($control, 32, $length = 40);
-					$control =  substr($control, 0, $length = 32);
-				} else {$identificador_original = $control;}
-
-$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','') ;
-		$id_seguridad = $id_seguridad[0];
-
-	}else{
-		$publico = remplacetas('form_id','id',$id,'publico','') ;
-		$id_seguridad = $id;
-	}
-		$empresa_seguridad = remplacetas('form_id','id',$id_seguridad,'id_empresa','') ;
-		if($publico[0] != "1" ){
-		$permiso_actual = 	remplacetas('form_permisos','control',"$control",'permiso',"") ;
-		$permiso_vencimiento = 	remplacetas('form_permisos','control',"$control",'vencimiento',"") ;
-		if($permiso_actual[0] =="") {$sigue_restringido = 1;}
-		elseif($permiso_actual[0] != $key) {$sigue_restringido = 1;}
-		elseif($permiso_vencimiento[0] < time()) {$sigue_restringido = 1;}
-		else{$sigue_restringido ="";}
-
-		}
-
-		if($publico[0] != "1" and ( $_SESSION['id_empresa'] != $empresa_seguridad[0] ) AND $sigue_restringido !="" ) {
-		$resultado ="<div class='alert alert-danger'><h6>Acceso restringido <small>Esta aplicación contiene datos privados </small>
-		<i class='glyphicon glyphicon-lock'></i></h6></div>";
-		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_contenido_campos , form_datos WHERE form_datos.control = '$control' AND form_contenido_campos.id_campo = form_datos.id_campo $where_timestamp GROUP BY form_contenido_campos.id_campo,form_datos.orden"	;
-	}
-	$control = mysql_seguridad($control);
-
-$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];
-		$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",'',"$timestamp");
-		$contenido_array = $contenido;
-		$contenido_multiple= $contenido[10];
-		//		$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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]milfs/images/secure/?file=600/$contenido'>
-									<a href='milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='glyphicon glyphicon-search-plus'></i></a>
-									";
-				$laimagen = $contenido;
-									 }else{$contenido=""; $laimagen="";}}
-				elseif($campo_tipo =='15' ){if($contenido !=""){
-				$imagen = "<img class='img img-responsive'  src='$_SESSION[url]milfs/images/secure/?file=600/$contenido'>
-
-									";
-				$laimagen = $imagen;
-									 }else{$imagen=""; $laimagen="";}}
-		elseif($campo_tipo=='29'){
-			$contenido="<img class='img img-responsive'  src='$contenido'>";
-		}
-		elseif($campo_tipo=='14'){
-			if($contenido !='') {
-													$campos = explode(" ",$contenido);
-														$lat = $campos[0];
-														$lon = $campos[1];
-														$zoom = $campos[2];
-														if($zoom < 4) { $zoom = 8;}
-			@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/pin.png");
-			$contenido = "
-
-			<img class='lazy img img-round img-responsive'  style='width:100%'  src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=250x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ if($tipo=="array"){ $contenido = $contenido;}else { $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}}
-		elseif($campo_tipo=='18'){ $contenido = "";}
-		elseif($campo_tipo=='20'){ $contenido = ""; $campo_nombre[0]="";}
-		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=="30" or $campo_tipo=="24"){
-			$contenido_full = json_render("$contenido","csv","$control");
-				$valor_actual = json_render("$contenido","html","$control");
-			 $contenido = "$valor_actual";}
-		elseif($campo_tipo =="31"){
-			if($multiple=="1") {
-					/*	foreach ($contenido[9] as $id_campo => $valor) {
-						$contenido_matriz .= "<li>$id_campo : $valor</li>";
-						$valor_actual = json_render("$contenido","html","$control");
-						}
-						$contenido=$contenido_matriz;*/
-						$valor_actual = json_tabla("$contenido_array[9]","$row[id_campo]","$control");
-						$contenido=$valor_actual;
-				} 
-			//$link_url = "$_SESSION[site]milfs/archivos/?archivo=$contenido";
-			//$contenido = "<a  id='link_$row[id_campo]_$row[orden]_formulario_imprimir' href='$link_url' target='_blank' >$contenido</a> $multiple  ";		
-		}
-		
-		elseif($campo_tipo=="24"){
-			$contenido_full = json_render("$contenido","csv","$control");
-				$valor_actual = json_render("$contenido","html","$control");
-			 $contenido = "$valor_actual";}
-
-		elseif($campo_tipo=='5' AND $contenido !=""){
-		if($tipo =="") {
-		$contenido = trim($contenido); $contenido = "
-
-		<iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe>";
-							}else {
-			//			$contenido =$contenido;
-			$contenido = trim($contenido);
-			$contenido = "
-
-		<iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe>";
-					}
-				}
-
-
-		else {
-	$html ="$contenido";
-	$contenido = nl2br($html);
-	//$contenido = Markdown($contenido);
-	$contenido=  html_entity_decode($contenido);
-			}
-
-
-//////}
-
-	$campo_nombre =  remplacetas('form_campos','id',$row['id_campo'],'campo_nombre','');
-	if($campo_tipo=='20'){ $campo_nombre[0] = "";}
-	$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; 
-		$caracteres = strlen("$contenido");
-	$campo_400[$row['id_campo']] = substr($contenido,0, $length = 400);//$contenido;
-		if($caracteres > 440) {	$campo_400[$row['id_campo']] .= "... <button type='button' class='btn btn-link' data-html='true' data-toggle='tooltip' data-placement='top' title='$contenido'>[+]</button>";	}
-	$campo_80[$row['id_campo']] = substr($contenido,0, $length = 80);//$contenido;
-		if($caracteres > 80) {	$campo_80[$row['id_campo']] .= "... <button type='button' class='btn btn-link' data-html='true' data-toggle='tooltip' data-placement='top' title='$contenido'>[+]</button>";	}
-	$campo_55[$row['id_campo']] = substr($contenido,0, $length = 55);//$contenido;
-		if($caracteres > 55) {	$campo_55[$row['id_campo']] .= "... <button type='button' class='btn btn-link' data-html='true' data-toggle='tooltip' data-placement='top' title='$contenido'>[+]</button>";	}
-	$campo_full[$row['id_campo']] = $contenido_full;
-	$campo_limpio[$row['id_campo']] = trim(strip_tags($contenido," "));
-	$campo_multiple[$row['id_campo']] = $contenido;
-	$campo_limpio_80[$row['id_campo']] = strip_tags($contenido);
-	$fecha  = date ( "Y-m-d h:i:s" , $row['timestamp'] );
-	$id_empresa = $empresa_seguridad[0];
-			$razon_social = remplacetas('empresa','id',"$id_empresa",'razon_social','') ;
-			$proyecto_nombre = $razon_social[0];
-			$slogan = remplacetas('empresa','id',"$id_empresa",'slogan','') ;
-			$proyecto_slogan = $slogan[0];
-	  		$web =  remplacetas('empresa','id',"$id_empresa",'web','');
-	  		$proyecto_web = $web[0];
-	  		$logo = remplacetas('empresa','id',"$id_empresa",'imagen','') ;
-	  		$proyecto_logo = $logo[0];
-
-
-	$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/pin.png");
-								$icon = "$_SESSION[site]milfs/images/iconos/pin.png";
-													}else{
-
-								$icon = $icono[0];
-													}
-						$icono  = "$icon";
-					//$array[icon][iconSize] =[50,50];
-
-																	}else{}
-$array = array();
-if($contenido_original !="") {
-	//// si el campo es tipo password (18) no se muestra
-			if($campo_tipo !='18'){
-				if(isset($_REQUEST['metadatos'])){$tipo="metadatos";}
-			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 .= "
-	<div  id='contenedor_$row[id_campo]' class='contenedor_campo'>
-		<pdata-toc-skip class='campo_contenido' id='contenido_$row[id_campo]'>
-				<span tiple= '$campo_tipo' class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</span><span class='pull-right'> $metadatos</span><br>
-				$contenido</p>
-	</div>";
-	
-}
-
-$array_contenido[$campo_nombre[0]][] = $contenido;
-}
-
-														}
-$array=$array_contenido;
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";
-							}
-
-		$resultado ="$full";
-
-	return $resultado;
-
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-<!-- empresa = $empresa // $javascript // $path // $id // $respuesta // $_SESSION[path_images_secure] //  -->
-<form method='post' class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" />
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload_$id'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div>
-</form>
-";
-return $resultado;
-
-}
-
-
-function formulario_importador($accion) {
-
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='glyphicon glyphicon-upload'></i> Importador</a>";
-
-	return $resultado;
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript
-target='iframeUploadArchivo'>
-<input type='hidden' id='path' name='path' value='$path'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 = "<i class='fa fa-check-square-o'></i>";
-  			$resultado = "GRABADO $fila".time();
-  			//$sql_resultado = "oK";
-  			}
-  			else {
-  			$class='danger';
-  			}
-  				}
-									}
-}
-//$resultado .= "<td  >$columna ( $control ) //- $controlcito - // $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='glyphicon glyphicon-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='glyphicon glyphicon-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-
-				else{$verificar_campo_aviso =""; $class='success';}
-}else{$verificar_campo_aviso =""; $class='success';}
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-
-
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='glyphicon glyphicon-trash'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail lazy'  data-src='images/secure/?file=150/$imagen' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-$td .= "<td class='planilla_$row[id_campo]' >$imagen</td>";
-	}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 = "<img class=' lazy img img-responsive'  $src='$_SESSION[site]milfs/images/secure/?file=$size/$contenido' style='max-height: $size"."px !important;' >"; }
-				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 = "
-		 <img class='lazy img-round img img-responsive'  $src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=250x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > 
- 						";
-											} else { $contenido ='';} 
-											
-											//return "vacio";
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			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="<img style=' max-height: 100px;' class='img img-responsive'  src='$contenido_completo'>";}
-			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 .= "<td style ='max-width:200px;' class='planilla_$row[id_campo]'>$contenido</td>";
-	}else{ $csv.="<td class='planilla_$row[id_campo]'></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==""){if($contenido !=""){$contenido = "<img class='img-responsive' style='width:100%' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='https://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='lazy img-round img img-responsive'  data-src ='http://staticmap.openstreetmap.de/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			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 .= "<th class='plantilla_$row[id_campo]'>$contenido</th>";
-
-	}else{
-
-	$td .= "<td class='planilla_$row[id_campo]'>$contenido</td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th class='control_planilla'>Identificador</th>"; }else {$identificador ="<td class='control_planilla'> $control </td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='glyphicon glyphicon-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger alert_sin_resultados'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0008 </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='glyphicon glyphicon-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0009</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='glyphicon glyphicon-trash'></i></a> ";
-				if($formato!='csv'){
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='glyphicon glyphicon-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros);
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													}
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = "
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='glyphicon glyphicon-eye-open'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='glyphicon glyphicon-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='glyphicon glyphicon-pencil'></i> Edit</a>
-								$imagen
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger alert_sin_resultados'><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0010 </h1></div>";
-																}
-	//$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 = "
-						<select  class='form-control' name='$name' id='$name' >
-							";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-
-
-	$listado .="<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-
-															}
-$resultado .= "	$listado</select >";
-										}
-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 = "<label for='id_campo'>Campo</label>
-						<select $onchange class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row['id_campo'] == "$categoria"){
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";
-										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='glyphicon glyphicon-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='glyphicon glyphicon-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='glyphicon glyphicon-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-
-						</div>
-					</div>
-				</div>
-			</div>
-		</form>
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div>
-
-";
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'>
-	</form><h2 class='alert alert-success'>El campo se creó con éxito
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$id_form_campo','contenido_$id_form_campo');\"><i class='glyphicon glyphicon-edit'></i></a> $campo_nombre ";
-$campos_formulario .= " <div name='crear_campos_consulta_$campo_area".$id_form_campo."' id='crear_campos_consulta_$campo_area".$id_form_campo."'>	$edicion</div>";
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}elseif($tipo =='10'){
-	$resultado ="<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Ejemplo - id_form:24 key:144 limit:100'>$valores</textarea> ";
-}elseif($tipo =='6'){
-	$resultado ="<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='id_form:2 key:789 descripcion:790'>$valores</textarea> ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinidos'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];
-}
-								}
-
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['tipo_campo_nombre']." [".$row['id_tipo_campo']."]</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='contenido_$area' id='contenido_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-
-
-
-
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />
-	<i class='glyphicon glyphicon-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_formulario_crear_campo('$area','','$div'); \"><i class='glyphicon glyphicon-plus-sign'></i> Campos </a>";
-
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'>
-
-	</form>
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-
-
-<hr>$buscador <br>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area".$campo."' id='crear_campos_consulta_$area".$campo."'>	</div>";
-while( $row = mysqli_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$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 .= "
-
-<div id='contenido_$misma_area".$row[id]."'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<textarea class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>$row[campo_nombre]</textarea>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='glyphicon glyphicon-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='glyphicon glyphicon-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_contenido_cambiar('contenido_$misma_area".$row[id]."','');\" ><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</div>
-		</div>
-	</div>
-
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='glyphicon glyphicon-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay formularios para editar</div>";
-										}
-										}
-
-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<h2>$nombre</h2>
-				";
-				
-				$parametrizacion = parametrizacion_titulo("$id",'','') ;
-$resultado .= "<label>Configuración del formulario</label>
-			<div class='alert alert-success'><div id='div_parametrizacion'>$parametrizacion</div></div>
-			";
-
-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 = "<a class='btn btn-link' onclick=\"xajax_formulario_crear_campo('','$row[id_campo]','contenido_$row[id_campo]');\"><i class='fa fa-pencil'></i><span class='hidden-xs'> Editar</span></a><span id='contenido_$row[id_campo]' style='display:inline;'></span>  ";
-				$tipo_nombre = remplacetas_noid('form_tipo_campo','id_tipo_campo',"$row[campo_tipo]",'tipo_campo_nombre',"",'') ;
-			//$multiple = $multiple[0];
-			
-
-$resultado .= "<div class='row alert alert-info'>
-						<div class='col-md-4'>
-							<ul class='list-group'>
-								<li class='list-group-item active'>Campo: <strong>$row[campo_nombre]</strong><br>Id: <strong>$row[id_campo]</strong> Tipo: <strong>$tipo_nombre[0]</strong></li>
-							</ul>
-						</div>
-						<div class='col-md-8' >
-							<label class='checkbox-inline'>
-							  <input type='checkbox' value='$valor_obligatorio' onclick =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \" $obligatorio_check>
-							  Obligatorio
-							</label>
-							
-							<label class='checkbox-inline'>
-							  <input type='checkbox' value='$valor_privado' onclick =\"xajax_campo_privacidad(this.value,'$row[id_campo]','$id_formulario','grabar')\" $privado_check>
-							  Privado
-							 </label>
-							
-							<label class='checkbox-inline'>
-							  <input type='checkbox' value='$valor_multiple' onclick =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \" $multiple_check>
-							  Multiple
-							</label>
-								<div class='row'>
-									<div class='col-md-3 hidden-xs'>
-									$edicion 
-									</div>
-									<div class='col-md-3 col-xs-6 '>	
-										<span style='display:inline;' title='ELIMINAR'  id='eliminar_$row[control]' >
-											
-												<a class='btn btn-danger btn-link' title='Click para cambiar el valor'
-												onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-												<i class='fa fa-ban'></i><span class=''> Quitar</span>
-												</a>
-										</span>
-									</div>
-									<div class='col-md-6 col-xs-6'>
-										<div class='input-group ' title='ordenar'>
-												<span class='input-group-addon' ><small><i class='fa fa-sort' aria-hidden='true' ></i></small><span class='hidden' id='orden_$row[control]'>$row[orden]</span></span>
-												<input  style='max-width: 100px;;' type='number' value='$row[orden]'  size='3' class='form-control' id='input_orden_$row[control]'
-												onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-											</div>
-											
-										</div>
-									</div>
-								</div>
-						</div>";
-															}
-
-$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 ="
-	<div name='atencion' id='atencion' style='display:inline'></div>
-		<form name='nuevo_campo' id='nuevo_campo' role='form'>
-			<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-			<input type='hidden' name='div' id='div' value='atencion'>
-		</form>
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='glyphicon glyphicon-plus-sign'></i> Crear campo</div>
-			</div>
-	</div>
-
-";
-								while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='glyphicon glyphicon-plus-sign'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";
-
-											}/// fin de consultar_campos
-
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='glyphicon glyphicon-exclamation-triangle'></i> 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="<i class='glyphicon glyphicon-exclamation-triangle'></i> 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 = "
-									<p class='text-danger'>Seguro que desea eliminar el campo de esta consulta?</p>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor'
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<i class='fa fa-ban'></i> Quitar del formulario
-								</a>";
-$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 ="<a title='Click para cambiar el valor'
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-
-$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 ="<a title='Click para cambiar el valor'
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='glyphicon glyphicon-plus-sign-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label>
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta
-	</div>
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'>
-	</div>
-	<div class='input-group '>
-
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";
-
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div',''); \"><i class='glyphicon glyphicon-list'></i> Formularios</a></li> ";
-
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-
-	}else{ $leyenda_filtro_grupo ="<legend>Administración de Formularios</legend>";
-	 unset($_SESSION['grupo_formularios']);
-	 }
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div',''); \"><i class='glyphicon glyphicon-list'></i> Formularios</a> ";
-$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 = "<input placeholder='Sensible a mayúsculas'  title='Sensible a mayúsculas' class='form-control' id='id_form' id='id_form' onchange=\"xajax_formulario_listado('','contenido',(this.value)) \">";
-				$listado_grupos ="
-		<div class='row'>
-			<div class='col-md-6'>
-				<div class='input-group'>
-					<span class='input-group-addon'>Grupos</span>
-					$listado_grupos
-					
-				</div>
-			</div>
-			<div class='col-md-6'>
-				<div class='input-group'>
-					<span class='input-group-addon'>Buscador</span>
-					$buscador
-					
-				</div>
-			</div>
-		</div>
-				";
- $clonar = clonar_formulario($formulario,$id_empresa,"","","formato");
- $mover = mover_formulario($formulario,$id_empresa,"formato");
-   			$nuevo_formulario = "
-				<div class='form-group'>
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='glyphicon glyphicon-plus-sign-o'></i> Crear formulario </a>
-				</div>";
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$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 ="<option value='$modificable[0]' selected>$Modificable</option>";
-			}
-		$modificable = "<tr><td>
-		<div class='input-group'>
-			<div class='input-group-addon'>
-			Formulario
-			</div>
-				<select class='form-control' onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-				$select_modificable
-					<option value='0'>Privado</option>
-					<option value='1'>Público</option>
-					<option value='2'>Semi-publico</option>
-				</select>
-
-
-						</td></tr>";
-
-
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='mapero.php?id=$id' target='mapa'><i class='glyphicon glyphicon-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'>
-								<input name='id' id='id' type='hidden' value='$row[id]'>
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-
-					</form>
-				</div>
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-
-								 		<div class='col-xs-6'>
-								 		<h4>$nombre_formulario[0]</h4>
-
-								    		<div style='display:none' id='div_mostrar_portal_$row[id]'></div>
-											<ul class='list-group'>
-												<li class='list-group-item'>
-												<a class='btn btn-default ' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='glyphicon glyphicon-upload'></i> Importar</a>
-								 			<a class='btn btn-default ' href='../g$id' target='formulario'><i class='glyphicon glyphicon-floppy-disk'></i> Llenar</a>
-
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='glyphicon glyphicon-eye-open'></i> Consultar</div>
-								    		<a class='btn btn-default btn-default collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		<i class='glyphicon glyphicon-edit'></i> Editar
-								    		</a>
-												</li>
-												<li class='list-group-item'>
-												<div class='input-group'>
-													<span class='input-group-addon'>NO</span>
-													<input type='range' value='$mostrar[0]'  class='form-control' NAME='mostrar_portal' id='mostrar_portal' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','mostrar_portal',(this.value),'div_mostrar_portal_$row[id]'); \"
-													min='0' max='1'  >
-													<span class='input-group-addon'>SI</span><span class='input-group-addon alert-success' id= 'div_$name'>Mostrar en el portal</span>
-												</div>
-												</li>
-												<li class='list-group-item'>
-												<div class='input-group'>
-													<span class='input-group-addon'>NO</span>
-													<input type='range' value='$llenar[0]'  class='form-control' NAME='llenar_portal' id='llenar_portal' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','llenar_portal',(this.value),'div_mostrar_portal_$row[id]'); \"
-													min='0' max='1'  >
-													<span class='input-group-addon'>SI</span><span class='input-group-addon alert-success' id= 'div_$name'>Llenar desde el portal</span>
-												</div>
-												</li>
-												<li class='list-group-item'>
-												<div class='input-group'>
-													<span class='input-group-addon'>NO</span>
-													<input type='range' value='$ver_data[0]'  class='form-control' NAME='ver_data_portal' id='ver_data_portal' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','ver_data_portal',(this.value),'div_mostrar_portal_$row[id]'); \"
-													min='0' max='1'  >
-													<span class='input-group-addon'>SI</span><span class='input-group-addon alert-success' id= 'div_$name'>Ver data desde el portal</span>
-												</div>
-												</li>
-
-											</ul>
-
-
-
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-
-								    	</div>
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-
-							   </div>
-
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='glyphicon glyphicon-trash'></i> Eliminar</a></div>
-											</div>
-										</div>
-
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>
-											<li class='list-group-item'>
-											
-													<div class='input-group ' >
-														<span class='input-group-addon primary'>Vista favorita <strong id='div_vista_favorita_$row[id]'>	$vista_favorita[0]</strong></span>
-														<select class='form-control' id='vista_favorita_$row[id]' name='vista_favorita_$row[id]' onchange=\"xajax_parametrizacion_linea('form_id','$row[id]','vista_favorita',document.getElementById('vista_favorita_$row[id]').value,'div_vista_favorita_$row[id]'); \">
-															<option value='$vista_favorita[0]' selected>$vista_favorita[0]</option>
-															<option value='libro'>Libro [b]</option>
-															<option value='aplicacion'>Aplicación [a]</option>
-															<option value='set'>Set de datos [s]</option>
-															<option value='mapa'>Mapa</option>
-															<option value='formulario'>Formulario</option>
-															<option value='presentacion'>Presentación</option>
-															<option value='timeline'>Timeline</option>
-															<option value='informe'>Informe</option>
-															<option value='planilla'>Planilla</option>
-															<option value='agenda'>Agenda</option>
-														</select>
-													</div>
-													
-											
-											</li>
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:145px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='glyphicon glyphicon-floppy-disk'></i>  Grabar y previsualizar</div>
-												</div>
-
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:200px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='glyphicon glyphicon-floppy-disk'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable
-											</div>
-										</div>
-								</div>
-						</div>
-
-					</div> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-
-	//$resultado .="";
-										}
-
-
-else{ $resultado .= "<div class='alert alert-warning' ><h2>No hay formularios para mostrar</h2></div> ";}
-
-		$resultado_formulario ="
-			<div class='panel-group' id='accordion_accion_formulario' role='tablist' aria-multiselectable='true'>
-
-				<div id='panel_administrar' class='panel  panel-collapse collapse in panel-default' role='tabpanel' aria-labelledby='encabezado_administrar' >
-					<div class='panel-heading'>
-						<a data-parent='#accordion_accion_formulario' class='btn btn-primary' role='button' data-toggle='collapse' href='#panel_administrador' aria-expanded='false' aria-controls='collapseExample'>
-							<i class='glyphicon glyphicon-bars'></i> Administrar
-						</a>
-						
-						<span class='panel-title'> Administración de formularios </span>
-					</div>
-					<div class='panel-body collapse $mostrar_panel' id='panel_administrador'>
-<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-						$item
-						</div>
-					</div>
-				</div>
-				$clonar
-				$mover
-			</div>
-
-		";
-/*
-
-		*/
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='glyphicon glyphicon-trash'></i> Aceptar</a>
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='glyphicon glyphicon-remove-sign'></i> Cancelar</a>
-				</div> ";
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='glyphicon glyphicon-trash'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'>
- $render
-
-</div>
-
-
-
-	";
-	$boton= "<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "
-
-<div id='wrap'>
-<div id='alert_$name' class='alert alert-info'>
-
-    
-      
-   
-   <input id='$name' name='$name' value='' type='hidden'/>
-    
-    <div class='row '>
-    	<div class='col-md-4'>
-    	<input class='form-control' value='' type='file' id='$campo-$item' name='$campo-$item' class='rm-input' 
-      			onchange=\"$onchange \"
-      			onclick=\"document.getElementById('progressBar_').value='0'; document.getElementById('image_preview_$name').src = '';
-      			 document.getElementById('alert_$name').className = 'alert alert-info';
-      			 document.getElementById('div_preview_$name').innerHTML = '';
-      			 \";
-      />
-    	</div>
-    	<div class='col-md-4'>
-    		<img id='image_preview_$name' style='max-width:200px;' alt='' /><div id= div_preview_$name></div>
-    	</div>
-    	<div class='col-md-4' id=''>
-	    	<div id='div_adjunto_$name'>
-	    	<div id='fileSize_$name'></div><div id='fileType_$name'></div><div id='fileName_$name'></div><div id='percentageCalc_$name'></div>
-	    	</div>
-    	</div>
-    </div>
-   
-
-
-</div>
-<progress id='progressBar_' value='0' max='100' class='rm-progress' style='width:100%'></progress>
-<div id='percentageCalc_'></div>
-
-</div>
-
-";
-
-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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 = "<input min='$min'  max='$max' value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='' > <label class='label_date'>$campo_descripcion </label> $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 = "<input min='$min'  max='$max' value='$value' type='datetime-local' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='' > <label class='label_date'>$campo_descripcion </label> $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 <small>$campo_descripcion</small> ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='glyphicon glyphicon-search'></i></div>
-			</span>
-		</div>
-
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-
-	<iframe id='mapita' src='./milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]$exif' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-
-																				 ";
-																				 //<iframe id='mapita' src='$_SESSION[site]milfs/mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]$exif' width='100%' height='300px'></iframe>
-					$cols='12';
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-						<code>Se enviará un email </code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "
-
-
-							<textarea class=' form-control'  cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]'  placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';
-			}
-																//$subir_imagen = subir_imagen('');
-		elseif($campo_tipo_accion == 'imagen'){ 
-		//	$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		//$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //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 = "
-
-			   	<div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"edit()\">Editor HTML</div>
-					<!-- <div href='#' id='edit' class='btn btn-default btn-xs' onclick=\"save_$clase_item()\">Cerrar</div> -->
-					<textarea  class='wysiwyg form-control $clase_item '  form-control ' cols='50'  rows='5' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >$value</textarea>
-
-					<script type='text/javascript'>
-
-						/*
-									//// wysiwyg
-									var edit_$clase_item = function() {
-									  $('.$clase_item').summernote({height: 250, codemirror: { theme: 'default' }});
-									};
-
-									var save_$clase_item = function() {
-									  var makrup = $('.$clase_item').summernote('code');
-									  $('.$clase_item').summernote('destroy');
-									};
-					*/
-									/*
-									$(document).ready(function() {
-									  $('.$clase_item').summernote();
-									});
-							*/
-					</script>
-
-					";
-			$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 /
-
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span>
-				<textarea class='form-control '  onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value),'');\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >$value</textarea>";
-			$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 <small>$campo_descripcion</small> "; $cols='12';	 }
-		elseif($campo_tipo_accion == 'radio'){
-			$select = radio_edit($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "$select <small>$campo_descripcion</small> ";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>";
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>";
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr>
-						$listado_campos
-					</table>
-				</div>
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 <small>$campo_descripcion</small>";
-			$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 <small>$campo_descripcion</small>";
-//			$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 <small>$campo_descripcion</small>";}
-		elseif($campo_tipo_accion == 'relacion'){
-			$select = relacion_select($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
-			$render = "$select  <small>$campo_descripcion</small>";
-			$cols='12';	}
-		elseif($campo_tipo_accion == 'buscador'){
-			$select = buscador_campo($id_campo,$id_form,$value,$id_campo."[".$item."]",$control,"");
-			$render = "$select <small>$campo_descripcion</small> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';
-		}
-		elseif($campo_tipo_accion == 'firma'){
-
-$render = "
-<input type='hidden' id='".$id_campo."[".$item."]'  name='".$id_campo."[".$item."]' >
-<iframe  width='100%' height='400px'  src='librerias/firma/modal.php?campo=$id_campo&item=$item' frameborder='0' allowFullScreen   ></iframe>
-";
-			$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 = "
-															<input min='$min' max='$max' value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' >
-															<code>(solo números)</code>$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 = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div>
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div>
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){
-			if ($item=='0'){
-$boton= "		<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-			</div>";}else{ $boton=""; }
-/*		$campo_multiple  = "
-	<div class='col-md-12' id='id_campo_$id_campo"."_X".$item."'>
-
-
-	</div>
-	
-	";*/
-}
-	if($item == 0) { $label = "<label class='label_formulario' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' label_formulario sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN
-			//	if($campo_tipo_accion == 'imagen'){		$label="";		$campo_descripcion="";		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label
-				<div class='col-md-12' data-html='true' data-toggle='tooltip' data-placement='top' title='$campo_descripcion'>
-				$render
-				<small></small>
-				</div>
-			</div>
-
-		</div>
-		$campo_multiple 
-		<div class='' id='multiple_id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo'>$boton</div>
-		</div>
-
-
-		";
-
-
-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 .= "<li>$contenido_campo[0]</li>";
-	$contenido_array[]=$contenido_campo[0];
-	$editable .= "<li>".editar_campo("form_datos","$identificador","contenido","")."</li>";
-	
-														}
-							}
-//							$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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("<p><br></p>", "", $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 ="
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='glyphicon glyphicon-check-square-o'></i>
-		 Gracias por aportar  $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div> ";
-
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]I$formulario[control]'>$_SESSION[site]I$formulario[control]</a></p>
-<p>
-<strong>Descargo de responsabilidades</strong>
-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: <a href='milfs/?psi' target='_psi'> Políticas de privacidad y protección de datos.</a>
-</p>";
-			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 ="
-
-			<div class='alert alert-success text-center'><h1><i class='glyphicon glyphicon-smile-o'></i><small> Todo bien pero al parecer no se modificaron registros</small></h1></div>";
-		$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= "<div style='' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','','".($item+1)."') \">
-		<i class='glyphicon glyphicon-plus-circle'></i> Agregar campo
-		</div>";
-				$resultado .= "
-				<div class='' id='multiple_id_campo_$id_campo"."_".($item+1)."'>
-					$boton
-			</div>";
-		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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='glyphicon glyphicon-log-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control","");
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-
-
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>
-				<img class='img img-responsive'  src='https://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='?form=$id'><i class='glyphicon glyphicon-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-
-	</div>";
-
-$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]");
-
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen
-				</div>
-			</div>
-	  </div>
-	}*/
-	$muestra_form = "
-	<div id ='div_$control' class=''   >
-<!-- Antiguo subir imagen -->
-
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='glyphicon glyphicon-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='glyphicon glyphicon-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-
-				$aviso
-				$seguridad
-			</div>
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0011</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0011</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0012</div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-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 .= "<option value='$row[campo_valor]' $selected > $row[campo_valor] </option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 013</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0014</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0014</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  >
-						<label>
-							<input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected >
-							 $row[campo_valor]
-						</label>
-					</div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0015</div>";}
-
-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=" <SELECT class='form-control' NAME='$name"."[]"."' id='$name"."[]"."' multiple >" ;
-	//$name= array();
-		while( $row = mysqli_fetch_array( $sql ) ) {
-			$existe = strpos($valor_actual, $row[campo_valor]);
-			if( $existe != ""){$selected="checked";}
-			else{$selected ="";}
-			$resultado .= "
-					<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  NAME='$name"."[]"."' id='$name"."[]"."'value='$row[campo_valor]' $selected >
-							 $row[campo_valor]
-						</label>
-					</div>";
-																	}
-	//$resultado .= "</select> $valor_actual";
-	}
-	else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0027</div>";}
-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=" <SELECT class='form-control' NAME='$name"."[]"."' id='$name"."[]"."' multiple >" ;
-		while( $row = mysqli_fetch_array( $sql ) ) {
-			$existe = strpos($valor_actual, $row[campo_valor]);
-			if( $existe != ""){$selected="selected";}
-			else{$selected ="";}
-			$resultado .= "<option value='$row[campo_valor]' $selected >$row[campo_valor]</option>";
-																	}
-	$resultado .= "</select> $valor_actual";
-	}
-	else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0026</div>";}
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle'></i> No hay resultados 0017</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = "<h1 class='text-center'><a href='../'>Continuar... </a></h1>";//  	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 = "
-			<li>
-				<a title='agregar usuarios' class='btn link' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\">
-				<i class='glyphicon glyphicon-user'></i> Gestión de usuarios</a>
-			</li>";
-	$menu =
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-
-        $listado
-			$usuarios
-         <li >$configuracion</li>
-
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-
-     $login
-
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-   }
-    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 ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'confirmar')\">Grabar </div>";
-$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","<br><br>$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 ="<div class='alert alert-danger'>Por favor escribe  una clave. $formulario[password_express_confirmar] // $formulario[password_express]</div> $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 ="<div class='alert alert-danger'>Por favor escribe y confirma una clave. $formulario[password_express_confirmar] // $formulario[password_express]</div> $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 <div class='alert alert-danger'>No hay un email válido //  $formulario[email_express_confirmar] </div>";
-		$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 ="
-<div style='border: solid 1px; padding:20px ; border-radius: 10px; background-color:#E6F8E0 '>
-<h1>Registro</h1>
-
-<hr />
-<h3>Código de validación</h3>
-<p>Bienvenido a nuestra aplicación.  Por favor digita el siguente código para validar tu cuenta.</p>
-<H1>$rrn</H1>
-
-
-</div>
-		$aviso
-			";
-
-mail("$email_envio","$asunto","$cuerpo","$headers") ;
-			$boton ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'validar');\">Confirmar</div>";
-			$control = MD5(mktime().$rrncode);
-	$resultado .="
-		<div class='row'>
-			<div class='col-sm-2'>
-			</div>
-			<div class='col-sm-8'>
-				<div class='form-group has-error' id='codigo_confirmacion'>
-				<span class='help-block'>Escribe el código de confirmación <strong>$rrn</strong></span>
-					<div class='input-group'  id=''>
-						<span class='input-group-addon'>
-							<i class='glyphicon glyphicon-key'></i>
-						</span>
-						<input type='hidden' id='rrn' name='rrn' value='$rrncode'>
-						<input type='hidden' id='hidden' name='control' value='$control'>
-						<input type='number' id='codigo_confirmacion' name='codigo_confirmacion' placeholder='Codigo de validación' class='form-control'>
-					</div>
-
-				</div>
-			</div>
-			<div class='col-sm-2'>
-
-			</div>
-		</div>
-	$boton
-	";
-									}
-
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-
-
-	}elseif($accion =="elegir") {
-		$form = "
-<div id='login_express'>
-	<div class='' id='datos_usuario'>
-		<div class='row' id=''>
-			<div class='col-sm-6'>
-				<div class='btn btn-primary  btn-block' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'nuevo');\" >Usuario nuevo</div>
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-success btn-block'  data-target=\"#modal_login\" data-toggle=\"modal\" >Ya estoy registrado</div>
-			<div>
-		</div>
-
-	</div>
-</div>
-		              <a target='_blank' href='http://qwerty.co/faq/category/19/privacidad-y-protecci%C3%B3n-de-datos.html'>Antes de continuar, por favor revisa nuestras Políticas de privacidad y protección de datos.</a> </p>
-		              ";
-				return $form;
-	}
-elseif($accion =="validar") {
-				$boton ="<div class='btn btn-block btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('$nombre_formulario'),'confirmar');\">Confirmar</div>";
-				$div = "registro_confirmacion_email";
-
-
-if($formulario[password_express_confirmar] =="" OR $formulario[password_express_confirmar] != $formulario[password_express] ){
-	$resultado ="<div class='alert alert-danger'>Por favor escribe y confirma una clave.</div> $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 = "<div class='alert alert-success'><h1>Bienvenido</h1>
-<p>Felicitaciones, tu registro se efectuó correctamente, ahora puedes usar nuestros servicios.</p>
-</div>";
-$div = "contenido";
-$respuesta->addAssign("$div","innerHTML",$resultado);
-return $respuesta;
-}else{
-$resultado = "<div class='alert alert-danger'><h3>Error</h3>El Código de confirmación no es correcto, por favor inténtalo nuevamente.</div>";
-}
-
-$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 ="
-<div class='input-group'>
-
-	<span class='input-group-addon'><i class=' glyphicon glyphicon-heart-empty'></i> Proyecto </span>
-
-	$empresa
-</div>
-
-";
-}
-$listado_usuarios = usuarios_listado($tabla_autenticacion,"");
-$mailer = mailer('','','','');
-$id_empresa = "document.getElementById('id_empresa').value";
-$equipo = equipos('',"$id_empresa",'equipo','') ;
-$form = "
-
-<div class='alert alert-warning'>
-<form class='form' id='$nombre_formulario' name='$nombre_formulario' >
-<input type='hidden' value = 'nuevo_$nombre_formato' id='nombre_formulario' name='nombre_formulario' >
-	<legend>Usuario </legend>
-		<div class='row'>
-			<div class='col-md-6'>
-				<label></label>
-		$empresa
-			</div>
-			<div class='col-md-6'>
-				<label></label>
-				<div class='input-group' id='equipo_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user '></i><i class='glyphicon glyphicon-user '></i>
-					</span>
-					$equipo
-
-				</div>
-				<div style='position:absolute; z-index:100; left: 50px;' id='div_equipo'></div>
-			</div>
-		</div>
-
-
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='email_express_grupo'>
-
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope'></i>
-					</span>
-					<input value=''  type='email' id='email_express' name='email_express' placeholder='Email' class='form-control'
-						onclick=\"(this.value=''); \"
-					 	onchange=\"xajax_validar_usuario('email',(this.value),'email_express','login'); \"  >
-				</div>
-			</div>
-			<div class='col-md-6'>
-				<label></label>
-				<div class='input-group' id='email_express_confirmar_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-envelope'></i>
-					</span>
-					<input value='' type='email' id='email_express_confirmar' name='email_express_confirmar' placeholder='Confirmar email' class='form-control'
-					onclick=\"(this.value=''); \"
-					onchange= \"xajax_confirma_campo((document.getElementById('email_express').value),(this.value),'email_express','email_express_confirmar'); \"  >
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='nombre_express'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user'></i>
-					</span>
-					<input type='text' id='nombre_express' name='nombre_express' placeholder='Nombre' class='form-control'>
-				</div>
-			</div>
-
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='apellido_express'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-user '></i>
-					</span>
-					<input type='text' id='apellido_express' name='apellido_express' placeholder='Apellido' class='form-control'>
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='documento_express_grupo' title='Documento de identidad'>
-
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-certificate'></i>
-					</span>
-					<input type='number' id='documento_express' name='documento_express' placeholder='Documento de identidad' class='form-control'
-					onclick=\"(this.value=''); \">
-				</div>
-			</div>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='telefono_express'>
-
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-phone'></i>
-					</span>
-					<input type='phone' id='telefono_express' name='telefono_express' placeholder='Teléfono' class='form-control'
-					onclick=\"(this.value=''); \">
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-6'>
-			<label></label>
-				<div class='input-group' id='password_express_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-lock'></i>
-					</span>
-					<input type='password' id='password_express' name='password_express' placeholder='Clave' class='form-control'
-					onclick=\"(this.value=''); \">
-				</div>
-			</div>
-			<div class='col-sm-6'>
-			<label></label>
-				<div class='input-group' id='password_express_confirmar_grupo'>
-					<span class='input-group-addon'>
-						<i class='glyphicon glyphicon-lock'></i>
-					</span>
-					<input type='password' id='password_express_confirmar' name='password_express_confirmar' placeholder='Confirma tu clave' class='form-control'
-					onclick=\"(this.value=''); \"
-					onchange= \"xajax_confirma_campo((document.getElementById('password_express').value),(this.value),'password_express','password_express_confirmar'); \" >
-				</div>
-			</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<br>
-				<div id='registro_confirmacion_email'>
-$boton
-				</div>
-
-			</div>
-		</div>
-
-</form>
-</div>
-
-<!-- listado_usuarios -->
-$mailer
-$listado_usuarios
-<!-- listado_usuarios -->
-
-";
-$respuesta->addAssign("$div","innerHTML",$form);
-return $respuesta;
-
-	}
-
-
-elseif($accion =="boton"){
-
-$modal ="
-		<form class='navbar-form navbar-left' role='form' id='form_contacto' name='form_contacto'>
-        <div class='form-group'>
-          <input type='text' class='form-control input-small' placeholder='Email o usuario' id='email' name='email'>
-        </div>
-        <div class='form-group'>
-          <input type='password' class='form-control input-small' placeholder='Clave ****' id='password' name='password'>
-        </div>
-        <div  class='btn btn-default' onclick=\"xajax_revisar_ingreso(xajax.getFormValues('form_contacto')) ; \"><i class='glyphicon glyphicon-log-in '></i></div>
-      </form>";
-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= "
-	<div class='container'>
-		<div class='col-md-6'>
-			<form id='buscar_funcionario' name='buscar_funcionario' >
-				<div class='form-group'>
-					<label for='documento'>Documento</label>
-					<input class='form-control' id='documento' name='documento' >
-				</div>
-				<div class='form-group'>
-					<div class='btn btn-success' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('buscar_funcionario'),'busqueda','$div');\" >Buscar</div>
-				</div>
-
-			</form>
-		</div>
-		<div class='col-md-6'>
-		<div class='btn btn-warning' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('buscar_funcionario'),'nuevo','$div');\">Usuario nuevo</div>
-		</div>
-	</div>
-	<div id='$div'></div>
-	";
-
-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 ="<ul>";
-		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 ="
-			<div class='input-group'>
-				<span class='input-group-addon'>
-					Grupo:
-				</span>
-				$grupo
-			</div>
-
-		";
-			}
-
-		//$ = editar_campo("$tabla_autenticacion",$row['id_usuario'],"","","","");
-	$listado_formularios = formulario_permisos_usuario("","$id",'');
-	$subir_imagen = subir_imagen("","");
-	$subir_firma = subir_imagen("","firma");
-	$resultado .= "
-	<div class='panel panel-default'>
-		<div class='panel-heading'>
-			<h2 >Perfil de usuario</h2>
-		</div>
-		<div class='panel-body'>
-			<div class='row'>
-				<div class='col-md-4'>
-					<div class='img-rounded img-responsive ' id='banner_imagen' style='
-
-						background-position:top center  ;
-						-webkit-background-size: cover;
-						-moz-background-size: cover;
-						-o-background-size: cover;
-						background-size: cover;
-
-						background-repeat:no-repeat;
-						background-image: url($imagen ) ;
-						padding:10px;
-						padding:10px;  min-height:600px;
-
-						'><a href='#logo'></a>
-
-
-
-					</div>
-
-				$subir_imagen
-				<input type='hidden' id='imagen' name='imagen'>
-				<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'$_SESSION[tabla_autenticacion]','$row[id_usuario]','imagen') \";
-								class='btn btn-default btn-sx'>Cambiar imagen</div>
-				</div>
-				<div class='col-md-8'>
-					<ul class='list-group'>
-						<li class='list-group-item'>Nombre de usuario: $username</li>
-						<li class='list-group-item'>Primer nombre: $p_nombre</li>
-						<li class='list-group-item'>Otros nombres: $s_nombre</li>
-						<li class='list-group-item'>Primer apellido: $p_apellido</li>
-						<li class='list-group-item'>Otros apellidos: $s_apellido</li>
-						<li class='list-group-item'>Fecha de nacimieno: $fecha_nacimiento</li>
-						<li class='list-group-item'>Teléfono: $telefono_celular</li>
-						<li class='list-group-item'>Titulo profesional: $titulo_profesional</li>
-						<li class='list-group-item'>Ocupación: $ocupacion</li>
-						<li class='list-group-item'>Cargo: $cargo</li>
-						<li class='list-group-item '>
-							<div class='row'>
-								<div class='col-xs-6'>$grupo</div>
-								<div class='col-xs-6'>$equipo</div>
-							</div>
-						</li>
-						<li class='list-group-item '><div class=''> $listado_formularios</div>
-
-						</li>
-						<li class='list-group-item '>
-						<h3>Firma escaneada</h3>
-											<div class='img-rounded img-responsive ' id='banner_firma' style='
-
-						background-position:top center  ;
-						-webkit-background-size: cover;
-						-moz-background-size: cover;
-						-o-background-size: cover;
-						background-size: cover;
-
-						background-repeat:no-repeat;
-						background-image: url($firma ) ;
-						padding:10px;
-						padding:10px; 
-						 min-height:300px;
-						width: 800px;
-
-						'><a href='#firma'></a>
-
-
-
-					</div>
-					$subir_firma
-				<input type='hidden' id='firma' name='firma'>
-				<div onclick = \"xajax_cambiar_imagen((document.getElementById('firma').value),'$_SESSION[tabla_autenticacion]','$row[id_usuario]','firma') \";
-								class='btn btn-default btn-sx'>Establece firma</div>
-				</div>
-				</li>
-					</ul>
-
-				</div>
-			</div>
-		</div>
-	</div>
-						";
-
-
-	}
-
-	$resultado .= "</ul>";}else {
-
-		$resultado ="<div class='alert alert-danger'>No existe el usuario </div>";
-	}
-
-				$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 ="
-	<div class='alert alert-info row'>
-	<h2>Crear un usuario</h2>
-		<form name='nuevo_usuario' id='nuevo_usuario'>
-
-		<fieldset>
-		<legend>Datos personales</legend>
-			<div class='form-group'>
-				<label for='p_nombre'>Primer nombre</label>
-				<input class='form-control' name='p_nombre' id='p_nombre'>
-			</div>
-			<div class='form-group'>
-				<label for='s_nombre'>Segundo nombre</label>
-				<input class='form-control' name='s_nombre' id='s_nombre'>
-			</div>
-			<div class='form-group'>
-				<label for='p_apellido'>Primer apellido</label>
-				<input class='form-control' name='p_apellido' id='p_apellido'>
-			</div>
-			<div class='form-group'>
-				<label for='s_apellido'>Segundo apellido</label>
-				<input class='form-control' name='s_apellido' id='s_apellido' >
-			</div>
-			<div class='form-group'>
-				<label for='fecha_nacimiento'>Fecha de Nacimiento</label>
-				<input class='form-control' name='fecha_nacimiento' id='fecha_nacimiento' type='date'>
-			</div>
-			<div class='form-group'>
-				<label for='documento_numero'>Documento de identidad</label>
-				<input class='form-control' name='documento_numero'  id='documento_numero' >
-			</div>
-			<div class='form-group'>
-				<label for='telefono_delular'>Teléfono</label>
-				<input class='form-control' name='telefono_celular'  id='telefono_celular' >
-			</div>
-		</fieldset>
-		<fieldset>
-		<legend>Datos de acceso</legend>
-
-			<div class='form-group'>
-				<label for='id_grupo'>Grupo</label>
-				$grupo
-			</div>
-			<div class='form-group'>
-				<label for='username'>Nombre de usuario</label>
-				<input class='form-control' name='username' id='username'>
-			</div>
-
-
-					<div class='form-group'  >
-						<label for='email'>Email</label>
-						<div class=''  id='email_grupo'>
-
-							<input class='form-control' name='email'  id='email'  onclick= \"(this.value='');(document.getElementById('email_confirmacion').value='')\" >
-						</div>
-					</div>
-
-					<div class='form-group' >
-						<label for='email_confirmacion'>Confirmar email</label>
-						<div class='' id='email_confirmacion_grupo'>
-
-							<input class=' form-control  ' name='email_confirmacion'  id='email_confirmacion' onchange= \"xajax_confirma_campo((document.getElementById('email').value),(document.getElementById('email_confirmacion').value),'email','email_confirmacion') \" >
-						</div>
-					</div>
-
-
-		</fieldset>
-		<fieldset>
-		<legend>Datos laborales</legend>
-			<div class='form-group'>
-				<label for='titulo_profesional'>Título profesional</label>
-				<input class='form-control' name='titulo_profesional'  id='titulo_profesional' >
-			</div>
-			<div class='form-group'>
-				<label for='ocupacion'>Ocupación</label>
-				<input class='form-control' name='ocupacion'  id='ocupacion' >
-			</div>
-			<div class='form-group'>
-				<label for='cargo'>Cargo</label>
-				<input class='form-control' name='cargo'  id='cargo' >
-			</div>
-		</fieldset>
-			<div class='form-group col-md-6'>
-				<div class='btn btn-success btn-block' onclick =\" xajax_buscar_funcionario(xajax.getFormValues('nuevo_usuario'),'grabar','$div');\" >Grabar</div>
-			</div>
-			<div class='form-group col-md-6'>
-				<div class='btn btn-danger btn-block' onclick =\" xajax_buscar_funcionario('','','$div');\" >Cancelar</div>
-			</div>
-		</form>
-	</div>
-
-	";
-
-	}
-	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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Username</th><th>Nombre</th><th>Email</th><th>Proyecto</th><th>Equipo</th><th></th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='glyphicon glyphicon-trash'></i></a>";}
-	else {$acciones="";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$username</td><td>$p_nombre $p_apellido</td><td>$email </td><td title='$row[id_empresa]'><strong>$empresa[0]</strong> <br> $grupo[0] </td><td>$equipo </td><td><div class='btn btn-warning btn-xs' onclick =\" xajax_buscar_funcionario('$row[id]','busqueda','$div');\" >Editar</div></td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning alert_sin_resultados'><i class='glyphicon glyphicon-exclamation-triangle '></i> No hay resultados 0018</div>";
-	}
-
-	if($div =="") {
-		$div="contenido";
-	//	$resultado ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \">Configuración multiempresa</a>";
-		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 .= "
-					<li class='list-group-item' >
-						<blockquote class='text-$alerta'>
-							<p>".strip_tags($row['mensaje'])."</p>
-							<footer>$usuario[0] $row[timestamp] </footer>
-
-						</blockquote>
-					</li>";
-
-	}
-$resultado= "
-	<div style='clear: both'></div>
-	<div class='mostrar_interacciones panel panel-default' >
-		<div class='panel-heading'>
-		<legend>Interacciones</legend>
-		</div>
-
-			<ul class='list-group'>
-				$listado
-			</ul>
-
-	</div>";
-}
-$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 @@
-<?php
-date_default_timezone_set('America/Bogota');
-
-
-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 ="<div class='alert alert-success'>
-	<h4>Respuestas:</h4>
-						<table class='table table-condensed '>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-			$respuesta = mostrar_identificador("$identificador","$row[form_id]","",'simple');
-			$fecha = date($format, $row['timestamp']);
-		$resultado .= "<tr><td> $respuesta <small>$timestamp</small></td></tr>";
-
-}
-	$resultado .="</table>
-	</div>";	
-}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 ="
-						<table class='table table-condensed '>";
-	while( $row = mysqli_fetch_array( $sql ) ) {
-		$resultado .= "<tr><td><a class='btn btn-success' onclick = \"xajax_formulario_embebido_ajax('$row[id]','$identificador','respuesta') \" title='$row[descripcion]'>$row[nombre]</a> $row[descripcion] </td></tr>";
-
-}
-	$resultado .="</table>";	
-}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 .= "<li><a href='#cabecera' title='Cambiar a la página 1'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a href='#cabecera' title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a  href='#cabecera'  title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a  href='#cabecera' title='Cambiar a la pagina $x' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  href='#cabecera'  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a  href='#cabecera'  title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_contenido_formulario('$form','$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-	$encabezado = " 
-		<div class='row'>
-			<div class='col-sm-12'>
-			</div>
-		</div>
-		<div class='row' id='botonera'>
-			<div class='col-sm-12'>
-				<ul class='pagination'>
-					<li  role='presentation'><span>$total_registros registros</span></li>	
-				</ul>
-				     $paginacion
-			</div>
-		</div>";
-						
-//	$total_registros = mysqli_num_rows($sql);
-/*	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	*/
-//	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-///$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="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-$linea .= landingpage_contenido_identificador("$row[control]","$id_form","landingpage",'');
-//$linea .= mostrar_identificador("$row[control]","$id_form","landingpage",'simple');;
-//$linea .= "<br>$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="	<div class='row'>
-		<div class='col-sm-7 col-md-2' >
-		
-		<div class='btn btn-success btn-block' onclick =\"xajax_formulario_embebido_ajax('$form','','nuevo');\"> <i class='fa fa-plus-square'></i> Agregar </a></div>
-		</div>
-		<div class='col-sm-7 col-md-5' >
-		$filtro
-		</div>
-		 $buscador
-	</div>";
-}
-$resultado = "
-<a name='cabecera'></a>
-<div id='mostrar_resultado'>
-$acciones
-
-$linea
-$encabezado
-</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$respuesta->addAlert("No hay resultados");
-return $respuesta;
-}
-
-	/*$datos = $resultado;
-	$div ="contenido_de_modal";
-	$resultado = "<div class=''> $datos</div>";
-	$div_contenido = "<div id='$div' >$div</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 .= "<div class='container-fluid ' role='row' id='grid_$i'  style=''>";
-	}
-		$i++;
-	$logo="<img class='img img-responsive img-rounded center-block' src='milfs/images/secure/?file=300/$row[imagen]'>";
-	$contenido ="
-	<div class='col-sm-$cols' style=''>
-		<a href='e$row[id]'>	
-			<div class='alert center-block' style='background-color: white; min-height: 400px;'>
-				$logo
-				<br>
-				<h2 class='text-center'>$row[razon_social]<br><small>$row[slogan]</small></h2>
-			</div>
-		</a>
-	</div>";     	
-		$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-		$encontrados .= "</div>	";
-	}
-														}
-	$resultado ="
-		<div class='container-fluid'>
-			$encontrados
-		</div>	
-	";
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-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 ="<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>";
-			$miniatura = "
-			<div class='thumbnail'>
-				<a href='i$identificador' >
-							<img src='$qr' alt='$identificador' title='' class='img img-rounded'>
-				</a>
-			</div>$uri";
-					
-	}else {
-		$miniatura ="<a href='i$identificador' >i$identificador</a>";
-		$mostrar_imagen = "<img src='$qr' alt='$identificador' title='' style='width:100%'; class='img img-responsive img-rounded'>";
-
-			
-
-		}
-
- //<img class='img-responsive img-rounded ' src='milfs/images/secure/?file=600/$imagen' alt=''>
-	//$impresion = contenido_mostrar("","$row[control]",'',"landingpage");
-	if($plantilla[0] !="" ) {
-	$impresion = mostrar_identificador($identificador,"","landingpage");
-	} else{ 
-	$contenido = mostrar_identificador($identificador,"","");
-	$impresion = "
-		<!-- plantilla landingpage $identificador -->
-	<br><div class='clearfix'></div>
-
-<a  name='control_$identificador'></a>
-    <div class='content-section-a'>
-
-        <div class='container-fluid'>
-		
-	         <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    <div class='clearfix'></div>
-                    	
-                     $contenido 
-                     $miniatura                  
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                   $mostrar_imagen
-                </div>
-            </div>
-
-			<div class='link-compartir text-center'><a href='i$identificador' ><i class='fa fa-share-square'></i> Compartir </a></div>
-        </div>
-        <!-- /.container -->
-
-    </div>		
-
-	<!-- plantilla landingpage --> 
-	
-	";
-	
-	}
- $linea = "
- 			$impresion 
- 			 <!-- formulario de respuesta -->
- 			 <div class='center-block' style='max-width:600px;'>
- 			 <div class='container-fluid'>
- 			 $respuestas
-
- 			 </div>
- 			 </div>
- 			 <!-- formulario de respuesta -->
- 					";
-
-	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 ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($cantidad / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$i','$div');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','1','$div'); \"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina-1)."','$div'); \"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','$x','$div');;\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_landingpage_contenido_formulario($form,'$registros','".($pagina+1)."','$div');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-	*/	
-		
-	//// 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 = "<a href='i$row[control]' > Ver mas ...</a>";
-	$linea .= landingpage_contenido_identificador($row['control']);
-	}	
-	$resultado_linea="<div id='x_$div'>$linea</div>";
-	}
-	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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "<a href='s$row[id]'><h3>Mas información</h3></a>";
-							$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 = "
-
-			<img class=' img-responsive img-rounded'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x300.png?access_token=$mapbox_token' >
-			"; }else{	$miniatura ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-									}
-		if($geo[0] !='') { $mapa= "<a href='milfs/map.php?id=$row[id]' target='mapa'>$miniatura</a>";}else {$mapa='';}
-			if ( $fila%2==0){
-
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-b'>
-
-        <div class='container'>
-            <div class='row'>
-                <div class='col-lg-5 col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-lg-offset-2 col-sm-6'>
-                    <img class='img-responsive' src='milfs/images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>			
-			
-			"; 
-			
-			}else{
-			$linea .= "
-			<a  name='formulario_$row[id]'></a>
-    <div class='content-section-a'>
-
-        <div class='container'>
-
-            <div class='row'>
-                <div class='col-lg-5 col-lg-offset-1 col-sm-push-6  col-sm-6'>
-                    
-                    <div class='clearfix'></div>
-                    <h2 class='section-heading'>$row[nombre]</h2>
-                    <p class='lead'>$row[descripcion]</p>
-                    $mapa
-                </div>
-                <div class='col-lg-5 col-sm-pull-6  col-sm-6'>
-                    <img class='img-responsive' src='milfs/images/secure/?file=600/$imagen' alt='$row[nombre]'>
-                    $contenido
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-			
-	</div>
-			";
-			}
-			
-		
-		//$linea .= "$fila $plantilla<h1>$row[nombre]</h1>";
-		$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 ="<h1><i class='fa fa-spinner fa-pulse'></i> $mensaje Procesando ...</h1>";
-$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 = "
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-		<select class='form-control' id='filtro_campos' onchange = \"xajax_wait('div_tabla_campos',''); xajax_campos_tabla(this.value,'div_tabla_campos'); \">
-			<option value=''>Seleccione</option>
-			<option value=''>Todos</option>
-			<option value='id_especialista'>Mis campos</option>
-			<option value='id_empresa'>Mi empresa</option>
-			<option value='vacios'>Vacios</option>
-			<option value='llenos'>Llenos</option>
-		</select>
-	</div>
-	
-	";
-	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 ="<small title='$row[campo_tipo]'>$tipo_nombre[0]</small> ";
-				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 = "<a class='btn btn-default' onclick=\"xajax_formulario_crear_campo('','$row[id]','contenido');\"><i class='fa fa-edit'></i></a>";
-				$class='success';
-				}else {
-				$class='';
-				$accion ="";
-				}
-				if($_SESSION['id'] == $row['id_especialista']) {
-					$row['id_especialista'] = "<i class='fa fa-heart'></i> $row[id_especialista]";
-				}
-			
-			$lineas .= "<tr class='$class'><td>$row[id]</td><td>$row[campo_nombre]</td><td>$row[campo_descripcion]</td><td title='Tipo $row[campo_tipo] ' >$campo_tipo</td><td>$row[campo_area]</td><td>$row[activo]</td><td>$row[id_empresa]</td><td>$row[id_especialista] $mio</td><td>$accion</td></tr>";
-			}
-	$tabla = "
-		<div id='div_tabla_campos'>	
-		<table class='table table-condensed table-striped table-hover'>
-			<tr><th>id</th><th>Nombre</th><th>Descripcion</th><th><i class='fa fa-list' title='Tipo'></i> Tipo</th><th><i  data-placement='top'  data-toggle='tooltip'  title='Área' class='fa fa-object-group'></i></th><th><i title='Estado' class='fa fa-eye'></i></th><th><i title='Empresa' class='fa fa-hospital-o'></i></th><th><i title='Propietario' class='fa fa-user'></i></th><td></td></tr>
-			$lineas
-		</table>
-	</div>
-	";
-	}
-	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 <!--  analizador -->$_SESSION[analizador]<!--  analizador --></script>";
-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="
-		<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \"><i class='fa fa-times-circle-o'></i></a>
-		<strong class='text-danger center'><i class='fa fa-exclamation-triangle'></i> No se encontraron resultados</strong>
-";}
-
-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 .= "	
-	<div onclick=\" xajax_limpia_div('muestra_geocoder');	document.getElementById('mapita').src='$link'; \"  style='padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-	<ul class='list-unstyled' >
-	<li><strong>$valor[display_name]</strong></li>
-	<!-- <li>Lat: $valor[lat] lon $valor[lon]</li> -->
-	<li><image src='$valor[icon]' > $ciudad $municipio $pais $departamento</li>
-	
-	</ul>
-	</div>
-			";
-//foreach ($valor as $clave => $valor) {   $linea .= "CLAVE : $clave > VALOR:  $valor"; }
-}
-$resultado = " <div style='width: 100%;'>
-					<a class='pull-right' onclick=\"xajax_limpia_div('muestra_geocoder'); \">Cerrar <i class='fa fa-times-circle-o'></i></a>
-					<br>
-					$linea 
-					</div>
-					<div class='text-center '  style='padding:5px; padding:5px; border-radius: 3px;margin:5px;border: 1px solid gray; background-color : white;'>
-					<small>$vacio $licencia</small>
-					</div>";
-}
-			//$div_contenido = "<div id='$div'>$div</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 id='$div'>$div</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 ="<a class='btn btn-warning' title='Configuración' href='#' onclick= \"xajax_multiempresa('empresa','$div') \"><i class='fa fa-cogs'></i><i class='fa fa-cogs'></i> Configuración multiempresa</a>";
-		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="<table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>Nombre</th><th>Sigla</th><th>Email</th><th>Web</th><th>Dirección</th><th>Teléfono</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('empresa','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a> Estado: $estado";}
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[id]</td><td>$razon_social</td><td>$sigla</td><td>$email</td><td>$web</td><td>$direccion</td><td>$telefono</td><td class='danger'>$acciones </td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-</table>
-<legend>Agregar empresa</legend>
-<div class='row'>
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'>Nombre</span>
-		<input placeholder='Nombre de la nueva empresa' class='form-control' type='text' id='razon_social'  name='razon_social' >
-	</div>
-</div>
-<div class='col-xs-4'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-		<input placeholder='Email de la nueva empresa'  class='form-control' type='text' id='email'  name='email' >
-	</div>
-</div>
-<div class='col-xs-3'>
-	<div class='input-group'>
-		<span class='input-group-addon'><i class='fa fa-globe'></i></span>
-		<input placeholder='Web de la nueva empresa'  class='form-control' type='text' id='web'  name='web' >
-	</div>
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success btn-block' onclick=\"xajax_multiempresa_crear('$tabla',xajax.getFormValues('agregar'),'$div'); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</div>
-<br>
-
-";
-//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 .= "<option value='$row[id_campo]'>$row[campo_nombre]</option>";
-	}
-	else{
-//$resultado .= " $row[id_campo] ";
-$resultado[] = $row['id_campo'];
-}
-}
-if($tipo=="select"){ 
-$resultado = "
-	<select class='form-control' id='id_campo' name ='id_campo'>
-		<option value='' >Campo</option>
-		$option
-	</select>";
-
-}
-//$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 = "
-		<form class='form' role='form' name='peticion' id='peticion' action='' target='rss' method='post'>
-
-
-					<div class='row'>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Inicio</span>
-								<input value = '2000-01-01' type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Fin</span>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-
-						<div class='col-lg-2'>
-							<div class='input-group'>
-								<span class='input-group-addon'>Frase</span>
-								<input value='$busqueda' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-3'>
-							<div class='input-group'>
-								<span class='input-group-addon'><i class='fa fa-filter'></i></span>
-							$campos
-							</div>
-						</div>
-						<div class='col-lg-1'>
-							<input type='hidden' value='$id_form' id='id_form' name ='id_form'>
-							<div class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'10','','filtro');\"><i class='fa fa-search'></i></div>
-						</div>
-					</div>
-
-
-		</form> 
-
-	";
-/////// FILTRO	
-	
-$boton_borrar = "
-
-		<a class='btn btn-default' onclick=\"xajax_borrar_tmp('div_resultados'); xajax_limpia_div('div_resultados');\"><i class='fa fa-trash-o'></i></a>
-	
-		 ";
-
-				if($formato!='csv'){ 
-	$boton_exportar = "	<a class='btn btn-default' OnClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'','','csv');\">Exportar <i class='fa fa-file-text-o'></i></a>";}
-						
-						        $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 .= "<li><a title='Cambiar a la página 1'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','1','');\"' style='cursor:pointer'><i class='fa fa-step-backward'></i></a> </li>
-           					<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina-1)."','');\"' style='cursor:pointer'><i class='fa fa-backward'></i></a> </li>";
-           }
-
-        for ($x=$page; $x<=$pages;$x++)
-        {
-
-
-            if($counter < $limit){
-                    	 if ($page == $x){
-					$link .=  "<li class='active'><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}else{
-                $link .= "<li class=''><a title='Cambiar a la pagina $x' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$x','');\"' style='cursor:pointer'>$x</a> </li>";
-													}
-												}
-            $counter++;
-        }
-        if ($page < ($pages - ($limit/2)))
-
-         { $link .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','".($pagina+1)."','');\"' style='cursor:pointer'><i class='fa fa-forward'></i></a></li>
-         				<li class=''><a title='Cambiar a la pagina $pages' onClick=\"xajax_consultar_formulario(xajax.getFormValues('peticion'),'$registros','$pages','');\"' style='cursor:pointer'><i class='fa fa-step-forward'></i> </a></li>"; }
-    }
-
-   $paginacion = "<ul class='pagination  '>$link</ul>";
-						
-						
-		
-	
-	$encabezado = " <div class='row'>
-	<div class='col-sm-12'>
-						$peticion
-						</div>
-						</div>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>
-								<ul class='pagination'>
-									<li  role='presentation'><span>$total_registros registros</span></li>
-									<li role='presentation'>$boton_borrar</li>
-									<li role='presentation'>$boton_exportar</li>
-		
-								</ul>
-								     $paginacion
-							</div>
-						</div>";
-						
-	$total_registros = mysqli_num_rows($sql);
-	$nombres_campos = listar_campos_formulario("$id_form","nombres");
-	foreach($nombres_campos as $campo_nombre=>$nombre){
-		$listado_nombres .= "<th>$nombre</th>"; 
-	}
-	$listado_nombres = "<tr><th class='actions' ></th><th>Identificador</th><th></th>$listado_nombres </tr>";
-$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 .= "
-		<td title='$tipo_campo[0]' >
-			<div <div class='thumbnail'>
-		<img class='img img-responsive ing-rounded' src='$_SESSION[url]images/secure/?file=150/$contenido[0]'>
-				<div class='caption'><input onclick='select()' style='width:100px;' value='$_SESSION[url]images/secure/?file=150/$contenido[0]'></div>
-			</div>
-			</td>";
-		}
-		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 .= "<td title='' >$editar_contenido</td>";	
-			}
-		else {
-@$listado_campos .= "<td title='$tipo_campo[0]' >$contenido[0]</td>";
-}
-
-	 }
-	 if (!is_array($listado_campos)){$listado_campos="<td >$listado_campos</td>";}else {$listado_campos=$listado_campos;}
-	 	$menu ="<td nowrap style='width:100px;' class='actions' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group'>
-								<a class='btn btn-default' target='form' href='../i$row[control]'><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../d$row[control]'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-$lineas .= "		<tr>$menu<td>$row[control]</td>$listado_campos</tr>";
-
-															}
-
-$tabla ="
-	<table class='table table-condensed table-striped table-bordered table-responsive' >
-	<thead>$listado_nombres</thead>
-	<tbody >
-	$lineas
-	</tbody>
-	</table>";
-$resultado = "
-$encabezado
-
-<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados' >
-
-$tabla 
-	
-	</div>
-";
-										}
-else {
-$resultado ="<div class='alert alert-warning' ><h1>No hay resultados</h1> $consulta_limite</div>";
-$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			
-$datos ="$boton_descarga";
-}else {
-
-$datos = $resultado;
-}
-$div ="contenido_de_modal";
-$resultado = "<div class=''> $datos</div>";
-			$div_contenido = "<div id='$div' >$div</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 = "
-<div id='resultado_parametrizacion'></div>
-<form id='otra_parametrizacion'>
-	<fieldset>	
-	<legend>Hiperparametrizador <span class='badge'>Experimental</span></legend>
-		<div class='row'>
-			<div class='col-sm-4'>
-				
-				<div class='form-group'>
-					<label for='tabla'>Tabla</label>
-					<input class='form-control' id='tabla' name='tabla'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='campo'>Campo</label>
-					<input class='form-control' id='campo' name='campo'>
-				</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='form-group'>
-					<label for='opcion'>Opción</label>
-					<input class='form-control' id='opcion' name='opcion'>
-				</div>
-			</div>
-		</div>
-				<div class='form-group'>
-					<label for='descripcion'>Descripción</label>
-					<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-				</div>
-				<div class='form-group'>
-					<div class='input-group-btn'>
-						<div class='btn btn-default btn-warning pull-right' onclick=\"xajax_parametrizacion_linea(document.getElementById('tabla').value,document.getElementById('campo').value,document.getElementById('opcion').value,document.getElementById('descripcion').value,'resultado_parametrizacion'); \"><i class='fa fa-save'></i> Grabar</div>
-					</div>
-				</div>
-	</fieldset>
-</form>
-";
-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 = 
-
-	"
-<div id='confirmar_envio_email'>
-	<div class='input-group' id='input_email_envio' >
-		<span class='input-group-addon'><i class='fa fa-envelope'></i></span>
-			<input class='form-control' type='email' id='email_envio' name='email_envio' value='$email[0]' >
-		<div class='input-group-btn'>
-			<div class='btn btn-warning' onclick=\"xajax_email_contenido('$id','$control','$id_campo',(document.getElementById('email_envio').value)); \">Enviar</div>
-		</div>
-	</div>
-</div>	";
-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
-<div style='border 1px solid black; border-radius: 30px; '>$impresion</div>";
-$asunto= "[MILFS] $nombre_formulario[0]";
-$cuerpo ="
-<!-- plantilla email -->
-$impresion
-<!-- plantilla email -->
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]i$control'>$_SESSION[site]i$control</a></p>
-<p>Saludos de MILFS</p>
-";
-			if(mail("$email_envio","$asunto","$cuerpo","$headers")){ $exito .="<strong class='text-suggest'>Se envió un email a $email_envio</strong>"; }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 = "<img class='img-round img-responsive ' style='width:100%' src='images/secure/?file=300/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-
-	//$prueba = json_decode($prueba);
-
-	$resultado ="
-	<div style='border-radius:10px  ;
-			vertical-align: top;
-			background-color:white  ;
-			right:5px  ;
-			position:absolute  ;
-			top:5px;
-			padding:5px  ;'  
-			class='panel-map' id='panel_map_$id' >
-					<A href='#' onclick=\"xajax_limpia_div('panel_map_$id'); \"><span class='pull-right'><i class='fa fa-times'></i></span></A>
-			<div role='row' class='row center-block' >
-				<div class='col-xs-4 col-md-12'>
-				$imagen
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<h4 class='text-center'> $nombre[0]<small>
-					$descripcion[0]</h4> 
-					
-				</div>
-				<div class='col-xs-8 col-md-12'>
-					<p>$razon_social[0]</p>
-					<A target='milfs' HREF='https://github.com/humano/milfs'><small class='pull-right'>MILFS</small></A>
-				</div>
-			</div>
-	</div>
-		";
-	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 ="
-<div>
-				<ul id='listado_parametrizacion' class='nav nav-tabs'  role='tablist'>
-					<li role='presentation' class=''>
-						<a  href='#'  aria-expanded='true' id='regresar' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  onclick=\"xajax_formulario_listado('','contenido'); \" class='' > <i class='fa fa-arrow-left'></i> </a>
-					</li>
-					<li role='presentation' class=''>
-						<a  href='#'  id='plantillas_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_plantilla('$perfil','div_parametrizacion','boton') \" >Plantillas</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='titulo_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'   class='' onclick=\"xajax_parametrizacion_titulo('$perfil','div_parametrizacion','') \" >Títulos</a>
-					</li>
-					<li role='presentation' class=' '>
-						<a  href='#' id='categorias_tabs' role='tab' data-toggle='tab' aria-controls='div_parametrizacion'  class=''  onclick=\"xajax_parametrizacion_categoria('$perfil','categorias','div_parametrizacion') \" >Categorías</a>
-					</li>
-				</ul>
-			
-				<div class='tab-content' style ='min-height:350px;' >
-					<div role='tab-panel fade' class='tab-panel active' id='div_parametrizacion'>
-					<legend>Parametrización</legend>
-					<p>Parametrización del formulario <stron>$nombre[0]</strong>. Por favor seleccione una opción</p>
-					</div>
-				
-				</div>
-</div>
-			";
-	$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 = "<label for='id_campo'>Filtro</label>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' >
-							<option value=''>Todos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >";
-										}
-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 = "<div class='' style='vertical-align: top; text-align:center;'>";
-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 .= "<div class='' style='width:50px; heigth:100px; float:left; vertical-align: top; margin: 5px; text-align:center'><img style=' height:50px;' class='' src='$icono' style=''><small>$contenido</small></div>";
-															}
-$resultado .= "	</div >";
-										}
-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 = "
-		<br>
-		<p>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. 
-		<strong>Es necesario que el formulario que se va a categorizar tenga multiples datos grabados en el campo que se categoriza </strong> </p>
-		$categorias 
-		<form id='form_parametrizacion_categoria' name='form_parametrizacion_categoria' role='form' >
-		<input type='hidden' value='$perfil' id='perfil' name ='perfil'>
-		<input type='hidden' value='categoria' id='tipo' name ='tipo'>
-		<div id='parametrizacion'></div>	
-			<label for='icon'>Icono para la categoría</label>
-			<div class='input-group'>
-				
-				<span class='input-group-addon'>URL</span>
-			<input class='form-control' id='icon' name='icon' type='text'>
-			</div>
-			<br>
-			<div id='parametrizacion_validacion' name='parametrizacion_validacion' ></div>
-			<div class='btn btn-default btn-block'  onclick=\"xajax_parametrizacion_categoria('$perfil','grabar','$div',xajax.getFormValues('form_parametrizacion_categoria')) \" >Grabar</div>
-		</form>
-	";
-	$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 =" <img src='$url_icon'>  $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 ="<i class='fa fa-picture-o'></i>"; $identificador=" <img  class=\"img img-responsive img-rounded\" src=\"images/secure/?file=600/\$campo[$row[id_campo]]\"  />";}
-	else {$imagen=''; $identificador =" \$campo_limpio[$row[id_campo]] ";}
-$listado .= "<li class='list-group-item'><span style='cursor:move;'  draggable='true' id='$identificador ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> $imagen $row[campo_nombre] [$row[id_campo]]</span></li>";
-
-}
-/*
-$campo_400[$row[id_campo]] 
-	$campo_80[$row[id_campo]] 
-	$campo_55[$row[id_campo]] 
-*/
-$resultado = "	
-
-<div style='max-height:400px; overflow:auto;'>
-
-		 <ul class='list-group' id='listado_elementos'>
-		 <li class='list-group-item'>
-		 
-		 			 	
-		 	</li>
-		 $listado 
-		 <li class='list-group-item'><span style='cursor:move;'  draggable='true' id='\$fecha ' ondragstart=\"evdragstart(event,this)\"  title=' Fecha'>Fecha</span></li>
-		 </ul>
-</div>
-";
-}
-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 .= "<option value='$row[id]'>$row[opcion]</option>";
-$li .= "<tr>
-				<td>$plantilla_nombre</td>
-				<td><a href='#' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','$row[id]');\" ><i class='fa fa-pencil-square-o'></i></a></td>
-				<td><a  href='#'  onclick=\"xajax_mostrar_modal('$formulario','$ultimo[1]','$plantilla_nombre');\" ><i class='fa fa-eye'></i></a></td>
-			</tr>
-			";
-//mostrar_modal($form,$control,$plantilla)
-}
-$resultado = "	
-	<div class='input-group'>
-		<span class='input-group-addon'>Seleccione una plantilla</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_plantilla('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-		 <span class='input-group-btn'>
-		 <div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class=' btn btn-success'><i class='fa fa-plus-square'></i> Nueva plantilla</div>
-		 </div>
-	</div>
-	
-";
-$lista  ="
-<br>
-<p>Las plantillas se usan para dar formato a los datos en el momento de presentarlos, se puede usar etiquetas <b>HTML5</b>, <b>CSS3</b> y clases de <b>Bootstrap</b> </p>
-<table class='table table-striped'>
-<tr>
-				<th>Nombre</th>
-				<th>Editar</th>
-				<th>Ver</th>
-</tr>
-$li
-</table>
-<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-default btn-block'>Nueva plantilla <i class='fa fa-magic'></i> </div>
-";
-	$respuesta->addAssign("$div","innerHTML","$lista");
-	return $respuesta;
-	
-}
-else { 
-
-$resultado ="
-<br>
-<div class='alert alert-warning'>
-	<h1>Aún no se han definido plantillas para este formulario 
-	<div onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" class='btn btn-success'><i class='fa fa-plus-square'></i>  Crear una plantilla</div>
-	</h1>
-</div>
-";
-	$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 ="
-<br>
-<form id='form_plantilla' name='form_plantilla'>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-10'>
-				<input style=' padding:0px; border-radius:2px; height:25px;' type='color' name='favcolor' value='#2ec243' onchange=\" (document.getElementById('colores').innerHTML=('<div class=\' btn text-center\' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'background-color:'+(this.value)+'; \' style=\'cursor:move; background-color:'+this.value+'\'> A </div> <div class=\'btn \' ondragstart=\'evdragstart(event,this)\' draggable=\'true\' id= \'color:'+(this.value)+'; \' style=\'border: solid 1px; cursor:move; color:'+this.value+'\' >  <strong>A</strong> </div>')); \">
-				<div style='display:inline;' id='colores'>
-				<div class='btn btn-default' style='cursor:move; background-color:#46a254; '  draggable='true' id= 'background-color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move; color:#46a254; '  draggable='true' id= 'color:#46a254;  '  ondragstart=\"evdragstart(event,this)\"  > A </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <div class=\"  \"> </div>  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'> div</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h1 > </h1>  ' ondragstart=\"evdragstart(event,this)\"  > H1 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h2 > </h2>  ' ondragstart=\"evdragstart(event,this)\"  > H2 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <h3 > </h3>  ' ondragstart=\"evdragstart(event,this)\"  > H3 </div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <ul >\n<li > </li>\n<li > </li>\n</ul>' ondragstart=\"evdragstart(event,this)\"  > <i class='fa fa-list-ul'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <li > </li> ' ondragstart=\"evdragstart(event,this)\"  > &lt;li&gt;</div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' <img src =\" \" alt=\" \" title=\" \"  class=\"img img-responsive img-rounded\">  ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'><i class='fa fa-picture-o'></i></div>
-				<div class='btn btn-default' style='cursor:move;'  draggable='true' id=' class=\"fancy\" ' ondragstart=\"evdragstart(event,this)\"  title=' $row[id_campo]'>MB</div>
-			</div>
-	</div>
-		<div class='row'>
-			<div class='col-xs-2'>
-				<div style='max-height:400px; overflow:auto;'>
-				$listado_clases
-				</div>
-			</div>
-			<div class='col-xs-8'>
-			<textarea style= 'height:390px; ' id='text_contenedor'  name ='text_contenedor' class='form-control' placeholder='Puede arrastrar los valores aqui o escribir código HTML o CSS '>$descripcion[0]</textarea>
-			</div>
-			<div class='col-xs-2'>
-				$campos
-			</div>
-		</div>
-	<div class='row'>
-			<div class='col-xs-2'>
-			
-			</div>
-			<div class='col-xs-5'>
-				<div class='input-group' id='input_nombre_plantilla'>
-					<span class='input-group-addon'>Nombre:</span>
-					<input class='form-control' id='nombre_plantilla' name='nombre_plantilla'  value='$plantilla_nombre'>
-				</div>
-			
-			</div>
-			<div class='col-xs-3'>
-			<div class='btn btn-success' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div',xajax.getFormValues(form_plantilla)) ;\" TITLE='GRABAR'><i class='fa fa-save'></i></div>
-			<div class='btn btn-warning' onclick=\"xajax_parametrizacion_plantilla('$formulario','$div','formulario') ;\" title='NUEVA' ><i class='fa fa-magic'></i></div>
-
-			<div class='btn btn-danger' onclick=\"xajax_limpia_div('$div') ;\" TITLE='CANCELAR' ><i class='fa fa-times-circle'></i></div>
-			</div>
-			
-	</div>
-</form>
-";
-
-}
-
-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 = " <legend>$valores[nombre_plantilla]</legend>  $datos ";
-			$div_contenido = "<div id='modal_$div'>$preview</div>";
-			$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 .= "<option value='$row[id_campo]'>$row[campo_nombre]  [$row[id_campo]]</option>";
-}
-$resultado = "	
-	<br>
-	<p>El campo titulo, se usa como indice del formulario en algunas visualizaciones como el <strong>timeline</strong></p>
-	<h3>Campo de Título actual<strong> $campo_titulo_nombre[0] [$campo_titulo[0]]</strong></h3>
-	<br>
-	<div class='input-group'>
-		<span class='input-group-addon'>Cambiar campo título</span>		 
-		 <select class='form-control' onchange=\"xajax_parametrizacion_titulo('$formulario','$div',(this.value));\">
-		 <option value=''></option>
-		 $listado
-		 </select>
-	</div>
-	
-";
-}
-}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 ="<div class='alert alert-success<h2><small> <br>Campo de Título actual</small>$campo_titulo_nombre[0] [$campo_titulo[0]]</h2></div>";
-
-}
-		$respuesta->addScript("xajax_parametrizacion_titulo('$formulario','$div','')");
-		return $respuesta;
-}
-
-
-
-		$respuesta->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 = "
-	<div class='container-fluid' style='padding:5px; border-radius:3px; background-color:white; max-width:600px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >	
-		$datos
-	<br>
-	</div>";
-			$div_contenido = "<div id='$div'>$div</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 .= "<div class='panel panel-default'>
-				<div class='panel-heading'><h3>$cadena[0]<a class='btn btn-info pull-right' target='api' href='$_SESSION[site]/milfs/api.php?identificador=$row[control]' >{json}</a></h3> </div>
-				<div class='panel-body'>
-				
-					$datos
-				</div>
-				</div>
-";
-}else{$listado .= $datos; } 
-}
-$resultado = "	
-	<br>
-		 $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 .= "<li class='list-group-item'><a href='#' onclick=\"xajax_portal_filtro_cadena('$formulario','$id_campo','$row[control]','$div','$plantilla') \" title='$row[control]'>$row[contenido]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 <h4 ><span title='$formulario_descripcion[0]'>$formulario_nombre[0]</span> / <span title='$campo_descripcion[0]'>$campo_nombre[0]</span></h4>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[url]api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado 
-		 </ul>
-";
-}
-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 .= "<option value = '$row[control]'>$row[contenido]</option>";
-}
-$resultado = "	
-		<select class='form-control' onchange=\"xajax_portal_filtro_cadena('$formulario','$id_campo',(this.value),'$div','$plantilla') \" >
-		<option =''>$campo_nombre[0]</option>
-		 		 $listado 
-		 </select>
-";
-}
-$resultado ="
-			<div class='input-group'>
-			<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-			$resultado
-			</div>";
-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 .= "<li class='list-group-item'><a href='?formulario=$formulario&campo=$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</a></li>";
-}
-$resultado = "	
-		 <ul class='list-group'>
-		 
-		 <legend title='$formulario_descripcion'>$formulario_nombre[0]</legend>
-		 <li class='list-group-item'><a class='btn btn-block btn-info' target='api' href='$_SESSION[URL]/api.php?id=$formulario&tipo=simple' >{json}</a></li>
-		 $listado
-		 
-		 </ul>
-";
-}
-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 .= "<li><a href='f$row[id]' title='$row[descripcion]'>$row[nombre]</a></li>";
-}
-$resultado = "	
-	<li class='dropdown'>
-	 <a href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'>Set de datos<span class='caret'></span></a>
-		 <ul class='dropdown-menu'>
-		 $listado
-		 </ul>
-   </li>";
-}
-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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 .= "<Label for ='$combo'>$Campo_descripcion</label>
-<select class='form-control' id='$combo' name='$combo'>";
-$resultado .= "<option value=''> Seleccione $Campo_descripcion</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[$id]'> $row[$campo_valor] $row[$campo_descripcion]</option>";
-															}
-$resultado .= "</select> ";
-										}
-										
-
-
-$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 = "<label for='$nombre' > $Campo_valor </label> 
-<select  class='form-control'  name='$nombre' id='$nombre'
-					onchange=\"xajax_select_combo('$id','$tabla','$campo_valor','$campo_descripcion',(this.value)) \";>";
-					$resultado .= "<option value=''> Seleccione $Campo_valor </option>";
-if (mysqli_num_rows($sql)!='0'){
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$explicacion= remplacetas('eapb','codigo',"$row[$campo_valor]",'nombre',"") ;
-$explicacion = $explicacion[0];
-$resultado .= "<option value='$row[$campo_valor]' >$row[$campo_valor]  </option>";
-															}
-										}
-$resultado .= "</select><div name='$div' id='$div'><!-- <input type='text' id='$combo' name='$combo'> --></div>";
-				}/// 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 ="<ol>";
-		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 .= "<li>$_SESSION[$nombre]</li>"; 
-															}
-															$resultado .= "</ol>";
-										}
-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= "<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>";
-		$descripcion = remplacetas('form_id','id',$id_form,'descripcion',"") ;
-		$nombre = remplacetas('form_id','id',$id_form,'nombre',"") ;
-		if($tipo=="") {
-		$resultado = "
-		<div class='container-fluid'>
-			$visitas
-			<h2>$nombre[0]</h2>
-				<legend>$descripcion[0]</legend> 
-				<!-- formulario_imprimir() -->
-				$impresion
-				<!-- formulario_imprimir() -->
-			<br>
-		</div>"; }else {
-$resultado = "$impresion";
-							}
-									}else{
-$resultado ="<div class='container alert alert-warning'><h1>No hay resultados</h1></div>";
-									}
-
-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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-	$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 ="
-
-<input type='hidden' id='$destinatario"."[0]' name='$destinatario"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-<input type='hidden' id='$remitente"."[0]' name='$remitente"."[0]' value='$destinatario_value[0]'>
-	<div class='form-group'>
-		<label for='$asunto"."[0]'>Asunto</label>
-			<input class='form-control' id='$asunto"."[0]' name='$asunto"."[0]' value='$asunto_value[0]'>
-	</div>
-	<div class='form-group'>
-		<label for='$mensaje"."[0]'>Mensaje</label>
-			<textarea class='form-control' id='$mensaje"."[0]' name='$mensaje"."[0]' >$mensaje_value[0]</textarea>
-	</div>
- ";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class=' '>
-    	<form role='form' class='' id='form_mensajes_$control' name='form_mensajes_$control'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes_$control'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>
-</form>";
-	$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 ="
-<input type='hidden' id='$campo_remitente"."[0]' name='$campo_remitente"."[0]' value='$_SESSION[usuario_milfs]'>
-<input type='hidden' id='tipo' name='tipo' value='solocampos'>
-<input type='hidden' id='form_id' name='form_id' value='$form_id'>
-<input type='hidden' id='mensaje' name='mensaje' value='El mensaje fue enviado :-) '>
-<input type='hidden' id='control' name='control' value='$control'>
-
-$campos";
-
-$formulario ="
-<div class=' ' id='div_$control'>
-	<div id ='div_mensaje' class='alert alert-success '>
-    	<form role='form' class='' id='form_mensajes' name='form_mensajes'> 
-		
-			$formulario
-			<div class='form-group '>
-				<div class='btn btn-success btn-block' onclick=\"xajax_formulario_grabar(xajax.getFormValues('form_mensajes'));\" >ENVIAR MENSAJE</div>
-			</div>
-		
-
-		</form>
-	</div>
-</div>";
-
-	
-	
-$lista ="<div class='panel-group' id='mensajes' style='max-height:800px width:100% ; overflow:auto'>
-
-        <div class='panel panel-default panel-success'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    
-                    <div class='col-md-2'></div>
-                    <a  data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='btn btn-success col-md-9'><i class='fa fa-envelope'></i> ENVIAR UN MENSAJE NUEVO</div>
-                    <div class='col-md-1'><div class='badge pull-right'></div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-						<div id= 'div_mensaje_$control'>$formulario</div>
-               </div>
-              	<div class='panel-footer'>
-              		<!-- <div class='btn btn-success'><i class='fa fa-reply'></i> Responder</div> -->
-              	</div>
-             </div>
-       </div>
-      
-";
-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]="<span class='text-danger'>Sistema<span>";}
-	$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 .="
-        <div class='panel panel-default panel-warning'>
-            <div class='panel-heading row'>
-                <h4 class='panel-title'>
-                    <a data-toggle='collapse' data-parent='#accordion' href='#collapse_$control'>
-                    <div class='col-md-2'><strong>$remitente[0]</strong></div>
-                    <div class='col-md-9'>$asunto[0]</div>
-                    <div class='col-md-1'><div class='badge pull-right'>$momento</div></div>
-                    </a>
-                </h4>
-             </div>
-             <div id='collapse_$control' class='panel-collapse collapse'>
-               <div class='panel-body'>
-                    <p>$mensaje[0]</p>
-                   
-               </div>
-              	<div class='panel-footer'>
-              		<div id= 'div_mensaje_$control'>
-	              		<a class='link' onclick=\"xajax_mensajes('responder','','','$control') \"><i class='fa fa-reply'></i> Responder</a>
-	              	</div> 
-              	</div>
-             </div>
-       </div>
-         ";
-}
-		//	$respuesta->addAssign("div_mensaje","innerHTML",$lista);		
-		$lista .="</div>";
-		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 = "<a class=' btn  '  onclick=\"xajax_milfs_session('','','','salir') \"><i class='fa fa-sign-out fa-fw'></i> SALIR</a>";
-}else {
-$formulario ="
-$accion
-<div id='formulario_session'>
-	<form class='form-horizontal ' id='login_milfs' name ='login_milfs' >
-		<div class='form-group>
-			<label for='usuario'>Usuario </label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='password'>Clave </label>
-				<input type='password' id='password' name='password' class='form-control'>
-		</div>
-		<br>
-		<div class='row'>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar','') \">Recuperar contraseña</div>
-			</div>
-			<div class='col-sm-4'>
-				<div class='btn btn-block btn-link ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','registrarse','') \">Registrarse</div>
-			</div>
-			<div class='col-sm-4'>
-			<div class='btn btn-block btn-success ' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','ingreso',xajax.getFormValues('login_milfs')) \">ingresar</div>
-			</div>
-		</div>
-	</form>
-	<div id='resultado'></div>
-</div>
-	
-
-";
-
-
-}
-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 = "<div class='aler alert-warning'>Función no disponible, por favor comuníquese con el administrador</div>";
-			$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-			return $respuesta;
-		
-		}
-$campos = formulario_areas($form_id,'campos');
-
-$boton ="
-<button id='boton_registro' href='#' class='btn btn-success btn-block' 
-onclick =\"this.disabled= true;  xajax_milfs_session('$form_id','$campo_usuario','$campo_password','nuevo',xajax.getFormValues('nuevo_registro')); \" >
-Registrarse</button>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-$boton
-</form>
-	<div id='resultado'></div>
-";
-	
-	$respuesta->addAssign("formulario_session","innerHTML",$formulario);
-
-
-}
-elseif($tipo=='recuperar') {
-	
-	if($datos =="") {
-//$campos = formulario_areas($form_id,'campos');
-$campos ="
-
-		<div class='form-group>
-			<label for='usuario'>Usuario</label>
-				<input type='text' id='usuario' name='usuario' class='form-control'>
-		</div>
-		<div class='form-group>
-			<label for='usuario'>Código de recuperación <br><strong>Deja este campo vacío si aun no tienes el código de recuperación </strong></label>
-				<input type='text' id='codigo' name='codigo' class='form-control'>
-		</div>
-";
-$boton ="
-<div class='btn btn-success btn-block' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','recuperar',xajax.getFormValues('nuevo_registro')); \" >Solicitar clave</div>
-";
-$control = md5(rand(1,99999999).microtime());
-	$formulario ="
-<form class='form-horizontal'  id='nuevo_registro' name='nuevo_registro' >
-<input type='hidden' value='$control' id='control' name='control'>
-$campos
-<br>
-$boton
-
-</form>
-	<div id='resultado'></div>
-";
-	}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 ="
-	<form class='form' id='confirmar_clave' name='confirmar_clave'>
-			<input type='hidden' id='codigo' name='codigo' value='$datos[codigo]' >
-			<input type='hidden' id='control' name='control' value='$control[0]' >
-		<div class='row'>
-		<div class='form-group col-md-6'>
-		<div class='input-group ' id='password_grupo'  >
-			<label for='password'>Nueva clave</label>
-			<input type='password' class='form-control' id='password' name='password'> 
-		</div>
-		</div>
-		<div class='col-md-6 form-group'>
-		<div class='input-group ' id='confirmar_password_grupo'>
-			<label for='confirmar_password'>Confirmar nueva clave</label>
-			<input onchange= \"xajax_confirma_campo((document.getElementById('password').value),(document.getElementById('confirmar_password').value),'password','confirmar_password') \" type='password' class='form-control' id='confirmar_password' name='confirmar_password'> 
-		</div>
-		</div>
-		</div>
-		<div class='row'>
-			<div class='col-md-12'>
-				<div class='btn btn-block btn-success' onclick =\"xajax_milfs_session('$form_id','$campo_usuario','$campo_password','confirmar_recuperar',xajax.getFormValues('confirmar_clave')); \"  >Grabar</div>
-			</div>
-		</div> 
-	</form>
-		
-		";
-				
-				$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 ="
-		<h1>Hola $datos[usuario]</h1>
-		El código para recuperar tu contraseña es:
-		<h2>$password[0]</h2>
-		Regresa pronto :-)
-		
-		";
-			if(mail("$email[0]","$asunto","$cuerpo","$headers")){ $formulario ="<div class='alert alert-success'><h1>Te hemos enviado un correo a <strong>$email[0]</strong> con el código de recuperación </h1></div>"; }
-			else {$formulario ="<div class='alert alert-danger'><h1>Error enviando correo</h1></div>";}
-	
-								}else{
-								
-	$formulario="<div class='alert alert-warning'><h1>No pudimos encontrar tu usuario <strong>$datos[usuario]</strong>.<br>Por favor rectifícalo y prueba nuevamente</h1></div>";								
-								}
-	
-	
-	}
-	$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 ="<div>Se cambió el password Por favor ingrese con sus nuevos datos <a href='?'> aquí </a>  </div>";
-$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 ="<br><div class='alert alert-danger'><h1>Error</h1>Los datos no son correctos :( </div>";
-$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 ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";
-
-	
-	}else{$resultado.= "<div class='alert alert-danger'>La consulta no se grabó</div>";}
-}else {	}
-
-									}
-									$resultado ="<div class='alert alert-success'>Gracias por registrarse, por favor ingrese con los nuevos datos. $login</div>";								
-$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 = "<div class='alert alert-warning'><h1>Por favor escriba que desea buscar</h1></div>";
-$respuesta->addAssign("$div","innerHTML",$alerta);
-			return $respuesta;
-}
-	if (is_array($valores) ){
-	$valor = $valores['valor'];
-									}
-	else {$valor=$valores;}
-if($valor =='*formato*') {
-$resultado="
-<div class='col-sm-5 col-md-5'>
-	<!-- <form class='navbar-form' role='search' id='formulario_buscar_datos' name='formulario_buscar_datos'> -->
-			<div class='input-group'>
-				<input placeholder='Escribe para buscar' class='form-control' id='valor' name= 'valor'>
-				<div class='input-group-btn'>
-				<div class='btn btn-default' onclick =\"xajax_buscar_datos((document.getElementById('valor').value),'$id_form','$plantilla','$div'); \"><i class='glyphicon glyphicon-search'></i></div>
-				</div>
-			</div>
-<!-- 	</form> -->
-</div>
-";
-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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$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."<font color='red'>$s2</font>".$s3;
-                    */
-   $datos = landingpage_contenido_identificador($row['control']);
-   //$datos = contenido_mostrar("$row[form_id]","$row[control]",'',"$plantilla");
-	$contenido ="<div class='col-sm-$cols' style=''>$datos</div>";     	
-	
-	$encontrados .="$contenido";
-	$fila++;
-	if( $i % $divider==0) {
-			$encontrados .= "</div>	";
-								}
-														}
-										}
-$resultado .="<div class='container-fluid'><h2>Resultados de: $valor</h2>$encontrados  </div>  ";						
-
-$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 .= "
-		
-						<div class='container-fluid ' role='row' id='grid_$i'  style=''>
-
-							";
-								}
-			$i++;
-$datos = contenido_mostrar("$id_form","$row[control]",'',"$plantilla");
-$contenido .="<div class='col-sm-$cols' style=''>$datos</div>";
-$fila++;
-	if( $i % $divider==0) {
-			$contenido .= "</div>	";
-								}
-	
-}
-									}
-
-
-$inicio = ($inicio+$limite+1);
-$div_mas_contenido ="mas_contenido_".$inicio."_".$limite."";
-$mostrado = ($inicio+$limite-1);
-//$limite = ($inicio+$limite-1);
-$resultado =" <br>$buscador  
-
-	<div id='grid_resultado'> 
-
-		$contenido 
-		<div class='btn btn-default btn-block' id='$div_mas_contenido' onclick=\" xajax_datos_grid('$id_form','$filtro','$valor','$plantilla','$divider','$inicio','$limite') ;\" >
-		Mostrar mas resultados </div>
-	</div><br>
- ";
-
-
-///$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","<strong>$formulario[$principal]  </strong>");
-
-				}
-	//$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 = "
-	
-	<div class='alert alert-info'  >
-		<div class='row'>
-		<div class='col-md-3'>	
-			<img class='img img-responsive' src='http://qwerty.co/qr/?d=$_SESSION[site]f$perfil'>
-		</div>
-		<div class='col-md-9'>
-		<h2>$nombre<small style='display:block;'>$descripcion</small></h2>
-		</div>
-	</div>
-<!-- 	<label >Compartir este formulario</label>
-		<div class='input-group'>
-  			<span class='input-group-addon'><a href='$_SESSION[site]f$perfil'><i class='fa fa-share-square-o'></i></a></span>
-  			<input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[site]f$perfil' value='$_SESSION[site]f$perfil'> 
-		</div>	
--->
-</div>";
-
-$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 = " 
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-					<div class='col-lg-12'>
-			 		$subir_imagen  
-					</div>
-			</div>
-			
-		";
-	
-	}else {$imagen =" ";}
-	}
-
-	$muestra_form = "
-	<div id ='div_$control'  >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>".$campo_imagen_nombre."</label>
-				<div class='col-lg-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$perfil' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	";
-	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 .= "
-<fieldset class='fieldset-borde ' id ='fieldset_$area_nombre'>
-<legend class='legend-area' id ='legend_$area_nombre'>$area_nombre</legend>
-$campos
-</fieldset>";
-															}
-
-
-//// botonera form
-
-$muestra_form .="$resultado_campos <br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-			<div onclick=\" xajax_limpia_div('muestra_form');\" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-
-//// fin botonera form
-
-										}
-										
-//// cierre form
-
-$muestra_form .="	
-
-		</form>
-		</div>";
-if($tipo=='campos') {
-	
-	$resultado = "$resultado_campos $imagen ";
-	return $resultado;
-}
-if($tipo=='embebido') {
-$resultado = "
-$muestra_form
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-";
-return $resultado;
-
-}
-
-$resultado = "
-$cabecera
-$muestra_form 
-<span>Poweredy by <a href='https://github.com/humano/milfs' target='milfs'>MILFS</a></span>
-<a href='?psi' target='_psi'><i class='fa fa-smile-o '></i> Políticas de privacidad y protección de datos.</a>
-
-";
-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 = "
-		<div class='btn btn-default btn-block' onclick= \"xajax_tabla_areas('$tabla','$value','$descripcion','$onchange','$where','$nombre','$div') \">Modificar areas</a></div>
-		<!-- <div id='$div'></div> -->";
-		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=" <table class='table table-striped table-responsive' >
-<legend>$name</legend>
-<tr ><th>Id</th><th>$campo1</th><th>$campo2</th><th>$campo3</th><th>$campo4</th><th></th></tr>
-				" ;
-if (mysqli_num_rows($sql)!='0'){
-	if($onchange !=''){$vacio ="";}else{$vacio ="<option value=''> >> Nuevo $descripcion << </option>";}
-
-$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 = "<a  onclick=\" xajax_eliminar_campo('$tabla','$row[id]','tr_$row[id]')\"><i class='fa fa-trash-o'></i> </a>";
-$resultado .= "<tr id ='tr_$row[id]'><td>$row[$value]</td><td>$editar_campo1</td><td>$editar_campo2</td><td>$editar_campo3</td><td>$editar_campo4</td><td class='danger'>$eliminar</td></tr>";
-$linea++;
-															}
-
-
-										}else{
-	$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	}
-
-$resultado .= "
-<tr>
-<td colspan='4' >
-<form role='form' id='agregar' name='agregar'>
-<input type='hidden' name='estado' id='estado' value='1'>
-<input type='hidden' name='orden' id='orden' value='$linea'>
-<div class='col-xs-2'>Agregar área</div>
-<div class='col-xs-4'>
-<input placeholder='$campo1' class='form-control' type='text' id='$campo1'  name='$campo1' >
-</div>
-<div class='col-xs-5'>
-<input placeholder='$campo2'  class='form-control' type='text' id='$campo2'  name='$campo2' >
-</div>
-<div class='col-xs-1'>
-<div class='btn btn-default btn-success' onclick=\"xajax_insertar_campo_area('$tabla',xajax.getFormValues('agregar')); \"><i class='fa fa-save'></i></div>
-</div>
-</form>
-</td>
-</tr>
-</table>
-
-";
-//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 . "]<br />"; //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]."<br />";
-    }
-}
-
-/*
-foreach($form as $c=>$v){ 
-				
-//LISTA ELEMENTOS DE UN ARRAY
-if (is_array($v) ){
-	foreach($v as $C=>$V){
-				$campo .= "( $c  : $V )<br> ";
-			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<br>"; }
-    // 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 .= "<p><strong>CARPETA: ". $elemento ."</strong></p>";
-            // 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 ="<i class='fa fa-globe'></i>";
-										$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 .= "<li>$geo $mundo / ".$datos['58'][0]."  ".$datos['999'][0]." $title / $autor / ".$datos['61'][0]." ".$datos['68'][0]."</li>";
-
-				}
-
-         $cantidad ++;
-
-					$campo .= "";
-
-         
-            }
-        }
-
-    }
-    
-
-    if($div !="" ) {
-    	if($opcion == "cantidad") { 
-    	$resultado = "
-    	<div class='alert alert-warning'>
-    		$esarchivo <i class='fa fa-file'></i> <strong>$cantidad</strong> archivos, <i class='fa fa-picture-o'></i> <strong> $cantidad_imagenes </strong> imágenes jpg, <i class='fa fa-globe'></i> <strong>$mapa</strong>  georeferenciadas  
-    	</div>
-    	<div id='div_resultado'  style='max-height: 100px; overflow:auto'>
-    	<ol>
-    	$resultado
-    	</ol>
-    	</div>";
-    	}
-    		
-    			$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 = "<a href = '$_SESSION[site]/?i$valor' target='referencia'>Ver referencia</a> ";
-}
-
-	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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row[control] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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 ="
-	<input class='form-control' name='buscador_base_$name' id='buscador_base_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[$key]';
-													document.getElementById('buscador_base_$name').value='$row[$descripcion1] $row[$descripcion2] $row[$descripcion3] ';
-													xajax_limpia_div('$div') \">
-									<strong>$row[$descripcion1]</strong> $row[$descripcion2] $row[$descripcion3]</a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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 ="
-	<input class='form-control' name='buscador_$name' id='buscador_$name' onclick= \"$onclick \" onkeyup=\"$onchange\"  >
-	<input type='hidden' class='form-control' name='$name' id='$name'   >
-<div id='$div'></div>";
-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 .= "<li><a onclick=\"	document.getElementById('$name').value='$row[control]';
-													document.getElementById('buscador_$name').value='$campo_key[0] - $campo_descripcion[0]';
-													xajax_limpia_div('$div') \">
-									<strong>$campo_key[0]</strong> $campo_descripcion[0] </a> </li>";
-
-															}
-
-$resultado .= "
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-
-
-			$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=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-
-while( $row = mysqli_fetch_array( $sql ) ) {
-
-		if($row['control'] == "$valor") {
-
-					$selected = "selected";
-					}else{ $selected = "";}
-		$resultado .= "<option value='$row[control]' $selected > $row[contenido]</option>";
-
-															}
-
-$resultado .= "</select>
-		<div id='$div'>$valor_actual</div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta </div>";}
-
-
-			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<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\"  >
-<option value=''>Seleccione </option>
-				" ;
-	//			$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 .= "<option value='$row[campo_valor]' $selected > $campos[0]</option>";
-															}
-															
-foreach($campo_primario as $C=>$V){
-$resultado .= "<option value='$V' $selected >$V </option>";
-}
-$resultado .= "</select>
-		<div id='$div'></div>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-//				$contenido .= " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-
-				$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 .= " <div class='item $activo'>
-						<div style='height:100%' class=''>
-							<!-- <img class='img img-responsive center-block' style='height:100%; display: table; margin: 0 auto;' src='$_SESSION[site]milfs/images/secure/?file=600/$imagen[0]'> -->
-							$contenido_desplegado
-						</div>
-					</div>";
-	$indicador .= "<li data-target=\"#myCarousel\" data-slide-to='$orden' class='$activo'></li>";
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	//$contenido  .= "$contenido_desplegado "; 
-	$orden = ($orden +1 );
-														}
-$contenido .= "
-    <!-- Carousel 
-    ================================================== -->
-    <div >
-    <h3>$nombre[0] <small>$descripcion[0]</small></h3>
-    
-    </div>
-    <div id='myCarousel_$id' class='carousel slide' data-ride='carousel'>
-      <!-- Indicators --> 
-      	<ol class='carousel-indicators'>
-      	$indicador
-      	</ol>
-      	<div class='carousel-inner' role='listbox'>
-      	$items
-      	</div>
-      <a class='left carousel-control' href='#myCarousel_$id' role='button' data-slide='prev'>
-        <span class='glyphicon glyphicon-chevron-left' aria-hidden='true'></span>
-        <span class='sr-only'>Previous</span>
-      </a>
-      <a class='right carousel-control' href='#myCarousel_$id' role='button' data-slide='next'>
-        <span class='glyphicon glyphicon-chevron-right' aria-hidden='true'></span>
-        <span class='sr-only'>Next</span>
-      </a>
-    </div>
-    <!-- /.carousel -->";
- //$contenido = " $links <section id=''>$contenido</section>";
-										}
-										
-
-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 = "
-			<style>
-			fieldset.fieldset-borde {
-
-    border: 2px solid #EDEDED !important;
-        border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-    legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-			</style>
-<div style='width;100%; min-height:900px; padding: 0.3%; background-image: url(milfs/images/iron.jpg); background-attachment:fixed; background-color: gray ;'>
-	<div class='container-fluid' style=' border-radius:3px; background-color:white; max-width:800px; box-shadow: 2px 2px 5px #999; overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-				<h1 class='formulario_nombre'>$formulario_nombre[0]<br><small class='formulario_descripcion'>$formulario_descripcion[0] </h1>
-				$impresion
-			
-			
-
-	</div>
-	<br>
-	
-<div>	";
-			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 <div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$opciones'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-							$salir
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 = "
-
-	<div class='container-fluid' style='  background-color:white; max-width:800px;  overflow:no;' id='contenedor_datos' >			
-			<h4><small><i class='fa fa-eye'></i> $visitas</small></h4>
-			<!-- formulario_areas -->
-				$impresion
-			<!-- formulario_areas -->
-	</div>
-	";
-		//	return $muestra_form ;
-			
-			//$respuesta->addAssign("$div","innerHTML","$resultado");
-						//$div_contenido = "<div id='$div'>$div</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 = "
-			<div class='container-fluid' id='contenedor_datos' > 
-				<h3 class='formulario_nombre'>$formulario_nombre[0]</h3>
-				<p class='formulario_descripcion'>$formulario_descripcion[0] </p>
-					$impresion
-			</div>
-			<div class='pie'>
-				Poweredy by <a href='https://github.com/humano/milfs' target='milfs'><img width='30px' src='http://qwerty.co/demo/images/logo.png'> MILFS</a>
-			</div>
-			<br>";
-			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] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$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 = "<a onclick=\"xajax_aplicacion_presentacion('$id','presentacion_$id','$timeout') \";>SIGUIENTE</a>";
-if($div ==''){
-	$presentacion = "<div id='presentacion_$id' >$siguiente $impresion</div>";
-				}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 .= "<ul class='list-group'>";
-	$resultado_grid .= "<div id='row_aplicacion' class='row centered' style=''>";
-	if($tipo == "banner") { $divider = 1;
-	$resultado_banner .= "<div id='row_aplicacion' class='row centered' style=''>";
-									}
-	$i=0;
- 	//$resultado_nav .= "<ul class='nav navbar-nav ' >";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	 if ( isset ( $_SESSION['id'] ) ) {	
-	$botonera ="<a style ='font-size:20px;'  title='Agregar contenido' class='link '  onclick=\"xajax_formulario_modal('$row[id]','','',''); \">
-	<i class='fa fa-plus-circle '></i> </a>" ;
-												}else {$botonera='';}
-			if($i % $divider==0) {$resultado_inicial = "<div class='row '  id='grid' style=''>";}
-			$i++;
-	$descripcion_corta = substr($row[descripcion],0, $length = 100);
-		$geo = buscar_campo_tipo($row[id],"14");
-		if($geo[0] !='') { $mapa= "<tr><td><a href='map.php?id=$row[id]' target='mapa'><i class='fa fa-globe'></i></a></td></tr>";}else {$mapa='';}
-
-//$nombre = strtoupper("$row[nombre]");
-$nombre = $row[nombre];
-$contenido_listado = contenido_listado("$row[id]");
-if($row[nombre] =="Portada") {
-$nombre = '';
-$resultado_nav .= "<li class='dropdown' >
-<a  href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-}
-
-elseif($row[nombre] =='Agenda') {
-$resultado_nav .= "<li class='dropdown' >
-							<a href='#' onclick=\"xajax_contenido_timeline('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-										}										
-										else{
-$resultado_nav .= "<li class='dropdown' >
-							<a class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false' href='#' onclick=\"xajax_contenido_parallax('$row[id]');\" class='dropdown-toggle' data-toggle=''> $nombre </a>
-							$contenido_listado
-							";
-						}
-
-$resultado_nav .="</li>";
-$resultado .= "<li  class='list-group-item'><span class='badge alert-success'>$row[id]</span>$categoria  $row[nombre] $mapa";
-$campos = formulario_campos_select("$row[id]","");
-if($row[nombre] !="Portada") {
-$resultado .= "<ul  class='list-group'>$campos</ul></li>";
-}
-
-$campo_imagen = buscar_campo_tipo($row[id],"15");
-/*if($tipo =='grid' AND $id_form !='') {
-$resultado_grid .= contenido_aplicacion($row[id]);
-}else {
-	*/
-$imagen = ultimo_campo($row[id],"$campo_imagen[0]");
-if($imagen[0] !='' ) { $bg ="background-image : url(\"milfs/images/secure/?file=300/$imagen[0]\"); 
-										background-repeat: no-repeat; 
-										background-size :cover;
-										background-position: center; ";}
-else { 
-$color_aleatorio = sprintf("%02X", mt_rand(0, 0xFFFFFF)); 
-//$bg = "background-color: #$color_aleatorio ;"; 
-$bg = "background-color: gray ;"; 
-}
-	$resultado_grid .= "
-	<div class='col-md-4 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-success btn-block ' href='f$row[id]'>Leer</a>
-							</div>";
-		$resultado_banner .= "
-	<div class='col-md-12 div_aplicacion' id='div_aplicacion_$row[id]' style ='height:300px; $bg '>
-		
-			<h2 style='text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ;';>$row[nombre] </h2>
-			<div class='round' style=' padding:5px; background-image : url(\"milfs/images/transparente40.png\");'>
-				<h3>$descripcion_corta</h3>
-			</div>
-	 		$contenido <br>
-	 		<a class='btn btn-default btn-block ' href='f$row[id]'>Visitar</a>
-							$botonera</div>";
-			if($i % $divider==0) { $resultado_final = " </div>	"; }
-			if($tipo =='carrusel') {$resultado_carrusel .= aplicacion_carrusel("","$row[id]","galeria") ;	}
-															}
-
-		$resultado_grid .= "</div>";
-		$resultado_banner .= "</div>";
-		$resultado_banner = "$resultado_inicial $resultado_banner $resultado_final";
-											//	}			
-	$resultado .="</ul>";
-										}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 = " <h1 class='titulo_aplicacion'>$nombre[0]</h1>";
-				$contenido = " <h2 class='descripcion_aplicacion'>$descripcion[0]</h2>";
-				
-				$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 <hr> "; 
-														}
- 	$contenido = " $links <section id=''>$contenido</section>";
-										}
-
-		return $contenido;
-
-}
-
-function contenido_aplicacion_nombre($nombre,$plantilla){
-	$id = remplacetas('form_id','nombre',$nombre,'id',"") ;
-	$id = $id[0];
-	if($id[0] =="") {$aviso = "<div class='alert-danger'><h2>No se ha definido una aplicación con el nombre <strong>$nombre</strong></h2> </div>";
-	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 <section id=''>$contenido</section>";
-										}
-
-		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 .="<li class='dropdown' >
-						<a class='menu'  href='#$row[control]'>$titulo[0]
-						
-						</a>
-					</li>";
-		$style .=" a[id= '$row[control]']:target ~ #main_$id article.article 
-								{
-							    -webkit-transform: translateY(-$orden"."px);
-							    transform: translateY( -$orden"."px );
-						    	} ";
-		$links .= " <a   id='$row[control]'></a>";
-	$contenido  .= "
-  
-							$contenido_desplegado 
-
-						 "; 
-						$orden = $orden +800;
-														}
- 	$contenido = "
- 	
- 	<style type='text/css'>
-	$style
- 	.article {
-    width: 100%;
-     z-index:0; 
-    -webkit-transform: translateZ( 0 );
-    transform: translateZ( 0 );
-    -webkit-transition: -webkit-transform 2s ease-in-out;
-    transition: transform 2s ease-in-out;
-    -webkit-backface-visibility: hidden;
-    backface-visibility: hidden;
-}
- 	</style>
- 	 $links
-<!-- <header class='nav' style='' >
-	<nav class='navbar navbar-default submenu'>
-	   
-	       
-	     <ul class='nav navbar-nav '>   $nav_li </ul>
-	       
-	   
-	</nav>
-</header> -->
-        <section id='main_$id'>$contenido</section>
-
-       
-        ";
-										}
-
-//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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-				$contenido = " 
-
-";
-
-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]",'','timeline');
-
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-		$nav_li .="<li><a href='#$row[control]'>$titulo[0]</a></li>";
-	$contenido  .= "$contenido_desplegado "; 
-
-														}
- 	$contenido = "
- 	<h1 id='titulo_timeline'>$nombre[0]</h1>
- 	
- 	<div  id='timeline'>
-	<ul id='dates'>
-		$nav_li
-	</ul>
-    
-        
-     	  <ul id='issues'>
-        	$contenido
-        	<li></li>
-        	</ul>
-      <div id='grad_left'></div>
-		<div id='grad_right'></div>
-		<a href='#' id='next'>+</a>
-		<a href='#' id='prev'>-</a>
-		<h2 id='descripcion_timeline'>$descripcion[0]</h2>
-	</div>
-	
-
-      ";
-										}
-
-//return " $contenido";
-		$respuesta->addAssign("$div","innerHTML","$contenido");
-		$respuesta->addscript("		$(function(){
-			$().timelinr({
-				arrowKeys: 'true'
-			})
-		});");	
-		return $respuesta;
-
-}
-$xajax->registerFunction("contenido_timeline");
-
-function contenido_listado($id){
-
-	$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 = "<ul class='dropdown-menu' role='menu'>";
-		mysqli_data_seek($sql, 0);
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$identificador = explode(',',$row[identificador]);
-	$identificador = $identificador[0];
-	$titulo = remplacetas('form_datos','id',$identificador,'contenido',"") ;
-	$contenido  .= "<li  class='menu'>
-							<a class='menu' href='#$row[control]'  >$titulo[0] </a> </li>"; 
-														}
- 	$contenido .= "</ul>";
-										}
-
-return " $contenido";
-
-
-}
-$xajax->registerFunction("contenido_listado");
-
-function ultimo_campo($id,$id_campo) {
-$link=Conectarse(); 
-$sql=mysqli_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' AND id_campo ='$id_campo' ORDER BY id DESC limit 1 ";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = mysqli_result($sql,0,"contenido");
-$resultado[0]=$contenido;
-$resultado[1]=$control;
-$resultado[2]=$consulta;
-}
-return $resultado;
-
-}
-
-function contenido_aleatorio($id) {
-$link=Conectarse(); 
-$sql=mysqli_query($consulta,$link);
-$consulta ="SELECT * FROM  form_datos WHERE form_id = '$id' ORDER BY rand() limit 1 ";
-$sql=mysqli_query($consulta,$link);
-if (mysqli_num_rows($sql)!='0'){
-	$control = mysqli_result($sql,0,"control");
-	$contenido = formulario_imprimir("$id","$control","contenido"); 
-}
-return $contenido.$control;
-
-}
-
-function contenido_mostrar($id,$control,$div,$plantilla){
-
-	
-if($id=="") {
-				$value = 	remplacetas('form_datos','control',$control,'form_id',"") ;
-				$id= $value[0];
-}
-
-	$respuesta = new xajaxResponse('utf-8');
-//$link=Conectarse(); 
-//$sql=mysqli_query($consulta,$link);
-//if (mysqli_num_rows($sql)!='0'){
-if ($control !=""){
-
-$impresion = formulario_imprimir("$id","$control","$plantilla"); 
-
-
-										}
-										else{$impresion ="nada";}
-if($div !="") {
-		$respuesta->addAssign("$div","innerHTML","$impresion");
-		return $respuesta;
-			}else{
-return $impresion;			
-			}
-
-
-
-}
-$xajax->registerFunction("contenido_mostrar");
-
-function aplicacion_datos($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 = "<img class='img-round img-responsive ' src='images/secure/?file=150/$imagen[0]'>";
-	$datos ="<h3>$nombre[0]</h3><strong>$descripcion[0]</strong> ";
-	$empresa = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-	$resultado ="<div class='col-xs-2'>$imagen</div><div class='col-xs-10'> $datos $empresa <A HREF='https://github.com/humano/milfs'>MILFS</A></div>";
-	return $resultado;
-}
-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 formulario_contar($id) {
-$consulta ="SELECT count(distinct control) as cantidad FROM form_datos WHERE form_id = '$id' GROUP BY form_id order by cantidad DESC LIMIT 1 ";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado=mysqli_result($sql,0,"cantidad");
-		}else {$resultado ='0';}
-return $resultado;
-}
-
-function formulario_uso($id,$control,$tipo) {
-	$resultado="";
-	if($tipo =='primer') {$orden = 'ASC';}
-	if($tipo =='ultimo') {$orden = 'DESC';}
-	if($control != ""){$where = "control = '$control'";}
-	else{$where = "form_id = '$id'";}
-$consulta ="SELECT *  FROM form_datos WHERE $where order by timestamp $orden LIMIT 1 ";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-		$sql=mysqli_query($consulta,$link);
-		if (mysqli_num_rows($sql)!='0'){
-		$resultado[0]=mysqli_result($sql,0,"timestamp");
-		$resultado[1]=mysqli_result($sql,0,"control");
-		$resultado[2]=$consulta;
-		$resultado[3]=mysqli_result($sql,0,"form_id");
-		}else {}
-return $resultado;
-}
-
-
-function empresa_datos($id_empresa,$tipo) {
-		$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","");
-	if($tipo=='encabezado') {
-
-$resultado ="
-<div class='datos_empresa row alert alert-info' role='row'>
-	<div class='col-sm-2'>
-		<img id='logo_empresa' class='img-responsive' src='$_SESSION[url]images/secure/?file=600/$imagen[0]'>
-	</div>
-	<div class='col-sm-10'>
-		<div class='caption'>
-		<h3>$razon_social[0]</h3>
-		<p class='lead'>$slogan[0]</p>
-		</div>
-	</div>
-</div>
-";
-}elseif($tipo=='pie') {
-
-	$resultado = "<div class='small'>$razon_social[0] | <a href='$web[0]' target='web'>$web[0]</a> | $direccion[0] | $email[0] </div>";
-}
-return $resultado;
-}
-
-
-function configuracion($accion) {
-	if ( !isset ( $_SESSION['id'] ) ) {	return;}
-	$div='contenido';
-if($accion =='') {
-$link ="<a title='Configuración' href='#' onclick=\"xajax_configuracion('mostrar') \"><i class='fa fa-cogs'></i></a>";
-
-return $link;
-}elseif($accion=='mostrar') {
-	$respuesta = new xajaxResponse('utf-8');
-	$multiempresa= multiempresa('');
-	$login = "<div title='agregar usuarios' class='btn btn-success' onclick=\"xajax_registro_express(xajax.getFormValues('login'),'nuevo');\"><i class='fa fa-plus'></i> <i class='fa fa-users'></i> Gestión de usuarios</div>";
-	$resultado ="<h1><i class='fa fa-cogs'></i> Configuración</h1>
-	$multiempresa $login";
-	$link=Conectarse(); 
-	mysqli_query("SET NAMES 'utf8'");
-	$consulta = "SELECT * FROM empresa WHERE  id = '$_SESSION[id_empresa]' LIMIT 1";
-		$sql=mysqli_query($consulta,$link);
-		$empresa_razon_social = editar_campo("empresa","$_SESSION[id_empresa]","razon_social","");
-		$empresa_slogan = editar_campo("empresa","$_SESSION[id_empresa]","slogan","");
-		$empresa_direccion = editar_campo("empresa","$_SESSION[id_empresa]","direccion","");
-		$empresa_telefono = editar_campo("empresa","$_SESSION[id_empresa]","telefono_1","");
-		$empresa_web = editar_campo("empresa","$_SESSION[id_empresa]","web","");
-		$empresa_email = editar_campo("empresa","$_SESSION[id_empresa]","email","");
-		$empresa_twitter = editar_campo("empresa","$_SESSION[id_empresa]","twitter","");
-		$empresa_facebook = editar_campo("empresa","$_SESSION[id_empresa]","facebook","");
-			$background =  remplacetas("empresa","id",$_SESSION[id_empresa],"imagen","");
-			$background_imagen = "images/secure/?file=600/$background[0]"; 
-		$nombre = editar_campo("usuarios","$_SESSION[id]","p_nombre","");
-		$apellido = editar_campo("usuarios","$_SESSION[id]","p_apellido","");
-		$email = editar_campo("usuarios","$_SESSION[id]","email","");
-		$username = editar_campo("usuarios","$_SESSION[id]","username","");
-		
-		$subir_imagen = subir_imagen();	
-		$subir_imagen .= "<input name='imagen' id='imagen' type='hidden' >
-						<div onclick = \"xajax_cambiar_imagen((document.getElementById('imagen').value),'empresa','$_SESSION[id_empresa]') \"; 
-								class='btn btn-success'>Cambiar imagen</div>";	
-								//parametrizacion_linea($tabla,$campo,$opcion,$descripcion,$div)
-								$parametrizacion =parametrizacion_linea("","","","","");
-	$resultado .="
-				<div class='img-round ' id='banner' style=' 
-
-					background-position:top center  ;
-					-webkit-background-size: cover;
-					-moz-background-size: cover;
-					-o-background-size: cover;
-					background-size: cover;
-					
-					background-repeat:no-repeat;
-					background-image: url($background_imagen ) ; 	
-					padding:10px;
-					padding:10px; height:300px;
-					
-					'>
-
-
-				</div>
-				<div class='row'>
-					<div class='col-sm-6'>
-						<h2>Datos de la institución</h2>
-						
-						
-							<li>$empresa_razon_social</li>
-							<li>$empresa_slogan</li>
-							<li>$empresa_direccion</li>
-							<li>$empresa_telefono</li>
-							<li>$empresa_web</li>
-							<li>$empresa_email</li>
-							<li>$empresa_twitter</li>
-							<li>$empresa_facebook</li>
-							
-						
-					</div>
-					<div class='col-sm-6'>
-						<h2>Datos del usuario</div>
-						
-						<li>$username</li>
-						<li>$nombre</li>
-						<li>$apellido</li>
-						<li>$email</li>
-						
-					</div>
-				</div>
-				<div class='container alert alert-warning'>
-				
-				$parametrizacion
-				</div>
-						<div style='';>
-								$subir_imagen
-						</div>
-			
-					";
-
-	$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","<div class='alert alert-success'>El registro se insertó con éxito</div>");
-									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 = "
-		<div class='input-group' >
-			<span class='input-group-addon'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			</span>
-			 	<input placeholder='$placeholder'  class='form-control' style=' min-width:100px; margin-right:10px; display:inline; width:".$size."em;' type='text' 
-			 	value='$Valor' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >
-			 	
-		</div>
-	";
-		}else {
-		$resultado = "
-		<div class='' style='display:inline; border: solid 1px #BFBFBF ;'>
-			<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','$Valor','cerrar','$div','$indice'); \">
-				<i class=' fa fa-times-circle'></i>
-			</a>
-			<a onclick=\"xajax_editar_campo('$tabla','$key','$campo',(document.getElementById('".$campo."_".$id."".$rrn."').value),'grabar','$div','$indice'); \" > 
-				<i class='fa fa-save'> </i>	
-			</a>
-			 	<textarea placeholder='$placeholder'  class='form-control' id='".$campo."_".$id."".$rrn."' name='".$campo."_".$id."".$rrn."' >$Valor
-			 	</textarea>
-			 	
-		</div>
-	";
-		}
-								}
-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="<small>$title</small>";}else{$aviso ="";}
-$campo ="
-	
-				<div style='display:inline;' id='$div' title='EDITAR $title'>
-					<a  onclick=\"xajax_editar_campo('$tabla','$key','$campo','','input','$div','$indice') \" >
-					<!-- <small><i   class='fa fa-edit'></i></small> -->
-					$valor $aviso</a>
-				</div>
-	
-					";
-													}
-	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 ="<div class='alert alert-danger'><h1>Acceso restringido <small>Esta aplicación contiene datos privados</small> ( ) <i class='fa fa-key'></i></h1></div>";
-		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 = "<img class='img img-responsive' style='width:100%' src='$_SESSION[url]images/secure/?file=600/$contenido'>
-									<a href='$_SESSION[url]milfs/images/secure/?file=full/$contenido' target='imagen'>Mostrar <i class='fa fa-search-plus'></i></a>
-									"; }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 = "
-
-			<img class=' img-responsive'  style='width:100%'  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/600x250.png?access_token=$mapbox_token' >
-			"; }else{	$contenido ="<div class='alert alert-danger'>No se ha definido un token de mapbox</div>";}
-										}
-			}
-		elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-		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 = "
-		<video width='100%' controls>
-			<source src='$contenido' type='video/mp4'>
-		</video>
-		<!-- <iframe  width='100%' height='100%'  class= 'iframe-media' src=\"$contenido\" frameborder='0' allowFullScreen ></iframe> -->";
-							}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 .= "
-	<div  id='contenedor_$row[id_campo]' class='container-fluid'>
-		<h4 class='campo_contenido' id='contenido_$row[id_campo]'>
-				<small class='campo_titulo campo_nombre' id='nombre_$row[id_campo]'>$campo_nombre[0]</small><small class='pull-right'>$metadatos</small><br>
-				$contenido</h4>
-	</div>";
-}
-}
-														}
-	
-	//$resultado .=" </div>	<!-- <div class='badge pull-right'>Datos registrados el $fecha </div> -->	";
-//}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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= "<div class='$class'>$resultado </div>";							
-							}
-
-		$resultado ="$full";
-	return $resultado;
-	
-//	}else {$resultado ="<div class='alert alert-warning'><h1>No se encontraron resultados</h1></div>"; 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 ="
-
-<form method='post' class='' enctype='multipart/form-data' action=  ' $javascript ' target='iframeUpload' class='form-horizontal' name='subir_imagen_$id' id='subir_imagen_$id' >
-<input type='hidden' id='id_imagen' name='id_imagen' value='$id'>
-<input type='hidden' id='campo_mapa' name='campo_mapa' value='$campo_mapa'>
- <input class='form-control'  name='fileUpload' type='file' onchange=\"this.form.taget= 'iframeUpload'; this.form.action = '$javascript';this.form.submit();\" /> 
- <iframe name='iframeUpload' style='display:none;' ></iframe>
-<div class='alert alert-info text-center' id='formUpload'>La imagen debe estar en formato .jpg y de tamaño m&aacute;ximo  $_SESSION[upload_size] MB ( $size)</div> 
-</form>
-";
-return $resultado;
- 
-}
-
-
-function formulario_importador($accion) {
-	
-	if($accion =='') {
-	$resultado="<a href='#' onclick =\"xajax_wait('contenido',''); xajax_formulario_importador('formulario'); \"><i class='fa fa-upload'></i> Importador</a>";	
-
-	return $resultado;	
-		}
-			$respuesta = new xajaxResponse('utf-8');
-			$formulariox =formulario_importar('','menu','');
-			$resultado="$formulariox <div id='importador' name='importador'></div> ";
-			$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 ="
-<form method='post' enctype='multipart/form-data'
-action=  $javascript 
-target='iframeUploadArchivo'>
-<input id='perfil' name='perfil' value='$perfil' type='hidden' >
-<input class='form-control' name='fileUpload' type='file' onchange=\"submit()\" />
-<iframe name='iframeUploadArchivo' style='display:none' ></iframe>
-<div style='display:inline' id='aviso_archivo'>M&aacute;ximo 1MB </div>
-
-</form> ";
-
-
-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 .="<select class='form-control' id='seleccion_formulario'  name='seleccion_formulario' onchange =\" xajax_formularios_muestra_listado((this.value)) \" >";
-	$resultado .= "<option value=''>Seleccionar formulario a importar</option>";
-$fila=0;
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$fila = $fila +1;
-	if ($fila %2 == 0){$bg='LightCyan';}else{ $bg='FFFFFF';}
-
-$resultado .= "<option value='$row[id]'> $row[nombre]</option>";
-															}
-															
-	$resultado .="</select><br>";
-										}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 = "<h3>Importar <small>$formulario_nombre[0]</small></h3>";
-		$subir = subir_archivo($formulario) ;
-		$div="contenido";
-  
-			$muestra_form = "
-				<div class='container-fluid' id='contenedor_datos' >
-				<input type='hidden' value='$formulario' id='seleccion_formulario' name='seleccion_formulario' >$subir</div>
-				<div id=importador_select name=importador_select></div>
-				<div id=importador_archivo name=importador_archivo></div>
-			";
-			$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 = "
-	<div class='container-fluid' style='overflow:auto; height:400px; ' id='div_resultados'>
-
-
-	<table class='table table-bordered table-striped table-responsive '>
-		<legend>Importando formulario</legend>";
-$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 .= "<tr>";
-$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 .= "<td  >$columna  $sql_resultado </td>";
-$numero_columna ++;
-        }
-        $resultado .= "<tr>";
-		     }
-		     else {
-    $resultado .= "<thead><tr>";
-
-              $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 ="<i class='fa fa-frown-o'></i><small> No existe<br></small>"; $class='danger';
-				if($campo_existe[0] !='') { $verificar_campo_aviso ="<i class='fa fa-exclamation-triangle'></i><small> No está en el formulario<br></small>";$class='warning';}
-				}
-				
-				else{$verificar_campo_aviso =""; $class='success';}
-				
-	$resultado .= "<th class='$class'>$titulo $campo_existe[0]<br><span class='badge'>$verificar_campo_aviso</span> </th>";
-	$posicion ++;
-	}
-
-  		
-    $resultado .= "<tr></thead>";
-    }
-		      $fila++;
-    }
-        
-    
-                $resultado .= "</table>
-                </div> $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 ="<a href='#'  onclick =\"xajax_borrar_tmp('$div');\">Limpiar</a>";
-
-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 ="<div class='btn navbar-btn btn-warning' onclick =\"xajax_borrar_tmp('$div');\" ><i class='fa fa-trash-o'></i><small> $ahora<small></div>";
-	$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 ="<tr >";
-		$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= "<img class='thumbnail' src='images/secure/?file=150/$imagen' alt='$imagen' style='max-width:100px;' title='$imagen'>";
-		
-	}else {$imagen='';}
-$td .= "<td>$imagen</td>";
-
-	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] <!-- <small>$row[id_campo]</small> -->";
-									}
-		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 = "<img class='img-responsive' src='$_SESSION[site]milfs/images/secure/?file=600/$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 = "
-			<!-- <img class='img-round'  src='http://dev.openstreetmap.de/staticmap/staticmap.php?center=$lon,$lat&zoom=$zoom&size=350x100&maptype=mapnik&markers=$lon,$lat,red-pushpin' > -->
-						<img class='img-round '  src='https://api.tiles.mapbox.com/v4/examples.map-zr0njcqy/url-".$url_pin."($lat,$lon,$zoom)/$lat,$lon,$zoom/350x100.png?access_token=$mapbox_token' >";
-											} else { $contenido ='';}
-			}
-			elseif($campo_tipo=='4'){ $contenido = "<a href='$contenido' target='_blank'>$contenido</a>";}
-			elseif($campo_tipo=='3' AND $contenido !=""){ $contenido = number_format($contenido);}
-			else {$contenido = Markdown("$contenido");}
-			
-			}
-
-
-	if($tipo=="titulos") {
-$td .= "<th> $contenido </th>";	
-
-	}else{
-		
-	$td .= "<td> $contenido </td>";
-	}
-															}
-
-if($tipo=="titulos") {	$identificador ="<th>Identificador</th>"; }else {$identificador ="<td>$control</td>";}
-	$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 .= "<tr title =''> $depliegue </tr>";
-							
-							}
-							$resultado = "<div class='table-responsive'><table class='table table-hover '>$titulo $campos </table></table>";
-									}
-$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor seleccione un formulario</h1></div>";
-			$respuesta->addAssign($div,"innerHTML",$resultado);
-			return $respuesta;
-	}
-if($cantidad < 1) {
-			$resultado ="<div class='alert alert-danger'>
-								<h1><i class='fa fa-exclamation-triangle'></i>
-										El formulario <strong>\"$formulario_nombre[0]\"</strong> no tiene registros 
-								</h1>
-							</div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> Por favor escriba una palabra para buscar</h1></div>";
-			$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 ="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta  </h1></div>";
-			$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 ="<a class='btn btn-default btn-success' href='$nombre_archivo'>Descargar <i class='fa fa-cloud-download'></i></a>";
-			$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 ="<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";
-	$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 .= "<a class='btn btn-default' onclick=\"xajax_borrar_tmp('resultados'); xajax_limpia_div('resultados'); xajax_limpia_div('resultados_encabezado')\">Limpiar<i class='fa fa-trash-o'></i></a> ";
-				if($formato!='csv'){ 
-	$botones .= "	<a class='btn btn-default' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','','','csv');\">
-							Exportar <i class='fa fa-file-text-o'></i>
-						</a>";
-										}
-	$paginacion ="<ul class='pagination  pull-right'>";
-				$total_paginas = ceil($total_registros / $registros); 
-				if(($pagina - 1) > 0) {
-					$indice .="<li><a title='Cambiar a la página ".($pagina-1)."'  onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina-1)."');\"' style='cursor:pointer'>< Anterior</a> </li>";
-													}
-						for ($i=1; $i<=$total_paginas; $i++)
-						   if ($pagina == $i){
-					$indice .=  "<li class='active'><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-													} 
-							else {
-					$indice .=  "<li><a title='Cambiar a la pagina $i' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','$i');\"' style='cursor:pointer'>$i</a> </li>";
-								}
-
-				if(($pagina + 1)<=$total_paginas) {
-					$indice .= "<li><a  title='Cambiar a la pagina ".($pagina+1)."' onClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','$registros','".($pagina+1)."');\"' style='cursor:pointer'> Siguiente ></a></li>";
-																}
-					$indice .= "</ul>";
-	$paginacion .= $indice;
-	$encabezado = " 
-						<br>
-						<div class='row' id='botonera'>
-							<div class='col-sm-12'>$botones $paginacion <span id='boton_descarga'></span>  <span class='label label-default '>$total_registros registros</span></div>
-
-						</div>";
-$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 ="<td nowrap style='width:100px;' >
-
-							<div class='btn-toolbar '>
-							<div class='btn-group btn-group-xs'>
-								<a class='btn btn-default' onclick=\"xajax_formulario_modal('$row[form_id]','','$row[control]',''); \"><i class='fa fa-eye'></i></a>
-								<a class='btn btn-default' target='form' href='../f$row[form_id]&c=$row[control]'><i class='fa fa-share-square-o'></i></a>
-								<a class='btn btn-default' target='form' href='d$row[control]&t=edit'><i class='fa fa-pencil'></i></a>
-								$imagen 
-							</div>
-							</div>
-
-						</td>";
-	$campos .= "<tr title =''>$menu $depliegue </tr>";
-															}
-	$resultado .="<div class='table-responsive' ><table class='table ' style='max-width:450px;' ><td></td>$titulo $campos</table></div>";
-														}else{
-	$resultado .="<div class='alert alert-danger'><h1><i class='fa fa-exclamation-triangle'></i> No hay resultados para la consulta </h1></div>";
-																}
-	//$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 = "<label for='id_campo'>Campo</label>
-						<select onchange=\"xajax_formulario_campos_filtro('$perfil',(this.value),'filtro_$perfil'); \" class='form-control' name='id_campo' id='id_campo' >
-							<option value=''>Todos los campos</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[id_campo]' title='$row[campo_descripcion]'>$row[campo_nombre]</option>";
-if($div =='') {
-		if ($row[id_campo] == "$categoria"){ 
-				$class="active";
-				$filtro = formulario_campos_filtro("$perfil","$row[id_campo]","");
-														}else { $class=""; $filtro ='';}
-	$listado .="<a  class='list-group-item $class'><span class='badge'>$row[id_campo]</span> $row[campo_nombre] $filtro</a>";
-					}
-															}
-$resultado .= "	</select >
-						<div id='filtro_$perfil'></div>";										}
-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 = "<div class='input-group'>
-					<span class='input-group-addon'>Filtro <i class='fa fa-filter'></i> </span>
-						<select class='form-control' name='campo_filtro' id='campo_filtro' onchange=\"$onchange\"  >
-							<option value=''>Seleccione</option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "		<option value='$row[md5_contenido]' title=''>$row[contenido]</option>";
-															}
-$resultado .= "	</select >
-					</div>";
-										}
-else{$resultado = "<p class='text-danger'><i class='fa fa-exclamation-triangle'></i>  No se encontraron resultados</p>";}
-
-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 = "<a href='#'  onclick=\"xajax_formulario_consultar('$div'); \"><i class='fa fa-search'></i>  Consultas</a>";
-	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 = "
-		<form role='form' name='peticion' id='peticion' action='rss.php' target='rss' method='post'>
-			<div class='row'>
-				<div class='col-lg-4 '>
-					<div class='row'>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='inicio'>Desde</label>
-								<input type='date' name='inicio'  id='inicio' class='form-control' title='YYYY-MM-DD'>
-							</div>
-						</div>
-						<div class='col-lg-6'>
-							<div class='form-group'>
-								<label for='fin'>Hasta</label>
-								<input type='date' name='fin'  id='fin' class='form-control'  title='YYYY-MM-DD' value='$ahora' >
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class='col-lg-8'>
-					<div class='row'>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='busqueda'>Frase a buscar</label>
-								<input value='%%' type=text name='busqueda'  id='busqueda' placeholder='Cadena de busqueda' class='form-control'  >
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div class='form-group'>
-								<label for='formulario'>Formulario</label>
-								$formulario
-							</div>
-						</div>
-						<div class='col-lg-4'>
-							<div id='div_campos'  name='div_campos' style='display:inline;'></div>
-							
-						</div>
-					</div>
-				</div>
-			</div>
-		</form> 
-<div class='btn btn-block btn-success' OnClick=\"xajax_matriz_formulario(xajax.getFormValues('peticion'),'resultados','50','');\">Consultar</div>
-<div class= 'col-xs-12' id='resultados_contenedor' name='resultados_contenedor' >
-	<div id='resultados_encabezado' name='resultados_encabezado' >
-		
-	</div>
-	<div id='resultados' name='resultados' style='overflow:auto ; max-width:95%px; max-height:400px;' >
-	</div>
-</div> 
-
-";	
-$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 ="<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type='hidden' name='id_usuario' id='id_usuario' value=''>
-		<input type='hidden' name='div' id='div' value='contenido'> 
-	</form><h2 class='alert alert-success'>El campo se creó con éxito 
-	<div class='btn  btn-default' onclick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-	<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-	</h2>";
-	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 = "<h1>Problemas al grabar el campo</h1> $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 .= "<div name='crear_campos_consulta_$campo_area' id='crear_campos_consulta_$campo_area'>	</div>";	
-while( @$row = mysqli_fetch_array( $campos ) ) {
-if ($row['tipo_campo_accion']=='textarea'){
-$campos_formulario .= "<div  name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input  name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' type='hidden'><input name='id_campo_editar' type='hidden' id='id_campo_editar' value='".$row['id_consulta_campo']."'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br><textarea name='".$row['campo_nombre']."' rows='5' cols='70'></textarea></div><br><br>";}
-else{
-$campos_formulario .= "<div   name='id_campos_consulta_".$row['id_consulta_campo']."' id='id_campos_consulta_".$row['id_consulta_campo']."'><form name='Xcampo_editar".$row['id_consulta_campo']."' id='Xcampo_editar".$row['id_consulta_campo']."'><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden' ><input type='hidden' name='Xarea' id='Xarea' value='".$row['campo_area']."' ><input name='id_campo_editar' id='id_campo_editar' value='".$row['id_consulta_campo']."' type='hidden'></form>".$row['orden']."<input type='button' style='width: 200;text-align: left;'  value='".$row['campo_nombre']."' OnClick=\"xajax_crear_campos_consulta(xajax.getFormValues('Xcampo_editar".$row['id_consulta_campo']."'));\" title='".$row['campo_descripcion']."'><br> <input name='".$row['campo_nombre']."' id='".$row['campo_nombre']."' type='".$row['tipo_campo_accion']."' size='72'></div><br><br>";
-																	  }																		}
-
-$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 = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden' placeholder='Escriba las opciones separadas por coma y en orden ej: Casa,Carro,Beca,Mascota,Computador'>$valores</textarea>";
-					}
-elseif($tipo =='9'){
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera' placeholder='Escriba las opciones separadas por coma y en orden y los campos separados por dos puntos ej. Amazonas:Puerto santander,Amazonas:La chorrera,Amazonas:La pedrera'>$valores</textarea>";
-					}
-elseif($tipo =='16'){
-	if($valores =='') {$valores = "1,10";}
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Valor mínimo y máximo' placeholder='Escriba Valor mínimo y máximo separadas por coma 1,10'>$valores</textarea>";
-					}
-elseif($tipo =='17'){
-	$resultado ="<input class='form-control' type='number'  id='opciones' name='opciones' value='$valores' placeholder='Limite' title='Escriba un limite de caracteres para este campo' > ";
-}
-else{
-$resultado = "	<textarea class='form-control'  id='opciones' name='opciones' title='Predefinido' placeholder='Valores predefinido'>$valores</textarea>";
-}
-$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="<input type='hidden' name='editar' id='editar' value='editar'>
-			<input type='hidden' name='id_campo_editar' id='id_campo_editar' value='$id_campo_editar'>
-			
-			<input type='hidden' name='misma_area' id='misma_area' value='$area'>";
-$Campo_tipo_definido= $row['campo_tipo'];			
-}
-								}
-								
-$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$id_campo_editar') \" >";
-$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 .= " <option value='".$row['id_tipo_campo']."' SELECTED > > ".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row['id_tipo_campo']."'>".$row['id_tipo_campo']." - ".$row['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-
-if($id_form !="") {
-
-$agregar_a_formulario = "
-<div class='checkbox'>
-	<label>
-		<input type='checkbox'  name='agregar_id_form' id='agregar_id_form' value='$id_form' checked>
-		Incluir este campo en el formulario actual
-	</label>
-</div>
-		";
-}else {$agregar_a_formulario = "";}
-
-$identificador = md5($_SESSION['id']."-".microtime());
-$areas = select('form_areas','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"");
-$resultado .= "
-<div id='div_campos'>
-	<div name='formulario_campos_$area' id='formulario_campos_$area' style='padding: 10px;' class='BC".$especialista."' >
-	<form role='form' name='$formulario' id ='$formulario' style='' >
-	<div class='row'>
-
-			<div class='col-xs-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-			<label for ='campo_nombre'>Nombre del campo</label>
-			<input class='form-control' type='text' name='campo_nombre' id='campo_nombre' size='35' value ='$campo_nombre'>
-		</div>
-			</div>
-			<div class='col-xs-4'>
-					<div class='form-group'>
-					$Tipo_campo 
-					</div>
-			</div>
-			<div class='col-xs-4'>
-						<div class='form-group'>
-							<label for='publico' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='publico' id='publico'>  
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-			</div>
-		</div>
-		
-			<div class='col-sm-12'>
-				<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				$areas
-			</div>
-		</div>
-		
-		<div class='form-group'>
-			<label for ='campo_descripcion'>Descripci&oacute;n o ayuda para el campo</label>
-			<textarea class='form-control' name='campo_descripcion' id='campo_descripcion' cols=60 rows='3'>$campo_descripcion</textarea>
-		</div>
-		
-	
-
-	
-
-	<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-	$agregar_a_formulario
-	<div class='btn btn-block btn-default' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'')\" />	
-	<i class='fa fa-floppy-o'></i> Grabar
-	</div>
-		<br><input type ='hidden' name='id_especialista' id='id_especialista' value='$especialista'>
-		$editar
-		<input type ='hidden' name='tipo' id='tipo' value='nuevo'>
-		<input type ='hidden' name='campo_identificador' id='campo_identificador' value='$identificador $especialista'>
-	 	</form>
-			 	
-	 	</div>
-</div>";
-$resultado = "
-<br>
-<div class='alert alert-warning'>
-	<legend>Crear un nuevo campo</legend>
-	$resultado
-</div>
-";
-$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 = "<a href='#'onclick=\"xajax_limpia_div('$div')\"> [X]</a> ";
-$resultado = " <a href='#' onclick=\"xajax_wait('$div','');xajax_formulario_crear_campo('$area','','$div'); \"><i class='fa fa-plus-square'></i> Campos </a>";
-					
-					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 = "
-
-
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id]'>
-		<input type='hidden' name='div' id='div' value='$div'> 
-
-	</form> 
-		<div class='row' role='row'>
-			<div class='col-sm-6'>
-			$areas
-			</div>
-			<div class='col-sm-6'>
-				<div class='btn btn-block   btn-default'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'');\"><i class='fa fa-plus-square'></i> Crear un nuevo campo</div>
-			</div>
-			<!-- <div class='col-sm-4'>
-			<div class='input-group'><span class='input-group-addon'>Modificar campo</span> $listado_campos</div>
-			</div> -->
-		</div>
-
-		
-		
-<hr>
-	<div id='div_campos'>$tabla_campos</div>
-";
-}else{
-$campos_formulario .= "<div name='crear_campos_consulta_$area' id='crear_campos_consulta_$area'>	</div>";	
-while( $row = mysqli_fetch_array( $campos ) ) {
-//	if($row[campo_tipo] =='8'){ 
-	$respuesta->addScript("xajax_formulario_opciones_select('$row[campo_tipo]','$campo') ");
-//	}
-	$Tipo_campo ="<label for='campo_tipo'>Tipo:</label>
-	<select class='form-control'  name='campo_tipo' id='campo_tipo' onchange=\"xajax_formulario_opciones_select((this.value),'$campo') \" >";
-$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 .= " <option value='".$row_tipo['id_tipo_campo']."' SELECTED > > ".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']." < </option>";
-																									}
-$Tipo_campo .= " <option value='".$row_tipo['id_tipo_campo']."'>".$row_tipo['id_tipo_campo']." - ".$row_tipo['tipo_campo_nombre']."</option>";
-}
-$Tipo_campo .="</select><div id='opciones_select' name='opciones_select'></div>";
-
-if($row['activo'] =='1'){$activo = "<option value='1' selected >Activo: el campo puede ser usado en formularios</option>  ";}
-else{$activo = "<option value='0' selected >Inactivo: El campo NO se usará</option> ";}
-$formulario = "editar_campos";
-$areas = select('form_areas',"id",'nombre','',"id_empresa = '$_SESSION[id_empresa]'",'campo_area',"$row[campo_area]");
-
-$campos_formulario .= "
-<div id='formulario_campos_$misma_area'>
-<div class='alert alert-info' >
-<form role='form' id='$formulario' name='$formulario'>
-<input type='hidden' id='editar' name='editar' value='editar'>
-<input type='hidden' id='id_campo_editar' name='id_campo_editar' value='$campo'>
-<input type='hidden' name='misma_area' id='misma_area' value='$area'>
-
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div id='grupo_campo_nombre' class='form-group'>
-				<label for='campo_nombre' >Nombre del campo</label>
-				<input type='text' class='form-control' id='campo_nombre' name='campo_nombre' value='$row[campo_nombre]'>
-			</div>
-		</div>
-		<div class='col-sm-4'>
-			$Tipo_campo
-		</div>
-		<div class='col-sm-4'>
-						<div class='form-group'>
-							<label for='activo' >Estado</label>
-								<select class='form-control alert-warning' value='1' name='activo' id='activo'>  
-									$activo
-									<option value='1'>Activo: el campo puede ser usado en formularios</option>  
-									<option value='0'>Inactivo: El campo NO se usará</option>
-								</select>
-						</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_area' >Área o grupo del campo</label>
-				 $areas
-			</div>
-		</div>
-		<div class='col-sm-12'>
-		
-			<div class='form-group'>
-				<label for='campo_descripcion' >Descripción del campo</label>
-				<textarea type='text' class='form-control' id='campo_descripcion' name='campo_descripcion' >$row[campo_descripcion]</textarea>
-			</div>
-		</div>
-	</div>
-	<div class='row'>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-success' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'editar')\" /><i class='fa fa-floppy-o'></i>	Grabar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div title='Para clonar un campo debe cambiar el nombre' class='btn btn-block btn-warning' OnClick=\"xajax_formulario_campos_procesar(xajax.getFormValues('$formulario'),'clonar')\" /><i class='fa fa-clone'></i>	Clonar</div>
-		</div>
-		<div class='col-sm-4'>
-			<div class='btn btn-block btn-danger' OnClick=\"xajax_limpia_div('$div')\" ><i class='fa fa-times-circle'></i> Cancelar</div>
-		</div>
-	</div>
-	
-</form>
-
-
-</div>
-</div>";
-
-																	  }
-			}///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 = " <a href='#' onclick=\"xajax_agregar_campos('consultar_listado','$div','')\"><i class='fa fa-pencil-square-o'></i> Editar</a>";
-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: <select class='form-control' name='id_consulta_tipo' id='id_consulta_tipo' onchange=\"xajax_agregar_campos('consultar_campos','$div',this.value)\">";
-$resultado .= "<option value=''>Selecciona </option>";
-while( $row = mysqli_fetch_array( $sql ) ) {
-$resultado .= "<option value='$row[id]'>$row[nombre]</option>";
-															}
-$resultado .="</select> $cerrar";															
-										}else {
-$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay formularios para editar</div>";										
-										}
-										}
-										
-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<h2>$nombre</h2>
-				"; 
-$resultado .= "<div class='row'>
-						<div class='col-md-4 hidden-md'>
-							Campo
-						</div>
-						<div class='col-md-2 '>
-							Obligatorio
-						</div>
-						<div class='col-md-3'>
-							Orden
-						</div>
-						<div class='col-md-2  '>
-							Multiple
-						</div>
-						<div class='col-md-1 '>
-							Borrar
-						</div>
-						
-					</div>";
-
-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 .= "<div class='row'>
-						<div class='col-md-4'>
-							<span class='label label-default'>$row[id_campo]</span> $row[campo_nombre]
-						</div>
-						<div class='col-md-2' title='OBLIGATORIO'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[obligatorio]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','obligatorio',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-3' title='ORDEN'>
-							<div class='input-group '>
-								<span class='input-group-addon' >
-								<input  type='number' value='$row[orden]' min='0' max='100' size='2' class='' id='input_orden_$row[control]'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \"	>
-								</span>
-								<input  type='range' value='$row[orden]' min='0' max='100' class='form-control'
-								onchange =\"(document.getElementById('input_orden_$row[control]').value=(this.value));xajax_actualizar_campo('form_contenido_campos','$row[id]','orden',(this.value),'','orden_$row[control]'); \">
-								<span class='input-group-addon' id='orden_$row[control]' >$row[orden]</span>
-								
-							</div>
-						</div>
-						<div class='col-md-2' title='MULTIPLE'>
-							<div class='input-group '>
-								<span class='input-group-addon'></span>
-								<input  type='range' value='$row[multiple]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_contenido_campos','$row[id]','multiple',(this.value),'',''); \">
-								<span class='input-group-addon alert-success'></span>
-							</div>
-						</div>
-						<div class='col-md-1' title='ELIMINAR'>
-							<div name='eliminar_$row[control]' id='eliminar_$row[control]' >
-								<a class='btn btn-danger btn-block' title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$row[control]','','$row[control]','$id','$div')\">
-								<i class='fa fa-trash-o'></i>
-								</a>
-							</div>
-						</div>
-						
-					</div>";
-															}
-
-$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 ="<div name='atencion' id='atencion' style='display:inline'></div>
-	<form name='nuevo_campo' id='nuevo_campo' role='form'>
-		<input type ='hidden' name='id_usuario' id='id_usuario' value='$_SESSION[id_usuario]'>
-		<input type='hidden' name='div' id='div' value='atencion'> 
-	</form> 
-			<div class='form-group'>
-				<div class='btn btn-block   btn-warning'  OnClick=\"xajax_crear_campos_formulario(xajax.getFormValues('nuevo_campo'),'$id');\"><i class='fa fa-plus-square'></i> Crear campo</div>
-			</div>
-
-";
-								while( $row = mysqli_fetch_array( $sql_consulta_campo ) ) {
-$valores .= "<option value='$row[id]' title='$row[campo_descripcion]'>$row[campo_nombre] [$row[id]]</option>";
-																											}
-$resultado .="
-<br>
-<div class='input-group'>
-	<span class='input-group-addon'><i class='fa fa-plus-square'></i> Agregar campo a este formulario</span>
-		<select class='form-control' name='id_form_campo' id='id_form_campo' onchange=\"xajax_agregar_campos('grabar_campos','$div',this.value,'$id')\">
-		<option value='nuevo'> Seleccione un campo  </option>
-		$valores
-		</select>
-	<span class='input-group-btn'>
-	<div class='btn btn-default' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$id')\">Actualizar</div>
-	</span>
-</div>
-<br>
-$crear_nuevo ";	
-
-											}/// fin de consultar_campos
-											
-if($tipo=='grabar_campos'){
-	if ($id=="nuevo")
-{ 
-
-
-}
-elseif($id =="") { $div='atencion';$resultado="<i class='fa fa-exclamation-triangle'></i> 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="<i class='fa fa-exclamation-triangle'></i> 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 = "<i class='fa fa-exclamation-triangle'></i>
-									Seguro que desea eliminar el campo de esta consulta? 
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','$confirmar','$confirmar','$id_c','$capa_original')\"> [SI] </a>
-									<a onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','x','$confirmar','$id_c','$capa_original')\"> [NO]</a>
-									
-									";}
-	else{
-	if($id=='x'){ /// si se pasa una x como argumento se regresa a la capa original
-$resultado .= "<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('eliminar','eliminar_$confirmar','','$confirmar')\">
-								<img src='images/eliminar.gif' border='0' alt='[X]' title='Eliminar este campo'> 
-								</a>";
-				}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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('obligatorio','obligatorio_$control','$id','$control')\">$id
-								</a>";
-$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 ="<input type='text' size='2' title='Escriba un valor para el orden de aparición de este campo en la consulta' value='$id'
-								onChange=\"xajax_agregar_campos('orden','orden_$control',this.value,'$control')\">$id
-								</a>";
-								
-$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 ="<a title='Click para cambiar el valor' 
-								onClick=\"xajax_agregar_campos('prellenado','prellenado_$control','$id','$control')\">$id
-								</a>";
-$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 .= "<a href='#' onclick=\"xajax_formulario_nuevo('','$div'); \"><i class='fa fa-plus-square-o'></i> Formulario </a> ";
-
-					return $resultado;
-		}
-if($formulario ==''){
-	$formulario_nombre = "nuevo_formulario";
-	$formulario_respuesta = select('form_id','id','nombre','',"id_empresa = '$_SESSION[id_empresa]'",'formulario_respuesta','');
-$resultado .= "
-<form role='form' id='$formulario_nombre'  name='$formulario_nombre' >
-<legend>Crear un formulario</legend>
-	<div class='form-group'>
-		<label for='consulta_tipo_nombre' >Nombre para el formulario</label> 
-		<input class='form-control' type='text' id='nombre' name='nombre' maxlenght='30' >
-	</div>
-	<div class='form-group'>
-		<label for='consulta_tipo_descripcion'>Descripción</label>
-		<textarea class='form-control' id='descripcion' name='descripcion'></textarea>
-	</div>
- 	<div class='form-group'>
-		<label for='formulario_respuesta'>Formulario anidado con: </label>
-		$formulario_respuesta 
-	</div> 
- 	<div class='form-group'>
-		<label for='grupo'>Grupo: </label>
-		<input class='form-control' id='grupo' name='grupo' type='text' placeholder='Escriba el nombre del grupo'> 
-	</div> 
-	<div class='input-group '>
-						
-								<span class='input-group-addon'>Privado</span>
-								<input  id='publico'  name='publico'  type='range' value='0' min='0' max='1' class='form-control'>
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-	<div class='form-group alert-warning'>
-	
-	</div>
-	<div class='btn  btn-success btn-block' onclick=\"xajax_formulario_nuevo(xajax.getFormValues('$formulario_nombre'),'$div') \">
-		Grabar
-	</div>
-
-</form>";	
-	
-	}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 = "<li id='link_formulario'><a href='#'  onclick=\"xajax_formulario_listado('$sesion_grupo_formularios','$div'); \"><i class='fa fa-list'></i> Formularios</a></li> ";
-					
-					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 ="<legend>Grupo $filtro_grupo</legend>";
-					
-	}else{ $leyenda_filtro_grupo ="<legend>Formularios</legend>"; unset($_SESSION['grupo_formularios']);}
-$resultado_link = "<a href='#'  onclick=\"xajax_formulario_listado('".@$_SESSION[grupo_formularios]."','$div'); \"><i class='fa fa-list'></i> Formularios</a> ";
-$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 ="
-				<div class='input-group'>
-					<span class='input-group-addon'>Seleccione un grupo de formularios</span>
-					$listado_grupos
-				</div>				
-				
-				";    			
-   			
-   			$nuevo_formulario = "
-				<div class='form-group'>	
-   			<a class='btn btn-primary btn-block ' href='#' onclick=\"xajax_formulario_nuevo('','contenido'); \">
-				<i class='fa fa-plus-square-o'></i> Crear formulario </a>
-				</div>"; 
-			$resultado = "
-							<div class='col-sm-4' style=''>
-							$nuevo_formulario
-							</div>
-							<div class='col-sm-8' style=''>
-							$listado_grupos
-							</div>
-							$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 ="<li class='list-group-item'>Llenado: $cantidad veces</li>";}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 = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Contenido privado</span>
-								<input  type='range' value='$estado[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','publico',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		$modificable = 	remplacetas('form_id','id',$id,'modificable',"") ;
-		$modificable = "<tr><td>
-							<div class='input-group '>
-								<span class='input-group-addon'>Formulario privado</span>
-								<input  type='range' value='$modificable[0]' min='0' max='1' class='form-control'
-								onchange =\"xajax_actualizar_campo('form_id','$row[id]','modificable',(this.value),'',''); \">
-								<span class='input-group-addon alert-danger'>Público</span>
-							</div>
-						</td></tr>";
-		
-		
-		$primer = 	formulario_uso("$id",'','primer') ;
-		if(@$primer[0] !='') {$primer = "<li class='list-group-item'>Primer registro: <a onclick=\"xajax_formulario_modal('','','$primer[1]',''); \"> ".date ( "Y-m-d h:i:s" , $primer[0])."</a></li>";}else{$primer='';}
-		$ultimo = 	formulario_uso("$id",'','ultimo') ;
-		@$ultimo_control = $ultimo[1];
-		if(@$ultimo[0] !='') {$ultimo = "<li class='list-group-item'>Último registro: <a onclick=\"xajax_formulario_modal('','','$ultimo[1]',''); \"> ".date ( "Y-m-d h:i:s" , $ultimo[0])."</a></li>";}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= "<li class='list-group-item'><a href='".$_SESSION['url']."map.php?id=$id' target='mapa'><i class='fa fa-globe'></i> Mapa</a></li>";}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 = "
-		<div id = 'div_grupo_$row[id]'>
-				
-					<form id='form_grupo_$row[id]' name='form_grupo_$row[id]'>
-								<input name='grupo' id='grupo' type='text' placeholder='Grupo'> 
-								<input name='id' id='id' type='hidden' value='$row[id]'> 
-							<div class='btn btn-default btn-success' onclick=\"xajax_insertar_registro('form_grupo',xajax.getFormValues('form_grupo_$row[id]'),'div_grupo_$row[id]','grupo'); \"><i class='fa fa-save'></i></div>
-							
-					</form>
-				</div> 
-				";
-		//	$grupo = "Grupo ".editar_campo("form_grupo",$row['id'],"grupo","","","");
-			}else 
-			{
-							$grupo = "".editar_campo("form_grupo",$row['id'],"grupo","","","","");
-			}
-
-$item .=  "<!-- <div class='col-sm-$columnas' style=';'> -->
-						<div class='panel panel-default' >
-							 <div class='panel-heading'  id= 'encabezado_$row[id]' role='tab'>
-							 	<div class='panel-title container-fluid'>
-							 		
-								 		<div class='col-xs-6'>
-								 			<a class='btn btn-default btn-warning' onclick =\" xajax_formulario_importar_subir('$id') \"  ><i class='fa fa-upload'></i> Importar (Experimental)</a>
-								 			<a class='btn btn-default ' href='$_SESSION[site]f$id' target='formulario'><i class='fa fa-save'></i> Llenar</a>
-<!-- 								    		<a class='btn btn-default' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \"><i class='fa fa-save'></i></a> -->
-								    		<div class='btn btn-default btn-default' onclick=\"xajax_consultar_formulario('$row[id]','10','','modal'); \"><i class='fa fa-eye'></i> Consultar</div>
-								    		<a class='collapsed' role='button' data-toggle='collapse' data-parent='#acordion_grid' href='#collapse$row[id]' aria-expanded='false' aria-controls='collapse$row[id]'>
-								    		
-												<h4>$nombre_formulario[0]<br><small>$descripcion_formulario[0]</small></h4>								    		
-								    		</a>
-								    		
-											
-							    		</div>
-							    		<div class='col-xs-5'>
-							    		<ul class='list-group'>
-											<li class='list-group-item'>Creación: $row[creacion] / $propietario[0]</li>
-											$cantidad
-											$ultimo
-											$primer
-											$mapa
-							    		</ul>
-							    		
-								    	</div> 	
-								    	<div class='col-xs-1 alert alert-info '>
-								    		<h2 class='text-center '>$row[id]</h2>
-								    	</div>
-								    
-							   </div>  
-							    
-							 </div>
-							 <div id='collapse$row[id]' class='panel-collapse collapse' role='tabpanel' aria-labelledby='encabezado_$row[id]'>
-							 <div class='panel-body' >
-								<div class='container-fluid'>
-
-										<div class='row'>
-											<div class='col-md-4'>
-												<div class='btn btn-block btn-success' onclick=\"xajax_agregar_campos('consultar_campos','contenido','$row[id]')\">Agregar o quitar campos</div>
-											</div>
-<!-- 											<div class='col-md-4'>
-													<a class='btn btn-primary btn-block' href='#' onclick=\"xajax_formulario_modal('$row[id]','','',''); \">Llenar</a>
-											</div> -->
-											<div class='col-md-4'>
-													<a class='btn btn-warning btn-block' href='#' onclick=\"xajax_formulario_parametrizacion($row[id],'','contenido'); \">Parametrización</a>
-											</div>
-											<div class='col-md-4'>
-												<div id='eliminar_$row[id]'> <a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar($row[id],''); \"><i class='fa fa-trash-o'></i> Eliminar</a></div>
-											</div>						
-										</div>
-										
-										<ul class='list-group'>
-											<li class='list-group-item'><h3><small>Nombre:</small>$nombre</h3></li>
-											<li class='list-group-item'><h4><small>Descripción:</small>$descripcion</h3></li>
-											<li class='list-group-item'><h4><small>Orden:</small>$orden <small>Grupo:</small> $grupo</h4></li>									
-											<li class='list-group-item row'>
-											<div class='col-md-5'>
-												<legend>Mensaje de respuesta </legend>
-												<div id='div_mensaje_envio_$row[id]'>
-													<textarea style='min-height:245px;' class='form-control' id='mensaje_envio_$row[id]' name='mensaje_envio_$row[id]' value=''>$mensaje_envio[0]</textarea>
-													<small>Soporta CSS3, HTML5 y Bootstrap</small>
-														<div class='btn btn-default btn-block' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','mensaje_envio',document.getElementById('mensaje_envio_$row[id]').value,'preview_mensaje_envio_$row[id]'); \"><i class='fa fa-save'></i>  Grabar y previsualizar</div>
-												</div>
-												
-											</div>
-											<div class='col-md-7'>
-												<legend>Previsualización</legend>
-											<div id='preview_mensaje_envio_$row[id]' class='container-fluid' style='min-height:300px; border:  solid 1px gray; border-radius: 3px;'>
-											$mensaje_envio[0]
-											</div>
-											</div>
-											</li>	
-											<li class='list-group-item'>
-												<div id='div_email_envio_$row[id]'>
-													<div class='input-group' >
-														<span class='input-group-addon'>Definir un email para envío</span>
-														<input class='form-control' id='email_envio_$row[id]' name='email_envio_$row[id]' value='$email_envio[0]'>
-														<div class='input-group-btn'>
-															<div class='btn btn-default' onclick=\"xajax_parametrizacion_linea('form_id','$row[id]','email',document.getElementById('email_envio_$row[id]').value,'div_email_envio_$row[id]'); \"><i class='fa fa-save'></i></div>
-														</div>
-													</div>
-												</div>
-											</li>									
-										</ul>
-										</div>
-										<div class='row'>
-											<div class='col-md-6'>
-											$estado
-											</div>
-											<div class='col-md-6'>
-											 $modificable	
-											</div>
-										</div>
-								</div>
-						</div>
-						
-					<!-- </div> --> ";
-
-
-	if($i%$divider==0) {
-			$item .= "</div>	";
-								}
-
-															}
-
-															
-	//$resultado .="";
-										}
-										
-		
-else{ $resultado .= "<div class='alert alert-warning' ><h2>Aún no se han diseñado formularios</h2></div> ";}
-
-		$resultado_formulario ="
-		<div class='panel-group' id='acordion_grid' role='tablist' aria-multiselectable='true'>
-		$item
-		</div>";
-		$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 ="<div class='alert alert-danger'>
-					<h1>Se eliminará el formulario <b>$nombre_form</b> ($id) </h1>
-						<a class='btn btn-success ' href='#' onclick=\"xajax_formulario_eliminar('$id','eliminar'); \"><i class='fa fa-trash-o'></i> Aceptar</a>							
-						 <a class='btn btn-danger ' href='#' onclick=\"xajax_formulario_eliminar('$id','cancelar'); \"><i class='fa fa-times-circle'></i> Cancelar</a>							
-				</div> ";	
-}elseif($tipo=='cancelar') {
-	$resultado ="<a class='btn btn-danger btn-block' href='#' onclick=\"xajax_formulario_eliminar('$id',''); \"><i class='fa fa-trash-o'></i> Eliminar</a>";
-}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 = "
-<div id='ingrediente_linea_$id' style='display:inline'> 
- $render
-</div>
-
-	
-
-	";
-	$boton= "		<div style='display:inline' class='btn btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','".($item+1)."') \">
-		<i class='fa fa-plus-circle'></i> Agregar campo
-		</div>";
-$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 = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		elseif($campo_tipo_accion == 'date'){$render = "<input value='$value' type='date' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		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 .= "
-	<div style='position:relative'>
-		<div class='input-group'>
-			<input placeholder='Ejemplo: El libano, tolima, colombia' type='text' class='form-control' id='geocoder_".$id_campo."[".$item."]'>
-			<span class='input-group-btn'>
-				<div class='btn btn-default' onclick=\"xajax_geocoder((document.getElementById('geocoder_".$id_campo."[".$item."]').value),'".$id_campo."[".$item."]'); \"  ><i class='fa fa-search'></i></div>
-			</span>
-		</div>
-		
-	<div id='muestra_geocoder' style='position:absolute; max-height: 300px; width: 90%; overflow-y:auto; '></div>
-	</div>
-	
-	<iframe id='mapita' src='$_SESSION[url]mapa.php?lat=$lat&lon=$lon&zoom=$zoom&id=".$id_campo."[".$item."]' width='100%' height='300px'></iframe>
-	<input   value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='coordenadas' readonly >
-																		
-																				 ";
-					$cols='12';																																	 
-																				 }
-elseif($campo_tipo_accion == 'email'){$render = "
-							<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<code>Escriba un email válido</code> ";}
-		elseif($campo_tipo_accion == 'envio'){$render = "
-						<input value='$value' type='email' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > 
-						<code>Se enviará un email</code>";}
-		elseif($campo_tipo_accion == 'textarea'){
-			$render = "		<textarea cols='50' data-provide=\"markdown\"   rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';													
-			}
-																//$subir_imagen = subir_imagen('');		
-		elseif($campo_tipo_accion == 'imagen'){
-			$style ="display:hidden";
-		//	$gps = leer_exif($file);
-		$render= "<input value='$value' type='hidden' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > "; //subir_imagen('',$id_campo[$item]);
-		$cols='12';	}
-		
-		elseif($campo_tipo_accion == 'html'){
-			$render = "
-			   
-					<textarea cols='50'  rows='8' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea> ";
-			$cols='12';																													
-																}
-		elseif($campo_tipo_accion == 'limit'){
-			$limite = limite("".$id_campo."[".$item."]",'','limite');
-			$rows = ceil($limite / 50 )+1; 
-			$render = "$limite /
-					
-			<span id='aviso_".$id_campo."[".$item."]' class='alert-info'></span> 
-				<textarea onkeyup= \"xajax_limite('".$id_campo."[".$item."]',(this.value));\" cols='50' rows='$rows' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >$value</textarea>
-			";
-			$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<count($titulos);$i++) $listado_titulos .= "<th>$titulos[$i]</th>"; 
-				for($i=0;$i<count($campos_incluidos);$i++) $listado_campos .= "".radio_agrupado_linea("$campos_incluidos[$i]",$id_form,$value,$campos_incluidos[$i]."[".$item."]",$control);//"<tr><td>$campos_incluidos[$i]</td></tr>"; 
-			//$select = radio_agrupado_linea($id_campo,$id_form,$value,$id_campo."[".$item."]",$control);
-			$render = "
-			<div style='width:100%; overflow-x:scroll '>
-				<div class='table-responsive' >
-					<table class='table table-striped table-hover table-condensed' >
-						<legend>$mensaje[0]</legend>
-						<tr><td></td> $listado_titulos </tr> 
-						$listado_campos
-					</table>
-				</div> 
-			</div>";
-			$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 = "<table class='table table-condensed table-striped table-hover' >$select </table> ";
-			$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 = " <!-- vinculado  -->
-									$select
-								<!-- 	fin vinculado  --> ";
-			$cols='12';	
-		}
-		elseif($campo_tipo_accion == 'number'){
-			$render = "
-															<input value='$value' type='number' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class=' has-warning form-control' placeholder='$campo_descripcion' > 
-															<code>(solo números)</code>";}
-
-		elseif($campo_tipo_accion == 'password'){
-			if( $control != "") {
-				$render="";$label=""; $campo_tipo_accion="oculto";
-			}else {
-			$render = "
-			<div class='row'>
-				<div class='col-md-6'>
-					<div class='input-group' id= '".$id_campo."[".$item."]_grupo'>
-						<span class='input-group-addon'>$campo_nombre</span>
-							<input class=' form-control'  autocomplete='off' value='' type='password' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-				<div class='col-md-6 '>
-					<div class='input-group' id= '".$id_campo."_control[".$item."]_grupo'>
-							<span class='input-group-addon'>Confirmar</span>
-							<input  class='  form-control'  onchange= \"xajax_confirma_campo((document.getElementById('".$id_campo."[".$item."]').value),(document.getElementById('".$id_campo."_control[".$item."]').value),'".$id_campo."[".$item."]','".$id_campo."_control[".$item."]')\" value='' type='password' id='".$id_campo."_control[".$item."]' name='".$id_campo."_control[".$item."]' placeholder='$campo_descripcion' >
-					</div> 
-				</div>
-			</div>
-															";
-														}
-														//else {}
-															$cols='12';	}
-		elseif($campo_tipo_accion == 'unico'){
-			$render ="<input onkeyup= \"xajax_revisar_campo_unico('".$id_campo."[".$item."]','$id_campo','$id_form',(this.value)) \" value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' >
-							<div id='div_".$id_campo."[".$item."]'></div> ";
-		}
-		else{$render = "<input value='$value' type='text' id='".$id_campo."[".$item."]' name='".$id_campo."[".$item."]' class='form-control' placeholder='$campo_descripcion' > ";}
-		if($multiple =='1'){	
-
-			
-		$campo_multiple  = "
-	<div id='id_campo_$id_campo"."_".$item."'>
-		<div id='boton_$id_campo' style='display:inline'>
-			<div class='btn btn-primary btn-link'  onclick=\"xajax_campo_multiple('$id_campo','$id_form','$control','$item') \" >
-			<i class='fa fa-plus-circle'></i> Agregar campo
-			</div>
-		</div>
-	</div>
-	";
-}
-	if($item == 0) { $label = "<label class='' for='$id_campo"."_".$item."' title='$id_campo'> <span class='text-$obligatorio'>$campo_nombre</span>  </label>";}
-				else {$label = "<label class=' sr-only' for='$id_campo"."_".$item."'>$campo_nombre $campo_obligatorio</label>";}
-				///// CAMPOS QUE NO SE MOSTRARAN		
-				if($campo_tipo_accion == 'imagen'){
-		$label="";
-		$campo_descripcion="";
-		}
-		if($cols =="") {$cols = "6";}
-		$input = "
-		<div class='col-md-$cols' style='$style'>
-			<div class='form-group ' id='input_".$id_campo."[".$item."]' >
-					$label 
-				<div class='col-md-12'>
-				$render 
-					$campo_descripcion
-				</div>
-			</div>
-		</div>
-$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] <br> ";
-														}
-							}
-$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 .= "<p>$$c =  \$formulario['$c'][$C]; // <b>$V</b>  /$campo_tipo[0] </p>";
-		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 .= "<p>$$c = \$formulario['$c']; // <b>$v</b> </p>";
-			}
- 								}
-										}
-										
-										
-
-
-//																}
-//											}
-
-$debug .= " $link ";
-//$respuesta->addAssign("pie_modal","innerHTML","$debug");
-
-if($consulta_grabada =='1') {
-if($tipo == "embebidoX"  ) 
-{
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	$mail = '1';
-	}
-	elseif($tipo == "solocampos" ){
-	
-
-		$exito ="
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 $formulario[mensaje] </h2>
-
-	</div>";
-	
-	$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 ="
-			 	<a href ='' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>
-";
-}else {
-	$otro_formulario = "
-			 	<a href ='f$formulario[form_id]' class='btn btn-block btn-success'>
-			 		Llenar otro formulario
-			 	</a>	
-	
-	";
-}
-$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 ="
-		<div>
-		$mensaje_agradecimiento[0]
-		</div>
-	<!-- 	use plantilla:preview  -->
-		$impresion 
-	<!-- 	use plantilla:preview  -->
-	<div class='alert alert-success'><h2><i class='fa fa-check-square-o'></i>
-		 Gracias por llenar el formulario $formulario[form_nombre] </h2>
-		 <div class='row'>
-			 <div class='col-xs-6'>
-				$otro_formulario
-			 </div>
-			 <div class='col-xs-6'>
-			 	$envio
-			 </div>
-		</div>
-	</div>";
-	
-//	$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
-</p>Se ha completado el formulario <b>$nombre_formulario[0]</b></p>
-<p>Puede revisar los datos en <a href='$_SESSION[site]i$formulario[control]'>$_SESSION[site]i$formulario[control]</a></p>
-<p>Saludos de MILFS</p>
-";
-			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 ="
-	
-			<div class='alert alert-success text-center'><h1><i class='fa fa-smile-o'></i><small> Todo bien pero al parecer no se moficaron registros </small></h1></div>";
-		$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= "<div class='btn btn-danger pull-right btn-small' onclick=\"xajax_autoriza_formulario_mostrar('','',''); \">Salir <i class='fa fa-sign-out'></i></div>";
-			}
-		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 ="<h3>".$formulario_nombre['0']."</h3><p>".$formulario_descripcion['0']."</p>  ";
-
-		$nuevo_formulario = "<a href ='f$id'>Llenar otro formulario </a>";
-if($control !='' AND  $tipo =='' ) {
-			$impresion = formulario_imprimir("$id","$control",""); 
-			$formulario_nombre = remplacetas('form_id','id',$id,'nombre','') ;
-			$muestra_form = "<div class='container-fluid' id='contenedor_datos' >$impresion</div>";
-			$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 ="<div class='aler alert-danger'><h1>Acceso restringido</h1> No se puede consultar los datos.</div>";
-			$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
-	<div class='alert alert-info'  >
-	
-	
-		<div class='row'>
-			<div class='col-md-2 hidden-xs'>	
-				<img class='img img-responsive'  src='http://qwerty.co/qr/?d=$_SESSION[url]?form=$id'>
-			</div>
-			<div class='col-md-10 col-xs-12'>
-			<h1>$nombre <br><small>$descripcion</small></h1>
-					<div class='input-group'>
-					  <span class='input-group-addon'><a href='$_SESSION[url]/?form=$id'><i class='fa fa-share-square-o'></i></a></span>
-					  <input  onclick=\"this.select(); \"  type='text' class='form-control' placeholder='$_SESSION[url]?form=$id' value='$_SESSION[url]?form=$id'>
-					</div>
-			</div>
-		</div>
-			
-	</div>";
-
-$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 = "
-	<div id ='div_$control' class=''   >
-		<div class=''>
-			<div class='form-group' id='input_".$campo_imagen."[0]' >
-				<label for='UploadFile'>$campo_imagen_nombre</label>
-				<div class='col-md-12'>
-				 $subir_imagen  
-				</div>
-			</div>
-	  </div>
-	  
-		<form role='form' id='$control'  name='$control' class='form-horizontal'   >
-			<input type='hidden' id='control' name='control' value='$control'>
-			<input type='hidden'  id= 'form_id'  name= 'form_id' value='$id' >
-			<input type='hidden'  id= 'form_nombre'  name= 'form_nombre' value='$nombre' >
-			<input type='hidden'  id= 'tipo'  name= 'tipo' value='$tipo' >
-
-	<div class='row'>
-	";
-	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 = "<div class='alert alert-warning text-center '><h1><i class='fa fa-exclamation-triangle'></i> ATENCIÓN<br><small>No está autorizado</small></h1></div>";
-			$seguridad ="
-			
-				<div class='input-group has-error ' id='div_seguridad_$control'>
-					<span class='input-group-addon'>
-						<i class='fa fa-key'></i> $password[1]
-					</span>
-					<input type='password' class='form-control' id='clave_identificador' name='clave_identificador' >
-					<span class='input-group-btn'>
-						<div class='btn btn-danger' onclick=\"xajax_autoriza_formulario_mostrar((document.getElementById('clave_identificador').value),'$id','$control'); \"><i class='fa fa-arrow-right'></i></div>
-					</span>
-				</div>
-							";
-			$resultado ="
-			<div class='container-fluid' style='width:450px;'>
-			
-				$aviso
-				$seguridad
-			</div>			
-				 ";
-			$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 .="<br><div class='row' id='respuesta_$control' name='respuesta_$control' ></div>
-	<div class='row'>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_formulario_grabar(xajax.getFormValues('$control'));\"  class='btn btn-block btn-success'>Grabar</div>
-		</div>
-		<div class='col-xs-6'>
-						<div onclick=\" xajax_limpia_div('muestra_form');xajax_limpia_div('titulo_modal'); \" data-dismiss='modal' class='btn btn-block btn-danger'>Cancelar</div>
-		</div>
-	</div>
-							";
-										}
-
-$muestra_form .="	
-	</div>
-		</form>
-		</div>";
-		$muestra_form = "<div class='container'>$muestra_form</div>";
-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 ="<option value=''> >> Nuevo $descripcion << </option>";}
-$resultado=" <SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row[$key]=="") {$resultado.="";}else{
-if($row[$key] ==="$valor"){$selected="selected";}else{$selected ="";}
-
-$resultado .= "<option value='$row[$key]' $selected > ".substr($row[$campo1], 0, 150 )." ".substr($row[$campo2], 0, 30 )."  </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 ="<option value=''>Todos los valores</option>";}else{$vacio ="<option value=''> </option>";}
-$resultado="<SELECT class='form-control' NAME='$name' id='$name' onchange=\"$onchange\" title='Seleccione $descripcion'  >
-<option value=''>$nombre</option>$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 .= "<option value='$row[$value]' $selected > ".substr(@$row[$campo1], 0, 150 )." ".substr(@$row[$campo2], 0, 30 )." $mostrar_id </option>";
-															}
-														}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados </div>";}
-
-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=" <SELECT class='form-control' NAME='$name' id='$name'  >
-<option value=''>Seleccione </option>
-				" ;
-while( $row = mysqli_fetch_array( $sql ) ) {
-if($row['campo_valor'] ==="$valor"){$selected="selected";}else{$selected ="";}
-$resultado .= "<option value='$row[campo_valor]' $selected > $row[campo_valor]</option>";
-															}
-$resultado .= "</select>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<td ><input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected > <label class='radio-inline sr-only'>$row[campo_valor]</label></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<td ><label class='radio-inline sr-only'>$row[campo_valor]</label> <input type='radio' title='$row[campo_valor]' name='$name' id='$name' value='$row[campo_valor]' $selected ></td> ";
-															}
-$resultado .= "<tr><td><div style='width:200px;'>$nombre_linea</div></td>$lineas</tr>";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados $consulta</div>";}
-
-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 .= "<div class='radio' id='radio_$row[campo_valor]'  ><label><input type='radio'  name='$name' id='$name' value='$row[campo_valor]' $selected > $row[campo_valor]</label> </div>";
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 .= "<div class='checkbox' id='check_$row[campo_valor]'  >
-						<label>
-							<input type='checkbox'  name='$nombre' id='$nombre' value='$row[campo_valor]' $selected >
-							 $row[campo_valor] $selected 
-						</label> 
-					</div>";
- $fila++;
-															}
-$resultado .= "";
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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="<div class='input-group'>
-					<span class='input-group-addon'>$min</span>
-					<input type='range' value='$selected'  class='form-control' NAME='$name' id='$name' onchange=\"(document.getElementById('div_$name').innerHTML=(this.value));$onchange\" min='$min' max='$max'  >
-					<span class='input-group-addon'>$max</span><span class='input-group-addon alert-success' id= 'div_$name'>$selected</span>
-				</div>" ;
-
-
-										}else{$resultado = "<div class='alert alert-warning'><i class='fa fa-exclamation-triangle'></i> No hay resultados</div>";}
-
-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 = "<strong class='error'>Grrr  $valor $existe existe</strong>";
-$respuesta->addAssign("$id","style.backgroundColor","pink");
-$respuesta->addAssign($div,"innerHTML",$resultado);
-return $respuesta;
-										}else {$verificacion ="check";  $existe='NO';}
-$resultado = "<strong class='ok'>Ok, buen $campo !</strong>";
-$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 = 
-"    <!-- Collect the nav links, forms, and other content for toggling -->
-    <div class='collapse navbar-collapse' id='bs-example-navbar-collapse-1'>
-      <ul class='nav navbar-nav'>
-
-        <li>$crear_campos</li>
-        
-        $listado
-      
-        <!-- <li>$importador</li> -->
-         <li >$configuracion</li>
-        
-      </ul>
-       <ul class='nav navbar-nav navbar-right'>
-       
-      $login
-      
-		</ul>
-
-    </div><!-- /.navbar-collapse -->";
-    
-    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 @@
-<?php
-
-
-function login_boton($formulario){
-		if($formulario =='x') {
-			session_destroy();
-			$respuesta = new xajaxResponse('utf-8');
-			$respuesta->addRedirect("index.php");
-			return $respuesta;
-									}
-
-	if(isset($_SESSION['id'])){
-
-$accion = "<li><a class=' btn  '  onclick=\"xajax_login_boton('x') \"><i class='glyphicon glyphicon-log-out fa-fw'></i>$_SESSION[username]</a></li>";
-	}else{
-	$accion = registro_express("nuevo_$nombre_formato","boton");
-		print $accion;
-	return;
-//	return $login;
-	}
-	$resultado ="
-      <div id='login_div'   name='login_div' style=''  >
-  			<ul class='nav navbar-nav navbar-right'  >
-  				$accion
-         </ul>
-      </div>
-";
-	print $resultado;
-	return;
-	}
-$xajax->registerFunction("login_boton");
-
-
-
-function revisar_ingreso($formulario){
-	$recordar="";
-	$sucursal="";
-	$resultado="";
-	$formulario =	mysql_seguridad($formulario);
-	if($formulario =="") {
-					$formulario ="
-<form class='form-horizontal' id='form-contacto' name='form-contacto' >
-	<fieldset>
-  		<label class='' for='email'>Correo o usuario</label>
-  		<div class='input-group' id='grupo_email'>
-  		<span class='input-group-addon'><i class='glyphicon glyphicon-user fa-fw'></i></span>
-  		<input   id='email'name='email' class='form-control input-large' type='email'  placeholder ='Correo o usuario'>
-		</div>
-
-
-<!-- Text input-->
-
-
-  	<label class='control-label' for='password'>Clave</label>
-  <div class='input-group' >
-		<span class='input-group-addon'><i class='glyphicon glyphicon-lock fa-fw'></i></span>
-    	<input class='form-control input-large' id='password' name='password' type='password' placeholder='clave'  required='' >
-  </div>
-
-  <div class='input-group'>
-  	<label for='recordar'>No recuerdo mi clave
-  	<input type='radio' value ='1' id='recordar' name='recordar' >
-  </div>
-
-</fieldset>
-</form>
-	";
-$resultado = "
-				<div id='login_ok'>
-				$formulario
-	             <!-- Button -->
-            <div class='control-group'>
-              <label class='control-label' for='signin'></label>
-              <div class='controls'>
-                <button id='ingresar' name='ingresar' class='btn btn-success btn-block' onclick=\"xajax_revisar_ingreso(xajax.getFormValues('form-contacto')) \">Ingresar</button>
-              </div>
-            </div>
-            <br>
-				<div id='login_info'></div>
-				</div>
-	";
-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 <strong>correo o usuario</strong> 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]
-<div style='border: solid 1px; padding:20px ; border-radius: 10px; background-color:#E6F8E0 '>
-<h1>$razon_social[0]</h1>
-
-<hr />
-<p>Se ha solicitado un cambio de clave para tu usuario.<br />
-Si fuiste tu quien lo solicit&oacute;, sigue este <a href='http://$_SERVER[HTTP_HOST]/milfs/index.php?change=$firma_recuperacion'>enlace</a> para realizar el cambio.</p>
-http://$_SERVER[HTTP_HOST]/milfs/index.php?change=$firma_recuperacion
-
-<h3>Si no solicitaste el cambio, por favor comun&iacute;calo respondiendo este correo.</h3>
-</div>
-
-			";
-			$mensaje =" Enviamos un correo con la confirmación a $correo";
-	mail("$correo","$asunto","$cuerpo","$headers") ;
-		}else
-		{
-$tipo='danger';
-$mensaje ="El <strong>correo o usuario</strong> no se encuentra registrado aún.";
-		}
-	}
-	$resultado ="<div class='alert alert-$tipo'>$mensaje</div>";
-	$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 = "
-					<div class='alert alert-danger' >
-					Aún no se ha confirmado tu email, por favor revisa tu correo</p>
-					</div >";
-					//$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
-
-						<div class=' alert alert-success'><h3><b>Hola $_SESSION[username] </b</h3></div>";
-						//$url=urlencode('../index.php');
-						//$respuesta->addRedirect("$_SESSION[site]");
-			$respuesta->addScript("window.location='../'");
-						//header("Location: ../");
-						//return;
-						}
-													}else{
-						$resultado = "
-					<div class='alert alert-danger' >
-					Los datos no son correctos, por favor rectifica o ponte en contacto con el administrador para mas información.<br></p>
-					<a href='./' class='btn btn-danger btn-sm'><h2>Intentar de nuevo</h2></a>
-					</div >";
-															}
-	$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 ="<div class='alert alert-danger'><h1>Lo sentimos</h1><p>El Link ya NO ES válido</p></div>";
-		return   $formato;
-	}
-$formato="
-<DIV id='cambio_password'>
-<div  class='container alert alert-warning'>
-							<div  class='row'>
-
-									<form role='form' id='cambiar_password_form' name='cambiar_password_form'>
-									<fieldset>
-									<legend class='text-center'>Cambio de clave</legend>
-										<div class='col-sm-6'>
-									 				<div style='margin-bottom: 25px' class='input-group' id='password_nuevo_grupo'>
-                                        <span class='input-group-addon'><i class='glyphicon glyphicon-unlock-alt fa-fw'></i></span>
-                                        <input id='password_nuevo' type='password' class='form-control' name='password_nuevo' placeholder='Nuevo password'>
-                                    	</div>
-                              </div>
-                              <div class='col-sm-6'>
-									 				<div style='margin-bottom: 25px' class='input-group' id='password_confirmacion_grupo'>
-                                        <span class='input-group-addon' ><i class='glyphicon glyphicon-lock fa-fw'></i></span>
-                                        <input id='password_confirmacion' type='password' class='form-control' name='password_confirmacion' placeholder='Confirmar password'
-                                        onchange= \"xajax_confirma_campo((document.getElementById('password_nuevo').value),(this.value),'password_nuevo','password_confirmacion'); \" >
-                                    	</div>
-
-                              </div>
-									</fieldset>
-
-
-							</div>
-							<input type='hidden' id='firma_recuperacion' name='firma_recuperacion' value='$change'>
-<a onclick=\"xajax_cambiar_password(xajax.getFormValues('cambiar_password_form')); \" class='btn btn-danger btn-block'>Grabar</a>
-</form>
-</DIV>
-</div>
-
-";
-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 = "<div class='alert alert-success'>La clave se cambió con éxito.</div>";
-	}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 @@
-<?php
-session_start();
-if(isset($_REQUEST[debug])) {ini_set('display_errors', 'On');}
-/// ESTE ARCHIVO DEBE ESTAR UN NIVEL POR ENCIMA DEL DIRECTORIO milfs 
-$id_form="1";
-$plantilla ="galeria";
-/*
-EJEMPLO DE PLANTILLA PÁRA GALERIA
-
- <div class='  ' style=' position:relative;  text-align:center;  border-radius : 5px; width:100%; height:100% '> 
- <img  style=' height:100%; ' src ='/milfs/images/secure/?file=600/$campo_limpio[26] ' alt=' ' title=' '  class=''>  
-<div style=' margin-left: auto;
-        position:absolute;
-	margin-right: auto;
-	margin-top:30px;
-	left:0;
-	right:0;  bottom: 50px; 
-        width:400px; ' >
-    <h1> $campo_limpio[1]   $campo_limpio[3]  </h1>
-</div>
- </div>
-
-*/
-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 = "<a href='milfs'>Ingresar $_SESSION[id] </a>";}else{$ingresar = "<a class=' btn  ' onclick=\"xajax_login_boton('x') \"><i class='fa fa-sign-out fa-fw'></i> $_SESSION[username]</a>";}
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700,300' rel='stylesheet' type='text/css'>
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="milfs/css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="/tbl_change.php?db=artessano_milfs&table=parametrizacion&where_clause=%60parametrizacion%60.%60id%60+%3D+4&clause_is_unique=1&sql_query=SELECT+%2A+FROM+%60parametrizacion%60&goto=sql.php&default_action=update&token=ad27979fbb9c2ce30fc9601060e980bbhttp://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<link href="milfs/css/estilos.php" rel="stylesheet">
-
-<!--   <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> -->
-<!--   <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>"> -->
-<link href="milfs/css/carousel.css" rel="stylesheet">
-<style type="text/css">
-
-
-.navbar-header > p { font-size:20px; color: white; font-family: "Open Sans",sans-serif; font-weight: normal;display:inline }
-.navbar-header > strong{ font-size:20px; color: #802a2a; font-weight: normal; font-family: "Open Sans",sans-serif; ;display:inline}
-.navbar-header {width: 50%;}
-
-.div_aplicacion {
-/* background-color: #f0eee1 !important;*/
-}
-.div_aplicacion:hover {
-   -webkit-animation: animatedBackground 1s ease-out 1;
-        -moz-animation: animatedBackground 1s ease-out 1;
-        animation: animatedBackground 1s ease-out 1;
-        -webkit-animation-fill-mode: forwards;
-        animation-fill-mode: forwards;
-        z-index: 10000;
-}
-
-    @-webkit-keyframes animatedBackground {
-        0% {
-            -webkit-transform: scale(1, 1);
-            -moz-transform: scale(1, 1);
-            -ms-transform: scale(1, 1);
-            -o-transform: scale(1, 1);
-            transform: scale(1, 1)
-        }
-        100% {
-        -webkit-transform: scale(1.1, 1.1);
-        -moz-transform: scale(1.1, 1.1);
-        -ms-transform: scale(1.1, 1.1);
-        -o-transform: scale(1.1, 1.1);
-        transform: scale(1.1, 1.1)
-        }
-
-    }
-    
-    
-    @-moz-keyframes animatedBackground {
-        0% {
-            -webkit-transform: scale(1, 1);
-            -moz-transform: scale(1, 1);
-            -ms-transform: scale(1, 1);
-            -o-transform: scale(1, 1);
-            transform: scale(1, 1)
-        }
-        100% {
-            -webkit-transform: scale(1.1, 1.1);
-            -moz-transform: scale(1.1, 1.1);
-            -ms-transform: scale(1.1, 1.1);
-            -o-transform: scale(1.1, 1.1);
-            transform: scale(1.1, 1.1)
-        }
-
-    }
-    @keyframes animatedBackground {
-        0% {
-            -webkit-transform: scale(1, 1);
-            -moz-transform: scale(1, 1);
-            -ms-transform: scale(1, 1);
-            -o-transform: scale(1, 1);
-            transform: scale(1, 1)
-        }
-        100% {
-            -webkit-transform: scale(1.1, 1.1);
-            -moz-transform: scale(1.1, 1.1);
-            -ms-transform: scale(1.1, 1.1);
-            -o-transform: scale(1.1, 1.1);
-            transform: scale(1.1, 1.1)
-        }
-
-    }
-</style>
-
-</head>
-<body>
-  <body>
-<?php echo $onload; ?>
-
-      <nav class="navbar navbar-inverse" role="navigation">
-      	<div class="container-fluid">
-      	  <div class='col-sx-12 ' id='logo_cabecera' style='width:100%;left:40px; background-color: white; '>
-
-		      <div class='pull-right' >
-		      	<div style="">
-		      	<a title="Email" target="_redes" href="mailto:<?php echo $email[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-envelope'></i></span></a>
-		      	<a title="Facebook" target="_redes" href="<?php echo $facebook[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-facebook-square'></i></span></a>
-		      	<a title="Twitter" target="_redes" href="https://twitter.com/<?php echo $twitter[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-twitter'></i></span></a>
-		      	<a title="Inicio" target="" href="?"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-home'></i></span></a>
-		      	
-		      	</div>
-		      	
-		      </div>
-	      </div>
-          <div class="navbar-header" style="  ">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
-              <span class="sr-only">Toggle navigation</span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-            </button>
-            
-            	<p>|<?php echo $razon_social[0];?>|</p>
-	<strong><?php echo $slogan[0];?></strong>
-				
-          </div>
-          <div class="navbar-collapse collapse">
-            <ul class="nav navbar-nav">
-            
-					              
-            </ul>
-
-          </div><!--/.nav-collapse -->
-		</div>
-      </nav>
-
-  	
-  
-    <div class="container-fluid">
-		<div class="row">
-			<div class="col-sm-8">
-
-			</div>
-			<div class="col-sm-4">
-			</div>
-		</div>
-
-	<div class="container" style="width:100%">
-	<?php echo aplicacion_carrusel("","$id_form","galeria") ?>
-	</div>
-
-	</div>
-
-
-	       <div class='pie' style=" position: fixed; z-index: 10000;
-  bottom: 0;
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  height: 50px;
-  background-color: gray;
-background-image: url('');
-">
-	      <p class='text-center'> <?php echo "$razon_social[0] $slogan[0] $direccion[0] $telefono[0] <a href ='$web[0]'>$web[0]</a>";  ?></p>
-        <a class='pull-right' href='http://QWERTY.co/milfs'>Powered by: &copy; MILFS </a> 
-        	</div> 
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="milfs/js/jquery.min.js"></script> 
-    <script src="milfs/js/bootstrap.min.js"></script>
-    <script src="milfs/js/scripts.js"></script>
-      <script src="milfs/js/bootstrap.js"></script>
-  <script src="milfs/js/markdown.js"></script>
-  <script src="milfs/js/to-markdown.js"></script>
-  <script src="milfs/js/bootstrap-markdown.js"></script>
-
-</body>
-</html>
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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-require ("funciones/conex.php");
-$xajax->processRequests(); 
-
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
- <link href="css/sticky-footer-navbar.css" rel="stylesheet">
-
-<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.js"></script>
-
-<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.css" />
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php" rel="stylesheet">
-  <style type="text/css">
-  body {  padding: 0; margin: 0;  }
-  html, body, #cupcake-map { z-index: 10; position:absolute; top:0; bottom:0px; width:100%;  }
-  .leaflet-popup-content {
-     width:600px !important; 
-}
-  </style>
-
-  <script src="https://code.jquery.com/jquery-2.1.0.min.js"></script>
-  <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>">
-</head>
-<body>
-  <div id="cupcake-map"></div>
-  <script>
-  var cupcakeTiles = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
-    maxZooom: 18  
-  });
-
-  $.getJSON($('link[rel="points"]').attr("href"), function(data) {
-    var geojson = L.geoJson(data, {
-      onEachFeature: function (feature, layer) {
-        layer.bindPopup(feature.properties.name,"autoPan");
-      }
-    });
-    var map = L.map('cupcake-map').fitBounds(geojson.getBounds());
-    cupcakeTiles.addTo(map);
-    geojson.addTo(map);
-  });
-  </script>
-  <div  class="center-block" style="  z-index:10000; position:absolute; bottom:10px;">
-  <div role='row' class='row center-block' style="width:95% ; "><?php echo aplicacion_datos("$_REQUEST[id]");?></div>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
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 @@
-<?php
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');}
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-
-require ("funciones/conex.php");
-
-	
-
-$geojson = imprime_geojson("$_REQUEST[id]","","mapa","$_REQUEST[buscar]");
-//header('Content-Type: application/json');
-var geojsonSample =
-echo $geojson;
-;
-?>
\ 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 @@
-<?php
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');}
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-
-require ("funciones/conex.php");
-
-	
-
-$geojson = imprime_geojson("$_REQUEST[id]","","mapa","$_REQUEST[buscar]");
-//header('Content-Type: application/json');
-echo "var geojsonSample = ";
-echo $geojson;
-echo ";"
-?>
\ 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 @@
-<?php
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');}
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-
-require ("funciones/conex.php");
-
-if(!isset($_REQUEST['plantilla'])) {
-$geojson = imprime_geojson("$_REQUEST[id]","","mapa","$_REQUEST[buscar]");
-
-}else{
-$geojson = imprime_geojson("$_REQUEST[id]","","$_REQUEST[plantilla]","$_REQUEST[buscar]");
-}
-
-
-//header('Content-Type: application/json');
-echo $geojson;
-
-?>
\ 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 @@
-<?php
-
-session_start();
-// Comprobamos si existe la variable
-/*if ( !isset ( $_SESSION['id'] ) ) {
- // Si no existe 
- header("Location: ../nodisponible.jpg");
-// echo "hola mundo2";
-}*/
-if(!isset($_GET['file']) ){
-	 header("Location: ../sinimagen.jpg");
-	 
-	}
-	include("../../includes/datos.php");
-$dir="$path_images_secure/";
-if ((!$file=realpath($dir.$_GET['file']))
-    || strpos($file,realpath($dir))!==0 || substr($file,-4)=='.php'){
- //header('HTTP/1.0 404 Not Found');
-  header("Location: ../sinimagen.jpg?$dir");
-  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/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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-
-$xajax->processRequests(); 
-//$xajax->debugOn();
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-	<link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!-- 	<link href="css/estilos.php?dd" rel="stylesheet">
-	<link href="css/bootstrap.min.css" rel="stylesheet">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css"> -->
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-
-
-<style>
-  #map {width: 500px;height:200px;}
-  
-</style>
-
-
-    <title>I<3MILFS</title>
-
-    <!-- Bootstrap core CSS -->
-    
-<!--     <script language="JavaScript" src="escritorio/librerias/scripts.js" type="text/javascript"></script> -->
-    <!-- Custom styles for this template -->
-    
-<!--     <link href="jumbotron.css" rel="stylesheet"> -->
-
-
-    <!-- Just for debugging purposes. Don't actually copy this line! -->
-    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!--[if lt IE 9]>
-      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
-    <![endif]-->
-<?php
-    					//		if($_COOKIE['aviso'] != 'presentacion') {
-		//$onload = "onload = \"$('#muestraInfo').modal('toggle')\"";    	
-		//setcookie("aviso","presentacion",time()+60*60*24);
-					//	}
-					//($id,$form_respuesta,$control,$tipo)
-					if($_REQUEST[id] !='' OR $_REQUEST[c]){$onload ="<script type=\"text/javascript\"> xajax_formulario_modal('$_REQUEST[id]','','$_REQUEST[c]','$_REQUEST[t]')</script>";}
-					
-?>
-</head>
-<body  >
-<?php if($_REQUEST[form] !='') { echo formulario_embebido("$_REQUEST[form]");
-}else{
-
- ?>
-<?php echo $onload; ?>
-<?php if(isset($_REQUEST[f])){
-form_publico("$_REQUEST[f]");
-}
- if ( isset ( $_SESSION['id'] ) ) {	?>
-<div class="navbar navbar-inverse nav-bar-fixed-top " role="navigation">
-  <div class="container-fluid">
-    <!-- Brand and toggle get grouped for better mobile display -->
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-        <span class="sr-only">MILFS</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="#"><img src="favicon-152.png" style="width:60px" alt="MILFS" title="Multi Interactive Light Form System"></a>
-    </div>
-
-<?php  echo milfs() ?>
-  </div><!-- /.container-fluid -->
-</div>
-<?php }else{ } ?>
-
-
-
-	<div class='container'>
-		<div id='contenido'>
-		
-		<?php 
-		if(!isset($_SESSION[id_empresa])) {$id_empresa_portada='1';} else{$id_empresa_portada = $_SESSION[id_empresa];}
-	$encabezado = empresa_datos("$id_empresa_portada",'encabezado');
-	$pie = empresa_datos("$id_empresa_portada",'pie');
-	echo "$encabezado";		
-		?>
-		
-<?php if(isset($_REQUEST[change])){
-echo cambiar_password_formato("$_REQUEST[change]");
-}
-revisar_ingreso();?>		
-
-<?php echo $pie; ?>
-<img class='img-responsive center-block' src="images/logo.png" alt="MILFS">
-		</div>
-
-<?php
-/*session_start();
-// Comprobamos si existe la variable
-if ( !isset ( $_SESSION['grupo'] ) ) {
- // Si no existe 
- header("Location: includes/error.php");
-// echo "hola 2";
-} */
-
-/*if($_SESSION[prioridad] <= '2'){  }else{
- echo consultar_formulario();
- */
-/*
-formulario_importar("","");
- echo "<div id='importador' name='importador'>";
- echo "</div> ";
- */
-
-
-
-
-
-
-
-/*formulario_consultar('','');
-if($_REQUEST[id] !=''){$onload ="<script type=\"text/javascript\"> xajax_formulario_areas('despacho','$_REQUEST[id]')</script>";}
-?>
-<div id='despacho'  name='despacho' class='div_flotante'  style="top:500px; left:500px; position:absolute; "  ></div> 
-<?php echo "$onload "; 
-}///fin de la seguridad
-*/
-
-?>
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-	</div>
-
-
-       <div class="">
-	       <div class="container">
-        <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a target="_blank" href='http://qwerty.co/faq/category/19/privacidad-y-protecci%C3%B3n-de-datos.html'>Políticas de privacidad y protección de datos.</a> 
-        	</div> 
-      </div>
-      <?php } ?>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-      <script src="js/jquery.min.js"></script>
-  <script src="js/bootstrap.js"></script>
-  <script src="js/markdown.js"></script>
-  <script src="js/to-markdown.js"></script>
-  <script src="js/bootstrap-markdown.js"></script>
-      <script src="js/scripts.js"></script>
-<!-- <script src="js/jquery.min.js"></script> 
-<script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-<script src="js/bootstrap-markdown.js"></script>
-<script src="js/markdown.js"></script>
-<script src="js/to-markdown.js"></script>
-<script src="js/bootstrap-markdown.js"></script>
- -->
-</body>
-</html>
\ 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 @@
-<?php 
-$listado_clases= "
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" active\"' ondragstart=\"evdragstart(event,this)\"  >active</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" affix\"' ondragstart=\"evdragstart(event,this)\"  >affix</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert-danger\"' ondragstart=\"evdragstart(event,this)\"  >alert-danger</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert-dismissable\"' ondragstart=\"evdragstart(event,this)\"  >alert-dismissable</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert-info\"' ondragstart=\"evdragstart(event,this)\"  >alert-info</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert-link\"' ondragstart=\"evdragstart(event,this)\"  >alert-link</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert-success\"' ondragstart=\"evdragstart(event,this)\"  >alert-success</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert-warning\"' ondragstart=\"evdragstart(event,this)\"  >alert-warning</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" alert\"' ondragstart=\"evdragstart(event,this)\"  >alert</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" arrow\"' ondragstart=\"evdragstart(event,this)\"  >arrow</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" badge\"' ondragstart=\"evdragstart(event,this)\"  >badge</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" bottom\"' ondragstart=\"evdragstart(event,this)\"  >bottom</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" breadcrumb\"' ondragstart=\"evdragstart(event,this)\"  >breadcrumb</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-block\"' ondragstart=\"evdragstart(event,this)\"  >btn-block</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-danger\"' ondragstart=\"evdragstart(event,this)\"  >btn-danger</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-default\"' ondragstart=\"evdragstart(event,this)\"  >btn-default</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-group-justified\"' ondragstart=\"evdragstart(event,this)\"  >btn-group-justified</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-group-vertical\"' ondragstart=\"evdragstart(event,this)\"  >btn-group-vertical</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-group\"' ondragstart=\"evdragstart(event,this)\"  >btn-group</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-info\"' ondragstart=\"evdragstart(event,this)\"  >btn-info</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-lg\"' ondragstart=\"evdragstart(event,this)\"  >btn-lg</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-link\"' ondragstart=\"evdragstart(event,this)\"  >btn-link</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-primary\"' ondragstart=\"evdragstart(event,this)\"  >btn-primary</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-success\"' ondragstart=\"evdragstart(event,this)\"  >btn-success</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-warning\"' ondragstart=\"evdragstart(event,this)\"  >btn-warning</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn-xs\"' ondragstart=\"evdragstart(event,this)\"  >btn-xs</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" btn\"' ondragstart=\"evdragstart(event,this)\"  >btn</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" caption\"' ondragstart=\"evdragstart(event,this)\"  >caption</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" caret\"' ondragstart=\"evdragstart(event,this)\"  >caret</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" carousel-caption\"' ondragstart=\"evdragstart(event,this)\"  >carousel-caption</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" carousel-control\"' ondragstart=\"evdragstart(event,this)\"  >carousel-control</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" carousel-indicators\"' ondragstart=\"evdragstart(event,this)\"  >carousel-indicators</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" carousel-inner\"' ondragstart=\"evdragstart(event,this)\"  >carousel-inner</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" carousel\"' ondragstart=\"evdragstart(event,this)\"  >carousel</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" checkbox-inline\"' ondragstart=\"evdragstart(event,this)\"  >checkbox-inline</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" checkbox\"' ondragstart=\"evdragstart(event,this)\"  >checkbox</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" close\"' ondragstart=\"evdragstart(event,this)\"  >close</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-1\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-10\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-11\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-12\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-12</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-2\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-3\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-4\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-5\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-6\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-7\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-8\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-9\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-0\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-0</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-1\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-10\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-11\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-2\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-3\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-4\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-5\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-6\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-7\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-8\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-offset-9\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-offset-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-0\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-0</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-1\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-10\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-11\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-2\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-3\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-4\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-5\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-6\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-7\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-8\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-pull-9\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-pull-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-0\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-0</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-1\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-10\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-11\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-2\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-3\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-4\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-5\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-6\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-7\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-8\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-lg-push-9\"' ondragstart=\"evdragstart(event,this)\"  >col-lg-push-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-1\"' ondragstart=\"evdragstart(event,this)\"  >col-md-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-10\"' ondragstart=\"evdragstart(event,this)\"  >col-md-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-11\"' ondragstart=\"evdragstart(event,this)\"  >col-md-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-12\"' ondragstart=\"evdragstart(event,this)\"  >col-md-12</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-2\"' ondragstart=\"evdragstart(event,this)\"  >col-md-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-3\"' ondragstart=\"evdragstart(event,this)\"  >col-md-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-4\"' ondragstart=\"evdragstart(event,this)\"  >col-md-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-5\"' ondragstart=\"evdragstart(event,this)\"  >col-md-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-6\"' ondragstart=\"evdragstart(event,this)\"  >col-md-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-7\"' ondragstart=\"evdragstart(event,this)\"  >col-md-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-8\"' ondragstart=\"evdragstart(event,this)\"  >col-md-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-9\"' ondragstart=\"evdragstart(event,this)\"  >col-md-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-0\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-0</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-1\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-10\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-11\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-2\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-3\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-4\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-5\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-6\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-7\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-8\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-offset-9\"' ondragstart=\"evdragstart(event,this)\"  >col-md-offset-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-0\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-0</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-1\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-10\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-11\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-2\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-3\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-4\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-5\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-6\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-7\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-8\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-pull-9\"' ondragstart=\"evdragstart(event,this)\"  >col-md-pull-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-0\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-0</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-1\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-10\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-11\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-2\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-3\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-4\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-5\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-6\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-7\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-8\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-md-push-9\"' ondragstart=\"evdragstart(event,this)\"  >col-md-push-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-1\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-10\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-11\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-12\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-12</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-2\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-3\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-4\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-5\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-6\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-7\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-8\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-9\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-1\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-10\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-11\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-2\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-3\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-4\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-5\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-6\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-7\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-8\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-offset-9\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-offset-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-1\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-10\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-11\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-2\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-3\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-4\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-5\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-6\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-7\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-8\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-pull-9\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-pull-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-1\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-10\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-11\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-2\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-3\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-4\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-5\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-6\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-7\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-8\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-sm-push-9\"' ondragstart=\"evdragstart(event,this)\"  >col-sm-push-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-1\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-10\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-10</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-11\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-11</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-12\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-12</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-2\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-3\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-4\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-5\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-6\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-7\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-7</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-8\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-8</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col-xs-9\"' ondragstart=\"evdragstart(event,this)\"  >col-xs-9</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" col\"' ondragstart=\"evdragstart(event,this)\"  >col</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" collapse\"' ondragstart=\"evdragstart(event,this)\"  >collapse</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" collapsing\"' ondragstart=\"evdragstart(event,this)\"  >collapsing</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" container\"' ondragstart=\"evdragstart(event,this)\"  >container</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" control-label\"' ondragstart=\"evdragstart(event,this)\"  >control-label</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" divider\"' ondragstart=\"evdragstart(event,this)\"  >divider</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" dropdown-backdrop\"' ondragstart=\"evdragstart(event,this)\"  >dropdown-backdrop</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" dropdown-header\"' ondragstart=\"evdragstart(event,this)\"  >dropdown-header</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" dropdown-menu\"' ondragstart=\"evdragstart(event,this)\"  >dropdown-menu</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" dropdown-toggle\"' ondragstart=\"evdragstart(event,this)\"  >dropdown-toggle</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" dropdown\"' ondragstart=\"evdragstart(event,this)\"  >dropdown</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" fade\"' ondragstart=\"evdragstart(event,this)\"  >fade</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" form-control-static\"' ondragstart=\"evdragstart(event,this)\"  >form-control-static</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" form-control\"' ondragstart=\"evdragstart(event,this)\"  >form-control</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" form-group\"' ondragstart=\"evdragstart(event,this)\"  >form-group</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" glyphicon-chevron-right\"' ondragstart=\"evdragstart(event,this)\"  >glyphicon-chevron-right</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" glyphicon\"' ondragstart=\"evdragstart(event,this)\"  >glyphicon</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" h1\"' ondragstart=\"evdragstart(event,this)\"  >h1</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" h2\"' ondragstart=\"evdragstart(event,this)\"  >h2</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" h3\"' ondragstart=\"evdragstart(event,this)\"  >h3</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" h4\"' ondragstart=\"evdragstart(event,this)\"  >h4</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" h5\"' ondragstart=\"evdragstart(event,this)\"  >h5</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" h6\"' ondragstart=\"evdragstart(event,this)\"  >h6</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" help-block\"' ondragstart=\"evdragstart(event,this)\"  >help-block</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hidden-lg\"' ondragstart=\"evdragstart(event,this)\"  >hidden-lg</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hidden-md\"' ondragstart=\"evdragstart(event,this)\"  >hidden-md</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hidden-print\"' ondragstart=\"evdragstart(event,this)\"  >hidden-print</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hidden-sm\"' ondragstart=\"evdragstart(event,this)\"  >hidden-sm</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hidden-xs\"' ondragstart=\"evdragstart(event,this)\"  >hidden-xs</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hidden\"' ondragstart=\"evdragstart(event,this)\"  >hidden</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" hide\"' ondragstart=\"evdragstart(event,this)\"  >hide</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" icon-bar\"' ondragstart=\"evdragstart(event,this)\"  >icon-bar</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" icon-next\"' ondragstart=\"evdragstart(event,this)\"  >icon-next</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" img-circle\"' ondragstart=\"evdragstart(event,this)\"  >img-circle</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" img-responsive\"' ondragstart=\"evdragstart(event,this)\"  >img-responsive</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" img-rounded\"' ondragstart=\"evdragstart(event,this)\"  >img-rounded</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" img-thumbnail\"' ondragstart=\"evdragstart(event,this)\"  >img-thumbnail</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" in\"' ondragstart=\"evdragstart(event,this)\"  >in</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" initialism\"' ondragstart=\"evdragstart(event,this)\"  >initialism</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" input-group-addon\"' ondragstart=\"evdragstart(event,this)\"  >input-group-addon</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" input-group-btn\"' ondragstart=\"evdragstart(event,this)\"  >input-group-btn</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" input-group\"' ondragstart=\"evdragstart(event,this)\"  >input-group</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" input-lg\"' ondragstart=\"evdragstart(event,this)\"  >input-lg</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" input-sm\"' ondragstart=\"evdragstart(event,this)\"  >input-sm</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" invisible\"' ondragstart=\"evdragstart(event,this)\"  >invisible</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" item\"' ondragstart=\"evdragstart(event,this)\"  >item</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" jumbotron\"' ondragstart=\"evdragstart(event,this)\"  >jumbotron</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label-danger\"' ondragstart=\"evdragstart(event,this)\"  >label-danger</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label-default\"' ondragstart=\"evdragstart(event,this)\"  >label-default</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label-info\"' ondragstart=\"evdragstart(event,this)\"  >label-info</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label-primary\"' ondragstart=\"evdragstart(event,this)\"  >label-primary</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label-success\"' ondragstart=\"evdragstart(event,this)\"  >label-success</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label-warning\"' ondragstart=\"evdragstart(event,this)\"  >label-warning</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" label\"' ondragstart=\"evdragstart(event,this)\"  >label</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" lead\"' ondragstart=\"evdragstart(event,this)\"  >lead</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" left\"' ondragstart=\"evdragstart(event,this)\"  >left</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" list-group-item-heading\"' ondragstart=\"evdragstart(event,this)\"  >list-group-item-heading</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" list-group-item-text\"' ondragstart=\"evdragstart(event,this)\"  >list-group-item-text</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" list-group-item\"' ondragstart=\"evdragstart(event,this)\"  >list-group-item</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" list-group\"' ondragstart=\"evdragstart(event,this)\"  >list-group</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" list-inline\"' ondragstart=\"evdragstart(event,this)\"  >list-inline</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" list-unstyled\"' ondragstart=\"evdragstart(event,this)\"  >list-unstyled</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" media-body\"' ondragstart=\"evdragstart(event,this)\"  >media-body</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" media-heading\"' ondragstart=\"evdragstart(event,this)\"  >media-heading</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" media-list\"' ondragstart=\"evdragstart(event,this)\"  >media-list</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" media-object\"' ondragstart=\"evdragstart(event,this)\"  >media-object</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" media\"' ondragstart=\"evdragstart(event,this)\"  >media</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-backdrop\"' ondragstart=\"evdragstart(event,this)\"  >modal-backdrop</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-body\"' ondragstart=\"evdragstart(event,this)\"  >modal-body</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-content\"' ondragstart=\"evdragstart(event,this)\"  >modal-content</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-dialog\"' ondragstart=\"evdragstart(event,this)\"  >modal-dialog</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-footer\"' ondragstart=\"evdragstart(event,this)\"  >modal-footer</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-header\"' ondragstart=\"evdragstart(event,this)\"  >modal-header</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-open\"' ondragstart=\"evdragstart(event,this)\"  >modal-open</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal-title\"' ondragstart=\"evdragstart(event,this)\"  >modal-title</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" modal\"' ondragstart=\"evdragstart(event,this)\"  >modal</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" nav-divider\"' ondragstart=\"evdragstart(event,this)\"  >nav-divider</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" nav-justified\"' ondragstart=\"evdragstart(event,this)\"  >nav-justified</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" nav-tabs-justified\"' ondragstart=\"evdragstart(event,this)\"  >nav-tabs-justified</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" nav-tabs\"' ondragstart=\"evdragstart(event,this)\"  >nav-tabs</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" nav\"' ondragstart=\"evdragstart(event,this)\"  >nav</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-brand\"' ondragstart=\"evdragstart(event,this)\"  >navbar-brand</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-btn\"' ondragstart=\"evdragstart(event,this)\"  >navbar-btn</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-collapse\"' ondragstart=\"evdragstart(event,this)\"  >navbar-collapse</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-default\"' ondragstart=\"evdragstart(event,this)\"  >navbar-default</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-fixed-bottom\"' ondragstart=\"evdragstart(event,this)\"  >navbar-fixed-bottom</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-fixed-top\"' ondragstart=\"evdragstart(event,this)\"  >navbar-fixed-top</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-form\"' ondragstart=\"evdragstart(event,this)\"  >navbar-form</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-header\"' ondragstart=\"evdragstart(event,this)\"  >navbar-header</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-inverse\"' ondragstart=\"evdragstart(event,this)\"  >navbar-inverse</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-left\"' ondragstart=\"evdragstart(event,this)\"  >navbar-left</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-link\"' ondragstart=\"evdragstart(event,this)\"  >navbar-link</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-nav\"' ondragstart=\"evdragstart(event,this)\"  >navbar-nav</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-right\"' ondragstart=\"evdragstart(event,this)\"  >navbar-right</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-static-top\"' ondragstart=\"evdragstart(event,this)\"  >navbar-static-top</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-text\"' ondragstart=\"evdragstart(event,this)\"  >navbar-text</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar-toggle\"' ondragstart=\"evdragstart(event,this)\"  >navbar-toggle</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" navbar\"' ondragstart=\"evdragstart(event,this)\"  >navbar</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" next\"' ondragstart=\"evdragstart(event,this)\"  >next</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" page-header\"' ondragstart=\"evdragstart(event,this)\"  >page-header</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" pager\"' ondragstart=\"evdragstart(event,this)\"  >pager</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" pagination\"' ondragstart=\"evdragstart(event,this)\"  >pagination</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-body\"' ondragstart=\"evdragstart(event,this)\"  >panel-body</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-danger\"' ondragstart=\"evdragstart(event,this)\"  >panel-danger</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-default\"' ondragstart=\"evdragstart(event,this)\"  >panel-default</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-footer\"' ondragstart=\"evdragstart(event,this)\"  >panel-footer</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-heading\"' ondragstart=\"evdragstart(event,this)\"  >panel-heading</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-info\"' ondragstart=\"evdragstart(event,this)\"  >panel-info</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-primary\"' ondragstart=\"evdragstart(event,this)\"  >panel-primary</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-success\"' ondragstart=\"evdragstart(event,this)\"  >panel-success</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-title\"' ondragstart=\"evdragstart(event,this)\"  >panel-title</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel-warning\"' ondragstart=\"evdragstart(event,this)\"  >panel-warning</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" panel\"' ondragstart=\"evdragstart(event,this)\"  >panel</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" pill-pane\"' ondragstart=\"evdragstart(event,this)\"  >pill-pane</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" popover-content\"' ondragstart=\"evdragstart(event,this)\"  >popover-content</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" popover-title\"' ondragstart=\"evdragstart(event,this)\"  >popover-title</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" popover\"' ondragstart=\"evdragstart(event,this)\"  >popover</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" pre-scrollable\"' ondragstart=\"evdragstart(event,this)\"  >pre-scrollable</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" prettyprint\"' ondragstart=\"evdragstart(event,this)\"  >prettyprint</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" prev\"' ondragstart=\"evdragstart(event,this)\"  >prev</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" progress-bar-danger\"' ondragstart=\"evdragstart(event,this)\"  >progress-bar-danger</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" progress-bar-info\"' ondragstart=\"evdragstart(event,this)\"  >progress-bar-info</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" progress-bar-success\"' ondragstart=\"evdragstart(event,this)\"  >progress-bar-success</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" progress-bar-warning\"' ondragstart=\"evdragstart(event,this)\"  >progress-bar-warning</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" progress-bar\"' ondragstart=\"evdragstart(event,this)\"  >progress-bar</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" progress\"' ondragstart=\"evdragstart(event,this)\"  >progress</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" pull-left\"' ondragstart=\"evdragstart(event,this)\"  >pull-left</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" pull-right\"' ondragstart=\"evdragstart(event,this)\"  >pull-right</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" right\"' ondragstart=\"evdragstart(event,this)\"  >right</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" row\"' ondragstart=\"evdragstart(event,this)\"  >row</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" show\"' ondragstart=\"evdragstart(event,this)\"  >show</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" sr-only\"' ondragstart=\"evdragstart(event,this)\"  >sr-only</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" table-bordered\"' ondragstart=\"evdragstart(event,this)\"  >table-bordered</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" table-responsive\"' ondragstart=\"evdragstart(event,this)\"  >table-responsive</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" table\"' ondragstart=\"evdragstart(event,this)\"  >table</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-center\"' ondragstart=\"evdragstart(event,this)\"  >text-center</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-danger\"' ondragstart=\"evdragstart(event,this)\"  >text-danger</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-hide\"' ondragstart=\"evdragstart(event,this)\"  >text-hide</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-info\"' ondragstart=\"evdragstart(event,this)\"  >text-info</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-left\"' ondragstart=\"evdragstart(event,this)\"  >text-left</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-muted\"' ondragstart=\"evdragstart(event,this)\"  >text-muted</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-primary\"' ondragstart=\"evdragstart(event,this)\"  >text-primary</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-right\"' ondragstart=\"evdragstart(event,this)\"  >text-right</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-success\"' ondragstart=\"evdragstart(event,this)\"  >text-success</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" text-warning\"' ondragstart=\"evdragstart(event,this)\"  >text-warning</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" thumbnail\"' ondragstart=\"evdragstart(event,this)\"  >thumbnail</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" tooltip-arrow\"' ondragstart=\"evdragstart(event,this)\"  >tooltip-arrow</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" tooltip-inner\"' ondragstart=\"evdragstart(event,this)\"  >tooltip-inner</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" tooltip\"' ondragstart=\"evdragstart(event,this)\"  >tooltip</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" top\"' ondragstart=\"evdragstart(event,this)\"  >top</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" visible-lg\"' ondragstart=\"evdragstart(event,this)\"  >visible-lg</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" visible-md\"' ondragstart=\"evdragstart(event,this)\"  >visible-md</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" visible-print\"' ondragstart=\"evdragstart(event,this)\"  >visible-print</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" visible-sm\"' ondragstart=\"evdragstart(event,this)\"  >visible-sm</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" visible-xs\"' ondragstart=\"evdragstart(event,this)\"  >visible-xs</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" well-lg\"' ondragstart=\"evdragstart(event,this)\"  >well-lg</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" well-sm\"' ondragstart=\"evdragstart(event,this)\"  >well-sm</div>
-<div class='btn btn-default btn-block' style='cursor:move;'  draggable='true' id=' class= \" well\"' ondragstart=\"evdragstart(event,this)\"  >well</div>
-";
-?>
\ 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 @@
-<?php
-$usuario="root";
-$password="toor";//
-$servidor="localhost";
-$db="galenux_troconis";
-$usuarios_sesion="GaleNUx_htroconis";
-$path_instalacion ="/var/www/html/troconis/";
-$path_images_secure ="/home/images_secure";
-$url = "http://localhost/troconis/galenux/";
-/// ESCAPAR LAS COMILLAS CON (\)
-$codigo_analizador = "  ";
-/// Depende de la variable http://php.net/upload-max-filesize o en el .htaccess
-$upload_size = "30"; 	// Tamaño permitido para las imagenes en MB
-$mapbox_token = "pk.eyJ1IjoiZmNhc3Ryb3QiLCJhIjoiY2lnOWw1bmd1MG93eXVsbTJpcmluYTBxdCJ9.yG7C1rEH6-MpZBEEb68IVg";
-$tabla_autenticacion="d9_users";
-$site='';
-
-
-?>
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 @@
-<?php
-session_start();
-// Comprobamos si existe la variable
-if ( !isset ( $_SESSION['id'] ) ) {
- // Si no existe 
- header("Location: ../../../includes/error.php");
-// echo "hola mundo2";
-}
-if($_REQUEST[u] == "escritorio") {$respuesta = "escritorio/";}
-// Script Que copia el archivo temporal subido al servidor en un directorio.
-$tipo = $_FILES['fileUpload']['type'];
-// Definimos Directorio donde se guarda el archivo
-//$dir = '../../../images_secure';
-// Intentamos Subir Archivo
-// (1) Comprobamos que existe el nombre temporal del archivo
-
-if (isset($_FILES['fileUpload']['tmp_name'])) {
-	$size= $_FILES['fileUpload']['size'];
-//	$nombre =MD5(time()).".jpg";
-// (2) - Comprobamos que se trata de un archivo de imágen
-if ($tipo == 'image/jpeg' AND $size  <= 1000000 ) {
-// (3) Por ultimo se intenta copiar el archivo al servidor.
-$name = MD5(time()).".jpg";
-$nombre= "../../../images_secure/full/".$name;
-
-//if (!copy($_FILES['fileUpload']['tmp_name'],"$nombre"))
-if (!move_uploaded_file($_FILES['fileUpload']['tmp_name'],$nombre))
-//move_uploaded_file($tmp_name, "$uploads_dir/$name");
-//chown($nombre,www-data);
-
-echo '<script>parent.resultadoUpload(1, " '.$size.'");</script> ';
-else{
-	echo generar_miniatura_alto($name,"150");
-	echo generar_miniatura_alto($name,"300");
-	echo generar_miniatura_alto($name,"600");
-echo "<script>parent.resultadoUpload(0, '$name','$respuesta');</script> ";
-}
-}
-else echo "<script>parent.resultadoUpload(2,'','$respuesta');</script> ";
-
-}
-else{
-echo '<script>parent.resultadoUpload(3, "");</script> ';
-}
-
-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 @@
-<?php
-#
-# Markdown Extra  -  A text-to-HTML conversion tool for web writers
-#
-# PHP Markdown & Extra  
-# Copyright (c) 2004-2013 Michel Fortin  
-# <http://michelf.ca/projects/php-markdown/>
-#
-# Original Markdown  
-# Copyright (c) 2004-2006 John Gruber  
-# <http://daringfireball.net/projects/markdown/>
-#
-
-
-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: <a href="http://daringfireball.net/projects/markdown/syntax">Markdown syntax</a> allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by <a href="http://daringfireball.net/">John Gruber</a>. <a href="http://michelf.ca/projects/php-markdown/">More...</a>
-Version: 1.2.8
-Author: Michel Fortin
-Author URI: http://michelf.ca/
-*/
-
-if (isset($wp_version)) {
-	# More details about how it works here:
-	# <http://michelf.ca/weblog/2005/wordpress-text-flow-vs-markdown/>
-	
-	# 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(' ',
-			'<p> </p> <pre> </pre> <ol> </ol> <ul> </ul> <li> </li>');
-		$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 = '<p>'.$text.'</p>';
-			$text = preg_replace('{\n{2,}}', "</p>\n\n<p>", $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' => '<a href="http://daringfireball.net/projects/markdown/syntax">Markdown syntax</a> allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by <a href="http://daringfireball.net/">John Gruber</a>. <a href="http://michelf.ca/projects/php-markdown/">More...</a>',
-		);
-}
-
-
-### 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 <p>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.:
-		# 	<div>
-		# 		<div>
-		# 		tags for inner block must be indented.
-		# 		</div>
-		# 	</div>
-		#
-		# 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 `<div>` and stop at the first `</div>`.
-		$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<tag>` to `</tag>\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 <hr />. 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("<hr$this->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 `<http://example.com/>`
-		# Must come after doAnchors, because you can use < and >
-		# delimiters in inline links like [this](<url>).
-		"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("<br$this->empty_element_suffix\n");
-	}
-
-
-	function doAnchors($text) {
-	#
-	# Turn Markdown link shortcuts into XHTML <a> 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 = "<a href=\"$url\"";
-			if ( isset( $this->titles[$link_id] ) ) {
-				$title = $this->titles[$link_id];
-				$title = $this->encodeAttribute($title);
-				$result .=  " title=\"$title\"";
-			}
-		
-			$link_text = $this->runSpanGamut($link_text);
-			$result .= ">$link_text</a>";
-			$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 = "<a href=\"$url\"";
-		if (isset($title)) {
-			$title = $this->encodeAttribute($title);
-			$result .=  " title=\"$title\"";
-		}
-		
-		$link_text = $this->runSpanGamut($link_text);
-		$result .= ">$link_text</a>";
-
-		return $this->hashPart($result);
-	}
-
-
-	function doImages($text) {
-	#
-	# Turn Markdown image shortcuts into <img> 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 = "<img src=\"$url\" alt=\"$alt_text\"";
-			if (isset($this->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 = "<img src=\"$url\" alt=\"$alt_text\"";
-		if (isset($title)) {
-			$title = $this->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 = "<h$level>".$this->runSpanGamut($matches[1])."</h$level>";
-		return "\n" . $this->hashBlock($block) . "\n\n";
-	}
-	function _doHeaders_callback_atx($matches) {
-		$level = strlen($matches[1]);
-		$block = "<h$level>".$this->runSpanGamut($matches[2])."</h$level>";
-		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 "<li>" . $item . "</li>\n";
-	}
-
-
-	function doCodeBlocks($text) {
-	#
-	#	Process Markdown `<pre><code>` 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 = "<pre><code>$codeblock\n</code></pre>";
-		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>$code</code>");
-	}
-
-
-	var $em_relist = array(
-		''  => '(?:(?<!\*)\*(?!\*)|(?<!_)_(?!_))(?=\S|$)(?![\.,:;]\s)',
-		'*' => '(?<=\S|^)(?<!\*)\*(?!\*)',
-		'_' => '(?<=\S|^)(?<!_)_(?!_)',
-		);
-	var $strong_relist = array(
-		''   => '(?:(?<!\*)\*\*(?!\*)|(?<!_)__(?!_))(?=\S|$)(?![\.,:;]\s)',
-		'**' => '(?<=\S|^)(?<!\*)\*\*(?!\*)',
-		'__' => '(?<=\S|^)(?<!_)__(?!_)',
-		);
-	var $em_strong_relist = array(
-		''    => '(?:(?<!\*)\*\*\*(?!\*)|(?<!_)___(?!_))(?=\S|$)(?![\.,:;]\s)',
-		'***' => '(?<=\S|^)(?<!\*)\*\*\*(?!\*)',
-		'___' => '(?<=\S|^)(?<!_)___(?!_)',
-		);
-	var $em_strong_prepared_relist;
-	
-	function prepareItalicsAndBold() {
-	#
-	# Prepare regular expressions for searching emphasis tokens in any
-	# context.
-	#
-		foreach ($this->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 = "<strong><em>$span</em></strong>";
-					$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 = "<strong>$span</strong>";
-					$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 = "<em>$span</em>";
-						$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 <pre> content, 
-		# so we need to fix that:
-		$bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx', 
-			array(&$this, '_doBlockQuotes_callback2'), $bq);
-
-		return "\n". $this->hashBlock("<blockquote>\n$bq\n</blockquote>")."\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 <p> 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 <p> 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('/^([ ]*)/', "<p>", $value);
-				$value .= "</p>";
-				$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 = <div> tag
-//					  <div  \s+
-//					  [^>]*
-//					  \b
-//					  markdown\s*=\s*  ([\'"])	#	$2 = attr quote char
-//					  1
-//					  \2
-//					  [^>]*
-//					  >
-//					)
-//					(							# $3 = contents
-//					.*
-//					)
-//					(</div>)					# $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('"', '&quot;', $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('&', '&amp;', $text);
-		} else {
-			# Ampersand-encoding based entirely on Nat Irons's Amputator
-			# MT plugin: <http://bumppo.net/projects/amputator/>
-			$text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/', 
-								'&amp;', $text);;
-		}
-		# Encode remaining <'s
-		$text = str_replace('<', '&lt;', $text);
-
-		return $text;
-	}
-
-
-	function doAutoLinks($text) {
-		$text = preg_replace_callback('{<((https?|ftp|dict):[^\'">\s]+)>}i', 
-			array(&$this, '_doAutoLinks_url_callback'), $text);
-
-		# Email addresses: <address@domain.foo>
-		$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 = "<a href=\"$url\">$tel</a>";
-		return $this->hashPart($link);
-	}
-	function _doAutoLinks_url_callback($matches) {
-		$url = $this->encodeAttribute($matches[1]);
-		$link = "<a href=\"$url\">$url</a>";
-		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.:
-	#
-	#	  <p><a href="&#109;&#x61;&#105;&#x6c;&#116;&#x6f;&#58;&#x66;o&#111;
-	#        &#x40;&#101;&#x78;&#97;&#x6d;&#112;&#x6c;&#101;&#46;&#x63;&#111;
-	#        &#x6d;">&#x66;o&#111;&#x40;&#101;&#x78;&#97;&#x6d;&#112;&#x6c;
-	#        &#101;&#46;&#x63;&#111;&#x6d;</a></p>
-	#
-	#	Based by a filter by Matthew Wickline, posted to BBEdit-Talk.
-	#   With some optimizations by Milian Wolff.
-	#
-		$addr = "mailto:" . $addr;
-		$chars = preg_split('/(?<!^)(?!$)/', $addr);
-		$seed = (int)abs(crc32($addr) / strlen($addr)); # Deterministic seed.
-		
-		foreach ($chars as $key => $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] = '&#x'.dechex($ord).';';
-				else              $chars[$key] = '&#'.$ord.';';
-			}
-		}
-		
-		$addr = implode('', $chars);
-		$text = implode('', array_slice($chars, 7)); # text without `mailto:`
-		$addr = "<a href=\"$addr\">$text</a>";
-
-		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.'
-				|
-					(?<![`\\\\])
-					`+						# code span marker
-			'.( $this->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 <p>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:
-	#
-	#     <div>
-	#         <div markdown="1">
-	#         Hello World.  <-- Is this a Markdown code block or text?
-	#         </div>  <-- Is this a Markdown code block or a real tag?
-	#     <div>
-	#
-	#     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\[.*?\]\]>	# 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))*?(?<!`)'.$tag_re.'(?!`)}',
-					$text, $matches))
-				{
-					# End marker found: pass text unchanged until marker.
-					$parsed .= $tag . $matches[0];
-					$text = substr($text, strlen($matches[0]));
-				}
-				else {
-					# Unmatched marker: just skip it.
-					$parsed .= $tag;
-				}
-			}
-			#
-			# Check for: Opening Block level tag or
-			#            Opening Context Block tag (like ins and del) 
-			#               used as a block tag (tag is alone on it's line).
-			#
-			else if (preg_match('{^<(?:'.$this->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\[.*?\]\]>	# 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 <hr/>)
-			#			 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 <a> 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 = "<a href=\"$url\"";
-			if ( isset( $this->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</a>";
-			$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 = "<a href=\"$url\"";
-		if (isset($title)) {
-			$title = $this->encodeAttribute($title);
-			$result .=  " title=\"$title\"";
-		}
-		$result .= $attr;
-		
-		$link_text = $this->runSpanGamut($link_text);
-		$result .= ">$link_text</a>";
-
-		return $this->hashPart($result);
-	}
-
-
-	function doImages($text) {
-	#
-	# Turn Markdown image shortcuts into <img> 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 = "<img src=\"$url\" alt=\"$alt_text\"";
-			if (isset($this->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 = "<img src=\"$url\" alt=\"$alt_text\"";
-		if (isset($title)) {
-			$title = $this->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 = "<h$level$attr>".$this->runSpanGamut($matches[1])."</h$level>";
-		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 = "<h$level$attr>".$this->runSpanGamut($matches[2])."</h$level>";
-		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 = "<table>\n";
-		$text .= "<thead>\n";
-		$text .= "<tr>\n";
-		foreach ($headers as $n => $header)
-			$text .= "  <th$attr[$n]>".$this->runSpanGamut(trim($header))."</th>\n";
-		$text .= "</tr>\n";
-		$text .= "</thead>\n";
-		
-		# Split content by row.
-		$rows = explode("\n", trim($content, "\n"));
-		
-		$text .= "<tbody>\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 .= "<tr>\n";
-			foreach ($row_cells as $n => $cell)
-				$text .= "  <td$attr[$n]>".$this->runSpanGamut(trim($cell))."</td>\n";
-			$text .= "</tr>\n";
-		}
-		$text .= "</tbody>\n";
-		$text .= "</table>";
-		
-		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 = "<dl>\n" . $result . "\n</dl>";
-		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.'} \:[ ]	|
-					<dt> | \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<dt>" . $term . "</dt>";
-		}
-		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<dd>" . $def . "</dd>\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  = "<pre$pre_attr_str><code$code_attr_str>$codeblock</code></pre>";
-		
-		return "\n\n".$this->hashBlock($codeblock)."\n\n";
-	}
-	function _doFencedCodeBlocks_newlines($matches) {
-		return str_repeat("<br$this->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(
-		''  => '(?:(?<!\*)\*(?!\*)|(?<![a-zA-Z0-9_])_(?!_))(?=\S|$)(?![\.,:;]\s)',
-		'*' => '(?<=\S|^)(?<!\*)\*(?!\*)',
-		'_' => '(?<=\S|^)(?<!_)_(?![a-zA-Z0-9_])',
-		);
-	var $strong_relist = array(
-		''   => '(?:(?<!\*)\*\*(?!\*)|(?<![a-zA-Z0-9_])__(?!_))(?=\S|$)(?![\.,:;]\s)',
-		'**' => '(?<=\S|^)(?<!\*)\*\*(?!\*)',
-		'__' => '(?<=\S|^)(?<!_)__(?![a-zA-Z0-9_])',
-		);
-	var $em_strong_relist = array(
-		''    => '(?:(?<!\*)\*\*\*(?!\*)|(?<![a-zA-Z0-9_])___(?!_))(?=\S|$)(?![\.,:;]\s)',
-		'***' => '(?<=\S|^)(?<!\*)\*\*\*(?!\*)',
-		'___' => '(?<=\S|^)(?<!_)___(?![a-zA-Z0-9_])',
-		);
-
-
-	function formParagraphs($text) {
-	#
-	#	Params:
-	#		$text - string to process with html <p> 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 <p> 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 = "<p>$value</p>";
-			}
-			$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 .= "<div class=\"footnotes\">\n";
-			$text .= "<hr". $this->empty_element_suffix ."\n";
-			$text .= "<ol>\n\n";
-			
-			$attr = " rev=\"footnote\"";
-			if ($this->fn_backlink_class != "") {
-				$class = $this->fn_backlink_class;
-				$class = $this->encodeAttribute($class);
-				$attr .= " class=\"$class\"";
-			}
-			if ($this->fn_backlink_title != "") {
-				$title = $this->fn_backlink_title;
-				$title = $this->encodeAttribute($title);
-				$attr .= " title=\"$title\"";
-			}
-			$num = 0;
-			
-			while (!empty($this->footnotes_ordered)) {
-				$footnote = reset($this->footnotes_ordered);
-				$note_id = key($this->footnotes_ordered);
-				unset($this->footnotes_ordered[$note_id]);
-				$ref_count = $this->footnotes_ref_count[$note_id];
-				unset($this->footnotes_ref_count[$note_id]);
-				unset($this->footnotes[$note_id]);
-				
-				$footnote .= "\n"; # Need to append newline before parsing.
-				$footnote = $this->runBlockGamut("$footnote\n");				
-				$footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}', 
-					array(&$this, '_appendFootnotes_callback'), $footnote);
-				
-				$attr = str_replace("%%", ++$num, $attr);
-				$note_id = $this->encodeAttribute($note_id);
-
-				# Prepare backlink, multiple backlinks if multiple references
-				$backlink = "<a href=\"#fnref:$note_id\"$attr>&#8617;</a>";
-				for ($ref_num = 2; $ref_num <= $ref_count; ++$ref_num) {
-					$backlink .= " <a href=\"#fnref$ref_num:$note_id\"$attr>&#8617;</a>";
-				}
-				# Add backlink to last paragraph; create new paragraph if needed.
-				if (preg_match('{</p>$}', $footnote)) {
-					$footnote = substr($footnote, 0, -4) . "&#160;$backlink</p>";
-				} else {
-					$footnote .= "\n\n<p>$backlink</p>";
-				}
-				
-				$text .= "<li id=\"fn:$note_id\">\n";
-				$text .= $footnote . "\n";
-				$text .= "</li>\n\n";
-			}
-			
-			$text .= "</ol>\n";
-			$text .= "</div>";
-		}
-		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
-				"<sup id=\"fnref$ref_count_mark:$node_id\">".
-				"<a href=\"#fn:$node_id\"$attr>$num</a>".
-				"</sup>";
-		}
-		
-		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 <abbr> elements.
-	#
-		if ($this->abbr_word_re) {
-			// cannot use the /x modifier because abbr_word_re may 
-			// contain significant spaces:
-			$text = preg_replace_callback('{'.
-				'(?<![\w\x1A])'.
-				'(?:'.$this->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>$abbr</abbr>");
-			} else {
-				$desc = $this->encodeAttribute($desc);
-				return $this->hashPart("<abbr title=\"$desc\">$abbr</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 <div> and <table> as well).
-
-For more information about Markdown's syntax, see:
-
-<http://daringfireball.net/projects/markdown/>
-
-
-Bugs
-----
-
-To file bug reports please send email to:
-
-<michel.fortin@michelf.ca>
-
-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
-<http://michelf.ca/>  
-All rights reserved.
-
-Based on Markdown  
-Copyright (c) 2003-2006 John Gruber   
-<http://daringfireball.net/>   
-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 @@
-<?php
-
-/// DATOS DEL SUBSISTEMA DE LOGUEO ///
-$login_formulario = "116";
-$login_campo_usuario ="707";
-$login_campo_password = "708";
-$login_campo_nombres = "5";
-$login_campo_info = "711";
-$login_campo_email = "157";
-$login_campo_avatar = "712";
-
-$social_login_servicio = "709";
-$social_login_uid = "710";
-$portal_sigla = "Tupale";
-$portal_nombre = "Tupale.co";
-$portal_url = "https://tupale.co";
-$portal_slogan = "Toda causa se gana";
-
-/// DATOS DEL SUBSISTEMA DE LOGUEO ///
-
-
-
-?>
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 @@
-<?php
-/**
- * Website: http://sourceforge.net/projects/simplehtmldom/
- * Acknowledge: Jose Solorzano (https://sourceforge.net/projects/php-html/)
- * Contributions by:
- *     Yousuke Kumakura (Attribute filters)
- *     Vadim Voituk (Negative indexes supports of "find" method)
- *     Antcs (Constructor with automatically load contents either text or file/url)
- *
- * all affected sections have comments starting with "PaperG"
- *
- * Paperg - Added case insensitive testing of the value of the selector.
- * Paperg - Added tag_start for the starting index of tags - NOTE: This works but not accurately.
- *  This tag_start gets counted AFTER \r\n have been crushed out, and after the remove_noice calls so it will not reflect the REAL position of the tag in the source,
- *  it will almost always be smaller by some amount.
- *  We use this to determine how far into the file the tag in question is.  This "percentage will never be accurate as the $dom->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 <me578022@gmail.com>
- * @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 <me578022@gmail.com>
- */
-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('<![CDATA[', '', $ret);
-        $ret = str_replace(']]>', '', $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 <tag attr:ibute="something" > 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("'<!\[CDATA\[(.*?)\]\]>'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 <script> tags
-        $this->remove_noise("'<\s*script[^>]*[^/]>(.*?)<\s*/\s*script\s*>'is");
-        $this->remove_noise("'<\s*script\s*>(.*?)<\s*/\s*script\s*>'is");
-        // strip out <style> tags
-        $this->remove_noise("'<\s*style[^>]*[^/]>(.*?)<\s*/\s*style\s*>'is");
-        $this->remove_noise("'<\s*style\s*>(.*?)<\s*/\s*style\s*>'is");
-        // strip out preformatted tags
-        $this->remove_noise("'<\s*(?:code)[^>]*>(.*?)<\s*/\s*(?:code)\s*>'is");
-        // strip out server side scripts
-        $this->remove_noise("'(<\?)(.*?)(\?>)'s", true);
-        // strip smarty scripts
-        $this->remove_noise("'(\{\w)(.*?)(\})'s", true);
-
-        // parsing
-        while ($this->parse());
-        // end
-        $this->root->_[HDOM_INFO_END] = $this->cursor;
-        $this->parse_charset();
-
-        // make load function chainable
-        return $this;
-
-    }
-
-    // load html from file
-    function load_file()
-    {
-        $args = func_get_args();
-        $this->load(call_user_func_array('file_get_contents', $args), true);
-        // Throw an error if we can't properly load the dom.
-        if (($error=error_get_last())!==null) {
-            $this->clear();
-            return false;
-        }
-    }
-
-    // set callback function
-    function set_callback($function_name)
-    {
-        $this->callback = $function_name;
-    }
-
-    // remove callback function
-    function remove_callback()
-    {
-        $this->callback = null;
-    }
-
-    // save dom as string
-    function save($filepath='')
-    {
-        $ret = $this->root->innertext();
-        if ($filepath!=='') file_put_contents($filepath, $ret, LOCK_EX);
-        return $ret;
-    }
-
-    // find dom node by css selector
-    // Paperg - allow us to specify that we want case insensitive testing of the value of the selector.
-    function find($selector, $idx=null, $lowercase=false)
-    {
-        return $this->root->find($selector, $idx, $lowercase);
-    }
-
-    // clean up memory due to php5 circular references memory leak...
-    function clear()
-    {
-        foreach ($this->nodes as $n) {$n->clear(); $n = null;}
-        // This add next line is documented in the sourceforge repository. 2977248 as a fix for ongoing memory leaks that occur even with the use of clear.
-        if (isset($this->children)) foreach ($this->children as $n) {$n->clear(); $n = null;}
-        if (isset($this->parent)) {$this->parent->clear(); unset($this->parent);}
-        if (isset($this->root)) {$this->root->clear(); unset($this->root);}
-        unset($this->doc);
-        unset($this->noise);
-    }
-
-    function dump($show_attr=true)
-    {
-        $this->root->dump($show_attr);
-    }
-
-    // prepare HTML data and init everything
-    protected function prepare($str, $lowercase=true, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
-    {
-        $this->clear();
-
-        // set the length of content before we do anything to it.
-        $this->size = strlen($str);
-        // Save the original size of the html that we got in.  It might be useful to someone.
-        $this->original_size = $this->size;
-
-        //before we save the string as the doc...  strip out the \r \n's if we are told to.
-        if ($stripRN) {
-            $str = str_replace("\r", " ", $str);
-            $str = str_replace("\n", " ", $str);
-
-            // set the length of content since we have changed it.
-            $this->size = strlen($str);
-        }
-
-        $this->doc = $str;
-        $this->pos = 0;
-        $this->cursor = 1;
-        $this->noise = array();
-        $this->nodes = array();
-        $this->lowercase = $lowercase;
-        $this->default_br_text = $defaultBRText;
-        $this->default_span_text = $defaultSpanText;
-        $this->root = new simple_html_dom_node($this);
-        $this->root->tag = 'root';
-        $this->root->_[HDOM_INFO_BEGIN] = -1;
-        $this->root->nodetype = HDOM_TYPE_ROOT;
-        $this->parent = $this->root;
-        if ($this->size>0) $this->char = $this->doc[0];
-    }
-
-    // parse html content
-    protected function parse()
-    {
-        if (($s = $this->copy_until_char('<'))==='')
-        {
-            return $this->read_tag();
-        }
-
-        // text
-        $node = new simple_html_dom_node($this);
-        ++$this->cursor;
-        $node->_[HDOM_INFO_TEXT] = $s;
-        $this->link_nodes($node, false);
-        return true;
-    }
-
-    // PAPERG - dkchou - added this to try to identify the character set of the page we have just parsed so we know better how to spit it out later.
-    // NOTE:  IF you provide a routine called get_last_retrieve_url_contents_content_type which returns the CURLINFO_CONTENT_TYPE from the last curl_exec
-    // (or the content_type header from the last transfer), we will parse THAT, and if a charset is specified, we will use it over any other mechanism.
-    protected function parse_charset()
-    {
-        global $debugObject;
-
-        $charset = null;
-
-        if (function_exists('get_last_retrieve_url_contents_content_type'))
-        {
-            $contentTypeHeader = get_last_retrieve_url_contents_content_type();
-            $success = preg_match('/charset=(.+)/', $contentTypeHeader, $matches);
-            if ($success)
-            {
-                $charset = $matches[1];
-                if (is_object($debugObject)) {$debugObject->debugLog(2, 'header content-type found charset of: ' . $charset);}
-            }
-
-        }
-
-        if (empty($charset))
-        {
-            $el = $this->root->find('meta[http-equiv=Content-Type]',0);
-            if (!empty($el))
-            {
-                $fullvalue = $el->content;
-                if (is_object($debugObject)) {$debugObject->debugLog(2, 'meta content-type tag found' . $fullvalue);}
-
-                if (!empty($fullvalue))
-                {
-                    $success = preg_match('/charset=(.+)/', $fullvalue, $matches);
-                    if ($success)
-                    {
-                        $charset = $matches[1];
-                    }
-                    else
-                    {
-                        // If there is a meta tag, and they don't specify the character set, research says that it's typically ISO-8859-1
-                        if (is_object($debugObject)) {$debugObject->debugLog(2, 'meta content-type tag couldn\'t be parsed. using iso-8859 default.');}
-                        $charset = 'ISO-8859-1';
-                    }
-                }
-            }
-        }
-
-        // If we couldn't find a charset above, then lets try to detect one based on the text we got...
-        if (empty($charset))
-        {
-            // Have php try to detect the encoding from the text given to us.
-            $charset = mb_detect_encoding($this->root->plaintext . "ascii", $encoding_list = array( "UTF-8", "CP1252" ) );
-            if (is_object($debugObject)) {$debugObject->debugLog(2, 'mb_detect found: ' . $charset);}
-
-            // and if this doesn't work...  then we need to just wrongheadedly assume it's UTF-8 so that we can move on - cause this will usually give us most of what we need...
-            if ($charset === false)
-            {
-                if (is_object($debugObject)) {$debugObject->debugLog(2, 'since mb_detect failed - using default of utf-8');}
-                $charset = 'UTF-8';
-            }
-        }
-
-        // Since CP1252 is a superset, if we get one of it's subsets, we want it instead.
-        if ((strtolower($charset) == strtolower('ISO-8859-1')) || (strtolower($charset) == strtolower('Latin1')) || (strtolower($charset) == strtolower('Latin-1')))
-        {
-            if (is_object($debugObject)) {$debugObject->debugLog(2, 'replacing ' . $charset . ' with CP1252 as its a superset');}
-            $charset = 'CP1252';
-        }
-
-        if (is_object($debugObject)) {$debugObject->debugLog(1, 'EXIT - ' . $charset);}
-
-        return $this->_charset = $charset;
-    }
-
-    // read tag info
-    protected function read_tag()
-    {
-        if ($this->char!=='<')
-        {
-            $this->root->_[HDOM_INFO_END] = $this->cursor;
-            return false;
-        }
-        $begin_tag_pos = $this->pos;
-        $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-
-        // end tag
-        if ($this->char==='/')
-        {
-            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-            // This represents the change in the simple_html_dom trunk from revision 180 to 181.
-            // $this->skip($this->token_blank_t);
-            $this->skip($this->token_blank);
-            $tag = $this->copy_until_char('>');
-
-            // skip attributes in end tag
-            if (($pos = strpos($tag, ' '))!==false)
-                $tag = substr($tag, 0, $pos);
-
-            $parent_lower = strtolower($this->parent->tag);
-            $tag_lower = strtolower($tag);
-
-            if ($parent_lower!==$tag_lower)
-            {
-                if (isset($this->optional_closing_tags[$parent_lower]) && isset($this->block_tags[$tag_lower]))
-                {
-                    $this->parent->_[HDOM_INFO_END] = 0;
-                    $org_parent = $this->parent;
-
-                    while (($this->parent->parent) && strtolower($this->parent->tag)!==$tag_lower)
-                        $this->parent = $this->parent->parent;
-
-                    if (strtolower($this->parent->tag)!==$tag_lower) {
-                        $this->parent = $org_parent; // restore origonal parent
-                        if ($this->parent->parent) $this->parent = $this->parent->parent;
-                        $this->parent->_[HDOM_INFO_END] = $this->cursor;
-                        return $this->as_text_node($tag);
-                    }
-                }
-                else if (($this->parent->parent) && isset($this->block_tags[$tag_lower]))
-                {
-                    $this->parent->_[HDOM_INFO_END] = 0;
-                    $org_parent = $this->parent;
-
-                    while (($this->parent->parent) && strtolower($this->parent->tag)!==$tag_lower)
-                        $this->parent = $this->parent->parent;
-
-                    if (strtolower($this->parent->tag)!==$tag_lower)
-                    {
-                        $this->parent = $org_parent; // restore origonal parent
-                        $this->parent->_[HDOM_INFO_END] = $this->cursor;
-                        return $this->as_text_node($tag);
-                    }
-                }
-                else if (($this->parent->parent) && strtolower($this->parent->parent->tag)===$tag_lower)
-                {
-                    $this->parent->_[HDOM_INFO_END] = 0;
-                    $this->parent = $this->parent->parent;
-                }
-                else
-                    return $this->as_text_node($tag);
-            }
-
-            $this->parent->_[HDOM_INFO_END] = $this->cursor;
-            if ($this->parent->parent) $this->parent = $this->parent->parent;
-
-            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-            return true;
-        }
-
-        $node = new simple_html_dom_node($this);
-        $node->_[HDOM_INFO_BEGIN] = $this->cursor;
-        ++$this->cursor;
-        $tag = $this->copy_until($this->token_slash);
-        $node->tag_start = $begin_tag_pos;
-
-        // doctype, cdata & comments...
-        if (isset($tag[0]) && $tag[0]==='!') {
-            $node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until_char('>');
-
-            if (isset($tag[2]) && $tag[1]==='-' && $tag[2]==='-') {
-                $node->nodetype = HDOM_TYPE_COMMENT;
-                $node->tag = 'comment';
-            } else {
-                $node->nodetype = HDOM_TYPE_UNKNOWN;
-                $node->tag = 'unknown';
-            }
-            if ($this->char==='>') $node->_[HDOM_INFO_TEXT].='>';
-            $this->link_nodes($node, true);
-            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-            return true;
-        }
-
-        // text
-        if ($pos=strpos($tag, '<')!==false) {
-            $tag = '<' . substr($tag, 0, -1);
-            $node->_[HDOM_INFO_TEXT] = $tag;
-            $this->link_nodes($node, false);
-            $this->char = $this->doc[--$this->pos]; // prev
-            return true;
-        }
-
-        if (!preg_match("/^[\w-:]+$/", $tag)) {
-            $node->_[HDOM_INFO_TEXT] = '<' . $tag . $this->copy_until('<>');
-            if ($this->char==='<') {
-                $this->link_nodes($node, false);
-                return true;
-            }
-
-            if ($this->char==='>') $node->_[HDOM_INFO_TEXT].='>';
-            $this->link_nodes($node, false);
-            $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-            return true;
-        }
-
-        // begin tag
-        $node->nodetype = HDOM_TYPE_ELEMENT;
-        $tag_lower = strtolower($tag);
-        $node->tag = ($this->lowercase) ? $tag_lower : $tag;
-
-        // handle optional closing tags
-        if (isset($this->optional_closing_tags[$tag_lower]) )
-        {
-            while (isset($this->optional_closing_tags[$tag_lower][strtolower($this->parent->tag)]))
-            {
-                $this->parent->_[HDOM_INFO_END] = 0;
-                $this->parent = $this->parent->parent;
-            }
-            $node->parent = $this->parent;
-        }
-
-        $guard = 0; // prevent infinity loop
-        $space = array($this->copy_skip($this->token_blank), '', '');
-
-        // attributes
-        do
-        {
-            if ($this->char!==null && $space[0]==='')
-            {
-                break;
-            }
-            $name = $this->copy_until($this->token_equal);
-            if ($guard===$this->pos)
-            {
-                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                continue;
-            }
-            $guard = $this->pos;
-
-            // handle endless '<'
-            if ($this->pos>=$this->size-1 && $this->char!=='>') {
-                $node->nodetype = HDOM_TYPE_TEXT;
-                $node->_[HDOM_INFO_END] = 0;
-                $node->_[HDOM_INFO_TEXT] = '<'.$tag . $space[0] . $name;
-                $node->tag = 'text';
-                $this->link_nodes($node, false);
-                return true;
-            }
-
-            // handle mismatch '<'
-            if ($this->doc[$this->pos-1]=='<') {
-                $node->nodetype = HDOM_TYPE_TEXT;
-                $node->tag = 'text';
-                $node->attr = array();
-                $node->_[HDOM_INFO_END] = 0;
-                $node->_[HDOM_INFO_TEXT] = substr($this->doc, $begin_tag_pos, $this->pos-$begin_tag_pos-1);
-                $this->pos -= 2;
-                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                $this->link_nodes($node, false);
-                return true;
-            }
-
-            if ($name!=='/' && $name!=='') {
-                $space[1] = $this->copy_skip($this->token_blank);
-                $name = $this->restore_noise($name);
-                if ($this->lowercase) $name = strtolower($name);
-                if ($this->char==='=') {
-                    $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                    $this->parse_attr($node, $name, $space);
-                }
-                else {
-                    //no value attr: nowrap, checked selected...
-                    $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_NO;
-                    $node->attr[$name] = true;
-                    if ($this->char!='>') $this->char = $this->doc[--$this->pos]; // prev
-                }
-                $node->_[HDOM_INFO_SPACE][] = $space;
-                $space = array($this->copy_skip($this->token_blank), '', '');
-            }
-            else
-                break;
-        } while ($this->char!=='>' && $this->char!=='/');
-
-        $this->link_nodes($node, true);
-        $node->_[HDOM_INFO_ENDSPACE] = $space[0];
-
-        // check self closing
-        if ($this->copy_until_char_escape('>')==='/')
-        {
-            $node->_[HDOM_INFO_ENDSPACE] .= '/';
-            $node->_[HDOM_INFO_END] = 0;
-        }
-        else
-        {
-            // reset parent
-            if (!isset($this->self_closing_tags[strtolower($node->tag)])) $this->parent = $node;
-        }
-        $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-
-        // If it's a BR tag, we need to set it's text to the default text.
-        // This way when we see it in plaintext, we can generate formatting that the user wants.
-        // since a br tag never has sub nodes, this works well.
-        if ($node->tag == "br")
-        {
-            $node->_[HDOM_INFO_INNER] = $this->default_br_text;
-        }
-
-        return true;
-    }
-
-    // parse attributes
-    protected function parse_attr($node, $name, &$space)
-    {
-        // Per sourceforge: http://sourceforge.net/tracker/?func=detail&aid=3061408&group_id=218559&atid=1044037
-        // If the attribute is already defined inside a tag, only pay atetntion to the first one as opposed to the last one.
-        if (isset($node->attr[$name]))
-        {
-            return;
-        }
-
-        $space[2] = $this->copy_skip($this->token_blank);
-        switch ($this->char) {
-            case '"':
-                $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE;
-                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                $node->attr[$name] = $this->restore_noise($this->copy_until_char_escape('"'));
-                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                break;
-            case '\'':
-                $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_SINGLE;
-                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                $node->attr[$name] = $this->restore_noise($this->copy_until_char_escape('\''));
-                $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-                break;
-            default:
-                $node->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_NO;
-                $node->attr[$name] = $this->restore_noise($this->copy_until($this->token_attr));
-        }
-        // PaperG: Attributes should not have \r or \n in them, that counts as html whitespace.
-        $node->attr[$name] = str_replace("\r", "", $node->attr[$name]);
-        $node->attr[$name] = str_replace("\n", "", $node->attr[$name]);
-        // PaperG: If this is a "class" selector, lets get rid of the preceeding and trailing space since some people leave it in the multi class case.
-        if ($name == "class") {
-            $node->attr[$name] = trim($node->attr[$name]);
-        }
-    }
-
-    // link node's parent
-    protected function link_nodes(&$node, $is_child)
-    {
-        $node->parent = $this->parent;
-        $this->parent->nodes[] = $node;
-        if ($is_child)
-        {
-            $this->parent->children[] = $node;
-        }
-    }
-
-    // as a text node
-    protected function as_text_node($tag)
-    {
-        $node = new simple_html_dom_node($this);
-        ++$this->cursor;
-        $node->_[HDOM_INFO_TEXT] = '</' . $tag . '>';
-        $this->link_nodes($node, false);
-        $this->char = (++$this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-        return true;
-    }
-
-    protected function skip($chars)
-    {
-        $this->pos += strspn($this->doc, $chars, $this->pos);
-        $this->char = ($this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-    }
-
-    protected function copy_skip($chars)
-    {
-        $pos = $this->pos;
-        $len = strspn($this->doc, $chars, $pos);
-        $this->pos += $len;
-        $this->char = ($this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-        if ($len===0) return '';
-        return substr($this->doc, $pos, $len);
-    }
-
-    protected function copy_until($chars)
-    {
-        $pos = $this->pos;
-        $len = strcspn($this->doc, $chars, $pos);
-        $this->pos += $len;
-        $this->char = ($this->pos<$this->size) ? $this->doc[$this->pos] : null; // next
-        return substr($this->doc, $pos, $len);
-    }
-
-    protected function copy_until_char($char)
-    {
-        if ($this->char===null) return '';
-
-        if (($pos = strpos($this->doc, $char, $this->pos))===false) {
-            $ret = substr($this->doc, $this->pos, $this->size-$this->pos);
-            $this->char = null;
-            $this->pos = $this->size;
-            return $ret;
-        }
-
-        if ($pos===$this->pos) return '';
-        $pos_old = $this->pos;
-        $this->char = $this->doc[$pos];
-        $this->pos = $pos;
-        return substr($this->doc, $pos_old, $pos-$pos_old);
-    }
-
-    protected function copy_until_char_escape($char)
-    {
-        if ($this->char===null) return '';
-
-        $start = $this->pos;
-        while (1)
-        {
-            if (($pos = strpos($this->doc, $char, $start))===false)
-            {
-                $ret = substr($this->doc, $this->pos, $this->size-$this->pos);
-                $this->char = null;
-                $this->pos = $this->size;
-                return $ret;
-            }
-
-            if ($pos===$this->pos) return '';
-
-            if ($this->doc[$pos-1]==='\\') {
-                $start = $pos+1;
-                continue;
-            }
-
-            $pos_old = $this->pos;
-            $this->char = $this->doc[$pos];
-            $this->pos = $pos;
-            return substr($this->doc, $pos_old, $pos-$pos_old);
-        }
-    }
-
-    // remove noise from html content
-    // save the noise in the $this->noise array.
-    protected function remove_noise($pattern, $remove_tag=false)
-    {
-        global $debugObject;
-        if (is_object($debugObject)) { $debugObject->debugLogEntry(1); }
-
-        $count = preg_match_all($pattern, $this->doc, $matches, PREG_SET_ORDER|PREG_OFFSET_CAPTURE);
-
-        for ($i=$count-1; $i>-1; --$i)
-        {
-            $key = '___noise___'.sprintf('% 5d', count($this->noise)+1000);
-            if (is_object($debugObject)) { $debugObject->debugLog(2, 'key is: ' . $key); }
-            $idx = ($remove_tag) ? 0 : 1;
-            $this->noise[$key] = $matches[$i][$idx][0];
-            $this->doc = substr_replace($this->doc, $key, $matches[$i][$idx][1], strlen($matches[$i][$idx][0]));
-        }
-
-        // reset the length of content
-        $this->size = strlen($this->doc);
-        if ($this->size>0)
-        {
-            $this->char = $this->doc[0];
-        }
-    }
-
-    // restore noise to html content
-    function restore_noise($text)
-    {
-        global $debugObject;
-        if (is_object($debugObject)) { $debugObject->debugLogEntry(1); }
-
-        while (($pos=strpos($text, '___noise___'))!==false)
-        {
-            // Sometimes there is a broken piece of markup, and we don't GET the pos+11 etc... token which indicates a problem outside of us...
-            if (strlen($text) > $pos+15)
-            {
-                $key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13].$text[$pos+14].$text[$pos+15];
-                if (is_object($debugObject)) { $debugObject->debugLog(2, 'located key of: ' . $key); }
-
-                if (isset($this->noise[$key]))
-                {
-                    $text = substr($text, 0, $pos).$this->noise[$key].substr($text, $pos+16);
-                }
-                else
-                {
-                    // do this to prevent an infinite loop.
-                    $text = substr($text, 0, $pos).'UNDEFINED NOISE FOR KEY: '.$key . substr($text, $pos+16);
-                }
-            }
-            else
-            {
-                // There is no valid key being given back to us... We must get rid of the ___noise___ or we will have a problem.
-                $text = substr($text, 0, $pos).'NO NUMERIC NOISE KEY' . substr($text, $pos+11);
-            }
-        }
-        return $text;
-    }
-
-    // Sometimes we NEED one of the noise elements.
-    function search_noise($text)
-    {
-        global $debugObject;
-        if (is_object($debugObject)) { $debugObject->debugLogEntry(1); }
-
-        foreach($this->noise as $noiseElement)
-        {
-            if (strpos($noiseElement, $text)!==false)
-            {
-                return $noiseElement;
-            }
-        }
-    }
-    function __toString()
-    {
-        return $this->root->innertext();
-    }
-
-    function __get($name)
-    {
-        switch ($name)
-        {
-            case 'outertext':
-                return $this->root->innertext();
-            case 'innertext':
-                return $this->root->innertext();
-            case 'plaintext':
-                return $this->root->text();
-            case 'charset':
-                return $this->_charset;
-            case 'target_charset':
-                return $this->_target_charset;
-        }
-    }
-
-    // camel naming conventions
-    function childNodes($idx=-1) {return $this->root->childNodes($idx);}
-    function firstChild() {return $this->root->first_child();}
-    function lastChild() {return $this->root->last_child();}
-    function createElement($name, $value=null) {return @str_get_html("<$name>$value</$name>")->first_child();}
-    function createTextNode($value) {return @end(str_get_html($value)->nodes);}
-    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=-1) {return $this->find($name, $idx);}
-    function loadFile() {$args = func_get_args();$this->load_file($args);}
-}
-
-?>
\ No newline at end of file
diff --git a/milfs/includes/upload.php b/milfs/includes/upload.php
deleted file mode 100644
index c5ae451..0000000
--- a/milfs/includes/upload.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-session_start();
-// Comprobamos si existe la variable
-if ( !isset ( $_SESSION['id'] ) ) {
- // Si no existe 
- //header("Location: ../../../includes/error.php");
-// echo "hola mundo2";
-}
-$alerta="";
-$imagen= $_REQUEST['id_imagen'];
-//if($_REQUEST['u'] == "escritorio") {$respuesta = "escritorio/";}
-// Script Que copia el archivo temporal subido al servidor en un directorio.
-$tipo = $_FILES['fileUpload']['type'];
-if($tipo=="image/png") {$ext = ".png";	} 
-elseif($tipo=="image/jpeg") {$ext = ".jpg";	}
-elseif($tipo=="image/gif") {$ext = ".gif";	}
-else {$ext = "novalida";} 
-// Definimos Directorio donde se guarda el archivo
-//$dir = '../../../images_secure';
-// Intentamos Subir Archivo
-// (1) Comprobamos que existe el nombre temporal del archivo
-
-
-if (isset($_FILES['fileUpload']['tmp_name'])) {
-	$size= $_FILES['fileUpload']['size'];
-//	$nombre =MD5(time()).".jpg";
-// (2) - Comprobamos que se trata de un archivo de imágen
-//if ($tipo == 'image/jpeg' AND $size  <= 4000000 ) {
-	$upload_size = ($_SESSION['upload_size']*1024*1024);
-if (($tipo == 'image/jpeg' or $tipo =='image/png') AND $size  <= $upload_size ) {
-// (3) Por ultimo se intenta copiar el archivo al servidor.
-$name = MD5(time())."$ext";
-$nombre= "$_SESSION[path_images_secure]/full/".$name;
-$imagenX = $_FILES['fileUpload']['tmp_name'];
-$coordenadas = leer_exif($imagenX);
-//$link = "$_SESSION[url]mapero.php?lat=$coordenadas[lon]&lon=$coordenadas[lat]&zoom=16&id=$name";
-if($coordenadas !='') { 
-$coordenadas = "$coordenadas"."&id=$_REQUEST[campo_mapa]"."[0]";
-$alerta = "alert(' Se han detectado coordenadas en los metadatos de la imagen y se ubicará el mapa en ese lugar.');";
-
-
-}
-//if (!copy($_FILES['fileUpload']['tmp_name'],"$nombre"))
-if (!move_uploaded_file($_FILES['fileUpload']['tmp_name'],$nombre))
-//move_uploaded_file($tmp_name, "$uploads_dir/$name");
-//chown($nombre,www-data);
-
-echo '<script>parent.resultadoUpload(1, " '.$size.'");</script> ';
-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 " <script>parent.resultadoUpload(0, '$name','$_REQUEST[path]','$imagen','$coordenadas'); $alerta </script> ";
-}
-}
-else echo "<script>parent.resultadoUpload(2,'','$_REQUEST[path]','$imagen');</script> ";
-
-}
-else{
-echo "<script>parent.resultadoUpload(3,'','".$imagen."');</script>";
-}
-
-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 @@
-<?php
-session_start();
-// Comprobamos si existe la variable
-if ( !isset ( $_SESSION['id'] ) ) {
- // Si no existe 
- header("Location: ../index.php");
-// echo "hola mundo2";
-}
-// Script Que copia el archivo temporal subido al servidor en un directorio.
-$tipo = $_FILES['fileUpload']['type'];
-// Definimos Directorio donde se guarda el archivo
-$dir = '/tmp/';
-// Intentamos Subir Archivo
-// (1) Comprobamos que existe el nombre temporal del archivo
-if (isset($_FILES['fileUpload']['tmp_name'])) {
-	$size= $_FILES['fileUpload']['size'];
-	$nombre =MD5(time()).".jpg";
-// (2) - Comprobamos que se trata de un archivo de imágen
-if ($tipo == 'text/csv' AND $size  <= 10000000 ) {
-// (3) Por ultimo se intenta copiar el archivo al servidor.
-$name = MD5(time()).".csv";
-$nombre= "/tmp/".MD5(time()).".csv";
-//if (!copy($_FILES['fileUpload']['tmp_name'],"$nombre"))
-if (!move_uploaded_file($_FILES['fileUpload']['tmp_name'],$nombre))
-//move_uploaded_file($tmp_name, "$uploads_dir/$name");
-//chmod('$dir.$nombre',0755);
-echo '<script>parent.resultadoUploadArchivo(1,"'.$nombre.'","aviso_archivo");</script> ';
-else{
-echo '<script>parent.resultadoUploadArchivo(0, "'.$name.'","aviso_archivo");</script> ';
-}
-}
-else echo '<script>parent.resultadoUploadArchivo(2, "","aviso_archivo");</script> ';
-}
-else{
-echo '<script>parent.resultadoUploadArchivo(3, "","aviso_archivo");</script> ';
-}
-?>
-
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 @@
-<?php
-echo 'content="text/plain; charset=utf-8"';
-// En versiones de PHP anteriores a la 4.1.0, debería utilizarse $HTTP_POST_FILES en lugar
-// de $_FILES.
-//$campo= "campo$_REQUEST[campo]-$_REQUEST[item]";
-$campo= "$_REQUEST[campo]-$_REQUEST[item]";
-$tipo = $_FILES["$campo"]['type'];
-//$nombrecillo = $_FILES['myfile']['nombrecillo'];
-
-if($tipo=="image/png") {$ext = ".png"; $imagen=1;	} 
-elseif($tipo=="image/jpeg") {$ext = ".jpg"; $imagen=1;	}
-elseif($tipo=="image/gif") {$ext = ".gif"; $imagen=1;	}
-else {
-	$ext = explode(".", $_FILES["$campo"]['name']);
$ext = ".".strtolower($ext[count($ext) - 1]);
-	
-//	$ext = "novalida";
-	 $imagen=0;} 
-	 $nombrecillo= $_REQUEST['nombrecillo'];
-$name = "$nombrecillo";
-$dir_subida = '/home/images_secure/';
-$fichero_subido = $dir_subida ."full/".$name;
-
-
-if (move_uploaded_file($_FILES["$campo"]['tmp_name'], $fichero_subido)) {
- if($imagen==1) {
- 	echo miniaturizar($name,"150",$dir_subida);
-	echo miniaturizar($name,"300",$dir_subida);
-	echo miniaturizar($name,"600",$dir_subida);
- }
-} else {
-    echo "¡Posible ataque de subida de ficheros!\n";
-}
-
-function miniaturizar($file,$width,$directorio) {
//$archivo = $file;
-$archivo = "$directorio"."full/".$file;

$file_info = getimagesize($archivo);
$ratio = $file_info[0] / $file_info[1];
$newwidth = $width;
$newheight = round($newwidth / $ratio);
$ext = explode(".", $file);
$ext = strtolower($ext[count($ext) - 1]);
if ($ext == "jpeg") $ext = "jpg";
switch ($ext) {
        case "jpg":
                $img = imagecreatefromjpeg($archivo);
             //   $img = imagecreatefromstring($archivo);
        break;
        case "png":
                $img = imagecreatefrompng($archivo);
        break;
        case "gif":
                $img = imagecreatefromgif($archivo);
        break;
}
$thumb = imagecreatetruecolor($newwidth, $newheight);
-imagealphablending( $thumb, false );
-imagesavealpha( $thumb, true );
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
-if($ext=="jpg") {
imagejpeg($thumb,$directorio.$width."/$file", 80);
-}else {
-imagepng($thumb,$directorio.$width."/$file", 9);
-}
-}
-
-?>
-
-
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 @@
-<?php
-session_start();
-       if($_SESSION['grupo'] != "administrador") {
-     //   	header("Location: ../");
-        }
-        if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');}
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-//$xajax = new xajax("https://tupale.co/milfs/index.php");
-require ('funciones/funciones.php');
-//require ('funciones/convert.php');
-require ('funciones/login.php');
-require ("includes/markdown.php");
-require ("includes/simple_html_dom.php");
-require ("funciones/conex.php");
-
-$xajax->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 = "";}
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    
-     <?php 
-     $xajax->printJavascript("xajax/"); 
-     //	$xajax->debugOn();
-		//$xajax->statusMessagesOn();
-      ?>
-	<link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-<!-- 	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha256-k2/8zcNbxVIh5mnQ52A0r3a6jAgMGxFJFE2707UxGCk= sha512-ZV9KawG2Legkwp3nAlxLIVFudTauWuBpC10uEafMHYL0Sarrz5A7G79kXh5+5+woxQ5HM559XX2UZjMJ36Wplg==" crossorigin="anonymous"> -->
-	<?php if($form !='') { echo "<link href='css/embebidoXXX.css' rel='stylesheet'>";}else{ echo "<link href='css/estilos.php?dd' rel='stylesheet'>";} ?>
-
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-
-
-<style>
-  #map {width: 500px;height:200px;}
-  
-</style>
-
-
-    <title>I<3MILFS</title>
-
-<?php
-
-					if($id !=''){$onload ="<script type=\"text/javascript\"> xajax_formulario_listado('','contenido','$id')</script>";}
-					elseif($campo !=''){$onload ="<script type=\"text/javascript\"> xajax_formulario_crear_campo('','$campo','contenido')</script>";}
-					elseif($consulta !=''){$onload ="<script type=\"text/javascript\"> xajax_consultar_formulario('$consulta','','','modal')</script>";}
-					else{}
-					
-						if( isset($_REQUEST['psi'])){$onload ="<script type=\"text/javascript\"> xajax_mostrar_psi()</script>";}
-?>
-
-<!--      <script src="js/jquery.min.js"></script>
-  <script src="js/bootstrap.js"></script> -->
-<!--     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> -->
-    <script src="js/jquery-2.1.4.min.js"></script>
-    
-   <!--  UPLOAD  -->
-   <script src="plugins/upload/js/vendor/jquery.ui.widget.js"></script>
-	<script src="plugins/upload/js/jquery.iframe-transport.js"></script>
-	<script src="plugins/upload/js/jquery.fileupload.js"></script>
-	<!-- The Load Image plugin is included for the preview images and image resizing functionality -->
-<script src="plugins/upload/js/load-image.all.min.js"></script>
-<!-- The Canvas to Blob plugin is included for image resizing functionality -->
-<script src="plugins/upload/js/canvas-to-blob.min.js"></script>
-	<script src="plugins/upload/js/jquery.fileupload-process.js"></script>
-	<script src="plugins/upload/js/jquery.fileupload-image.js"></script> 
-	<script src="plugins/upload/js/jquery.fileupload-audio.js"></script>
-	<script src="plugins/upload/js/jquery.fileupload-video.js"></script>
-	<script src="plugins/upload/js/jquery.fileupload-validate.js"></script>
-
-
-
-
-	 <link rel="stylesheet" href="plugins/upload/css/jquery.fileupload.css">
-<!-- 	 <link rel="stylesheet" href="plugins/upload/css/style.css"> -->
-	  <!-- JavaScript used to call the fileupload widget to upload files -->
- 
-
-   <!--  UPLOAD  -->
-<!--     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> -->
-        <script src="../librerias/bootstrap/js/bootstrap.min.js" ></script>
-  <script src="js/markdown.js"></script>
-  <script src="js/to-markdown.js"></script>
-  <script src="js/bootstrap-markdown.js"></script>
-      <script src="js/scripts.js"></script>
-     
-	<!-- include codemirror (codemirror.css, codemirror.js, xml.js, formatting.js) -->
-		<link rel="stylesheet" type="text/css" href="../librerias/codemirror/codemirror.css">
-		<link rel="stylesheet" type="text/css" href="../librerias/codemirror/monokai.css">
-		<script type="text/javascript" src="../librerias/codemirror/codemirror.js"></script>
-		<script type="text/javascript" src="../librerias/codemirror/xml.js"></script>
-		<script type="text/javascript" src="../librerias/codemirror/formatting.js"></script>
-	<!--  wysiwyg -->
-		<script src="../librerias/summernote/summernote.js"></script>
-		    <!-- include summernote css/js-->
-		<link href="../librerias/summernote/summernote.css" rel="stylesheet">
-
-<script type="text/javascript">
- 
-//Recoger elemento arrastrable//
-function evdragstart(ev,el) { //ev= el evento, el=elemento arrastrado.
-    cont1=el.parentNode; //guardamos el elemento padre del elemento en una variable.
-    ev.dataTransfer.setData("text",ev.target.id);	//guardamos datos del elemento. 
-}
-//mientras se arrastra:
-function evdragover (ev) { //ev=el evento.
-    ev.preventDefault(); //quitar comportamiento por defecto.
-}
-//Al soltar el elemento arrastrado
-function evdrop(ev,el) { //ev=el evento; el=receptor de soltado
-    ev.stopPropagation(); //impedir otras acciones 
-    ev.preventDefault(); //quitar comportamiento por defecto
-    var data=ev.dataTransfer.getData("text"); //recogemos datos del elemento
-    mielem=ev.target.appendChild(document.getElementById(data)); //obtenemos el elemento arrastrado
-    cont1.appendChild(mielem); //ponemos el elemento arrastrado en el mismo sitio donde estaba.
-    mielem2=mielem.cloneNode(true); //creamos una copia del elemento arrastrado.
-    mielem2.setAttribute("draggable","false"); //impedimos que el nuevo elemento pueda volver a arrastrarse
-    el.appendChild(mielem2); //colocamos la copia en el receptor de soltado
-}
-</script>
-<style>
-fieldset.fieldset-borde {
-    border: 2px solid #EDEDED !important;
-    border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-.modal-dialog {
-  width: 95% !important; 
-  height: auto;
-  padding: 0;
-}
-
-.modal-lg {
-  width: 95% !important; 
-  height: auto;
-  padding: 0;
-}
-
-.modal-content {
-  height: auto;
-}
-.modal-body {
-    max-height: calc(100vh - 220px);
-    overflow-y: auto;
-}
-
-</style>
-</head>
-<body  >
-<?php if($embebido ==1) { 
-if($form!=''){	 echo formulario_embebido($form,$opciones);}
-elseif($identificador !='') { echo mostrar_identificador($identificador,$id);}
-//elseif($_REQUEST['psi'] !='') { include("psi.php") ; echo $aviso;}
-else{}
-
-}else{
-
- ?>
-<?php echo @$onload; ?>
-<?php 
- if ( isset ( $_SESSION['id'] ) ) {	?>
-<div class="navbar navbar-inverse nav-bar-fixed-top " role="navigation">
-  <div class="container-fluid">
-    <!-- Brand and toggle get grouped for better mobile display -->
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-        <span class="sr-only">MILFS</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="#"><img src="favicon-152.png" style="width:60px" alt="MILFS" title="Multi Interactive Light Form System"></a>
-    </div>
-
-<?php  echo milfs() ?>
-  </div><!-- /.container-fluid -->
-</div>
-	
-
-<?php }else{ } ?>
-
-
-<div id='debug'></div>
-	<div class='container'>
-		<div id='contenido'>
-		
-
-		
-		<?php 
-		///echo adjuntar_basico('33');
-		if(!isset($_SESSION['id_empresa'])) {$id_empresa_portada='1';} else{$id_empresa_portada = $_SESSION['id_empresa'];}
-	$encabezado = empresa_datos("$id_empresa_portada",'encabezado');
-	 
-	$pie = empresa_datos("$id_empresa_portada",'pie');
-	echo "$encabezado";		
-	//if(isset($_SESSION['id_empresa'])) {$id_empresa_portada='1'; echo panel_aplicaciones('1',"");} 
-	
-		?>
-		
-<?php if(isset($_REQUEST['change'])){
-echo cambiar_password_formato("$_REQUEST[change]");
-}
-revisar_ingreso('');
-
-?>		
-
-<?php echo $pie; ?>
-<img class='img-responsive center-block' src="images/logo.png" alt="MILFS">
-		</div>
-
-<?php
-
-
-?>
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-    <button type='button' class='close' data-dismiss='modal' aria-hidden='true'><i class='fa fa-times-circle'></i></button>
-      <div class='modal-header' >
-        
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-		<?php	include("psi.php") ;?>
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-	</div>
-
-
-       <div class="">
-	       <div class="container">
-        <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a href="?psi" target="_psi"><i class="fa fa-smile-o "></i> Políticas de privacidad y protección de datos.</a>
-        	</div> 
-      </div>
-      <?php } ?>
-    <script type="text/javascript">
-    
-$(document).delegate('*[data-toggle="lightbox"]', 'click', function(event) {
-    event.preventDefault();
-    $(this).ekkoLightbox();
-}); 
-
-//// wysiwyg
-var edit = function() {
-  $('.wysiwyg').summernote({height: 250, codemirror: { theme: 'default' },dialogsInBody: true});
-};
-
-var save = function() {
-  var makrup = $('.wysiwyg').summernote('code');
-  $('.wysiwyg').summernote('destroy');
-};
-
-
-$(document).ready(function() {
-  $('.wysiwyg_auto').summernote({dialogsInBody: true});
-});
-
-    </script> 
-</body>
-</html>
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<buttonsArray.length;i++) {
-        // Build each group container
-        var y, btnGroups = buttonsArray[i]
-        for (y=0;y<btnGroups.length;y++) {
-          // Build each button group
-          var z,
-              buttons = btnGroups[y].data,
-              btnGroupContainer = $('<div/>', {
-                                    'class': 'btn-group'
-                                  })
-
-          for (z=0;z<buttons.length;z++) {
-            var button = buttons[z],
-                buttonContainer, buttonIconContainer,
-                buttonHandler = ns+'-'+button.name,
-                buttonIcon = this.__getIcon(button.icon),
-                btnText = button.btnText ? button.btnText : '',
-                btnClass = button.btnClass ? button.btnClass : 'btn',
-                tabIndex = button.tabIndex ? button.tabIndex : '-1',
-                hotkey = typeof button.hotkey !== 'undefined' ? button.hotkey : '',
-                hotkeyCaption = typeof jQuery.hotkeys !== 'undefined' && hotkey !== '' ? ' ('+hotkey+')' : ''
-
-            // Construct the button object
-            buttonContainer = $('<button></button>');
-            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 = $('<span/>');
-            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 = $( '<div/>', {
-                      'class': 'md-editor',
-                      click: function() {
-                        instance.focus()
-                      }
-                    })
-
-      // Prepare the editor
-      if (this.$editor == null) {
-        // Create the panel
-        var editorHeader = $('<div/>', {
-                            '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('<div class="md-controls"><a class="md-control md-control-fullscreen" href="#"><span class="'+this.__getIcon(options.fullscreen.icons.fullscreenOn)+'"></span></a></div>').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 = $('<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 = $('<div/>', {
-                           '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('<button class="btn btn-success" data-provider="'
-                              +ns
-                              +'" data-handler="'
-                              +saveHandler
-                              +'"><i class="icon icon-white icon-ok"></i> '
-                              +this.__localize('Save')
-                              +'</button>')
-
-
-        }
-
-        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('\
-          <div class="md-fullscreen-controls">\
-            <a href="#" class="exit-fullscreen" title="Exit fullscreen"><span class="'+this.__getIcon(options.fullscreen.icons.fullscreenOff)+'"></span></a>\
-          </div>')
-
-        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 = $('<div/>',{'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 = $('<div>'+link+'</div>').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 = $('<div>'+link+'</div>').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('<div class="modal-backdrop '+d+'" />').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('<div class="dropdown-backdrop"/>').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<f.length-1&&j++,~j||(j=0),f.eq(j).focus()}};var f=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=f,this},a(document).on("click.dropdown.data-api",d).on("click.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle).on("keydown.dropdown.data-api",b+", [role=menu]",c.prototype.keydown)}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll-spy.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > 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:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',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:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),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<this.options.minLength?this.shown?this.hide():this:(c=a.isFunction(this.source)?this.source(this.query,a.proxy(this.process,this)):this.source,c?this.process(c):this)},process:function(b){var c=this;return b=a.grep(b,function(a){return c.matcher(a)}),b=this.sorter(b),b.length?this.render(b.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){var b=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return a.replace(new RegExp("("+b+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},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:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',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('<div class="dropdown-backdrop"/>').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<i.length-1&&j++,~j||(j=0),i.eq(j).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu], [role=listbox]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show().scrollTop(0),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').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:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',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<p?"right":e,d.removeClass(l).addClass(e)}var q=this.getCalculatedOffset(e,h,i,j);this.applyPlacement(q,e),this.hoverState=null;var r=function(){c.$element.trigger("shown.bs."+c.type)};a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,r).emulateTransitionEnd(150):r()}},b.prototype.applyPlacement=function(b,c){var d,e=this.tip(),f=e[0].offsetWidth,g=e[0].offsetHeight,h=parseInt(e.css("margin-top"),10),i=parseInt(e.css("margin-left"),10);isNaN(h)&&(h=0),isNaN(i)&&(i=0),b.top=b.top+h,b.left=b.left+i,a.offset.setOffset(e[0],a.extend({using:function(a){e.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),e.addClass("in");var j=e[0].offsetWidth,k=e[0].offsetHeight;if("top"==c&&k!=g&&(d=!0,b.top=b.top+g-k),/bottom|top/.test(c)){var l=0;b.left<0&&(l=-2*b.left,b.left=0,e.offset(b),j=e[0].offsetWidth,k=e[0].offsetHeight),this.replaceArrow(l-f+j,j,"left")}else this.replaceArrow(k-g,k,"top");d&&e.offset(b)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.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")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach(),c.$element.trigger("hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.hoverState=null,this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),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='<div class="modal-header"'+(this.options.title||this.options.always_show_close?"":' style="display:none"')+'><button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button><h4 class="modal-title">'+(this.options.title||"&nbsp;")+"</h4></div>",e='<div class="modal-footer"'+(this.options.footer?"":' style="display:none"')+">"+this.options.footer+"</div>",a(document.body).append('<div id="'+this.modal_id+'" class="ekko-lightbox modal fade" tabindex="-1"><div class="modal-dialog"><div class="modal-content">'+f+'<div class="modal-body"><div class="ekko-lightbox-container"><div></div></div></div>'+e+"</div></div></div>"),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('<div class="ekko-lightbox-nav-overlay"><a href="#" class="'+this.strip_stops(this.options.left_arrow_class)+'"></a><a href="#" class="'+this.strip_stops(this.options.right_arrow_class)+'"></a></div>'),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.gallery_items.length&&(c=a(this.gallery_items.get(this.gallery_index+1),!1),d=c.attr("data-remote")||c.attr("href"),"image"===c.attr("data-type")||this.isImage(d))?this.preloadImage(d,!1):void 0)},navigate_left:function(){return 1!==this.gallery_items.length?(0===this.gallery_index?this.gallery_index=this.gallery_items.length-1:this.gallery_index--,this.options.onNavigate.call(this,"left",this.gallery_index),this.navigateTo(this.gallery_index)):void 0},navigate_right:function(){return 1!==this.gallery_items.length?(this.gallery_index===this.gallery_items.length-1?this.gallery_index=0:this.gallery_index++,this.options.onNavigate.call(this,"right",this.gallery_index),this.navigateTo(this.gallery_index)):void 0},detectRemoteType:function(a,b){var c;return b=b||!1,"image"===b||this.isImage(a)?(this.options.type="image",this.preloadImage(a,!0)):"youtube"===b||(c=this.getYoutubeId(a))?(this.options.type="youtube",this.showYoutubeVideo(c)):"vimeo"===b||(c=this.getVimeoId(a))?(this.options.type="vimeo",this.showVimeoVideo(c)):"instagram"===b||(c=this.getInstagramId(a))?(this.options.type="instagram",this.showInstagramVideo(c)):"video"===b?(this.options.type="video",this.showVideoIframe(c)):(this.options.type="url",this.loadRemoteContent(a))},updateTitleAndFooter:function(){var a,b,c,d;return c=this.modal_content.find(".modal-header"),b=this.modal_content.find(".modal-footer"),d=this.$element.data("title")||"",a=this.$element.data("footer")||"",d||this.options.always_show_close?c.css("display","").find(".modal-title").html(d||"&nbsp;"):c.css("display","none"),a?b.css("display","").html(a):b.css("display","none"),this},showLoading:function(){return this.lightbox_body.html('<div class="modal-loading">'+this.options.loadingMessage+"</div>"),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('<iframe width="'+c+'" height="'+b+'" src="'+this.addTrailingSlash(a)+'embed/" frameborder="0" allowfullscreen></iframe>'),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('<div class="embed-responsive embed-responsive-16by9"><iframe width="'+b+'" height="'+c+'" src="'+a+'" frameborder="0" allowfullscreen class="embed-responsive-item"></iframe></div>'),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('<iframe width="'+d+'" height="'+d+'" src="'+b+'" frameborder="0" allowfullscreen></iframe>'),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("<img />"),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 @@
-<?php
-session_start();
-        if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');}
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-//$xajax = new xajax("https://tupale.co/milfs/index.php");
-require ('funciones/funciones.php');
-//require ('funciones/convert.php');
-require ('funciones/login.php');
-require ("includes/markdown.php");
-require ("includes/simple_html_dom.php");
-require ("funciones/conex.php");
-
-$xajax->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 = "";}
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    
-     <?php 
-     $xajax->printJavascript("xajax/"); 
-     //$xajax->debugOn();
-      ?>
-	<link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha256-k2/8zcNbxVIh5mnQ52A0r3a6jAgMGxFJFE2707UxGCk= sha512-ZV9KawG2Legkwp3nAlxLIVFudTauWuBpC10uEafMHYL0Sarrz5A7G79kXh5+5+woxQ5HM559XX2UZjMJ36Wplg==" crossorigin="anonymous">
-	<?php if($form !='') { echo "<link href='css/embebidoXXX.css' rel='stylesheet'>";}else{ echo "<link href='css/estilos.php?dd' rel='stylesheet'>";} ?>
-
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-
-
-<style>
-  #map {width: 500px;height:200px;}
-  
-</style>
-
-
-    <title>I<3MILFS</title>
-
-<?php
-
-					if($id !='' OR $c ){$onload ="<script type=\"text/javascript\"> xajax_formulario_modal('".$id."','','".$c."','".$t."')</script>";}
-						if( isset($_REQUEST['psi'])){$onload ="<script type=\"text/javascript\"> xajax_mostrar_psi()</script>";}
-?>
-
-<!--      <script src="js/jquery.min.js"></script>
-  <script src="js/bootstrap.js"></script> -->
-<!--     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> -->
-    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
-<!--     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> -->
-        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" integrity="sha512-K1qjQ+NcF2TYO/eI3M6v8EiNYZfA95pQumfvcVrTHtwQVDG+aHRqLi/ETn2uB+1JqwYqVG3LIvdm9lj6imS/pQ==" crossorigin="anonymous"></script>
-  <script src="js/markdown.js"></script>
-  <script src="js/to-markdown.js"></script>
-  <script src="js/bootstrap-markdown.js"></script>
-      <script src="js/scripts.js"></script>
-<script type="text/javascript">
- 
-//Recoger elemento arrastrable//
-function evdragstart(ev,el) { //ev= el evento, el=elemento arrastrado.
-    cont1=el.parentNode; //guardamos el elemento padre del elemento en una variable.
-    ev.dataTransfer.setData("text",ev.target.id);	//guardamos datos del elemento. 
-}
-//mientras se arrastra:
-function evdragover (ev) { //ev=el evento.
-    ev.preventDefault(); //quitar comportamiento por defecto.
-}
-//Al soltar el elemento arrastrado
-function evdrop(ev,el) { //ev=el evento; el=receptor de soltado
-    ev.stopPropagation(); //impedir otras acciones 
-    ev.preventDefault(); //quitar comportamiento por defecto
-    var data=ev.dataTransfer.getData("text"); //recogemos datos del elemento
-    mielem=ev.target.appendChild(document.getElementById(data)); //obtenemos el elemento arrastrado
-    cont1.appendChild(mielem); //ponemos el elemento arrastrado en el mismo sitio donde estaba.
-    mielem2=mielem.cloneNode(true); //creamos una copia del elemento arrastrado.
-    mielem2.setAttribute("draggable","false"); //impedimos que el nuevo elemento pueda volver a arrastrarse
-    el.appendChild(mielem2); //colocamos la copia en el receptor de soltado
-}
-</script>
-<style>
-fieldset.fieldset-borde {
-    border: 2px solid #EDEDED !important;
-    border-radius:3px;
-    padding: 0 1.4em 1.4em 1.4em !important;
-    margin: 0 0 1.5em 0 !important;
-    -webkit-box-shadow:  0px 0px 0px 0px #000;
-            box-shadow:  0px 0px 0px 0px #000;
-}
-
-legend.legend-area {
-        font-size: 1.2em !important;
-        font-weight: bold !important;
-        text-align: left !important;
-        width:auto;
-        padding:0 10px;
-        border-bottom:none;
-    }
-.modal-dialog {
-  width: 98%;
-  height: auto;
-  padding: 0;
-}
-
-.modal-content {
-  height: auto;
-}
-
-</style>
-</head>
-<body  >
-
-<?php if($embebido ==1) { 
-if($form!=''){	 echo formulario_embebido($form,$opciones);}
-elseif($identificador !='') { echo mostrar_identificador($identificador,$id);}
-//elseif($_REQUEST['psi'] !='') { include("psi.php") ; echo $aviso;}
-else{}
-
-}else{
-
- ?>
-<?php echo @$onload; ?>
-<?php 
- if ( isset ( $_SESSION['id'] ) ) {	?>
-<div class="navbar navbar-inverse nav-bar-fixed-top " role="navigation">
-  <div class="container-fluid">
-    <!-- Brand and toggle get grouped for better mobile display -->
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-        <span class="sr-only">MILFS</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="#"><img src="favicon-152.png" style="width:60px" alt="MILFS" title="Multi Interactive Light Form System"></a>
-    </div>
-
-<?php  echo milfs() ?>
-  </div><!-- /.container-fluid -->
-</div>
-<?php }else{ } ?>
-
-
-<div id='debug'></div>
-	<div class='container'>
-		<div id='contenido'>
-		
-		<?php 
-		if(!isset($_SESSION['id_empresa'])) {$id_empresa_portada='1';} else{$id_empresa_portada = $_SESSION['id_empresa'];}
-	$encabezado = empresa_datos("$id_empresa_portada",'encabezado');
-	 
-	$pie = empresa_datos("$id_empresa_portada",'pie');
-	echo "$encabezado";		
-	//if(isset($_SESSION['id_empresa'])) {$id_empresa_portada='1'; echo panel_aplicaciones('1',"");} 
-	
-		?>
-		
-<?php if(isset($_REQUEST['change'])){
-echo cambiar_password_formato("$_REQUEST[change]");
-}
-revisar_ingreso('');
-?>		
-
-<?php echo $pie; ?>
-<img class='img-responsive center-block' src="images/logo.png" alt="MILFS">
-		</div>
-
-<?php
-
-
-?>
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-    <button type='button' class='close' data-dismiss='modal' aria-hidden='true'><i class='fa fa-times-circle'></i></button>
-      <div class='modal-header' >
-        
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-		<?php	include("psi.php") ;?>
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-	</div>
-
-
-       <div class="">
-	       <div class="container">
-        <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a href="?psi" target="_psi"><i class="fa fa-smile-o "></i> Políticas de privacidad y protección de datos.</a>
-        	</div> 
-      </div>
-      <?php } ?>
-
-</body>
-</html>
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 id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",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;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;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 href='#'></a>","#"===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="<input/>",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.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",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<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/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*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_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("<iframe frameborder='0' width='0' height='0'/>")).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();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},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("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
diff --git a/milfs/js/jquery-3.2.1.min.js b/milfs/js/jquery-3.2.1.min.js
deleted file mode 100644
index 644d35e..0000000
--- a/milfs/js/jquery-3.2.1.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"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){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.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||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},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?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;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;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=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={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.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=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$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("fieldset");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=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;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 function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(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 qa(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},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=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),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){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.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===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(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,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):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(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!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&&C.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.escape=function(a){return(a+"").replace(ba,ca)},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:V,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(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===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 V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.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(_,aa).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("(^|"+K+")"+a+"("+K+"|$)"))&&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(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},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,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/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=I(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(P,"$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(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).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:oa(!1),disabled:oa(!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 X.test(a.nodeName)},input:function(a){return W.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:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(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 va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(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?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(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}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};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=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
-a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;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},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.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=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.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 W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=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};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),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),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==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,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.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 Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(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&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.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 Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,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=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.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):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.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 kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.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;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.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=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.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||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.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;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
-null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.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=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var 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(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.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 Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.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 Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(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}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(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}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(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 r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({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)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
diff --git a/milfs/js/jquery.cleditor.js b/milfs/js/jquery.cleditor.js
deleted file mode 100644
index fd47ba9..0000000
--- a/milfs/js/jquery.cleditor.js
+++ /dev/null
@@ -1,1190 +0,0 @@
-/*!
- CLEditor WYSIWYG HTML Editor v1.4.5
- http://premiumsoftware.net/CLEditor
- requires jQuery v1.4.2 or later
-
- Copyright 2010, Chris Landowski, Premium Software, LLC
- Dual licensed under the MIT or GPL Version 2 licenses.
-*/
-
-(function ($) {
-
-    //==============
-    // jQuery Plugin
-    //==============
-
-    $.cleditor = {
-
-        // Define the defaults used for all new cleditor instances
-        defaultOptions: {
-            width: 'auto', // width not including margins, borders or padding
-            height: 250, // height not including margins, borders or padding
-            controls:     // controls to add to the toolbar
-                          "bold italic underline strikethrough subscript superscript | font size " +
-                          "style | color highlight removeformat | bullets numbering | outdent " +
-                          "indent | alignleft center alignright justify | undo redo | " +
-                          "rule image link unlink | cut copy paste pastetext | print source",
-            colors:       // colors in the color popup
-                          "FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF " +
-                          "CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F " +
-                          "BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C " +
-                          "999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C " +
-                          "666 900 C60 C93 990 090 399 33F 60C 939 " +
-                          "333 600 930 963 660 060 366 009 339 636 " +
-                          "000 300 630 633 330 030 033 006 309 303",
-            fonts:        // font names in the font popup
-                          "Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond," +
-                          "Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",
-            sizes:        // sizes in the font size popup
-                          "1,2,3,4,5,6,7",
-            styles:       // styles in the style popup
-                          [["Paragraph", "<p>"], ["Header 1", "<h1>"], ["Header 2", "<h2>"],
-                          ["Header 3", "<h3>"], ["Header 4", "<h4>"], ["Header 5", "<h5>"],
-                          ["Header 6", "<h6>"]],
-            useCSS: true, // use CSS to style HTML when possible (not supported in ie)
-            docType:      // Document type contained within the editor
-                          '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
-            docCSSFile:   // CSS file used to style the document contained within the editor
-                          "",
-            bodyStyle:    // style to assign to document body contained within the editor
-                          "margin:4px; font:10pt Arial,Verdana; cursor:text"
-        },
-
-        // Define all usable toolbar buttons - the init string property is 
-        //   expanded during initialization back into the buttons object and 
-        //   separate object properties are created for each button.
-        //   e.g. buttons.size.title = "Font Size"
-        buttons: {
-            // name,title,command,popupName (""=use name)
-            init:
-            "bold,,|" +
-            "italic,,|" +
-            "underline,,|" +
-            "strikethrough,,|" +
-            "subscript,,|" +
-            "superscript,,|" +
-            "font,,fontname,|" +
-            "size,Font Size,fontsize,|" +
-            "style,,formatblock,|" +
-            "color,Font Color,forecolor,|" +
-            "highlight,Text Highlight Color,hilitecolor,color|" +
-            "removeformat,Remove Formatting,|" +
-            "bullets,,insertunorderedlist|" +
-            "numbering,,insertorderedlist|" +
-            "outdent,,|" +
-            "indent,,|" +
-            "alignleft,Align Text Left,justifyleft|" +
-            "center,,justifycenter|" +
-            "alignright,Align Text Right,justifyright|" +
-            "justify,,justifyfull|" +
-            "undo,,|" +
-            "redo,,|" +
-            "rule,Insert Horizontal Rule,inserthorizontalrule|" +
-            "image,Insert Image,insertimage,url|" +
-            "link,Insert Hyperlink,createlink,url|" +
-            "unlink,Remove Hyperlink,|" +
-            "cut,,|" +
-            "copy,,|" +
-            "paste,,|" +
-            "pastetext,Paste as Text,inserthtml,|" +
-            "print,,|" +
-            "source,Show Source"
-        },
-
-        // imagesPath - returns the path to the images folder
-        imagesPath: function () { return imagesPath(); }
-
-    };
-
-    // cleditor - creates a new editor for each of the matched textareas
-    $.fn.cleditor = function (options) {
-
-        // Create a new jQuery object to hold the results
-        var $result = $([]);
-
-        // Loop through all matching textareas and create the editors
-        this.each(function (idx, elem) {
-            if (elem.tagName.toUpperCase() === "TEXTAREA") {
-                var data = $.data(elem, CLEDITOR);
-                if (!data) data = new cleditor(elem, options);
-                $result = $result.add(data);
-            }
-        });
-
-        // return the new jQuery object
-        return $result;
-
-    };
-
-    //==================
-    // Private Variables
-    //==================
-
-    var
-
-    // Misc constants
-    BACKGROUND_COLOR = "backgroundColor",
-    BLURRED = "blurred",
-    BUTTON = "button",
-    BUTTON_NAME = "buttonName",
-    CHANGE = "change",
-    CLEDITOR = "cleditor",
-    CLICK = "click",
-    DISABLED = "disabled",
-    DIV_TAG = "<div>",
-    FOCUSED = "focused",
-    TRANSPARENT = "transparent",
-    UNSELECTABLE = "unselectable",
-
-    // Class name constants
-    MAIN_CLASS = "cleditorMain",    // main containing div
-    TOOLBAR_CLASS = "cleditorToolbar", // toolbar div inside main div
-    GROUP_CLASS = "cleditorGroup",   // group divs inside the toolbar div
-    BUTTON_CLASS = "cleditorButton",  // button divs inside group div
-    DISABLED_CLASS = "cleditorDisabled",// disabled button divs
-    DIVIDER_CLASS = "cleditorDivider", // divider divs inside group div
-    POPUP_CLASS = "cleditorPopup",   // popup divs inside body
-    LIST_CLASS = "cleditorList",    // list popup divs inside body
-    COLOR_CLASS = "cleditorColor",   // color popup div inside body
-    PROMPT_CLASS = "cleditorPrompt",  // prompt popup divs inside body
-    MSG_CLASS = "cleditorMsg",     // message popup div inside body
-
-    // Browser detection
-    ua = navigator.userAgent.toLowerCase(),
-    ie = /msie/.test(ua),
-    ie6 = /msie\s6/.test(ua),
-    iege11 = /(trident)(?:.*rv:([\w.]+))?/.test(ua),
-    webkit = /webkit/.test(ua),
-
-    // Test for iPhone/iTouch/iPad
-    iOS = /iPhone|iPad|iPod/i.test(ua),
-
-    // Popups are created once as needed and shared by all editor instances
-    popups = {},
-
-    // Used to prevent the document click event from being bound more than once
-    documentClickAssigned,
-
-    // Local copy of the buttons object
-    buttons = $.cleditor.buttons;
-
-    //===============
-    // Initialization
-    //===============
-
-    // Expand the buttons.init string back into the buttons object
-    //   and create seperate object properties for each button.
-    //   e.g. buttons.size.title = "Font Size"
-    $.each(buttons.init.split("|"), function (idx, button) {
-        var items = button.split(","), name = items[0];
-        buttons[name] = {
-            stripIndex: idx,
-            name: name,
-            title: items[1] === "" ? name.charAt(0).toUpperCase() + name.substr(1) : items[1],
-            command: items[2] === "" ? name : items[2],
-            popupName: items[3] === "" ? name : items[3]
-        };
-    });
-    delete buttons.init;
-
-    //============
-    // Constructor
-    //============
-
-    // cleditor - creates a new editor for the passed in textarea element
-    cleditor = function (area, options) {
-
-        var editor = this;
-
-        // Get the defaults and override with options
-        editor.options = options = $.extend({}, $.cleditor.defaultOptions, options);
-
-        // Hide the textarea and associate it with this editor
-        var $area = editor.$area = $(area)
-            .css({ border: "none", margin: 0, padding: 0 }) // Needed for IE6 & 7 (won't work in CSS file)
-            .hide()
-            .data(CLEDITOR, editor)
-            .blur(function () {
-                // Update the iframe when the textarea loses focus
-                updateFrame(editor, true);
-            });
-
-        // Create the main container
-        var $main = editor.$main = $(DIV_TAG)
-            .addClass(MAIN_CLASS)
-            .width(options.width)
-            .height(options.height);
-
-        // Create the toolbar
-        var $toolbar = editor.$toolbar = $(DIV_TAG)
-            .addClass(TOOLBAR_CLASS)
-            .appendTo($main);
-
-        // Add the first group to the toolbar
-        var $group = $(DIV_TAG)
-            .addClass(GROUP_CLASS)
-            .appendTo($toolbar);
-
-        // Initialize the group width
-        var groupWidth = 0;
-
-        // Add the buttons to the toolbar
-        $.each(options.controls.split(" "), function (idx, buttonName) {
-            if (buttonName === "") return true;
-
-            // Divider
-            if (buttonName === "|") {
-
-                // Add a new divider to the group
-                var $div = $(DIV_TAG)
-                    .addClass(DIVIDER_CLASS)
-                    .appendTo($group);
-
-                // Update the group width
-                $group.width(groupWidth + 1);
-                groupWidth = 0;
-
-                // Create a new group
-                $group = $(DIV_TAG)
-                    .addClass(GROUP_CLASS)
-                    .appendTo($toolbar);
-
-            }
-
-            // Button
-            else {
-
-                // Get the button definition
-                var button = buttons[buttonName];
-
-                // Add a new button to the group
-                var $buttonDiv = $(DIV_TAG)
-                    .data(BUTTON_NAME, button.name)
-                    .addClass(BUTTON_CLASS)
-                    .attr("title", button.title)
-                    .bind(CLICK, $.proxy(buttonClick, editor))
-                    .appendTo($group)
-                    .hover(hoverEnter, hoverLeave);
-
-                // Update the group width
-                groupWidth += 24;
-                $group.width(groupWidth + 1);
-
-                // Prepare the button image
-                var map = {};
-                if (button.css) map = button.css;
-                else if (button.image) map.backgroundImage = imageUrl(button.image);
-                if (button.stripIndex) map.backgroundPosition = button.stripIndex * -24;
-                $buttonDiv.css(map);
-
-                // Add the unselectable attribute for ie
-                if (ie)
-                    $buttonDiv.attr(UNSELECTABLE, "on");
-
-                // Create the popup
-                if (button.popupName)
-                    createPopup(button.popupName, options, button.popupClass,
-                      button.popupContent, button.popupHover);
-
-            }
-
-        });
-
-        // Add the main div to the DOM and append the textarea
-        $main.insertBefore($area)
-            .append($area);
-
-        // Bind the document click event handler
-        if (!documentClickAssigned) {
-            $(document).click(function (e) {
-                // Dismiss all non-prompt popups
-                var $target = $(e.target);
-                if (!$target.add($target.parents()).is("." + PROMPT_CLASS))
-                    hidePopups();
-            });
-            documentClickAssigned = true;
-        }
-
-        // Bind the window resize event when the width or height is auto or %
-        if (/auto|%/.test("" + options.width + options.height))
-            $(window).bind("resize.cleditor", function () { refresh(editor); });
-
-        // Create the iframe and resize the controls
-        refresh(editor);
-
-    };
-
-    //===============
-    // Public Methods
-    //===============
-
-    var fn = cleditor.prototype,
-
-    // Expose the following private functions as methods on the cleditor object.
-    // The closure compiler will rename the private functions. However, the
-    // exposed method names on the cleditor object will remain fixed.
-    methods = [
-        ["clear", clear],
-        ["disable", disable],
-        ["execCommand", execCommand],
-        ["focus", focus],
-        ["hidePopups", hidePopups],
-        ["sourceMode", sourceMode, true],
-        ["refresh", refresh],
-        ["select", select],
-        ["selectedHTML", selectedHTML, true],
-        ["selectedText", selectedText, true],
-        ["showMessage", showMessage],
-        ["updateFrame", updateFrame],
-        ["updateTextArea", updateTextArea]
-    ];
-
-    $.each(methods, function (idx, method) {
-        fn[method[0]] = function () {
-            var editor = this, args = [editor];
-            // using each here would cast booleans into objects!
-            for (var x = 0; x < arguments.length; x++) { args.push(arguments[x]); }
-            var result = method[1].apply(editor, args);
-            if (method[2]) return result;
-            return editor;
-        };
-    });
-
-    // blurred - shortcut for .bind("blurred", handler) or .trigger("blurred")
-    fn.blurred = function (handler) {
-        var $this = $(this);
-        return handler ? $this.bind(BLURRED, handler) : $this.trigger(BLURRED);
-    };
-
-    // change - shortcut for .bind("change", handler) or .trigger("change")
-    fn.change = function change(handler) {
-        var $this = $(this);
-        return handler ? $this.bind(CHANGE, handler) : $this.trigger(CHANGE);
-    };
-
-    // focused - shortcut for .bind("focused", handler) or .trigger("focused")
-    fn.focused = function (handler) {
-        var $this = $(this);
-        return handler ? $this.bind(FOCUSED, handler) : $this.trigger(FOCUSED);
-    };
-
-    //===============
-    // Event Handlers
-    //===============
-
-    // buttonClick - click event handler for toolbar buttons
-    function buttonClick(e) {
-
-        var editor = this,
-            buttonDiv = e.target,
-            buttonName = $.data(buttonDiv, BUTTON_NAME),
-            button = buttons[buttonName],
-            popupName = button.popupName,
-            popup = popups[popupName];
-
-        // Check if disabled
-        if (editor.disabled || $(buttonDiv).attr(DISABLED) === DISABLED)
-            return;
-
-        // Fire the buttonClick event
-        var data = {
-            editor: editor,
-            button: buttonDiv,
-            buttonName: buttonName,
-            popup: popup,
-            popupName: popupName,
-            command: button.command,
-            useCSS: editor.options.useCSS
-        };
-
-        if (button.buttonClick && button.buttonClick(e, data) === false)
-            return false;
-
-        // Toggle source
-        if (buttonName === "source") {
-            
-            // Show the iframe
-            if (sourceMode(editor)) {
-                delete editor.range;
-                editor.$area.hide();
-                editor.$frame.show();
-                buttonDiv.title = button.title;
-            }
-
-            // Show the textarea
-            else {
-                editor.$frame.hide();
-                editor.$area.show();
-                buttonDiv.title = "Show Rich Text";
-            }
-
-        }
-
-        // Check for rich text mode
-        else if (!sourceMode(editor)) {
-
-            // Handle popups
-            if (popupName) {
-                var $popup = $(popup);
-
-                // URL
-                if (popupName === "url") {
-
-                    // Check for selection before showing the link url popup
-                    if (buttonName === "link" && selectedText(editor) === "") {
-                        showMessage(editor, "A selection is required when inserting a link.", buttonDiv);
-                        return false;
-                    }
-
-                    // Wire up the submit button click event handler
-                    $popup.children(":button")
-                        .unbind(CLICK)
-                        .bind(CLICK, function () {
-
-                            // Insert the image or link if a url was entered
-                            var $text = $popup.find(":text"),
-                                url = $.trim($text.val());
-                            if (url !== "")
-                                execCommand(editor, data.command, url, null, data.button);
-
-                            // Reset the text, hide the popup and set focus
-                            $text.val("http://");
-                            hidePopups();
-                            focus(editor);
-
-                        });
-
-                }
-
-                // Paste as Text
-                else if (popupName === "pastetext") {
-
-                    // Wire up the submit button click event handler
-                    $popup.children(":button")
-                        .unbind(CLICK)
-                        .bind(CLICK, function () {
-
-                            // Insert the unformatted text replacing new lines with break tags
-                            var $textarea = $popup.find("textarea"),
-                                text = $textarea.val().replace(/\n/g, "<br />");
-                            if (text !== "")
-                                execCommand(editor, data.command, text, null, data.button);
-
-                            // Reset the text, hide the popup and set focus
-                            $textarea.val("");
-                            hidePopups();
-                            focus(editor);
-
-                        });
-
-                }
-
-                // Show the popup if not already showing for this button
-                if (buttonDiv !== $.data(popup, BUTTON)) {
-                    showPopup(editor, popup, buttonDiv);
-                    return false; // stop propagination to document click
-                }
-
-                // propaginate to document click
-                return;
-
-            }
-
-            // Print
-            else if (buttonName === "print")
-                editor.$frame[0].contentWindow.print();
-
-            // All other buttons
-            else if (!execCommand(editor, data.command, data.value, data.useCSS, buttonDiv))
-                return false;
-
-        }
-
-        // Focus the editor
-        focus(editor);
-
-    }
-
-    // hoverEnter - mouseenter event handler for buttons and popup items
-    function hoverEnter(e) {
-        var $div = $(e.target).closest("div");
-        $div.css(BACKGROUND_COLOR, $div.data(BUTTON_NAME) ? "#FFF" : "#FFC");
-    }
-
-    // hoverLeave - mouseleave event handler for buttons and popup items
-    function hoverLeave(e) {
-        $(e.target).closest("div").css(BACKGROUND_COLOR, "transparent");
-    }
-
-    // popupClick - click event handler for popup items
-    function popupClick(e) {
-
-        var editor = this,
-            popup = e.data.popup,
-            target = e.target;
-
-        // Check for message and prompt popups
-        if (popup === popups.msg || $(popup).hasClass(PROMPT_CLASS))
-            return;
-
-        // Get the button info
-        var buttonDiv = $.data(popup, BUTTON),
-            buttonName = $.data(buttonDiv, BUTTON_NAME),
-            button = buttons[buttonName],
-            command = button.command,
-            value,
-            useCSS = editor.options.useCSS;
-
-        // Get the command value
-        if (buttonName === "font")
-            // Opera returns the fontfamily wrapped in quotes
-            value = target.style.fontFamily.replace(/"/g, "");
-        else if (buttonName === "size") {
-            if (target.tagName.toUpperCase() === "DIV")
-                target = target.children[0];
-            value = target.innerHTML;
-        }
-        else if (buttonName === "style")
-            value = "<" + target.tagName + ">";
-        else if (buttonName === "color")
-            value = hex(target.style.backgroundColor);
-        else if (buttonName === "highlight") {
-            value = hex(target.style.backgroundColor);
-            if (ie) command = 'backcolor';
-            else useCSS = true;
-        }
-
-        // Fire the popupClick event
-        var data = {
-            editor: editor,
-            button: buttonDiv,
-            buttonName: buttonName,
-            popup: popup,
-            popupName: button.popupName,
-            command: command,
-            value: value,
-            useCSS: useCSS
-        };
-
-        if (button.popupClick && button.popupClick(e, data) === false)
-            return;
-
-        // Execute the command
-        if (data.command && !execCommand(editor, data.command, data.value, data.useCSS, buttonDiv))
-            return false;
-
-        // Hide the popup and focus the editor
-        hidePopups();
-        focus(editor);
-
-    }
-
-    //==================
-    // Private Functions
-    //==================
-
-    // checksum - returns a checksum using the Adler-32 method
-    function checksum(text) {
-        var a = 1, b = 0;
-        for (var index = 0; index < text.length; ++index) {
-            a = (a + text.charCodeAt(index)) % 65521;
-            b = (b + a) % 65521;
-        }
-        return (b << 16) | a;
-    }
-
-    // clear - clears the contents of the editor
-    function clear(editor) {
-        editor.$area.val("");
-        updateFrame(editor);
-    }
-
-    // createPopup - creates a popup and adds it to the body
-    function createPopup(popupName, options, popupTypeClass, popupContent, popupHover) {
-
-        // Check if popup already exists
-        if (popups[popupName])
-            return popups[popupName];
-
-        // Create the popup
-        var $popup = $(DIV_TAG)
-            .hide()
-            .addClass(POPUP_CLASS)
-            .appendTo("body");
-
-        // Add the content
-
-        // Custom popup
-        if (popupContent)
-            $popup.html(popupContent);
-
-        // Color
-        else if (popupName === "color") {
-            var colors = options.colors.split(" ");
-            if (colors.length < 10)
-                $popup.width("auto");
-            $.each(colors, function (idx, color) {
-                $(DIV_TAG).appendTo($popup)
-                    .css(BACKGROUND_COLOR, "#" + color);
-            });
-            popupTypeClass = COLOR_CLASS;
-        }
-
-        // Font
-        else if (popupName === "font")
-            $.each(options.fonts.split(","), function (idx, font) {
-                $(DIV_TAG).appendTo($popup)
-                    .css("fontFamily", font)
-                    .html(font);
-            });
-
-        // Size
-        else if (popupName === "size")
-            $.each(options.sizes.split(","), function (idx, size) {
-                $(DIV_TAG).appendTo($popup)
-                    .html('<font size="' + size + '">' + size + '</font>');
-            });
-
-        // Style
-        else if (popupName === "style")
-            $.each(options.styles, function (idx, style) {
-                $(DIV_TAG).appendTo($popup)
-                    .html(style[1] + style[0] + style[1].replace("<", "</"));
-            });
-
-        // URL
-        else if (popupName === "url") {
-            $popup.html('<label>Enter URL:<br /><input type="text" value="http://" style="width:200px" /></label><br /><input type="button" value="Submit" />');
-            popupTypeClass = PROMPT_CLASS;
-        }
-
-        // Paste as Text
-        else if (popupName === "pastetext") {
-            $popup.html('<label>Paste your content here:<br /><textarea rows="3" style="width:200px"></textarea></label><br /><input type="button" value="Submit" />');
-            popupTypeClass = PROMPT_CLASS;
-        }
-
-        // Add the popup type class name
-        if (!popupTypeClass && !popupContent)
-            popupTypeClass = LIST_CLASS;
-        $popup.addClass(popupTypeClass);
-
-        // Add the unselectable attribute to all items
-        if (ie) {
-            $popup.attr(UNSELECTABLE, "on")
-                .find("div,font,p,h1,h2,h3,h4,h5,h6")
-                .attr(UNSELECTABLE, "on");
-        }
-
-        // Add the hover effect to all items
-        if ($popup.hasClass(LIST_CLASS) || popupHover === true)
-            $popup.children().hover(hoverEnter, hoverLeave);
-
-        // Add the popup to the array and return it
-        popups[popupName] = $popup[0];
-        return $popup[0];
-
-    }
-
-    // disable - enables or disables the editor
-    function disable(editor, disabled) {
-
-        // Update the textarea and save the state
-        if (disabled) {
-            editor.$area.attr(DISABLED, DISABLED);
-            editor.disabled = true;
-        }
-        else {
-            editor.$area.removeAttr(DISABLED);
-            delete editor.disabled;
-        }
-
-        // Switch the iframe into design mode.
-        // ie6 does not support designMode.
-        // ie7 & ie8 do not properly support designMode="off".
-        try {
-            if (ie) editor.doc.body.contentEditable = !disabled;
-            else editor.doc.designMode = !disabled ? "on" : "off";
-        }
-        // Firefox 1.5 throws an exception that can be ignored
-        // when toggling designMode from off to on.
-        catch (err) { }
-
-        // Enable or disable the toolbar buttons
-        refreshButtons(editor);
-
-    }
-
-    // execCommand - executes a designMode command
-    function execCommand(editor, command, value, useCSS, button) {
-
-        // Restore the current ie selection
-        restoreRange(editor);
-
-        // Set the styling method
-        if (!ie) {
-            if (useCSS === undefined || useCSS === null)
-                useCSS = editor.options.useCSS;
-            editor.doc.execCommand("styleWithCSS", 0, useCSS.toString());
-        }
-
-        // Execute the command and check for error
-        var inserthtml = command.toLowerCase() === "inserthtml";
-        if (ie && inserthtml)
-            getRange(editor).pasteHTML(value);
-
-        else if (iege11 && inserthtml) {
-            var selection = getSelection(editor),
-                range = selection.getRangeAt(0);
-            range.deleteContents();
-            range.insertNode(range.createContextualFragment(value));
-            selection.removeAllRanges();
-            selection.addRange(range);
-        }
-        
-        else {
-            var success = true, message;
-            try { success = editor.doc.execCommand(command, 0, value || null); }
-            catch (err) { message = err.message; success = false; }
-            if (!success) {
-                if ("cutcopypaste".indexOf(command) > -1)
-                    showMessage(editor, "For security reasons, your browser does not support the " +
-                        command + " command. Try using the keyboard shortcut or context menu instead.",
-                        button);
-                else
-                    showMessage(editor,
-                        (message ? message : "Error executing the " + command + " command."),
-                        button);
-            }
-        }
-
-        // Enable the buttons and update the textarea
-        refreshButtons(editor);
-        updateTextArea(editor, true);
-        return success;
-
-    }
-
-    // focus - sets focus to either the textarea or iframe
-    function focus(editor) {
-        setTimeout(function () {
-            if (sourceMode(editor)) editor.$area.focus();
-            else editor.$frame[0].contentWindow.focus();
-            refreshButtons(editor);
-        }, 0);
-    }
-
-    // getRange - gets the current text range object
-    function getRange(editor) {
-        if (ie) return getSelection(editor).createRange();
-        return getSelection(editor).getRangeAt(0);
-    }
-
-    // getSelection - gets the current text range object
-    function getSelection(editor) {
-        if (ie) return editor.doc.selection;
-        return editor.$frame[0].contentWindow.getSelection();
-    }
-
-    // hex - returns the hex value for the passed in color string
-    function hex(s) {
-
-        // hex("rgb(255, 0, 0)") returns #FF0000
-        var m = /rgba?\((\d+), (\d+), (\d+)/.exec(s);
-        if (m) {
-            s = (m[1] << 16 | m[2] << 8 | m[3]).toString(16);
-            while (s.length < 6)
-                s = "0" + s;
-            return "#" + s;
-        }
-
-        // hex("#F00") returns #FF0000
-        var c = s.split("");
-        if (s.length === 4)
-            return "#" + c[1] + c[1] + c[2] + c[2] + c[3] + c[3];
-
-        // hex("#FF0000") returns #FF0000
-        return s;
-
-    }
-
-    // hidePopups - hides all popups
-    function hidePopups() {
-        $.each(popups, function (idx, popup) {
-            $(popup)
-                .hide()
-                .unbind(CLICK)
-                .removeData(BUTTON);
-        });
-    }
-
-    // imagesPath - returns the path to the images folder
-    function imagesPath() {
-        var href = $("link[href*=cleditor]").attr("href");
-        return href.replace(/^(.*\/)[^\/]+$/, '$1') + "images/";
-    }
-
-    // imageUrl - Returns the css url string for a filemane
-    function imageUrl(filename) {
-        return "url(" + imagesPath() + filename + ")";
-    }
-
-    // refresh - creates the iframe and resizes the controls
-    function refresh(editor) {
-
-        var $main = editor.$main,
-            options = editor.options;
-
-        // Remove the old iframe
-        if (editor.$frame)
-            editor.$frame.remove();
-
-        // Create a new iframe
-        var $frame = editor.$frame = $('<iframe frameborder="0" src="javascript:true;" />')
-            .hide()
-            .appendTo($main);
-
-        // Load the iframe document content
-        var contentWindow = $frame[0].contentWindow,
-          doc = editor.doc = contentWindow.document,
-          $doc = $(doc);
-
-        doc.open();
-        doc.write(
-            options.docType +
-            '<html>' +
-            ((options.docCSSFile === '') ? '' : '<head><link rel="stylesheet" type="text/css" href="' + options.docCSSFile + '" /></head>') +
-            '<body style="' + options.bodyStyle + '"></body></html>'
-        );
-        doc.close();
-
-        // Work around for bug in IE which causes the editor to lose
-        // focus when clicking below the end of the document.
-        if (ie || iege11)
-            $doc.click(function () { focus(editor); });
-
-        // Load the content
-        updateFrame(editor);
-
-        // Bind the ie specific iframe event handlers
-        if (ie || iege11) {
-
-            // Save the current user selection. This code is needed since IE will
-            // reset the selection just after the beforedeactivate event and just
-            // before the beforeactivate event.
-            $doc.bind("beforedeactivate beforeactivate selectionchange keypress keyup", function (e) {
-
-                // Flag the editor as inactive
-                if (e.type === "beforedeactivate")
-                    editor.inactive = true;
-
-                // Get rid of the bogus selection and flag the editor as active
-                else if (e.type === "beforeactivate") {
-                    if (!editor.inactive && editor.range && editor.range.length > 1)
-                        editor.range.shift();
-                    delete editor.inactive;
-                }
-
-                // Save the selection when the editor is active
-                else if (!editor.inactive) {
-                    if (!editor.range)
-                        editor.range = [];
-                    editor.range.unshift(getRange(editor));
-
-                    // We only need the last 2 selections
-                    while (editor.range.length > 2)
-                        editor.range.pop();
-                }
-
-            });
-
-            // Restore the text range and trigger focused event when the iframe gains focus
-            $frame.focus(function () {
-                restoreRange(editor);
-                $(editor).triggerHandler(FOCUSED);
-            });
-
-            // Trigger blurred event when the iframe looses focus
-            $frame.blur(function () {
-                $(editor).triggerHandler(BLURRED);
-            });
-
-        }
-
-        // Trigger focused and blurred events for all other browsers
-        else {
-            $($frame[0].contentWindow)
-                .focus(function () { $(editor).triggerHandler(FOCUSED); })
-                .blur(function () { $(editor).triggerHandler(BLURRED); });
-        }
-
-        // Enable the toolbar buttons and update the textarea as the user types or clicks
-        $doc.click(hidePopups)
-            .keydown(function (e) {
-                // Prevent Internet Explorer from going to prior page when an image 
-                // is selected and the backspace key is pressed.
-                if (ie && getSelection(editor).type == "Control" && e.keyCode == 8) {
-                    getSelection(editor).clear();
-                    e.preventDefault();
-                }
-            })
-            .bind("keyup mouseup", function () {
-                refreshButtons(editor);
-                updateTextArea(editor, true);
-            });
-
-        // Show the textarea for iPhone/iTouch/iPad or
-        // the iframe when design mode is supported.
-        if (iOS) editor.$area.show();
-        else $frame.show();
-
-        // Wait for the layout to finish - shortcut for $(document).ready()
-        $(function () {
-
-            var $toolbar = editor.$toolbar,
-                $group = $toolbar.children("div:last"),
-                wid = $main.width();
-
-            // Resize the toolbar
-            var hgt = $group.offset().top + $group.outerHeight() - $toolbar.offset().top + 1;
-            $toolbar.height(hgt);
-
-            // Resize the iframe
-            hgt = (/%/.test("" + options.height) ? $main.height() : parseInt(options.height, 10)) - hgt;
-            $frame.width(wid).height(hgt);
-
-            // Resize the textarea. IE6 textareas have a 1px top
-            // & bottom margin that cannot be removed using css.
-            editor.$area.width(wid).height(ie6 ? hgt - 2 : hgt);
-
-            // Switch the iframe into design mode if enabled
-            disable(editor, editor.disabled);
-
-            // Enable or disable the toolbar buttons
-            refreshButtons(editor);
-
-        });
-
-    }
-
-    // refreshButtons - enables or disables buttons based on availability
-    function refreshButtons(editor) {
-
-        // Webkit requires focus before queryCommandEnabled will return anything but false
-        if (!iOS && webkit && !editor.focused) {
-            editor.$frame[0].contentWindow.focus();
-            window.focus();
-            editor.focused = true;
-        }
-
-        // Get the object used for checking queryCommandEnabled
-        var queryObj = editor.doc;
-        if (ie) queryObj = getRange(editor);
-
-        // Loop through each button
-        var inSourceMode = sourceMode(editor);
-        $.each(editor.$toolbar.find("." + BUTTON_CLASS), function (idx, elem) {
-
-            var $elem = $(elem),
-                button = $.cleditor.buttons[$.data(elem, BUTTON_NAME)],
-                command = button.command,
-                enabled = true;
-
-            // Determine the state
-            if (editor.disabled)
-                enabled = false;
-            else if (button.getEnabled) {
-                var data = {
-                    editor: editor,
-                    button: elem,
-                    buttonName: button.name,
-                    popup: popups[button.popupName],
-                    popupName: button.popupName,
-                    command: button.command,
-                    useCSS: editor.options.useCSS
-                };
-                enabled = button.getEnabled(data);
-                if (enabled === undefined)
-                    enabled = true;
-            }
-            else if (((inSourceMode || iOS) && button.name !== "source") ||
-            (ie && (command === "undo" || command === "redo")))
-                enabled = false;
-            else if (command && command !== "print") {
-                if (ie && command === "hilitecolor")
-                    command = "backcolor";
-                // IE does not support inserthtml, so it's always enabled
-                if ((!ie && !iege11)  || command !== "inserthtml") {
-                    try { enabled = queryObj.queryCommandEnabled(command); }
-                    catch (err) { enabled = false; }
-                }
-            }
-
-            // Enable or disable the button
-            if (enabled) {
-                $elem.removeClass(DISABLED_CLASS);
-                $elem.removeAttr(DISABLED);
-            }
-            else {
-                $elem.addClass(DISABLED_CLASS);
-                $elem.attr(DISABLED, DISABLED);
-            }
-
-        });
-    }
-
-    // restoreRange - restores the current ie selection
-    function restoreRange(editor) {
-        if (editor.range) {
-            if (ie)
-                editor.range[0].select();
-            else if (iege11)
-                getSelection(editor).addRange(editor.range[0]);
-        }
-    }
-
-    // select - selects all the text in either the textarea or iframe
-    function select(editor) {
-        setTimeout(function () {
-            if (sourceMode(editor)) editor.$area.select();
-            else execCommand(editor, "selectall");
-        }, 0);
-    }
-
-    // selectedHTML - returns the current HTML selection or and empty string
-    function selectedHTML(editor) {
-        restoreRange(editor);
-        var range = getRange(editor);
-        if (ie)
-            return range.htmlText;
-        var layer = $("<layer>")[0];
-        layer.appendChild(range.cloneContents());
-        var html = layer.innerHTML;
-        layer = null;
-        return html;
-    }
-
-    // selectedText - returns the current text selection or and empty string
-    function selectedText(editor) {
-        restoreRange(editor);
-        if (ie) return getRange(editor).text;
-        return getSelection(editor).toString();
-    }
-
-    // showMessage - alert replacement
-    function showMessage(editor, message, button) {
-        var popup = createPopup("msg", editor.options, MSG_CLASS);
-        popup.innerHTML = message;
-        showPopup(editor, popup, button);
-    }
-
-    // showPopup - shows a popup
-    function showPopup(editor, popup, button) {
-
-        var offset, left, top, $popup = $(popup);
-
-        // Determine the popup location
-        if (button) {
-            var $button = $(button);
-            offset = $button.offset();
-            left = --offset.left;
-            top = offset.top + $button.height();
-        }
-        else {
-            var $toolbar = editor.$toolbar;
-            offset = $toolbar.offset();
-            left = Math.floor(($toolbar.width() - $popup.width()) / 2) + offset.left;
-            top = offset.top + $toolbar.height() - 2;
-        }
-
-        // Position and show the popup
-        hidePopups();
-        $popup.css({ left: left, top: top })
-            .show();
-
-        // Assign the popup button and click event handler
-        if (button) {
-            $.data(popup, BUTTON, button);
-            $popup.bind(CLICK, { popup: popup }, $.proxy(popupClick, editor));
-        }
-
-        // Focus the first input element if any
-        setTimeout(function () {
-            $popup.find(":text,textarea").eq(0).focus().select();
-        }, 100);
-
-    }
-
-    // sourceMode - returns true if the textarea is showing
-    function sourceMode(editor) {
-        return editor.$area.is(":visible");
-    }
-
-    // updateFrame - updates the iframe with the textarea contents
-    function updateFrame(editor, checkForChange) {
-
-        var code = editor.$area.val(),
-            options = editor.options,
-            updateFrameCallback = options.updateFrame,
-            $body = $(editor.doc.body);
-
-        // Check for textarea change to avoid unnecessary firing
-        // of potentially heavy updateFrame callbacks.
-        if (updateFrameCallback) {
-            var sum = checksum(code);
-            if (checkForChange && editor.areaChecksum === sum)
-                return;
-            editor.areaChecksum = sum;
-        }
-
-        // Convert the textarea source code into iframe html
-        var html = updateFrameCallback ? updateFrameCallback(code) : code;
-
-        // Prevent script injection attacks by html encoding script tags
-        html = html.replace(/<(?=\/?script)/ig, "&lt;");
-
-        // Update the iframe checksum
-        if (options.updateTextArea)
-            editor.frameChecksum = checksum(html);
-
-        // Update the iframe and trigger the change event
-        if (html !== $body.html()) {
-            $body.html(html);
-            $(editor).triggerHandler(CHANGE);
-        }
-
-    }
-
-    // updateTextArea - updates the textarea with the iframe contents
-    function updateTextArea(editor, checkForChange) {
-
-        var html = $(editor.doc.body).html(),
-            options = editor.options,
-            updateTextAreaCallback = options.updateTextArea,
-            $area = editor.$area;
-
-        // Check for iframe change to avoid unnecessary firing
-        // of potentially heavy updateTextArea callbacks.
-        if (updateTextAreaCallback) {
-            var sum = checksum(html);
-            if (checkForChange && editor.frameChecksum === sum)
-                return;
-            editor.frameChecksum = sum;
-        }
-
-        // Convert the iframe html into textarea source code
-        var code = updateTextAreaCallback ? updateTextAreaCallback(html) : html;
-
-        // Update the textarea checksum
-        if (options.updateFrame)
-            editor.areaChecksum = checksum(code);
-
-        // Update the textarea and trigger the change event
-        if (code !== $area.val()) {
-            $area.val(code);
-            $(editor).triggerHandler(CHANGE);
-        }
-
-    }
-
-})(jQuery);
diff --git a/milfs/js/jquery.cleditor.min.js b/milfs/js/jquery.cleditor.min.js
deleted file mode 100644
index 64fb2df..0000000
--- a/milfs/js/jquery.cleditor.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
- CLEditor WYSIWYG HTML Editor v1.4.5
- http://premiumsoftware.net/CLEditor
- requires jQuery v1.4.2 or later
- Copyright 2010, Chris Landowski, Premium Software, LLC
- Dual licensed under the MIT or GPL Version 2 licenses.
-*/
-(function(n){function vi(t){var i=this,e=t.target,y=n.data(e,a),p=s[y],w=p.popupName,k=f[w],v,b;if(!i.disabled&&n(e).attr(r)!==r){if(v={editor:i,button:e,buttonName:y,popup:k,popupName:w,command:p.command,useCSS:i.options.useCSS},p.buttonClick&&p.buttonClick(t,v)===!1)return!1;if(y==="source")l(i)?(delete i.range,i.$area.hide(),i.$frame.show(),e.title=p.title):(i.$frame.hide(),i.$area.show(),e.title="Show Rich Text");else if(!l(i)){if(w){if(b=n(k),w==="url"){if(y==="link"&&ri(i)==="")return ut(i,"A selection is required when inserting a link.",e),!1;b.children(":button").unbind(u).bind(u,function(){var t=b.find(":text"),r=n.trim(t.val());r!==""&&h(i,v.command,r,null,v.button);t.val("http://");o();c(i)})}else w==="pastetext"&&b.children(":button").unbind(u).bind(u,function(){var n=b.find("textarea"),t=n.val().replace(/\n/g,"<br />");t!==""&&h(i,v.command,t,null,v.button);n.val("");o();c(i)});return e!==n.data(k,d)?(ui(i,k,e),!1):void 0}if(y==="print")i.$frame[0].contentWindow.print();else if(!h(i,v.command,v.value,v.useCSS,e))return!1}c(i)}}function kt(t){var i=n(t.target).closest("div");i.css(et,i.data(a)?"#FFF":"#FFC")}function dt(t){n(t.target).closest("div").css(et,"transparent")}function yi(i){var v=this,y=i.data.popup,r=i.target,l;if(y!==f.msg&&!n(y).hasClass(tt)){var w=n.data(y,d),u=n.data(w,a),p=s[u],b=p.command,e,k=v.options.useCSS;if(u==="font"?e=r.style.fontFamily.replace(/"/g,""):u==="size"?(r.tagName.toUpperCase()==="DIV"&&(r=r.children[0]),e=r.innerHTML):u==="style"?e="<"+r.tagName+">":u==="color"?e=ti(r.style.backgroundColor):u==="highlight"&&(e=ti(r.style.backgroundColor),t?b="backcolor":k=!0),l={editor:v,button:w,buttonName:u,popup:y,popupName:p.popupName,command:b,value:e,useCSS:k},!p.popupClick||p.popupClick(i,l)!==!1){if(l.command&&!h(v,l.command,l.value,l.useCSS,w))return!1;o();c(v)}}}function it(n){for(var t=1,i=0,r=0;r<n.length;++r)t=(t+n.charCodeAt(r))%65521,i=(i+t)%65521;return i<<16|t}function pi(n){n.$area.val("");ft(n)}function gt(r,u,e,o,s){var h,c;return f[r]?f[r]:(h=n(i).hide().addClass(si).appendTo("body"),o?h.html(o):r==="color"?(c=u.colors.split(" "),c.length<10&&h.width("auto"),n.each(c,function(t,r){n(i).appendTo(h).css(et,"#"+r)}),e=hi):r==="font"?n.each(u.fonts.split(","),function(t,r){n(i).appendTo(h).css("fontFamily",r).html(r)}):r==="size"?n.each(u.sizes.split(","),function(t,r){n(i).appendTo(h).html('<font size="'+r+'">'+r+"<\/font>")}):r==="style"?n.each(u.styles,function(t,r){n(i).appendTo(h).html(r[1]+r[0]+r[1].replace("<","<\/"))}):r==="url"?(h.html('<label>Enter URL:<br /><input type="text" value="http://" style="width:200px" /><\/label><br /><input type="button" value="Submit" />'),e=tt):r==="pastetext"&&(h.html('<label>Paste your content here:<br /><textarea rows="3" style="width:200px"><\/textarea><\/label><br /><input type="button" value="Submit" />'),e=tt),e||o||(e=pt),h.addClass(e),t&&h.attr(ot,"on").find("div,font,p,h1,h2,h3,h4,h5,h6").attr(ot,"on"),(h.hasClass(pt)||s===!0)&&h.children().hover(kt,dt),f[r]=h[0],h[0])}function ni(n,i){i?(n.$area.attr(r,r),n.disabled=!0):(n.$area.removeAttr(r),delete n.disabled);try{t?n.doc.body.contentEditable=!i:n.doc.designMode=i?"off":"on"}catch(u){}b(n)}function h(n,i,r,u,f){var c,h,o,s,l;if(rt(n),t||((u===undefined||u===null)&&(u=n.options.useCSS),n.doc.execCommand("styleWithCSS",0,u.toString())),c=i.toLowerCase()==="inserthtml",t&&c)w(n).pasteHTML(r);else if(y&&c)h=e(n),o=h.getRangeAt(0),o.deleteContents(),o.insertNode(o.createContextualFragment(r)),h.removeAllRanges(),h.addRange(o);else{s=!0;try{s=n.doc.execCommand(i,0,r||null)}catch(a){l=a.message;s=!1}s||("cutcopypaste".indexOf(i)>-1?ut(n,"For security reasons, your browser does not support the "+i+" command. Try using the keyboard shortcut or context menu instead.",f):ut(n,l?l:"Error executing the "+i+" command.",f))}return b(n),ct(n,!0),s}function c(n){setTimeout(function(){l(n)?n.$area.focus():n.$frame[0].contentWindow.focus();b(n)},0)}function w(n){return t?e(n).createRange():e(n).getRangeAt(0)}function e(n){return t?n.doc.selection:n.$frame[0].contentWindow.getSelection()}function ti(n){var i=/rgba?\((\d+), (\d+), (\d+)/.exec(n),t;if(i){for(n=(i[1]<<16|i[2]<<8|i[3]).toString(16);n.length<6;)n="0"+n;return"#"+n}return(t=n.split(""),n.length===4)?"#"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]:n}function o(){n.each(f,function(t,i){n(i).hide().unbind(u).removeData(d)})}function ii(){var t=n("link[href*=cleditor]").attr("href");return t.replace(/^(.*\/)[^\/]+$/,"$1")+"images/"}function wi(n){return"url("+ii()+n+")"}function ht(i){var s=i.$main,r=i.options;i.$frame&&i.$frame.remove();var u=i.$frame=n('<iframe frameborder="0" src="javascript:true;" />').hide().appendTo(s),l=u[0].contentWindow,f=i.doc=l.document,h=n(f);f.open();f.write(r.docType+"<html>"+(r.docCSSFile===""?"":'<head><link rel="stylesheet" type="text/css" href="'+r.docCSSFile+'" /><\/head>')+'<body style="'+r.bodyStyle+'"><\/body><\/html>');f.close();(t||y)&&h.click(function(){c(i)});ft(i);t||y?(h.bind("beforedeactivate beforeactivate selectionchange keypress keyup",function(n){if(n.type==="beforedeactivate")i.inactive=!0;else if(n.type==="beforeactivate")!i.inactive&&i.range&&i.range.length>1&&i.range.shift(),delete i.inactive;else if(!i.inactive)for(i.range||(i.range=[]),i.range.unshift(w(i));i.range.length>2;)i.range.pop()}),u.focus(function(){rt(i);n(i).triggerHandler(nt)}),u.blur(function(){n(i).triggerHandler(k)})):n(u[0].contentWindow).focus(function(){n(i).triggerHandler(nt)}).blur(function(){n(i).triggerHandler(k)});h.click(o).keydown(function(n){t&&e(i).type=="Control"&&n.keyCode==8&&(e(i).clear(),n.preventDefault())}).bind("keyup mouseup",function(){b(i);ct(i,!0)});st?i.$area.show():u.show();n(function(){var t=i.$toolbar,f=t.children("div:last"),e=s.width(),n=f.offset().top+f.outerHeight()-t.offset().top+1;t.height(n);n=(/%/.test(""+r.height)?s.height():parseInt(r.height,10))-n;u.width(e).height(n);i.$area.width(e).height(li?n-2:n);ni(i,i.disabled);b(i)})}function b(i){var u,e;st||!ai||i.focused||(i.$frame[0].contentWindow.focus(),window.focus(),i.focused=!0);u=i.doc;t&&(u=w(i));e=l(i);n.each(i.$toolbar.find("."+vt),function(o,s){var v=n(s),h=n.cleditor.buttons[n.data(s,a)],c=h.command,l=!0,p;if(i.disabled)l=!1;else if(h.getEnabled)p={editor:i,button:s,buttonName:h.name,popup:f[h.popupName],popupName:h.popupName,command:h.command,useCSS:i.options.useCSS},l=h.getEnabled(p),l===undefined&&(l=!0);else if((e||st)&&h.name!=="source"||t&&(c==="undo"||c==="redo"))l=!1;else if(c&&c!=="print"&&(t&&c==="hilitecolor"&&(c="backcolor"),!t&&!y||c!=="inserthtml"))try{l=u.queryCommandEnabled(c)}catch(w){l=!1}l?(v.removeClass(yt),v.removeAttr(r)):(v.addClass(yt),v.attr(r,r))})}function rt(n){n.range&&(t?n.range[0].select():y&&e(n).addRange(n.range[0]))}function bi(n){setTimeout(function(){l(n)?n.$area.select():h(n,"selectall")},0)}function ki(i){var u,r,f;return(rt(i),u=w(i),t)?u.htmlText:(r=n("<layer>")[0],r.appendChild(u.cloneContents()),f=r.innerHTML,r=null,f)}function ri(n){return(rt(n),t)?w(n).text:e(n).toString()}function ut(n,t,i){var r=gt("msg",n.options,ci);r.innerHTML=t;ui(n,r,i)}function ui(t,i,r){var f,h,c,e=n(i),l,s;r?(l=n(r),f=l.offset(),h=--f.left,c=f.top+l.height()):(s=t.$toolbar,f=s.offset(),h=Math.floor((s.width()-e.width())/2)+f.left,c=f.top+s.height()-2);o();e.css({left:h,top:c}).show();r&&(n.data(i,d,r),e.bind(u,{popup:i},n.proxy(yi,t)));setTimeout(function(){e.find(":text,textarea").eq(0).focus().select()},100)}function l(n){return n.$area.is(":visible")}function ft(t,i){var u=t.$area.val(),o=t.options,f=o.updateFrame,s=n(t.doc.body),e,r;if(f){if(e=it(u),i&&t.areaChecksum===e)return;t.areaChecksum=e}r=f?f(u):u;r=r.replace(/<(?=\/?script)/ig,"&lt;");o.updateTextArea&&(t.frameChecksum=it(r));r!==s.html()&&(s.html(r),n(t).triggerHandler(g))}function ct(t,i){var u=n(t.doc.body).html(),o=t.options,f=o.updateTextArea,s=t.$area,e,r;if(f){if(e=it(u),i&&t.frameChecksum===e)return;t.frameChecksum=e}r=f?f(u):u;o.updateFrame&&(t.areaChecksum=it(r));r!==s.val()&&(s.val(r),n(t).triggerHandler(g))}var p,bt;n.cleditor={defaultOptions:{width:"auto",height:250,controls:"bold italic underline strikethrough subscript superscript | font size style | color highlight removeformat | bullets numbering | outdent indent | alignleft center alignright justify | undo redo | rule image link unlink | cut copy paste pastetext | print source",colors:"FFF FCC FC9 FF9 FFC 9F9 9FF CFF CCF FCF CCC F66 F96 FF6 FF3 6F9 3FF 6FF 99F F9F BBB F00 F90 FC6 FF0 3F3 6CC 3CF 66C C6C 999 C00 F60 FC3 FC0 3C0 0CC 36F 63F C3C 666 900 C60 C93 990 090 399 33F 60C 939 333 600 930 963 660 060 366 009 339 636 000 300 630 633 330 030 033 006 309 303",fonts:"Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond,Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",sizes:"1,2,3,4,5,6,7",styles:[["Paragraph","<p>"],["Header 1","<h1>"],["Header 2","<h2>"],["Header 3","<h3>"],["Header 4","<h4>"],["Header 5","<h5>"],["Header 6","<h6>"]],useCSS:!0,docType:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',docCSSFile:"",bodyStyle:"margin:4px; font:10pt Arial,Verdana; cursor:text"},buttons:{init:"bold,,|italic,,|underline,,|strikethrough,,|subscript,,|superscript,,|font,,fontname,|size,Font Size,fontsize,|style,,formatblock,|color,Font Color,forecolor,|highlight,Text Highlight Color,hilitecolor,color|removeformat,Remove Formatting,|bullets,,insertunorderedlist|numbering,,insertorderedlist|outdent,,|indent,,|alignleft,Align Text Left,justifyleft|center,,justifycenter|alignright,Align Text Right,justifyright|justify,,justifyfull|undo,,|redo,,|rule,Insert Horizontal Rule,inserthorizontalrule|image,Insert Image,insertimage,url|link,Insert Hyperlink,createlink,url|unlink,Remove Hyperlink,|cut,,|copy,,|paste,,|pastetext,Paste as Text,inserthtml,|print,,|source,Show Source"},imagesPath:function(){return ii()}};n.fn.cleditor=function(t){var i=n([]);return this.each(function(r,u){if(u.tagName.toUpperCase()==="TEXTAREA"){var f=n.data(u,lt);f||(f=new cleditor(u,t));i=i.add(f)}}),i};var et="backgroundColor",k="blurred",d="button",a="buttonName",g="change",lt="cleditor",u="click",r="disabled",i="<div>",nt="focused",ot="unselectable",fi="cleditorMain",ei="cleditorToolbar",at="cleditorGroup",vt="cleditorButton",yt="cleditorDisabled",oi="cleditorDivider",si="cleditorPopup",pt="cleditorList",hi="cleditorColor",tt="cleditorPrompt",ci="cleditorMsg",v=navigator.userAgent.toLowerCase(),t=/msie/.test(v),li=/msie\s6/.test(v),y=/(trident)(?:.*rv:([\w.]+))?/.test(v),ai=/webkit/.test(v),st=/iPhone|iPad|iPod/i.test(v),f={},wt,s=n.cleditor.buttons;n.each(s.init.split("|"),function(n,t){var i=t.split(","),r=i[0];s[r]={stripIndex:n,name:r,title:i[1]===""?r.charAt(0).toUpperCase()+r.substr(1):i[1],command:i[2]===""?r:i[2],popupName:i[3]===""?r:i[3]}});delete s.init;cleditor=function(r,f){var e=this;e.options=f=n.extend({},n.cleditor.defaultOptions,f);var l=e.$area=n(r).css({border:"none",margin:0,padding:0}).hide().data(lt,e).blur(function(){ft(e,!0)}),v=e.$main=n(i).addClass(fi).width(f.width).height(f.height),y=e.$toolbar=n(i).addClass(ei).appendTo(v),h=n(i).addClass(at).appendTo(y),c=0;n.each(f.controls.split(" "),function(r,o){var w,l,p,v;if(o==="")return!0;o==="|"?(w=n(i).addClass(oi).appendTo(h),h.width(c+1),c=0,h=n(i).addClass(at).appendTo(y)):(l=s[o],p=n(i).data(a,l.name).addClass(vt).attr("title",l.title).bind(u,n.proxy(vi,e)).appendTo(h).hover(kt,dt),c+=24,h.width(c+1),v={},l.css?v=l.css:l.image&&(v.backgroundImage=wi(l.image)),l.stripIndex&&(v.backgroundPosition=l.stripIndex*-24),p.css(v),t&&p.attr(ot,"on"),l.popupName&&gt(l.popupName,f,l.popupClass,l.popupContent,l.popupHover))});v.insertBefore(l).append(l);wt||(n(document).click(function(t){var i=n(t.target);i.add(i.parents()).is("."+tt)||o()}),wt=!0);/auto|%/.test(""+f.width+f.height)&&n(window).bind("resize.cleditor",function(){ht(e)});ht(e)};p=cleditor.prototype;bt=[["clear",pi],["disable",ni],["execCommand",h],["focus",c],["hidePopups",o],["sourceMode",l,!0],["refresh",ht],["select",bi],["selectedHTML",ki,!0],["selectedText",ri,!0],["showMessage",ut],["updateFrame",ft],["updateTextArea",ct]];n.each(bt,function(n,t){p[t[0]]=function(){for(var u,n=this,r=[n],i=0;i<arguments.length;i++)r.push(arguments[i]);return(u=t[1].apply(n,r),t[2])?u:n}});p.blurred=function(t){var i=n(this);return t?i.bind(k,t):i.trigger(k)};p.change=function(t){var i=n(this);return t?i.bind(g,t):i.trigger(g)};p.focused=function(t){var i=n(this);return t?i.bind(nt,t):i.trigger(nt)}})(jQuery);
-/*
-//# sourceMappingURL=jquery.cleditor.min.js.map
-*/
\ No newline at end of file
diff --git a/milfs/js/jquery.min.js b/milfs/js/jquery.min.js
deleted file mode 100644
index 73f33fb..0000000
--- a/milfs/js/jquery.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.11.0 | (c) 2005, 2014 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="".trim,l={},m="1.11.0",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!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));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||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return 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"!==n.type(a)||a.nodeType||n.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(l.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&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},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:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}: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){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=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&&(f=a[b],b=a,a=f),n.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||n.guid++,e):void 0},now:function(){return+new Date},support:l}),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=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="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=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{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(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 mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?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!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.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},z=b?function(a,b){if(a===b)return j=!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===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.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=db.selectors={cacheLength:50,createPseudo:fb,match:V,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(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===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]||db.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]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(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(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.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(),t=!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&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&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]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)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&&(t&&((l[s]||(l[s]={}))[a]=[u,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()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(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:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?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===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.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 X.test(a.nodeName)},input:function(a){return W.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:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=jb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=kb(b);function nb(){}nb.prototype=d.filters=d.pseudos,d.setFilters=new nb;function ob(a,b){var c,e,f,g,h,i,j,k=x[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=Q.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?db.error(a):x(a,i).slice(0)}function pb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;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=[u,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[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(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 sb(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 tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(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?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(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 n.inArray(a,b)>=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=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},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=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.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]:A.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:z,!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}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,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))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(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}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))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?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):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 E(a,b){do a=a[b];while(a&&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 E(a,"nextSibling")},prev:function(a){return E(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 n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document: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&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.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){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&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.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},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 I;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){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(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){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.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()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
-}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),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=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(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 n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},W=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},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a>",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.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=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=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(".")},i),(m=g[o])||(m=g[o]=[],m.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?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.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=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.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]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.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||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.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)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(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,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=((n.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?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=$.test(e)?this.mouseHooks:Z.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||z),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==db()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===db()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=z.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===L&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&(a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault())?bb:cb):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:cb,isPropagationStopped:cb,isImmediatePropagationStopped:cb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=bb,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=bb,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submitBubbles||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?b.form:void 0;c&&!n._data(c,"submitBubbles")&&(n.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),n._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.changeBubbles||(n.event.special.change={setup:function(){return Y.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),n.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),n.event.simulate("change",this,a,!0)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;Y.test(b.nodeName)&&!n._data(b,"changeBubbles")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a,!0)}),n._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!Y.test(this.nodeName)}}),l.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return n().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=cb),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});function eb(a){var b=fb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var fb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gb=/ jQuery\d+="(?:null|\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/checked\s*(?:[^=]|=\s*.checked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(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 yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._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++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.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)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1></$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"<table>"!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.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),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).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=xb(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=xb(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(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(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(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.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 n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(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(vb(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,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.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(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}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=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Db[0].contentWindow||Db[0].contentDocument).document,b.write(),b.close(),c=Fb(a,b),Db.detach()),Eb[a]=c),c}!function(){var a,b,c=z.createElement("div"),d="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],a.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(a.style.opacity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===c.style.backgroundClip,a=c=null,l.shrinkWrapBlocks=function(){var a,c,e,f;if(null==b){if(a=z.getElementsByTagName("body")[0],!a)return;f="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",c=z.createElement("div"),e=z.createElement("div"),a.appendChild(c).appendChild(e),b=!1,typeof e.style.zoom!==L&&(e.style.cssText=d+";width:1px;padding:1px;zoom:1",e.innerHTML="<div></div>",e.firstChild.style.width="5px",b=3!==e.offsetWidth),a.removeChild(c),a=c=e=null}return b}}();var Hb=/^margin/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Jb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),Ib.test(g)&&Hb.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+""}):z.documentElement.currentStyle&&(Jb=function(a){return a.currentStyle},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ib.test(g)&&!Lb.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 Mb(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=z.createElement("div"),i="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",j="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",b=h.getElementsByTagName("a")[0],b.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(b.style.opacity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,b=h=null,n.extend(l,{reliableHiddenOffsets:function(){if(null!=c)return c;var a,b,d,e=z.createElement("div"),f=z.getElementsByTagName("body")[0];if(f)return e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=z.createElement("div"),a.style.cssText=i,f.appendChild(a).appendChild(e),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",b=e.getElementsByTagName("td"),b[0].style.cssText="padding:0;margin:0;border:0;display:none",d=0===b[0].offsetHeight,b[0].style.display="",b[1].style.display="none",c=d&&0===b[0].offsetHeight,f.removeChild(a),e=f=null,c},boxSizing:function(){return null==d&&k(),d},boxSizingReliable:function(){return null==e&&k(),e},pixelPosition:function(){return null==f&&k(),f},reliableMarginRight:function(){var b,c,d,e;if(null==g&&a.getComputedStyle){if(b=z.getElementsByTagName("body")[0],!b)return;c=z.createElement("div"),d=z.createElement("div"),c.style.cssText=i,b.appendChild(c).appendChild(d),e=d.appendChild(z.createElement("div")),e.style.cssText=d.style.cssText=j,e.style.marginRight=e.style.width="0",d.style.width="1px",g=!parseFloat((a.getComputedStyle(e,null)||{}).marginRight),b.removeChild(c)}return g}});function k(){var b,c,h=z.getElementsByTagName("body")[0];h&&(b=z.createElement("div"),c=z.createElement("div"),b.style.cssText=i,h.appendChild(b).appendChild(c),c.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",n.swap(h,null!=h.style.zoom?{zoom:1}:{},function(){d=4===c.offsetWidth}),e=!0,f=!1,g=!0,a.getComputedStyle&&(f="1%"!==(a.getComputedStyle(c,null)||{}).top,e="4px"===(a.getComputedStyle(c,null)||{width:"4px"}).width),h.removeChild(b),c=h=null)}}(),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 Nb=/alpha\([^)]*\)/i,Ob=/opacity\s*=\s*([^)]*)/,Pb=/^(none|table(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={position:"absolute",visibility:"hidden",display:"block"},Tb={letterSpacing:0,fontWeight:400},Ub=["Webkit","O","Moz","ms"];function Vb(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ub.length;while(e--)if(b=Ub[e]+c,b in a)return b;return d}function Wb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",Gb(d.nodeName)))):f[g]||(e=V(d),(c&&"none"!==c||!e)&&n._data(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}function Xb(a,b,c){var d=Qb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Yb(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+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Zb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Jb(a),g=l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Kb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ib.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Yb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Kb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},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;if(b=n.cssProps[h]||(n.cssProps[h]=Vb(i,h)),g=n.cssHooks[b]||n.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=Rb.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"),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]="",i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Vb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb(a,b,d)),"normal"===f&&b in Tb&&(f=Tb[b]),""===c||c?(e=parseFloat(f),c===!0||n.isNumeric(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Pb.test(n.css(a,"display"))?n.swap(a,Sb,function(){return Zb(a,b,d)}):Zb(a,b,d):void 0},set:function(a,c,d){var e=d&&Jb(a);return Xb(a,c,d?Yb(a,b,d,l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Ob.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=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Nb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Nb.test(f)?f.replace(Nb,e):f+" "+e)}}),n.cssHooks.marginRight=Mb(l.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},Kb,[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+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Hb.test(a)||(n.cssHooks[a+b].set=Xb)}),n.fn.extend({css:function(a,b){return W(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Jb(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 Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function $b(a,b,c,d,e){return new $b.prototype.init(a,b,c,d,e)}n.Tween=$b,$b.prototype={constructor:$b,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=$b.propHooks[this.prop];return a&&a.get?a.get(this):$b.propHooks._default.get(this)},run:function(a){var b,c=$b.propHooks[this.prop];return this.pos=b=this.options.duration?n.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):$b.propHooks._default.set(this),this}},$b.prototype.init.prototype=$b.prototype,$b.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}}},$b.propHooks.scrollTop=$b.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=$b.prototype.init,n.fx.step={};var _b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=cc.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.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 gc(){return setTimeout(function(){_b=void 0}),_b=n.now()}function hc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function ic(a,b,c){for(var d,e=(fc[b]||[]).concat(fc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function jc(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(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++,m.always(function(){m.always(function(){h.unqueued--,n.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=n.css(a,"display"),k=Gb(a.nodeName),"none"===j&&(j=k),"inline"===j&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==k?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.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],bc.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]||n.style(a,d)}if(!n.isEmptyObject(o)){r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=ic(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function kc(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 lc(a,b,c){var d,e,f=0,g=ec.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=_b||gc(),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:_b||gc(),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(kc(k,j.opts.specialEasing);g>f;f++)if(d=ec[f].call(j,a,k,j.opts))return d;return n.map(k,ic,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(lc,{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],fc[c]=fc[c]||[],fc[c].unshift(b)},prefilter:function(a,b){b?ec.unshift(a):ec.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(V).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=lc(this,n.extend({},a),f);(e||n._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=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&dc.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=n._data(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(hc(b,!0),a,d,e)}}),n.each({slideDown:hc("show"),slideUp:hc("hide"),slideToggle:hc("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=n.timers,c=0;for(_b=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),_b=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ac||(ac=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(ac),ac=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e=z.createElement("div");e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=e.getElementsByTagName("a")[0],c=z.createElement("select"),d=c.appendChild(z.createElement("option")),b=e.getElementsByTagName("input")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==e.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=d.selected,l.enctype=!!z.createElement("form").enctype,c.disabled=!0,l.optDisabled=!d.disabled,b=z.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value,a=b=c=d=e=null}();var mc=/\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(mc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b: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||(l.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--)if(d=e[g],n.inArray(n.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}}}}),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}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var nc,oc,pc=n.expr.attrHandle,qc=/^(?:checked|selected)$/i,rc=l.getSetAttribute,sc=l.input;n.fn.extend({attr:function(a,b){return W(this,n.attr,a,b,arguments.length>1)},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===L?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?oc:nc)),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(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?sc&&rc||!qc.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(rc?c:d)},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),oc={set:function(a,b,c){return b===!1?n.removeAttr(a,c):sc&&rc||!qc.test(c)?a.setAttribute(!rc&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=pc[b]||n.find.attr;pc[b]=sc&&rc||!qc.test(b)?function(a,b,d){var e,f;return d||(f=pc[b],pc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,pc[b]=f),e}:function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),sc&&rc||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):nc&&nc.set(a,b,c)}}),rc||(nc={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}},pc.id=pc.name=pc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:nc.set},n.attrHooks.contenteditable={set:function(a,b,c){nc.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var tc=/^(?:input|select|textarea|button|object)$/i,uc=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return W(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),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){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):tc.test(a.nodeName)||uc.test(a.nodeName)&&a.href?0:-1}}}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var vc=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):" ")){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,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):"")){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(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===L||"boolean"===c)&&(this.className&&n._data(this,"__className__",this.className),this.className=this.className||a===!1?"":n._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(vc," ").indexOf(b)>=0)return!0;return!1}}),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 wc=n.now(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(yc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.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||n.error("Invalid XML: "+b),c};var zc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ec=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Fc=/^(?:GET|HEAD)$/,Gc=/^\/\//,Hc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ic={},Jc={},Kc="*/".concat("*");try{Ac=location.href}catch(Lc){Ac=z.createElement("a"),Ac.href="",Ac=Ac.href}zc=Hc.exec(Ac.toLowerCase())||[];function Mc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.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 Nc(a,b,c,d){var e={},f=a===Jc;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 Oc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Pc(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 Qc(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:Ac,type:"GET",isLocal:Ec.test(zc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kc,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?Oc(Oc(a,n.ajaxSettings),b):Oc(n.ajaxSettings,a)},ajaxPrefilter:Mc(Ic),ajaxTransport:Mc(Jc),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(!j){j={};while(b=Dc.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||Ac)+"").replace(Bc,"").replace(Gc,zc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(F)||[""],null==k.crossDomain&&(c=Hc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===zc[1]&&c[2]===zc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(zc[3]||("http:"===zc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),Nc(Ic,k,b,v),2===t)return v;h=k.global,h&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Fc.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(xc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Cc.test(e)?e.replace(Cc,"$1_="+wc++):e+(xc.test(e)?"&":"?")+"_="+wc++)),k.ifModified&&(n.lastModified[e]&&v.setRequestHeader("If-Modified-Since",n.lastModified[e]),n.etag[e]&&v.setRequestHeader("If-None-Match",n.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]?", "+Kc+"; 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=Nc(Jc,k,b,v)){v.readyState=1,h&&m.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=Pc(k,v,c)),u=Qc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(n.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&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(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.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),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){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var 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.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return 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||!l.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||n.css(a,"display"))},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Rc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Uc=/^(?:submit|button|image|reset|file)$/i,Vc=/^(?:input|select|textarea|keygen)/i;function Wc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Sc.test(a)?d(a,e):Wc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Wc(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)Wc(c,a[c],b,e);return d.join("&").replace(Rc,"+")},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")&&Vc.test(this.nodeName)&&!Uc.test(a)&&(this.checked||!X.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(Tc,"\r\n")}}):{name:b.name,value:c.replace(Tc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$c()||_c()}:$c;var Xc=0,Yc={},Zc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Yc)Yc[a](void 0,!0)}),l.cors=!!Zc&&"withCredentials"in Zc,Zc=l.ajax=!!Zc,Zc&&n.ajaxTransport(function(a){if(!a.crossDomain||l.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Xc;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 Yc[g],b=void 0,f.onreadystatechange=n.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=Yc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function $c(){try{return new a.XMLHttpRequest}catch(b){}}function _c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}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",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||n("head")[0]||z.documentElement;return{send:function(d,e){b=z.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 ad=[],bd=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ad.pop()||n.expando+"_"+wc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(bd.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&bd.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(bd,"$1"+e):b.jsonp!==!1&&(b.url+=(xc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.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,ad.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||z;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var cd=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&cd)return cd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=a.slice(h,a.length),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&n.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.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,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(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"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.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?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
diff --git a/milfs/js/jquery.timelinr-0.9.54.js b/milfs/js/jquery.timelinr-0.9.54.js
deleted file mode 100644
index ef94a95..0000000
--- a/milfs/js/jquery.timelinr-0.9.54.js
+++ /dev/null
@@ -1,270 +0,0 @@
-/* ----------------------------------
-jQuery Timelinr 0.9.54
-tested with jQuery v1.6+
-
-Copyright 2011, CSSLab.cl
-Free under the MIT license.
-http://www.opensource.org/licenses/mit-license.php
-
-instructions: http://www.csslab.cl/2011/08/18/jquery-timelinr/
----------------------------------- */
-
-jQuery.fn.timelinr = function(options){
-	// default plugin settings
-	settings = jQuery.extend({
-		orientation: 				'horizontal',		// value: horizontal | vertical, default to horizontal
-		containerDiv: 				'#timeline',		// value: any HTML tag or #id, default to #timeline
-		datesDiv: 					'#dates',			// value: any HTML tag or #id, default to #dates
-		datesSelectedClass: 		'selected',			// value: any class, default to selected
-		datesSpeed: 				'normal',			// value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to normal
-		issuesDiv: 					'#issues',			// value: any HTML tag or #id, default to #issues
-		issuesSelectedClass: 		'selected',			// value: any class, default to selected
-		issuesSpeed: 				'fast',				// value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to fast
-		issuesTransparency: 		0.2,				// value: integer between 0 and 1 (recommended), default to 0.2
-		issuesTransparencySpeed: 	500,				// value: integer between 100 and 1000 (recommended), default to 500 (normal)
-		prevButton: 				'#prev',			// value: any HTML tag or #id, default to #prev
-		nextButton: 				'#next',			// value: any HTML tag or #id, default to #next
-		arrowKeys: 					'false',			// value: true | false, default to false
-		startAt: 					1,					// value: integer, default to 1 (first)
-		autoPlay: 					'false',			// value: true | false, default to false
-		autoPlayDirection: 			'forward',			// value: forward | backward, default to forward
-		autoPlayPause: 				2000				// value: integer (1000 = 1 seg), default to 2000 (2segs)
-	}, options);
-
-	$(function(){
-		// setting variables... many of them
-		var howManyDates = $(settings.datesDiv+' li').length;
-		var howManyIssues = $(settings.issuesDiv+' li').length;
-		var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass);
-		var currentIssue = $(settings.issuesDiv).find('li.'+settings.issuesSelectedClass);
-		var widthContainer = $(settings.containerDiv).width();
-		var heightContainer = $(settings.containerDiv).height();
-		var widthIssues = $(settings.issuesDiv).width();
-		var heightIssues = $(settings.issuesDiv).height();
-		var widthIssue = $(settings.issuesDiv+' li').width();
-		var heightIssue = $(settings.issuesDiv+' li').height();
-		var widthDates = $(settings.datesDiv).width();
-		var heightDates = $(settings.datesDiv).height();
-		var widthDate = $(settings.datesDiv+' li').width();
-		var heightDate = $(settings.datesDiv+' li').height();
-		// set positions!
-		if(settings.orientation == 'horizontal') {	
-			$(settings.issuesDiv).width(widthIssue*howManyIssues);
-			$(settings.datesDiv).width(widthDate*howManyDates).css('marginLeft',widthContainer/2-widthDate/2);
-			var defaultPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px')));
-		} else if(settings.orientation == 'vertical') {
-			$(settings.issuesDiv).height(heightIssue*howManyIssues);
-			$(settings.datesDiv).height(heightDate*howManyDates).css('marginTop',heightContainer/2-heightDate/2);
-			var defaultPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px')));
-		}
-		
-		$(settings.datesDiv+' a').click(function(event){
-			event.preventDefault();
-			// first vars
-			var whichIssue = $(this).text();
-			var currentIndex = $(this).parent().prevAll().length;
-			// moving the elements
-			if(settings.orientation == 'horizontal') {
-				$(settings.issuesDiv).animate({'marginLeft':-widthIssue*currentIndex},{queue:false, duration:settings.issuesSpeed});
-			} else if(settings.orientation == 'vertical') {
-				$(settings.issuesDiv).animate({'marginTop':-heightIssue*currentIndex},{queue:false, duration:settings.issuesSpeed});
-			}
-			$(settings.issuesDiv+' li').animate({'opacity':settings.issuesTransparency},{queue:false, duration:settings.issuesSpeed}).removeClass(settings.issuesSelectedClass).eq(currentIndex).addClass(settings.issuesSelectedClass).fadeTo(settings.issuesTransparencySpeed,1);
-			// prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows | bugfixed: arrows not showing when jumping from first to last date
-			if(howManyDates == 1) {
-				$(settings.prevButton+','+settings.nextButton).fadeOut('fast');
-			} else if(howManyDates == 2) {
-				if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) {
-					$(settings.prevButton).fadeOut('fast');
-				 	$(settings.nextButton).fadeIn('fast');
-				} 
-				else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) {
-					$(settings.nextButton).fadeOut('fast');
-					$(settings.prevButton).fadeIn('fast');
-				}
-			} else {
-				if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) {
-					$(settings.nextButton).fadeIn('fast');
-					$(settings.prevButton).fadeOut('fast');
-				} 
-				else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) {
-					$(settings.prevButton).fadeIn('fast');
-					$(settings.nextButton).fadeOut('fast');
-				}
-				else {
-					$(settings.nextButton+','+settings.prevButton).fadeIn('slow');
-				}	
-			}
-			// now moving the dates
-			$(settings.datesDiv+' a').removeClass(settings.datesSelectedClass);
-			$(this).addClass(settings.datesSelectedClass);
-			if(settings.orientation == 'horizontal') {
-				$(settings.datesDiv).animate({'marginLeft':defaultPositionDates-(widthDate*currentIndex)},{queue:false, duration:'settings.datesSpeed'});
-			} else if(settings.orientation == 'vertical') {
-				$(settings.datesDiv).animate({'marginTop':defaultPositionDates-(heightDate*currentIndex)},{queue:false, duration:'settings.datesSpeed'});
-			}
-		});
-
-		$(settings.nextButton).bind('click', function(event){
-			event.preventDefault();
-			// bugixed from 0.9.54: now the dates gets centered when there's too much dates.
-			var currentIndex = $(settings.issuesDiv).find('li.'+settings.issuesSelectedClass).index();
-			if(settings.orientation == 'horizontal') {
-				var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px')));
-				var currentIssueIndex = currentPositionIssues/widthIssue;
-				var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px')));
-				var currentIssueDate = currentPositionDates-widthDate;
-				if(currentPositionIssues <= -(widthIssue*howManyIssues-(widthIssue))) {
-					$(settings.issuesDiv).stop();
-					$(settings.datesDiv+' li:last-child a').click();
-				} else {
-					if (!$(settings.issuesDiv).is(':animated')) {
-						// bugixed from 0.9.52: now the dates gets centered when there's too much dates.
-						$(settings.datesDiv+' li').eq(currentIndex+1).find('a').trigger('click');
-					}
-				}
-			} else if(settings.orientation == 'vertical') {
-				var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px')));
-				var currentIssueIndex = currentPositionIssues/heightIssue;
-				var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px')));
-				var currentIssueDate = currentPositionDates-heightDate;
-				if(currentPositionIssues <= -(heightIssue*howManyIssues-(heightIssue))) {
-					$(settings.issuesDiv).stop();
-					$(settings.datesDiv+' li:last-child a').click();
-				} else {
-					if (!$(settings.issuesDiv).is(':animated')) {
-						// bugixed from 0.9.54: now the dates gets centered when there's too much dates.
-						$(settings.datesDiv+' li').eq(currentIndex+1).find('a').trigger('click');
-					}
-				}
-			}
-			// prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows
-			if(howManyDates == 1) {
-				$(settings.prevButton+','+settings.nextButton).fadeOut('fast');
-			} else if(howManyDates == 2) {
-				if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) {
-					$(settings.prevButton).fadeOut('fast');
-				 	$(settings.nextButton).fadeIn('fast');
-				} 
-				else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) {
-					$(settings.nextButton).fadeOut('fast');
-					$(settings.prevButton).fadeIn('fast');
-				}
-			} else {
-				if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) {
-					$(settings.prevButton).fadeOut('fast');
-				} 
-				else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) {
-					$(settings.nextButton).fadeOut('fast');
-				}
-				else {
-					$(settings.nextButton+','+settings.prevButton).fadeIn('slow');
-				}	
-			}
-		});
-
-		$(settings.prevButton).click(function(event){
-			event.preventDefault();
-			// bugixed from 0.9.54: now the dates gets centered when there's too much dates.
-			var currentIndex = $(settings.issuesDiv).find('li.'+settings.issuesSelectedClass).index();
-			if(settings.orientation == 'horizontal') {
-				var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginLeft').substring(0,$(settings.issuesDiv).css('marginLeft').indexOf('px')));
-				var currentIssueIndex = currentPositionIssues/widthIssue;
-				var currentPositionDates = parseInt($(settings.datesDiv).css('marginLeft').substring(0,$(settings.datesDiv).css('marginLeft').indexOf('px')));
-				var currentIssueDate = currentPositionDates+widthDate;
-				if(currentPositionIssues >= 0) {
-					$(settings.issuesDiv).stop();
-					$(settings.datesDiv+' li:first-child a').click();
-				} else {
-					if (!$(settings.issuesDiv).is(':animated')) {
-						// bugixed from 0.9.54: now the dates gets centered when there's too much dates.
-						$(settings.datesDiv+' li').eq(currentIndex-1).find('a').trigger('click');
-					}
-				}
-			} else if(settings.orientation == 'vertical') {
-				var currentPositionIssues = parseInt($(settings.issuesDiv).css('marginTop').substring(0,$(settings.issuesDiv).css('marginTop').indexOf('px')));
-				var currentIssueIndex = currentPositionIssues/heightIssue;
-				var currentPositionDates = parseInt($(settings.datesDiv).css('marginTop').substring(0,$(settings.datesDiv).css('marginTop').indexOf('px')));
-				var currentIssueDate = currentPositionDates+heightDate;
-				if(currentPositionIssues >= 0) {
-					$(settings.issuesDiv).stop();
-					$(settings.datesDiv+' li:first-child a').click();
-				} else {
-					if (!$(settings.issuesDiv).is(':animated')) {
-						// bugixed from 0.9.54: now the dates gets centered when there's too much dates.
-						$(settings.datesDiv+' li').eq(currentIndex-1).find('a').trigger('click');
-					}
-				}
-			}
-			// prev/next buttons now disappears on first/last issue | bugfix from 0.9.51: lower than 1 issue hide the arrows
-			if(howManyDates == 1) {
-				$(settings.prevButton+','+settings.nextButton).fadeOut('fast');
-			} else if(howManyDates == 2) {
-				if($(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass)) {
-					$(settings.prevButton).fadeOut('fast');
-				 	$(settings.nextButton).fadeIn('fast');
-				} 
-				else if($(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass)) {
-					$(settings.nextButton).fadeOut('fast');
-					$(settings.prevButton).fadeIn('fast');
-				}
-			} else {
-				if( $(settings.issuesDiv+' li:first-child').hasClass(settings.issuesSelectedClass) ) {
-					$(settings.prevButton).fadeOut('fast');
-				} 
-				else if( $(settings.issuesDiv+' li:last-child').hasClass(settings.issuesSelectedClass) ) {
-					$(settings.nextButton).fadeOut('fast');
-				}
-				else {
-					$(settings.nextButton+','+settings.prevButton).fadeIn('slow');
-				}	
-			}
-		});
-		// keyboard navigation, added since 0.9.1
-		if(settings.arrowKeys=='true') {
-			if(settings.orientation=='horizontal') {
-				$(document).keydown(function(event){
-					if (event.keyCode == 39) { 
-				       $(settings.nextButton).click();
-				    }
-					if (event.keyCode == 37) { 
-				       $(settings.prevButton).click();
-				    }
-				});
-			} else if(settings.orientation=='vertical') {
-				$(document).keydown(function(event){
-					if (event.keyCode == 40) { 
-				       $(settings.nextButton).click();
-				    }
-					if (event.keyCode == 38) { 
-				       $(settings.prevButton).click();
-				    }
-				});
-			}
-		}
-		// default position startAt, added since 0.9.3
-		$(settings.datesDiv+' li').eq(settings.startAt-1).find('a').trigger('click');
-		// autoPlay, added since 0.9.4
-		if(settings.autoPlay == 'true') { 
-			setInterval("autoPlay()", settings.autoPlayPause);
-		}
-	});
-};
-
-// autoPlay, added since 0.9.4
-function autoPlay(){
-	var currentDate = $(settings.datesDiv).find('a.'+settings.datesSelectedClass);
-	if(settings.autoPlayDirection == 'forward') {
-		if(currentDate.parent().is('li:last-child')) {
-			$(settings.datesDiv+' li:first-child').find('a').trigger('click');
-		} else {
-			currentDate.parent().next().find('a').trigger('click');
-		}
-	} else if(settings.autoPlayDirection == 'backward') {
-		if(currentDate.parent().is('li:first-child')) {
-			$(settings.datesDiv+' li:last-child').find('a').trigger('click');
-		} else {
-			currentDate.parent().prev().find('a').trigger('click');
-		}
-	}
-}
\ No newline at end of file
diff --git a/milfs/js/load-image.all.min.js.map b/milfs/js/load-image.all.min.js.map
deleted file mode 100644
index 0bbb4e8..0000000
--- a/milfs/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/js/markdown.js b/milfs/js/markdown.js
deleted file mode 100644
index 07f4e46..0000000
--- a/milfs/js/markdown.js
+++ /dev/null
@@ -1,1616 +0,0 @@
-// Released under MIT license
-// Copyright (c) 2009-2010 Dominic Baggott
-// Copyright (c) 2009-2010 Ash Berlin
-// Copyright (c) 2011 Christoph Dorn <christoph@christophdorn.com> (http://www.christophdorn.com)
-
-(function( expose ) {
-
-/**
- *  class Markdown
- *
- *  Markdown processing in Javascript done right. We have very particular views
- *  on what constitutes 'right' which include:
- *
- *  - produces well-formed HTML (this means that em and strong nesting is
- *    important)
- *
- *  - has an intermediate representation to allow processing of parsed data (We
- *    in fact have two, both as [JsonML]: a markdown tree and an HTML tree).
- *
- *  - is easily extensible to add new dialects without having to rewrite the
- *    entire parsing mechanics
- *
- *  - has a good test suite
- *
- *  This implementation fulfills all of these (except that the test suite could
- *  do with expanding to automatically run all the fixtures from other Markdown
- *  implementations.)
- *
- *  ##### Intermediate Representation
- *
- *  *TODO* Talk about this :) Its JsonML, but document the node names we use.
- *
- *  [JsonML]: http://jsonml.org/ "JSON Markup Language"
- **/
-var Markdown = expose.Markdown = function Markdown(dialect) {
-  switch (typeof dialect) {
-    case "undefined":
-      this.dialect = Markdown.dialects.Gruber;
-      break;
-    case "object":
-      this.dialect = dialect;
-      break;
-    default:
-      if (dialect in Markdown.dialects) {
-        this.dialect = Markdown.dialects[dialect];
-      }
-      else {
-        throw new Error("Unknown Markdown dialect '" + String(dialect) + "'");
-      }
-      break;
-  }
-  this.em_state = [];
-  this.strong_state = [];
-  this.debug_indent = "";
-};
-
-/**
- *  parse( markdown, [dialect] ) -> JsonML
- *  - markdown (String): markdown string to parse
- *  - dialect (String | Dialect): the dialect to use, defaults to gruber
- *
- *  Parse `markdown` and return a markdown document as a Markdown.JsonML tree.
- **/
-expose.parse = function( source, dialect ) {
-  // dialect will default if undefined
-  var md = new Markdown( dialect );
-  return md.toTree( source );
-};
-
-/**
- *  toHTML( markdown, [dialect]  ) -> String
- *  toHTML( md_tree ) -> String
- *  - markdown (String): markdown string to parse
- *  - md_tree (Markdown.JsonML): parsed markdown tree
- *
- *  Take markdown (either as a string or as a JsonML tree) and run it through
- *  [[toHTMLTree]] then turn it into a well-formated HTML fragment.
- **/
-expose.toHTML = function toHTML( source , dialect , options ) {
-  var input = expose.toHTMLTree( source , dialect , options );
-
-  return expose.renderJsonML( input );
-};
-
-/**
- *  toHTMLTree( markdown, [dialect] ) -> JsonML
- *  toHTMLTree( md_tree ) -> JsonML
- *  - markdown (String): markdown string to parse
- *  - dialect (String | Dialect): the dialect to use, defaults to gruber
- *  - md_tree (Markdown.JsonML): parsed markdown tree
- *
- *  Turn markdown into HTML, represented as a JsonML tree. If a string is given
- *  to this function, it is first parsed into a markdown tree by calling
- *  [[parse]].
- **/
-expose.toHTMLTree = function toHTMLTree( input, dialect , options ) {
-  // convert string input to an MD tree
-  if ( typeof input ==="string" ) input = this.parse( input, dialect );
-
-  // Now convert the MD tree to an HTML tree
-
-  // remove references from the tree
-  var attrs = extract_attr( input ),
-      refs = {};
-
-  if ( attrs && attrs.references ) {
-    refs = attrs.references;
-  }
-
-  var html = convert_tree_to_html( input, refs , options );
-  merge_text_nodes( html );
-  return html;
-};
-
-// For Spidermonkey based engines
-function mk_block_toSource() {
-  return "Markdown.mk_block( " +
-          uneval(this.toString()) +
-          ", " +
-          uneval(this.trailing) +
-          ", " +
-          uneval(this.lineNumber) +
-          " )";
-}
-
-// node
-function mk_block_inspect() {
-  var util = require('util');
-  return "Markdown.mk_block( " +
-          util.inspect(this.toString()) +
-          ", " +
-          util.inspect(this.trailing) +
-          ", " +
-          util.inspect(this.lineNumber) +
-          " )";
-
-}
-
-var mk_block = Markdown.mk_block = function(block, trail, line) {
-  // Be helpful for default case in tests.
-  if ( arguments.length == 1 ) trail = "\n\n";
-
-  var s = new String(block);
-  s.trailing = trail;
-  // To make it clear its not just a string
-  s.inspect = mk_block_inspect;
-  s.toSource = mk_block_toSource;
-
-  if (line != undefined)
-    s.lineNumber = line;
-
-  return s;
-};
-
-function count_lines( str ) {
-  var n = 0, i = -1;
-  while ( ( i = str.indexOf('\n', i+1) ) !== -1) n++;
-  return n;
-}
-
-// Internal - split source into rough blocks
-Markdown.prototype.split_blocks = function splitBlocks( input, startLine ) {
-  // [\s\S] matches _anything_ (newline or space)
-  var re = /([\s\S]+?)($|\n(?:\s*\n|$)+)/g,
-      blocks = [],
-      m;
-
-  var line_no = 1;
-
-  if ( ( m = /^(\s*\n)/.exec(input) ) != null ) {
-    // skip (but count) leading blank lines
-    line_no += count_lines( m[0] );
-    re.lastIndex = m[0].length;
-  }
-
-  while ( ( m = re.exec(input) ) !== null ) {
-    blocks.push( mk_block( m[1], m[2], line_no ) );
-    line_no += count_lines( m[0] );
-  }
-
-  return blocks;
-};
-
-/**
- *  Markdown#processBlock( block, next ) -> undefined | [ JsonML, ... ]
- *  - block (String): the block to process
- *  - next (Array): the following blocks
- *
- * Process `block` and return an array of JsonML nodes representing `block`.
- *
- * It does this by asking each block level function in the dialect to process
- * the block until one can. Succesful handling is indicated by returning an
- * array (with zero or more JsonML nodes), failure by a false value.
- *
- * Blocks handlers are responsible for calling [[Markdown#processInline]]
- * themselves as appropriate.
- *
- * If the blocks were split incorrectly or adjacent blocks need collapsing you
- * can adjust `next` in place using shift/splice etc.
- *
- * If any of this default behaviour is not right for the dialect, you can
- * define a `__call__` method on the dialect that will get invoked to handle
- * the block processing.
- */
-Markdown.prototype.processBlock = function processBlock( block, next ) {
-  var cbs = this.dialect.block,
-      ord = cbs.__order__;
-
-  if ( "__call__" in cbs ) {
-    return cbs.__call__.call(this, block, next);
-  }
-
-  for ( var i = 0; i < ord.length; i++ ) {
-    //D:this.debug( "Testing", ord[i] );
-    var res = cbs[ ord[i] ].call( this, block, next );
-    if ( res ) {
-      //D:this.debug("  matched");
-      if ( !isArray(res) || ( res.length > 0 && !( isArray(res[0]) ) ) )
-        this.debug(ord[i], "didn't return a proper array");
-      //D:this.debug( "" );
-      return res;
-    }
-  }
-
-  // Uhoh! no match! Should we throw an error?
-  return [];
-};
-
-Markdown.prototype.processInline = function processInline( block ) {
-  return this.dialect.inline.__call__.call( this, String( block ) );
-};
-
-/**
- *  Markdown#toTree( source ) -> JsonML
- *  - source (String): markdown source to parse
- *
- *  Parse `source` into a JsonML tree representing the markdown document.
- **/
-// custom_tree means set this.tree to `custom_tree` and restore old value on return
-Markdown.prototype.toTree = function toTree( source, custom_root ) {
-  var blocks = source instanceof Array ? source : this.split_blocks( source );
-
-  // Make tree a member variable so its easier to mess with in extensions
-  var old_tree = this.tree;
-  try {
-    this.tree = custom_root || this.tree || [ "markdown" ];
-
-    blocks:
-    while ( blocks.length ) {
-      var b = this.processBlock( blocks.shift(), blocks );
-
-      // Reference blocks and the like won't return any content
-      if ( !b.length ) continue blocks;
-
-      this.tree.push.apply( this.tree, b );
-    }
-    return this.tree;
-  }
-  finally {
-    if ( custom_root ) {
-      this.tree = old_tree;
-    }
-  }
-};
-
-// Noop by default
-Markdown.prototype.debug = function () {
-  var args = Array.prototype.slice.call( arguments);
-  args.unshift(this.debug_indent);
-  if (typeof print !== "undefined")
-      print.apply( print, args );
-  if (typeof console !== "undefined" && typeof console.log !== "undefined")
-      console.log.apply( null, args );
-}
-
-Markdown.prototype.loop_re_over_block = function( re, block, cb ) {
-  // Dont use /g regexps with this
-  var m,
-      b = block.valueOf();
-
-  while ( b.length && (m = re.exec(b) ) != null) {
-    b = b.substr( m[0].length );
-    cb.call(this, m);
-  }
-  return b;
-};
-
-/**
- * Markdown.dialects
- *
- * Namespace of built-in dialects.
- **/
-Markdown.dialects = {};
-
-/**
- * Markdown.dialects.Gruber
- *
- * The default dialect that follows the rules set out by John Gruber's
- * markdown.pl as closely as possible. Well actually we follow the behaviour of
- * that script which in some places is not exactly what the syntax web page
- * says.
- **/
-Markdown.dialects.Gruber = {
-  block: {
-    atxHeader: function atxHeader( block, next ) {
-      var m = block.match( /^(#{1,6})\s*(.*?)\s*#*\s*(?:\n|$)/ );
-
-      if ( !m ) return undefined;
-
-      var header = [ "header", { level: m[ 1 ].length } ];
-      Array.prototype.push.apply(header, this.processInline(m[ 2 ]));
-
-      if ( m[0].length < block.length )
-        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );
-
-      return [ header ];
-    },
-
-    setextHeader: function setextHeader( block, next ) {
-      var m = block.match( /^(.*)\n([-=])\2\2+(?:\n|$)/ );
-
-      if ( !m ) return undefined;
-
-      var level = ( m[ 2 ] === "=" ) ? 1 : 2;
-      var header = [ "header", { level : level }, m[ 1 ] ];
-
-      if ( m[0].length < block.length )
-        next.unshift( mk_block( block.substr( m[0].length ), block.trailing, block.lineNumber + 2 ) );
-
-      return [ header ];
-    },
-
-    code: function code( block, next ) {
-      // |    Foo
-      // |bar
-      // should be a code block followed by a paragraph. Fun
-      //
-      // There might also be adjacent code block to merge.
-
-      var ret = [],
-          re = /^(?: {0,3}\t| {4})(.*)\n?/,
-          lines;
-
-      // 4 spaces + content
-      if ( !block.match( re ) ) return undefined;
-
-      block_search:
-      do {
-        // Now pull out the rest of the lines
-        var b = this.loop_re_over_block(
-                  re, block.valueOf(), function( m ) { ret.push( m[1] ); } );
-
-        if (b.length) {
-          // Case alluded to in first comment. push it back on as a new block
-          next.unshift( mk_block(b, block.trailing) );
-          break block_search;
-        }
-        else if (next.length) {
-          // Check the next block - it might be code too
-          if ( !next[0].match( re ) ) break block_search;
-
-          // Pull how how many blanks lines follow - minus two to account for .join
-          ret.push ( block.trailing.replace(/[^\n]/g, '').substring(2) );
-
-          block = next.shift();
-        }
-        else {
-          break block_search;
-        }
-      } while (true);
-
-      return [ [ "code_block", ret.join("\n") ] ];
-    },
-
-    horizRule: function horizRule( block, next ) {
-      // this needs to find any hr in the block to handle abutting blocks
-      var m = block.match( /^(?:([\s\S]*?)\n)?[ \t]*([-_*])(?:[ \t]*\2){2,}[ \t]*(?:\n([\s\S]*))?$/ );
-
-      if ( !m ) {
-        return undefined;
-      }
-
-      var jsonml = [ [ "hr" ] ];
-
-      // if there's a leading abutting block, process it
-      if ( m[ 1 ] ) {
-        jsonml.unshift.apply( jsonml, this.processBlock( m[ 1 ], [] ) );
-      }
-
-      // if there's a trailing abutting block, stick it into next
-      if ( m[ 3 ] ) {
-        next.unshift( mk_block( m[ 3 ] ) );
-      }
-
-      return jsonml;
-    },
-
-    // There are two types of lists. Tight and loose. Tight lists have no whitespace
-    // between the items (and result in text just in the <li>) and loose lists,
-    // which have an empty line between list items, resulting in (one or more)
-    // paragraphs inside the <li>.
-    //
-    // There are all sorts weird edge cases about the original markdown.pl's
-    // handling of lists:
-    //
-    // * Nested lists are supposed to be indented by four chars per level. But
-    //   if they aren't, you can get a nested list by indenting by less than
-    //   four so long as the indent doesn't match an indent of an existing list
-    //   item in the 'nest stack'.
-    //
-    // * The type of the list (bullet or number) is controlled just by the
-    //    first item at the indent. Subsequent changes are ignored unless they
-    //    are for nested lists
-    //
-    lists: (function( ) {
-      // Use a closure to hide a few variables.
-      var any_list = "[*+-]|\\d+\\.",
-          bullet_list = /[*+-]/,
-          number_list = /\d+\./,
-          // Capture leading indent as it matters for determining nested lists.
-          is_list_re = new RegExp( "^( {0,3})(" + any_list + ")[ \t]+" ),
-          indent_re = "(?: {0,3}\\t| {4})";
-
-      // TODO: Cache this regexp for certain depths.
-      // Create a regexp suitable for matching an li for a given stack depth
-      function regex_for_depth( depth ) {
-
-        return new RegExp(
-          // m[1] = indent, m[2] = list_type
-          "(?:^(" + indent_re + "{0," + depth + "} {0,3})(" + any_list + ")\\s+)|" +
-          // m[3] = cont
-          "(^" + indent_re + "{0," + (depth-1) + "}[ ]{0,4})"
-        );
-      }
-      function expand_tab( input ) {
-        return input.replace( / {0,3}\t/g, "    " );
-      }
-
-      // Add inline content `inline` to `li`. inline comes from processInline
-      // so is an array of content
-      function add(li, loose, inline, nl) {
-        if (loose) {
-          li.push( [ "para" ].concat(inline) );
-          return;
-        }
-        // Hmmm, should this be any block level element or just paras?
-        var add_to = li[li.length -1] instanceof Array && li[li.length - 1][0] == "para"
-                   ? li[li.length -1]
-                   : li;
-
-        // If there is already some content in this list, add the new line in
-        if (nl && li.length > 1) inline.unshift(nl);
-
-        for (var i=0; i < inline.length; i++) {
-          var what = inline[i],
-              is_str = typeof what == "string";
-          if (is_str && add_to.length > 1 && typeof add_to[add_to.length-1] == "string" ) {
-            add_to[ add_to.length-1 ] += what;
-          }
-          else {
-            add_to.push( what );
-          }
-        }
-      }
-
-      // contained means have an indent greater than the current one. On
-      // *every* line in the block
-      function get_contained_blocks( depth, blocks ) {
-
-        var re = new RegExp( "^(" + indent_re + "{" + depth + "}.*?\\n?)*$" ),
-            replace = new RegExp("^" + indent_re + "{" + depth + "}", "gm"),
-            ret = [];
-
-        while ( blocks.length > 0 ) {
-          if ( re.exec( blocks[0] ) ) {
-            var b = blocks.shift(),
-                // Now remove that indent
-                x = b.replace( replace, "");
-
-            ret.push( mk_block( x, b.trailing, b.lineNumber ) );
-          }
-          break;
-        }
-        return ret;
-      }
-
-      // passed to stack.forEach to turn list items up the stack into paras
-      function paragraphify(s, i, stack) {
-        var list = s.list;
-        var last_li = list[list.length-1];
-
-        if (last_li[1] instanceof Array && last_li[1][0] == "para") {
-          return;
-        }
-        if (i+1 == stack.length) {
-          // Last stack frame
-          // Keep the same array, but replace the contents
-          last_li.push( ["para"].concat( last_li.splice(1) ) );
-        }
-        else {
-          var sublist = last_li.pop();
-          last_li.push( ["para"].concat( last_li.splice(1) ), sublist );
-        }
-      }
-
-      // The matcher function
-      return function( block, next ) {
-        var m = block.match( is_list_re );
-        if ( !m ) return undefined;
-
-        function make_list( m ) {
-          var list = bullet_list.exec( m[2] )
-                   ? ["bulletlist"]
-                   : ["numberlist"];
-
-          stack.push( { list: list, indent: m[1] } );
-          return list;
-        }
-
-
-        var stack = [], // Stack of lists for nesting.
-            list = make_list( m ),
-            last_li,
-            loose = false,
-            ret = [ stack[0].list ],
-            i;
-
-        // Loop to search over block looking for inner block elements and loose lists
-        loose_search:
-        while( true ) {
-          // Split into lines preserving new lines at end of line
-          var lines = block.split( /(?=\n)/ );
-
-          // We have to grab all lines for a li and call processInline on them
-          // once as there are some inline things that can span lines.
-          var li_accumulate = "";
-
-          // Loop over the lines in this block looking for tight lists.
-          tight_search:
-          for (var line_no=0; line_no < lines.length; line_no++) {
-            var nl = "",
-                l = lines[line_no].replace(/^\n/, function(n) { nl = n; return ""; });
-
-            // TODO: really should cache this
-            var line_re = regex_for_depth( stack.length );
-
-            m = l.match( line_re );
-            //print( "line:", uneval(l), "\nline match:", uneval(m) );
-
-            // We have a list item
-            if ( m[1] !== undefined ) {
-              // Process the previous list item, if any
-              if ( li_accumulate.length ) {
-                add( last_li, loose, this.processInline( li_accumulate ), nl );
-                // Loose mode will have been dealt with. Reset it
-                loose = false;
-                li_accumulate = "";
-              }
-
-              m[1] = expand_tab( m[1] );
-              var wanted_depth = Math.floor(m[1].length/4)+1;
-              //print( "want:", wanted_depth, "stack:", stack.length);
-              if ( wanted_depth > stack.length ) {
-                // Deep enough for a nested list outright
-                //print ( "new nested list" );
-                list = make_list( m );
-                last_li.push( list );
-                last_li = list[1] = [ "listitem" ];
-              }
-              else {
-                // We aren't deep enough to be strictly a new level. This is
-                // where Md.pl goes nuts. If the indent matches a level in the
-                // stack, put it there, else put it one deeper then the
-                // wanted_depth deserves.
-                var found = false;
-                for (i = 0; i < stack.length; i++) {
-                  if ( stack[ i ].indent != m[1] ) continue;
-                  list = stack[ i ].list;
-                  stack.splice( i+1 );
-                  found = true;
-                  break;
-                }
-
-                if (!found) {
-                  //print("not found. l:", uneval(l));
-                  wanted_depth++;
-                  if (wanted_depth <= stack.length) {
-                    stack.splice(wanted_depth);
-                    //print("Desired depth now", wanted_depth, "stack:", stack.length);
-                    list = stack[wanted_depth-1].list;
-                    //print("list:", uneval(list) );
-                  }
-                  else {
-                    //print ("made new stack for messy indent");
-                    list = make_list(m);
-                    last_li.push(list);
-                  }
-                }
-
-                //print( uneval(list), "last", list === stack[stack.length-1].list );
-                last_li = [ "listitem" ];
-                list.push(last_li);
-              } // end depth of shenegains
-              nl = "";
-            }
-
-            // Add content
-            if (l.length > m[0].length) {
-              li_accumulate += nl + l.substr( m[0].length );
-            }
-          } // tight_search
-
-          if ( li_accumulate.length ) {
-            add( last_li, loose, this.processInline( li_accumulate ), nl );
-            // Loose mode will have been dealt with. Reset it
-            loose = false;
-            li_accumulate = "";
-          }
-
-          // Look at the next block - we might have a loose list. Or an extra
-          // paragraph for the current li
-          var contained = get_contained_blocks( stack.length, next );
-
-          // Deal with code blocks or properly nested lists
-          if (contained.length > 0) {
-            // Make sure all listitems up the stack are paragraphs
-            forEach( stack, paragraphify, this);
-
-            last_li.push.apply( last_li, this.toTree( contained, [] ) );
-          }
-
-          var next_block = next[0] && next[0].valueOf() || "";
-
-          if ( next_block.match(is_list_re) || next_block.match( /^ / ) ) {
-            block = next.shift();
-
-            // Check for an HR following a list: features/lists/hr_abutting
-            var hr = this.dialect.block.horizRule( block, next );
-
-            if (hr) {
-              ret.push.apply(ret, hr);
-              break;
-            }
-
-            // Make sure all listitems up the stack are paragraphs
-            forEach( stack, paragraphify, this);
-
-            loose = true;
-            continue loose_search;
-          }
-          break;
-        } // loose_search
-
-        return ret;
-      };
-    })(),
-
-    blockquote: function blockquote( block, next ) {
-      if ( !block.match( /^>/m ) )
-        return undefined;
-
-      var jsonml = [];
-
-      // separate out the leading abutting block, if any
-      if ( block[ 0 ] != ">" ) {
-        var lines = block.split( /\n/ ),
-            prev = [];
-
-        // keep shifting lines until you find a crotchet
-        while ( lines.length && lines[ 0 ][ 0 ] != ">" ) {
-            prev.push( lines.shift() );
-        }
-
-        // reassemble!
-        block = lines.join( "\n" );
-        jsonml.push.apply( jsonml, this.processBlock( prev.join( "\n" ), [] ) );
-      }
-
-      // if the next block is also a blockquote merge it in
-      while ( next.length && next[ 0 ][ 0 ] == ">" ) {
-        var b = next.shift();
-        block = new String(block + block.trailing + b);
-        block.trailing = b.trailing;
-      }
-
-      // Strip off the leading "> " and re-process as a block.
-      var input = block.replace( /^> ?/gm, '' ),
-          old_tree = this.tree;
-      jsonml.push( this.toTree( input, [ "blockquote" ] ) );
-
-      return jsonml;
-    },
-
-    referenceDefn: function referenceDefn( block, next) {
-      var re = /^\s*\[(.*?)\]:\s*(\S+)(?:\s+(?:(['"])(.*?)\3|\((.*?)\)))?\n?/;
-      // interesting matches are [ , ref_id, url, , title, title ]
-
-      if ( !block.match(re) )
-        return undefined;
-
-      // make an attribute node if it doesn't exist
-      if ( !extract_attr( this.tree ) ) {
-        this.tree.splice( 1, 0, {} );
-      }
-
-      var attrs = extract_attr( this.tree );
-
-      // make a references hash if it doesn't exist
-      if ( attrs.references === undefined ) {
-        attrs.references = {};
-      }
-
-      var b = this.loop_re_over_block(re, block, function( m ) {
-
-        if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' )
-          m[2] = m[2].substring( 1, m[2].length - 1 );
-
-        var ref = attrs.references[ m[1].toLowerCase() ] = {
-          href: m[2]
-        };
-
-        if (m[4] !== undefined)
-          ref.title = m[4];
-        else if (m[5] !== undefined)
-          ref.title = m[5];
-
-      } );
-
-      if (b.length)
-        next.unshift( mk_block( b, block.trailing ) );
-
-      return [];
-    },
-
-    para: function para( block, next ) {
-      // everything's a para!
-      return [ ["para"].concat( this.processInline( block ) ) ];
-    }
-  }
-};
-
-Markdown.dialects.Gruber.inline = {
-
-    __oneElement__: function oneElement( text, patterns_or_re, previous_nodes ) {
-      var m,
-          res,
-          lastIndex = 0;
-
-      patterns_or_re = patterns_or_re || this.dialect.inline.__patterns__;
-      var re = new RegExp( "([\\s\\S]*?)(" + (patterns_or_re.source || patterns_or_re) + ")" );
-
-      m = re.exec( text );
-      if (!m) {
-        // Just boring text
-        return [ text.length, text ];
-      }
-      else if ( m[1] ) {
-        // Some un-interesting text matched. Return that first
-        return [ m[1].length, m[1] ];
-      }
-
-      var res;
-      if ( m[2] in this.dialect.inline ) {
-        res = this.dialect.inline[ m[2] ].call(
-                  this,
-                  text.substr( m.index ), m, previous_nodes || [] );
-      }
-      // Default for now to make dev easier. just slurp special and output it.
-      res = res || [ m[2].length, m[2] ];
-      return res;
-    },
-
-    __call__: function inline( text, patterns ) {
-
-      var out = [],
-          res;
-
-      function add(x) {
-        //D:self.debug("  adding output", uneval(x));
-        if (typeof x == "string" && typeof out[out.length-1] == "string")
-          out[ out.length-1 ] += x;
-        else
-          out.push(x);
-      }
-
-      while ( text.length > 0 ) {
-        res = this.dialect.inline.__oneElement__.call(this, text, patterns, out );
-        text = text.substr( res.shift() );
-        forEach(res, add )
-      }
-
-      return out;
-    },
-
-    // These characters are intersting elsewhere, so have rules for them so that
-    // chunks of plain text blocks don't include them
-    "]": function () {},
-    "}": function () {},
-
-    "\\": function escaped( text ) {
-      // [ length of input processed, node/children to add... ]
-      // Only esacape: \ ` * _ { } [ ] ( ) # * + - . !
-      if ( text.match( /^\\[\\`\*_{}\[\]()#\+.!\-]/ ) )
-        return [ 2, text[1] ];
-      else
-        // Not an esacpe
-        return [ 1, "\\" ];
-    },
-
-    "![": function image( text ) {
-
-      // Unlike images, alt text is plain text only. no other elements are
-      // allowed in there
-
-      // ![Alt text](/path/to/img.jpg "Optional title")
-      //      1          2            3       4         <--- captures
-      var m = text.match( /^!\[(.*?)\][ \t]*\([ \t]*(\S*)(?:[ \t]+(["'])(.*?)\3)?[ \t]*\)/ );
-
-      if ( m ) {
-        if ( m[2] && m[2][0] == '<' && m[2][m[2].length-1] == '>' )
-          m[2] = m[2].substring( 1, m[2].length - 1 );
-
-        m[2] = this.dialect.inline.__call__.call( this, m[2], /\\/ )[0];
-
-        var attrs = { alt: m[1], href: m[2] || "" };
-        if ( m[4] !== undefined)
-          attrs.title = m[4];
-
-        return [ m[0].length, [ "img", attrs ] ];
-      }
-
-      // ![Alt text][id]
-      m = text.match( /^!\[(.*?)\][ \t]*\[(.*?)\]/ );
-
-      if ( m ) {
-        // We can't check if the reference is known here as it likely wont be
-        // found till after. Check it in md tree->hmtl tree conversion
-        return [ m[0].length, [ "img_ref", { alt: m[1], ref: m[2].toLowerCase(), original: m[0] } ] ];
-      }
-
-      // Just consume the '!['
-      return [ 2, "![" ];
-    },
-
-    "[": function link( text ) {
-
-      var orig = String(text);
-      // Inline content is possible inside `link text`
-      var res = Markdown.DialectHelpers.inline_until_char.call( this, text.substr(1), ']' );
-
-      // No closing ']' found. Just consume the [
-      if ( !res ) return [ 1, '[' ];
-
-      var consumed = 1 + res[ 0 ],
-          children = res[ 1 ],
-          link,
-          attrs;
-
-      // At this point the first [...] has been parsed. See what follows to find
-      // out which kind of link we are (reference or direct url)
-      text = text.substr( consumed );
-
-      // [link text](/path/to/img.jpg "Optional title")
-      //                 1            2       3         <--- captures
-      // This will capture up to the last paren in the block. We then pull
-      // back based on if there a matching ones in the url
-      //    ([here](/url/(test))
-      // The parens have to be balanced
-      var m = text.match( /^\s*\([ \t]*(\S+)(?:[ \t]+(["'])(.*?)\2)?[ \t]*\)/ );
-      if ( m ) {
-        var url = m[1];
-        consumed += m[0].length;
-
-        if ( url && url[0] == '<' && url[url.length-1] == '>' )
-          url = url.substring( 1, url.length - 1 );
-
-        // If there is a title we don't have to worry about parens in the url
-        if ( !m[3] ) {
-          var open_parens = 1; // One open that isn't in the capture
-          for (var len = 0; len < url.length; len++) {
-            switch ( url[len] ) {
-            case '(':
-              open_parens++;
-              break;
-            case ')':
-              if ( --open_parens == 0) {
-                consumed -= url.length - len;
-                url = url.substring(0, len);
-              }
-              break;
-            }
-          }
-        }
-
-        // Process escapes only
-        url = this.dialect.inline.__call__.call( this, url, /\\/ )[0];
-
-        attrs = { href: url || "" };
-        if ( m[3] !== undefined)
-          attrs.title = m[3];
-
-        link = [ "link", attrs ].concat( children );
-        return [ consumed, link ];
-      }
-
-      // [Alt text][id]
-      // [Alt text] [id]
-      m = text.match( /^\s*\[(.*?)\]/ );
-
-      if ( m ) {
-
-        consumed += m[ 0 ].length;
-
-        // [links][] uses links as its reference
-        attrs = { ref: ( m[ 1 ] || String(children) ).toLowerCase(),  original: orig.substr( 0, consumed ) };
-
-        link = [ "link_ref", attrs ].concat( children );
-
-        // We can't check if the reference is known here as it likely wont be
-        // found till after. Check it in md tree->hmtl tree conversion.
-        // Store the original so that conversion can revert if the ref isn't found.
-        return [ consumed, link ];
-      }
-
-      // [id]
-      // Only if id is plain (no formatting.)
-      if ( children.length == 1 && typeof children[0] == "string" ) {
-
-        attrs = { ref: children[0].toLowerCase(),  original: orig.substr( 0, consumed ) };
-        link = [ "link_ref", attrs, children[0] ];
-        return [ consumed, link ];
-      }
-
-      // Just consume the '['
-      return [ 1, "[" ];
-    },
-
-
-    "<": function autoLink( text ) {
-      var m;
-
-      if ( ( m = text.match( /^<(?:((https?|ftp|mailto):[^>]+)|(.*?@.*?\.[a-zA-Z]+))>/ ) ) != null ) {
-        if ( m[3] ) {
-          return [ m[0].length, [ "link", { href: "mailto:" + m[3] }, m[3] ] ];
-
-        }
-        else if ( m[2] == "mailto" ) {
-          return [ m[0].length, [ "link", { href: m[1] }, m[1].substr("mailto:".length ) ] ];
-        }
-        else
-          return [ m[0].length, [ "link", { href: m[1] }, m[1] ] ];
-      }
-
-      return [ 1, "<" ];
-    },
-
-    "`": function inlineCode( text ) {
-      // Inline code block. as many backticks as you like to start it
-      // Always skip over the opening ticks.
-      var m = text.match( /(`+)(([\s\S]*?)\1)/ );
-
-      if ( m && m[2] )
-        return [ m[1].length + m[2].length, [ "inlinecode", m[3] ] ];
-      else {
-        // TODO: No matching end code found - warn!
-        return [ 1, "`" ];
-      }
-    },
-
-    "  \n": function lineBreak( text ) {
-      return [ 3, [ "linebreak" ] ];
-    }
-
-};
-
-// Meta Helper/generator method for em and strong handling
-function strong_em( tag, md ) {
-
-  var state_slot = tag + "_state",
-      other_slot = tag == "strong" ? "em_state" : "strong_state";
-
-  function CloseTag(len) {
-    this.len_after = len;
-    this.name = "close_" + md;
-  }
-
-  return function ( text, orig_match ) {
-
-    if (this[state_slot][0] == md) {
-      // Most recent em is of this type
-      //D:this.debug("closing", md);
-      this[state_slot].shift();
-
-      // "Consume" everything to go back to the recrusion in the else-block below
-      return[ text.length, new CloseTag(text.length-md.length) ];
-    }
-    else {
-      // Store a clone of the em/strong states
-      var other = this[other_slot].slice(),
-          state = this[state_slot].slice();
-
-      this[state_slot].unshift(md);
-
-      //D:this.debug_indent += "  ";
-
-      // Recurse
-      var res = this.processInline( text.substr( md.length ) );
-      //D:this.debug_indent = this.debug_indent.substr(2);
-
-      var last = res[res.length - 1];
-
-      //D:this.debug("processInline from", tag + ": ", uneval( res ) );
-
-      var check = this[state_slot].shift();
-      if (last instanceof CloseTag) {
-        res.pop();
-        // We matched! Huzzah.
-        var consumed = text.length - last.len_after;
-        return [ consumed, [ tag ].concat(res) ];
-      }
-      else {
-        // Restore the state of the other kind. We might have mistakenly closed it.
-        this[other_slot] = other;
-        this[state_slot] = state;
-
-        // We can't reuse the processed result as it could have wrong parsing contexts in it.
-        return [ md.length, md ];
-      }
-    }
-  }; // End returned function
-}
-
-Markdown.dialects.Gruber.inline["**"] = strong_em("strong", "**");
-Markdown.dialects.Gruber.inline["__"] = strong_em("strong", "__");
-Markdown.dialects.Gruber.inline["*"]  = strong_em("em", "*");
-Markdown.dialects.Gruber.inline["_"]  = strong_em("em", "_");
-
-
-// Build default order from insertion order.
-Markdown.buildBlockOrder = function(d) {
-  var ord = [];
-  for ( var i in d ) {
-    if ( i == "__order__" || i == "__call__" ) continue;
-    ord.push( i );
-  }
-  d.__order__ = ord;
-};
-
-// Build patterns for inline matcher
-Markdown.buildInlinePatterns = function(d) {
-  var patterns = [];
-
-  for ( var i in d ) {
-    // __foo__ is reserved and not a pattern
-    if ( i.match( /^__.*__$/) ) continue;
-    var l = i.replace( /([\\.*+?|()\[\]{}])/g, "\\$1" )
-             .replace( /\n/, "\\n" );
-    patterns.push( i.length == 1 ? l : "(?:" + l + ")" );
-  }
-
-  patterns = patterns.join("|");
-  d.__patterns__ = patterns;
-  //print("patterns:", uneval( patterns ) );
-
-  var fn = d.__call__;
-  d.__call__ = function(text, pattern) {
-    if (pattern != undefined) {
-      return fn.call(this, text, pattern);
-    }
-    else
-    {
-      return fn.call(this, text, patterns);
-    }
-  };
-};
-
-Markdown.DialectHelpers = {};
-Markdown.DialectHelpers.inline_until_char = function( text, want ) {
-  var consumed = 0,
-      nodes = [];
-
-  while ( true ) {
-    if ( text[ consumed ] == want ) {
-      // Found the character we were looking for
-      consumed++;
-      return [ consumed, nodes ];
-    }
-
-    if ( consumed >= text.length ) {
-      // No closing char found. Abort.
-      return null;
-    }
-
-    var res = this.dialect.inline.__oneElement__.call(this, text.substr( consumed ) );
-    consumed += res[ 0 ];
-    // Add any returned nodes.
-    nodes.push.apply( nodes, res.slice( 1 ) );
-  }
-}
-
-// Helper function to make sub-classing a dialect easier
-Markdown.subclassDialect = function( d ) {
-  function Block() {}
-  Block.prototype = d.block;
-  function Inline() {}
-  Inline.prototype = d.inline;
-
-  return { block: new Block(), inline: new Inline() };
-};
-
-Markdown.buildBlockOrder ( Markdown.dialects.Gruber.block );
-Markdown.buildInlinePatterns( Markdown.dialects.Gruber.inline );
-
-Markdown.dialects.Maruku = Markdown.subclassDialect( Markdown.dialects.Gruber );
-
-Markdown.dialects.Maruku.processMetaHash = function processMetaHash( meta_string ) {
-  var meta = split_meta_hash( meta_string ),
-      attr = {};
-
-  for ( var i = 0; i < meta.length; ++i ) {
-    // id: #foo
-    if ( /^#/.test( meta[ i ] ) ) {
-      attr.id = meta[ i ].substring( 1 );
-    }
-    // class: .foo
-    else if ( /^\./.test( meta[ i ] ) ) {
-      // if class already exists, append the new one
-      if ( attr['class'] ) {
-        attr['class'] = attr['class'] + meta[ i ].replace( /./, " " );
-      }
-      else {
-        attr['class'] = meta[ i ].substring( 1 );
-      }
-    }
-    // attribute: foo=bar
-    else if ( /\=/.test( meta[ i ] ) ) {
-      var s = meta[ i ].split( /\=/ );
-      attr[ s[ 0 ] ] = s[ 1 ];
-    }
-  }
-
-  return attr;
-}
-
-function split_meta_hash( meta_string ) {
-  var meta = meta_string.split( "" ),
-      parts = [ "" ],
-      in_quotes = false;
-
-  while ( meta.length ) {
-    var letter = meta.shift();
-    switch ( letter ) {
-      case " " :
-        // if we're in a quoted section, keep it
-        if ( in_quotes ) {
-          parts[ parts.length - 1 ] += letter;
-        }
-        // otherwise make a new part
-        else {
-          parts.push( "" );
-        }
-        break;
-      case "'" :
-      case '"' :
-        // reverse the quotes and move straight on
-        in_quotes = !in_quotes;
-        break;
-      case "\\" :
-        // shift off the next letter to be used straight away.
-        // it was escaped so we'll keep it whatever it is
-        letter = meta.shift();
-      default :
-        parts[ parts.length - 1 ] += letter;
-        break;
-    }
-  }
-
-  return parts;
-}
-
-Markdown.dialects.Maruku.block.document_meta = function document_meta( block, next ) {
-  // we're only interested in the first block
-  if ( block.lineNumber > 1 ) return undefined;
-
-  // document_meta blocks consist of one or more lines of `Key: Value\n`
-  if ( ! block.match( /^(?:\w+:.*\n)*\w+:.*$/ ) ) return undefined;
-
-  // make an attribute node if it doesn't exist
-  if ( !extract_attr( this.tree ) ) {
-    this.tree.splice( 1, 0, {} );
-  }
-
-  var pairs = block.split( /\n/ );
-  for ( p in pairs ) {
-    var m = pairs[ p ].match( /(\w+):\s*(.*)$/ ),
-        key = m[ 1 ].toLowerCase(),
-        value = m[ 2 ];
-
-    this.tree[ 1 ][ key ] = value;
-  }
-
-  // document_meta produces no content!
-  return [];
-};
-
-Markdown.dialects.Maruku.block.block_meta = function block_meta( block, next ) {
-  // check if the last line of the block is an meta hash
-  var m = block.match( /(^|\n) {0,3}\{:\s*((?:\\\}|[^\}])*)\s*\}$/ );
-  if ( !m ) return undefined;
-
-  // process the meta hash
-  var attr = this.dialect.processMetaHash( m[ 2 ] );
-
-  var hash;
-
-  // if we matched ^ then we need to apply meta to the previous block
-  if ( m[ 1 ] === "" ) {
-    var node = this.tree[ this.tree.length - 1 ];
-    hash = extract_attr( node );
-
-    // if the node is a string (rather than JsonML), bail
-    if ( typeof node === "string" ) return undefined;
-
-    // create the attribute hash if it doesn't exist
-    if ( !hash ) {
-      hash = {};
-      node.splice( 1, 0, hash );
-    }
-
-    // add the attributes in
-    for ( a in attr ) {
-      hash[ a ] = attr[ a ];
-    }
-
-    // return nothing so the meta hash is removed
-    return [];
-  }
-
-  // pull the meta hash off the block and process what's left
-  var b = block.replace( /\n.*$/, "" ),
-      result = this.processBlock( b, [] );
-
-  // get or make the attributes hash
-  hash = extract_attr( result[ 0 ] );
-  if ( !hash ) {
-    hash = {};
-    result[ 0 ].splice( 1, 0, hash );
-  }
-
-  // attach the attributes to the block
-  for ( a in attr ) {
-    hash[ a ] = attr[ a ];
-  }
-
-  return result;
-};
-
-Markdown.dialects.Maruku.block.definition_list = function definition_list( block, next ) {
-  // one or more terms followed by one or more definitions, in a single block
-  var tight = /^((?:[^\s:].*\n)+):\s+([\s\S]+)$/,
-      list = [ "dl" ],
-      i;
-
-  // see if we're dealing with a tight or loose block
-  if ( ( m = block.match( tight ) ) ) {
-    // pull subsequent tight DL blocks out of `next`
-    var blocks = [ block ];
-    while ( next.length && tight.exec( next[ 0 ] ) ) {
-      blocks.push( next.shift() );
-    }
-
-    for ( var b = 0; b < blocks.length; ++b ) {
-      var m = blocks[ b ].match( tight ),
-          terms = m[ 1 ].replace( /\n$/, "" ).split( /\n/ ),
-          defns = m[ 2 ].split( /\n:\s+/ );
-
-      // print( uneval( m ) );
-
-      for ( i = 0; i < terms.length; ++i ) {
-        list.push( [ "dt", terms[ i ] ] );
-      }
-
-      for ( i = 0; i < defns.length; ++i ) {
-        // run inline processing over the definition
-        list.push( [ "dd" ].concat( this.processInline( defns[ i ].replace( /(\n)\s+/, "$1" ) ) ) );
-      }
-    }
-  }
-  else {
-    return undefined;
-  }
-
-  return [ list ];
-};
-
-Markdown.dialects.Maruku.inline[ "{:" ] = function inline_meta( text, matches, out ) {
-  if ( !out.length ) {
-    return [ 2, "{:" ];
-  }
-
-  // get the preceeding element
-  var before = out[ out.length - 1 ];
-
-  if ( typeof before === "string" ) {
-    return [ 2, "{:" ];
-  }
-
-  // match a meta hash
-  var m = text.match( /^\{:\s*((?:\\\}|[^\}])*)\s*\}/ );
-
-  // no match, false alarm
-  if ( !m ) {
-    return [ 2, "{:" ];
-  }
-
-  // attach the attributes to the preceeding element
-  var meta = this.dialect.processMetaHash( m[ 1 ] ),
-      attr = extract_attr( before );
-
-  if ( !attr ) {
-    attr = {};
-    before.splice( 1, 0, attr );
-  }
-
-  for ( var k in meta ) {
-    attr[ k ] = meta[ k ];
-  }
-
-  // cut out the string and replace it with nothing
-  return [ m[ 0 ].length, "" ];
-};
-
-Markdown.buildBlockOrder ( Markdown.dialects.Maruku.block );
-Markdown.buildInlinePatterns( Markdown.dialects.Maruku.inline );
-
-var isArray = Array.isArray || function(obj) {
-  return Object.prototype.toString.call(obj) == '[object Array]';
-};
-
-var forEach;
-// Don't mess with Array.prototype. Its not friendly
-if ( Array.prototype.forEach ) {
-  forEach = function( arr, cb, thisp ) {
-    return arr.forEach( cb, thisp );
-  };
-}
-else {
-  forEach = function(arr, cb, thisp) {
-    for (var i = 0; i < arr.length; i++) {
-      cb.call(thisp || arr, arr[i], i, arr);
-    }
-  }
-}
-
-function extract_attr( jsonml ) {
-  return isArray(jsonml)
-      && jsonml.length > 1
-      && typeof jsonml[ 1 ] === "object"
-      && !( isArray(jsonml[ 1 ]) )
-      ? jsonml[ 1 ]
-      : undefined;
-}
-
-
-
-/**
- *  renderJsonML( jsonml[, options] ) -> String
- *  - jsonml (Array): JsonML array to render to XML
- *  - options (Object): options
- *
- *  Converts the given JsonML into well-formed XML.
- *
- *  The options currently understood are:
- *
- *  - root (Boolean): wether or not the root node should be included in the
- *    output, or just its children. The default `false` is to not include the
- *    root itself.
- */
-expose.renderJsonML = function( jsonml, options ) {
-  options = options || {};
-  // include the root element in the rendered output?
-  options.root = options.root || false;
-
-  var content = [];
-
-  if ( options.root ) {
-    content.push( render_tree( jsonml ) );
-  }
-  else {
-    jsonml.shift(); // get rid of the tag
-    if ( jsonml.length && typeof jsonml[ 0 ] === "object" && !( jsonml[ 0 ] instanceof Array ) ) {
-      jsonml.shift(); // get rid of the attributes
-    }
-
-    while ( jsonml.length ) {
-      content.push( render_tree( jsonml.shift() ) );
-    }
-  }
-
-  return content.join( "\n\n" );
-};
-
-function escapeHTML( text ) {
-  return text.replace( /&/g, "&amp;" )
-             .replace( /</g, "&lt;" )
-             .replace( />/g, "&gt;" )
-             .replace( /"/g, "&quot;" )
-             .replace( /'/g, "&#39;" );
-}
-
-function render_tree( jsonml ) {
-  // basic case
-  if ( typeof jsonml === "string" ) {
-    return escapeHTML( jsonml );
-  }
-
-  var tag = jsonml.shift(),
-      attributes = {},
-      content = [];
-
-  if ( jsonml.length && typeof jsonml[ 0 ] === "object" && !( jsonml[ 0 ] instanceof Array ) ) {
-    attributes = jsonml.shift();
-  }
-
-  while ( jsonml.length ) {
-    content.push( arguments.callee( jsonml.shift() ) );
-  }
-
-  var tag_attrs = "";
-  for ( var a in attributes ) {
-    tag_attrs += " " + a + '="' + escapeHTML( attributes[ a ] ) + '"';
-  }
-
-  // be careful about adding whitespace here for inline elements
-  if ( tag == "img" || tag == "br" || tag == "hr" ) {
-    return "<"+ tag + tag_attrs + "/>";
-  }
-  else {
-    return "<"+ tag + tag_attrs + ">" + content.join( "" ) + "</" + tag + ">";
-  }
-}
-
-function convert_tree_to_html( tree, references, options ) {
-  var i;
-  options = options || {};
-
-  // shallow clone
-  var jsonml = tree.slice( 0 );
-
-  if (typeof options.preprocessTreeNode === "function") {
-      jsonml = options.preprocessTreeNode(jsonml, references);
-  }
-
-  // Clone attributes if they exist
-  var attrs = extract_attr( jsonml );
-  if ( attrs ) {
-    jsonml[ 1 ] = {};
-    for ( i in attrs ) {
-      jsonml[ 1 ][ i ] = attrs[ i ];
-    }
-    attrs = jsonml[ 1 ];
-  }
-
-  // basic case
-  if ( typeof jsonml === "string" ) {
-    return jsonml;
-  }
-
-  // convert this node
-  switch ( jsonml[ 0 ] ) {
-    case "header":
-      jsonml[ 0 ] = "h" + jsonml[ 1 ].level;
-      delete jsonml[ 1 ].level;
-      break;
-    case "bulletlist":
-      jsonml[ 0 ] = "ul";
-      break;
-    case "numberlist":
-      jsonml[ 0 ] = "ol";
-      break;
-    case "listitem":
-      jsonml[ 0 ] = "li";
-      break;
-    case "para":
-      jsonml[ 0 ] = "p";
-      break;
-    case "markdown":
-      jsonml[ 0 ] = "html";
-      if ( attrs ) delete attrs.references;
-      break;
-    case "code_block":
-      jsonml[ 0 ] = "pre";
-      i = attrs ? 2 : 1;
-      var code = [ "code" ];
-      code.push.apply( code, jsonml.splice( i ) );
-      jsonml[ i ] = code;
-      break;
-    case "inlinecode":
-      jsonml[ 0 ] = "code";
-      break;
-    case "img":
-      jsonml[ 1 ].src = jsonml[ 1 ].href;
-      delete jsonml[ 1 ].href;
-      break;
-    case "linebreak":
-      jsonml[ 0 ] = "br";
-    break;
-    case "link":
-      jsonml[ 0 ] = "a";
-      break;
-    case "link_ref":
-      jsonml[ 0 ] = "a";
-
-      // grab this ref and clean up the attribute node
-      var ref = references[ attrs.ref ];
-
-      // if the reference exists, make the link
-      if ( ref ) {
-        delete attrs.ref;
-
-        // add in the href and title, if present
-        attrs.href = ref.href;
-        if ( ref.title ) {
-          attrs.title = ref.title;
-        }
-
-        // get rid of the unneeded original text
-        delete attrs.original;
-      }
-      // the reference doesn't exist, so revert to plain text
-      else {
-        return attrs.original;
-      }
-      break;
-    case "img_ref":
-      jsonml[ 0 ] = "img";
-
-      // grab this ref and clean up the attribute node
-      var ref = references[ attrs.ref ];
-
-      // if the reference exists, make the link
-      if ( ref ) {
-        delete attrs.ref;
-
-        // add in the href and title, if present
-        attrs.src = ref.href;
-        if ( ref.title ) {
-          attrs.title = ref.title;
-        }
-
-        // get rid of the unneeded original text
-        delete attrs.original;
-      }
-      // the reference doesn't exist, so revert to plain text
-      else {
-        return attrs.original;
-      }
-      break;
-  }
-
-  // convert all the children
-  i = 1;
-
-  // deal with the attribute node, if it exists
-  if ( attrs ) {
-    // if there are keys, skip over it
-    for ( var key in jsonml[ 1 ] ) {
-      i = 2;
-    }
-    // if there aren't, remove it
-    if ( i === 1 ) {
-      jsonml.splice( i, 1 );
-    }
-  }
-
-  for ( ; i < jsonml.length; ++i ) {
-    jsonml[ i ] = arguments.callee( jsonml[ i ], references, options );
-  }
-
-  return jsonml;
-}
-
-
-// merges adjacent text nodes into a single node
-function merge_text_nodes( jsonml ) {
-  // skip the tag name and attribute hash
-  var i = extract_attr( jsonml ) ? 2 : 1;
-
-  while ( i < jsonml.length ) {
-    // if it's a string check the next item too
-    if ( typeof jsonml[ i ] === "string" ) {
-      if ( i + 1 < jsonml.length && typeof jsonml[ i + 1 ] === "string" ) {
-        // merge the second string into the first and remove it
-        jsonml[ i ] += jsonml.splice( i + 1, 1 )[ 0 ];
-      }
-      else {
-        ++i;
-      }
-    }
-    // if it's not a string recurse
-    else {
-      arguments.callee( jsonml[ i ] );
-      ++i;
-    }
-  }
-}
-
-} )( (function() {
-  if ( typeof exports === "undefined" ) {
-    window.markdown = {};
-    return window.markdown;
-  }
-  else {
-    return exports;
-  }
-} )() );
\ No newline at end of file
diff --git a/milfs/js/scripts.js b/milfs/js/scripts.js
deleted file mode 100644
index f40910c..0000000
--- a/milfs/js/scripts.js
+++ /dev/null
@@ -1,567 +0,0 @@
-function loadArticle(pageNumber,id,plantilla,registros,scroll) {
-
-	var newDiv = document.createElement('div');
-	document.getElementById(scroll).appendChild(newDiv);
-
-	$.ajax({
-
-		url: './milfs/api.php?id='+id+'&tipo=simple&formato=li&plantilla='+plantilla+'&registros='+registros+'&pagina=' + pageNumber,
-		type: 'POST',
-		dataType: 'html',
-		success: function(html) {
-			//	$('#scroll-contentx').append(html);
-			var contenido = html;
-			newDiv.innerHTML = contenido;
-		}
-
-	});
-	
-	}
-	
-	
-   function leer_exif(campo,campo_mapa) {
-  // alert(campo)
-           // var file = e.target.files[0]
-            var file =  document.getElementById(campo).files
-            file= file[0]
-            if (file && file.name) {
-                EXIF.getData(file, function() {
-                	var long = EXIF.getTag(this, 'GPSLongitude');
-                	var reflat = EXIF.getTag(this, 'GPSLatitudeRef');              	
-                	var reflon = EXIF.getTag(this, 'GPSLongitudeRef');              	
-                	var lat = EXIF.getTag(this, 'GPSLatitude');
-                	var altura = EXIF.getTag(this, 'GPSAltitude');
-                	
-                	/*     if ( $exif['GPSLongitudeRef'] == 'W')
-        $gps_longitude = -$gps_longitude; */
-                	var toDecimal = function (number) {
-						       return number[0].numerator + number[1].numerator / (60 * number[1].denominator) + number[2].numerator / (3600 * number[2].denominator);
-						   };
-                   var exifData = EXIF.pretty(this);
-                    if (exifData) {
-                    				long = toDecimal(long);
-                                    	if (reflon == 'W') {
-							                		long = -long;
-							                	}
-                    				lat = toDecimal(lat);
-                                    	if (reflat == 'S') {
-							                		lat = -lat;
-							                	}
-							                	
-
-                	var coordenadas =  "./milfs/mapa.php?lon="+lat+"&lat="+long+"&zoom=18&id="+campo_mapa+"[0]";
-                       // alert(long+' '+lat+' '+altura );
-                        document.getElementById('mapita').contentWindow.document.location.href=coordenadas;
-                        var minimapa = campo+"//<img class='lazy img-round img img-responsive'  src ='http://staticmap.openstreetmap.de/staticmap.php?center="+lat+","+long+"&zoom=12&size=250x100&maptype=mapnik&markers="+lat+","+long+",red-pushpin' >";
-  								document.getElementById("geo_"+campo).innerHTML = minimapa;     
-        
-                   } else {
-                     //   alert("No EXIF data found in image '" + file.name + "'.");
-                    }
-                });
-            }
-            else{
-//alert(file.name)            
-            }
-        }
-
-
-
-function comprueba_imagen(campo,item, archivo,campo_mapa,ubicacion) { 
-	var ubicacion;
-   extensiones_permitidas = new Array('.gif', '.jpg', '.png', '.mp4', '.3gp', '.mov'); 
-   mierror = ''; 
-   if (!archivo) { 
-      //Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario 
-      	mierror = 'No has seleccionado ningún archivo'; 
-   }else{ 
-      //recupero la extensión de este nombre de archivo 
-      extension = (archivo.substring(archivo.lastIndexOf('.'))).toLowerCase(); 
-      //alert (extension); 
-      //compruebo si la extensión está entre las permitidas 
-      permitida = false; 
-      for (var i = 0; i < extensiones_permitidas.length; i++) { 
-         if (extensiones_permitidas[i] == extension) { 
-         permitida = true; 
-         break; 
-         } 
-      } 
-      if (!permitida) { 
-         mierror = 'Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: ' + extensiones_permitidas.join(); 
-      	}else{ 
-         	//submito! 
-         ///alert ('Todo correcto. Voy a submitir el formulario.'); 
-         selectedFile(campo,item,campo_mapa,ubicacion);
-         //uploadFile(campo,item);
-        // formulario.submit(); 
-         return 1; 
-      	} 
-   } 
-   //si estoy aqui es que no se ha podido submitir 
-   alert (mierror); 
-   return 0; 
-}
-
-function comprueba_archivos(campo,item, archivo,campo_mapa,ubicacion) { 
-	var ubicacion;
-   extensiones_permitidas = new Array('.gif', '.jpg', '.jpeg', '.png', '.pdf', '.txt', '.csv', '.mp3', '.mov', '.mp4', '.orf', '.gpx', '.json'); 
-   mierror = ''; 
-   if (!archivo) { 
-      //Si no tengo archivo, es que no se ha seleccionado un archivo en el formulario 
-      	mierror = 'No has seleccionado ningún archivo'; 
-   }else{ 
-      //recupero la extensión de este nombre de archivo 
-      extension = (archivo.substring(archivo.lastIndexOf('.'))).toLowerCase(); 
-      //alert (extension); 
-      //compruebo si la extensión está entre las permitidas 
-      permitida = false; 
-      for (var i = 0; i < extensiones_permitidas.length; i++) { 
-         if (extensiones_permitidas[i] == extension) { 
-         permitida = true; 
-         break; 
-         } 
-      } 
-      if (!permitida) { 
-         mierror = 'Comprueba la extensión de los archivos a subir. \nSólo se pueden subir archivos con extensiones: ' + extensiones_permitidas.join(); 
-      	}else{ 
-         	//submito! 
-         //alert ('Todo correcto. Voy a submitir el formulario.'); 
-         selectedFile(campo,item,campo_mapa,ubicacion);
-        // formulario.submit(); 
-         return 1; 
-      	} 
-   } 
-   //si estoy aqui es que no se ha podido submitir 
-   alert (mierror); 
-   return 0; 
-}
-
-//// funciones upload_generico
-             function selectedFile(campo,item,campo_mapa,ubicacion) {
-              	var campo;
-              	var ubicacion;
-              	var item;
-              	var nombre = campo+"["+item+"]";
-                var archivoSeleccionado = document.getElementById(campo+"-"+item);
-            //    alert(nombre);
-                var file = archivoSeleccionado.files[0];
-                if (file) {
-					
-                    var fileSize = 0;
-                    if (file.size > 1048576)
-                       { fileSize = (Math.round(file.size * 100 / 1048576) / 100).toString() + ' MB';}
-                    else
-                       { fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + ' Kb';}
- 						if (file.size > 62428800) {
- 						alert("El archivo no debe exceder 5MB");
- 						 document.getElementById("div_preview_"+nombre).innerHTML = "<div class='alert alert-danger'><h1>Archivo no valido<small> " + file.name+"</small></h1></div>";
- 						 document.getElementById("alert_"+nombre).className = "alert alert-warning";
- 						 document.getElementById("fileSize_"+nombre).innerHTML = " ";
- 						 document.getElementById("fileType_"+nombre).innerHTML = " ";
- 						 document.getElementById("percentageCalc_"+nombre).innerHTML = "Error subiendo el archivo";
- 						 
- 						 ///               xmlHTTP.addEventListener("error", uploadFailed, false);
- 						}else{
- 						///alert("Todo buen");
- 						uploadFile(campo,item,ubicacion);
-                    var divfileSize = document.getElementById('fileSize_'+nombre);
-                    var divfileType = document.getElementById('fileType_'+nombre);
-                    var divfileName = document.getElementById('fileName_'+nombre);
-                    divfileSize.innerHTML = 'Tamaño: <strong>' + fileSize+"</strong>";
-                    divfileType.innerHTML = 'Tipo: <strong>' + file.type+"</strong>";
-                    divfileName.innerHTML = 'Nombre original: <strong>' + file.name+"</strong><div id='geo_"+campo+"-"+item+"'></div>" ;
-                    if ((file.type != "image/jpeg") && (file.type != "image/png")  ) {
-                    	
-                    document.getElementById("div_preview_"+nombre).innerHTML = "<h2><i class='fa fa-file' aria-hidden='true'></i><br>"+file.type+"</h2>";
-                    }else{
-                    
-                    	leer_exif(campo+"-"+item,campo_mapa)
-                    		document.getElementById("div_preview_"+nombre).innerHTML = "<h2>"+file.type+"</h2>";
-                        document.getElementById("image_preview_"+nombre).src = window.URL.createObjectURL(archivoSeleccionado.files[0]);
-                       // document.getElementById("image_preview_"+nombre).alt = file.type;
-                     }
-                       document.getElementById("alert_"+nombre).className = "alert alert-success";
-                        
-
-							 }
- 
-                }
-              }     
-
-            function uploadFile(campo,item,ubicacion) {
-              	var campo;
-              	var item;
-              	var ubicacion;
-              	var nombre = campo+"["+item+"]";
-
-      var archivoSeleccionado = document.getElementById(campo+"-"+item);
-                var file = archivoSeleccionado.files[0];
-                var extension = getFileExtension(file.name);
-                var nombrecillo = hex_md5(Math.random()+file.name)+"."+extension;
-               // var arreglo = '[{"nombre_original":"'+file.name+'","tipo":"'+file.type+'","nombre":"'+nombrecillo+'","campo":"'+campo+'","item":"'+item+'","size":"'+file.size+'","extensión":"'+extension+'"}]';
-                //var myJsonString = JSON.stringify(arreglo);
-               
-               //document.getElementById(nombre).value=nombrecillo;
-               
-               document.getElementById(nombre).value=nombrecillo;
-               if(ubicacion =="externo"){
-					var url = "../milfs/includes/upload_generico.php?nombrecillo="+nombrecillo+"&campo="+campo+"&item="+item+"&ubicacion="+ubicacion;
-				}else{
-					var url = "milfs/includes/upload_generico.php?nombrecillo="+nombrecillo+"&campo="+campo+"&item="+item+"&ubicacion="+ubicacion;
-				}
-				///alert(url);
-                var fd = new FormData();
-                fd.append(campo+"-"+item, file);
-                
-                var xmlHTTP= new XMLHttpRequest();
-
-                xmlHTTP.upload.addEventListener("progress", progressFunction, false);
-                document.getElementById("percentageCalc_"+nombre).innerHTML = " ";
-                xmlHTTP.addEventListener("error", uploadFailed, false);
-                xmlHTTP.addEventListener("abort", uploadCanceled, false);
-                xmlHTTP.open("POST", url, true);
-                //xmlHTTP.setRequestHeader('book_id','10');
-                xmlHTTP.send(fd);
-            }       
- 
-            function progressFunction(evt){
-            	
-                var progressBar = document.getElementById("progressBar_");
-                var percentageDiv = document.getElementById("percentageCalc_");
-                if (evt.lengthComputable) {
-                    progressBar.max = evt.total;
-                    progressBar.value = evt.loaded;
-                    percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
-                }
-            }
-			  function getFileExtension(filename) {
-				  return filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);
-				}
-
-            function uploadFailed(evt) {
-                alert("Hubo un error al subir el archivo.");
-            }
- 
-            function uploadCanceled(evt) {
-                alert("La operación se canceló o la conexión fue interrunpida.");
-            }
-
-
-var hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d<c.length;d++){a=c.charCodeAt(d);b+=f.charAt((a>>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d<c.length){a=c.charCodeAt(d);e=d+1<c.length?c.charCodeAt(d+1):0;if(55296<=a&&a<=56319&&56320<=e&&e<=57343){a=65536+((a&1023)<<10)+(e&1023);d++}if(a<=127){b+=String.fromCharCode(a)}else{if(a<=2047){b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c<a.length;c++){a[c]=0}for(var c=0;c<b.length*8;c+=8){a[c>>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c<b.length*32;c+=8){a+=String.fromCharCode((b[c>>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g<p.length;g+=16){var j=o;var h=n;var f=m;var e=l;o=md5_ff(o,n,m,l,p[g+0],7,-680876936);l=md5_ff(l,o,n,m,p[g+1],12,-389564586);m=md5_ff(m,l,o,n,p[g+2],17,606105819);n=md5_ff(n,m,l,o,p[g+3],22,-1044525330);o=md5_ff(o,n,m,l,p[g+4],7,-176418897);l=md5_ff(l,o,n,m,p[g+5],12,1200080426);m=md5_ff(m,l,o,n,p[g+6],17,-1473231341);n=md5_ff(n,m,l,o,p[g+7],22,-45705983);o=md5_ff(o,n,m,l,p[g+8],7,1770035416);l=md5_ff(l,o,n,m,p[g+9],12,-1958414417);m=md5_ff(m,l,o,n,p[g+10],17,-42063);n=md5_ff(n,m,l,o,p[g+11],22,-1990404162);o=md5_ff(o,n,m,l,p[g+12],7,1804603682);l=md5_ff(l,o,n,m,p[g+13],12,-40341101);m=md5_ff(m,l,o,n,p[g+14],17,-1502002290);n=md5_ff(n,m,l,o,p[g+15],22,1236535329);o=md5_gg(o,n,m,l,p[g+1],5,-165796510);l=md5_gg(l,o,n,m,p[g+6],9,-1069501632);m=md5_gg(m,l,o,n,p[g+11],14,643717713);n=md5_gg(n,m,l,o,p[g+0],20,-373897302);o=md5_gg(o,n,m,l,p[g+5],5,-701558691);l=md5_gg(l,o,n,m,p[g+10],9,38016083);m=md5_gg(m,l,o,n,p[g+15],14,-660478335);n=md5_gg(n,m,l,o,p[g+4],20,-405537848);o=md5_gg(o,n,m,l,p[g+9],5,568446438);l=md5_gg(l,o,n,m,p[g+14],9,-1019803690);m=md5_gg(m,l,o,n,p[g+3],14,-187363961);n=md5_gg(n,m,l,o,p[g+8],20,1163531501);o=md5_gg(o,n,m,l,p[g+13],5,-1444681467);l=md5_gg(l,o,n,m,p[g+2],9,-51403784);m=md5_gg(m,l,o,n,p[g+7],14,1735328473);n=md5_gg(n,m,l,o,p[g+12],20,-1926607734);o=md5_hh(o,n,m,l,p[g+5],4,-378558);l=md5_hh(l,o,n,m,p[g+8],11,-2022574463);m=md5_hh(m,l,o,n,p[g+11],16,1839030562);n=md5_hh(n,m,l,o,p[g+14],23,-35309556);o=md5_hh(o,n,m,l,p[g+1],4,-1530992060);l=md5_hh(l,o,n,m,p[g+4],11,1272893353);m=md5_hh(m,l,o,n,p[g+7],16,-155497632);n=md5_hh(n,m,l,o,p[g+10],23,-1094730640);o=md5_hh(o,n,m,l,p[g+13],4,681279174);l=md5_hh(l,o,n,m,p[g+0],11,-358537222);m=md5_hh(m,l,o,n,p[g+3],16,-722521979);n=md5_hh(n,m,l,o,p[g+6],23,76029189);o=md5_hh(o,n,m,l,p[g+9],4,-640364487);l=md5_hh(l,o,n,m,p[g+12],11,-421815835);m=md5_hh(m,l,o,n,p[g+15],16,530742520);n=md5_hh(n,m,l,o,p[g+2],23,-995338651);o=md5_ii(o,n,m,l,p[g+0],6,-198630844);l=md5_ii(l,o,n,m,p[g+7],10,1126891415);m=md5_ii(m,l,o,n,p[g+14],15,-1416354905);n=md5_ii(n,m,l,o,p[g+5],21,-57434055);o=md5_ii(o,n,m,l,p[g+12],6,1700485571);l=md5_ii(l,o,n,m,p[g+3],10,-1894986606);m=md5_ii(m,l,o,n,p[g+10],15,-1051523);n=md5_ii(n,m,l,o,p[g+1],21,-2054922799);o=md5_ii(o,n,m,l,p[g+8],6,1873313359);l=md5_ii(l,o,n,m,p[g+15],10,-30611744);m=md5_ii(m,l,o,n,p[g+6],15,-1560198380);n=md5_ii(n,m,l,o,p[g+13],21,1309151649);o=md5_ii(o,n,m,l,p[g+4],6,-145523070);l=md5_ii(l,o,n,m,p[g+11],10,-1120210379);m=md5_ii(m,l,o,n,p[g+2],15,718787259);n=md5_ii(n,m,l,o,p[g+9],21,-343485551);o=safe_add(o,j);n=safe_add(n,h);m=safe_add(m,f);l=safe_add(l,e)}return Array(o,n,m,l)}function md5_cmn(h,e,d,c,g,f){return safe_add(bit_rol(safe_add(safe_add(e,h),safe_add(c,f)),g),d)}function md5_ff(g,f,k,j,e,i,h){return md5_cmn((f&k)|((~f)&j),g,f,e,i,h)}function md5_gg(g,f,k,j,e,i,h){return md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)}function md5_hh(g,f,k,j,e,i,h){return md5_cmn(f^k^j,g,f,e,i,h)}function md5_ii(g,f,k,j,e,i,h){return md5_cmn(k^(f|(~j)),g,f,e,i,h)}function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<<b)|(a>>>(32-b))};
-
-/// fin funciones upload generico
-
-
-
-
-
-//// drag div
-// Cargo los ID's de los arrays que se convierten en "scrollables"
-var scrollDivs=new Array();
-scrollDivs[0]="despacho";
-scrollDivs[1]="";
-/*
-function carga()
-{
-	posicion=0;
-	
-	// IE
-	if(navigator.userAgent.indexOf("MSIE")>=0) navegador=0;
-	// Otros
-	else navegador=1;
-
-	registraDivs();
-}
-*/
-/*
-function registraDivs()
-{
-	for(divId in scrollDivs)
-	{
-		document.getElementById(scrollDivs[divId]).onmouseover=function() { this.style.cursor="move"; }
-		document.getElementById(scrollDivs[divId]).ondblclick=comienzoMovimiento;
-	}
-}
-*/
-function evitaEventos(event)
-{
-	// Funcion que evita que se ejecuten eventos adicionales
-	if(navegador==0)
-	{
-		//window.event.cancelBubble=true;
-		//window.event.returnValue=false;
-	}
-	//if(navegador==1) event.preventDefault();
-}
-
-function comienzoMovimiento(event)
-{
-	var id=this.id;
-	elMovimiento=document.getElementById(id);
-	
-	 // Obtengo la posicion del cursor
-	 
-	if(navegador==0)
-	 {
-	 	cursorComienzoX=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
-		cursorComienzoY=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
-	}
-	if(navegador==1)
-	{    
-		cursorComienzoX=event.clientX+window.scrollX;
-		cursorComienzoY=event.clientY+window.scrollY;
-	}
-	
-	elMovimiento.onmousemove=enMovimiento;
-	elMovimiento.onmouseup=finMovimiento;
-	
-	elComienzoX=parseInt(elMovimiento.style.left);
-	elComienzoY=parseInt(elMovimiento.style.top);
-	// Actualizo el posicion del elemento
-	elMovimiento.style.zIndex=++posicion;
-	
-	evitaEventos(event);
-}
-
-function enMovimiento(event)
-{  
-	var xActual, yActual;
-	if(navegador==0)
-	{    
-		xActual=window.event.clientX+document.documentElement.scrollLeft+document.body.scrollLeft;
-		yActual=window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop;
-	}  
-	if(navegador==1)
-	{
-		xActual=event.clientX+window.scrollX;
-		yActual=event.clientY+window.scrollY;
-	}
-	
-	elMovimiento.style.left=(elComienzoX+xActual-cursorComienzoX)+"px";
-	elMovimiento.style.top=(elComienzoY+yActual-cursorComienzoY)+"px";
-
-	evitaEventos(event);
-}
-
-function finMovimiento(event)
-{
-	elMovimiento.onmousemove=null;
-	elMovimiento.onmouseup=null;
-}
-
-//window.onload=carga;
-//// fin drag div
-
-
-function resultadoUpload(estado, file,respuesta,id,coordenadas) {
-var link = '<br />';
-var formupload = 'formUpload_'+ id;
-if (estado == 0)
-var mensaje = '<img class=" img-thumbnail responsive" src="'+respuesta+'images/secure/?file=300/' + file + '" >' + link;
-
-if (estado == 1)
-var mensaje = 'Error ! - El Archivo no llego al servidor' + link;
-
-if (estado == 2)
-{var mensaje = '<img src="'+respuesta+'images/atencion.gif"> Error ! - Tipo de archivo incorrecto o demasiado grande' + link;
- }
-if (estado == 3)
-var mensaje = 'Error ! - No se pudo copiar Archivo. Posible problema de permisos en server' + link;
-document.getElementById(formupload).innerHTML=mensaje;
-document.getElementById(id).value=file;
-if (coordenadas != '') {
- document.getElementById('mapita').contentWindow.document.location.href=coordenadas;
-}
-
-}
-
-function resultadoUploadArchivo(estado,file,div) {
-var link = '';
-if (estado == 0)
-
-var mensaje = '<div id="boton_subir"><input class="btn btn-success btn-block" type="button" value="Importar" onclick="this.disabled= true; xajax_formulario_importar(\''+file+'\',\'grabar\',(document.getElementById(\'seleccion_formulario\').value)) "></div>';
-if (estado == 1)
-var mensaje = 'Error ! - El Archivo ('+ file +') no llegó al servidor' + link;
-if (estado == 2)
-var mensaje = ' <div class="alert alert-danger">Error ! - Tipo de archivo incorrecto o demasiado grande</div>';
-if (estado == 3)
-var mensaje = 'Error ! - No se pudo copiar Archivo. Posible problema de permisos en server' + link;
-document.getElementById(''+div+'').innerHTML=mensaje;
-//document.getElementById('archivo').value=file;
-xajax_formulario_importar(''+file+'','',(document.getElementById("seleccion_formulario").value));
-} 
-
-
-// En Javascript
-///sugiere
-
-
-
-val=0;
-
-function numeros(e,item_cie,Vtipo,Tabla,Campo,Campo_descripcion)
-{
-window["item_cie"] = item_cie;
-window["Vinput"] = "buscar"+item_cie;
-window["Vcontenedor"] = "contenedor"+item_cie;
-window["Vtipo"] = Vtipo;
-window["Tabla"] = Tabla;
-window["Campo"] = Campo;
-window["Campo_descripcion"] = Campo_descripcion;
-
-var key;
-if(window.event) // IE
-{
-  key = e.keyCode;
-  nav='ie';
-}
-  else if(e.which) // Netscape/Firefox/Opera
-{
-  key = e.which;
-  nav='otro';
-}
-if(key!=40 && key!=38){if(key==13 && val!=0){dat='e'+val;document.getElementById(Vinput).value=document.getElementById(dat).innerHTML;document.getElementById(Vcontenedor).innerHTML='';document.getElementById(Vcontenedor).style.display='none';
-}else{val=0;document.getElementById(Vcontenedor).scrollTop =0;OnKeyRequestBuffer.modified(Vinput);}}
-                else{if (key==40){node = document.getElementById('lista'+item_cie);
-          if(val<node.childNodes.length)
-          {
-          try{
-          document.getElementById(val).className='nosel';
-          }
-          catch(e)
-          {
-          }
-val++;
-alto=document.getElementById(val).offsetTop;
-document.getElementById(Vcontenedor).scrollTop =alto;
-document.getElementById(val).className='sel';
-}
-}
-          if (key==38){
-          if(val>=1)
-          {
-          document.getElementById(val).className='nosel';
-          try{
-                   val--;
-                   alto=document.getElementById(val).offsetTop;
-                 document.getElementById(Vcontenedor).scrollTop =alto;
-                 document.getElementById(val).className='sel';
-         }
-         catch(e)
-          {
-          }
-          }
-}
-}
-}
-
-    var OnKeyRequestBuffer =
-    {
-        bufferText: false,
-        bufferTime: 500,
-       
-        modified : function(strId)
-        {
-                setTimeout('OnKeyRequestBuffer.compareBuffer("'+strId+'","'+xajax.$(strId).value+'");', this.bufferTime);
-        },
-       
-        compareBuffer : function(strId, strText)
-        {
-            if (strText == xajax.$(strId).value && strText != this.bufferText)
-            {
-                this.bufferText = strText;
-                OnKeyRequestBuffer.makeRequest(strId);
-            }
-        },
-       
-        makeRequest : function(strId)
-        {
-       
-            this.bufferText = '';
-            if(Vtipo == "generico"){
-            xajax_sugiere_generico(xajax.$(strId).value,item_cie,Tabla,Campo,Campo_descripcion);
-            }else{
-            xajax_sugiere(xajax.$(strId).value,item_cie);
-            }
-        }
-    }
-    function pulsar(e) {
-  tecla = (document.all) ? e.keyCode : e.which;
- /// return (tecla != 13);
-}
-function limpia(Vcontenedor)
-{
-document.getElementById(Vcontenedor).innerHTML='';
-document.getElementById(Vcontenedor).style.display='none';
-
-}
-function revisa(Vinput)
-{
-if(document.getElementById(Vinput).value!='')
-{
-return 'si';
-}
-else
-{
-return 'no';
-}
-}
-function sobre()
-{
-try{document.getElementById(val).className='nosel';val=0;}catch(e){}
-
-}
-
-// finsugiere
-
-
-function uno(src,color_entrada) {
-    src.bgColor=color_entrada;src.style.cursor="hand";
-}
-function dos(src,color_default) {
-    src.bgColor=color_default;src.style.cursor="default";
-}
-
-
-   function SoloCerrar(){
-window.close()
-}
-
-function actualizar()
-{
-location.reload();
-}
-   function amplia(){
-    resizeTo(screen.width-10,screen.height-80)
-    moveTo(0, 0);
-   }
-   
-function abrir(ventana,nombre,a,b,c,d,v,r)
-{
-e='width='+a+','
-f='height='+b+','
-g='screenx='+c+','
-h='screeny='+d+','
-s='scrollbars='+v+','
-j='alwaysRaised='+r+','
-hola=window.open(ventana,nombre,e+f+g+h+s+j);
-hola.focus()
-}
-
-function toggleDiv(id,flagit) {
-
-if (flagit=="1"){
-if (document.layers) document.layers[''+id+''].visibility = "show"
-else if (document.all) document.all[''+id+''].style.visibility = "visible"
-else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "visible"
-}
-else
-if (flagit=="0"){
-if (document.layers) document.layers[''+id+''].visibility = "visible"
-else if (document.all) document.all[''+id+''].style.visibility = "hidden"
-else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"
-}
-}
-$(function () {
-  $('[data-toggle="tooltip"]').tooltip()
-}) ;
diff --git a/milfs/js/to-markdown.js b/milfs/js/to-markdown.js
deleted file mode 100644
index 405baf3..0000000
--- a/milfs/js/to-markdown.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * to-markdown - an HTML to Markdown converter
- *
- * Copyright 2011, Dom Christie
- * Licenced under the MIT licence
- *
- */
-
-var toMarkdown = function(string) {
-  
-  var ELEMENTS = [
-    {
-      patterns: 'p',
-      replacement: function(str, attrs, innerHTML) {
-        return innerHTML ? '\n\n' + innerHTML + '\n' : '';
-      }
-    },
-    {
-      patterns: 'br',
-      type: 'void',
-      replacement: '\n'
-    },
-    {
-      patterns: 'h([1-6])',
-      replacement: function(str, hLevel, attrs, innerHTML) {
-        var hPrefix = '';
-        for(var i = 0; i < hLevel; i++) {
-          hPrefix += '#';
-        }
-        return '\n\n' + hPrefix + ' ' + innerHTML + '\n';
-      }
-    },
-    {
-      patterns: 'hr',
-      type: 'void',
-      replacement: '\n\n* * *\n'
-    },
-    {
-      patterns: 'a',
-      replacement: function(str, attrs, innerHTML) {
-        var href = attrs.match(attrRegExp('href')),
-            title = attrs.match(attrRegExp('title'));
-        return href ? '[' + innerHTML + ']' + '(' + href[1] + (title && title[1] ? ' "' + title[1] + '"' : '') + ')' : str;
-      }
-    },
-    {
-      patterns: ['b', 'strong'],
-      replacement: function(str, attrs, innerHTML) {
-        return innerHTML ? '**' + innerHTML + '**' : '';
-      }
-    },
-    {
-      patterns: ['i', 'em'],
-      replacement: function(str, attrs, innerHTML) {
-        return innerHTML ? '_' + innerHTML + '_' : '';
-      }
-    },
-    {
-      patterns: 'code',
-      replacement: function(str, attrs, innerHTML) {
-        return innerHTML ? '`' + innerHTML + '`' : '';
-      }
-    },
-    {
-      patterns: 'img',
-      type: 'void',
-      replacement: function(str, attrs, innerHTML) {
-        var src = attrs.match(attrRegExp('src')),
-            alt = attrs.match(attrRegExp('alt')),
-            title = attrs.match(attrRegExp('title'));
-        return '![' + (alt && alt[1] ? alt[1] : '') + ']' + '(' + src[1] + (title && title[1] ? ' "' + title[1] + '"' : '') + ')';
-      }
-    }
-  ];
-  
-  for(var i = 0, len = ELEMENTS.length; i < len; i++) {
-    if(typeof ELEMENTS[i].patterns === 'string') {
-      string = replaceEls(string, { tag: ELEMENTS[i].patterns, replacement: ELEMENTS[i].replacement, type:  ELEMENTS[i].type });
-    }
-    else {
-      for(var j = 0, pLen = ELEMENTS[i].patterns.length; j < pLen; j++) {
-        string = replaceEls(string, { tag: ELEMENTS[i].patterns[j], replacement: ELEMENTS[i].replacement, type:  ELEMENTS[i].type });
-      }
-    }
-  }
-  
-  function replaceEls(html, elProperties) {
-    var pattern = elProperties.type === 'void' ? '<' + elProperties.tag + '\\b([^>]*)\\/?>' : '<' + elProperties.tag + '\\b([^>]*)>([\\s\\S]*?)<\\/' + elProperties.tag + '>',
-        regex = new RegExp(pattern, 'gi'),
-        markdown = '';
-    if(typeof elProperties.replacement === 'string') {
-      markdown = html.replace(regex, elProperties.replacement);
-    }
-    else {
-      markdown = html.replace(regex, function(str, p1, p2, p3) {
-        return elProperties.replacement.call(this, str, p1, p2, p3);
-      });
-    }
-    return markdown;
-  }
-  
-  function attrRegExp(attr) {
-    return new RegExp(attr + '\\s*=\\s*["\']?([^"\']*)["\']?', 'i');
-  }
-  
-  // Pre code blocks
-  
-  string = string.replace(/<pre\b[^>]*>`([\s\S]*)`<\/pre>/gi, function(str, innerHTML) {
-    innerHTML = innerHTML.replace(/^\t+/g, '  '); // convert tabs to spaces (you know it makes sense)
-    innerHTML = innerHTML.replace(/\n/g, '\n    ');
-    return '\n\n    ' + innerHTML + '\n';
-  });
-  
-  // Lists
-
-  // Escape numbers that could trigger an ol
-  // If there are more than three spaces before the code, it would be in a pre tag
-  // Make sure we are escaping the period not matching any character
-  string = string.replace(/^(\s{0,3}\d+)\. /g, '$1\\. ');
-  
-  // Converts lists that have no child lists (of same type) first, then works it's way up
-  var noChildrenRegex = /<(ul|ol)\b[^>]*>(?:(?!<ul|<ol)[\s\S])*?<\/\1>/gi;
-  while(string.match(noChildrenRegex)) {
-    string = string.replace(noChildrenRegex, function(str) {
-      return replaceLists(str);
-    });
-  }
-  
-  function replaceLists(html) {
-    
-    html = html.replace(/<(ul|ol)\b[^>]*>([\s\S]*?)<\/\1>/gi, function(str, listType, innerHTML) {
-      var lis = innerHTML.split('</li>');
-      lis.splice(lis.length - 1, 1);
-      
-      for(i = 0, len = lis.length; i < len; i++) {
-        if(lis[i]) {
-          var prefix = (listType === 'ol') ? (i + 1) + ".  " : "*   ";
-          lis[i] = lis[i].replace(/\s*<li[^>]*>([\s\S]*)/i, function(str, innerHTML) {
-            
-            innerHTML = innerHTML.replace(/^\s+/, '');
-            innerHTML = innerHTML.replace(/\n\n/g, '\n\n    ');
-            // indent nested lists
-            innerHTML = innerHTML.replace(/\n([ ]*)+(\*|\d+\.) /g, '\n$1    $2 ');
-            return prefix + innerHTML;
-          });
-        }
-      }
-      return lis.join('\n');
-    });
-    return '\n\n' + html.replace(/[ \t]+\n|\s+$/g, '');
-  }
-  
-  // Blockquotes
-  var deepest = /<blockquote\b[^>]*>((?:(?!<blockquote)[\s\S])*?)<\/blockquote>/gi;
-  while(string.match(deepest)) {
-    string = string.replace(deepest, function(str) {
-      return replaceBlockquotes(str);
-    });
-  }
-  
-  function replaceBlockquotes(html) {
-    html = html.replace(/<blockquote\b[^>]*>([\s\S]*?)<\/blockquote>/gi, function(str, inner) {
-      inner = inner.replace(/^\s+|\s+$/g, '');
-      inner = cleanUp(inner);
-      inner = inner.replace(/^/gm, '> ');
-      inner = inner.replace(/^(>([ \t]{2,}>)+)/gm, '> >');
-      return inner;
-    });
-    return html;
-  }
-  
-  function cleanUp(string) {
-    string = string.replace(/^[\t\r\n]+|[\t\r\n]+$/g, ''); // trim leading/trailing whitespace
-    string = string.replace(/\n\s+\n/g, '\n\n');
-    string = string.replace(/\n{3,}/g, '\n\n'); // limit consecutive linebreaks to 2
-    return string;
-  }
-  
-  return cleanUp(string);
-};
-
-if (typeof exports === 'object') {
-  exports.toMarkdown = toMarkdown;
-}
\ No newline at end of file
diff --git a/milfs/json.lab.php b/milfs/json.lab.php
deleted file mode 100644
index 3407099..0000000
--- a/milfs/json.lab.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ("funciones/conex.php");
-
-	$fecha_inicio = mysql_seguridad($_REQUEST[inicio]);
-	$fin = mysql_seguridad($_REQUEST[fin]);
-	$perfil = mysql_seguridad($_REQUEST[id]);
-	$id2 = mysql_seguridad($_REQUEST[id2]);
-
-	$perfil2 = mysql_seguridad($_REQUEST[id2]);
-	$id = mysql_seguridad($_REQUEST[id]);
-	$busqueda = mysql_seguridad($_REQUEST[cadena]);
-	$campo = buscar_campo_tipo($id,"14");
-	$id_campo = $campo[0];
-	$campo2 = buscar_campo_tipo($id2,"14");
-	$id_campo2 = $campo2[0];
-		if($id2 !=""){$w_id2 =" OR form_id = '$id2'"; $or_2 ="or id_campo = '$id_campo2'";}
-	  
-$link=Conectarse();
-/*
-	$consulta = "	SELECT  distinct(contenido) as data, control,form_datos.form_id as id, timestamp
-					FROM form_datos
-					WHERE form_datos.id_campo = '$id_campo' 
-					AND form_id = '$id' 
-					";
-					*/
-						$consulta = "SELECT  form_id as id, control, GROUP_CONCAT(contenido  ORDER by timestamp desc ) as data  
-											FROM `form_datos` 
-											WHERE (form_id = '$id' $w_id2 )
-											AND ( id_campo ='$id_campo' $or_2 ) $valor
-											group by  control  
-											ORDER BY  rand(),orden  desc limit 1 ";
-
-
-
- //echo $consulta;
-
-	mysqli_query("SET NAMES 'UTF8'");
-
-
- $sql = mysqli_query($consulta,$link) or die("error al ejecutar consulta $consulta ");
- if (mysqli_num_rows($sql)!='0'){
-	$id = 1;
-	$features = array();
-while( $row = mysqli_fetch_array( $sql ) ) {
-	$marcador = array();
-	$propiedades = array();
-		//$marcador["id"] = $id;
-		//$titulo = remplacetas("form_datos","control","$row[control]","contenido","id_campo ='28' AND timestamp ='$row[timestamp]'");
-		//$marcador["id"] = $id;
-		//$identificador=mysqli_result($sql,0,"identificador");
-		$identificador = explode(',',$row[data]);
-		$identificador = $identificador[0]; 
-		$campos = explode(" ",$identificador);
-														$lat = $campos[0];
-														$lon = $campos[1];
-														$zoom = $campos[2];	
-		$marcador["type"] = "Point";
-		$marcador["coordinates"] = array($lat,$lon);
-		//$marcador["loc"] = array('lat'=>$lat,'lon'=>$lon);
-		
-		$formulario = formulario_imprimir($row[id],$row[control],'full');
-		$propiedades = formulario_imprimir_linea($row[id],$row[control],"array");//
-		$propiedades["name"] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		//$propiedades["title"] ="images/pin.png";
-		//$propiedades[icon][iconUrl] = "images/pin.png";
-		
-		//formulario_imprimir($id,$control)
-		//$marcador["zoom"] = $zoom;
-		//$geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK).",\"properties\":{}},";
-		$geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK|JSON_PRETTY_PRINT)."},";
-		$features[] = $marcador;
- //$resultado .= "<li> $row[tipo]<br> <a href=\"#\" onclick=\"javascript:loadMarker($id);return false;\"><b>$row[title]</b></a><br>$row[description]<hr> </li>";
-															
-															$id++;
-															}
-
-}
-/*
-//encode and output jsonObject
-header('Content-Type: text/plain');
-//echo $consulta;
-$resultado = " { \"type\": \"FeatureCollection\",
-    \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK);
-$resultado .= "}";
-//echo $resultado;
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
-    \"type\": \"FeatureCollection\",
-    \"features\": [$geometria ]}";
-return $geometria; 
-*/
-
-//-75.58295 6.25578 16
-//{"geometry": {"type": "Point", "coordinates": [48.460711540220927, 39.562486386735543]}, "type": "Feature", "properties": {}}
-//encode and output jsonObject
-header('Content-Type: application/json');
-//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 ]}";
-    */
-echo $geometria;
-
-?>
\ No newline at end of file
diff --git a/milfs/json.php b/milfs/json.php
deleted file mode 100644
index a41ed3f..0000000
--- a/milfs/json.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ("includes/markdown.php");
-require ("funciones/conex.php");
-
-	$fecha_inicio = mysql_seguridad($_REQUEST[inicio]);
-	$fin = mysql_seguridad($_REQUEST[fin]);
-	$perfil = mysql_seguridad($_REQUEST[id]);
-	$id = mysql_seguridad($_REQUEST[id]);
-	$busqueda = mysql_seguridad($_REQUEST[cadena]);
-	$campo = buscar_campo_tipo($id,"14");
-	$id_campo = $campo[0];
-	  
-$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' 
-											AND id_campo ='$id_campo' $valor
-											group by  control  
-											ORDER BY  orden  desc";
-
-	mysqli_query("SET NAMES 'UTF8'");
-
-
- $sql = mysqli_query($consulta,$link) or die("Error al ejecutar consulta  en json.php");
- 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];	
-		$marcador["type"] = "Point";
-		$marcador["coordinates"] = array($lat,$lon);
-		$formulario = formulario_imprimir($perfil,$row[control],'');
-		$propiedades["name"] ="<div class='container-fluid' id='contenedor_datos' >$formulario</div>";
-		$geometria .= "{\"type\":\"Feature\",\"geometry\":".json_encode($marcador,JSON_NUMERIC_CHECK).",\"properties\":".json_encode($propiedades,JSON_NUMERIC_CHECK)."},";
-		$features[] = $marcador;
-
-															
-															$id++;
-															}
-
-}
-
-header('Content-Type: application/json');
-
-$resultado = " { \"type\": \"FeatureCollection\",
-    \"features\": ";
-$resultado .= json_encode($features,JSON_NUMERIC_CHECK);
-$resultado .= "}";
-$geometria = substr("$geometria",0,-1);
-$geometria = "{
-    \"type\": \"FeatureCollection\",
-    \"features\": [$geometria ]}";
-echo $geometria;
-
-?>
\ No newline at end of file
diff --git a/milfs/kml.php b/milfs/kml.php
deleted file mode 100644
index 455a4bb..0000000
--- a/milfs/kml.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-session_start();
- if ( isset ( $_SESSION['id'] ) ) {}else{
- header ("Location: index.php");}
-//ini_set('display_errors', 'On');
-//require ('../includes/funciones.php');
-
-header('Content-Type: text/xml'); 	
-	$fecha_inicio = mysql_seguridad($_REQUEST[inicio]);
-	$fin = mysql_seguridad($_REQUEST[fin]);
-	$perfil = mysql_seguridad($_REQUEST[form_id_id]);
-	$id_campo = mysql_seguridad($_REQUEST[id_campo]);
-	$busqueda = mysql_seguridad($_REQUEST[cadena]);
-	  
-$link=Conectarse();
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{$perfil ='';}
-
-if($formato =='csv') {$orden = "ORDER BY form_datos.id ASC ";}
-if($id_campo ==''){$campo ='';}else{$campo ="AND id_campo = '$id_campo'";}
-if($busqueda !=''){$busca ="AND contenido LIKE '$busqueda'";}Else{$busca ='';}
-
-
-
-	
-	$consulta = "	SELECT  *,form_campos.id AS id_campo, from_unixtime(timestamp) AS fecha , form_datos.id AS form_datos_id
-					FROM form_datos, form_campos ,form_contenido_campos
-					WHERE form_datos.id_campo = form_campos.id 
-					AND  (form_datos.form_id = form_contenido_campos.id_form AND form_datos.id_campo = form_contenido_campos.id_campo ) 
-					$busca 
-					$perfil 
-					$campo  
-					AND timestamp BETWEEN UNIX_TIMESTAMP('$fecha_inicio') 
-					AND UNIX_TIMESTAMP('$fin 23:59:59') $orden";
-					
- //echo $consulta;
-
-	mysqli_query("SET NAMES 'UTF-8'");
-
-
- $resultado = mysqli_query($consulta,$link) or die("error al ejecutar consulta $consulta ");
-  $fecha = time (); 
-  $fecha=date ( "D, d M Y" , $fecha );
-
-
-
-  echo "<?xml version='1.0' encoding='utf-8'?>
- <kml xmlns='http://www.opengis.net/kml/2.2'>
- 	<Document>
-   	<name>KML con Más de un punto</name>
-    	<Folder>";
-
-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 .= "<tr><td>$row[form_datos_id]</td><td>$row[fecha]</td><td>$row[timestamp]</td><td nowrap><a >$formulario_nombre[0]</a></td><td>$row[campo_nombre]</td><td>$row[contenido]</td></tr>";
-    echo "
-    	<placemark>
-	      <name>$formulario_nombre</name>
-	      <id_form>$fila[form_id]</id_form>
-	      <id_campo>$fila[id_campo]</id_campo>
-	      <campo>$campo</campo>
-	      <contenido><![CDATA[$contenido]]></contenido>
-	      <timestamp>$fila[fecha]</timestamp>
-	      <control>$fila[control]</control>
-	      <id_usuario>$fila[id_usuario]</id_usuario>
-
-  		</placemark>";
-  }
-  echo "
-  		</Folder>
-	</Document>
-</kml>";
- 
-function Conectarse(){
-	if ( !isset ( $link ) ) {
-		
-	include("includes/datos.php");
-   		if(!isset($db)) {
-  // include("escritorio/includes/datos.php");
-   		}
-
-   if (!($link=mysqli_connect($servidor,$usuario,$password)))
-   {
-      echo "Error conectando a la base de datos.";
-      exit();
-   }
-   if (!mysqli_select_db($db,$link))
-   {
-      echo "Error seleccionando la base de datos.";
-      exit();
-   }
-   
-
-   return $link;
-   }
-}
-
-function mysql_seguridad($inp) { 
-    if(is_array($inp)) 
-        return array_map(__METHOD__, $inp); 
-
-    if(!empty($inp) && is_string($inp)) { 
-        return str_replace(array('\\', "\0", "\n", "\r", "'", '"', "\x1a"), array('\\\\', '\\0', '\\n', '\\r', "\\*", "\\*", '\\Z'), $inp); 
-    } 
-
-    return $inp; 
-}
-
-function remplacetas($tabla,$campo,$valor,$por,$and){
-
-$link=Conectarse(); 
-mysqli_query("SET NAMES 'utf8'");
-if($and !=''){$AND = "AND $and";}
-$consulta = "SELECT * 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;
-										}else{$resultado[0] = '';
-										$resultado[1] ="";
-										$resultado[2] = $consulta;}
-return $resultado;
-} 
-//
-?>
diff --git a/milfs/lab.php b/milfs/lab.php
deleted file mode 100644
index abb670d..0000000
--- a/milfs/lab.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-//require ('milfs/funciones/convert.php');
-require ('funciones/login.php');
-require_once ('includes/markdown.php');
-$xajax->processRequests(); 
-$logo = remplacetas('empresa','id','1','imagen') ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php" rel="stylesheet">
-</head>
-<body>
-  <body>
-
-	<div class="">
-
-      <!-- Static navbar -->
-      <img  style="max-height:50px;" src="images/secure/?file=150/<?php echo $logo[0] ?>" >
-<br>
-
-	 <h1 style="text-align: center; margin-bottom: 0cm; line-height: 115%; page-break-before: auto; page-break-after: avoid">
-      <span style="font-family: Helvetica,Arial,sans-serif;"><font color="#222222"><font
-            style="font-size: 22pt" size="2"><b><span style="background: #ffffff">¿DÓNDE
-ESTÁN
-                MIS DATOS?</span></b></font></font></span></h1>
-
-	</div><!-- /container -->
-	<div id ='contenedor' style='  ' class="container">
-	<?php echo formulario_campos_filtro("19","115","","xajax_mostrar_coincidencias('19','115',(this.value)); "); ?>
-	<div id='mostrar_resultado'></div>
-	</div>
-	</div>
-  <div  class="center-block" style="  z-index:10000; bottom:10px;">
-  <div role='row' class='row center-block' style="width:95% ; "><?php //echo aplicacion_datos("$_REQUEST[id]");?></div>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-
-<div class="container">
-
-  <br>
-    Los datos que se encuentran en esta página estan asociados al resultado de
-    la investigación que se encuentra en <a target="_blank" href="http://www.dondeestanmisdatos.info/">http://www.dondeestanmisdatos.info/</a>
-    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 <a target="_blank" href="https://github.com/humano/milfs">MILFS</a>
-    <br>
-      <br>
-      Esta plataforma nos entrega los datos en forma de una API que puede ser
-      consumida en le siguiente enlace:<br>
-      <br>
-    </a><a target="_blank" href="http://datos.labmde.org/api.php?id=19">http://datos.labmde.org/api.php?id=19</a><br>
-    <br>
-    Los datos son entregados en formato <a target="_blank" href="http://es.wikipedia.org/wiki/JSON">JSON</a>
-      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.<br>
-      <br>
-      <span style="font-weight: bold;">Especificación de los datos:<br>
-        <br>
-      </span>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:<br>
-      <br>
-    </a>
-    <table border="1" cellspacing="0">
-      <colgroup width="85"></colgroup> <colgroup width="507"></colgroup>
-      <tbody>
-        <tr>
-          <td align="left" height="17">ID</td>
-          <td align="left">Nombre del Campo</td>
-        </tr>
-        <tr>
-          <td sdval="115" sdnum="9226;" align="right" height="18">115</td>
-          <td align="left"> Isp</td>
-        </tr>
-        <tr>
-          <td sdval="125" sdnum="9226;" align="right" height="18">125</td>
-          <td align="left"> Ong (eff)</td>
-        </tr>
-        <tr>
-          <td sdval="124" sdnum="9226;" align="right" height="18">124</td>
-          <td align="left"> Pais</td>
-        </tr>
-        <tr>
-          <td sdval="110" sdnum="9226;" align="right" height="18">110</td>
-          <td align="left"> 1. el psi publica informes de transparencia</td>
-        </tr>
-        <tr>
-          <td sdval="116" sdnum="9226;" align="right" height="49">116</td>
-          <td align="left"> 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.</td>
-        </tr>
-        <tr>
-          <td sdval="117" sdnum="9226;" align="right" height="32">117</td>
-          <td align="left"> 1.2 el informe de transparencia indica la frecuencia
-            con la cuál la empresa entrega información de los usuarios al
-            gobierno</td>
-        </tr>
-        <tr>
-          <td sdval="118" sdnum="9226;" align="right" height="49">118</td>
-          <td align="left"> 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.</td>
-        </tr>
-        <tr>
-          <td sdval="119" sdnum="9226;" align="right" height="47">119</td>
-          <td align="left"> 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.</td>
-        </tr>
-        <tr>
-          <td sdval="120" sdnum="9226;" align="right" height="47">120</td>
-          <td align="left"> 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.)</td>
-        </tr>
-        <tr>
-          <td sdval="121" sdnum="9226;" align="right" height="81">121</td>
-          <td align="left"> 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.</td>
-        </tr>
-        <tr>
-          <td sdval="122" sdnum="9226;" align="right" height="32">122</td>
-          <td align="left"> 1.7 el informe de transparencia indica cuántas veces
-            ha procedido la psi a bloquear y/o retirar contenidos de internet.</td>
-        </tr>
-        <tr>
-          <td sdval="123" sdnum="9226;" align="right" height="32">123</td>
-          <td align="left"> 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.</td>
-        </tr>
-        <tr>
-          <td sdval="130" sdnum="9226;" align="right" height="17">130</td>
-          <td align="left"> Comentarios bloque 1</td>
-        </tr>
-        <tr>
-          <td sdval="111" sdnum="9226;" align="right" height="32">111</td>
-          <td align="left"> 2.1 ¿el psi notifica al usuario cuando el gobierno
-            nacional ha hecho solicitud de información de sus datos?</td>
-        </tr>
-        <tr>
-          <td sdval="126" sdnum="9226;" align="right" height="47">126</td>
-          <td align="left"> 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?</td>
-        </tr>
-        <tr>
-          <td sdval="131" sdnum="9226;" align="right" height="18">131</td>
-          <td align="left"> Comentarios bloque 2</td>
-        </tr>
-        <tr>
-          <td sdval="112" sdnum="9226;" align="right" height="32">112</td>
-          <td align="left"> 3. las polÍticas de protección de datos del psi son
-            públicas y de fácil acceso para los usuarios y usuarias</td>
-        </tr>
-        <tr>
-          <td sdval="132" sdnum="9226;" align="right" height="18">132</td>
-          <td align="left"> Comentarios bloque 3</td>
-        </tr>
-        <tr>
-          <td sdval="113" sdnum="9226;" align="right" height="32">113</td>
-          <td align="left"> 4. el psi publica manuales de cumplimiento de
-            obligaciones legales que pueden afectar la intimidad de los usuarios
-            y usuarias</td>
-        </tr>
-        <tr>
-          <td sdval="133" sdnum="9226;" align="right" height="18">133</td>
-          <td align="left"> Comentarios bloque 4</td>
-        </tr>
-        <tr>
-          <td sdval="127" sdnum="9226;" align="right" height="47">127</td>
-          <td align="left"> 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?</td>
-        </tr>
-        <tr>
-          <td sdval="128" sdnum="9226;" align="right" height="32">128</td>
-          <td align="left"> 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?</td>
-        </tr>
-        <tr>
-          <td sdval="129" sdnum="9226;" align="right" height="65">129</td>
-          <td align="left"> 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)</td>
-        </tr>
-        <tr>
-          <td sdval="134" sdnum="9226;" align="right" height="18">134</td>
-          <td align="left"> Comentarios bloque 5</td>
-        </tr>
-      </tbody>
-    </table>
-    <br>
-    <br>
-      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.<br>
-    </a><br>
-      También puede descargar los datos en formato CSV </a><a href="http://datos.labmde.org/DatosEFF-Karisma.csv">(AQUÍ)
-      </a> <br> Este archivo tiene como delimitador de campos el
-    carácter "pipe" ( | ) y como delimitador de texto las comillas
-    dobles ( " " ).<br>
-    <br>
-
-
-</div>
-
-       <div style="position:fixed;
-    bottom:5px;">
-	       <div class="container">
-        <a target="_blank" href='https://github.com/humano/milfs'>Powered by: &copy; MILFS </a> 
-        	</div> 
-      </div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
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 @@
-<?php session_start(); 
-//ini_set('display_errors', 'On');
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');} 
-	require ('xajax/xajax.inc.php');
-	$xajax = new xajax();
-	require ("funciones/conex.php");
-   require ('funciones/funciones.php');
-   require ("includes/markdown.php");
-   require ("includes/simple_html_dom.php");
-	$xajax->processRequests();  ?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-   <meta http-equiv="Cache-control" content="public">
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-	<link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" integrity="sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous">
-	<?php $xajax->printJavascript("xajax/");  ?>
-	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha256-k2/8zcNbxVIh5mnQ52A0r3a6jAgMGxFJFE2707UxGCk= sha512-ZV9KawG2Legkwp3nAlxLIVFudTauWuBpC10uEafMHYL0Sarrz5A7G79kXh5+5+woxQ5HM559XX2UZjMJ36Wplg==" crossorigin="anonymous">
-
-<?php 
-	
-
-   
-//$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 = "<a class='' href='?set=$form[0]'>$titulo[0]</a>";
-				$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','') ;
-
-
-
-	?>
-
-    <!-- Custom CSS -->
-    <!-- Custom Fonts -->
-    
-    <link href="http://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
-
-    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-    <!--[if lt IE 9]>
-        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
-    <![endif]-->
-<style type="text/css">
-/*!
- * Start Bootstrap - Landing Page Bootstrap Theme (http://startbootstrap.com)
- * Code licensed under the Apache License v2.0.
- * For details, see http://www.apache.org/licenses/LICENSE-2.0.
- */
-
-body,
-html {
-	 background-color: #A4A4A4;
-    width: 100%;
-    height: 100%;
-}
-
-body,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-    font-family: "Lato","Helvetica Neue",Helvetica,Arial,sans-serif;
-    font-weight: 700;
-}
-
-.topnav {
-    font-size: 14px; 
-}
-
-.lead {
-    font-size: 18px;
-    font-weight: 400;
-}
-
-.intro-header {
-    padding-top: 50px; /* If you're making other pages, make sure there is 50px of padding to make sure the navbar doesn't overlap content! */
-    padding-bottom: 50px;
-    text-align: center;
-    color: #f8f8f8;
-    background: url(images/secure/?file=600/<?php echo $background_imagen; ?> ) no-repeat center center;
-    background-size: cover;
-}
-
-.intro-message {
-    position: relative;
-    padding-top: 20%;
-    padding-bottom: 20%;
-    /*background: url(images/transparente50.png ) ;*/
-}
-
-.intro-message > h1 {
-    margin: 0;
-    text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-    font-size: 5em;
-    border-radius: 3px;
-    background: url(images/oscuro40.png ) ;
-}
-
-.intro-divider {
-    width: 400px;
-    border-top: 1px solid #f8f8f8;
-    border-bottom: 1px solid rgba(0,0,0,0.2);
-}
-
-.intro-message > h3 {
-    text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-    background: url(images/oscuro40.png ) ;
-    border-radius: 3px;
-}
-
-@media(max-width:767px) {
-    .intro-message {
-        padding-bottom: 15%;
-    }
-
-    .intro-message > h1 {
-        font-size: 3em;
-    }
-
-    ul.intro-social-buttons > li {
-        display: block;
-        margin-bottom: 20px;
-        padding: 0;
-    }
-
-    ul.intro-social-buttons > li:last-child {
-        margin-bottom: 0;
-    }
-
-    .intro-divider {
-        width: 100%;
-    }
-}
-
-.network-name {
-    text-transform: uppercase;
-    font-size: 14px;
-    font-weight: 400;
-    letter-spacing: 2px;
-}
-
-.content-section-a {
-    padding: 50px 0;
-    background-color: #f8f8f8;
-}
-
-.content-section-b {
-    padding: 50px 0;
-    border-top: 1px solid #e7e7e7;
-    border-bottom: 1px solid #e7e7e7;
-}
-
-.section-heading {
-    margin-bottom: 30px;
-}
-
-.section-heading-spacer {
-    float: left;
-    width: 200px;
-    border-top: 3px solid #e7e7e7;
-}
-
-.banner {
-    padding: 100px 0;
-    color: #f8f8f8;
-    background: url(../img/banner-bg.jpg) no-repeat center center;
-    background-size: cover;
-}
-
-.banner h2 {
-    margin: 0;
-    text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-    font-size: 3em;
-}
-
-.banner ul {
-    margin-bottom: 0;
-}
-
-.banner-social-buttons {
-    float: right;
-    margin-top: 0;
-}
-
-@media(max-width:1199px) {
-    ul.banner-social-buttons {
-        float: left;
-        margin-top: 15px;
-    }
-}
-
-@media(max-width:767px) {
-    .banner h2 {
-        margin: 0;
-        text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-        font-size: 3em;
-    }
-
-    ul.banner-social-buttons > li {
-        display: block;
-        margin-bottom: 20px;
-        padding: 0;
-    }
-
-    ul.banner-social-buttons > li:last-child {
-        margin-bottom: 0;
-    }
-}
-
-footer {
-    padding: 50px 0;
-    background-color: #f8f8f8;
-}
-
-p.copyright {
-    margin: 15px 0 0;
-}
-</style>
-</head>
-
-<body>
-    <!-- Navigation -->
-    <nav class="navbar navbar-default navbar-fixed-top topnav" role="navigation">
-        <div class="container topnav">
-            <!-- Brand and toggle get grouped for better mobile display -->
-            <div class="navbar-header">
-                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-                    <span class="sr-only">Toggle navigation</span>
-                    <span class="icon-bar"></span>
-                    <span class="icon-bar"></span>
-                    <span class="icon-bar"></span>
-                </button>
-                <a class="navbar-brand topnav" href="?empresa=<?php echo $id_empresa; ?>"><i class='fa fa-home'></i> <?php echo $sigla[0]; ?></a>
-                
-            </div>
-            <!-- Collect the nav links, forms, and other content for toggling -->
-            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
-                <ul class="nav navbar-nav ">
-                <li><?php echo $uri_set; ?></li>
-                </ul>
-                <ul class="nav navbar-nav navbar-right">
-                    <li>
-                        <a href="?ingresar">Ingresar</a>
-                    </li>
-                </ul>
-            </div>
-            <!-- /.navbar-collapse -->
-        </div>
-        <!-- /.container -->
-    </nav>
-
-
-    <!-- Header -->
-    <a name="about"></a>
-    <div class="intro-header">
-        <div class="container">
-
-            <div class="row">
-                <div class="col-lg-12">
-                    <div class="intro-message">
-                   
-                        <h1><?php echo $titulo[0]; ?></h1>
-                        
-                        <h3><?php echo $descripcion[0]; ?></h3>
-                        <hr class="intro-divider">
-                        <ul class="list-inline intro-social-buttons">
-                            <li>
-                                <a target='redes' href="https://twitter.com/<?php echo $twitter[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-twitter fa-fw"></i> <span class="network-name">@<?php echo $twitter[0]; ?></span></a>
-                            </li>
-                            <li>
-                                <a target='redes' href="https://github.com/humano/milfs/" class="btn btn-default btn-lg"><i class="fa fa-github fa-fw"></i> <span class="network-name">Github</span></a>
-                            </li>
-                            <li>
-                                <a target='redes'  href="https://www.facebook.com/<?php echo $facebook[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-facebook fa-fw"></i> <span class="network-name"><?php echo $facebook[0]; ?></span></a>
-                            </li>
-                        </ul>
-                    </div>
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>
-    <!-- /.intro-header -->
-
-    <!-- Page Content -->
-    <a  name="formularios"></a>
-    
-<?php
-if($acceso ==1) {
-if(isset($_REQUEST['set'])) { 
-	echo landingpage_contenido_formulario($_REQUEST['set']); }
-	elseif(isset($_REQUEST['identificador'])) { echo landingpage_contenido_identificador($_REQUEST['identificador']); }
-else{ echo landingpage_contenido($id_empresa);}
-}
- ?>
-	
-    
-
-	<a  name="contact"></a>
-    <div class="banner">
-
-        <div class="container">
-
-            <div class="row">
-                <div class="col-lg-4">
-                    <h2>Conéctate:</h2>
-                </div>
-                <div class="col-lg-8">
-                    <ul class="list-inline banner-social-buttons">
-                       <li>
-                                <a target='redes' href="https://twitter.com/<?php echo $twitter[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-twitter fa-fw"></i> <span class="network-name">@<?php echo $twitter[0]; ?></span></a>
-                            </li>
-                            <li>
-                                <a target='redes' href="https://github.com/humano/milfs/" class="btn btn-default btn-lg"><i class="fa fa-github fa-fw"></i> <span class="network-name">Github</span></a>
-                            </li>
-                            <li>
-                                <a target='redes'  href="https://www.facebook.com/<?php echo $facebook[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-facebook fa-fw"></i> <span class="network-name"><?php echo $facebook[0]; ?></span></a>
-                            </li>
-                    </ul>
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>
-    <!-- /.banner -->
-
-    <!-- Footer -->
-    <footer>
-        <div class="container">
-            <div class="row">
-                <div class="col-lg-12">
-                    <ul class="list-inline">
-                        <li>
-                            <a href="#">Home</a>
-                        </li>
-                        <li class="footer-menu-divider">&sdot;</li>
-                        <li>
-                            <a href="#formularios">Contenido</a>
-                        </li>
-                        <li class="footer-menu-divider">&sdot;</li>
-                        <li>
-                            <a href="#contact">Contacto</a>
-                        </li>
-                    </ul>
-                    <p class="copyright text-muted small"> <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a href="?psi" target="_psi"><i class="fa fa-smile-o "></i> Políticas de privacidad y protección de datos.</a></p>
-                </div>
-            </div>
-        </div>
-    </footer>
-
-    <!-- jQuery -->
-    <script src="js/jquery.js"></script>
-
-    <!-- Bootstrap Core JavaScript -->
-    <script src="js/bootstrap.min.js"></script>
-
-</body>
-
-</html>
-<?php
-return;
-}
-
-
-//require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-
-
-
-
-
-if (isset($_REQUEST['form'])) {
-	$form = $_REQUEST['form'];
-	$opciones= array();
-	if(isset($_REQUEST['formato']) ){	$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 = "";}
-?>
-	
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-	<link href='css/estilos.php?dd' rel='stylesheet'>
-
-
-<style>
-  #map {width: 500px;height:200px;}
-  
-</style>
-
-
-    <title>I<3MILFS</title>
-
-<?php
-
-					if($id !='' OR $c ){$onload ="<script type=\"text/javascript\"> xajax_formulario_modal('".$id."','','".$c."','".$t."')</script>";}
-						if( isset($_REQUEST['psi'])){$onload ="<script type=\"text/javascript\"> xajax_mostrar_psi()</script>";}
-?>
-
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
-  <script src="js/markdown.js"></script>
-  <script src="js/to-markdown.js"></script>
-  <script src="js/bootstrap-markdown.js"></script>
-      <script src="js/scripts.js"></script>
-
-<script type="text/javascript">
- 
-
-function evdragstart(ev,el) { //ev= el evento, el=elemento arrastrado.
-    cont1=el.parentNode; //guardamos el elemento padre del elemento en una variable.
-    ev.dataTransfer.setData("text",ev.target.id);	//guardamos datos del elemento. 
-}
-
-function evdragover (ev) { //ev=el evento.
-    ev.preventDefault(); //quitar comportamiento por defecto.
-}
-
-function evdrop(ev,el) { //ev=el evento; el=receptor de soltado
-    ev.stopPropagation(); //impedir otras acciones 
-    ev.preventDefault(); //quitar comportamiento por defecto
-    var data=ev.dataTransfer.getData("text"); //recogemos datos del elemento
-    mielem=ev.target.appendChild(document.getElementById(data)); //obtenemos el elemento arrastrado
-    cont1.appendChild(mielem); //ponemos el elemento arrastrado en el mismo sitio donde estaba.
-    mielem2=mielem.cloneNode(true); //creamos una copia del elemento arrastrado.
-    mielem2.setAttribute("draggable","false"); //impedimos que el nuevo elemento pueda volver a arrastrarse
-    el.appendChild(mielem2); //colocamos la copia en el receptor de soltado
-}
-</script>
-<style>
-.modal-dialog {
-  width: 98%;
-  height: auto;
-  padding: 0;
-}
-
-.modal-content {
-  height: auto;
-}
-
-</style>
-</head>
-<body  >
-
-<?php if($embebido ==1) { 
-if($form!=''){	 echo formulario_embebido($form,$opciones);}
-elseif($identificador !='') { echo mostrar_identificador($identificador,$id);}
-//elseif($_REQUEST['psi'] !='') { include("psi.php") ; echo $aviso;}
-else{}
-
-}else{
-
- ?>
-<?php echo @$onload; ?>
-<?php 
- if ( isset ( $_SESSION['id'] ) ) {	?>
-<div class="navbar navbar-inverse nav-bar-fixed-top " role="navigation">
-  <div class="container-fluid">
-    <!-- Brand and toggle get grouped for better mobile display -->
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-        <span class="sr-only">MILFS</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="#"><img src="favicon-152.png" style="width:60px" alt="MILFS" title="Multi Interactive Light Form System"></a>
-    </div>
-
-<?php  echo milfs() ?>
-  </div>
-</div>
-<?php }else{ } ?>
-
-
-<div id='debug'></div>
-	<div class='container'>
-		<div id='contenido'>
-		
-		<?php 
-		if(!isset($_SESSION['id_empresa'])) {$id_empresa_portada='1';} else{$id_empresa_portada = $_SESSION['id_empresa'];}
-	$encabezado = empresa_datos("$id_empresa_portada",'encabezado');
-	$pie = empresa_datos("$id_empresa_portada",'pie');
-	echo "$encabezado";		
-		?>xxx
-		<?php echo buscar_imagen("21","","",""); ?>
-		xxx
-<?php if(isset($_REQUEST['change'])){
-echo cambiar_password_formato("$_REQUEST[change]");
-}
-revisar_ingreso('');
-?>		
-
-<?php echo $pie; ?>
-<img class='img-responsive center-block' src="images/logo.png" alt="MILFS">
-		</div>
-
-<?php
-
-
-?>
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-		<?php	include("psi.php") ;?>
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-	</div>
-
-
-       <div class="">
-	       <div class="container">
-        <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a href="?psi" target="_psi"><i class="fa fa-smile-o "></i> Políticas de privacidad y protección de datos.</a>
-        	</div> 
-      </div>
-      <?php } ?>
-
-</body>
-</html>
\ 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 @@
-<?php session_start(); 
-//ini_set('display_errors', 'On');
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');} 
-	require ('xajax/xajax.inc.php');
-	$xajax = new xajax();
-	require ("funciones/conex.php");
-   require ('funciones/funciones.php');
-   require ("includes/markdown.php");
-	$xajax->processRequests();  ?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-   <meta http-equiv="Cache-control" content="public">
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-	<link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" integrity="sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous">
-	<?php $xajax->printJavascript("xajax/");  ?>
-	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha256-k2/8zcNbxVIh5mnQ52A0r3a6jAgMGxFJFE2707UxGCk= sha512-ZV9KawG2Legkwp3nAlxLIVFudTauWuBpC10uEafMHYL0Sarrz5A7G79kXh5+5+woxQ5HM559XX2UZjMJ36Wplg==" crossorigin="anonymous">
-
-<?php 
-	
-
-   
-//$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 = "<a class='' href='?set=$form[0]'>$titulo[0]</a>";
-				$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','') ;
-
-
-
-	?>
-
-    <!-- Custom CSS -->
-    <!-- Custom Fonts -->
-    
-    <link href="http://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
-
-    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
-    <!--[if lt IE 9]>
-        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
-    <![endif]-->
-<style type="text/css">
-/*!
- * Start Bootstrap - Landing Page Bootstrap Theme (http://startbootstrap.com)
- * Code licensed under the Apache License v2.0.
- * For details, see http://www.apache.org/licenses/LICENSE-2.0.
- */
-
-body,
-html {
-	 background-color: #A4A4A4;
-    width: 100%;
-    height: 100%;
-}
-
-body,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-    font-family: "Lato","Helvetica Neue",Helvetica,Arial,sans-serif;
-    font-weight: 700;
-}
-
-.topnav {
-    font-size: 14px; 
-}
-
-.lead {
-    font-size: 18px;
-    font-weight: 400;
-}
-
-.intro-header {
-    padding-top: 50px; /* If you're making other pages, make sure there is 50px of padding to make sure the navbar doesn't overlap content! */
-    padding-bottom: 50px;
-    text-align: center;
-    color: #f8f8f8;
-    background: url(images/secure/?file=600/<?php echo $background_imagen; ?> ) no-repeat center center;
-    background-size: cover;
-}
-
-.intro-message {
-    position: relative;
-    padding-top: 20%;
-    padding-bottom: 20%;
-    /*background: url(images/transparente50.png ) ;*/
-}
-
-.intro-message > h1 {
-    margin: 0;
-    text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-    font-size: 5em;
-    border-radius: 3px;
-    background: url(images/oscuro40.png ) ;
-}
-
-.intro-divider {
-    width: 400px;
-    border-top: 1px solid #f8f8f8;
-    border-bottom: 1px solid rgba(0,0,0,0.2);
-}
-
-.intro-message > h3 {
-    text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-    background: url(images/oscuro40.png ) ;
-    border-radius: 3px;
-}
-
-@media(max-width:767px) {
-    .intro-message {
-        padding-bottom: 15%;
-    }
-
-    .intro-message > h1 {
-        font-size: 3em;
-    }
-
-    ul.intro-social-buttons > li {
-        display: block;
-        margin-bottom: 20px;
-        padding: 0;
-    }
-
-    ul.intro-social-buttons > li:last-child {
-        margin-bottom: 0;
-    }
-
-    .intro-divider {
-        width: 100%;
-    }
-}
-
-.network-name {
-    text-transform: uppercase;
-    font-size: 14px;
-    font-weight: 400;
-    letter-spacing: 2px;
-}
-
-.content-section-a {
-    padding: 50px 0;
-    background-color: #f8f8f8;
-}
-
-.content-section-b {
-    padding: 50px 0;
-    border-top: 1px solid #e7e7e7;
-    border-bottom: 1px solid #e7e7e7;
-}
-
-.section-heading {
-    margin-bottom: 30px;
-}
-
-.section-heading-spacer {
-    float: left;
-    width: 200px;
-    border-top: 3px solid #e7e7e7;
-}
-
-.banner {
-    padding: 100px 0;
-    color: #f8f8f8;
-    background: url(../img/banner-bg.jpg) no-repeat center center;
-    background-size: cover;
-}
-
-.banner h2 {
-    margin: 0;
-    text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-    font-size: 3em;
-}
-
-.banner ul {
-    margin-bottom: 0;
-}
-
-.banner-social-buttons {
-    float: right;
-    margin-top: 0;
-}
-
-@media(max-width:1199px) {
-    ul.banner-social-buttons {
-        float: left;
-        margin-top: 15px;
-    }
-}
-
-@media(max-width:767px) {
-    .banner h2 {
-        margin: 0;
-        text-shadow: 2px 2px 3px rgba(0,0,0,0.6);
-        font-size: 3em;
-    }
-
-    ul.banner-social-buttons > li {
-        display: block;
-        margin-bottom: 20px;
-        padding: 0;
-    }
-
-    ul.banner-social-buttons > li:last-child {
-        margin-bottom: 0;
-    }
-}
-
-footer {
-    padding: 50px 0;
-    background-color: #f8f8f8;
-}
-
-p.copyright {
-    margin: 15px 0 0;
-}
-</style>
-</head>
-
-<body>
-    <!-- Navigation -->
-    <nav class="navbar navbar-default navbar-fixed-top topnav" role="navigation">
-        <div class="container topnav">
-            <!-- Brand and toggle get grouped for better mobile display -->
-            <div class="navbar-header">
-                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-                    <span class="sr-only">Toggle navigation</span>
-                    <span class="icon-bar"></span>
-                    <span class="icon-bar"></span>
-                    <span class="icon-bar"></span>
-                </button>
-                <a class="navbar-brand topnav" href="?empresa=<?php echo $id_empresa; ?>"><i class='fa fa-home'></i> <?php echo $sigla[0]; ?></a>
-                
-            </div>
-            <!-- Collect the nav links, forms, and other content for toggling -->
-            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
-                <ul class="nav navbar-nav ">
-                <li><?php echo $uri_set; ?></li>
-                </ul>
-                <ul class="nav navbar-nav navbar-right">
-                    <li>
-                        <a href="?ingresar">Ingresar</a>
-                    </li>
-                </ul>
-            </div>
-            <!-- /.navbar-collapse -->
-        </div>
-        <!-- /.container -->
-    </nav>
-
-
-    <!-- Header -->
-    <a name="about"></a>
-    <div class="intro-header">
-        <div class="container">
-
-            <div class="row">
-                <div class="col-lg-12">
-                    <div class="intro-message">
-                   
-                        <h1><?php echo $titulo[0]; ?></h1>
-                        
-                        <h3><?php echo $descripcion[0]; ?></h3>
-                        <hr class="intro-divider">
-                        <ul class="list-inline intro-social-buttons">
-                            <li>
-                                <a target='redes' href="https://twitter.com/<?php echo $twitter[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-twitter fa-fw"></i> <span class="network-name">@<?php echo $twitter[0]; ?></span></a>
-                            </li>
-                            <li>
-                                <a target='redes' href="https://github.com/humano/milfs/" class="btn btn-default btn-lg"><i class="fa fa-github fa-fw"></i> <span class="network-name">Github</span></a>
-                            </li>
-                            <li>
-                                <a target='redes'  href="https://www.facebook.com/<?php echo $facebook[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-facebook fa-fw"></i> <span class="network-name"><?php echo $facebook[0]; ?></span></a>
-                            </li>
-                        </ul>
-                    </div>
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>
-    <!-- /.intro-header -->
-
-    <!-- Page Content -->
-    <a  name="formularios"></a>
-    
-<?php
-if($acceso ==1) {
-if(isset($_REQUEST['set'])) { 
-	echo landingpage_contenido_formulario($_REQUEST['set']); }
-	elseif(isset($_REQUEST['identificador'])) { echo landingpage_contenido_identificador($_REQUEST['identificador']); }
-else{ echo landingpage_contenido($id_empresa);}
-}
- ?>
-	
-    
-
-	<a  name="contact"></a>
-    <div class="banner">
-
-        <div class="container">
-
-            <div class="row">
-                <div class="col-lg-4">
-                    <h2>Conéctate:</h2>
-                </div>
-                <div class="col-lg-8">
-                    <ul class="list-inline banner-social-buttons">
-                       <li>
-                                <a target='redes' href="https://twitter.com/<?php echo $twitter[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-twitter fa-fw"></i> <span class="network-name">@<?php echo $twitter[0]; ?></span></a>
-                            </li>
-                            <li>
-                                <a target='redes' href="https://github.com/humano/milfs/" class="btn btn-default btn-lg"><i class="fa fa-github fa-fw"></i> <span class="network-name">Github</span></a>
-                            </li>
-                            <li>
-                                <a target='redes'  href="https://www.facebook.com/<?php echo $facebook[0]; ?>" class="btn btn-default btn-lg"><i class="fa fa-facebook fa-fw"></i> <span class="network-name"><?php echo $facebook[0]; ?></span></a>
-                            </li>
-                    </ul>
-                </div>
-            </div>
-
-        </div>
-        <!-- /.container -->
-
-    </div>
-    <!-- /.banner -->
-
-    <!-- Footer -->
-    <footer>
-        <div class="container">
-            <div class="row">
-                <div class="col-lg-12">
-                    <ul class="list-inline">
-                        <li>
-                            <a href="#">Home</a>
-                        </li>
-                        <li class="footer-menu-divider">&sdot;</li>
-                        <li>
-                            <a href="#formularios">Contenido</a>
-                        </li>
-                        <li class="footer-menu-divider">&sdot;</li>
-                        <li>
-                            <a href="#contact">Contacto</a>
-                        </li>
-                    </ul>
-                    <p class="copyright text-muted small"> <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a href="?psi" target="_psi"><i class="fa fa-smile-o "></i> Políticas de privacidad y protección de datos.</a></p>
-                </div>
-            </div>
-        </div>
-    </footer>
-
-    <!-- jQuery -->
-    <script src="js/jquery.js"></script>
-
-    <!-- Bootstrap Core JavaScript -->
-    <script src="js/bootstrap.min.js"></script>
-
-</body>
-
-</html>
-<?php
-return;
-}
-
-
-//require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-
-require ("includes/simple_html_dom.php");
-
-
-
-if (isset($_REQUEST['form'])) {
-	$form = $_REQUEST['form'];
-	$opciones= array();
-	if(isset($_REQUEST['formato']) ){	$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 = "";}
-?>
-	
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-	<link href='css/estilos.php?dd' rel='stylesheet'>
-
-
-<style>
-  #map {width: 500px;height:200px;}
-  
-</style>
-
-
-    <title>I<3MILFS</title>
-
-<?php
-
-					if($id !='' OR $c ){$onload ="<script type=\"text/javascript\"> xajax_formulario_modal('".$id."','','".$c."','".$t."')</script>";}
-						if( isset($_REQUEST['psi'])){$onload ="<script type=\"text/javascript\"> xajax_mostrar_psi()</script>";}
-?>
-
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
-  <script src="js/markdown.js"></script>
-  <script src="js/to-markdown.js"></script>
-  <script src="js/bootstrap-markdown.js"></script>
-      <script src="js/scripts.js"></script>
-
-<script type="text/javascript">
- 
-
-function evdragstart(ev,el) { //ev= el evento, el=elemento arrastrado.
-    cont1=el.parentNode; //guardamos el elemento padre del elemento en una variable.
-    ev.dataTransfer.setData("text",ev.target.id);	//guardamos datos del elemento. 
-}
-
-function evdragover (ev) { //ev=el evento.
-    ev.preventDefault(); //quitar comportamiento por defecto.
-}
-
-function evdrop(ev,el) { //ev=el evento; el=receptor de soltado
-    ev.stopPropagation(); //impedir otras acciones 
-    ev.preventDefault(); //quitar comportamiento por defecto
-    var data=ev.dataTransfer.getData("text"); //recogemos datos del elemento
-    mielem=ev.target.appendChild(document.getElementById(data)); //obtenemos el elemento arrastrado
-    cont1.appendChild(mielem); //ponemos el elemento arrastrado en el mismo sitio donde estaba.
-    mielem2=mielem.cloneNode(true); //creamos una copia del elemento arrastrado.
-    mielem2.setAttribute("draggable","false"); //impedimos que el nuevo elemento pueda volver a arrastrarse
-    el.appendChild(mielem2); //colocamos la copia en el receptor de soltado
-}
-</script>
-<style>
-.modal-dialog {
-  width: 98%;
-  height: auto;
-  padding: 0;
-}
-
-.modal-content {
-  height: auto;
-}
-
-</style>
-</head>
-<body  >
-
-<?php if($embebido ==1) { 
-if($form!=''){	 echo formulario_embebido($form,$opciones);}
-elseif($identificador !='') { echo mostrar_identificador($identificador,$id);}
-//elseif($_REQUEST['psi'] !='') { include("psi.php") ; echo $aviso;}
-else{}
-
-}else{
-
- ?>
-<?php echo @$onload; ?>
-<?php 
- if ( isset ( $_SESSION['id'] ) ) {	?>
-<div class="navbar navbar-inverse nav-bar-fixed-top " role="navigation">
-  <div class="container-fluid">
-    <!-- Brand and toggle get grouped for better mobile display -->
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
-        <span class="sr-only">MILFS</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <a class="navbar-brand" href="#"><img src="favicon-152.png" style="width:60px" alt="MILFS" title="Multi Interactive Light Form System"></a>
-    </div>
-
-<?php  echo milfs() ?>
-  </div>
-</div>
-<?php }else{ } ?>
-
-
-<div id='debug'></div>
-	<div class='container'>
-		<div id='contenido'>
-		
-		<?php 
-		if(!isset($_SESSION['id_empresa'])) {$id_empresa_portada='1';} else{$id_empresa_portada = $_SESSION['id_empresa'];}
-	$encabezado = empresa_datos("$id_empresa_portada",'encabezado');
-	$pie = empresa_datos("$id_empresa_portada",'pie');
-	echo "$encabezado";		
-		?>xxx
-		<?php echo buscar_imagen("21","","",""); ?>
-		xxx
-<?php if(isset($_REQUEST['change'])){
-echo cambiar_password_formato("$_REQUEST[change]");
-}
-revisar_ingreso('');
-?>		
-
-<?php echo $pie; ?>
-<img class='img-responsive center-block' src="images/logo.png" alt="MILFS">
-		</div>
-
-<?php
-
-
-?>
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-		<?php	include("psi.php") ;?>
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-	</div>
-
-
-       <div class="">
-	       <div class="container">
-        <a href='http://QWERTY.co/milfs'>&copy; MILFS Un proyecto de http://QWERTY.co</a> Se distribuye bajo licencia GPL V3
-        <a href="?psi" target="_psi"><i class="fa fa-smile-o "></i> Políticas de privacidad y protección de datos.</a>
-        	</div> 
-      </div>
-      <?php } ?>
-
-</body>
-</html>
\ 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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Auth class
- *
- * Hybrid_Auth class provide a simple way to authenticate users via OpenID and OAuth.
- *
- * Generally, Hybrid_Auth is the only class you should instanciate and use throughout your application.
- */
-class Hybrid_Auth {
-
-	public static $version = "2.6.0";
-
-	/**
-	 * Configuration array
-	 * @var array
-	 */
-	public static $config = array();
-
-	/**
-	 * Auth cache
-	 * @var Hybrid_Storage
-	 */
-	public static $store = null;
-
-	/**
-	 * Error pool
-	 * @var Hybrid_Error
-	 */
-	public static $error = null;
-
-	/**
-	 * Logger
-	 * @var Hybrid_Logger
-	 */
-	public static $logger = null;
-
-	/**
-	 * Try to start a new session of none then initialize Hybrid_Auth
-	 *
-	 * Hybrid_Auth constructor will require either a valid config array or
-	 * a path for a configuration file as parameter. To know more please
-	 * refer to the Configuration section:
-	 * http://hybridauth.sourceforge.net/userguide/Configuration.html
-	 *
-	 * @param array $config Configuration array or path to a configratuion file
-	 */
-	function __construct($config) {
-		Hybrid_Auth::initialize($config);
-	}
-
-	/**
-	 * Try to initialize Hybrid_Auth with given $config hash or file
-	 *
-	 * @param array $config Configuration array or path to a configratuion file
-	 * @return void
-	 * @throws Exception
-	 */
-	public static function initialize($config) {
-		if (!is_array($config) && !file_exists($config)) {
-			throw new Exception("Hybriauth config does not exist on the given path.", 1);
-		}
-
-		if (!is_array($config)) {
-			$config = include $config;
-		}
-
-		// build some need'd paths
-		$config["path_base"] = realpath(dirname(__FILE__)) . "/";
-		$config["path_libraries"] = $config["path_base"] . "thirdparty/";
-		$config["path_resources"] = $config["path_base"] . "resources/";
-		$config["path_providers"] = $config["path_base"] . "Providers/";
-
-		// reset debug mode
-		if (!isset($config["debug_mode"])) {
-			$config["debug_mode"] = false;
-			$config["debug_file"] = null;
-		}
-
-		# load hybridauth required files, a autoload is on the way...
-		require_once $config["path_base"] . "Error.php";
-		require_once $config["path_base"] . "Exception.php";
-		require_once $config["path_base"] . "Logger.php";
-
-		require_once $config["path_base"] . "Provider_Adapter.php";
-
-		require_once $config["path_base"] . "Provider_Model.php";
-		require_once $config["path_base"] . "Provider_Model_OpenID.php";
-		require_once $config["path_base"] . "Provider_Model_OAuth1.php";
-		require_once $config["path_base"] . "Provider_Model_OAuth2.php";
-
-		require_once $config["path_base"] . "User.php";
-		require_once $config["path_base"] . "User_Profile.php";
-		require_once $config["path_base"] . "User_Contact.php";
-		require_once $config["path_base"] . "User_Activity.php";
-
-		if (!class_exists("Hybrid_Storage", false)) {
-			require_once $config["path_base"] . "Storage.php";
-		}
-
-		// hash given config
-		Hybrid_Auth::$config = $config;
-
-		// instance of log mng
-		Hybrid_Auth::$logger = new Hybrid_Logger();
-
-		// instance of errors mng
-		Hybrid_Auth::$error = new Hybrid_Error();
-
-		// start session storage mng
-		Hybrid_Auth::$store = new Hybrid_Storage();
-
-		Hybrid_Logger::info("Enter Hybrid_Auth::initialize()");
-		Hybrid_Logger::info("Hybrid_Auth::initialize(). PHP version: " . PHP_VERSION);
-		Hybrid_Logger::info("Hybrid_Auth::initialize(). Hybrid_Auth version: " . Hybrid_Auth::$version);
-		Hybrid_Logger::info("Hybrid_Auth::initialize(). Hybrid_Auth called from: " . Hybrid_Auth::getCurrentUrl());
-
-		// PHP Curl extension [http://www.php.net/manual/en/intro.curl.php]
-		if (!function_exists('curl_init')) {
-			Hybrid_Logger::error('Hybridauth Library needs the CURL PHP extension.');
-			throw new Exception('Hybridauth Library needs the CURL PHP extension.');
-		}
-
-		// PHP JSON extension [http://php.net/manual/en/book.json.php]
-		if (!function_exists('json_decode')) {
-			Hybrid_Logger::error('Hybridauth Library needs the JSON PHP extension.');
-			throw new Exception('Hybridauth Library needs the JSON PHP extension.');
-		}
-
-		// session.name
-		if (session_name() != "PHPSESSID") {
-			Hybrid_Logger::info('PHP session.name diff from default PHPSESSID. http://php.net/manual/en/session.configuration.php#ini.session.name.');
-		}
-
-		// safe_mode is on
-		if (ini_get('safe_mode')) {
-			Hybrid_Logger::info('PHP safe_mode is on. http://php.net/safe-mode.');
-		}
-
-		// open basedir is on
-		if (ini_get('open_basedir')) {
-			Hybrid_Logger::info('PHP open_basedir is on. http://php.net/open-basedir.');
-		}
-
-		Hybrid_Logger::debug("Hybrid_Auth initialize. dump used config: ", serialize($config));
-		Hybrid_Logger::debug("Hybrid_Auth initialize. dump current session: ", Hybrid_Auth::storage()->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
-	 *
-	 * <code>
-	 * array(
-	 *   'Facebook' => array(
-	 *     'connected' => true
-	 *   )
-	 * )
-	 * </code>
-	 * @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 '<html>';
-			echo '<head>';
-			echo '<script type="text/javascript">';
-			echo 'function redirect(){ window.top.location.href="' . $url . '"; }';
-			echo '</script>';
-			echo '</head>';
-			echo '<body onload="redirect()">';
-			echo 'Redirecting, please wait...';
-			echo '</body>';
-			echo '</html>';
-		}
-
-		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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Endpoint class
- *
- * Provides a simple way to handle the OpenID and OAuth endpoint
- */
-class Hybrid_Endpoint {
-
-	protected $request = null;
-	protected $initDone = false;
-
-	/**
-	 * Process the current request
-	 *
-	 * @param array $request The current request parameters. Leave as null to default to use $_REQUEST.
-	 */
-	public function __construct($request = null) {
-		if (is_null($request)) {
-			// Fix a strange behavior when some provider call back ha endpoint
-			// with /index.php?hauth.done={provider}?{args}...
-			// >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("&lt;", "&gt;", "&quot;", "&apos;", "&amp;"), 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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Errors manager
- *
- * HybridAuth errors are stored in Hybrid::storage() and not displayed directly to the end user
- */
-class Hybrid_Error {
-
-	/**
-	 * Store error in session
-	 *
-	 * @param string $message  Error message
-	 * @param int    $code     Error code
-	 * @param string $trace    Back trace
-	 * @param string $previous Previous exception
-	 */
-	public static function setError($message, $code = null, $trace = null, $previous = null) {
-		Hybrid_Logger::info("Enter Hybrid_Error::setError( $message )");
-
-		Hybrid_Auth::storage()->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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Exception implementation
- *
- * The base Exception is extended to allow applications to handle exceptions from hybrid auth
- * separately from general exceptions.
- */
-class Hybrid_Exception extends Exception {
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Logger.php b/milfs/librerias/hybridauth/Hybrid/Logger.php
deleted file mode 100644
index f948913..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Logger.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Debugging and Logging manager
- */
-class Hybrid_Logger {
-
-	/**
-	 * Constructor
-	 */
-	function __construct() {
-		// if debug mode is set to true, then check for the writable log file
-		if (Hybrid_Auth::$config["debug_mode"]) {
-			if (!isset(Hybrid_Auth::$config["debug_file"])) {
-				throw new Exception("'debug_mode' is set to 'true' but no log file path 'debug_file' is set.", 1);
-			} elseif (!file_exists(Hybrid_Auth::$config["debug_file"]) && !is_writable(Hybrid_Auth::$config["debug_file"])) {
-				if (!touch(Hybrid_Auth::$config["debug_file"])) {
-					throw new Exception("'debug_mode' is set to 'true', but the file " . Hybrid_Auth::$config['debug_file'] . " in 'debug_file' can not be created.", 1);
-				}
-			} elseif (!is_writable(Hybrid_Auth::$config["debug_file"])) {
-				throw new Exception("'debug_mode' is set to 'true', but the given log file path 'debug_file' is not a writable file.", 1);
-			}
-		}
-	}
-
-	/**
-	 * Logs a debug message with an object dump
-	 *
-	 * @param string   $message Debug message
-	 * @param stdClass $object  Object being debugged
-	 * @return void
-	 */
-	public static function debug($message, $object = null) {
-		if (Hybrid_Auth::$config["debug_mode"] === true) {
-      $dt = new DateTime('now', new DateTimeZone( 'UTC' ));
-			file_put_contents(Hybrid_Auth::$config["debug_file"], implode(' -- ', array(
-				"DEBUG",
-				$_SERVER['REMOTE_ADDR'],
-				$dt->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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Provider_Adapter is the basic class which Hybrid_Auth will use
- * to connect users to a given provider.
- *
- * Basically Hybrid_Provider_Adapter will create a bridge from your php
- * application to the provider api.
- *
- * Hybrid_Auth will automatically load Hybrid_Provider_Adapter and create
- * an instance of it for each authenticated provider.
- */
-class Hybrid_Provider_Adapter {
-
-	/**
-	 * Provider ID (or unique name)
-	 * @var mixed
-	 */
-	public $id = null;
-
-	/**
-	 * Provider adapter specific config
-	 * @var array
-	 */
-	public $config = null;
-
-	/**
-	 * Provider adapter extra parameters
-	 * @var array
-	 */
-	public $params = array();
-
-	/**
-	 * Provider adapter wrapper path
-	 * @var string
-	 */
-	public $wrapper = null;
-
-	/**
-	 * Provider adapter instance
-	 * @var Hybrid_Provider_Model
-	 */
-	public $adapter = null;
-
-	/**
-	 * Create a new adapter switch IDp name or ID
-	 *
-	 * @param string $id     The id or name of the IDp
-	 * @param array  $params (optional) required parameters by the adapter
-	 * @return Hybrid_Provider_Adapter
-	 * @throws Exception
-	 */
-	function factory($id, $params = array()) {
-		Hybrid_Logger::info("Enter Hybrid_Provider_Adapter::factory( $id )");
-
-		# init the adapter config and params
-		$this->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
-	 *
-	 * <code>
-	 * array(
-	 *   'access_token' => '',
-	 *   'access_token_secret' => '',
-	 *   'refresh_token' => '',
-	 *   'expires_in' => '',
-	 *   'expires_at' => '',
-	 * )
-	 * </code>
-	 * @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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Provider_Model provide a common interface for supported IDps on HybridAuth.
- *
- * Basically, each provider adapter has to define at least 4 methods:
- *   Hybrid_Providers_{provider_name}::initialize()
- *   Hybrid_Providers_{provider_name}::loginBegin()
- *   Hybrid_Providers_{provider_name}::loginFinish()
- *   Hybrid_Providers_{provider_name}::getUserProfile()
- *
- * HybridAuth also come with three others models
- *   Class Hybrid_Provider_Model_OpenID for providers that uses the OpenID 1 and 2 protocol.
- *   Class Hybrid_Provider_Model_OAuth1 for providers that uses the OAuth 1 protocol.
- *   Class Hybrid_Provider_Model_OAuth2 for providers that uses the OAuth 2 protocol.
- */
-abstract class Hybrid_Provider_Model {
-
-  /**
-   * IDp ID (or unique name)
-   * @var mixed
-   */
-  public $providerId = null;
-
-  /**
-   * Specific provider adapter config
-   * @var array
-   */
-  public $config = null;
-
-  /**
-   * Provider extra parameters
-   * @var array
-   */
-  public $params = null;
-
-  /**
-   * Endpoint URL for that provider
-   * @var string
-   */
-  public $endpoint = null;
-
-  /**
-   * Hybrid_User obj, represents the current loggedin user
-   * @var Hybrid_User
-   */
-  public $user = null;
-
-  /**
-   * The provider api client (optional)
-   * @var stdClass
-   */
-  public $api = null;
-
-  /**
-   * Model should use "gzip,deflate" for CURLOPT_ENCODING
-   * @var stdClass
-   */
-  public $compressed = false;
-
-  /**
-   * Common providers adapter constructor
-   *
-   * @param mixed $providerId Provider ID
-   * @param array $config     Provider adapter config
-   * @param array $params     Provider extra params
-   */
-  function __construct($providerId, $config, $params = null) {
-    # init the IDp adapter parameters, get them from the cache if possible
-    if (!$params) {
-      $this->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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * To implement an OAuth 1 based service provider, Hybrid_Provider_Model_OAuth1
- * can be used to save the hassle of the authentication flow.
- *
- * Each class that inherit from Hybrid_Provider_Model_OAuth1 have to implement
- * at least 2 methods:
- *   Hybrid_Providers_{provider_name}::initialize()     to setup the provider api end-points urls
- *   Hybrid_Providers_{provider_name}::getUserProfile() to grab the user profile
- *
- * Hybrid_Provider_Model_OAuth1 use OAuth1Client v0.1 which can be found on
- * Hybrid/thirdparty/OAuth/OAuth1Client.php
- */
-class Hybrid_Provider_Model_OAuth1 extends Hybrid_Provider_Model {
-
-	/**
-	 * Provider API client
-	 * @var OAuth1Client 
-	 */
-	public $api = null;
-
-	/**
-	 * Request_tokens as received from provider
-	 * @var stdClas
-	 */
-	public $request_tokens_raw = null;
-
-	/**
-	 * Access_tokens as received from provider
-	 * @var stdClass
-	 */
-	public $access_tokens_raw = null;
-
-	/**
-	 * Try to get the error message from provider api
-	 *
-	 * @param int $code Error code
-	 * @return string
-	 */
-	function errorMessageByStatus($code = null) {
-		$http_status_codes = array(
-			200 => "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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * To implement an OAuth 2 based service provider, Hybrid_Provider_Model_OAuth2
- * can be used to save the hassle of the authentication flow.
- *
- * Each class that inherit from Hybrid_Provider_Model_OAuth2 have to implement
- * at least 2 methods:
- *   Hybrid_Providers_{provider_name}::initialize()     to setup the provider api end-points urls
- *   Hybrid_Providers_{provider_name}::getUserProfile() to grab the user profile
- *
- * Hybrid_Provider_Model_OAuth2 use OAuth2Client v0.1 which can be found on
- * Hybrid/thirdparty/OAuth/OAuth2Client.php
- */
-class Hybrid_Provider_Model_OAuth2 extends Hybrid_Provider_Model {
-
-  /**
-   * Default permissions
-   * @var string
-   */
-  public $scope = "";
-
-  /**
-   * Provider API wrapper
-   * @var OAuth2Client 
-   */
-  public $api = null;
-
-  /**
-   * Try to get the error message from provider api
-   *
-   * @param int $code Error code
-   * @return string
-   */
-  function errorMessageByStatus($code = null) {
-    $http_status_codes = array(
-      200 => "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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * To implement an OpenID based service provider, Hybrid_Provider_Model_OpenID
- * can be used to save the hassle of the authentication flow.
- *
- * Each class that inherit from Hybrid_Provider_Model_OAuth2 have only to define
- * the provider identifier : <code>public $openidIdentifier = ""; </code>
- *
- * 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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_AOL provider adapter based on OpenID protocol
- * 
- * http://hybridauth.sourceforge.net/userguide/IDProvider_info_AOL.html
- */
-class Hybrid_Providers_AOL extends Hybrid_Provider_Model_OpenID {
-
-	var $openidIdentifier = "http://openid.aol.com/";
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/Facebook.php b/milfs/librerias/hybridauth/Hybrid/Providers/Facebook.php
deleted file mode 100644
index bd05bae..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/Facebook.php
+++ /dev/null
@@ -1,431 +0,0 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_Facebook provider adapter based on OAuth2 protocol
- *
- * Hybrid_Providers_Facebook use the Facebook PHP SDK created by Facebook
- *
- * http://hybridauth.sourceforge.net/userguide/IDProvider_info_Facebook.html
- */
-class Hybrid_Providers_Facebook extends Hybrid_Provider_Model {
-
-	/**
-	 * default permissions, and a lot of them. You can change them from the configuration by setting the scope to what you want/need
-	 * {@inheritdoc}
-	 */
-	public $scope = "email, user_about_me, user_birthday, user_hometown, user_location, user_website, publish_actions, read_custom_friendlists";
-
-	/**
-	 * Provider API client
-	 * @var Facebook
-	 */
-	public $api;
-
-	/**
-	 * {@inheritdoc}
-	 */
-	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);
-		}
-
-		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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_Foursquare provider adapter based on OAuth2 protocol
- *
- * http://hybridauth.sourceforge.net/userguide/IDProvider_info_Foursquare.html
- */
-
-/**
- * Howto define profile photo size:
- * - add params key into hybridauth config
- * ...
- *    "Foursquare" => 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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_Google provider adapter based on OAuth2 protocol
- *
- * http://hybridauth.sourceforge.net/userguide/IDProvider_info_Google.html
- */
-class Hybrid_Providers_Google extends Hybrid_Provider_Model_OAuth2 {
-
-	/**
-	 * > 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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_LinkedIn provider adapter based on OAuth1 protocol
- *
- * Hybrid_Providers_LinkedIn use linkedinPHP library created by fiftyMission Inc.
- *
- * http://hybridauth.sourceforge.net/userguide/IDProvider_info_LinkedIn.html
- */
-class Hybrid_Providers_LinkedIn extends Hybrid_Provider_Model {
-
-	/**
-	 * Provider API Wrapper
-	 * @var LinkedIn 
-	 */
-	public $api;
-
-	/**
-	 * {@inheritdoc}
-	 */
-	function initialize() {
-		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);
-		}
-		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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Windows Live OAuth2 Class
- * 
- * @package             HybridAuth providers package 
- * @author              Lukasz Koprowski <azram19@gmail.com>
- * @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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_OpenID provider adapter for any idp openid based 
- * 
- * http://hybridauth.sourceforge.net/userguide/IDProvider_info_OpenID.html
- */
-class Hybrid_Providers_OpenID extends Hybrid_Provider_Model_OpenID {
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/Providers/Twitter.php b/milfs/librerias/hybridauth/Hybrid/Providers/Twitter.php
deleted file mode 100644
index dad718f..0000000
--- a/milfs/librerias/hybridauth/Hybrid/Providers/Twitter.php
+++ /dev/null
@@ -1,263 +0,0 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_Providers_Twitter provider adapter based on OAuth1 protocol
- */
-class Hybrid_Providers_Twitter extends Hybrid_Provider_Model_OAuth1 {
-
-	/**
-	 * {@inheritdoc}
-	 */
-	function initialize() {
-		parent::initialize();
-
-		// Provider api end-points 
-		$this->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 @@
-<?php
-
-/* !
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Yahoo OAuth Class
- * 
- * @package             HybridAuth providers package 
- * @author              Lukasz Koprowski <azram19@gmail.com>
- * @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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html 
- */
-require_once realpath(dirname(__FILE__)) . "/StorageInterface.php";
-
-/**
- * HybridAuth storage manager
- */
-class Hybrid_Storage implements Hybrid_Storage_Interface {
-
-	/**
-	 * Constructor
-	 */
-	function __construct() {
-		if (!session_id()) {
-			if (!session_start()) {
-				throw new Exception("Hybridauth requires the use of 'session_start()' at the start of your script, which appears to be disabled.", 1);
-			}
-		}
-
-		$this->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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * HybridAuth storage manager interface
- */
-interface Hybrid_Storage_Interface {
-
-	public function config($key, $value = null);
-
-	public function get($key);
-
-	public function set($key, $value);
-
-	function clear();
-
-	function delete($key);
-
-	function deleteMatch($key);
-
-	function getSessionData();
-
-	function restoreSessionData($sessiondata = null);
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/User.php b/milfs/librerias/hybridauth/Hybrid/User.php
deleted file mode 100644
index 6461671..0000000
--- a/milfs/librerias/hybridauth/Hybrid/User.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * The Hybrid_User class represents the current logged in user
- */
-class Hybrid_User {
-
-	/**
-	 * The ID (name) of the connected provider
-	 * @var mixed
-	 */
-	public $providerId = null;
-
-	/**
-	 * Timestamp connection to the provider
-	 * @var int
-	 */
-	public $timestamp = null;
-
-	/**
-	 * User profile, contains the list of fields available in the normalized user profile structure used by HybridAuth
-	 * @var Hybrid_User_Profile
-	 */
-	public $profile = null;
-
-	/**
-	 * Initialize the user object
-	 */
-	function __construct() {
-		$this->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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_User_Activity
- *
- * used to provider the connected user activity stream on a standardized structure across supported social apis.
- *
- * http://hybridauth.sourceforge.net/userguide/Profile_Data_User_Activity.html
- */
-class Hybrid_User_Activity {
-
-	/**
-	 * Activity id on the provider side, usually given as integer
-	 * @var mixed
-	 */
-	public $id = null;
-
-	/**
-	 * Activity date of creation
-	 * @var int
-	 */
-	public $date = null;
-
-	/**
-	 * Activity content as a string
-	 * @var string
-	 */
-	public $text = null;
-
-	/**
-	 * User who created the activity
-	 * @var stdClass
-	 */
-	public $user = null;
-
-	/**
-	 * Constructor
-	 */
-	public function __construct() {
-		$this->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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_User_Contact
- *
- * used to provider the connected user contacts list on a standardized structure across supported social apis.
- *
- * http://hybridauth.sourceforge.net/userguide/Profile_Data_User_Contacts.html
- */
-class Hybrid_User_Contact {
-
-	/**
-	 * The Unique contact user ID
-	 * @var mixed
-	 */
-	public $identifier = null;
-
-	/**
-	 * User website, blog, web page
-	 * @var string
-	 */
-	public $webSiteURL = null;
-
-	/**
-	 * URL link to profile page on the IDp web site
-	 * @var string
-	 */
-	public $profileURL = null;
-
-	/**
-	 * URL link to user photo or avatar
-	 * @var string
-	 */
-	public $photoURL = null;
-
-	/**
-	 * User displayName provided by the IDp or a concatenation of first and last name
-	 * @var string
-	 */
-	public $displayName = null;
-
-	/**
-	 * A short about_me
-	 * @var string
-	 */
-	public $description = null;
-
-	/**
-	 * User email. Not all of IDp grant access to the user email
-	 * @var string
-	 */
-	public $email = null;
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/User_Profile.php b/milfs/librerias/hybridauth/Hybrid/User_Profile.php
deleted file mode 100644
index 6a4070c..0000000
--- a/milfs/librerias/hybridauth/Hybrid/User_Profile.php
+++ /dev/null
@@ -1,152 +0,0 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-
-/**
- * Hybrid_User_Profile object represents the current logged in user profile.
- * The list of fields available in the normalized user profile structure used by HybridAuth.
- *
- * The Hybrid_User_Profile object is populated with as much information about the user as
- * HybridAuth was able to pull from the given API or authentication provider.
- *
- * http://hybridauth.sourceforge.net/userguide/Profile_Data_User_Profile.html
- */
-class Hybrid_User_Profile {
-
-	/**
-	 * The Unique user's ID on the connected provider
-	 * @var mixed
-	 */
-	public $identifier = null;
-
-	/**
-	 * User website, blog, web page
-	 * @var string
-	 */
-	public $webSiteURL = null;
-
-	/**
-	 * URL link to profile page on the IDp web site
-	 * @var string
-	 */
-	public $profileURL = null;
-
-	/**
-	 * URL link to user photo or avatar
-	 * @var string
-	 */
-	public $photoURL = null;
-
-	/**
-	 * User displayName provided by the IDp or a concatenation of first and last name.
-	 * @var string
-	 */
-	public $displayName = null;
-
-	/**
-	 * A short about_me
-	 * @var string
-	 */
-	public $description = null;
-
-	/**
-	 * User's first name
-	 * @var string
-	 */
-	public $firstName = null;
-
-	/**
-	 * User's last name
-	 * @var string
-	 */
-	public $lastName = null;
-
-	/**
-	 * Male or female
-	 * @var string
-	 */
-	public $gender = null;
-
-	/**
-	 * Language
-	 * @var string
-	 */
-	public $language = null;
-
-	/**
-	 * User age, we don't calculate it. we return it as is if the IDp provide it.
-	 * @var int
-	 */
-	public $age = null;
-
-	/**
-	 * User birth Day
-	 * @var int
-	 */
-	public $birthDay = null;
-
-	/**
-	 * User birth Month
-	 * @var int
-	 */
-	public $birthMonth = null;
-
-	/**
-	 * User birth Year
-	 * @var int
-	 */
-	public $birthYear = null;
-
-	/**
-	 * User email. Note: not all of IDp grant access to the user email
-	 * @var string
-	 */
-	public $email = null;
-
-	/**
-	 * Verified user email. Note: not all of IDp grant access to verified user email
-	 * @var string
-	 */
-	public $emailVerified = null;
-
-	/**
-	 * Phone number
-	 * @var string
-	 */
-	public $phone = null;
-
-	/**
-	 * Complete user address
-	 * @var string
-	 */
-	public $address = null;
-
-	/**
-	 * User country
-	 * @var string
-	 */
-	public $country = null;
-
-	/**
-	 * Region
-	 * @var string
-	 */
-	public $region = null;
-
-	/**
-	 * City
-	 * @var string
-	 */
-	public $city = null;
-
-	/**
-	 * Postal code
-	 * @var string
-	 */
-	public $zip = null;
-
-}
diff --git a/milfs/librerias/hybridauth/Hybrid/index.html b/milfs/librerias/hybridauth/Hybrid/index.html
deleted file mode 100644
index 065d2da..0000000
--- a/milfs/librerias/hybridauth/Hybrid/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
-<head>
-	<title>403 Forbidden</title>
-</head>
-<body>
-
-<p>Directory access is forbidden.</p>
-
-</body>
-</html>
\ 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 @@
-<html>
-<head>
-	<title>403 Forbidden</title>
-</head>
-<body>
-
-<p>Directory access is forbidden.</p>
-
-</body>
-</html>
\ 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 @@
-<html>
-	<head> 
-		<title>OpenID Policy</title>
-	</head>
-	<body>
-		<!--
-			Set here your OpenID Policy,
-		-->
-	</body>
-</html>
\ 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 @@
-<html> 
-	<head>
-		<title>HybridAuth Endpoint</title>
-		<meta name="robots" content="NOINDEX, NOFOLLOW">
-		<meta http-equiv="X-XRDS-Location" content="{X_XRDS_LOCATION}" />
-	</head>
-	<body>
-		<h3 style="margin-bottom: 2px;">HybridAuth</h3> 
-		Open Source Social Sign On PHP Library. 
-		<br />
-		<a href="http://hybridauth.sourceforge.net/" style="color:green;text-decoration:none;">hybridauth.sourceforge.net/</a> 
-	</body>
-</html>
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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xrds:XRDS  
-    xmlns:xrds="xri://$xrds"  
-    xmlns:openid="http://openid.net/xmlns/1.0"  
-    xmlns="xri://$xrd*($v*2.0)">  
-    <XRD>  
-        <Service priority="1">  
-            <Type>http://specs.openid.net/auth/2.0/return_to</Type>  
-            <URI>{RETURN_TO_URL}</URI>  
-        </Service>  
-    </XRD>  
-</xrds:XRDS>
\ 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 @@
-<?php
-/**
- * Copyright 2011 Facebook, Inc.
- *
- * 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.
- */
-
-if (!function_exists('curl_init')) {
-  throw new Exception('Facebook needs the CURL PHP extension.');
-}
-if (!function_exists('json_decode')) {
-  throw new Exception('Facebook needs the JSON PHP extension.');
-}
-
-/**
- * Thrown when an API call returns an exception.
- *
- * @author Naitik Shah <naitik@facebook.com>
- */
-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 <naitik@facebook.com>
- */
-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 @@
-<?php
-/**
- * Copyright 2011 Facebook, Inc.
- *
- * 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.
- */
-
-require_once "base_facebook.php";
-
-/**
- * Extends the BaseFacebook class with the intent of using
- * PHP sessions to store user ids and access tokens.
- */
-class Facebook extends BaseFacebook
-{
-  /**
-   * Cookie prefix
-   */
-  const FBSS_COOKIE_NAME = 'fbss';
-
-  /**
-   * We can set this to a high number because the main session
-   * expiration will trump this.
-   */
-  const FBSS_COOKIE_EXPIRE = 31556926; // 1 year
-
-  /**
-   * Stores the shared session ID if one is set.
-   *
-   * @var string
-   */
-  protected $sharedSessionID;
-
-  /**
-   * Identical to the parent constructor, except that
-   * we start a PHP session to store the user ID and
-   * access token if during the course of execution
-   * we discover them.
-   *
-   * @param array $config the application configuration. Additionally
-   * accepts "sharedSession" as a boolean to turn on a secondary
-   * cookie for environments with a shared session (that is, your app
-   * shares the domain with other apps).
-   *
-   * @see BaseFacebook::__construct
-   */
-  public function __construct($config) {
-    if ((function_exists('session_status') 
-      && session_status() !== PHP_SESSION_ACTIVE) || !session_id()) {
-      session_start();
-    }
-    parent::__construct($config);
-    if (!empty($config['sharedSession'])) {
-      $this->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 @@
-<?php
-// http://code.google.com/p/simple-linkedinphp/
-// 3.2.0 - November 29, 2011
-// hacked into the code to handel new scope (r_basicprofile+r_emailaddress) - until Paul update linkedinphp library!
-// Facyla note 20131219 : this in fact should not be hacked, as Linkedin lets developpers define the wanted scope
-//   in Linkedin application settings, when creating the (required) application and API access
-
-/**
- * This file defines the 'LinkedIn' class. This class is designed to be a
- * simple, stand-alone implementation of the LinkedIn API functions.
- *
- * COPYRIGHT:
- *
- * Copyright (C) 2011, fiftyMission Inc.
- *
- * 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.
- *
- * SOURCE CODE LOCATION:
- *
- * http://code.google.com/p/simple-linkedinphp/
- *
- * REQUIREMENTS:
- *
- * 1. You must have cURL installed on the server and available to PHP.
- * 2. You must be running PHP 5+.
- *
- * QUICK START:
- *
- * There are two files needed to enable LinkedIn API functionality from PHP; the
- * stand-alone OAuth library, and this LinkedIn class. The latest version of
- * the stand-alone OAuth library can be found on Google Code:
- *
- * http://code.google.com/p/oauth/
- *
- * Install these two files on your server in a location that is accessible to
- * the scripts you wish to use them in. Make sure to change the file
- * permissions such that your web server can read the files.
- *
- * Next, make sure the path to the OAuth library is correct (you can change this
- * as needed, depending on your file organization scheme, etc).
- *
- * Finally, test the class by attempting to connect to LinkedIn using the
- * associated demo.php page, also located at the Google Code location
- * referenced above.
- *
- * RESOURCES:
- *
- * REST API Documentation: http://developer.linkedin.com/rest
- *
- * @version 3.2.0 - November 8, 2011
- * @author Paul Mennega <paul@fiftymission.net>
- * @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                = '<a>';
-
-  // 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, '<job-bookmark><job><id>' . trim($jid) . '</id></job></job-bookmark>');
-
-	  /**
-	   * 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    = '<?xml version="1.0" encoding="UTF-8"?>
-                <update-comment>
-  				        <comment>' . $comment . '</comment>
-  				      </update-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 = '<?xml version="1.0" encoding="UTF-8"?>
-    				 <post>
-    					 <title>'. $title . '</title>
-    					 <summary>' . $summary . '</summary>
-    				 </post>';
-
- 		// 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 = '<?xml version="1.0" encoding="UTF-8"?>';
-		switch($type) {
-			case 'promotion':
-				$data .= '<code>promotion</code>';
-				break;
-			case 'job':
-				$data .= '<code>job</code>';
-				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, '<company><id>' . trim($cid) . '</id></company>');
-
-	  /**
-	   * 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 = '<?xml version="1.0" encoding="UTF-8"?>
-				     <is-following>'. (($follow) ? 'true' : 'false'). '</is-following>';
-
-		// 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   = '<?xml version="1.0" encoding="UTF-8"?>
-		           <mailbox-item>
-		             <recipients>
-                   <recipient>';
-                     switch($method) {
-                       case 'email':
-                         // email-based invitation
-                         $data .= '<person path="/people/email=' . $recipient['email'] . '">
-                                     <first-name>' . htmlspecialchars($recipient['first-name']) . '</first-name>
-                                     <last-name>' . htmlspecialchars($recipient['last-name']) . '</last-name>
-                                   </person>';
-                         break;
-                       case 'id':
-                         // id-based invitation
-                         $data .= '<person path="/people/id=' . $recipient . '"/>';
-                         break;
-                     }
-    $data  .= '    </recipient>
-                 </recipients>
-                 <subject>' . $subject . '</subject>
-                 <body>' . $body . '</body>
-                 <item-content>
-                   <invitation-request>
-                     <connect-type>';
-                       switch($type) {
-                         case 'friend':
-                           $data .= 'friend';
-                           break;
-                       }
-    $data  .= '      </connect-type>';
-                     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 .= '<authorization>
-                                       <name>' . $authentication[0] . '</name>
-                                       <value>' . $authentication[1] . '</value>
-                                     </authorization>';
-                         } 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  .= '    </invitation-request>
-                 </item-content>
-               </mailbox-item>';
-
-    // 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 = '<?xml version="1.0" encoding="UTF-8"?>
-  				   <group-membership>
-  				   	 <membership-state>
-  				  	 	 <code>member</code>
-  				  	 </membership-state>
-  				   </group-membership>';
-
-		// 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 = '<?xml version="1.0" encoding="UTF-8"?>
-		         <is-liked>true</is-liked>';
-
-		// 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 = '<?xml version="1.0" encoding="UTF-8"?>
-		         <is-liked>'.(($like) ? 'true': 'false').'</is-liked>';
-
-		// 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   = '<?xml version="1.0" encoding="UTF-8"?>
-		           <mailbox-item>
-		             <recipients>';
-    $data  .=     ($copy_self) ? '<recipient><person path="/people/~"/></recipient>' : '';
-                  for($i = 0; $i < count($recipients); $i++) {
-                    if(is_string($recipients[$i])) {
-                      $data .= '<recipient><person path="/people/' . trim($recipients[$i]) . '"/></recipient>';
-                    } else {
-                      throw new LinkedInException ('LinkedIn->message(): bad data passed, $recipients must be an array of type string.');
-                    }
-                  }
-    $data  .= '  </recipients>
-                 <subject>' . htmlspecialchars($subject) . '</subject>
-                 <body>' . htmlspecialchars($body) . '</body>
-               </mailbox-item>';
-
-    // 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 = '<?xml version="1.0" encoding="UTF-8"?>
-       <mailbox-item>
-       <recipients>';
-
-       foreach( $recipients as $recipient )
-       {
-         $data .= '<recipient>';
-         $data .= '<person path="/people/'. $recipient . '"/>';
-         $data .= '</recipient>';
-       }
-       $data .= ' </recipients>
-           <subject>' . $subject . '</subject>
-           <body>' . $body . '</body>
-           </mailbox-item>';
-      // 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   = '<?xml version="1.0" encoding="UTF-8"?>
-		           <job>
-		             <contract-id>' . trim($cid) . '</contract-id>
-                 <renewal/>
-               </job>';
-
-	  // 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:
-	 * 		  -<show-group-logo-in-profile>
-	 * 		  -<contact-email>
-	 * 		  -<email-digest-frequency>
-	 * 		  -<email-announcements-from-managers>
-	 * 		  -<allow-messages-from-members>
-	 * 		  -<email-for-every-new-post>
-	 *
-	 * @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>' . $content_title . '</title>
-                               <submitted-url>' . trim(htmlspecialchars($content['submitted-url'])) . '</submitted-url>';
-            if(array_key_exists('submitted-image-url', $content)) {
-              $content_xml .= '<submitted-image-url>' . trim(htmlspecialchars($content['submitted-image-url'])) . '</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 .= '<description>' . $content_desc . '</description>';
-            }
-            $content_xml .= '</content>';
-
-            $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>' . $comment . '</comment>';
-
-          	$share_flag = true;
-      	  }
-          break;
-        case 'reshare':
-          if(array_key_exists('id', $content)) {
-            // put together the re-share attribution XML
-            $content_xml .= '<attribution>
-                               <share>
-                                 <id>' . trim($content['id']) . '</id>
-                               </share>
-                             </attribution>';
-
-            // 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>' . $comment . '</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       = '<?xml version="1.0" encoding="UTF-8"?>
-                       <share>
-                         ' . $content_xml . '
-                         <visibility>
-                           <code>' . $visibility . '</code>
-                         </visibility>
-                       </share>';
-
-        // 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 = '<?xml version="1.0" encoding="UTF-8"?>
-		         <is-liked>false</is-liked>';
-
-		// 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('<a href="' . $profile_url . '">' . $first_name . ' ' . $last_name . '</a>');
-  		$data   = '<activity locale="en_US">
-    				       <content-type>linkedin-html</content-type>
-    				       <body>' . $user . ' ' . $update . '</body>
-    				     </activity>';
-
-      // 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 @@
-<?php
-// http://oauth.googlecode.com/svn/code/php/OAuth.php
-// rev 1276,	July 4, 2014
-
-// vim: foldmethod=marker
-
-/* Generic exception class
- */
-if (!class_exists('OAuthException', false)) {
-  class OAuthException extends Exception {
-    // pass
-  }
-}
-
-class OAuthConsumer {
-  public $key;
-  public $secret;
-
-  function __construct($key, $secret, $callback_url=null) {
-    $this->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 @@
-<?php
-/**
-* HybridAuth
-* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
-* (c) 2009-2014, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
-*/
-
-// A service client for the OAuth 1/1.0a flow.
-// v0.1
-class OAuth1Client{
-	public $api_base_url          = "";
-	public $authorize_url         = "";
-	public $authenticate_url      = "";
-	public $request_token_url     = "";
-	public $access_token_url      = "";
-
-	public $request_token_method  = "GET";
-	public $access_token_method   = "GET";
-
-	public $redirect_uri          = "";
-
-	public $decode_json           = true;
-	public $curl_time_out         = 30;
-	public $curl_connect_time_out = 30;
-	public $curl_ssl_verifypeer   = false;
-	public $curl_auth_header      = true;
-	public $curl_useragent        = "OAuth/1 Simple PHP Client v0.1; HybridAuth http://hybridauth.sourceforge.net/";
-	public $curl_proxy            = null;
-
-	//--
-
-	public $http_code             = "";
-	public $http_info             = "";
-	protected $response           = null;
-
-	/**
-	* OAuth client constructor
-	*/
-	function __construct( $consumer_key, $consumer_secret, $oauth_token = null, $oauth_token_secret = null )
-	{
-		$this->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 @@
-<?php
-/**
-* HybridAuth
-* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
-* (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
-*/
-
-// A service client for the OAuth 2 flow.
-// v0.1.1
-class OAuth2Client
-{
-  public $api_base_url     = "";
-  public $authorize_url    = "";
-  public $token_url        = "";
-  public $token_info_url   = "";
-
-  public $client_id        = "" ;
-  public $client_secret    = "" ;
-  public $redirect_uri     = "" ;
-  public $access_token     = "" ;
-  public $refresh_token    = "" ;
-
-  public $access_token_expires_in = "" ;
-  public $access_token_expires_at = "" ;
-
-  //--
-
-  public $sign_token_name          = "access_token";
-  public $decode_json              = true;
-  public $curl_time_out            = 30;
-  public $curl_connect_time_out    = 30;
-  public $curl_ssl_verifypeer      = false;
-  public $curl_ssl_verifyhost      = false;
-  public $curl_header              = array();
-  public $curl_useragent           = "OAuth/2 Simple PHP Client v0.1.1; HybridAuth http://hybridauth.sourceforge.net/";
-  public $curl_authenticate_method = "POST";
-  public $curl_proxy               = null;
-  public $curl_compressed          = false;
-  //--
-
-  public $http_code             = "";
-  public $http_info             = "";
-  protected $response           = null;
-
-  //--
-
-  public function __construct( $client_id = false, $client_secret = false, $redirect_uri='', $compressed = false )
-  {
-    $this->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 @@
-<?php
-/**
- * This class provides a simple interface for OpenID 1.1/2.0 authentication.
- *
- * It requires PHP >= 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 <mewp151 at gmail dot com>
- * @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 <meta>/<link> 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('#<Service.*?>(.*?)</Service>#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('#<Type>\s*'.$ns.'(server|signon)\s*</Type>#s', $content, $type)) {
-                            if ($type[1] == 'server') $this->identifier_select = true;
-
-                            preg_match('#<URI.*?>(.*)</URI>#', $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, '<Type>http://openid.net/srv/ax/1.0</Type>');
-                            $this->sreg = strpos($content, '<Type>http://openid.net/sreg/1.0</Type>')
-                                       || strpos($content, '<Type>http://openid.net/extensions/sreg/1.1</Type>');
-
-                            $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('#<Type>\s*'.$ns.'\s*</Type>#s', $content)) {
-
-                            preg_match('#<URI.*?>(.*)</URI>#', $content, $server);
-                            preg_match('#<.*?Delegate>(.*)</.*?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, '<Type>http://openid.net/sreg/1.0</Type>')
-                                       || strpos($content, '<Type>http://openid.net/extensions/sreg/1.1</Type>');
-
-                            $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 @@
-<html>
-<head>
-	<title>403 Forbidden</title>
-</head>
-<body>
-
-<p>Directory access is forbidden.</p>
-
-</body>
-</html>
\ 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 @@
-<?php
-
-/**
- * HybridAuth
- * http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
- * (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
- */
-// ----------------------------------------------------------------------------------------
-//	HybridAuth Config file: http://hybridauth.sourceforge.net/userguide/Configuration.html
-// ----------------------------------------------------------------------------------------
-
-return
-		array(
-			"base_url" => "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 @@
-<?php
-/**
-* HybridAuth
-* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
-* (c) 2009-2015, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html
-*/
-
-// ------------------------------------------------------------------------
-//	HybridAuth End Point
-// ------------------------------------------------------------------------
-
-require_once( "Hybrid/Auth.php" );
-require_once( "Hybrid/Endpoint.php" );
-
-Hybrid_Endpoint::process();
-
- /*if (isset($_REQUEST['hauth_start']))
-        {
-            Hybrid_Endpoint::process();
-
-        }*/
\ No newline at end of file
diff --git a/milfs/logo_tupale.png b/milfs/logo_tupale.png
deleted file mode 100644
index fbfc067..0000000
Binary files a/milfs/logo_tupale.png and /dev/null differ
diff --git a/milfs/map.php b/milfs/map.php
deleted file mode 100644
index 46a399e..0000000
--- a/milfs/map.php
+++ /dev/null
@@ -1,219 +0,0 @@
-<?php session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-//require ('json.lab.php');
-require ('funciones/funciones.php');
-require ("funciones/conex.php");
-require_once ('includes/markdown.php');
-//require ('funciones/convert.php');
-$xajax->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";
-?>
-
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-   <title><?php echo $formulario_nombre[0] ?> MILFS</title>
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-
-<script src='https://api.mapbox.com/mapbox.js/v2.2.2/mapbox.js'></script>
-<link href='https://api.mapbox.com/mapbox.js/v2.2.2/mapbox.css' rel='stylesheet' />
-<link href='https://api.mapbox.com/mapbox.js/plugins/leaflet-markercluster/v0.4.0/MarkerCluster.Default.css' rel='stylesheet' />
-<link href='https://mapbox.com/base/latest/base.css' rel='stylesheet' />
-
-	<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha256-k2/8zcNbxVIh5mnQ52A0r3a6jAgMGxFJFE2707UxGCk= sha512-ZV9KawG2Legkwp3nAlxLIVFudTauWuBpC10uEafMHYL0Sarrz5A7G79kXh5+5+woxQ5HM559XX2UZjMJ36Wplg==" crossorigin="anonymous">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.css">
-	<link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap-markdown.min.css">
-
-<!-- <link href="css/estilos.php?hghgSs" rel="stylesheet"> -->
-<style type="text/css">
-.navbar-default {
-background:rgba(255,255,255,1)  ;
-
-}
-@media (max-width: 800px) {
-    .panel-map{
-        max-width: 970px;
-    }
-
-
-}
-@media (min-width: 800px) {
-    .panel-map{
-        max-width: 200px;
-    }
-}
-
-
-	.leaflet-popup-content {     width:600px !important; }
-
-#map { position:absolute; top:0; bottom:0; width:100%;  }
-  /* Sticky footer styles
--------------------------------------------------- */
-html {
-  position: relative;
-  min-height: 100%;
-}
-body {
-  /* Margin bottom by footer height */
-  margin-bottom: 60px;
-  padding: 0; margin: 0;
-}
-
-
-
-/* Custom page CSS
--------------------------------------------------- */
-/* Not required for template or sticky footer method. */
-
-body > .container {
-  padding: 60px 15px 0;
-}
-.container .text-muted {
-  margin: 20px 0;
-}
-
-.footer {
-  position: absolute;
-  bottom: 3px;
-	width: 95%;
-	margin: 0 auto;
-
-	 height: 120px;
-
-  /* Set the fixed height of the footer here */
-
-   z-index: 999999;
-}
-.footer > .container {
-  padding: 2px;
-  background-color: white;
-  border-radius: 3px;
-  width: 90%;
-  height: 120px;
-  overflow-x: scroll;
-
-
-
-
-}
-
-code {
-  font-size: 80%;
-}
-.modal-dialog {
-  width: 98%;
-  height: auto;
-  padding: 0;
-}
-
-.modal-content {
-  height: auto;
-}
-  </style>
-
-
-<!-- <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>">  -->
-</head>
-<body>
-
-<div id='map'>
-
-	<?php  $categorias = lista_categorias($_REQUEST['id'],'','') ;
-	if($categorias !="") {
-	$pie="
-<div class='footer' id='contenedor_pie' >
-	<div  style='' class='container' >
-	<a href='#' onclick=\"xajax_limpia_div('contenedor_pie'); \"><span class='pull-right'><i class='fa fa-times'></i></span></a>
-	$categorias
-		</div></div>
-</div>";
-
-
-	}else{
-
-	}
-	echo $pie;
-	 ?>
-
-
-<script>
-L.mapbox.accessToken = 'pk.eyJ1IjoiZmNhc3Ryb3QiLCJhIjoiY2lnOWw1bmd1MG93eXVsbTJpcmluYTBxdCJ9.yG7C1rEH6-MpZBEEb68IVg';
-/* var map = L.mapbox.map('map', 'examples.map-i86nkdio')*/
-var map = L.mapbox.map('map', 'mapbox.outdoors')
-    .setView([40, -74.50], 8);
-
-var geoJson = [ <?php echo imprime_geojson("$_REQUEST[id]","$_REQUEST[id2]","$plantilla");?> ];
-var myLayer = L.mapbox.featureLayer()
-  .setGeoJSON(geoJson)
-  .addTo(map);
-
-myLayer.on('layeradd', function(e) {
-	    var marker = e.layer,
-        feature = marker.feature;
-           // Create custom popup content
-    var popupContent =  '' + feature.properties.description + '';
-
-    // http://leafletjs.com/reference.html#popup
-    marker.bindPopup(popupContent,{
-        closeButton: false,
-        minWidth: 320
-    });
-
-         marker.setIcon(L.icon(feature.properties.icon));
-
-});
-
-map.fitBounds(myLayer.getBounds());
-myLayer.setGeoJSON(geoJson);
-</script>
-
-<?php echo mapa_ficha("$_REQUEST[id]");?>
-
-
-
-<!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-         <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4> 
-      </div>
-      <div class='modal-body'>
-
-       <div id='muestra_form'></div>
-
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-
-
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-	      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-			<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
-			<script src="js/markdown.js"></script>
-			<script src="js/to-markdown.js"></script>
-			<script src="js/bootstrap-markdown.js"></script>
-	      <script src="js/scripts.js"></script>
-
-</body>
-</html>
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 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title>Display latitude longitude on marker movement</title>
-
-<script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script>
-
-<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" />
-<style>
-  body { margin:0; padding:0; }
-  #map {width: 100%;height: 280px;}
-</style>
-</head>
-<body onload="javascript:window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= '';">
-
-
-
-<div id='map'></div>
-<?php 
-		if ($_REQUEST[lat] !='') {$lat=$_REQUEST[lat];}else {$lat= "-75.5570125579834";}
-		if ($_REQUEST[lon] !='') {$lon=$_REQUEST[lon];}else {$lon= "6.2463742841860";}
-		if ($_REQUEST[zoom] !='') {$zoom=$_REQUEST[zoom];}else {$zoom= "16";}
-
- ?>
-<script>
-
-
-	var map = 	L.map('map').setView([<?php echo $lon ?>, <?php echo $lat ?>], <?php echo $zoom ?>);
-					L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
-
-function onLocationFound(e) {
-			var radius = e.accuracy / 2;
-			<?php if ($_REQUEST[lat] =='') {
-				echo "var marker = L.marker(e.latlng,{draggable: true}).addTo(map);";
-				}else{
-				echo "var marker = L.marker([$lon,$lat],$zoom,{draggable: true}).addTo(map);";	
-				} ?>
-
-				marker.on('dragend', ondragend);
-						ondragend();
-						function ondragend() {
-						    var m = marker.getLatLng();
-						    var z = map.getZoom();
-						//   window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= m.lng+' '+m.lat+' '+z;
-						    window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= m.lng+' '+m.lat+' '+z;
-													}
-									}
-function onLocationError(e) {
-				var marker = L.marker([<?php echo $lon ?>,<?php echo $lat ?>],{draggable: true}).addTo(map);
-				marker.on('dragend', ondragend);
-						ondragend();
-				function ondragend() {
-						    var m = marker.getLatLng();
-						    var z = map.getZoom();
-
- //   window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= m.lng+' '+m.lat+' '+z;
-    window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= m.lng+' '+m.lat+' '+z;
-											}
-									}
-
-		map.on('locationfound', onLocationFound);
-		map.on('locationerror', onLocationError);
-		map.locate({setView: true, maxZoom: 18});
-</script>
-
-<input id="campo" value='hola'>
-</body>
-</html>
\ 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 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title>Display latitude longitude on marker movement</title>
-
-<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.js"></script>
-
-<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.css" />
-<style>
-  body { margin:0; padding:0; }
-  #map {width: 100%;height: 280px;}
-</style>
-</head>
-<body>
-
-
-
-<div id='map'></div>
-<?php 
-	if ($_REQUEST[lat] !='') {$lat=$_REQUEST[lat];}else {$lat= "-72";}
-	if ($_REQUEST[lon] !='') {$lon=$_REQUEST[lon];}else {$lon= "4";}
-	if ($_REQUEST[zoom] !='') {$zoom=$_REQUEST[zoom];}else {$zoom= "5";}
-	
- ?>
-<script>
-var map = L.map('map')
-   .setView([<?php echo $lon ?>, <?php echo $lat ?>], <?php echo $zoom ?>);
-L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
-<?php 
-if(!isset($_REQUEST['exif'])) { ?>
-function onLocationFound(e) {
-			var radius = e.accuracy / 2;
-			var marker = L.marker(e.latlng,{draggable: true}).addTo(map)
-						L.circle(e.latlng, radius).addTo(map);
-var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
-			
-			marker.on('dragend', ondragend);
-			ondragend();
-			function ondragend() {
-    			var m = marker.getLatLng();
-    			var z = map.getZoom();
-    mapa.value= m.lng+' '+m.lat+' '+z;
-}
-
-									}
-
-
-
-		map.on('locationfound', onLocationFound);
-		
-<?php } ?>
-function onLocationError(e) {
-			//alert(e.message);
-			var marker = L.marker([<?php echo $lon ?>,<?php echo $lat ?>],{draggable: true}).addTo(map);
-			var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
-			marker.on('dragend', ondragend);
-			ondragend();
-			function ondragend() {
-    			var m = marker.getLatLng();
-    			var z = map.getZoom();
-    mapa.value= m.lng+' '+m.lat+' '+z;
- }
-		}
-		map.on('locationerror', onLocationError);
-map.locate({setView: true, maxZoom: 16});
-//var lat = window.parent.document.getElementById('lat');
-//var lng = window.parent.document.getElementById('lon');
-//var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
-
-//var marker = L.marker([<?php echo $lon ?>,<?php echo $lat ?>],{draggable: true}).addTo(map);
-
-
-
-// every time the marker is dragged, update the coordinates container
-//marker.on('dragend', ondragend);
-
-// Set the initial marker coordinate on load.
-//ondragend();
-
-/*
-function ondragend() {
-    var m = marker.getLatLng();
-    var z = map.getZoom();
-
-   // lat.value= m.lat;
-   // lng.value= m.lng;
-    mapa.value= m.lng+' '+m.lat+' '+z;
-}*/
-</script>
-
-
-</body>
-</html>
\ 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 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title>Display latitude longitude on marker movement</title>
-
-<script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script>
-
-<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" />
-<style>
-  body { margin:0; padding:0; }
-  #map {width: 100%;height: 280px;}
-</style>
-</head>
-<body onload="javascript:window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= '';">
-
-
-
-<div id='map'></div>
-<?php 
-	if ($_REQUEST[lat] !='') {$lat=$_REQUEST[lat];}else {$lat= "-75.5570125579834";}
-	if ($_REQUEST[lon] !='') {$lon=$_REQUEST[lon];}else {$lon= "6.2463742841860";}
-	if ($_REQUEST[zoom] !='') {$zoom=$_REQUEST[zoom];}else {$zoom= "16";}
-	
- ?>
-<script>
- 
-var map = L.map('map')
-    .setView([<?php echo $lon ?>, <?php echo $lat ?>], <?php echo $zoom ?>);
-L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
-
-//var lat = window.parent.document.getElementById('lat');
-//var lng = window.parent.document.getElementById('lon');
-
-//var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
-
-
-var marker = L.marker([<?php echo $lon ?>,<?php echo $lat ?>],{draggable: true}).addTo(map);
-
-
-
-// every time the marker is dragged, update the coordinates container
-marker.on('dragend', ondragend);
-
-// Set the initial marker coordinate on load.
-ondragend();
-
-
-function ondragend() {
-    var m = marker.getLatLng();
-    var z = map.getZoom();
-
-   // lat.value= m.lat;
-   // lng.value= m.lng;
-    //mapa.value= m.lng+' '+m.lat+' '+z;
-    window.parent.document.getElementById('<?php echo $_REQUEST[id]?>').value= m.lng+' '+m.lat+' '+z;
-}
-</script>
-
-
-</body>
-</html>
\ 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 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title>Mapero</title>
-
-<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.js"></script>
-
-<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.3/leaflet.css" />
-<style>
-  body { margin:0; padding:0; }
-  #map {width: 100%;height: 280px;}
-</style>
-</head>
-<body>
-
-
-
-<div id='map'></div>
-<?php 
-	if ($_REQUEST[lat] !='') {$lat=$_REQUEST[lat];}else {$lat= "-75.5570125579834";}
-	if ($_REQUEST[lon] !='') {$lon=$_REQUEST[lon];}else {$lon= "6.2463742841860";}
-	if ($_REQUEST[zoom] !='') {$zoom=$_REQUEST[zoom];}else {$zoom= "16";}
-	
- ?>
-<script>
-var map = L.map('map')
-    .setView([<?php echo $lon ?>, <?php echo $lat ?>], <?php echo $zoom ?>);
-L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
-
-//var lat = window.parent.document.getElementById('lat');
-//var lng = window.parent.document.getElementById('lon');
-var mapa = window.parent.document.getElementById('<?php echo $_REQUEST[id]?>');
-
-var marker = L.marker([<?php echo $lon ?>,<?php echo $lat ?>],{draggable: true}).addTo(map);
-
-
-
-// every time the marker is dragged, update the coordinates container
-marker.on('dragend', ondragend);
-
-// Set the initial marker coordinate on load.
-ondragend();
-
-
-function ondragend() {
-    var m = marker.getLatLng();
-    var z = map.getZoom();
-
-   // lat.value= m.lat;
-   // lng.value= m.lng;
-    mapa.value= m.lng+' '+m.lat+' '+z;
-}
-</script>
-
-
-</body>
-</html>
\ 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 @@
-<?php
-///este archivo debe estar un nivel superior al directorio milfs 
-session_start();
-//ini_set('display_errors', 'On');
-require ('milfs/xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('milfs/funciones/funciones.php');
-require ('milfs/funciones/experimentales.php');
-//require ('milfs/funciones/convert.php');
-require ('milfs/funciones/login.php');
-require_once ('milfs/includes/markdown.php');
-require ("milfs/funciones/conex.php");
-
-$xajax->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',"") ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-     <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="milfs/css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!-- 		<link rel="stylesheet" href="milfs/css/style.css" media="screen" /> -->
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<!-- <link href="milfs/css/estilos.php" rel="stylesheet">  -->
-	<script src="milfs/js/jquery.min.js"></script>
-<script src="milfs/js/jquery.timelinr-0.9.54.js"></script>
-<style type="text/css">
-/*@font-face {
-font-family: Brandon_light;
-src: url("milfs/patos/fuentes/Brandon_light.otf") format("opentype");
-}*/
-body{
-
-font-size: 18px;
-color: black;
-}
-
-.modal-dialog {
-  width: 95%;
-  height: 95%;
-  padding: 0;
-}
-
-.modal-content {
-  /*height: 100%;*/
-  border-radius: 0;
-}
-.container-fluid {
-	padding: 0px !important;
-	}
-a.pie{
-color: white !important;
-}
-a.menu{
-color: white !important;
-}
-a:active{
-color: black !important;
-}
-
-
-/*
-.dropdown:hover{
-background-color: #fd0;
-font-weight: normal !important;
-color: black !important;
-}
-.dropdown-toggle:hover{
-background-color: #fd0;
-color: black !important;
-font-weight: normal !important;
-
-}
-.dropdown .open{
-background-color: #fd0;
-color: black !important;
-font-weight: normal !important;
-
-}
-a.menu:hover{
-background-color: #fd0 !important;
-color: black !important;
-}
-.dropdown-menu:hover{
-background-color: #fd0 !important;
-color: black !important;
-font-weight: normal !important;
-
-}
-ul.dropdown-menu{
-background-color: black !important;
-font-weight: normal !important;
-}
-ul.dropdown-menu:hover{
-background-color: #fd0;
-color: black !important;
-font-weight: normal !important;
-
-}
-*/
-	</style>
-</head>
-<body   >
-      <!-- Static navbar -->
-
-      <div class="navbar navbar-fixed-top "style='color:black; background-color:white' role="navigation">
-
-    
-         <div class="navbar-header">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
-              <span class="sr-only">Toggle navigation</span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-            </button>
-            <a class="navbar-brand" href="">
-     
-        <img class="img img-responsive" style="max-height:30px; display:inline" src="milfs/images/secure/?file=150/<?php echo $logo[0] ?>" >
-        <span>
-       <?php echo "<strong title='$formulario_descripcion[0]'>$formulario_nombre[0]</strong>"; ?>
-        </span>
-		</a>
-          </div>
-          <div class="navbar-collapse collapse">
-            <ul class="nav navbar-nav">
-
-	<?php echo portal_listado_formularios(); ?>
-				
-
-            </ul>
-			<?php  echo buscar_datos("","$formulario","","mostrar_contenido"); ?>
-          </div><!--/.nav-collapse -->
-       </div> <!--/.container-fluid -->
-    
-<!-- /container -->
-	<br>	<br>
-	<div id ='contenedor' style='  ' class="container">
-		<div class='row'>
-			<div class='col-md-3'>
-			
-				<div class='panel panel-default'>
-					<div class='panel panel-heading'>
-						 <ul class='list-unstyled'>
-						 
-						 <?php echo portal_listado_formularios(); ?>  
-						 </ul>
-					 </div>
-					<div class='panel-body'>
-						<?php 
-						if($id_campo =="") {			
-						echo portal_listado_campos("$formulario");
-												}
-						else {
-						echo portal_filtro_campos($formulario,$id_campo);
-						echo portal_filtro_campos_select($formulario,"$id_campo");
-						}			
-						?>
-					</div>
-				</div>
-			</div>
-			<div class='col-md-9'>
-				<div id='mostrar_contenido'>
-				<h1>Bienvenido a nuestro portal de datos</h1>
-				</div>
-			</div>
-			
-		</div>
-	</div>
-
-	<div class="" style="background-color: black; color:white; ">
-<!-- 	<img class='img img-resposive' src="milfs/patos/images/pie.png" style="width:100%" alt=""> -->
-
-	</div>
-</div>
-  <!-- Modal -->
-
-<div class='modal fade  ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog modal-lg' style='  ' >
-    <div class='modal-content'  style=' '>
-    	<div class="modal-header">
-        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
-			<br>
-      </div>
-      <div class='modal-body'>
-       <div id='muestra_form' class="row"></div>
-      </div>
-    </div>
-  </div>
-
-<!-- 
-	       <div class='pie' style=" position: fixed;
-  bottom: 0; 
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  
- ">
-	      
-        	</div> -->  
-
-
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-<!--      <script src="milfs/js/jquery.min.js"></script>  -->
-    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
-   <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
-<!--     <script src="milfs/js/bootstrap.min.js"></script>  -->
-    <script src="milfs/js/scripts.js"></script> 
-        
-</body>
-</html>
\ 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<b.length;B+=1)d[B]=b.charCodeAt(B);return o?new Blob([n?d:c],{type:i}):(f=new r,f.append(c),f.getBlob(i))};t.HTMLCanvasElement&&!e.toBlob&&(e.mozGetAsFile?e.toBlob=function(t,o,n){t(n&&e.toDataURL&&i?i(this.toDataURL(o,n)):this.mozGetAsFile("blob",o))}:e.toDataURL&&i&&(e.toBlob=function(t,e,o){t(i(this.toDataURL(e,o)))})),"function"==typeof define&&define.amd?define(function(){return i}):"object"==typeof module&&module.exports?module.exports=i:t.dataURLtoBlob=i}(window);
-//# sourceMappingURL=canvas-to-blob.min.js.map
\ No newline at end of file
diff --git a/milfs/plugins/upload/js/canvas-to-blob.min.js.map b/milfs/plugins/upload/js/canvas-to-blob.min.js.map
deleted file mode 100644
index 7c47d66..0000000
--- a/milfs/plugins/upload/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/plugins/upload/js/cors/jquery.postmessage-transport.js b/milfs/plugins/upload/js/cors/jquery.postmessage-transport.js
deleted file mode 100644
index 4874a8c..0000000
--- a/milfs/plugins/upload/js/cors/jquery.postmessage-transport.js
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * jQuery postMessage 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';
-
-    var counter = 0,
-        names = [
-            'accepts',
-            'cache',
-            'contents',
-            'contentType',
-            'crossDomain',
-            'data',
-            'dataType',
-            'headers',
-            'ifModified',
-            'mimeType',
-            'password',
-            'processData',
-            'timeout',
-            'traditional',
-            'type',
-            'url',
-            'username'
-        ],
-        convert = function (p) {
-            return p;
-        };
-
-    $.ajaxSetup({
-        converters: {
-            'postmessage text': convert,
-            'postmessage json': convert,
-            'postmessage html': convert
-        }
-    });
-
-    $.ajaxTransport('postmessage', function (options) {
-        if (options.postMessage && window.postMessage) {
-            var iframe,
-                loc = $('<a>').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 = $(
-                        '<iframe style="display:none;" src="' +
-                            options.postMessage + '" name="' +
-                            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('&nbsp;');
-                        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:
-        $('<input type="file">').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 = $('<a></a>').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;
-            $('<form></form>').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 style="display:none;"></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 = $(
-                        '<iframe src="' + initialIframeSrc +
-                            '" name="iframe-transport-' + counter + '"></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):
-                                $('<iframe src="' + initialIframeSrc + '"></iframe>')
-                                    .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) {
-                                $('<input type="hidden"/>')
-                                    .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;d<l.length;d+=1)l[d].call(o,c,g,s,n,a);g+=s,h=g}!a.disableImageHead&&h>6&&(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;u<d.length&&(g=d[u],"\x00"!==g);u+=1)c+=g;return c}return d},e.parseExifTag=function(t,i,a,o,r){var n=t.getUint16(a,o);r.exif[n]=e.getExifValue(t,i,a,t.getUint16(a+2,o),t.getUint32(a+4,o),o)},e.parseExifTags=function(e,t,i,a,o){var r,n,s;if(i+6>e.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 () {
-                $('<div class="alert alert-danger"/>')
-                    .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: "<div>",
-	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 @@
-<?php
-/*
- * jQuery File Upload Plugin PHP Class
- * 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
- */
-
-class UploadHandler
-{
-
-    protected $options;
-
-    // PHP File Upload error message codes:
-    // http://php.net/manual/en/features.file-upload.errors.php
-    protected $error_messages = array(
-        1 => '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 @@
-<?php
-/*
- * jQuery File Upload Plugin PHP Example 5.14
- * 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
- */
-
-error_reporting(E_ALL | E_STRICT);
-require('UploadHandler.php');
-$upload_handler = new UploadHandler();
-
-?>
\ 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:
-<FilesMatch "(?i)\.(gif|jpe?g|png)$">
-	ForceType none
-	Header unset Content-Disposition
-</FilesMatch>
-
-# 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 @@
-<?php
-$options = array(
-    'delete_type' => '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 @@
-<?php
-/// ESTE ARCHIVO DEBE ESTAR UN NIVEL POR ENCIMA DEL DIRECTORIO milfs 
-session_start();
-//ini_set('display_errors', 'On');
-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') ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700,300' rel='stylesheet' type='text/css'>
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="milfs/css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<link href="milfs/css/estilos.php" rel="stylesheet">
-
-<!--   <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> -->
-<!--   <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>"> -->
-<link href="milfs/css/carousel.css" rel="stylesheet">
-<style type="text/css">
-body {
-    background: url("") no-repeat center center fixed;
-    -webkit-background-size: cover;
-    -moz-background-size: cover;
-    -o-background-size: cover;
-    background-size: cover;
-    color: gray;
-    background-color: black;}
-.alert-info{
-color: #341208;
-border-color:  #341208;
-background-image: url("");
-}
-
-.jumbotron {
-/* background-image: url("milfs/images/secure/?file=full/<?php echo $logo[0];?>"); */
-background-size: cover;
-background-position: center;
-/* text-shadow:  1px 1px 1px rgba(255,255,255,0.8) ; */
-background-color: black;
-
-}
-
-.navbar-header > p { font-size:20px; color: white; font-family: "Open Sans",sans-serif; font-weight: normal;display:inline }
-.navbar-header > strong{ font-size:20px; color: #802a2a; font-weight: normal; font-family: "Open Sans",sans-serif; ;display:inline}
-.navbar-header {width: 50%;}
-
-.div_aplicacion {
-background-color: #f0eee1 !important;
-}
-.div_aplicacion:hover {
-   -webkit-animation: animatedBackground 1s ease-out 1;
-        -moz-animation: animatedBackground 1s ease-out 1;
-        animation: animatedBackground 1s ease-out 1;
-        -webkit-animation-fill-mode: forwards;
-        animation-fill-mode: forwards;
-        z-index: 10000;
-}
-
-    @-webkit-keyframes animatedBackground {
-        0% {
-            -webkit-transform: scale(1, 1);
-            -moz-transform: scale(1, 1);
-            -ms-transform: scale(1, 1);
-            -o-transform: scale(1, 1);
-            transform: scale(1, 1)
-        }
-        100% {
-        -webkit-transform: scale(1.1, 1.1);
-        -moz-transform: scale(1.1, 1.1);
-        -ms-transform: scale(1.1, 1.1);
-        -o-transform: scale(1.1, 1.1);
-        transform: scale(1.1, 1.1)
-        }
-
-    }
-    
-    
-    @-moz-keyframes animatedBackground {
-        0% {
-            -webkit-transform: scale(1, 1);
-            -moz-transform: scale(1, 1);
-            -ms-transform: scale(1, 1);
-            -o-transform: scale(1, 1);
-            transform: scale(1, 1)
-        }
-        100% {
-            -webkit-transform: scale(1.1, 1.1);
-            -moz-transform: scale(1.1, 1.1);
-            -ms-transform: scale(1.1, 1.1);
-            -o-transform: scale(1.1, 1.1);
-            transform: scale(1.1, 1.1)
-        }
-
-    }
-    @keyframes animatedBackground {
-        0% {
-            -webkit-transform: scale(1, 1);
-            -moz-transform: scale(1, 1);
-            -ms-transform: scale(1, 1);
-            -o-transform: scale(1, 1);
-            transform: scale(1, 1)
-        }
-        100% {
-            -webkit-transform: scale(1.1, 1.1);
-            -moz-transform: scale(1.1, 1.1);
-            -ms-transform: scale(1.1, 1.1);
-            -o-transform: scale(1.1, 1.1);
-            transform: scale(1.1, 1.1)
-        }
-
-    }
-</style>
-<?php if($_REQUEST[id] !='' AND $_REQUEST[c]){$onload ="<script type=\"text/javascript\"> xajax_formulario_modal('$_REQUEST[id]','','$_REQUEST[c]','$_REQUEST[t]')</script>";} ?>
-</head>
-<body>
-  <body>
-<?php echo $onload; ?>
-
-      <nav class="navbar navbar-inverse" role="navigation">
-      	<div class="container-fluid">
-      	  <div class='col-sx-12 ' id='logo_cabecera' style='width:100%;left:40px; background-color: white; '>
-      	 
-		      <div class='pull-right' >
-		      	<div style="">
-		      	<a title="Email" target="_redes" href="mailto:<?php echo $email[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-envelope'></i></span></a>
-		      	<a title="Facebook" target="_redes" href="<?php echo $facebook[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-facebook-square'></i></span></a>
-		      	<a title="Twitter" target="_redes" href="https://twitter.com/<?php echo $twitter[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-twitter'></i></span></a>
-		      	<a title="Inicio" target="" href="?"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-home'></i></span></a>
-		      	
-		      	</div>
-		      	
-		      </div>
-	      </div>
-          <div class="navbar-header" style="  ">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
-              <span class="sr-only">Toggle navigation</span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-            </button>
-            
-            	<p>|<?php echo $razon_social[0];?>|</p>
-	<strong><?php echo $slogan[0];?></strong>
-				
-          </div>
-          <div class="navbar-collapse collapse">
-            <ul class="nav navbar-nav">
-            
-					<li></li>
-              
-            </ul>
-
-          </div><!--/.nav-collapse -->
-		</div>
-      </nav>
-
-  			<?php echo aplicacion_carrusel("","8","galeria") ;	 ?>
-  
-    <div class="container-fluid">
-		<div class="row">
-			<div class="col-sm-8">
-
-			</div>
-			<div class="col-sm-4">
-			</div>
-		</div>
-	<?php  
-	if(isset($_REQUEST[id])){ echo contenido_aplicacion("$_REQUEST[id]","contenido"); }
-	else{	
-	
-	//echo contenido_aplicacion_nombre("Portada","banner") ;
-	//echo aplicaciones_listado("","grid");} ?>
-	<div class="container" style="width:80%">
-	<?php echo aplicaciones_listado("","banner");} 
-	?>
-	</div>
-<br></br>
-	</div>
-  <div  class="center-block" style="  z-index:10000; bottom:10px;">
-  <div role='row' class='row center-block' style="width:95% ; "><?php //echo aplicacion_datos("$_REQUEST[id]");?></div>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-	       <div class='pie' style=" position: fixed; z-index: 10000;
-  bottom: 0;
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  height: 50px;
-  background-color: white;
-background-image: url('milfs/images/menosmicos/background.jpg');
-">
-	      <p class='text-center'> <?php echo "$razon_social[0] $slogan[0] $direccion[0] $telefono[0] <a href ='$web[0]'>$web[0]</a>";  ?></p>
-        <a class='pull-right' href='http://QWERTY.co/milfs'>Powered by: &copy; MILFS </a> 
-        	</div> 
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="milfs/js/jquery.min.js"></script> 
-    <script src="milfs/js/bootstrap.min.js"></script>
-    <script src="milfs/js/scripts.js"></script>
-</body>
-</html>
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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ('funciones/login.php');
-require ("milfs/funciones/conex.php");
-require ("includes/markdown.php");
-$xajax->processRequests(); 
-
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
- <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
-
-<script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script>
-
-<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" />
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php" rel="stylesheet">
-  <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
-  <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>">
-</head>
-<body>
-<div class="container-fluid">
-<div class="col-lg-12">
-<div class="leaflet-popup-content-wrapper" style=" width:100%">
-<?php
-echo aplicacion_presentacion($_REQUEST[id],'',$_REQUEST[time]);
-?>
-</div></div>
-</div>
-  <!-- <div  class="center-block" style="  z-index:10000; bottom:10px;">
-  <div role='row' class='row center-block' style="width:95% ; "><?php echo aplicacion_datos("$_REQUEST[id]");?></div>
-  </div> -->
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
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 @@
-<?php
-
-$email = remplacetas('empresa','id','1','email','') ;
-$email = "<strong>$email[0]</strong>";
-$razon_social = remplacetas('empresa','id','1','razon_social','') ;
-$razon_social ="<strong>$razon_social[0]</strong>";
-$aviso ="
-
-<div class='container-fluid'>
-<!-- 
-PARA CAMBIAR EL CONTENIDO DE ESTE MENSAJE EDITE EL ARCHIVO 
-psi.php 
--->
-<h1>Aviso de privacidad 
-<small>Y políticas de manejo de información personal.</small> 
-</h1>
-<p>En $razon_social respetamos y protegemos tus datos personales</p>
-
-<p>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:</p>
-
-<p>$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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>$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.</p>
-
-<p>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</p>
-
-<p>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.</p>
-
-<p>Si quieres comunicarte con $razon_social , encargada del tratamiento de datos personales, puedes escribirle al área de Comunicaciones a $email</p>
-
-<div class='alert alert-danger'>
-
-<p>ATENCION: Puede existir una versión mas reciente de este archivo en http://qwerty.co/milfs por favor compruebelo antes de modificarlo. </p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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.</p>
-
-<p>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. </p>
-
-<p>Debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte <http://www.gnu.org/licenses/>.</p>
-
-<h2>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.<h2>
-
-
-
-
-</div>
-</div>
-";
-
-//$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 @@
-<?php 
-if(isset($_REQUEST['debug'])) {ini_set('display_errors', 'On');}
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-
-require ("funciones/conex.php");
-
-	
-	$fecha_inicio = mysql_seguridad($_REQUEST[inicio]);
-	$fin = mysql_seguridad($_REQUEST[fin]);
-	$perfil = mysql_seguridad($_REQUEST[id]);
-	$id_campo = mysql_seguridad($_REQUEST[id_campo]);
-	$busqueda = mysql_seguridad($_REQUEST[cadena]);
-	  
-$link=Conectarse();
-if($perfil !=''){$perfil ="AND form_id = '$perfil'";}Else{$perfil ='';}
-
-if($formato =='csv') {$orden = "ORDER BY form_datos.id ASC ";}
-if($id_campo ==''){$campo ='';}else{$campo ="AND id_campo = '$id_campo'";}
-if($busqueda !=''){$busca ="AND contenido LIKE '$busqueda'";}Else{$busca ='';}
-
-
-
-	
-	$consulta = "	SELECT  *,form_campos.id AS id_campo, 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 
-					$busca 
-					$perfil 
-					$campo  
-		$orden";
-					
- //echo $consulta;
-
-	mysqli_query("SET NAMES 'UTF-8'");
-
-
- $resultado = mysqli_query($link,$consulta) or die("error al ejecutar consulta $consulta ");
-  $fecha = time (); 
-  $fecha=date ( "D, d M Y" , $fecha );
-
-
-header('Content-Type: text/xml');
-$xml= "<?xml version='1.0' encoding='utf-8'?>
-<rss 				xmlns:content='http://purl.org/rss/1.0/modules/content/' 
-					xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' 
-					xmlns:dc='http://purl.org/dc/elements/1.1/' >
-  <channel>
-    <title>Formularios $consulta</title>
-    <link></link>
-
-    <description>Respuestas a formularios</description>
-  <category>Formularios</category>
-      <generator>http://qwerty.co</generator>
-      <managingEditor>correo@qwerty.co</managingEditor>
-      <pubDate>$fecha</pubDate>
-      <webMaster>correo@qwerty.co</webMaster>
-		 <language>es-ES</language>";
-
-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 .= "<tr><td>$row[form_datos_id]</td><td>$row[fecha]</td><td>$row[timestamp]</td><td nowrap><a >$formulario_nombre[0]</a></td><td>$row[campo_nombre]</td><td>$row[contenido]</td></tr>";
- $xml .= "<item>
-      <formulario>$formulario_nombre</formulario>
-      <id_form>$fila[form_id]</id_form>
-      <id_campo>$fila[id_campo]</id_campo>
-      <campo>$campo</campo>
-      <contenido><![CDATA[$contenido]]></contenido>
-      <timestamp>$fila[fecha]</timestamp>
-      <control>$fila[control]</control>
-      <id_usuario>$fila[id_usuario]</id_usuario>
-
-  </item>";
-  }
- $xml .= '</channel></rss>';
- 
-
-
-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 @@
-<?php 
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-require ('funciones/convert.php');
-require ("funciones/conex.php");
-require ("includes/markdown.php");
-
-$xajax->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') ;
-?>
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset=utf-8 />
-<title><?php echo $formulario_nombre[0] ?> MILFS</title>
-<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
-<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.js'></script>
-<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.css' rel='stylesheet' />
-<style>
-  body { margin:0; padding:0; }
-  #map { position:absolute; top:0; bottom:0; width:100%; }
-</style>
-</head>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-   <title><?php echo $formulario_nombre[0] ?> MILFS</title>
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-     <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
- <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet">
-
-<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.js'></script>
-<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.2/mapbox.css' rel='stylesheet' />
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php?hghgS" rel="stylesheet">
-  <style type="text/css">
-  body {  padding: 0; margin: 0;  }
-
-  .leaflet-popup-content {     width:600px !important; }
-
-    body { margin:0; padding:0; }
-  #map { position:absolute; top:0; bottom:0; width:100%; }
-  </style>
-
-  <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
-<!--   <link rel="points" type="application/json" href="json.lab.php?id=<?php echo $_REQUEST["id"] ?>"> -->
-</head>
-<body >
-<audio id="foobar" src="images/audios/audio6.mp3" preload="auto" autoplay loop controls></audio>
-<style>
-.info {
-	width: 800px;
-	height: 90%;
-	overflow-y: auto;
-	overflow-x: hidden;
-  position:absolute;
-  top:100px;
-  left:50px;
-  }
-  .info div {
-    
-    border-radius:3px;
-    }
-</style>
-<div id='map'></div>
-<div id='info' class='info' draggable="true"></div>
-
-<script>
-L.mapbox.accessToken = 'pk.eyJ1IjoiaHVtYW5vIiwiYSI6IlgyRTFNdFEifQ.OmQBXmcVg_zq-vMpr8P5vQ';
-var map = L.mapbox.map('map', 'humano.jki5hno0')
-     .setView([40, -74.50], 15);
-
-// As with any other AJAX request, this technique is subject to the Same Origin Policy:
-// http://en.wikipedia.org/wiki/Same_origin_policy
-var featureLayer = L.mapbox.featureLayer()
-    //.loadURL('json.lab.php?id=<?php echo $id ?>')
-     .loadURL('json.lab.php?id=<?php echo $_REQUEST[id] ?>&id2=<?php echo $_REQUEST[id2] ?>')
-    // Once this layer loads, we set a timer to load it again in a few seconds.
-    .on('ready', run)
-    .addTo(map);
-// Add custom popups to each using our custom feature properties
-featureLayer.on('layeradd', function(e) {
-    var marker = e.layer,
-        feature = marker.feature;
-
-    // Create custom popup content
-    var popupContent =  '' + feature.properties.name + '' +
-                            
-                            feature.properties.title +'';
-	var aviso = feature.properties.name;
-	          info.innerHTML = aviso;
-    // http://leafletjs.com/reference.html#popup
-    marker.bindPopup(popupContent,{
-        closeButton: false,
-        minWidth: 320
-    });
-      marker.setIcon(L.icon(feature.properties.icon));
-});
-function run() {
-    featureLayer.eachLayer(function(l) {
-        map.panTo(l.getLatLng());
-    });
-    window.setTimeout(function() {
-        //featureLayer.loadURL('json.lab.php?id=<?php echo $_REQUEST[id] ?>');
-        featureLayer.loadURL('json.lab.php?id=<?php echo $_REQUEST[id] ?>&id2=<?php echo $_REQUEST[id2] ?>');
-        //featureLayer.loadURL('https://wanderdrone.appspot.com/');
-        //alert("Hola");
-          info.innerHTML = aviso;
-    },15000);
-}
-</script>
-<div  class="panel-map" id='panel_map_<?php echo $_REQUEST[id] ?>' style="z-index: 2 !important;">
-  <div role='row' class='row center-block' style="; "><?php echo mapa_ficha("$_REQUEST[id]");?></div>
-  <a class="btn btn-primary btn-block" href="#" onclick="xajax_formulario_modal('<?php echo $agregar ?>'); ">Agregar<br> <?php echo $agregar_nombre[0]; ?></a>
-  <a onClick="window.location.reload()">*</a>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
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 @@
-<?php
-session_start();
-//ini_set('display_errors', 'On');
-require ('xajax/xajax.inc.php');
-$xajax = new xajax();
-require ('funciones/funciones.php');
-//require ('milfs/funciones/convert.php');
-require ('funciones/login.php');
-require_once ('includes/markdown.php');
-$xajax->processRequests(); 
-$logo = remplacetas('empresa','id','1','imagen') ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="css/bootstrap.min.css" rel="stylesheet">
-<link href="css/estilos.php" rel="stylesheet">
-</head>
-<body>
-  <body>
-
-	<div class="">
-
-      <!-- Static navbar -->
-      <img  style="max-height:50px;" src="images/secure/?file=150/<?php echo $logo[0] ?>" >
-<br>
-
-	 <h1 style="text-align: center; margin-bottom: 0cm; line-height: 115%; page-break-before: auto; page-break-after: avoid">
-      <span style="font-family: Helvetica,Arial,sans-serif;"><font color="#222222"><font
-            style="font-size: 22pt" size="2"><b><span style="background: #ffffff">¿DÓNDE
-ESTÁN
-                MIS DATOS?</span></b></font></font></span></h1>
-
-	</div><!-- /container -->
-	<div id ='contenedor' style='  ' class="container">
-	<?php 
-	//echo formulario_campos_filtro("19","115","","xajax_mostrar_coincidencias('19','115',(this.value)); "); 
-	
-//	echo aplicacion_carrusel("¿DÓNDE ESTÁN MIS DATOS?","19","datos") ;
-	 echo formulario_campos_filtro("19","115","","xajax_mostrar_coincidencias_plantilla('19','115',(this.value),'datos'); "); ?>
-
-	<div id='mostrar_resultado'></div>
-	</div>
-	</div>
-  <div  class="center-block" style="  z-index:10000; bottom:10px;">
-  <div role='row' class='row center-block' style="width:95% ; "><?php //echo aplicacion_datos("$_REQUEST[id]");?></div>
-  </div>
-  <!-- Modal -->
-
-<div class='modal fade ' id='muestraInfo' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'>
-  <div class='modal-dialog' >
-    <div class='modal-content'>
-      <div class='modal-header' >
-        <button type='button' class='close' data-dismiss='modal' aria-hidden='true'>&times;</button>
-        <h4 class='modal-title' id='myModalLabel_info'><div id='titulo_modal'></div></h4>
-      </div>
-      <div class='modal-body'>
-      
-       <div id='muestra_form'></div>
-      </div>
-      <div class='modal-footer' id='pie_modal'>
-        
-       
-      </div>
-    </div>
-  </div>
-</div>
-
-
-<div>
-
-  <br>
-      <br>
-
-    Los datos que se encuentran en esta página estan asociados al resultado
-    de la investigación que se encuentra en <a target="_blank" href="http://www.dondeestanmisdatos.info/">http://www.dondeestanmisdatos.info/</a>
-    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 <a target="_blank" href="https://github.com/humano/milfs" target="_blank">MILFS</a> 
-    <br>
-       Esta plataforma nos entrega los datos en forma de una
-      API que puede ser consumida en le siguiente enlace:
-      <br>
-      <br>
-      <a href="http://datos.labmde.org/api.php?id=19">http://datos.labmde.org/api.php?id=19</a>
-      <br>
-      <br>
-      <br>
-</div>
-
-       <div style="position:fixed;
-    bottom:5px;">
-	       <div class="container">
-        <a href='https://github.com/humano/milfs'>Powered by: &copy; MILFS </a> 
-        	</div> 
-      </div>
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-     <script src="js/jquery.min.js"></script> 
-    <script src="js/bootstrap.min.js"></script>
-    <script src="js/scripts.js"></script>
-</body>
-</html>
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 @@
-<?php
-/// ESTE ARCHIVO DEBE ESTAR UN NIVEL POR ENCIMA DEL DIRECTORIO milfs 
-session_start();
-//ini_set('display_errors', 'On');
-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') ;
-?>
-<!DOCTYPE html>
-<html lang="en">
-   <head >
-    <meta charset="utf-8">
-    <meta name="viewport" content="user-scalable=no, width=device-width,  maximum-scale=1,  initial-scale=1">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="description" content="">
-    <meta name="author" content="fredyrivera" >
-     <?php $xajax->printJavascript("milfs/xajax/");  ?>
-    <link rel="shortcut icon" href="favicon-152.png">
-    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700,300' rel='stylesheet' type='text/css'>
-	<link rel="apple-touch-icon-precomposed" href="favicon-152.png">
-	<link href="milfs/css/font-awesome/css/font-awesome.css" rel="stylesheet">
-<!--  <link href="http://getbootstrap.com/examples/sticky-footer-navbar/sticky-footer-navbar.css" rel="stylesheet"> -->
-
-<!-- <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"></script> -->
-
-<!-- <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> -->
-<link href="milfs/css/bootstrap.min.css" rel="stylesheet">
-<link href="milfs/css/styletimeline.css" rel="stylesheet">
-
-<!--   <script src="http://code.jquery.com/jquery-2.1.0.min.js"></script> -->
-<!--   <link rel="points" type="application/json" href="json.php?id=<?php echo $_REQUEST["id"] ?>"> -->
-<style type="text/css">
-.navbar-header > p { font-size:20px; color: white; font-family: "Open Sans",sans-serif; font-weight: normal;display:inline }
-.navbar-header > strong{ font-size:20px; color: #802a2a; font-weight: normal; font-family: "Open Sans",sans-serif; ;display:inline}
-.navbar-header {width: 50%;}
-</style>
-<?php
-if(isset($_REQUEST[id])) {$id=$_REQUEST[id];
-$onload ="<script type=\"text/javascript\"> xajax_contenido_timeline('$id');</script>";} ?>
-</head>
-<body>
-     <script src="milfs/js/jquery.min.js"></script> 
-    <script src="milfs/js/bootstrap.min.js"></script>
-    <script src="milfs/js/scripts.js"></script>
-    <script src="milfs/js/jquery.timelinr-0.9.54.js"></script>
-<?php echo $onload; ?>
-
-      <nav class="navbar navbar-inverse" role="navigation">
-      	<div class="container-fluid">
-      	  <div class='col-sx-12 ' id='logo_cabecera' style='width:100%;left:40px; background-color: white; '>
-      	 
-		      <div class='pull-right' >
-		      	<div style="">
-		      	<a title="Email" target="_redes" href="mailto:<?php echo $email[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-envelope'></i></span></a>
-		      	<a title="Facebook" target="_redes" href="<?php echo $facebook[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-facebook-square'></i></span></a>
-		      	<a title="Twitter" target="_redes" href="https://twitter.com/<?php echo $twitter[0];?>"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-twitter'></i></span></a>
-		      	<a title="Inicio" target="" href="?"><span style='font-size:20px; color:#E6E6E6'><i class='fa fa-home'></i></span></a>
-		      	
-		      	</div>
-		      	
-		      </div>
-	      </div>
-          <div class="navbar-header" style="  ">
-            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
-              <span class="sr-only">Toggle navigation</span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-              <span class="icon-bar"></span>
-            </button>
-            
-            	<p>|<?php echo $razon_social[0];?>|</p>
-	<strong><?php echo $slogan[0];?></strong>
-				
-          </div>
-          <div class="navbar-collapse collapse">
-            <ul class="nav navbar-nav">
-            
-					<li></li>
-              
-            </ul>
-
-          </div><!--/.nav-collapse -->
-		</div>
-      </nav>
-
-
-  
-    <div class="container-fluid">
-
-<div id='contenedor'>
-	</div>
-
-	</div>
-
-
-       <div class='pie' style=" position: fixed; z-index: 10000;
-  bottom: 0;
-  width: 100%;
-  /* Set the fixed height of the footer here */
-  height: 50px;
-  background-color: black;
-//background-image: url('milfs/images/menosmicos/background.jpg');
-">
-	      <p class='text-center'> <?php echo "$razon_social[0] $slogan[0] $direccion[0] $telefono[0] <a href ='$web[0]'>$web[0]</a>";  ?></p>
-        <a class='pull-right' href='http://QWERTY.co/milfs'>Powered by: &copy; MILFS </a> 
-        	</div> 
-    <!-- Bootstrap core JavaScript
-    ================================================== -->
-    <!-- Placed at the end of the document so the pages load faster -->
-
-</body>
-</html>
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 @@
-<span itemprop="name">TwitterOAuth</span> [![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)
-------------
-
-<p itemprop="description">The most popular PHP library for Twitter's OAuth REST API.</p>
-
-See documentation at https://twitteroauth.com.
-
-OAuth signing code originally sourced from [here](https://code.google.com/p/oauth/).
-
-<img src="https://raw.githubusercontent.com/abraham/twitteroauth-demo/master/images/twitter-logo-blue.png" itemprop="image" alt="Twitter bird" width="200px">
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 @@
-<?php
-
-/**
- * Use to autoload needed classes without Composer.
- *
- * @param string $class The fully-qualified class name.
- * @return void
- */
-spl_autoload_register(function ($class) {
-
-    // project-specific namespace prefix
-    $prefix = 'Abraham\\TwitterOAuth\\';
-
-    // base directory for the namespace prefix
-    $base_dir = __DIR__ . '/src/';
-
-    // does the class use the namespace prefix?
-    $len = strlen($prefix);
-    if (strncmp($prefix, $class, $len) !== 0) {
-        // no, move to the next registered autoloader
-        return;
-    }
-
-    // get the relative class name
-    $relative_class = substr($class, $len);
-
-    // replace the namespace prefix with the base directory, replace namespace
-    // separators with directory separators in the relative class name, append
-    // with .php
-    $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
-
-    // if the file exists, require it
-    if (file_exists($file)) {
-        require $file;
-    }
-});
diff --git a/milfs/toa/composer.json b/milfs/toa/composer.json
deleted file mode 100644
index 9cfc0c0..0000000
--- a/milfs/toa/composer.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-    "name": "abraham/twitteroauth",
-    "type": "library",
-    "description": "The most popular PHP library for use with the Twitter OAuth REST API.",
-    "keywords": ["twitter", "api", "oauth", "rest", "social", "twitter api", "twitter oauth"],
-    "license": "MIT",
-    "homepage": "https://twitteroauth.com",
-    "authors": [
-        {
-            "name": "Abraham Williams",
-            "email": "abraham@abrah.am",
-            "homepage": "https://abrah.am",
-            "role": "Developer"
-        }
-    ],
-    "support": {
-        "source": "https://github.com/abraham/twitteroauth",
-        "issues": "https://github.com/abraham/twitteroauth/issues"
-    },
-    "require": {
-        "php": ">=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 @@
-<h2>tupale</h2>
-<a href="./redirect.php">
-conectarse
-</a>
\ 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 @@
-<?php
-define('CONSUMER_KEY', 'OJVlVLQuAptyRC3XuS0esKaA2');
-define('CONSUMER_SECRET', 'Xbm3Q8XJ09tTUp9IX1gJdt6gd2WY4FQLplpuGJTjbkPSWVdmtj');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/toa/hola.php');
-
-?>
\ 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 @@
-<h2>Contra la violencia en los taxis </h2>
-<a href="./redirect.php">
-<h3>Autoriza para publicar en twitter.</h3>
-</a><br>
-<img src="arttesano.jpg" alt="">
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 @@
-<?php
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-/*
-define('CONSUMER_KEY', getenv('wMtivKDSAgZmkP7EZhYcfw'));
-define('CONSUMER_SECRET', getenv('AvWbHfjuSJkZYhkxsU8ojsDpNtvapBoiRUzwF3OAvbo'));
-define('OAUTH_CALLBACK', getenv('http://datos.labmde.org/milfs/toa/hola.php'));
-*/
-define('CONSUMER_KEY', 'wMtivKDSAgZmkP7EZhYcfw');
-define('CONSUMER_SECRET', 'AvWbHfjuSJkZYhkxsU8ojsDpNtvapBoiRUzwF3OAvbo');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/toa/test.php');
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
-//print $connection; //print connection contents
-//$request_token = $connection->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 @@
-<?php
-session_start();
-ini_set('display_errors', 1);
-
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-require_once('config.php');
- 
-/* Crear un objeto TwitteroAuth con las credenciales de la aplicacion y el token temporal */
-//$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET,
-               $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);
- 
-/* Solicitar a twitter el token de acceso */
-//$access_token = $connection->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 @@
-<?xml version="1.0"?>
-<ruleset name="My first PHPMD rule set"
-         xmlns="http://pmd.sf.net/ruleset/1.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
-         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
-  <description>Keep TwitterOAuth source code clean.</description>
-
-  <!-- <rule ref="rulesets/cleancode.xml" /> -->
-  <rule ref="rulesets/codesize.xml" />
-  <rule ref="rulesets/controversial.xml" />
-  <rule ref="rulesets/design.xml" />
-  <rule ref="rulesets/naming.xml" />
-  <rule ref="rulesets/unusedcode.xml" />
-</ruleset>
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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit
-        colors="true"
-        bootstrap="tests/bootstrap.php">
-
-    <testsuites>
-        <testsuite name="TwitterOAuth Test Suite">
-            <directory>./tests/</directory>
-        </testsuite>
-    </testsuites>
-</phpunit>
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 @@
-<?php
-session_start();
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-require_once('config.php');
- 
-/* Prepara la conexión */
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
- 
-/* Solicita a twitter las credenciales temporales */
-//$request_token = $connection->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * Handle setting and storing config for TwitterOAuth.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Consumer
-{
-    /** @var string  */
-    public $key;
-    /** @var string  */
-    public $secret;
-    /** @var string|null  */
-    public $callbackUrl;
-
-    /**
-     * @param string $key
-     * @param string $secret
-     * @param null $callbackUrl
-     */
-    public function __construct($key, $secret, $callbackUrl = null)
-    {
-        $this->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-/**
- * 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 HmacSha1 extends SignatureMethod
-{
-    /**
-     * {@inheritDoc}
-     */
-    public function getName()
-    {
-        return "HMAC-SHA1";
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public function buildSignature(Request $request, Consumer $consumer, Token $token = null)
-    {
-        $signatureBase = $request->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Request
-{
-    protected $parameters;
-    protected $httpMethod;
-    protected $httpUrl;
-    public static $version = '1.0';
-
-    /**
-     * Constructor
-     *
-     * @param string     $httpMethod
-     * @param string     $httpUrl
-     * @param array|null $parameters
-     */
-    public function __construct($httpMethod, $httpUrl, array $parameters = [])
-    {
-        $parameters = array_merge(Util::parseParameters(parse_url($httpUrl, PHP_URL_QUERY)), $parameters);
-        $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * The result of the most recent API request.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-/**
- * A class for implementing a Signature Method
- * See section 9 ("Signing Requests") in the spec
- */
-abstract class SignatureMethod
-{
-    /**
-     * Needs to return the name of the Signature Method (ie HMAC-SHA1)
-     *
-     * @return string
-     */
-    abstract public function getName();
-
-    /**
-     * 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 Request $request
-     * @param Consumer $consumer
-     * @param Token $token
-     *
-     * @return string
-     */
-    abstract public function buildSignature(Request $request, Consumer $consumer, Token $token = null);
-
-    /**
-     * Verifies that a given signature is correct
-     *
-     * @param Request $request
-     * @param Consumer $consumer
-     * @param Token $token
-     * @param string $signature
-     *
-     * @return bool
-     */
-    public function checkSignature(Request $request, Consumer $consumer, Token $token, $signature)
-    {
-        $built = $this->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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Token
-{
-    /** @var string */
-    public $key;
-    /** @var string */
-    public $secret;
-
-    /**
-     * @param string $key    The OAuth Token
-     * @param string $secret The OAuth Token Secret
-     */
-    public 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
-     *
-     * @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 @@
-<?php
-/**
- * The most popular PHP library for use with the Twitter OAuth REST API.
- *
- * @license MIT
- */
-namespace Abraham\TwitterOAuth;
-
-use Abraham\TwitterOAuth\Util\JsonDecoder;
-
-/**
- * TwitterOAuth class for interacting with the Twitter API.
- *
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-
-namespace Abraham\TwitterOAuth;
-
-/**
- * @author Abraham Williams <abraham@abrah.am>
- */
-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 @@
-<?php
-/**
- * The MIT License
- * Copyright (c) 2007 Andy Smith
- */
-namespace Abraham\TwitterOAuth;
-
-class Util
-{
-    /**
-     * @param $input
-     *
-     * @return array|mixed|string
-     */
-    public static function urlencodeRfc3986($input)
-    {
-        $output = '';
-        if (is_array($input)) {
-            $output = array_map([__NAMESPACE__ . '\Util', 'urlencodeRfc3986'], $input);
-        } elseif (is_scalar($input)) {
-            $output = rawurlencode($input);
-        }
-        return $output;
-    }
-
-    /**
-     * @param string $string
-     *
-     * @return string
-     */
-    public static function urldecodeRfc3986($string)
-    {
-        return urldecode($string);
-    }
-
-    /**
-     * 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')
-     *
-     * @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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Util;
-
-/**
- * @author louis <louis@systemli.org>
- */
-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 @@
-<?php
-ini_set('display_errors', 1);
-require 'autoload.php';
-use Abraham\TwitterOAuth\TwitterOAuth;
-/*
-define('CONSUMER_KEY', getenv('wMtivKDSAgZmkP7EZhYcfw'));
-define('CONSUMER_SECRET', getenv('AvWbHfjuSJkZYhkxsU8ojsDpNtvapBoiRUzwF3OAvbo'));
-define('OAUTH_CALLBACK', getenv('http://datos.labmde.org/milfs/toa/hola.php'));
-*/
-define('CONSUMER_KEY', 'wMtivKDSAgZmkP7EZhYcfw');
-define('CONSUMER_SECRET', 'AvWbHfjuSJkZYhkxsU8ojsDpNtvapBoiRUzwF3OAvbo');
-define('OAUTH_CALLBACK', 'http://datos.labmde.org/milfs/toa/test.php');
-$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
-//print $connection; //print connection contents
-//$request_token = $connection->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Tests;
-
-use Abraham\TwitterOAuth\SignatureMethod;
-
-abstract class AbstractSignatureMethodTest extends \PHPUnit_Framework_TestCase
-{
-    protected $name;
-
-    /**
-     * @return SignatureMethod
-     */
-    abstract public function getClass();
-
-    abstract protected function signatureDataProvider();
-
-    public function testGetName()
-    {
-        $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Tests;
-
-use Abraham\TwitterOAuth\Consumer;
-
-class ConsumerTest extends \PHPUnit_Framework_TestCase {
-    public function testToString()
-    {
-        $key = uniqid();
-        $secret = uniqid();
-        $consumer = new Consumer($key, $secret);
-
-        $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Tests;
-
-use Abraham\TwitterOAuth\HmacSha1;
-
-class HmacSha1Test extends AbstractSignatureMethodTest
-{
-    protected $name = 'HMAC-SHA1';
-
-    public function getClass()
-    {
-        return new HmacSha1();
-    }
-
-    public function signatureDataProvider()
-    {
-        return array(
-            array('5CoEcoq7XoKFjwYCieQvuzadeUA=', $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Tests;
-
-use Abraham\TwitterOAuth\Token;
-
-class TokenTest extends \PHPUnit_Framework_TestCase {
-    /**
-     * @dataProvider tokenProvider
-     */
-    public function testToString($expected, $key, $secret)
-    {
-        $token = new Token($key, $secret);
-
-        $this->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 @@
-<?php
-/**
- * WARNING: Running these tests will post and delete through the actual Twitter account.
- */
-namespace Abraham\TwitterOAuth\Test;
-
-use Abraham\TwitterOAuth\TwitterOAuth;
-
-class TwitterOAuthTest extends \PHPUnit_Framework_TestCase
-{
-    /** @var TwitterOAuth */
-    protected $twitter;
-
-    protected function setUp()
-    {
-        $this->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 @@
-<?php
-
-namespace Abraham\TwitterOAuth\Tests;
-
-use Abraham\TwitterOAuth\Util\JsonDecoder;
-
-class JsonDecoderTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @dataProvider jsonProvider
-     */
-    public function testDecode($input, $asArray, $expected)
-    {
-        $this->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 @@
-<?php
-
-require __DIR__ . '/../vendor/autoload.php';
-
-define('CONSUMER_KEY', getenv('TEST_CONSUMER_KEY'));
-define('CONSUMER_SECRET', getenv('TEST_CONSUMER_SECRET'));
-define('ACCESS_TOKEN', getenv('TEST_ACCESS_TOKEN'));
-define('ACCESS_TOKEN_SECRET', getenv('TEST_ACCESS_TOKEN_SECRET'));
-define('OAUTH_CALLBACK', getenv('TEST_OAUTH_CALLBACK'));
-define('PROXY', getenv('TEST_CURLOPT_PROXY'));
-define('PROXYUSERPWD', getenv('TEST_CURLOPT_PROXYUSERPWD'));
-define('PROXYPORT', getenv('TEST_CURLOPT_PROXYPORT'));
diff --git a/milfs/toa/tests/kitten.jpg b/milfs/toa/tests/kitten.jpg
deleted file mode 100644
index 47006b4..0000000
Binary files a/milfs/toa/tests/kitten.jpg and /dev/null differ
diff --git a/milfs/toa/tests/sample_env b/milfs/toa/tests/sample_env
deleted file mode 100644
index 64e07fd..0000000
--- a/milfs/toa/tests/sample_env
+++ /dev/null
@@ -1,13 +0,0 @@
-# WARNING: Running the tests will perform live actions as the Twitter account.
-# Set all values, move to `env`, run `source tests/env` and `phpunit` to start testing.
-
-# To run the tests you must register Twitter application at https://app.twitter.com/.
-export TEST_CONSUMER_KEY=
-export TEST_CONSUMER_SECRET=
-export TEST_ACCESS_TOKEN=
-export TEST_ACCESS_TOKEN_SECRET=
-export TEST_OAUTH_CALLBACK=
-# You can find proxies for testing at http://proxylist.hidemyass.com/.
-export TEST_CURLOPT_PROXY=
-export TEST_CURLOPT_PROXYUSERPWD=
-export TEST_CURLOPT_PROXYPORT=
diff --git a/milfs/toa/tests/video.mp4 b/milfs/toa/tests/video.mp4
deleted file mode 100644
index 1fc4788..0000000
Binary files a/milfs/toa/tests/video.mp4 and /dev/null differ
diff --git a/milfs/xajax/jquery-1.11.1.min.js b/milfs/xajax/jquery-1.11.1.min.js
deleted file mode 100644
index 3dad93b..0000000
--- a/milfs/xajax/jquery-1.11.1.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="<div class='a'></div><div class='a i'></div>",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="<select msallowclip=''><option selected=''></option></select>",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;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>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 href='#'></a>","#"===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="<input/>",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.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(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},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",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<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},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)?"<table>"!==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("<iframe frameborder='0' width='0' height='0'/>")).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="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",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="<table><tr><td></td><td>t</td></tr></table>",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();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",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("<div>").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="<div class='a'></div><div class='a i'></div>",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="<select msallowclip=''><option selected=''></option></select>",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;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>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 href='#'></a>","#"===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="<input/>",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.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(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},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",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<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},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)?"<table>"!==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("<iframe frameborder='0' width='0' height='0'/>")).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="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",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="<table><tr><td></td><td>t</td></tr></table>",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();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",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("<div>").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 @@
-<?php
-///////////////////////////////////////////////////////////////////////////////
-// xajax.inc.php :: Main xajax class and setup file
-//
-// xajax version 0.2
-// copyright (c) 2005 by Jared White & J. Max Wilson
-// http://xajax.sourceforge.net
-//
-// xajax is an open source PHP class library for easily creating powerful
-// PHP-driven, web-based AJAX Applications. Using xajax, you can asynchronously
-// call PHP functions and update the content of your your webpage without
-// reloading the page.
-//
-// xajax is released under the terms of the LGPL license
-// http://www.gnu.org/copyleft/lesser.html#SEC3
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-// 
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-///////////////////////////////////////////////////////////////////////////////
-
-// Define XAJAX_DEFAULT_CHAR_ENCODING that is used by both
-// the xajax and xajaxResponse classes
-if (!defined ('XAJAX_DEFAULT_CHAR_ENCODING'))
-{
-	define ('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8' );
-}
-
-require_once("xajaxResponse.inc.php");
-
-// Communication Method Defines
-if (!defined ('XAJAX_GET'))
-{
-	define ('XAJAX_GET', 0);
-}
-if (!defined ('XAJAX_POST'))
-{
-	define ('XAJAX_POST', 1);
-}
-
-// the xajax class generates the xajax javascript for your page including the 
-// javascript wrappers for the PHP functions that you want to call from your page.
-// It also handles processing and executing the command messages in the xml responses
-// sent back to your page from your PHP functions.
-class xajax
-{
-	var $aFunctions;				// Array of PHP functions that will be callable through javascript wrappers
-	var $aObjects;				// Array of object callbacks that will allow Javascript to call PHP methods (key=function name)
-	var $aFunctionRequestTypes;	// Array of RequestTypes to be used with each function (key=function name)
-	var $aFunctionIncludeFiles;	// Array of Include Files for any external functions (key=function name)
-	var $sCatchAllFunction;		// Name of the PHP function to call if no callable function was found
-	var $sPreFunction;			// Name of the PHP function to call before any other function
-	var $sRequestURI;			// The URI for making requests to the xajax object
-	var $bDebug;					// Show debug messages (true/false)
-	var $bExitAllowed;			// Allow xajax to exit after processing a request (true/false)
-	var $bErrorHandler;			// Use an special xajax error handler so the errors are sent to the browser properly
-	var $sLogFile;				// Specify if xajax should log errors (and more information in a future release)
-	var $sWrapperPrefix;			// The prefix to prepend to the javascript wraper function name
-	var $bStatusMessages;			// Show debug messages (true/false)
-	var $bWaitCursor;			// Use wait cursor in browser (true/false)
-	var $bCleanBuffer;			// Clean all output buffers before outputting response (true/false)
-	var $aObjArray;				// Array for parsing complex objects
-	var $iPos;					// Position in $aObjArray
-	var $sEncoding;				// The Character Encoding to use
-	
-	// Contructor
-	// $sRequestURI - defaults to the current page
-	// $sWrapperPrefix - defaults to "xajax_";
-	// $sEncoding - defaults to XAJAX_DEFAULT_CHAR_ENCODING defined above
-	// $bDebug Mode - defaults to false
-	// usage: $xajax = new xajax();
-	function xajax($sRequestURI="",$sWrapperPrefix="xajax_",$sEncoding=XAJAX_DEFAULT_CHAR_ENCODING,$bDebug=false)
-	{
-		$this->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],"<xjxobj>") != false)
-				{
-					$aArgs[$i] = $this->_xmlToArray("xjxobj",$aArgs[$i]);	
-				}
-				else if (stristr($aArgs[$i],"<xjxquery>") != 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, "<xjx>") === 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
-	// <head> </head> 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:
-	//	<head>
-	//		...
-	//		< ?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 <head> </head> tags. See printJavascript()
-	// for information about the function arguments.
-	// usage:
-	//  < ?php $xajaxJSHead = $xajax->getJavascript(); ? >
-	//	<head>
-	//		...
-	//		< ?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<script type=\"text/javascript\">\n";
-		$html .= "var xajaxRequestUri=\"".$this->sRequestURI."\";\n";
-		$html .= "var xajaxDebug=".($this->bDebug?"true":"false").";\n";
-		$html .= "var xajaxStatusMessages=".($this->bStatusMessages?"true":"false").";\n";
-		$html .= "var xajaxWaitCursor=".($this->bWaitCursor?"true":"false").";\n";
-		$html .= "var xajaxDefinedGet=".XAJAX_GET.";\n";
-		$html .= "var xajaxDefinedPost=".XAJAX_POST.";\n";
-
-		foreach($this->aFunctions as $sFunction => $bExists) {
-			$html .= $this->_wrap($sFunction,$this->aFunctionRequestTypes[$sFunction]);
-		}
-
-		$html .= "</script>\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 <b>" . dirname($realJsFile) . "</b> 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 <b>" . dirname($realJsFile) . "</b> 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 <b>" . dirname($realJsFile) . "</b> folder. Error ", E_USER_ERROR);
-			}
-			else {
-				fwrite($fH, $compressedScript);
-				fclose($fH);
-			}
-		}
-
-		$html .= "\t<script type=\"text/javascript\" src=\"" . $sJsURI . $sJsFile . "\"></script>\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("<e>","<e>|~|",$sXml);
-		$sXml = str_replace("</e>","</e>|~|",$sXml);
-		$sXml = str_replace("<k>","<k>|~|",$sXml);
-		$sXml = str_replace("</k>","|~|</k>|~|",$sXml);
-		$sXml = str_replace("<v>","<v>|~|",$sXml);
-		$sXml = str_replace("</v>","|~|</v>|~|",$sXml);
-		$sXml = str_replace("<q>","<q>|~|",$sXml);
-		$sXml = str_replace("</q>","|~|</q>|~|",$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],"</xjxobj>"))
-			{
-				$this->iPos++;
-				if(stristr($this->aObjArray[$this->iPos],"<e>"))
-				{
-					$key = "";
-					$value = null;
-						
-					$this->iPos++;
-					while(!stristr($this->aObjArray[$this->iPos],"</e>"))
-					{
-						if(stristr($this->aObjArray[$this->iPos],"<k>"))
-						{
-							$this->iPos++;
-							while(!stristr($this->aObjArray[$this->iPos],"</k>"))
-							{
-								$key .= $this->aObjArray[$this->iPos];
-								$this->iPos++;
-							}
-						}
-						if(stristr($this->aObjArray[$this->iPos],"<v>"))
-						{
-							$this->iPos++;
-							while(!stristr($this->aObjArray[$this->iPos],"</v>"))
-							{
-								if(stristr($this->aObjArray[$this->iPos],"<xjxobj>"))
-								{
-									$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],"</xjxquery>"))
-			{
-				if (stristr($this->aObjArray[$this->iPos],"<q>") || stristr($this->aObjArray[$this->iPos],"</q>"))
-				{
-					$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 @@
-<?php
-///////////////////////////////////////////////////////////////////////////////
-// xajaxResponse.inc.php :: xajax XML response class
-//
-// xajax version 0.2
-// copyright (c) 2005 by Jared White & J. Max Wilson
-// http://www.xajaxproject.org
-//
-// xajax is an open source PHP class library for easily creating powerful
-// PHP-driven, web-based Ajax Applications. Using xajax, you can asynchronously
-// call PHP functions and update the content of your your webpage without
-// reloading the page.
-//
-// xajax is released under the terms of the LGPL license
-// http://www.gnu.org/copyleft/lesser.html#SEC3
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library 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
-// Lesser General Public License for more details.
-// 
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-///////////////////////////////////////////////////////////////////////////////
-
-/*
-   ----------------------------------------------------------------------------
-   | Online documentation for this class is available on the xajax wiki at:   |
-   | http://wiki.xajaxproject.org/Documentation:xajaxResponse.inc.php         |
-   ----------------------------------------------------------------------------
-*/
-
-// The xajaxResponse class is used to created responses to be sent back to your
-// webpage.  A response contains one or more command messages for updating your page.
-// Currently xajax supports 17 kinds of command messages, including some common ones such as:
-// * Assign - sets the specified attribute of an element in your page
-// * Append - appends data to the end of the specified attribute of an element in your page
-// * Prepend - prepends data to the beginning of the specified attribute of an element in your page
-// * Replace - searches for and replaces data in the specified attribute of an element in your page
-// * Script - runs the supplied JavaScript code
-// * Alert - shows an alert box with the supplied message text
-//
-// *Note: elements are identified by their HTML id, so if you don't see your browser HTML display changing from the request, make sure you're using the right id names in your response.
-
-class xajaxResponse
-{
-	var $xml;
-	var $sEncoding;
-
-	// Constructor. Its main job is to set the character encoding for the response.
-	// $sEncoding is a string containing the character encoding string to use.
-	// * Note: to change the character encoding for all of the responses, set the
-	// XAJAX_DEFAULT_ENCODING constant near the beginning of the xajax.inc.php file
-	function xajaxResponse($sEncoding=XAJAX_DEFAULT_CHAR_ENCODING)
-	{
-		$this->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", "<b>text</b>");
-	function addReplace($sTarget,$sAttribute,$sSearch,$sData)
-	{
-		$sDta = "<s><![CDATA[$sSearch]]></s><r><![CDATA[$sData]]></r>";
-		$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 = "<?xml version=\"1.0\"";
-		if ($this->sEncoding && strlen(trim($this->sEncoding)) > 0)
-			$sXML .= " encoding=\"".$this->sEncoding."\"";
-		$sXML .= " ?"."><xjx>" . $this->xml . "</xjx>";
-		
-		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, "<xjx>") + 5;
-		$sNewXML = substr($sXML, $iStartPos);
-		$iEndPos = strpos($sNewXML, "</xjx>");
-		$sNewXML = substr($sNewXML, 0, $iEndPos);
-		$this->xml .= $sNewXML;
-	}
-
-	// private method, used internally
-	function _cmdXML($aAttributes, $sData)
-	{
-		$xml = "<cmd";
-		foreach($aAttributes as $sAttribute => $sValue)
-			$xml .= " $sAttribute=\"$sValue\"";
-		if ($sData && !stristr($sData,'<![CDATA['))
-			$xml .= "><![CDATA[$sData]]></cmd>";
-		else if ($sData)
-			$xml .= ">$sData</cmd>";
-		else
-			$xml .= "></cmd>";
-		
-		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('<input type="radio" id="'+sId+'" name="'+sName+'">');
-		}
-		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 = "<xjxquery><q>";
-		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 != '<xjxquery><q>')
-						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 +="</q></xjxquery>";
-		
-		return sXml;
-	}
-	
-	// Generates an XML message that xajax can understand from a javascript object
-	this.objectToXML = function(obj)
-	{
-		var sXml = "<xjxobj>";
-		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 += "<e><k>"+key+"</k><v>"+value+"</v></e>";
-				
-			}
-			catch(e)
-			{
-				if (xajaxDebug) this.DebugMessage(e);
-			}
-		}
-		sXml += "</xjxobj>";
-	
-		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<aArgs.length; i++)
-					{
-						value = aArgs[i];
-						if (typeof(value)=="object")
-							value = this.objectToXML(value);
-						uriGet += "&xajaxargs[]="+encodeURIComponent(value);
-					}
-				}
-				uriGet += "&xajaxr=" + new Date().getTime();
-				uri += uriGet;
-				postData = null;
-				} break;
-			case xajaxDefinedPost:{
-				postData = "xajax="+encodeURIComponent(sFunction);
-				postData += "&xajaxr="+new Date().getTime();
-				if (aArgs) {
-					for (i = 0; i <aArgs.length; i++)
-					{
-						value = aArgs[i];
-						if (typeof(value)=="object")
-							value = this.objectToXML(value);
-						postData = postData+"&xajaxargs[]="+encodeURIComponent(value);
-					}
-				}
-				} break;
-			default:
-				alert("Illegal request type: " + xajaxRequestType); return false; break;
-		}
-		r = this.getRequestObject();
-		if (!r) return false;
-		r.open(xajaxRequestType==xajaxDefinedGet?"GET":"POST", uri, true);
-		if (xajaxRequestType == xajaxDefinedPost)
-		{
-			try
-			{
-				r.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
-				r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-			}
-			catch(e)
-			{
-				alert("Your browser does not appear to  support asynchronous requests using POST.");
-				return false;
-			}
-		}
-		r.onreadystatechange = function()
-		{
-			if (r.readyState != 4)
-				return;
-			
-			if (r.status==200)
-			{
-				if (xajaxDebug && r.responseText.length < 1000) xajax.DebugMessage("Received:\n" + r.responseText);
-				else if (xajaxDebug) xajax.DebugMessage("Received:\n" + r.responseText.substr(0,1000)+"...\n[long response]\n...</xajax>");
-				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<xml.childNodes.length; i++)
-		{
-			if (xml.childNodes[i].nodeName == "cmd")
-			{
-				var cmd;
-				var id;
-				var property;
-				var data;
-				var search;
-				var type;
-				var before;
-				
-				for (j=0; j<xml.childNodes[i].attributes.length; j++)
-				{
-					if (xml.childNodes[i].attributes[j].name == "n")
-					{
-						cmd = xml.childNodes[i].attributes[j].value;
-					}
-					if (xml.childNodes[i].attributes[j].name == "t")
-					{
-						id = xml.childNodes[i].attributes[j].value;
-					}
-					if (xml.childNodes[i].attributes[j].name == "p")
-					{
-						property = xml.childNodes[i].attributes[j].value;
-					}
-					if (xml.childNodes[i].attributes[j].name == "c")
-					{
-						type = xml.childNodes[i].attributes[j].value;
-					}
-				}
-				if (xml.childNodes[i].childNodes.length > 1)
-				{
-					for (j=0; j<xml.childNodes[i].childNodes.length; j++)
-					{
-						if (xml.childNodes[i].childNodes[j].nodeName == "s")
-						{
-							if (xml.childNodes[i].childNodes[j].firstChild)
-								search = xml.childNodes[i].childNodes[j].firstChild.nodeValue;
-						}
-						if (xml.childNodes[i].childNodes[j].nodeName == "r")
-						{
-							if (xml.childNodes[i].childNodes[j].firstChild)
-								data = xml.childNodes[i].childNodes[j].firstChild.data;
-						}
-					}
-				}
-				else if (xml.childNodes[i].firstChild)
-					data = xml.childNodes[i].firstChild.nodeValue;
-				else
-					data = "";
-				
-				var objElement = this.$(id);
-				try
-				{
-					if (cmd=="al")
-					{
-						alert(data);
-					}
-					if (cmd=="js")
-					{
-						eval(data);
-					}
-					if (cmd=="in")
-					{
-						this.include(data);
-					}
-					if (cmd=="as")
-					{
-						if (this.willChange(id,property,data))
-						{
-							eval("objElement."+property+"=data;");
-						}
-					}
-					if (cmd=="ap")
-					{
-						eval("objElement."+property+"+=data;");
-					}
-					if (cmd=="pp")
-					{
-						eval("objElement."+property+"=data+objElement."+property);
-					}
-					if (cmd=="rp")
-					{
-						this.replace(id,property,search,data)
-					}
-					if (cmd=="rm")
-					{
-						this.remove(id);
-					}
-					if (cmd=="ce")
-					{
-						this.create(id,data,property);
-					}
-					if (cmd=="ie")
-					{
-						this.insert(id,data,property);
-					}
-					if (cmd=="ci")
-					{
-						this.createInput(id,type,data,property);
-					}
-					if (cmd=="ii")
-					{
-						this.insertInput(id,type,data,property);
-					}
-					if (cmd=="ev")
-					{
-						eval("this.$('"+id+"')."+property+"= function(){"+data+";}");
-					}
-					if (cmd=="ah")
-					{
-						this.addHandler(id, property, data);
-					}
-					if (cmd=="rh")
-					{
-						this.removeHandler(id, property, data);
-					}
-				}
-				catch(e)
-				{
-					alert(e);
-				}
-				delete objElement;
-				delete cmd;
-				delete id;
-				delete property;
-				delete search;
-				delete data;
-				delete type;
-				delete before;
-			}	
-		}
-		delete xml;
-		document.body.style.cursor = 'default';
-		if (xajaxStatusMessages == true) window.status = 'Done';
-	}
-}
-
-var xajax = new Xajax();
\ No newline at end of file
diff --git a/milfs/xajax/xajax_js/xajaxCompress.php b/milfs/xajax/xajax_js/xajaxCompress.php
deleted file mode 100644
index 95b8cd0..0000000
--- a/milfs/xajax/xajax_js/xajaxCompress.php
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-// xajaxCompressJavascript() compresses the javascript code for more efficient delivery
-// used internally 
-// $sJS is a string containing the javascript code to compress
-function xajaxCompressJavascript($sJS)
-{
-	//remove windows cariage returns
-	$sJS = str_replace("\r","",$sJS);
-	
-	//array to store replaced literal strings
-	$literal_strings = array();
-	
-	//explode the string into lines
-	$lines = explode("\n",$sJS);
-	//loop through all the lines, building a new string at the same time as removing literal strings
-	$clean = "";
-	$inComment = false;
-	$literal = "";
-	$inQuote = false;
-	$escaped = false;
-	$quoteChar = "";
-	
-	for($i=0;$i<count($lines);$i++)
-	{
-		$line = $lines[$i];
-		$inNormalComment = false;
-	
-		//loop through line's characters and take out any literal strings, replace them with ___i___ where i is the index of this string
-		for($j=0;$j<strlen($line);$j++)
-		{
-			$c = substr($line,$j,1);
-			$d = substr($line,$j,2);
-	
-			//look for start of quote
-			if(!$inQuote && !$inComment)
-			{
-				//is this character a quote or a comment
-				if(($c=="\"" || $c=="'") && !$inComment && !$inNormalComment)
-				{
-					$inQuote = true;
-					$inComment = false;
-					$escaped = false;
-					$quoteChar = $c;
-					$literal = $c;
-				}
-				else if($d=="/*" && !$inNormalComment)
-				{
-					$inQuote = false;
-					$inComment = true;
-					$escaped = false;
-					$quoteChar = $d;
-					$literal = $d;	
-					$j++;	
-				}
-				else if($d=="//") //ignore string markers that are found inside comments
-				{
-					$inNormalComment = true;
-					$clean .= $c;
-				}
-				else
-				{
-					$clean .= $c;
-				}
-			}
-			else //allready in a string so find end quote
-			{
-				if($c == $quoteChar && !$escaped && !$inComment)
-				{
-					$inQuote = false;
-					$literal .= $c;
-	
-					//subsitute in a marker for the string
-					$clean .= "___" . count($literal_strings) . "___";
-	
-					//push the string onto our array
-					array_push($literal_strings,$literal);
-	
-				}
-				else if($inComment && $d=="*/")
-				{
-					$inComment = false;
-					$literal .= $d;
-	
-					//subsitute in a marker for the string
-					$clean .= "___" . count($literal_strings) . "___";
-	
-					//push the string onto our array
-					array_push($literal_strings,$literal);
-	
-					$j++;
-				}
-				else if($c == "\\" && !$escaped)
-					$escaped = true;
-				else
-					$escaped = false;
-	
-				$literal .= $c;
-			}
-		}
-		if($inComment) $literal .= "\n";
-		$clean .= "\n";
-	}
-	//explode the clean string into lines again
-	$lines = explode("\n",$clean);
-	
-	//now process each line at a time
-	for($i=0;$i<count($lines);$i++)
-	{
-		$line = $lines[$i];
-	
-		//remove comments
-		$line = preg_replace("/\/\/(.*)/","",$line);
-	
-		//strip leading and trailing whitespace
-		$line = trim($line);
-	
-		//remove all whitespace with a single space
-		$line = preg_replace("/\s+/"," ",$line);
-	
-		//remove any whitespace that occurs after/before an operator
-		$line = preg_replace("/\s*([!\}\{;,&=\|\-\+\*\/\)\(:])\s*/","\\1",$line);
-	
-		$lines[$i] = $line;
-	}
-	
-	//implode the lines
-	$sJS = implode("\n",$lines);
-	
-	//make sure there is a max of 1 \n after each line
-	$sJS = preg_replace("/[\n]+/","\n",$sJS);
-	
-	//strip out line breaks that immediately follow a semi-colon
-	$sJS = preg_replace("/;\n/",";",$sJS);
-	
-	//curly brackets aren't on their own
-	$sJS = preg_replace("/[\n]*\{[\n]*/","{",$sJS);
-	
-	//finally loop through and replace all the literal strings:
-	for($i=0;$i<count($literal_strings);$i++)
-		$sJS = str_replace("___".$i."___",$literal_strings[$i],$sJS);
-	
-	return $sJS;
-}
-?>
\ 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('<input type="radio" id="'+sId+'" name="'+sName+'">');
-		}
-		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 = "<xjxquery><q>";
-		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 != '<xjxquery><q>')
-						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 +="</q></xjxquery>";
-		
-		return sXml;
-	}
-	
-	// Generates an XML message that xajax can understand from a javascript object
-	this.objectToXML = function(obj)
-	{
-		var sXml = "<xjxobj>";
-		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 += "<e><k>"+key+"</k><v>"+value+"</v></e>";
-				
-			}
-			catch(e)
-			{
-				if (xajaxDebug) this.DebugMessage(e);
-			}
-		}
-		sXml += "</xjxobj>";
-	
-		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<aArgs.length; i++)
-					{
-						value = aArgs[i];
-						if (typeof(value)=="object")
-							value = this.objectToXML(value);
-						uriGet += "&xajaxargs[]="+encodeURIComponent(value);
-					}
-				}
-				uriGet += "&xajaxr=" + new Date().getTime();
-				uri += uriGet;
-				postData = null;
-				} break;
-			case xajaxDefinedPost:{
-				postData = "xajax="+encodeURIComponent(sFunction);
-				postData += "&xajaxr="+new Date().getTime();
-				if (aArgs) {
-					for (i = 0; i <aArgs.length; i++)
-					{
-						value = aArgs[i];
-						if (typeof(value)=="object")
-							value = this.objectToXML(value);
-						postData = postData+"&xajaxargs[]="+encodeURIComponent(value);
-					}
-				}
-				} break;
-			default:
-				alert("Illegal request type: " + xajaxRequestType); return false; break;
-		}
-		r = this.getRequestObject();
-		if (!r) return false;
-		r.open(xajaxRequestType==xajaxDefinedGet?"GET":"POST", uri, true);
-		if (xajaxRequestType == xajaxDefinedPost)
-		{
-			try
-			{
-				r.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
-				r.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-			}
-			catch(e)
-			{
-				alert("Your browser does not appear to  support asynchronous requests using POST.");
-				return false;
-			}
-		}
-		r.onreadystatechange = function()
-		{
-			if (r.readyState != 4)
-				return;
-			
-			if (r.status==200)
-			{
-				if (xajaxDebug && r.responseText.length < 1000) xajax.DebugMessage("Received:\n" + r.responseText);
-				else if (xajaxDebug) xajax.DebugMessage("Received:\n" + r.responseText.substr(0,1000)+"...\n[long response]\n...</xajax>");
-				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<xml.childNodes.length; i++)
-		{
-			if (xml.childNodes[i].nodeName == "cmd")
-			{
-				var cmd;
-				var id;
-				var property;
-				var data;
-				var search;
-				var type;
-				var before;
-				
-				for (j=0; j<xml.childNodes[i].attributes.length; j++)
-				{
-					if (xml.childNodes[i].attributes[j].name == "n")
-					{
-						cmd = xml.childNodes[i].attributes[j].value;
-					}
-					if (xml.childNodes[i].attributes[j].name == "t")
-					{
-						id = xml.childNodes[i].attributes[j].value;
-					}
-					if (xml.childNodes[i].attributes[j].name == "p")
-					{
-						property = xml.childNodes[i].attributes[j].value;
-					}
-					if (xml.childNodes[i].attributes[j].name == "c")
-					{
-						type = xml.childNodes[i].attributes[j].value;
-					}
-				}
-				if (xml.childNodes[i].childNodes.length > 1)
-				{
-					for (j=0; j<xml.childNodes[i].childNodes.length; j++)
-					{
-						if (xml.childNodes[i].childNodes[j].nodeName == "s")
-						{
-							if (xml.childNodes[i].childNodes[j].firstChild)
-								search = xml.childNodes[i].childNodes[j].firstChild.nodeValue;
-						}
-						if (xml.childNodes[i].childNodes[j].nodeName == "r")
-						{
-							if (xml.childNodes[i].childNodes[j].firstChild)
-								data = xml.childNodes[i].childNodes[j].firstChild.data;
-						}
-					}
-				}
-				else if (xml.childNodes[i].firstChild)
-					data = xml.childNodes[i].firstChild.nodeValue;
-				else
-					data = "";
-				
-				var objElement = this.$(id);
-				try
-				{
-					if (cmd=="al")
-					{
-						alert(data);
-					}
-					if (cmd=="js")
-					{
-						eval(data);
-					}
-					if (cmd=="in")
-					{
-						this.include(data);
-					}
-					if (cmd=="as")
-					{
-						if (this.willChange(id,property,data))
-						{
-							eval("objElement."+property+"=data;");
-						}
-					}
-					if (cmd=="ap")
-					{
-						eval("objElement."+property+"+=data;");
-					}
-					if (cmd=="pp")
-					{
-						eval("objElement."+property+"=data+objElement."+property);
-					}
-					if (cmd=="rp")
-					{
-						this.replace(id,property,search,data)
-					}
-					if (cmd=="rm")
-					{
-						this.remove(id);
-					}
-					if (cmd=="ce")
-					{
-						this.create(id,data,property);
-					}
-					if (cmd=="ie")
-					{
-						this.insert(id,data,property);
-					}
-					if (cmd=="ci")
-					{
-						this.createInput(id,type,data,property);
-					}
-					if (cmd=="ii")
-					{
-						this.insertInput(id,type,data,property);
-					}
-					if (cmd=="ev")
-					{
-						eval("this.$('"+id+"')."+property+"= function(){"+data+";}");
-					}
-					if (cmd=="ah")
-					{
-						this.addHandler(id, property, data);
-					}
-					if (cmd=="rh")
-					{
-						this.removeHandler(id, property, data);
-					}
-				}
-				catch(e)
-				{
-					alert(e);
-				}
-				delete objElement;
-				delete cmd;
-				delete id;
-				delete property;
-				delete search;
-				delete data;
-				delete type;
-				delete before;
-			}	
-		}
-		delete xml;
-		document.body.style.cursor = 'default';
-		if (xajaxStatusMessages == true) window.status = 'Done';
-	}
-}
-
-var xajax = new Xajax();
\ No newline at end of file