Index: /extensions/user_tags/BUGS
===================================================================
--- /extensions/user_tags/BUGS	(revision 6798)
+++ /extensions/user_tags/BUGS	(revision 6798)
@@ -0,0 +1,4 @@
+* plugin doesn't work with theses parameters :
+$conf['question_mark_in_urls'] = false; 
+$conf['php_extension_in_urls'] = false; 
+$conf['tag_url_style'] = 'tag'; 
Index: /extensions/user_tags/CHANGELOG
===================================================================
--- /extensions/user_tags/CHANGELOG	(revision 6798)
+++ /extensions/user_tags/CHANGELOG	(revision 6798)
@@ -0,0 +1,3 @@
+User Tags 0.1.0 - 2010-08-24
+================================
+* first public release
Index: /extensions/user_tags/COPYING
===================================================================
--- /extensions/user_tags/COPYING	(revision 6798)
+++ /extensions/user_tags/COPYING	(revision 6798)
@@ -0,0 +1,339 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  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.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+		     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
+convey 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 2 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, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision 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, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This 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.
Index: /extensions/user_tags/MANIFEST
===================================================================
--- /extensions/user_tags/MANIFEST	(revision 6798)
+++ /extensions/user_tags/MANIFEST	(revision 6798)
@@ -0,0 +1,29 @@
+user_tags/BUGS
+user_tags/imgs/edit.png
+user_tags/MANIFEST
+user_tags/maintain.inc.php
+user_tags/template/add_tags.tpl
+user_tags/js/jquery-1.4.2.js
+user_tags/js/jquery.addtags.js
+user_tags/js/jquery.fcbkcomplete.js
+user_tags/main.inc.php
+user_tags/language/fr_FR/index.php
+user_tags/language/fr_FR/description.txt
+user_tags/language/fr_FR/plugin.lang.php
+user_tags/language/templates/index.php
+user_tags/language/templates/plugin.lang.php
+user_tags/language/en_UK/index.php
+user_tags/language/en_UK/description.txt
+user_tags/language/en_UK/plugin.lang.php
+user_tags/CHANGELOG
+user_tags/include/constants.inc.php
+user_tags/include/t4u_content.class.php
+user_tags/include/default_values.inc.php
+user_tags/include/t4u_config.class.php
+user_tags/admin.php
+user_tags/COPYING
+user_tags/css/style.css
+user_tags/css/imgs/close.png
+user_tags/init.php
+user_tags/public.php
+user_tags/TODO
Index: /extensions/user_tags/TODO
===================================================================
--- /extensions/user_tags/TODO	(revision 6798)
+++ /extensions/user_tags/TODO	(revision 6798)
@@ -0,0 +1,3 @@
+* add token
+* update tags with an ajax request
+* cancel button needs a confirmation when something has changed.
Index: /extensions/user_tags/admin.php
===================================================================
--- /extensions/user_tags/admin.php	(revision 6798)
+++ /extensions/user_tags/admin.php	(revision 6798)
@@ -0,0 +1,26 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH')) {
+  die('Hacking attempt!');
+}
+
+?>
Index: /extensions/user_tags/css/style.css
===================================================================
--- /extensions/user_tags/css/style.css	(revision 6798)
+++ /extensions/user_tags/css/style.css	(revision 6798)
@@ -0,0 +1,35 @@
+#t4u-update{float:right;}
+#t4u-cancel,#t4u-update{margin-top:5px;}
+#t4u-edit{margin-left:5px;}
+.t4u-clickable{cursor:pointer;}
+#t4u-addtags-form .t4u-disabled{color:#999;border-color:#666;}
+ul.holder{margin:0;border:1px solid #999;overflow:hidden;padding:4px 5px;}
+*:first-child+html ul.holder{padding-bottom:2px;}
+* html ul.holder{padding-bottom:2px;}
+ul.holder li{float:left;list-style-type:none;margin:2px 5px;white-space:nowrap;}
+ul.holder li.bit-box{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;border:1px solid #CAD8F3;background:#DEE7F8;padding:1px 5px 2px 2px;}
+ul.holder li.bit-box-focus{border-color:#598BEC;background:#598BEC;color:#fff;}
+ul.holder li.bit-input input{width:auto;overflow:visible;margin:0;border:0;outline:0;padding:3px 0 2px 2px;}
+ul.holder li.bit-input input.smallinput{width:20px;}
+#add{border:1px solid #999;width:550px;margin:50px;padding:20px 30px 10px 10px;}
+form ol li{list-style-type:none;}
+form ol{font:11px "Lucida Grande","Verdana";margin:0;padding:0;}
+form ol li.input-text{margin-bottom:10px;list-style-type:none;padding-bottom:10px;}
+form ol li.input-text label{font-weight:bold;cursor:pointer;display:block;font-size:13px;margin-bottom:10px;}
+form ol li.input-text input{width:500px;padding:5px 5px 6px 6px;font:11px "Lucida Grande","Verdana";border:1px solid #999;}
+form ul.holder{width:auto;max-width:500px;}
+ul.holder li.bit-box{padding-right:15px;position:relative;z-index:1000;}
+ul.holder li.bit-hover{background:#BBCEF1;border:1px solid #6D95E0;}
+ul.holder li.bit-box-focus{border-color:#598BEC;background:#598BEC;color:#fff;}
+ul.holder li.bit-box a.closebutton{position:absolute;right:4px;top:5px;display:block;width:7px;height:7px;font-size:1px;background:url(./imgs/close.png);}
+ul.holder li.bit-box a.closebutton:hover{background-position:7px;}
+ul.holder li.bit-box-focus a.closebutton,ul.holder li.bit-box-focus a.closebutton:hover{background-position:bottom;}
+.facebook-auto{display:none;position:absolute;width:512px;background:#eee;}
+.facebook-auto .default{padding:5px 7px;border:1px solid #ccc;border-width:0 1px 1px;font-family:"Lucida Grande","Verdana";font-size:11px;}
+.facebook-auto ul{display:none;margin:0;padding:0;overflow:auto;position:absolute;z-index:9999;}
+.facebook-auto ul li{padding:5px 12px;z-index:1000;cursor:pointer;margin:0;list-style-type:none;border:1px solid #ccc;border-width:0 1px 1px;font:11px "Lucida Grande","Verdana";background-color:#eee;}
+.facebook-auto ul li em{font-weight:bold;font-style:normal;background:#ccc;}
+.facebook-auto ul li.auto-focus{background:#4173CC;color:#fff;}
+.facebook-auto ul li.auto-focus em{background:none;}
+.deleted{background-color:#4173CC!important;color:#fff!important;}
+.ie6fix{height:1px;width:1px;position:absolute;top:0;left:0;z-index:1;}
Index: /extensions/user_tags/include/constants.inc.php
===================================================================
--- /extensions/user_tags/include/constants.inc.php	(revision 6798)
+++ /extensions/user_tags/include/constants.inc.php	(revision 6798)
@@ -0,0 +1,28 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+define('T4U_PLUGIN_NAME', 'User Tags');
+define('T4U_PLUGIN_LANG', T4U_PLUGIN_ROOT . '/');
+define('T4U_TEMPLATE', T4U_PLUGIN_ROOT . '/template');
+define('T4U_CSS', PHPWG_PLUGINS_PATH . basename(T4U_PLUGIN_ROOT). '/css');
+define('T4U_IMGS', PHPWG_PLUGINS_PATH . basename(T4U_PLUGIN_ROOT). '/imgs');
+define('T4U_JS', PHPWG_PLUGINS_PATH . basename(T4U_PLUGIN_ROOT). '/js');
+?>
Index: /extensions/user_tags/include/default_values.inc.php
===================================================================
--- /extensions/user_tags/include/default_values.inc.php	(revision 6798)
+++ /extensions/user_tags/include/default_values.inc.php	(revision 6798)
@@ -0,0 +1,23 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+$default_values = array();
+?>
Index: /extensions/user_tags/include/t4u_config.class.php
===================================================================
--- /extensions/user_tags/include/t4u_config.class.php	(revision 6798)
+++ /extensions/user_tags/include/t4u_config.class.php	(revision 6798)
@@ -0,0 +1,89 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+class t4u_Config
+{
+    private 
+      $config = array(), 
+      $plugin_dir;
+
+  public function __construct($plugin_dir, $plugin_name) {
+    $this->plugin_dir = $plugin_dir;
+    $this->plugin_name = $plugin_name;
+
+    if (!file_exists($this->get_config_file_dir())) {
+      mkgetdir($this->get_config_file_dir());
+    }
+
+    if (!file_exists($this->get_config_filename())) {
+      $this->save_config();
+    }
+  }
+
+  public function load_config() {
+    $x = file_get_contents($this->get_config_filename());
+    if ($x!==false) {
+      $c = unserialize($x);
+      $this->config = $c;
+    }
+    $this->setDefaults();
+  }
+
+  public function save_config() {
+    file_put_contents($this->get_config_filename(), serialize($this->config));
+  }
+
+  private function get_config_file_dir() {
+    return $GLOBALS['conf']['local_data_dir'].'/plugins/';
+  }
+
+  private function get_config_filename() {
+    return $this->get_config_file_dir().basename($this->plugin_dir).'.dat';
+  }
+
+  public function __set($key, $value) {
+    $this->config[$key] = $value;
+  }
+
+  public function __get($key) {
+    return isset($this->config[$key])?$this->config[$key]:null;
+  }
+
+  public function plugin_admin_menu($menu) {
+    array_push($menu,
+	       array('NAME' => $this->plugin_name,
+		     'URL' => get_admin_plugin_menu_link($this->plugin_dir.'/admin.php')		 
+		     )
+	       );
+    return $menu;
+  }
+
+  private function setDefaults() {
+    include_once $this->plugin_dir.'/include/default_values.inc.php';
+
+    foreach ($default_values as $key => $value) {
+      if (empty($this->config[$key])) {
+	$this->config[$key] = $value;
+      }
+    }
+  }
+}
+?>
Index: /extensions/user_tags/include/t4u_content.class.php
===================================================================
--- /extensions/user_tags/include/t4u_content.class.php	(revision 6798)
+++ /extensions/user_tags/include/t4u_content.class.php	(revision 6798)
@@ -0,0 +1,106 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+class t4u_Content
+{
+  public function __construct($config) {
+    $this->plugin_config = $config;
+
+    if (preg_match('!/t4u_addtags.*!', $_SERVER['QUERY_STRING']) && !empty($_POST['tags'])) {
+      include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+
+      /* TODO: add permissions */
+      $tag_ids = get_fckb_tag_ids($_POST['tags']);
+      set_tags($tag_ids, $_POST['image_id']);
+      redirect(get_absolute_root_url().$_POST['referer']);
+    }
+
+    if (preg_match('!/t4u_gettags.*!', $_SERVER['QUERY_STRING'])) {
+      include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
+
+      /* TODO: add permissions */
+      $query = '
+SELECT
+    id AS tag_id,
+    name AS tag_name
+  FROM '.TAGS_TABLE.'
+;';
+      echo json_encode(get_fckb_taglist($query));
+      exit();
+    }
+  }
+
+  public function render_element_content($content, $picture) {
+    global $template;
+
+    /* TODO: add permissions */
+    if (!is_autorize_status(ACCESS_CLASSIC)) { return;}
+
+    $template->func_known_script(array('id' => 'jquery',
+				       'src' => get_root_url().T4U_JS. '/jquery-1.4.2.js'
+				       ),
+				 $template->smarty
+				 );
+
+    $template->assign('T4U_JS', T4U_JS);
+    $template->assign('T4U_CSS', T4U_CSS);
+    $template->assign('T4U_IMGS', T4U_IMGS);
+    $template->assign('T4U_ADD_SCRIPT', $this->public_addtags_url());
+    $template->assign('T4U_GET_SCRIPT', $this->public_gettags_url());
+    $template->assign('T4U_IMAGE_ID', $picture['id']);
+    $template->assign('T4U_REFERER', htmlentities($picture['url']));
+    $related_tags = array();
+    if (!empty($template->smarty->_tpl_vars['related_tags'])) {
+      foreach ($template->smarty->_tpl_vars['related_tags'] as $id => $tag_infos) {
+	$related_tags['~~'.$tag_infos['id'].'~~'] = $tag_infos['name']; 
+      }
+    }
+    $template->assign('T4U_RELATED_TAGS', $related_tags);
+
+    $template->set_filename('add_tags', T4U_TEMPLATE.'/add_tags.tpl');
+    $template->assign_var_from_handle('PLUGIN_PICTURE_BEFORE', 'add_tags');
+  }    
+
+  private function public_addtags_url() {
+    $url = get_root_url().'index';
+    if ($GLOBALS['conf']['php_extension_in_urls']) {
+      $url .= '.php';
+    }
+    if ($GLOBALS['conf']['question_mark_in_urls']) {
+      $url .= '?';
+    }
+    $url .= '/t4u_addtags';
+    return $url;
+  }
+
+  private function public_gettags_url() {
+    $url = get_root_url().'index';
+    if ($GLOBALS['conf']['php_extension_in_urls']) {
+      $url .= '.php';
+    }
+    if ($GLOBALS['conf']['question_mark_in_urls']) {
+      $url .= '?';
+    }
+    $url .= '/t4u_gettags';
+    return $url;
+  }
+}
+?>
Index: /extensions/user_tags/init.php
===================================================================
--- /extensions/user_tags/init.php	(revision 6798)
+++ /extensions/user_tags/init.php	(revision 6798)
@@ -0,0 +1,43 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH')) {
+  die('Hacking attempt!');
+}
+
+define('T4U_PLUGIN_ROOT', dirname(__FILE__));
+
+include_once T4U_PLUGIN_ROOT . "/include/constants.inc.php";
+include_once T4U_PLUGIN_ROOT . "/include/t4u_config.class.php";
+
+load_language('plugin.lang', T4U_PLUGIN_LANG);
+
+$plugin_config = new t4u_Config(T4U_PLUGIN_ROOT, T4U_PLUGIN_NAME);
+$plugin_config->load_config();
+
+if (defined('IN_ADMIN')) { 
+  include_once T4U_PLUGIN_ROOT . '/admin.php';
+} else {
+  include_once T4U_PLUGIN_ROOT . '/public.php';
+}
+
+set_plugin_data($plugin['id'], $plugin_config);
+?>
Index: /extensions/user_tags/js/jquery-1.4.2.js
===================================================================
--- /extensions/user_tags/js/jquery-1.4.2.js	(revision 6798)
+++ /extensions/user_tags/js/jquery-1.4.2.js	(revision 6798)
@@ -0,0 +1,1 @@
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(E(1E,1e){G y=E(P,T){C 3w y.fn.8T(P,T)},bL=1E.y,8h$=1E.$,Y=1E.Y,6S,bP=/^[^<]*(<[\\w\\W]+>)[^>]*$|^#([\\w-]+)$/,d3=/^.[^:#\\[\\.,]*$/,bX=/\\S/,bV=/^(\\s|\\bO)+|(\\s|\\bO)+$/g,bN=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,8E=dW.8E,6U,8P=14,5S=[],4j,4c=80.31.4c,74=80.31.74,1D=3Y.31.1D,2i=3Y.31.2i,2o=3Y.31.2o;y.fn=y.31={8T:E(P,T){G I,6,N,2g;7(!P){C B}7(P.19){B.T=B[0]=P;B.M=1;C B}7(P==="1h"&&!T){B.T=Y;B[0]=Y.1h;B.P="1h";B.M=1;C B}7(1a P==="1S"){I=bP.27(P);7(I&&(I[1]||!T)){7(I[1]){2g=(T?T.23||T:Y);N=bN.27(P);7(N){7(y.7F(T)){P=[Y.2v(N[1])];y.fn.3C.1d(P,T,R)}Q{P=[2g.2v(N[1])]}}Q{N=au([I[1]],[2g]);P=(N.5w?N.2a.5z(R):N.2a).3p}C y.5u(B,P)}Q{6=Y.6c(I[2]);7(6){7(6.1L!==I[2]){C 6S.2y(P)}B.M=1;B[0]=6}B.T=Y;B.P=P;C B}}Q 7(!T&&/^\\w+$/.17(P)){B.P=P;B.T=Y;P=Y.2N(P);C y.5u(B,P)}Q 7(!T||T.6P){C(T||6S).2y(P)}Q{C y(T).2y(P)}}Q 7(y.1J(P)){C 6S.3B(P)}7(P.P!==1e){B.P=P.P;B.T=P.T}C y.2T(P,B)},P:"",6P:"1.4.2",M:0,4o:E(){C B.M},7z:E(){C 2i.1d(B,0)},5i:E(3Q){C 3Q==U?B.7z():(3Q<0?B.2i(3Q)[0]:B[3Q])},3o:E(1F,J,P){G N=y();7(y.3b(1F)){1D.28(N,1F)}Q{y.5u(N,1F)}N.90=B;N.T=B.T;7(J==="2y"){N.P=B.P+(B.P?" ":"")+P}Q 7(J){N.P=B.P+"."+J+"("+P+")"}C N},1c:E(1m,1O){C y.1c(B,1m,1O)},3B:E(fn){y.9y();7(y.6R){fn.1d(Y,y)}Q 7(5S){5S.1D(fn)}C B},eq:E(i){C i===-1?B.2i(i):B.2i(i,+i+1)},2m:E(){C B.eq(0)},4K:E(){C B.eq(-1)},2i:E(){C B.3o(2i.28(B,1H),"2i",2i.1d(1H).5k(","))},2Y:E(1m){C B.3o(y.2Y(B,E(6,i){C 1m.1d(6,i,6)}))},3y:E(){C B.90||y(U)},1D:1D,5f:[].5f,3i:[].3i};y.fn.8T.31=y.fn;y.1T=y.fn.1T=E(){G 1z=1H[0]||{},i=1,M=1H.M,5U=14,1f,J,2O,3Z;7(1a 1z==="7G"){5U=1z;1z=1H[1]||{};i=2}7(1a 1z!=="1P"&&!y.1J(1z)){1z={}}7(M===i){1z=B;--i}V(;i<M;i++){7((1f=1H[i])!=U){V(J 1M 1f){2O=1z[J];3Z=1f[J];7(1z===3Z){5v}7(5U&&3Z&&(y.7F(3Z)||y.3b(3Z))){G 6E=2O&&(y.7F(2O)||y.3b(2O))?2O:y.3b(3Z)?[]:{};1z[J]=y.1T(5U,6E,3Z)}Q 7(3Z!==1e){1z[J]=3Z}}}}C 1z};y.1T({dP:E(5U){1E.$=8h$;7(5U){1E.y=bL}C y},6R:14,3B:E(){7(!y.6R){7(!Y.1h){C 83(y.3B,13)}y.6R=R;7(5S){G fn,i=0;2b((fn=5S[i++])){fn.1d(Y,y)}5S=U}7(y.fn.8c){y(Y).8c("3B")}}},9y:E(){7(8P){C}8P=R;7(Y.5q==="2F"){C y.3B()}7(Y.4q){Y.4q("4j",4j,14);1E.4q("7Y",y.3B,14)}Q 7(Y.3X){Y.3X("3H",4j);1E.3X("aj",y.3B);G 93=14;2H{93=1E.cs==U}2I(e){}7(Y.2j.bw&&93){9F()}}},1J:E(29){C 4c.1d(29)==="[1P bW]"},3b:E(29){C 4c.1d(29)==="[1P 3Y]"},7F:E(29){7(!29||4c.1d(29)!=="[1P 80]"||29.19||29.6J){C 14}7(29.8Z&&!74.1d(29,"8Z")&&!74.1d(29.8Z.31,"ee")){C 14}G 22;V(22 1M 29){}C 22===1e||74.1d(29,22)},7a:E(29){V(G J 1M 29){C 14}C R},2U:E(86){aZ 86},bG:E(K){7(1a K!=="1S"||!K){C U}K=y.7M(K);7(/^[\\],:{}\\s]*$/.17(K.1B(/\\\\(?:["\\\\\\/eU]|u[0-9a-fA-F]{4})/g,"@").1B(/"[^"\\\\\\n\\r]*"|R|14|U|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,"]").1B(/(?:^|:|,)(?:\\s*\\[)+/g,""))){C 1E.7H&&1E.7H.bR?1E.7H.bR(K):(3w bW("C "+K))()}Q{y.2U("eK 7H: "+K)}},6x:E(){},9V:E(K){7(K&&bX.17(K)){G 3l=Y.2N("3l")[0]||Y.2j,1y=Y.2v("1y");1y.H="1U/53";7(y.1Q.9G){1y.3M(Y.6L(K))}Q{1y.1U=K}3l.3P(1y,3l.1V);3l.3j(1y)}},1g:E(6,J){C 6.1g&&6.1g.7Z()===J.7Z()},1c:E(1P,1m,1O){G J,i=0,M=1P.M,8J=M===1e||y.1J(1P);7(1O){7(8J){V(J 1M 1P){7(1m.28(1P[J],1O)===14){2L}}}Q{V(;i<M;){7(1m.28(1P[i++],1O)===14){2L}}}}Q{7(8J){V(J 1M 1P){7(1m.1d(1P[J],J,1P[J])===14){2L}}}Q{V(G O=1P[0];i<M&&1m.1d(O,i,O)!==14;O=1P[++i]){}}}C 1P},7M:E(1U){C(1U||"").1B(bV,"")},2T:E(1I,1u){G N=1u||[];7(1I!=U){7(1I.M==U||1a 1I==="1S"||y.1J(1I)||(1a 1I!=="E"&&1I.6J)){1D.1d(N,1I)}Q{y.5u(N,1I)}}C N},5t:E(6,1I){7(1I.2o){C 1I.2o(6)}V(G i=0,M=1I.M;i<M;i++){7(1I[i]===6){C i}}C-1},5u:E(2m,5J){G i=2m.M,j=0;7(1a 5J.M==="5s"){V(G l=5J.M;j<l;j++){2m[i++]=5J[j]}}Q{2b(5J[j]!==1e){2m[i++]=5J[j++]}}2m.M=i;C 2m},6f:E(1F,1m,bS){G N=[];V(G i=0,M=1F.M;i<M;i++){7(!bS!==!1m(1F[i],i)){N.1D(1F[i])}}C N},2Y:E(1F,1m,bT){G N=[],O;V(G i=0,M=1F.M;i<M;i++){O=1m(1F[i],i,bT);7(O!=U){N[N.M]=O}}C N.7K.28([],N)},2B:1,2D:E(fn,2D,6T){7(1H.M===2){7(1a 2D==="1S"){6T=fn;fn=6T[2D];2D=1e}Q 7(2D&&!y.1J(2D)){6T=2D;2D=1e}}7(!2D&&fn){2D=E(){C fn.28(6T||B,1H)}}7(fn){2D.2B=fn.2B=fn.2B||2D.2B||y.2B++}C 2D},bI:E(4D){4D=4D.2e();G I=/(bx)[ \\/]([\\w.]+)/.27(4D)||/(f7)(?:.*7E)?[ \\/]([\\w.]+)/.27(4D)||/(f3) ([\\w.]+)/.27(4D)||!/eZ/.17(4D)&&/(f1)(?:.*? eH:([\\w.]+))?/.27(4D)||[];C{4E:I[1]||"",7E:I[2]||"0"}},4E:{}});6U=y.bI(8E);7(6U.4E){y.4E[6U.4E]=R;y.4E.7E=6U.7E}7(y.4E.bx){y.4E.ex=R}7(2o){y.5t=E(6,1I){C 2o.1d(1I,6)}}6S=y(Y);7(Y.4q){4j=E(){Y.8j("4j",4j,14);y.3B()}}Q 7(Y.3X){4j=E(){7(Y.5q==="2F"){Y.9o("3H",4j);y.3B()}}}E 9F(){7(y.6R){C}2H{Y.2j.bw("1o")}2I(2U){83(9F,1);C}y.3B()}E dh(i,6){7(6.2O){y.6N({1n:6.2O,5c:14,38:"1y"})}Q{y.9V(6.1U||6.c0||6.3r||"")}7(6.1s){6.1s.3j(6)}}E 7Q(1F,22,O,27,fn,4F){G M=1F.M;7(1a 22==="1P"){V(G k 1M 22){7Q(1F,k,22[k],27,fn,O)}C 1F}7(O!==1e){27=!4F&&27&&y.1J(O);V(G i=0;i<M;i++){fn(1F[i],22,27?O.1d(1F[i],i,fn(1F[i],22)):O,4F)}C 1F}C M?fn(1F[0],22):1e}E 2Q(){C(3w cJ).dg()}(E(){y.1Q={};G 34=Y.2j,1y=Y.2v("1y"),12=Y.2v("12"),1L="1y"+2Q();12.18.2f="4R";12.3r="   <8w/><2h></2h><a 3F=\'/a\' 18=\'cL:bs;9Y:1o;2p:.55;\'>a</a><4b H=\'59\'/>";G 2w=12.2N("*"),a=12.2N("a")[0];7(!2w||!2w.M||!a){C}y.1Q={ad:12.1V.19===3,2z:!12.2N("2z").M,dt:!!12.2N("8w").M,18:/bs/.17(a.3n("18")),cv:a.3n("3F")==="/a",2p:/^0.55$/.17(a.18.2p),7R:!!a.18.7R,bZ:12.2N("4b")[0].O==="44",ck:Y.2v("2X").3M(Y.2v("49")).5l,1s:12.3j(12.3M(Y.2v("12"))).1s===U,69:R,7v:14,9G:14,94:R,6a:U};1y.H="1U/53";2H{1y.3M(Y.6L("1E."+1L+"=1;"))}2I(e){}34.3P(1y,34.1V);7(1E[1L]){y.1Q.9G=R;39 1E[1L]}2H{39 1y.17}2I(e){y.1Q.69=14}34.3j(1y);7(12.3X&&12.bt){12.3X("9C",E 4A(){y.1Q.94=14;12.9o("9C",4A)});12.5z(R).bt("9C")}12=Y.2v("12");12.3r="<4b H=\'4L\' J=\'ew\' 45=\'45\'/>";G 2a=Y.do();2a.3M(12.1V);y.1Q.7v=2a.5z(R).5z(R).ai.45;y(E(){G 12=Y.2v("12");12.18.2M=12.18.bH="5d";Y.1h.3M(12);y.6a=y.1Q.6a=12.7k===2;Y.1h.3j(12).18.2f=\'4R\';12=U});G 9z=E(64){G el=Y.2v("12");64="44"+64;G 7L=(64 1M el);7(!7L){el.cx(64,"C;");7L=1a el[64]==="E"}el=U;C 7L};y.1Q.aL=9z("4M");y.1Q.aN=9z("6k");34=1y=12=2w=a=U})();y.3x={"V":"aW","4e":"1N",eG:"aR",eF:"eD",cy:"eC",eu:"ej",ei:"eg",ek:"9u",em:"es",er:"ep"};G 2W="y"+2Q(),bu=0,9A={};y.1T({2r:{},2W:2W,70:{"8y":R,"1P":R,"en":R},K:E(6,J,K){7(6.1g&&y.70[6.1g.2e()]){C}6=6==1E?9A:6;G 1L=6[2W],2r=y.2r,3V;7(!1L&&1a J==="1S"&&K===1e){C U}7(!1L){1L=++bu}7(1a J==="1P"){6[2W]=1L;3V=2r[1L]=y.1T(R,{},J)}Q 7(!2r[1L]){6[2W]=1L;2r[1L]={}}3V=2r[1L];7(K!==1e){3V[J]=K}C 1a J==="1S"?3V[J]:3V},71:E(6,J){7(6.1g&&y.70[6.1g.2e()]){C}6=6==1E?9A:6;G 1L=6[2W],2r=y.2r,3V=2r[1L];7(J){7(3V){39 3V[J];7(y.7a(3V)){y.71(6)}}}Q{7(y.1Q.69){39 6[y.2W]}Q 7(6.6w){6.6w(y.2W)}39 2r[1L]}}});y.fn.1T({K:E(22,O){7(1a 22==="1e"&&B.M){C y.K(B[0])}Q 7(1a 22==="1P"){C B.1c(E(){y.K(B,22)})}G 1l=22.3m(".");1l[1]=1l[1]?"."+1l[1]:"";7(O===1e){G K=B.8c("eI"+1l[1]+"!",[1l[0]]);7(K===1e&&B.M){K=y.K(B[0],22)}C K===1e&&1l[1]?B.K(1l[0]):K}Q{C B.2t("f0"+1l[1]+"!",[1l[0],O]).1c(E(){y.K(B,22,O)})}},71:E(22){C B.1c(E(){y.71(B,22)})}});y.1T({2G:E(6,H,K){7(!6){C}H=(H||"fx")+"2G";G q=y.K(6,H);7(!K){C q||[]}7(!q||y.3b(K)){q=y.K(6,H,y.2T(K))}Q{q.1D(K)}C q},4P:E(6,H){H=H||"fx";G 2G=y.2G(6,H),fn=2G.4p();7(fn==="9P"){fn=2G.4p()}7(fn){7(H==="fx"){2G.9B("9P")}fn.1d(6,E(){y.4P(6,H)})}}});y.fn.1T({2G:E(H,K){7(1a H!=="1S"){K=H;H="fx"}7(K===1e){C y.2G(B[0],H)}C B.1c(E(i,6){G 2G=y.2G(B,H,K);7(H==="fx"&&2G[0]!=="9P"){y.4P(B,H)}})},4P:E(H){C B.1c(E(){y.4P(B,H)})},eY:E(4Y,H){4Y=y.fx?y.fx.8d[4Y]||4Y:4Y;H=H||"fx";C B.2G(H,E(){G 6=B;83(E(){y.4P(6,H)},4Y)})},az:E(H){C B.2G(H||"fx",[])}});G 9d=/[\\n\\t]/g,7O=/\\s+/,cn=/\\r/g,cm=/3F|2O|18/,ci=/(3A|4b)/i,cp=/(3A|4b|1P|2X|6K)/i,cq=/^(a|91)$/i,9t=/4L|59/;y.fn.1T({3C:E(J,O){C 7Q(B,J,O,R,y.3C)},f2:E(J,fn){C B.1c(E(){y.3C(B,J,"");7(B.19===1){B.6w(J)}})},9b:E(O){7(y.1J(O)){C B.1c(E(i){G 1t=y(B);1t.9b(O.1d(B,i,1t.3C("4e")))})}7(O&&1a O==="1S"){G 4k=(O||"").3m(7O);V(G i=0,l=B.M;i<l;i++){G 6=B[i];7(6.19===1){7(!6.1N){6.1N=O}Q{G 1N=" "+6.1N+" ",9g=6.1N;V(G c=0,cl=4k.M;c<cl;c++){7(1N.2o(" "+4k[c]+" ")<0){9g+=" "+4k[c]}}6.1N=y.7M(9g)}}}}C B},9c:E(O){7(y.1J(O)){C B.1c(E(i){G 1t=y(B);1t.9c(O.1d(B,i,1t.3C("4e")))})}7((O&&1a O==="1S")||O===1e){G 4k=(O||"").3m(7O);V(G i=0,l=B.M;i<l;i++){G 6=B[i];7(6.19===1&&6.1N){7(O){G 1N=(" "+6.1N+" ").1B(9d," ");V(G c=0,cl=4k.M;c<cl;c++){1N=1N.1B(" "+4k[c]+" "," ")}6.1N=y.7M(1N)}Q{6.1N=""}}}}C B},bF:E(O,6W){G H=1a O,bE=1a 6W==="7G";7(y.1J(O)){C B.1c(E(i){G 1t=y(B);1t.bF(O.1d(B,i,1t.3C("4e"),6W),6W)})}C B.1c(E(){7(H==="1S"){G 1N,i=0,1t=y(B),43=6W,4k=O.3m(7O);2b((1N=4k[i++])){43=bE?43:!1t.bC(1N);1t[43?"9b":"9c"](1N)}}Q 7(H==="1e"||H==="7G"){7(B.1N){y.K(B,"bB",B.1N)}B.1N=B.1N||O===14?"":y.K(B,"bB")||""}})},bC:E(P){G 1N=" "+P+" ";V(G i=0,l=B.M;i<l;i++){7((" "+B[i].1N+" ").1B(9d," ").2o(1N)>-1){C R}}C 14},1j:E(O){7(O===1e){G 6=B[0];7(6){7(y.1g(6,"49")){C(6.eN.O||{}).cj?6.O:6.1U}7(y.1g(6,"2X")){G 4s=6.5m,62=[],1f=6.1f,4h=6.H==="2X-4h";7(4s<0){C U}V(G i=4h?4s:0,4Z=4h?4s+1:1f.M;i<4Z;i++){G 49=1f[i];7(49.5l){O=y(49).1j();7(4h){C O}62.1D(O)}}C 62}7(9t.17(6.H)&&!y.1Q.bZ){C 6.3n("O")===U?"44":6.O}C(6.O||"").1B(cn,"")}C 1e}G 1J=y.1J(O);C B.1c(E(i){G 1t=y(B),1j=O;7(B.19!==1){C}7(1J){1j=O.1d(B,i,1t.1j())}7(1a 1j==="5s"){1j+=""}7(y.3b(1j)&&9t.17(B.H)){B.45=y.5t(1t.1j(),1j)>=0}Q 7(y.1g(B,"2X")){G 62=y.2T(1j);y("49",B).1c(E(){B.5l=y.5t(y(B).1j(),62)>=0});7(!62.M){B.5m=-1}}Q{B.O=1j}})}});y.1T({88:{1j:R,2R:R,21:R,1U:R,K:R,2M:R,35:R,24:R},3C:E(6,J,O,4F){7(!6||6.19===3||6.19===8){C 1e}7(4F&&J 1M y.88){C y(6)[J](O)}G 72=6.19!==1||!y.8X(6),1k=O!==1e;J=72&&y.3x[J]||J;7(6.19===1){G 1Y=cm.17(J);7(J==="5l"&&!y.1Q.ck){G 1v=6.1s;7(1v){1v.5m;7(1v.1s){1v.1s.5m}}}7(J 1M 6&&72&&!1Y){7(1k){7(J==="H"&&ci.17(6.1g)&&6.1s){y.2U("H eQ eR\'t be f8")}6[J]=O}7(y.1g(6,"3T")&&6.50(J)){C 6.50(J).7e}7(J==="9u"){G 7f=6.50("9u");C 7f&&7f.cj?7f.O:cp.17(6.1g)||cq.17(6.1g)&&6.3F?0:1e}C 6[J]}7(!y.1Q.18&&72&&J==="18"){7(1k){6.18.cw=""+O}C 6.18.cw}7(1k){6.cx(J,""+O)}G 3C=!y.1Q.cv&&72&&1Y?6.3n(J,2):6.3n(J);C 3C===U?1e:3C}C y.18(6,J,O)}});G 67=/\\.(.*)$/,cf=E(cr){C cr.1B(/[^\\w\\s\\.\\|`]/g,E(ch){C"\\\\"+ch})};y.L={2J:E(6,1X,1G,K){7(6.19===3||6.19===8){C}7(6.6J&&(6!==1E&&!6.cs)){6=1E}G 73,1p;7(1G.1G){73=1G;1G=73.1G}7(!1G.2B){1G.2B=y.2B++}G 33=y.K(6);7(!33){C}G 1C=33.1C=33.1C||{},3d=33.25,3d;7(!3d){33.25=3d=E(){C 1a y!=="1e"&&!y.L.8C?y.L.25.28(3d.6,1H):1e}}3d.6=6;1X=1X.3m(" ");G H,i=0,1W;2b((H=1X[i++])){1p=73?y.1T({},73):{1G:1G,K:K};7(H.2o(".")>-1){1W=H.3m(".");H=1W.4p();1p.3u=1W.2i(0).5f().5k(".")}Q{1W=[];1p.3u=""}1p.H=H;1p.2B=1G.2B;G 3J=1C[H],1Y=y.L.1Y[H]||{};7(!3J){3J=1C[H]=[];7(!1Y.4B||1Y.4B.1d(6,K,1W,3d)===14){7(6.4q){6.4q(H,3d,14)}Q 7(6.3X){6.3X("44"+H,3d)}}}7(1Y.2J){1Y.2J.1d(6,1p);7(!1p.1G.2B){1p.1G.2B=1G.2B}}3J.1D(1p);y.L.3I[H]=R}6=U},3I:{},2x:E(6,1X,1G,3q){7(6.19===3||6.19===8){C}G N,H,fn,i=0,2w,1W,3u,1Y,3L,1p,4m,33=y.K(6),1C=33&&33.1C;7(!33||!1C){C}7(1X&&1X.H){1G=1X.1G;1X=1X.H}7(!1X||1a 1X==="1S"&&1X.dG(0)==="."){1X=1X||"";V(H 1M 1C){y.L.2x(6,H+1X)}C}1X=1X.3m(" ");2b((H=1X[i++])){4m=H;1p=U;2w=H.2o(".")<0;1W=[];7(!2w){1W=H.3m(".");H=1W.4p();3u=3w 6s("(^|\\\\.)"+y.2Y(1W.2i(0).5f(),cf).5k("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}3L=1C[H];7(!3L){5v}7(!1G){V(G j=0;j<3L.M;j++){1p=3L[j];7(2w||3u.17(1p.3u)){y.L.2x(6,4m,1p.1G,j);3L.3i(j--,1)}}5v}1Y=y.L.1Y[H]||{};V(G j=3q||0;j<3L.M;j++){1p=3L[j];7(1G.2B===1p.2B){7(2w||3u.17(1p.3u)){7(3q==U){3L.3i(j--,1)}7(1Y.2x){1Y.2x.1d(6,1p)}}7(3q!=U){2L}}}7(3L.M===0||3q!=U&&3L.M===1){7(!1Y.4y||1Y.4y.1d(6,1W)===14){am(6,H,33.25)}N=U;39 1C[H]}}7(y.7a(1C)){G 25=33.25;7(25){25.6=U}39 33.1C;39 33.25;7(y.7a(33)){y.71(6)}}},2t:E(L,K,6){G H=L.H||L,c6=1H[3];7(!c6){L=1a L==="1P"?L[2W]?L:y.1T(y.4W(H),L):y.4W(H);7(H.2o("!")>=0){L.H=H=H.2i(0,-1);L.bq=R}7(!6){L.4T();7(y.L.3I[H]){y.1c(y.2r,E(){7(B.1C&&B.1C[H]){y.L.2t(L,K,B.25.6)}})}}7(!6||6.19===3||6.19===8){C 1e}L.2d=1e;L.1z=6;K=y.2T(K);K.9B(L)}L.6o=6;G 25=y.K(6,"25");7(25){25.28(6,K)}G 1v=6.1s||6.23;2H{7(!(6&&6.1g&&y.70[6.1g.2e()])){7(6["44"+H]&&6["44"+H].28(6,K)===14){L.2d=14}}}2I(e){}7(!L.9f()&&1v){y.L.2t(L,K,1v,R)}Q 7(!L.9k()){G 1z=L.1z,26,c4=y.1g(1z,"a")&&H==="4A",1Y=y.L.1Y[H]||{};7((!1Y.3N||1Y.3N.1d(6,L)===14)&&!c4&&!(1z&&1z.1g&&y.70[1z.1g.2e()])){2H{7(1z[H]){26=1z["44"+H];7(26){1z["44"+H]=U}y.L.8C=R;1z[H]()}}2I(e){}7(26){1z["44"+H]=26}y.L.8C=14}}},25:E(L){G 2w,3J,1W,3u,1C;L=1H[0]=y.L.4i(L||1E.L);L.6o=B;2w=L.H.2o(".")<0&&!L.bq;7(!2w){1W=L.H.3m(".");L.H=1W.4p();3u=3w 6s("(^|\\\\.)"+1W.2i(0).5f().5k("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}G 1C=y.K(B,"1C"),3J=1C[L.H];7(1C&&3J){3J=3J.2i(0);V(G j=0,l=3J.M;j<l;j++){G 1p=3J[j];7(2w||3u.17(1p.3u)){L.1G=1p.1G;L.K=1p.K;L.1p=1p;G N=1p.1G.28(B,1H);7(N!==1e){L.2d=N;7(N===14){L.4z();L.4T()}}7(L.9j()){2L}}}}C L.2d},3x:"e2 dV dU dT 3A dY 6Y 8Y ce 9E 6o K e1 e0 7l 1G 5D dZ e7 8D dX ea e4 ed 8N cd dF dC 6l dN dK dR c1 1z c2 eX f9 58".3m(" "),4i:E(L){7(L[2W]){C L}G 5Y=L;L=y.4W(5Y);V(G i=B.3x.M,1q;i;){1q=B.3x[--i];L[1q]=5Y[1q]}7(!L.1z){L.1z=L.c1||Y}7(L.1z.19===3){L.1z=L.1z.1s}7(!L.6l&&L.7l){L.6l=L.7l===L.1z?L.c2:L.7l}7(L.8N==U&&L.8Y!=U){G 2g=Y.2j,1h=Y.1h;L.8N=L.8Y+(2g&&2g.4H||1h&&1h.4H||0)-(2g&&2g.5M||1h&&1h.5M||0);L.cd=L.ce+(2g&&2g.4J||1h&&1h.4J||0)-(2g&&2g.5F||1h&&1h.5F||0)}7(!L.58&&((L.6Y||L.6Y===0)?L.6Y:L.5D)){L.58=L.6Y||L.5D}7(!L.8D&&L.9E){L.8D=L.9E}7(!L.58&&L.3A!==1e){L.58=(L.3A&1?1:(L.3A&2?3:(L.3A&4?2:0)))}C L},2B:gp,2D:y.2D,1Y:{3B:{4B:y.9y,4y:y.6x},2V:{2J:E(1p){y.L.2J(B,1p.4m,y.1T({},1p,{1G:8M}))},2x:E(1p){G 2x=R,H=1p.4m.1B(67,"");y.1c(y.K(B,"1C").2V||[],E(){7(H===B.4m.1B(67,"")){2x=14;C 14}});7(2x){y.L.2x(B,1p.4m,8M)}}},gv:{4B:E(K,1W,3d){7(B.6J){B.9N=3d}C 14},4y:E(1W,3d){7(B.9N===3d){B.9N=U}}}}};G am=Y.8j?E(6,H,25){6.8j(H,25,14)}:E(6,H,25){6.9o("44"+H,25)};y.4W=E(2O){7(!B.4z){C 3w y.4W(2O)}7(2O&&2O.H){B.5Y=2O;B.H=2O.H}Q{B.H=2O}B.gr=2Q();B[2W]=R};E 87(){C 14}E 84(){C R}y.4W.31={4z:E(){B.9k=84;G e=B.5Y;7(!e){C}7(e.4z){e.4z()}e.gj=14},4T:E(){B.9f=84;G e=B.5Y;7(!e){C}7(e.4T){e.4T()}e.gh=R},ga:E(){B.9j=84;B.4T()},9k:87,9f:87,9j:87};G 9w=E(L){G 1v=L.6l;2H{2b(1v&&1v!==B){1v=1v.1s}7(1v!==B){L.H=L.K;y.L.25.28(B,1H)}}2I(e){}},8b=E(L){L.H=L.K;y.L.25.28(B,1H)};y.1c({6e:"8x",5Z:"8G"},E(30,4i){y.L.1Y[30]={4B:E(K){y.L.2J(B,4i,K&&K.P?8b:9w,30)},4y:E(K){y.L.2x(B,4i,K&&K.P?8b:9w)}}});7(!y.1Q.aL){y.L.1Y.4M={4B:E(K,1W){7(B.1g.2e()!=="3T"){y.L.2J(B,"4A.9Q",E(e){G 6=e.1z,H=6.H;7((H==="4M"||H==="92")&&y(6).6D("3T").M){C 2t("4M",B,1H)}});y.L.2J(B,"bl.9Q",E(e){G 6=e.1z,H=6.H;7((H==="1U"||H==="6p")&&y(6).6D("3T").M&&e.5D===13){C 2t("4M",B,1H)}})}Q{C 14}},4y:E(1W){y.L.2x(B,".9Q")}}}7(!y.1Q.aN){G 89=/6K|4b|2X/i,8g,8B=E(6){G H=6.H,1j=6.O;7(H==="4L"||H==="59"){1j=6.45}Q 7(H==="2X-7P"){1j=6.5m>-1?y.2Y(6.1f,E(6){C 6.5l}).5k("-"):""}Q 7(6.1g.2e()==="2X"){1j=6.5m}C 1j},6O=E 6O(e){G 6=e.1z,K,1j;7(!89.17(6.1g)||6.aR){C}K=y.K(6,"98");1j=8B(6);7(e.H!=="6q"||6.H!=="4L"){y.K(6,"98",1j)}7(K===1e||1j===K){C}7(K!=U||1j){e.H="6k";C y.L.2t(e,1H[1],6)}};y.L.1Y.6k={3S:{6q:6O,4A:E(e){G 6=e.1z,H=6.H;7(H==="4L"||H==="59"||6.1g.2e()==="2X"){C 6O.1d(B,e)}},bm:E(e){G 6=e.1z,H=6.H;7((e.5D===13&&6.1g.2e()!=="6K")||(e.5D===32&&(H==="59"||H==="4L"))||H==="2X-7P"){C 6O.1d(B,e)}},gb:E(e){G 6=e.1z;y.K(6,"98",8B(6))}},4B:E(K,1W){7(B.H==="6X"){C 14}V(G H 1M 8g){y.L.2J(B,H+".aG",8g[H])}C 89.17(B.1g)},4y:E(1W){y.L.2x(B,".aG");C 89.17(B.1g)}};8g=y.L.1Y.6k.3S}E 2t(H,6,1O){1O[0].H=H;C y.L.25.28(6,1O)}7(Y.4q){y.1c({8f:"97",8e:"6q"},E(30,4i){y.L.1Y[4i]={4B:E(){B.4q(30,1G,R)},4y:E(){B.8j(30,1G,R)}};E 1G(e){e=y.L.4i(e);e.H=4i;C y.L.25.1d(B,e)}})}y.1c(["aD","4h"],E(i,J){y.fn[J]=E(H,K,fn){7(1a H==="1P"){V(G 22 1M H){B[J](22,K,H[22],fn)}C B}7(y.1J(K)){fn=K;K=1e}G 1G=J==="4h"?y.2D(fn,E(L){y(B).6v(L,1G);C fn.28(B,1H)}):fn;7(H==="bi"&&J!=="4h"){B.4h(H,K,fn)}Q{V(G i=0,l=B.M;i<l;i++){y.L.2J(B[i],H,1G,K)}}C B}});y.fn.1T({6v:E(H,fn){7(1a H==="1P"&&!H.4z){V(G 22 1M H){B.6v(22,H[22])}}Q{V(G i=0,l=B.M;i<l;i++){y.L.2x(B[i],H,fn)}}C B},8b:E(P,1X,K,fn){C B.2V(1X,K,fn,P)},gw:E(P,1X,fn){7(1H.M===0){C B.6v("2V")}Q{C B.aK(1X,U,fn,P)}},2t:E(H,K){C B.1c(E(){y.L.2t(H,K,B)})},8c:E(H,K){7(B[0]){G L=y.4W(H);L.4z();L.4T();y.L.2t(L,K,B[0]);C L.2d}},5p:E(fn){G 1O=1H,i=1;2b(i<1O.M){y.2D(fn,1O[i++])}C B.4A(y.2D(fn,E(L){G 79=(y.K(B,"79"+fn.2B)||0)%i;y.K(B,"79"+fn.2B,79+1);L.4z();C 1O[79].28(B,1H)||14}))},bf:E(8Q,aH){C B.6e(8Q).5Z(aH||8Q)}});G 8R={8f:"97",8e:"6q",6e:"8x",5Z:"8G"};y.1c(["2V","aK"],E(i,J){y.fn[J]=E(1X,K,fn,9m){G H,i=0,I,1W,61,P=9m||B.P,T=9m?B:y(B.T);7(y.1J(K)){fn=K;K=1e}1X=(1X||"").3m(" ");2b((H=1X[i++])!=U){I=67.27(H);1W="";7(I){1W=I[0];H=H.1B(67,"")}7(H==="bf"){1X.1D("6e"+1W,"5Z"+1W);5v}61=H;7(H==="8f"||H==="8e"){1X.1D(8R[H]+1W);H=H+1W}Q{H=(8R[H]||H)+1W}7(J==="2V"){T.1c(E(){y.L.2J(B,95(H,P),{K:K,P:P,1G:fn,4m:H,bb:fn,61:61})})}Q{T.6v(95(H,P),fn)}}C B}});E 8M(L){G 6g,1F=[],3g=[],1O=1H,6i,I,1p,6,j,i,l,K,1C=y.K(B,"1C");7(L.bg===B||!1C||!1C.2V||L.3A&&L.H==="4A"){C}L.bg=B;G 2V=1C.2V.2i(0);V(j=0;j<2V.M;j++){1p=2V[j];7(1p.4m.1B(67,"")===L.H){3g.1D(1p.P)}Q{2V.3i(j--,1)}}I=y(L.1z).6D(3g,L.6o);V(i=0,l=I.M;i<l;i++){V(j=0;j<2V.M;j++){1p=2V[j];7(I[i].P===1p.P){6=I[i].6;6i=U;7(1p.61==="6e"||1p.61==="5Z"){6i=y(L.6l).6D(1p.P)[0]}7(!6i||6i!==6){1F.1D({6:6,1p:1p})}}}}V(i=0,l=1F.M;i<l;i++){I=1F[i];L.6o=I.6;L.K=I.1p.K;L.1p=I.1p;7(I.1p.bb.28(I.6,1O)===14){6g=14;2L}}C 6g}E 95(H,P){C"2V."+(H&&H!=="*"?H+".":"")+P.1B(/\\./g,"`").1B(/ /g,"&")}y.1c(("8e 8f 97 6q 7Y fB 7d bi 4A fy "+"fo fm fe 8x 8G 6e 5Z "+"6k 2X 4M bm bl fb 2U").3m(" "),E(i,J){y.fn[J]=E(fn){C fn?B.aD(J,fn):B.2t(J)};7(y.88){y.88[J]=R}});7(1E.3X&&!1E.4q){1E.3X("fl",E(){V(G 1L 1M y.2r){7(y.2r[1L].25){2H{y.L.2x(y.2r[1L].25.6)}2I(e){}}}})}(E(){G 8o=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|[\'"][^\'"]*[\'"]|[^[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,40=0,4c=80.31.4c,47=14,9L=R;[0,0].5f(E(){9L=14;C 0});G 1K=E(P,T,1u,4x){1u=1u||[];G b9=T=T||Y;7(T.19!==1&&T.19!==9){C[]}7(!P||1a P!=="1S"){C 1u}G 1l=[],m,1k,1r,3G,9K=R,6n=2c(T),9x=P;2b((8o.27(""),m=8o.27(9x))!==U){9x=m[3];1l.1D(m[1]);7(m[2]){3G=m[3];2L}}7(1l.M>1&&dx.27(P)){7(1l.M===2&&1w.3U[1l[0]]){1k=9h(1l[0]+1l[1],T)}Q{1k=1w.3U[1l[0]]?[T]:1K(1l.4p(),T);2b(1l.M){P=1l.4p();7(1w.3U[P]){P+=1l.4p()}1k=9h(P,1k)}}}Q{7(!4x&&1l.M>1&&T.19===9&&!6n&&1w.I.46.17(1l[0])&&!1w.I.46.17(1l[1l.M-1])){G N=1K.2y(1l.4p(),T,6n);T=N.1A?1K.1x(N.1A,N.1k)[0]:N.1k[0]}7(T){G N=4x?{1A:1l.4n(),1k:2T(4x)}:1K.2y(1l.4n(),1l.M===1&&(1l[0]==="~"||1l[0]==="+")&&T.1s?T.1s:T,6n);1k=N.1A?1K.1x(N.1A,N.1k):N.1k;7(1l.M>0){1r=2T(1k)}Q{9K=14}2b(1l.M){G 1i=1l.4n(),4n=1i;7(!1w.3U[1i]){1i=""}Q{4n=1l.4n()}7(4n==U){4n=T}1w.3U[1i](1r,4n,6n)}}Q{1r=1l=[]}}7(!1r){1r=1k}7(!1r){1K.2U(1i||P)}7(4c.1d(1r)==="[1P 3Y]"){7(!9K){1u.1D.28(1u,1r)}Q 7(T&&T.19===1){V(G i=0;1r[i]!=U;i++){7(1r[i]&&(1r[i]===R||1r[i].19===1&&4I(T,1r[i]))){1u.1D(1k[i])}}}Q{V(G i=0;1r[i]!=U;i++){7(1r[i]&&1r[i].19===1){1u.1D(1k[i])}}}}Q{2T(1r,1u)}7(3G){1K(3G,b9,1u,4x);1K.9J(1u)}C 1u};1K.9J=E(1u){7(63){47=9L;1u.5f(63);7(47){V(G i=1;i<1u.M;i++){7(1u[i]===1u[i-1]){1u.3i(i--,1)}}}}C 1u};1K.4N=E(1A,1k){C 1K(1A,U,U,1k)};1K.2y=E(1A,T,2c){G 1k,I;7(!1A){C[]}V(G i=0,l=1w.7i.M;i<l;i++){G H=1w.7i[i],I;7((I=1w.7q[H].27(1A))){G 1o=I[1];I.3i(1,1);7(1o.7m(1o.M-1)!=="\\\\"){I[1]=(I[1]||"").1B(/\\\\/g,"");1k=1w.2y[H](I,T,2c);7(1k!=U){1A=1A.1B(1w.I[H],"");2L}}}}7(!1k){1k=T.2N("*")}C{1k:1k,1A:1A}};1K.1x=E(1A,1k,3K,2K){G 26=1A,2d=[],2P=1k,I,5b,aY=1k&&1k[0]&&2c(1k[0]);2b(1A&&1k.M){V(G H 1M 1w.1x){7((I=1w.7q[H].27(1A))!=U&&I[2]){G 1x=1w.1x[H],5O,6M,1o=I[1];5b=14;I.3i(1,1);7(1o.7m(1o.M-1)==="\\\\"){5v}7(2P===2d){2d=[]}7(1w.9e[H]){I=1w.9e[H](I,2P,3K,2d,2K,aY);7(!I){5b=5O=R}Q 7(I===R){5v}}7(I){V(G i=0;(6M=2P[i])!=U;i++){7(6M){5O=1x(6M,I,i,2P);G 4F=2K^!!5O;7(3K&&5O!=U){7(4F){5b=R}Q{2P[i]=14}}Q 7(4F){2d.1D(6M);5b=R}}}}7(5O!==1e){7(!3K){2P=2d}1A=1A.1B(1w.I[H],"");7(!5b){C[]}2L}}}7(1A===26){7(5b==U){1K.2U(1A)}Q{2L}}26=1A}C 2P};1K.2U=E(86){aZ"dy 2U, du dk: "+86};G 1w=1K.3g={7i:["46","9r","6b"],I:{46:/#((?:[\\w\\5T-\\5W-]|\\\\.)+)/,6u:/\\.((?:[\\w\\5T-\\5W-]|\\\\.)+)/,9r:/\\[J=[\'"]*((?:[\\w\\5T-\\5W-]|\\\\.)+)[\'"]*\\]/,96:/\\[\\s*((?:[\\w\\5T-\\5W-]|\\\\.)+)\\s*(?:(\\S?=)\\s*([\'"]*)(.*?)\\3|)\\s*\\]/,6b:/^((?:[\\w\\5T-\\5W\\*-]|\\\\.)+)/,7p:/:(dm|4O|4K|2m)-fY(?:\\((8p|7U|[\\dn+-]*)\\))?/,5x:/:(4O|eq|gt|b3|2m|4K|8p|7U)(?:\\((\\d*)\\))?(?=[^-]|$)/,6z:/:((?:[\\w\\5T-\\5W-]|\\\\.)+)(?:\\(([\'"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},7q:{},9i:{"4e":"1N","V":"aW"},7X:{3F:E(6){C 6.3n("3F")}},3U:{"+":E(1r,1Z){G 5j=1a 1Z==="1S",9q=5j&&!/\\W/.17(1Z),9n=5j&&!9q;7(9q){1Z=1Z.2e()}V(G i=0,l=1r.M,6;i<l;i++){7((6=1r[i])){2b((6=6.5G)&&6.19!==1){}1r[i]=9n||6&&6.1g.2e()===1Z?6||14:6===1Z}}7(9n){1K.1x(1Z,1r,R)}},">":E(1r,1Z){G 5j=1a 1Z==="1S";7(5j&&!/\\W/.17(1Z)){1Z=1Z.2e();V(G i=0,l=1r.M;i<l;i++){G 6=1r[i];7(6){G 1v=6.1s;1r[i]=1v.1g.2e()===1Z?1v:14}}}Q{V(G i=0,l=1r.M;i<l;i++){G 6=1r[i];7(6){1r[i]=5j?6.1s:6.1s===1Z}}7(5j){1K.1x(1Z,1r,R)}}},"":E(1r,1Z,2c){G 3f=40++,5L=9l;7(1a 1Z==="1S"&&!/\\W/.17(1Z)){G 60=1Z=1Z.2e();5L=9s}5L("1s",1Z,3f,1r,60,2c)},"~":E(1r,1Z,2c){G 3f=40++,5L=9l;7(1a 1Z==="1S"&&!/\\W/.17(1Z)){G 60=1Z=1Z.2e();5L=9s}5L("5G",1Z,3f,1r,60,2c)}},2y:{46:E(I,T,2c){7(1a T.6c!=="1e"&&!2c){G m=T.6c(I[1]);C m?[m]:[]}},9r:E(I,T){7(1a T.aU!=="1e"){G N=[],1u=T.aU(I[1]);V(G i=0,l=1u.M;i<l;i++){7(1u[i].3n("J")===I[1]){N.1D(1u[i])}}C N.M===0?U:N}},6b:E(I,T){C T.2N(I[1])}},9e:{6u:E(I,2P,3K,2d,2K,2c){I=" "+I[1].1B(/\\\\/g,"")+" ";7(2c){C I}V(G i=0,6;(6=2P[i])!=U;i++){7(6){7(2K^(6.1N&&(" "+6.1N+" ").1B(/[\\t\\n]/g," ").2o(I)>=0)){7(!3K){2d.1D(6)}}Q 7(3K){2P[i]=14}}}C 14},46:E(I){C I[1].1B(/\\\\/g,"")},6b:E(I,2P){C I[1].2e()},7p:E(I){7(I[1]==="4O"){G 17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.27(I[2]==="8p"&&"2n"||I[2]==="7U"&&"2n+1"||!/\\D/.17(I[2])&&"fJ+"+I[2]||I[2]);I[2]=(17[1]+(17[2]||1))-0;I[3]=17[3]-0}I[0]=40++;C I},96:E(I,2P,3K,2d,2K,2c){G J=I[1].1B(/\\\\/g,"");7(!2c&&1w.9i[J]){I[1]=1w.9i[J]}7(I[2]==="~="){I[4]=" "+I[4]+" "}C I},6z:E(I,2P,3K,2d,2K){7(I[1]==="2K"){7((8o.27(I[3])||"").M>1||/^\\w/.17(I[3])){I[3]=1K(I[3],U,U,2P)}Q{G N=1K.1x(I[3],2P,3K,R^2K);7(!3K){2d.1D.28(2d,N)}C 14}}Q 7(1w.I.5x.17(I[0])||1w.I.7p.17(I[0])){C R}C I},5x:E(I){I.9B(R);C I}},3S:{fK:E(6){C 6.8n===14&&6.H!=="2Z"},8n:E(6){C 6.8n===R},45:E(6){C 6.45===R},5l:E(6){6.1s.5m;C 6.5l===R},1v:E(6){C!!6.1V},5X:E(6){C!6.1V},d2:E(6,i,I){C!!1K(I[3],6).M},fP:E(6){C/h\\d/i.17(6.1g)},1U:E(6){C"1U"===6.H},4L:E(6){C"4L"===6.H},59:E(6){C"59"===6.H},6X:E(6){C"6X"===6.H},6p:E(6){C"6p"===6.H},4M:E(6){C"4M"===6.H},92:E(6){C"92"===6.H},b4:E(6){C"b4"===6.H},3A:E(6){C"3A"===6.H||6.1g.2e()==="3A"},4b:E(6){C/4b|2X|6K|3A/i.17(6.1g)}},dl:{2m:E(6,i){C i===0},4K:E(6,i,I,1I){C i===1I.M-1},8p:E(6,i){C i%2===0},7U:E(6,i){C i%2===1},b3:E(6,i,I){C i<I[3]-0},gt:E(6,i,I){C i>I[3]-0},4O:E(6,i,I){C I[3]-0===i},eq:E(6,i,I){C I[3]-0===i}},1x:{6z:E(6,I,i,1I){G J=I[1],1x=1w.3S[J];7(1x){C 1x(6,i,I,1I)}Q 7(J==="4I"){C(6.c0||6.fz||7V([6])||"").2o(I[3])>=0}Q 7(J==="2K"){G 2K=I[3];V(G i=0,l=2K.M;i<l;i++){7(2K[i]===6){C 14}}C R}Q{1K.2U("dy 2U, du dk: "+J)}},7p:E(6,I){G H=I[1],2s=6;fM(H){7o\'dm\':7o\'2m\':2b((2s=2s.5G)){7(2s.19===1){C 14}}7(H==="2m"){C R}2s=6;7o\'4K\':2b((2s=2s.4f)){7(2s.19===1){C 14}}C R;7o\'4O\':G 2m=I[2],4K=I[3];7(2m===1&&4K===0){C R}G 3f=I[0],1v=6.1s;7(1v&&(1v.65!==3f||!6.8O)){G dp=0;V(2s=1v.1V;2s;2s=2s.4f){7(2s.19===1){2s.8O=++dp}}1v.65=3f}G 4S=6.8O-4K;7(2m===0){C 4S===0}Q{C(4S%2m===0&&4S/2m>=0)}}},46:E(6,I){C 6.19===1&&6.3n("1L")===I},6b:E(6,I){C(I==="*"&&6.19===1)||6.1g.2e()===I},6u:E(6,I){C(" "+(6.1N||6.3n("4e"))+" ").2o(I)>-1},96:E(6,I){G J=I[1],2d=1w.7X[J]?1w.7X[J](6):6[J]!=U?6[J]:6.3n(J),O=2d+"",H=I[2],3v=I[4];C 2d==U?H==="!=":H==="="?O===3v:H==="*="?O.2o(3v)>=0:H==="~="?(" "+O+" ").2o(3v)>=0:!3v?O&&2d!==14:H==="!="?O!==3v:H==="^="?O.2o(3v)===0:H==="$="?O.7m(O.M-3v.M)===3v:H==="|="?O===3v||O.7m(0,3v.M+1)===3v+"-":14},5x:E(6,I,i,1I){G J=I[2],1x=1w.dl[J];7(1x){C 1x(6,i,I,1I)}}}};G dx=1w.I.5x;V(G H 1M 1w.I){1w.I[H]=3w 6s(1w.I[H].7r+/(?![^\\[]*\\])(?![^\\(]*\\))/.7r);1w.7q[H]=3w 6s(/(^(?:.|\\r|\\n)*?)/.7r+1w.I[H].7r.1B(/\\\\(\\d+)/g,E(2w,3Q){C"\\\\"+(3Q-0+1)}))}G 2T=E(1I,1u){1I=3Y.31.2i.1d(1I,0);7(1u){1u.1D.28(1u,1I);C 1u}C 1I};2H{3Y.31.2i.1d(Y.2j.3p,0)[0].19}2I(e){2T=E(1I,1u){G N=1u||[];7(4c.1d(1I)==="[1P 3Y]"){3Y.31.1D.28(N,1I)}Q{7(1a 1I.M==="5s"){V(G i=0,l=1I.M;i<l;i++){N.1D(1I[i])}}Q{V(G i=0;1I[i];i++){N.1D(1I[i])}}}C N}}G 63;7(Y.2j.52){63=E(a,b){7(!a.52||!b.52){7(a==b){47=R}C a.52?-1:1}G N=a.52(b)&4?-1:a===b?0:1;7(N===0){47=R}C N}}Q 7("5H"1M Y.2j){63=E(a,b){7(!a.5H||!b.5H){7(a==b){47=R}C a.5H?-1:1}G N=a.5H-b.5H;7(N===0){47=R}C N}}Q 7(Y.9S){63=E(a,b){7(!a.23||!b.23){7(a==b){47=R}C a.23?-1:1}G 7u=a.23.9S(),7s=b.23.9S();7u.cQ(a,0);7u.cT(a,0);7s.cQ(b,0);7s.cT(b,0);G N=7u.fc(fd.g5,7s);7(N===0){47=R}C N}}E 7V(1F){G N="",6;V(G i=0;1F[i];i++){6=1F[i];7(6.19===3||6.19===4){N+=6.7e}Q 7(6.19!==8){N+=7V(6.3p)}}C N}(E(){G 3T=Y.2v("12"),1L="1y"+(3w cJ).dg();3T.3r="<a J=\'"+1L+"\'/>";G 34=Y.2j;34.3P(3T,34.1V);7(Y.6c(1L)){1w.2y.46=E(I,T,2c){7(1a T.6c!=="1e"&&!2c){G m=T.6c(I[1]);C m?m.1L===I[1]||1a m.50!=="1e"&&m.50("1L").7e===I[1]?[m]:1e:[]}};1w.1x.46=E(6,I){G 2s=1a 6.50!=="1e"&&6.50("1L");C 6.19===1&&2s&&2s.7e===I}}34.3j(3T);34=3T=U})();(E(){G 12=Y.2v("12");12.3M(Y.fr(""));7(12.2N("*").M>0){1w.2y.6b=E(I,T){G 1u=T.2N(I[1]);7(I[1]==="*"){G 6m=[];V(G i=0;1u[i];i++){7(1u[i].19===1){6m.1D(1u[i])}}1u=6m}C 1u}}12.3r="<a 3F=\'#\'></a>";7(12.1V&&1a 12.1V.3n!=="1e"&&12.1V.3n("3F")!=="#"){1w.7X.3F=E(6){C 6.3n("3F",2)}}12=U})();7(Y.7h){(E(){G 7g=1K,12=Y.2v("12");12.3r="<p 4e=\'cG\'></p>";7(12.7h&&12.7h(".cG").M===0){C}1K=E(9D,T,3G,4x){T=T||Y;7(!4x&&T.19===9&&!2c(T)){2H{C 2T(T.7h(9D),3G)}2I(e){}}C 7g(9D,T,3G,4x)};V(G 1q 1M 7g){1K[1q]=7g[1q]}12=U})()}(E(){G 12=Y.2v("12");12.3r="<12 4e=\'17 e\'></12><12 4e=\'17\'></12>";7(!12.6t||12.6t("e").M===0){C}12.ai.1N="e";7(12.6t("e").M===1){C}1w.7i.3i(1,0,"6u");1w.2y.6u=E(I,T,2c){7(1a T.6t!=="1e"&&!2c){C T.6t(I[1])}};12=U})();E 9s(2E,1i,3f,1r,60,2c){V(G i=0,l=1r.M;i<l;i++){G 6=1r[i];7(6){6=6[2E];G I=14;2b(6){7(6.65===3f){I=1r[6.7y];2L}7(6.19===1&&!2c){6.65=3f;6.7y=i}7(6.1g.2e()===1i){I=6;2L}6=6[2E]}1r[i]=I}}}E 9l(2E,1i,3f,1r,60,2c){V(G i=0,l=1r.M;i<l;i++){G 6=1r[i];7(6){6=6[2E];G I=14;2b(6){7(6.65===3f){I=1r[6.7y];2L}7(6.19===1){7(!2c){6.65=3f;6.7y=i}7(1a 1i!=="1S"){7(6===1i){I=R;2L}}Q 7(1K.1x(1i,[6]).M>0){I=6;2L}}6=6[2E]}1r[i]=I}}}G 4I=Y.52?E(a,b){C!!(a.52(b)&16)}:E(a,b){C a!==b&&(a.4I?a.4I(b):R)};G 2c=E(6){G 2j=(6?6.23||6:0).2j;C 2j?2j.1g!=="gx":14};G 9h=E(P,T){G 9M=[],9v="",I,34=T.19?[T]:T;2b((I=1w.I.6z.27(P))){9v+=I[0];P=P.1B(1w.I.6z,"")}P=1w.3U[P]?P+"*":P;V(G i=0,l=34.M;i<l;i++){1K(P,34[i],9M)}C 1K.1x(9v,9M)};y.2y=1K;y.1A=1K.3g;y.1A[":"]=y.1A.3S;y.8F=1K.9J;y.1U=7V;y.8X=2c;y.4I=4I;C;1E.1K=1K})();G cH=/gl$/,cF=/^(?:dd|d7|da)/,cI=/,/,2i=3Y.31.2i;G 9T=E(5n,3E,6y){7(y.1J(3E)){C y.6f(5n,E(6,i){C!!3E.1d(6,i,6)===6y})}Q 7(3E.19){C y.6f(5n,E(6,i){C(6===3E)===6y})}Q 7(1a 3E==="1S"){G 9R=y.6f(5n,E(6){C 6.19===1});7(d3.17(3E)){C y.1x(3E,9R,!6y)}Q{3E=y.1x(3E,9R)}}C y.6f(5n,E(6,i){C(y.5t(6,3E)>=0)===6y})};y.fn.1T({2y:E(P){G N=B.3o("","2y",P),M=0;V(G i=0,l=B.M;i<l;i++){M=N.M;y.2y(P,B[i],N);7(i>0){V(G n=M;n<N.M;n++){V(G r=0;r<M;r++){7(N[r]===N[n]){N.3i(n--,1);2L}}}}}C N},d2:E(1z){G 9I=y(1z);C B.1x(E(){V(G i=0,l=9I.M;i<l;i++){7(y.4I(B,9I[i])){C R}}})},2K:E(P){C B.3o(9T(B,P,14),"2K",P)},1x:E(P){C B.3o(9T(B,P,R),"1x",P)},5V:E(P){C!!P&&y.1x(P,B).M>0},6D:E(3g,T){7(y.3b(3g)){G N=[],1i=B[0],I,4N={},P;7(1i&&3g.M){V(G i=0,l=3g.M;i<l;i++){P=3g[i];7(!4N[P]){4N[P]=y.1A.I.5x.17(P)?y(P,T||B.T):P}}2b(1i&&1i.23&&1i!==T){V(P 1M 4N){I=4N[P];7(I.6P?I.4s(1i)>-1:y(1i).5V(I)){N.1D({P:P,6:1i});39 4N[P]}}1i=1i.1s}}C N}G 3q=y.1A.I.5x.17(3g)?y(3g,T||B.T):U;C B.2Y(E(i,1i){2b(1i&&1i.23&&1i!==T){7(3q?3q.4s(1i)>-1:y(1i).5V(3g)){C 1i}1i=1i.1s}C U})},4s:E(6){7(!6||1a 6==="1S"){C y.5t(B[0],6?y(6):B.1v().d9())}C y.5t(6.6P?6[0]:6,B)},2J:E(P,T){G 1k=1a P==="1S"?y(P,T||B.T):y.2T(P),2w=y.5u(B.5i(),1k);C B.3o(8z(1k[0])||8z(2w[0])?2w:y.8F(2w))},e6:E(){C B.2J(B.90)}});E 8z(2s){C!2s||!2s.1s||2s.1s.19===11}y.1c({1v:E(6){G 1v=6.1s;C 1v&&1v.19!==11?1v:U},dd:E(6){C y.2E(6,"1s")},dH:E(6,i,3t){C y.2E(6,"1s",3t)},7b:E(6){C y.4O(6,2,"4f")},dI:E(6){C y.4O(6,2,"5G")},dQ:E(6){C y.2E(6,"4f")},da:E(6){C y.2E(6,"5G")},dM:E(6,i,3t){C y.2E(6,"4f",3t)},d7:E(6,i,3t){C y.2E(6,"5G",3t)},dL:E(6){C y.8v(6.1s.1V,6)},d9:E(6){C y.8v(6.1V)},6F:E(6){C y.1g(6,"dB")?6.dD||6.eT.Y:y.2T(6.3p)}},E(J,fn){y.fn[J]=E(3t,P){G N=y.2Y(B,fn,3t);7(!cH.17(J)){P=3t}7(P&&1a P==="1S"){N=y.1x(P,N)}N=B.M>1?y.8F(N):N;7((B.M>1||cI.17(P))&&cF.17(J)){N=N.eL()}C B.3o(N,J,2i.1d(1H).5k(","))}});y.1T({1x:E(1A,1F,2K){7(2K){1A=":2K("+1A+")"}C y.2y.4N(1A,1F)},2E:E(6,2E,3t){G 8A=[],1i=6[2E];2b(1i&&1i.19!==9&&(3t===1e||1i.19!==1||!y(1i).5V(3t))){7(1i.19===1){8A.1D(1i)}1i=1i[2E]}C 8A},4O:E(1i,2d,2E,6){2d=2d||1;G 3Q=0;V(;1i;1i=1i[2E]){7(1i.19===1&&++3Q===2d){2L}}C 1i},8v:E(n,6){G r=[];V(;n;n=n.4f){7(n.19===1&&n!==6){r.1D(n)}}C r}});G 8W=/ y\\d+="(?:\\d+|U)"/g,6C=/^\\s+/,9W=/(<([\\w:]+)[^>]*?)\\/>/g,cR=/^(?:91|br|cO|8y|eW|f5|4b|8w|f6|6V)$/i,ah=/<([\\w:]+)/,cE=/<2z/i,cC=/<|&#?\\w+;/,aw=/<1y|<1P|<8y|<49|<18/i,as=/45\\s*(?:[^=]|=\\s*.45.)/i,a8=E(2w,cS,5A){C cR.17(5A)?2w:cS+"></"+5A+">"},3a={49:[1,"<2X 7P=\'7P\'>","</2X>"],eo:[1,"<cN>","</cN>"],dv:[1,"<2h>","</2h>"],5o:[2,"<2h><2z>","</2z></2h>"],4t:[3,"<2h><2z><5o>","</5o></2z></2h>"],cO:[2,"<2h><2z></2z><8L>","</8L></2h>"],91:[1,"<2Y>","</2Y>"],3N:[0,"",""]};3a.ey=3a.49;3a.2z=3a.eA=3a.8L=3a.ef=3a.dv;3a.eV=3a.4t;7(!y.1Q.dt){3a.3N=[1,"12<12>","</12>"]}y.fn.1T({1U:E(1U){7(y.1J(1U)){C B.1c(E(i){G 1t=y(B);1t.1U(1U.1d(B,i,1t.1U()))})}7(1a 1U!=="1P"&&1U!==1e){C B.5X().41((B[0]&&B[0].23||Y).6L(1U))}C y.1U(B)},7A:E(21){7(y.1J(21)){C B.1c(E(i){y(B).7A(21.1d(B,i))})}7(B[0]){G 4a=y(21,B[0].23).eq(0).6E(R);7(B[0].1s){4a.3P(B[0])}4a.2Y(E(){G 6=B;2b(6.1V&&6.1V.19===1){6=6.1V}C 6}).41(B)}C B},ds:E(21){7(y.1J(21)){C B.1c(E(i){y(B).ds(21.1d(B,i))})}C B.1c(E(){G 1t=y(B),6F=1t.6F();7(6F.M){6F.7A(21)}Q{1t.41(21)}})},4a:E(21){C B.1c(E(){y(B).7A(21)})},eP:E(){C B.1v().1c(E(){7(!y.1g(B,"1h")){y(B).6G(B.3p)}}).3y()},41:E(){C B.5y(1H,R,E(6){7(B.19===1){B.3M(6)}})},dr:E(){C B.5y(1H,R,E(6){7(B.19===1){B.3P(6,B.1V)}})},7C:E(){7(B[0]&&B[0].1s){C B.5y(1H,14,E(6){B.1s.3P(6,B)})}Q 7(1H.M){G 1k=y(1H[0]);1k.1D.28(1k,B.7z());C B.3o(1k,"7C",1H)}},ax:E(){7(B[0]&&B[0].1s){C B.5y(1H,14,E(6){B.1s.3P(6,B.4f)})}Q 7(1H.M){G 1k=B.3o(B,"ax",1H);1k.1D.28(1k,y(1H[0]).7z());C 1k}},2x:E(P,dq){V(G i=0,6;(6=B[i])!=U;i++){7(!P||y.1x(P,[6]).M){7(!dq&&6.19===1){y.6B(6.2N("*"));y.6B([6])}7(6.1s){6.1s.3j(6)}}}C B},5X:E(){V(G i=0,6;(6=B[i])!=U;i++){7(6.19===1){y.6B(6.2N("*"))}2b(6.1V){6.3j(6.1V)}}C B},6E:E(1C){G N=B.2Y(E(){7(!y.1Q.94&&!y.8X(B)){G 21=B.dA,23=B.23;7(!21){G 12=23.2v("12");12.3M(B.5z(R));21=12.3r}C y.a6([21.1B(8W,"").1B(/=([^="\'>\\s]+\\/)>/g,\'="$1">\').1B(6C,"")],23)[0]}Q{C B.5z(R)}});7(1C===R){8S(B,N);8S(B.2y("*"),N.2y("*"))}C N},21:E(O){7(O===1e){C B[0]&&B[0].19===1?B[0].3r.1B(8W,""):U}Q 7(1a O==="1S"&&!aw.17(O)&&(y.1Q.ad||!6C.17(O))&&!3a[(ah.27(O)||["",""])[1].2e()]){O=O.1B(9W,a8);2H{V(G i=0,l=B.M;i<l;i++){7(B[i].19===1){y.6B(B[i].2N("*"));B[i].3r=O}}}2I(e){B.5X().41(O)}}Q 7(y.1J(O)){B.1c(E(i){G 1t=y(B),26=1t.21();1t.5X().41(E(){C O.1d(B,i,26)})})}Q{B.5X().41(O)}C B},6G:E(O){7(B[0]&&B[0].1s){7(y.1J(O)){C B.1c(E(i){G 1t=y(B),26=1t.21();1t.6G(O.1d(B,i,26))})}7(1a O!=="1S"){O=y(O).di()}C B.1c(E(){G 7b=B.4f,1v=B.1s;y(B).2x();7(7b){y(7b).7C(O)}Q{y(1v).41(O)}})}Q{C B.3o(y(y.1J(O)?O():O),"6G",O)}},di:E(P){C B.2x(P,R)},5y:E(1O,2h,1m){G 1u,2m,O=1O[0],4d=[],2a,1v;7(!y.1Q.7v&&1H.M===3&&1a O==="1S"&&as.17(O)){C B.1c(E(){y(B).5y(1O,2h,1m,R)})}7(y.1J(O)){C B.1c(E(i){G 1t=y(B);1O[0]=O.1d(B,i,2h?1t.21():1e);1t.5y(1O,2h,1m)})}7(B[0]){1v=O&&O.1s;7(y.1Q.1s&&1v&&1v.19===11&&1v.3p.M===B.M){1u={2a:1v}}Q{1u=au(1O,B,4d)}2a=1u.2a;7(2a.3p.M===1){2m=2a=2a.1V}Q{2m=2a.1V}7(2m){2h=2h&&y.1g(2m,"5o");V(G i=0,l=B.M;i<l;i++){1m.1d(2h?34(B[i],2m):B[i],i>0||1u.5w||B.M>1?2a.5z(R):2a)}}7(4d.M){y.1c(4d,dh)}}C B;E 34(6,1i){C y.1g(6,"2h")?(6.2N("2z")[0]||6.3M(6.23.2v("2z"))):6}}});E 8S(30,N){G i=0;N.1c(E(){7(B.1g!==(30[i]&&30[i].1g)){C}G 8l=y.K(30[i++]),9Z=y.K(B,8l),1C=8l&&8l.1C;7(1C){39 9Z.25;9Z.1C={};V(G H 1M 1C){V(G 1G 1M 1C[H]){y.L.2J(B,H,1C[H][1G],1C[H][1G].K)}}}})}E au(1O,6j,4d){G 2a,5w,5N,2g=(6j&&6j[0]?6j[0].23||6j[0]:Y);7(1O.M===1&&1a 1O[0]==="1S"&&1O[0].M<e5&&2g===Y&&!aw.17(1O[0])&&(y.1Q.7v||!as.17(1O[0]))){5w=R;5N=y.ar[1O[0]];7(5N){7(5N!==1){2a=5N}}}7(!2a){2a=2g.do();y.a6(1O,2g,2a,4d)}7(5w){y.ar[1O[0]]=5N?2a:1}C{2a:2a,5w:5w}}y.ar={};y.1c({bU:"41",dz:"dr",3P:"7C",dJ:"ax",eO:"6G"},E(J,aE){y.fn[J]=E(P){G N=[],5E=y(P),1v=B.M===1&&B[0].1s;7(1v&&1v.19===11&&1v.3p.M===1&&5E.M===1){5E[aE](B[0]);C B}Q{V(G i=0,l=5E.M;i<l;i++){G 1F=(i>0?B.6E(R):B).5i();y.fn[aE].28(y(5E[i]),1F);N=N.7K(1F)}C B.3o(N,J,5E.P)}}});y.1T({a6:E(1F,T,2a,4d){T=T||Y;7(1a T.2v==="1e"){T=T.23||T[0]&&T[0].23||Y}G N=[];V(G i=0,6;(6=1F[i])!=U;i++){7(1a 6==="5s"){6+=""}7(!6){5v}7(1a 6==="1S"&&!cC.17(6)){6=T.6L(6)}Q 7(1a 6==="1S"){6=6.1B(9W,a8);G 5A=(ah.27(6)||["",""])[1].2e(),4a=3a[5A]||3a.3N,cA=4a[0],12=T.2v("12");12.3r=4a[1]+6+4a[2];2b(cA--){12=12.ai}7(!y.1Q.2z){G ak=cE.17(6),2z=5A==="2h"&&!ak?12.1V&&12.1V.3p:4a[1]==="<2h>"&&!ak?12.3p:[];V(G j=2z.M-1;j>=0;--j){7(y.1g(2z[j],"2z")&&!2z[j].3p.M){2z[j].1s.3j(2z[j])}}}7(!y.1Q.ad&&6C.17(6)){12.3P(T.6L(6C.27(6)[0]),12.1V)}6=12.3p}7(6.19){N.1D(6)}Q{N=y.5u(N,6)}}7(2a){V(G i=0;N[i];i++){7(4d&&y.1g(N[i],"1y")&&(!N[i].H||N[i].H.2e()==="1U/53")){4d.1D(N[i].1s?N[i].1s.3j(N[i]):N[i])}Q{7(N[i].19===1){N.3i.28(N,[i+1,0].7K(y.2T(N[i].2N("1y"))))}2a.3M(N[i])}}}C N},6B:E(1F){G K,1L,2r=y.2r,1Y=y.L.1Y,69=y.1Q.69;V(G i=0,6;(6=1F[i])!=U;i++){1L=6[y.2W];7(1L){K=2r[1L];7(K.1C){V(G H 1M K.1C){7(1Y[H]){y.L.2x(6,H)}Q{am(6,H,K.25)}}}7(69){39 6[y.2W]}Q 7(6.6w){6.6w(y.2W)}39 2r[1L]}}}});G d0=/z-?4s|e9-?go|2p|cX|gn-?35/i,aC=/d5\\([^)]*\\)/,a4=/2p=([^)]*)/,7c=/9Y/i,7t=/-([a-z])/gm,db=/([A-Z])/g,cV=/^-?\\d+(?:5r)?$/i,cU=/^-?\\d/,d6={36:"85",aM:"2Z",2f:"81"},dc=["cY","gu"],de=["cW","gs"],5K=Y.3k&&Y.3k.5K,7x=y.1Q.7R?"7R":"7x",7n=E(2w,d1){C d1.7Z()};y.fn.2R=E(J,O){C 7Q(B,J,O,R,E(6,J,O){7(O===1e){C y.2C(6,J)}7(1a O==="5s"&&!d0.17(J)){O+="5r"}y.18(6,J,O)})};y.1T({18:E(6,J,O){7(!6||6.19===3||6.19===8){C 1e}7((J==="2M"||J==="35")&&2A(O)<0){O=1e}G 18=6.18||6,1k=O!==1e;7(!y.1Q.2p&&J==="2p"){7(1k){18.cX=1;G 2p=a9(O,10)+""==="g7"?"":"d5(2p="+O*9U+")";G 1x=18.1x||y.2C(6,"1x")||"";18.1x=aC.17(1x)?1x.1B(aC,2p):2p}C 18.1x&&18.1x.2o("2p=")>=0?(2A(a4.27(18.1x)[1])/9U)+"":""}7(7c.17(J)){J=7x}J=J.1B(7t,7n);7(1k){18[J]=O}C 18[J]},2R:E(6,J,5P,3G){7(J==="2M"||J==="35"){G 1j,3x=d6,58=J==="2M"?dc:de;E a3(){1j=J==="2M"?6.7k:6.cK;7(3G==="5C"){C}y.1c(58,E(){7(!3G){1j-=2A(y.2C(6,"8m"+B,R))||0}7(3G==="4G"){1j+=2A(y.2C(6,"4G"+B,R))||0}Q{1j-=2A(y.2C(6,"5C"+B+"cM",R))||0}})}7(6.7k!==0){a3()}Q{y.cD(6,3x,a3)}C 4C.4Z(0,4C.gg(1j))}C y.2C(6,J,5P)},2C:E(6,J,5P){G N,18=6.18,1x;7(!y.1Q.2p&&J==="2p"&&6.4r){N=a4.17(6.4r.1x||"")?(2A(6s.$1)/9U)+"":"";C N===""?"1":N}7(7c.17(J)){J=7x}7(!5P&&18&&18[J]){N=18[J]}Q 7(5K){7(7c.17(J)){J="9Y"}J=J.1B(db,"-$1").2e();G 3k=6.23.3k;7(!3k){C U}G 3R=3k.5K(6,U);7(3R){N=3R.gC(J)}7(J==="2p"&&N===""){N="1"}}Q 7(6.4r){G a2=J.1B(7t,7n);N=6.4r[J]||6.4r[a2];7(!cV.17(N)&&cU.17(N)){G 1o=18.1o,cB=6.af.1o;6.af.1o=6.4r.1o;18.1o=a2==="gH"?"fs":(N||0);N=18.fp+"5r";18.1o=1o;6.af.1o=cB}}C N},cD:E(6,1f,1m){G 26={};V(G J 1M 1f){26[J]=6.18[J];6.18[J]=1f[J]}1m.1d(6);V(G J 1M 1f){6.18[J]=26[J]}}});7(y.1A&&y.1A.3S){y.1A.3S.2Z=E(6){G 2M=6.7k,35=6.cK,9X=6.1g.2e()==="5o";C 2M===0&&35===0&&!9X?R:2M>0&&35>0&&!9X?14:y.2C(6,"2f")==="4R"};y.1A.3S.co=E(6){C!y.1A.3S.2Z(6)}}G bj=2Q(),b5=/<1y(.|\\s)*?\\/1y>/gi,b0=/2X|6K/i,aV=/cL|fj|fX|fW|2Z|fS|5s|6p|fR|fI|fH|1U|4Y|1n|fL/i,5g=/=\\?(&|$)/,8i=/\\?/,bo=/(\\?|&)8h=.*?(&|$)/,cz=/^(\\w+:)?\\/\\/([^\\/?#]+)/,bz=/%20/g,b2=y.fn.7Y;y.fn.1T({7Y:E(1n,48,1m){7(1a 1n!=="1S"){C b2.1d(B,1n)}Q 7(!B.M){C B}G 6A=1n.2o(" ");7(6A>=0){G P=1n.2i(6A,1n.M);1n=1n.2i(0,6A)}G H="5h";7(48){7(y.1J(48)){1m=48;48=U}Q 7(1a 48==="1P"){48=y.6V(48,y.6Q.4w);H="av"}}G 1t=B;y.6N({1n:1n,H:H,38:"21",K:48,2F:E(6H,2k){7(2k==="3s"||2k==="aA"){1t.21(P?y("<12 />").41(6H.7W.1B(b5,"")).2y(P):6H.7W)}7(1m){1t.1c(1m,[6H.7W,2k,6H])}}});C B},fQ:E(){C y.6V(B.b6())},b6:E(){C B.2Y(E(){C B.5n?y.2T(B.5n):B}).1x(E(){C B.J&&!B.8n&&(B.45||b0.17(B.1g)||aV.17(B.H))}).2Y(E(i,6){G 1j=y(B).1j();C 1j==U?U:y.3b(1j)?y.2Y(1j,E(1j,i){C{J:6.J,O:1j}}):{J:6.J,O:1j}}).5i()}});y.1c("bn ag aJ cc aI aO".3m(" "),E(i,o){y.fn[o]=E(f){C B.aD(o,f)}});y.1T({5i:E(1n,K,1m,H){7(y.1J(K)){H=H||1m;1m=K;K=U}C y.6N({H:"5h",1n:1n,K:K,3s:1m,38:H})},g0:E(1n,1m){C y.5i(1n,U,1m,"1y")},g1:E(1n,K,1m){C y.5i(1n,K,1m,"56")},g2:E(1n,K,1m,H){7(y.1J(K)){H=H||1m;1m=K;K={}}C y.6N({H:"av",1n:1n,K:K,3s:1m,38:H})},fZ:E(aX){y.1T(y.6Q,aX)},6Q:{1n:6Z.3F,3I:R,H:"5h",ab:"82/x-fU-3T-fV",bk:R,5c:R,1b:1E.ae&&(1E.6Z.aB!=="6X:"||!1E.b8)?E(){C 3w 1E.ae()}:E(){2H{C 3w 1E.b8("fE.fD")}2I(e){}},8a:{4v:"82/4v, 1U/4v",21:"1U/21",1y:"1U/53, 82/53",56:"82/56, 1U/53",1U:"1U/fh",3N:"*/*"}},4U:{},4V:{},6N:E(5B){G s=y.1T(R,{},y.6Q,5B);G 37,2k,K,8k=5B&&5B.T||s,H=s.H.7Z();7(s.K&&s.bk&&1a s.K!=="1S"){s.K=y.6V(s.K,s.4w)}7(s.38==="37"){7(H==="5h"){7(!5g.17(s.1n)){s.1n+=(8i.17(s.1n)?"&":"?")+(s.37||"1m")+"=?"}}Q 7(!s.K||!5g.17(s.K)){s.K=(s.K?s.K+"&":"")+(s.37||"1m")+"=?"}s.38="56"}7(s.38==="56"&&(s.K&&5g.17(s.K)||5g.17(s.1n))){37=s.fk||("37"+bj++);7(s.K){s.K=(s.K+"").1B(5g,"="+37+"$1")}s.1n=s.1n.1B(5g,"="+37+"$1");s.38="1y";1E[37]=1E[37]||E(6m){K=6m;3s();2F();1E[37]=1e;2H{39 1E[37]}2I(e){}7(3l){3l.3j(1y)}}}7(s.38==="1y"&&s.2r===U){s.2r=14}7(s.2r===14&&H==="5h"){G a1=2Q();G N=s.1n.1B(bo,"$fa="+a1+"$2");s.1n=N+((N===s.1n)?(8i.17(s.1n)?"&":"?")+"8h="+a1:"")}7(s.K&&H==="5h"){s.1n+=(8i.17(s.1n)?"&":"?")+s.K}7(s.3I&&!y.8q++){y.L.2t("bn")}G 1l=cz.27(s.1n),aa=1l&&(1l[1]&&1l[1]!==6Z.aB||1l[2]!==6Z.fC);7(s.38==="1y"&&H==="5h"&&aa){G 3l=Y.2N("3l")[0]||Y.2j;G 1y=Y.2v("1y");1y.2O=s.1n;7(s.ba){1y.fv=s.ba}7(!37){G 40=14;1y.aj=1y.3H=E(){7(!40&&(!B.5q||B.5q==="fu"||B.5q==="2F")){40=R;3s();2F();1y.aj=1y.3H=U;7(3l&&1y.1s){3l.3j(1y)}}}}3l.3P(1y,3l.1V);C 1e}G 5Q=14;G 1b=s.1b();7(!1b){C}7(s.bc){1b.bd(H,s.1n,s.5c,s.bc,s.6p)}Q{1b.bd(H,s.1n,s.5c)}2H{7(s.K||5B&&5B.ab){1b.76("ft-g4",s.ab)}7(s.aF){7(y.4U[s.1n]){1b.76("bp-c5-gz",y.4U[s.1n])}7(y.4V[s.1n]){1b.76("bp-gA-gB",y.4V[s.1n])}}7(!aa){1b.76("X-gG-gD","ae")}1b.76("gd",s.38&&s.8a[s.38]?s.8a[s.38]+", */*":s.8a.3N)}2I(e){}7(s.aP&&s.aP.1d(8k,1b,s)===14){7(s.3I&&!--y.8q){y.L.2t("ag")}1b.6d();C 14}7(s.3I){2t("aO",[1b,s])}G 3H=1b.3H=E(75){7(!1b||1b.5q===0||75==="6d"){7(!5Q){2F()}5Q=R;7(1b){1b.3H=y.6x}}Q 7(!5Q&&1b&&(1b.5q===4||75==="5e")){5Q=R;1b.3H=y.6x;2k=75==="5e"?"5e":!y.c8(1b)?"2U":s.aF&&y.c3(1b,s.1n)?"aA":"3s";G an;7(2k==="3s"){2H{K=y.cu(1b,s.38,s)}2I(aS){2k="a7";an=aS}}7(2k==="3s"||2k==="aA"){7(!37){3s()}}Q{y.at(s,1b,2k,an)}2F();7(75==="5e"){1b.6d()}7(s.5c){1b=U}}};2H{G aQ=1b.6d;1b.6d=E(){7(1b){aQ.1d(1b)}3H("6d")}}2I(e){}7(s.5c&&s.5e>0){83(E(){7(1b&&!5Q){3H("5e")}},s.5e)}2H{1b.g6(H==="av"||H==="g8"||H==="g9"?s.K:U)}2I(e){y.at(s,1b,U,e);2F()}7(!s.5c){3H()}E 3s(){7(s.3s){s.3s.1d(8k,K,2k,1b)}7(s.3I){2t("aI",[1b,s])}}E 2F(){7(s.2F){s.2F.1d(8k,1b,2k)}7(s.3I){2t("aJ",[1b,s])}7(s.3I&&!--y.8q){y.L.2t("ag")}}E 2t(H,1O){(s.T?y(s.T):y.L).2t(H,1O)}C 1b},at:E(s,1b,2k,e){7(s.2U){s.2U.1d(s.T||s,1b,2k,e)}7(s.3I){(s.T?y(s.T):y.L).2t("cc",[1b,s,e])}},8q:0,c8:E(1b){2H{C!1b.2k&&6Z.aB==="6X:"||(1b.2k>=b1&&1b.2k<e3)||1b.2k===cg||1b.2k===eb||1b.2k===0}2I(e){}C 14},c3:E(1b,1n){G 4U=1b.ac("dS-c5"),4V=1b.ac("dE");7(4U){y.4U[1n]=4U}7(4V){y.4V[1n]=4V}C 1b.2k===cg||1b.2k===0},cu:E(1b,H,s){G ct=1b.ac("ec-H")||"",4v=H==="4v"||!H&&ct.2o("4v")>=0,K=4v?1b.eJ:1b.7W;7(4v&&K.2j.1g==="a7"){y.2U("a7")}7(s&&s.bD){K=s.bD(K,H)}7(1a K==="1S"){7(H==="56"||!H&&ct.2o("56")>=0){K=y.bG(K)}Q 7(H==="1y"||!H&&ct.2o("53")>=0){y.9V(K)}}C K},6V:E(a,4w){G s=[];7(4w===1e){4w=y.6Q.4w}7(y.3b(a)||a.6P){y.1c(a,E(){2J(B.J,B.O)})}Q{V(G 4g 1M a){7S(4g,a[4g])}}C s.5k("&").1B(bz,"+");E 7S(4g,29){7(y.3b(29)){y.1c(29,E(i,v){7(4w||/\\[\\]$/.17(4g)){2J(4g,v)}Q{7S(4g+"["+(1a v==="1P"||y.3b(v)?i:"")+"]",v)}})}Q 7(!4w&&29!=U&&1a 29==="1P"){y.1c(29,E(k,v){7S(4g+"["+k+"]",v)})}Q{2J(4g,29)}}E 2J(22,O){O=y.1J(O)?O():O;s[s.M]=bv(22)+"="+bv(O)}}});G 7I={},bM=/5p|3h|3e/,by=/^([+-]=)?([\\d+-.]+)(.*)$/,78,9H=[["35","7w","eS","ev","et"],["2M","8r","eh","bH","f4"],["2p"]];y.fn.1T({3h:E(2l,1m){7(2l||2l===0){C B.5I(51("3h",3),2l,1m)}Q{V(G i=0,l=B.M;i<l;i++){G 26=y.K(B[i],"5R");B[i].18.2f=26||"";7(y.2R(B[i],"2f")==="4R"){G 1g=B[i].1g,2f;7(7I[1g]){2f=7I[1g]}Q{G 6=y("<"+1g+" />").bU("1h");2f=6.2R("2f");7(2f==="4R"){2f="81"}6.2x();7I[1g]=2f}y.K(B[i],"5R",2f)}}V(G j=0,k=B.M;j<k;j++){B[j].18.2f=y.K(B[j],"5R")||""}C B}},3e:E(2l,1m){7(2l||2l===0){C B.5I(51("3e",3),2l,1m)}Q{V(G i=0,l=B.M;i<l;i++){G 26=y.K(B[i],"5R");7(!26&&26!=="4R"){y.K(B[i],"5R",y.2R(B[i],"2f"))}}V(G j=0,k=B.M;j<k;j++){B[j].18.2f="4R"}C B}},bQ:y.fn.5p,5p:E(fn,ay){G aq=1a fn==="7G";7(y.1J(fn)&&y.1J(ay)){B.bQ.28(B,1H)}Q 7(fn==U||aq){B.1c(E(){G 43=aq?fn:y(B).5V(":2Z");y(B)[43?"3h":"3e"]()})}Q{B.5I(51("5p",3),fn,ay)}C B},dO:E(2l,7j,1m){C B.1x(":2Z").2R("2p",0).3h().3y().5I({2p:7j},2l,1m)},5I:E(1q,2l,3c,1m){G 7N=y.2l(2l,3c,1m);7(y.7a(1q)){C B.1c(7N.2F)}C B[7N.2G===14?"1c":"2G"](E(){G 2u=y.1T({},7N),p,2Z=B.19===1&&y(B).5V(":2Z"),1t=B;V(p 1M 1q){G J=p.1B(7t,7n);7(p!==J){1q[J]=1q[p];39 1q[p];p=J}7(1q[p]==="3e"&&2Z||1q[p]==="3h"&&!2Z){C 2u.2F.1d(B)}7((p==="35"||p==="2M")&&B.18){2u.2f=y.2R(B,"2f");2u.4u=B.18.4u}7(y.3b(1q[p])){(2u.68=2u.68||{})[p]=1q[p][1];1q[p]=1q[p][0]}}7(2u.4u!=U){B.18.4u="2Z"}2u.77=y.1T({},1q);y.1c(1q,E(J,1j){G e=3w y.fx(1t,2u,J);7(bM.17(1j)){e[1j==="5p"?2Z?"3h":"3e":1j](1q)}Q{G 1l=by.27(1j),3D=e.1i(R)||0;7(1l){G 3y=2A(1l[2]),42=1l[3]||"5r";7(42!=="5r"){1t.18[J]=(3y||1)+42;3D=((3y||1)/e.1i(R))*3D;1t.18[J]=3D+42}7(1l[1]){3y=((1l[1]==="-="?-1:1)*3y)+3D}e.6I(3D,3y,42)}Q{e.6I(3D,1j,"")}}});C R})},6g:E(az,5a){G 2S=y.2S;7(az){B.2G([])}B.1c(E(){V(G i=2S.M-1;i>=0;i--){7(2S[i].6===B){7(5a){2S[i](R)}2S.3i(i,1)}}});7(!5a){B.4P()}C B}});y.1c({gc:51("3h",1),fq:51("3e",1),fT:51("5p",1),fG:{2p:"3h"},fN:{2p:"3e"}},E(J,3x){y.fn[J]=E(2l,1m){C B.5I(3x,2l,1m)}});y.1T({2l:E(2l,3c,fn){G 2u=2l&&1a 2l==="1P"?2l:{2F:fn||!fn&&3c||y.1J(2l)&&2l,4Q:2l,3c:fn&&3c||3c&&!y.1J(3c)&&3c};2u.4Q=y.fx.6A?0:1a 2u.4Q==="5s"?2u.4Q:y.fx.8d[2u.4Q]||y.fx.8d.3N;2u.26=2u.2F;2u.2F=E(){7(2u.2G!==14){y(B).4P()}7(y.1J(2u.26)){2u.26.1d(B)}};C 2u},3c:{ca:E(p,n,7T,4S){C 7T+4S*p},9p:E(p,n,7T,4S){C((-4C.eM(p*4C.ez)/2)+0.5)*4S+7T}},2S:[],fx:E(6,1f,1q){B.1f=1f;B.6=6;B.1q=1q;7(!1f.30){1f.30={}}}});y.fx.31={8t:E(){7(B.1f.4X){B.1f.4X.1d(B.6,B.2Q,B)}(y.fx.4X[B.1q]||y.fx.4X.3N)(B);7((B.1q==="35"||B.1q==="2M")&&B.6.18){B.6.18.2f="81"}},1i:E(5P){7(B.6[B.1q]!=U&&(!B.6.18||B.6.18[B.1q]==U)){C B.6[B.1q]}G r=2A(y.2R(B.6,B.1q,5P));C r&&r>-gk?r:2A(y.2C(B.6,B.1q))||0},6I:E(d8,7j,42){B.8I=2Q();B.3D=d8;B.3y=7j;B.42=42||B.42||"5r";B.2Q=B.3D;B.3q=B.43=0;G 1t=B;E t(5a){C 1t.4X(5a)}t.6=B.6;7(t()&&y.2S.1D(t)&&!78){78=6J(y.fx.bJ,13)}},3h:E(){B.1f.30[B.1q]=y.18(B.6,B.1q);B.1f.3h=R;B.6I(B.1q==="2M"||B.1q==="35"?1:0,B.1i());y(B.6).3h()},3e:E(){B.1f.30[B.1q]=y.18(B.6,B.1q);B.1f.3e=R;B.6I(B.1i(),0)},4X:E(5a){G t=2Q(),40=R;7(5a||t>=B.1f.4Q+B.8I){B.2Q=B.3y;B.3q=B.43=1;B.8t();B.1f.77[B.1q]=R;V(G i 1M B.1f.77){7(B.1f.77[i]!==R){40=14}}7(40){7(B.1f.2f!=U){B.6.18.4u=B.1f.4u;G 26=y.K(B.6,"5R");B.6.18.2f=26?26:B.1f.2f;7(y.2R(B.6,"2f")==="4R"){B.6.18.2f="81"}}7(B.1f.3e){y(B.6).3e()}7(B.1f.3e||B.1f.3h){V(G p 1M B.1f.77){y.18(B.6,p,B.1f.30[p])}}B.1f.2F.1d(B.6)}C 14}Q{G n=t-B.8I;B.43=n/B.1f.4Q;G 68=B.1f.68&&B.1f.68[B.1q];G bA=B.1f.3c||(y.3c.9p?"9p":"ca");B.3q=y.3c[68||bA](B.43,n,0,1,B.1f.4Q);B.2Q=B.3D+((B.3y-B.3D)*B.3q);B.8t()}C R}};y.1T(y.fx,{bJ:E(){G 2S=y.2S;V(G i=0;i<2S.M;i++){7(!2S[i]()){2S.3i(i--,1)}}7(!2S.M){y.fx.6g()}},6g:E(){gf(78);78=U},8d:{fw:fg,fi:b1,3N:fO},4X:{2p:E(fx){y.18(fx.6,"2p",fx.2Q)},3N:E(fx){7(fx.6.18&&fx.6.18[fx.1q]!=U){fx.6.18[fx.1q]=(fx.1q==="2M"||fx.1q==="35"?4C.4Z(0,fx.2Q):fx.2Q)+fx.42}Q{fx.6[fx.1q]=fx.2Q}}}});7(y.1A&&y.1A.3S){y.1A.3S.e8=E(6){C y.6f(y.2S,E(fn){C 6===fn.6}).M}}E 51(H,3Q){G 29={};y.1c(9H.7K.28([],9H.2i(0,3Q)),E(){29[B]=H});C 29}7("bK"1M Y.2j){y.fn.24=E(1f){G 6=B[0];7(1f){C B.1c(E(i){y.24.a0(B,1f,i)})}7(!6||!6.23){C U}7(6===6.23.1h){C y.24.al(6)}G ao=6.bK(),2g=6.23,1h=2g.1h,4l=2g.2j,5F=4l.5F||1h.5F||0,5M=4l.5M||1h.5M||0,1R=ao.1R+(1t.d4||y.1Q.6a&&4l.4J||1h.4J)-5F,1o=ao.1o+(1t.9O||y.1Q.6a&&4l.4H||1h.4H)-5M;C{1R:1R,1o:1o}}}Q{y.fn.24=E(1f){G 6=B[0];7(1f){C B.1c(E(i){y.24.a0(B,1f,i)})}7(!6||!6.23){C U}7(6===6.23.1h){C y.24.al(6)}y.24.7B();G 2q=6.2q,bY=6,2g=6.23,3R,4l=2g.2j,1h=2g.1h,3k=2g.3k,6h=3k?3k.5K(6,U):6.4r,1R=6.3W,1o=6.7D;2b((6=6.1s)&&6!==1h&&6!==4l){7(y.24.ap&&6h.36==="a5"){2L}3R=3k?3k.5K(6,U):6.4r;1R-=6.4J;1o-=6.4H;7(6===2q){1R+=6.3W;1o+=6.7D;7(y.24.aT&&!(y.24.bh&&/^t(eB|d|h)$/i.17(6.1g))){1R+=2A(3R.8s)||0;1o+=2A(3R.8H)||0}bY=2q,2q=6.2q}7(y.24.b7&&3R.4u!=="co"){1R+=2A(3R.8s)||0;1o+=2A(3R.8H)||0}6h=3R}7(6h.36==="3U"||6h.36==="8u"){1R+=1h.3W;1o+=1h.7D}7(y.24.ap&&6h.36==="a5"){1R+=4C.4Z(4l.4J,1h.4J);1o+=4C.4Z(4l.4H,1h.4H)}C{1R:1R,1o:1o}}}y.24={7B:E(){G 1h=Y.1h,57=Y.2v("12"),54,3O,2h,4t,cP=2A(y.2C(1h,"7w",R))||0,21="<12 18=\'36:85;1R:0;1o:0;4G:0;5C:c7 cb #c9;8m:0;2M:5d;35:5d;\'><12></12></12><2h 18=\'36:85;1R:0;1o:0;4G:0;5C:c7 cb #c9;8m:0;2M:5d;35:5d;\' gq=\'0\' cy=\'0\'><5o><4t></4t></5o></2h>";y.1T(57.18,{36:"85",1R:0,1o:0,4G:0,5C:0,2M:"5d",35:"5d",aM:"2Z"});57.3r=21;1h.3P(57,1h.1V);54=57.1V;3O=54.1V;4t=54.4f.1V.1V;B.aT=(3O.3W!==5);B.bh=(4t.3W===5);3O.18.36="a5",3O.18.1R="ff";B.ap=(3O.3W===20||3O.3W===15);3O.18.36=3O.18.1R="";54.18.4u="2Z",54.18.36="3U";B.b7=(3O.3W===-5);B.cZ=(1h.3W!==cP);1h.3j(57);1h=57=54=3O=2h=4t=U;y.24.7B=y.6x},al:E(1h){G 1R=1h.3W,1o=1h.7D;y.24.7B();7(y.24.cZ){1R+=2A(y.2C(1h,"7w",R))||0;1o+=2A(y.2C(1h,"8r",R))||0}C{1R:1R,1o:1o}},a0:E(6,1f,i){7(/8u/.17(y.2C(6,"36"))){6.18.36="3U"}G 8V=y(6),7J=8V.24(),df=a9(y.2C(6,"1R",R),10)||0,dw=a9(y.2C(6,"1o",R),10)||0;7(y.1J(1f)){1f=1f.1d(6,i,7J)}G 3x={1R:(1f.1R-7J.1R)+df,1o:(1f.1o-7J.1o)+dw};7("dj"1M 1f){1f.dj.1d(6,3x)}Q{8V.2R(3x)}}};y.fn.1T({36:E(){7(!B[0]){C U}G 6=B[0],2q=B.2q(),24=B.24(),6r=/^1h|21$/i.17(2q[0].1g)?{1R:0,1o:0}:2q.24();24.1R-=2A(y.2C(6,"7w",R))||0;24.1o-=2A(y.2C(6,"8r",R))||0;6r.1R+=2A(y.2C(2q[0],"8s",R))||0;6r.1o+=2A(y.2C(2q[0],"8H",R))||0;C{1R:24.1R-6r.1R,1o:24.1o-6r.1o}},2q:E(){C B.2Y(E(){G 2q=B.2q||Y.1h;2b(2q&&(!/^1h|21$/i.17(2q.1g)&&y.2R(2q,"36")==="8u")){2q=2q.2q}C 2q})}});y.1c(["cY","cW"],E(i,J){G 66="7d"+J;y.fn[66]=E(1j){G 6=B[0],3z;7(!6){C U}7(1j!==1e){C B.1c(E(){3z=99(B);7(3z){3z.8U(!i?1j:y(3z).4H(),i?1j:y(3z).4J())}Q{B[66]=1j}})}Q{3z=99(6);C 3z?("9O"1M 3z)?3z[i?"d4":"9O"]:y.1Q.6a&&3z.Y.2j[66]||3z.Y.1h[66]:6[66]}}});E 99(6){C("8U"1M 6&&6.Y)?6:6.19===9?6.3k||6.ge:14}y.1c(["gE","cM"],E(i,J){G H=J.2e();y.fn["g3"+J]=E(){C B[0]?y.2R(B[0],H,14,"8m"):U};y.fn["fF"+J]=E(4G){C B[0]?y.2R(B[0],H,14,4G?"4G":"5C"):U};y.fn[H]=E(4o){G 6=B[0];7(!6){C 4o==U?U:B}7(y.1J(4o)){C B.1c(E(i){G 1t=y(B);1t[H](4o.1d(B,i,1t[H]()))})}C("8U"1M 6&&6.Y)?6.Y.gy==="gF"&&6.Y.2j["8K"+J]||6.Y.1h["8K"+J]:(6.19===9)?4C.4Z(6.2j["8K"+J],6.1h["7d"+J],6.2j["7d"+J],6.1h["24"+J],6.2j["24"+J]):4o===1e?y.2R(6,H):B.2R(H,1a 4o==="1S"?4o:4o+"5r")}});1E.y=1E.$=y})(1E);',62,1036,'||||||elem|if|||||||||||||||||||||||||||jQuery|||this|return||function||var|type|match|name|data|event|length|ret|value|selector|else|true||context|null|for|||document||||div||false|||test|style|nodeType|typeof|xhr|each|call|undefined|options|nodeName|body|cur|val|set|parts|callback|url|left|handleObj|prop|checkSet|parentNode|self|results|parent|Expr|filter|script|target|expr|replace|events|push|window|elems|handler|arguments|array|isFunction|Sizzle|id|in|className|args|object|support|top|string|extend|text|firstChild|namespaces|types|special|part||html|key|ownerDocument|offset|handle|old|exec|apply|obj|fragment|while|isXML|result|toLowerCase|display|doc|table|slice|documentElement|status|speed|first||indexOf|opacity|offsetParent|cache|node|trigger|opt|createElement|all|remove|find|tbody|parseFloat|guid|curCSS|proxy|dir|complete|queue|try|catch|add|not|break|width|getElementsByTagName|src|curLoop|now|css|timers|makeArray|error|live|expando|select|map|hidden|orig|prototype||elemData|root|height|position|jsonp|dataType|delete|wrapMap|isArray|easing|eventHandle|hide|doneName|selectors|show|splice|removeChild|defaultView|head|split|getAttribute|pushStack|childNodes|pos|innerHTML|success|until|namespace|check|new|props|end|win|button|ready|attr|start|qualifier|href|extra|onreadystatechange|global|handlers|inplace|eventType|appendChild|_default|checkDiv|insertBefore|num|computedStyle|filters|form|relative|thisCache|offsetTop|attachEvent|Array|copy|done|append|unit|state|on|checked|ID|hasDuplicate|params|option|wrap|input|toString|scripts|class|nextSibling|prefix|one|fix|DOMContentLoaded|classNames|docElem|origType|pop|size|shift|addEventListener|currentStyle|index|td|overflow|xml|traditional|seed|teardown|preventDefault|click|setup|Math|ua|browser|pass|margin|scrollLeft|contains|scrollTop|last|radio|submit|matches|nth|dequeue|duration|none|diff|stopPropagation|lastModified|etag|Event|step|time|max|getAttributeNode|genFx|compareDocumentPosition|javascript|innerDiv||json|container|which|checkbox|gotoEnd|anyFound|async|1px|timeout|sort|jsre|GET|get|isPartStr|join|selected|selectedIndex|elements|tr|toggle|readyState|px|number|inArray|merge|continue|cacheable|POS|domManip|cloneNode|tag|origSettings|border|keyCode|insert|clientTop|previousSibling|sourceIndex|animate|second|getComputedStyle|checkFn|clientLeft|cacheresults|found|force|requestDone|olddisplay|readyList|u00c0|deep|is|uFFFF|empty|originalEvent|mouseleave|nodeCheck|preType|values|sortOrder|eventName|sizcache|method|rnamespaces|specialEasing|deleteExpando|boxModel|TAG|getElementById|abort|mouseenter|grep|stop|prevComputedStyle|related|nodes|change|relatedTarget|tmp|contextXML|currentTarget|password|focusout|parentOffset|RegExp|getElementsByClassName|CLASS|unbind|removeAttribute|noop|keep|PSEUDO|off|cleanData|rleadingWhitespace|closest|clone|contents|replaceWith|res|custom|setInterval|textarea|createTextNode|item|ajax|testChange|jquery|ajaxSettings|isReady|rootjQuery|thisObject|browserMatch|param|stateVal|file|charCode|location|noData|removeData|notxml|handleObjIn|hasOwnProperty|isTimeout|setRequestHeader|curAnim|timerId|lastToggle|isEmptyObject|next|rfloat|scroll|nodeValue|attributeNode|oldSizzle|querySelectorAll|order|to|offsetWidth|fromElement|substr|fcamelCase|case|CHILD|leftMatch|source|bRange|rdashAlpha|aRange|checkClone|marginTop|styleFloat|sizset|toArray|wrapAll|initialize|before|offsetLeft|version|isPlainObject|boolean|JSON|elemdisplay|curOffset|concat|isSupported|trim|optall|rspace|multiple|access|cssFloat|buildParams|firstNum|odd|getText|responseText|attrHandle|load|toUpperCase|Object|block|application|setTimeout|returnTrue|absolute|msg|returnFalse|attrFn|formElems|accepts|delegate|triggerHandler|speeds|blur|focus|changeFilters|_|rquery|removeEventListener|callbackContext|oldData|padding|disabled|chunker|even|active|marginLeft|borderTopWidth|update|static|sibling|link|mouseover|embed|isDisconnected|matched|getVal|triggered|metaKey|userAgent|unique|mouseout|borderLeftWidth|startTime|isObj|client|colgroup|liveHandler|pageX|nodeIndex|readyBound|fnOver|liveMap|cloneCopyEvent|init|scrollTo|curElem|rinlinejQuery|isXMLDoc|clientX|constructor|prevObject|area|image|toplevel|noCloneEvent|liveConvert|ATTR|focusin|_change_data|getWindow||addClass|removeClass|rclass|preFilter|isPropagationStopped|setClass|posProcess|attrMap|isImmediatePropagationStopped|isDefaultPrevented|dirCheck|origSelector|isPartStrNotTag|detachEvent|swing|isTag|NAME|dirNodeCheck|rradiocheck|tabIndex|later|withinElement|soFar|bindReady|eventSupported|windowData|unshift|onclick|query|ctrlKey|doScrollCheck|scriptEval|fxAttrs|targets|uniqueSort|prune|baseHasDuplicate|tmpSet|onbeforeunload|pageXOffset|inprogress|specialSubmit|filtered|createRange|winnow|100|globalEval|rxhtmlTag|skip|float|curData|setOffset|ts|camelCase|getWH|ropacity|fixed|clean|parsererror|fcloseTag|parseInt|remote|contentType|getResponseHeader|leadingWhitespace|XMLHttpRequest|runtimeStyle|ajaxStop|rtagName|lastChild|onload|hasBody|bodyOffset|removeEvent|errMsg|box|supportsFixedPosition|bool|fragments|rchecked|handleError|buildFragment|POST|rnocache|after|fn2|clearQueue|notmodified|protocol|ralpha|bind|original|ifModified|specialChange|fnOut|ajaxSuccess|ajaxComplete|die|submitBubbles|visibility|changeBubbles|ajaxSend|beforeSend|oldAbort|readOnly|err|doesNotAddBorder|getElementsByName|rinput|htmlFor|settings|isXMLFilter|throw|rselectTextarea|200|_load|lt|reset|rscript|serializeArray|subtractsBorderForOverflowNotVisible|ActiveXObject|origContext|scriptCharset|origHandler|username|open||hover|liveFired|doesAddBorderForTableAndCells|unload|jsc|processData|keypress|keydown|ajaxStart|rts|If|exclusive||red|fireEvent|uuid|encodeURIComponent|doScroll|webkit|rfxnum|r20|defaultEasing|__className__|hasClass|dataFilter|isBool|toggleClass|parseJSON|paddingLeft|uaMatch|tick|getBoundingClientRect|_jQuery|rfxtypes|rsingleTag|u00A0|quickExpr|_toggle|parse|inv|arg|appendTo|rtrim|Function|rnotwhite|prevOffsetParent|checkOn|textContent|srcElement|toElement|httpNotModified|isClick|Modified|bubbling|5px|httpSuccess|000|linear|solid|ajaxError|pageY|clientY|fcleanup|304||rtype|specified|optSelected||rspecialurl|rreturn|visible|rfocusable|rclickable|nm|frameElement||httpData|hrefNormalized|cssText|setAttribute|cellspacing|rurl|depth|rsLeft|rhtml|swap|rtbody|rparentsprev|TEST|runtil|rmultiselector|Date|offsetHeight|color|Width|fieldset|col|bodyMarginTop|setStart|rselfClosing|front|setEnd|rnum|rnumpx|Top|zoom|Left|doesNotIncludeMarginInBodyOffset|rexclude|letter|has|isSimple|pageYOffset|alpha|cssShow|prevUntil|from|children|prevAll|rupper|cssWidth|parents|cssHeight|curTop|getTime|evalScript|detach|using|expression|setFilters|only||createDocumentFragment|count|keepData|prepend|wrapInner|htmlSerialize|unrecognized|thead|curLeft|origPOS|Syntax|prependTo|outerHTML|iframe|relatedNode|contentDocument|Etag|prevValue|charAt|parentsUntil|prev|insertAfter|screenY|siblings|nextUntil|screenX|fadeTo|noConflict|nextAll|shiftKey|Last|bubbles|attrName|attrChange|navigator|newValue|cancelable|layerX|eventPhase|detail|altKey|300|offsetY|512|andSelf|layerY|animated|font|offsetX|1223|content|originalTarget|isPrototypeOf|caption|colSpan|marginRight|colspan|rowSpan|tabindex||usemap|applet|legend|frameBorder||frameborder|useMap|paddingBottom|rowspan|paddingTop|radiotest|safari|optgroup|PI|tfoot|able|cellSpacing|maxLength||maxlength|readonly|rv|getData|responseXML|Invalid|reverse|cos|attributes|replaceAll|unwrap|property|can|marginBottom|contentWindow|bfnrt|th|hr|view|delay|compatible|setData|mozilla|removeAttr|msie|paddingRight|img|meta|opera|changed|wheelDelta|1_|keyup|compareBoundaryPoints|Range|mousemove|20px|600|plain|fast|date|jsonpCallback|onunload|mouseup||mousedown|pixelLeft|slideUp|createComment|1em|Content|loaded|charset|slow||dblclick|innerText||resize|host|XMLHTTP|Microsoft|outer|fadeIn|tel|search|0n|enabled|week|switch|fadeOut|400|header|serialize|range|month|slideToggle|www|urlencoded|email|datetime|child|ajaxSetup|getScript|getJSON|post|inner|Type|START_TO_END|send|NaN|PUT|DELETE|stopImmediatePropagation|beforeactivate|slideDown|Accept|parentWindow|clearInterval|round|cancelBubble||returnValue|10000|Until|ig|line|weight|1E8|cellpadding|timeStamp|Bottom||Right|beforeunload|undelegate|HTML|compatMode|Since|None|Match|getPropertyValue|With|Height|CSS1Compat|Requested|fontSize'.split('|'),0,{}))
Index: /extensions/user_tags/js/jquery.addtags.js
===================================================================
--- /extensions/user_tags/js/jquery.addtags.js	(revision 6798)
+++ /extensions/user_tags/js/jquery.addtags.js	(revision 6798)
@@ -0,0 +1,1 @@
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('d h(y){$(\'#2-k\').A(\'2-3\').s(\'3\');B}$(d(){f 1=\'<c J="\'+4[\'K\']+\'" C="E" 7="2-G-c">\';1+=\'<r 7="a" 9="a">\';1+=z;1+=\'</r>\';1+=\'<e b="q" 9="w" 5="\'+4[\'H\']+\'">\';1+=\'<e b="q" 9="L" 5="\'+4[\'D\']+\'">\';1+=\'<e b="I" 7="2-k" 3="3" t="2-3" 5="\'+8[\'u\']+\'">\';1+=\'</c>\';v($(\'#m\').x>0){$(\'#m j.F\').1b(\'<16 7="2-15" 14="\'+4[\'12\']+\'" 13="\'+8[\'l\']+\'">\').17(\'M\',8[\'l\']).18(\'2-1e\').o(d(){$(i).1d(\'o\');f g=$(i).1c().19(\'j.5\');f 1a=g.p();g.p(1);$(\'#a\').11({10:4[\'R\'],S:8[\'Q\'],P:n,N:n,O:6,T:6,U:6,Z:h,Y:h,X:V,W:6})})}});',62,77,'|newRow|t4u|disabled|path|value|true|id|vocab|name|tags|type|form|function|input|var|tags_value|t4u_onchange|this|td|update|click_to_add_tags|Tags|false|click|html|hidden|select|removeAttr|class|update_tags|if|image_id|length|item|related_tags|removeClass|return|method|t4u_referer|post|label|addtags|t4u_image_id|submit|action|t4u_add_script|referer|title|filter_case|filter_hide|cache|start_to_type|t4u_get_script|complete_text|firstselected|filter_selected|100|newel|maxitems|onselect|onremove|json_url|fcbkcomplete|t4u_edit_icon|alt|src|edit|img|attr|addClass|find|old_tags_value|append|parent|unbind|clickable'.split('|'),0,{}))
Index: /extensions/user_tags/js/jquery.fcbkcomplete.js
===================================================================
--- /extensions/user_tags/js/jquery.fcbkcomplete.js	(revision 6798)
+++ /extensions/user_tags/js/jquery.fcbkcomplete.js	(revision 6798)
@@ -0,0 +1,1 @@
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('3t(c($){$.3x.3q=c(2n){m I.2h(c(){c 2J(){2H();2p();26(0)}c 2H(){t.B();t.n("2U","2U");4(t.n("1R").2V("[]")==-1){t.n("1R",t.n("1R")+"[]")}o=$(O.Q("32"));o.n("18","o");t.2Q(o);r=$(O.Q("21"));r.11("3K-E");r.16(\'<21 18="1u">\'+5.2X+"</21>");4(W){r.16(\'<2v 18="2s" 3L="3H" 3A="0"></2v>\');N=r.f(\'.2s\')}b=$(O.Q("32"));b.n("1j",1i+"3d");r.2f(b);o.2Q(r);4(5.2y){b.Y("12",5.12)}y 4(5.1H){b.Y("12",r.12())}}c 2p(){t.f("j").2h(c(i,j){j=$(j);4(j.1b("x")||j.36(\':x\')){V(j.G(),j.J(),R,j.1b("1f"));j.n("x","x")}y{j.35("x")}H.2B({1m:j.G(),h:j.J()});1d+=""+(H.k-1)+":"+j.G()+";"})}$(I).37("V",c(l,M){V(M.1A,M.h,0,0,0)});c V(1A,h,2K,1f,1r){4(!2k()){m p}6 7=O.Q("7");6 2N=O.3a(1A);6 1w=O.Q("a");6 2R="S-Z"+(1f?" 1f":"");$(7).n({"18":2R,"19":h});$(7).2f(2N);$(1w).n({"18":"3g","3b":"#"});7.3e(1w);o.16(7);$(1w).1q(c(){1M($(I).3c("7"));m p});4(!2K){$("#"+1i+"1V").2c();6 F;26(1r);4(t.f("j[h="+h+"]").k){F=t.f("j[h="+h+"]");F.z(0).2W("x","x");4(!F.1b("x")){F.11("x")}}y{6 F=$(O.Q("j"));F.n("h",h).z(0).2W("x","x");F.n("h",h).11("x");F.G(1A);t.16(F)}4(5.1S.k){2e(5.1S,F)}t.34()}o.f("7.S-Z.17").T("17");b.B();W?N.B():\'\'}c 1M(K){4(!K.1b(\'1f\')){K.27("1x");4(5.2g.k){6 F=t.f("j[h="+K.n("19")+"]");2e(5.2g,F)}t.f(\'j[h="\'+K.n("19")+\'"]\').35("x").T("x");K.2c();t.34();1L=0}}c 26(1r){6 7=$(O.Q("7"));6 w=$(O.Q("w"));6 1y=0;7.n({"18":"S-w","1j":1i+"1V"});w.n({"2E":"G","18":"X","2Z":"1"});o.16(7.16(w));w.A(c(){r.3f("1x")});w.1X(c(){r.27("1x")});o.1q(c(){w.A();4(b.k&&w.J().k){b.1e()}y{b.B();W?N.B():\'\';r.f(".1u").1e()}});w.3i(c(l){4((l.D==13&&5.2l)||(l.D==9&&5.2j)){m p}w.n("2Z",w.J().k+1)});w.1Z(c(l){4(l.D==2F){l.1k();m p}});w.39(c(l){6 C=1I(w.J());4(l.D==8&&C.k==0){b.B();W?N.B():\'\';4(!o.f("7.S-Z:28").1b(\'1f\')){4(o.f("7.S-Z.17").k==0){o.f("7.S-Z:28").11("17");m p}y{4(1L){m}1L=1;o.f("7.S-Z.17").27("1x",c(){1M($(I));m p})}}}4(l.D!=2T&&l.D!=38&&C.k!=0){1o=0;4(5.1F){4(5.H&&25){1t(C);1D()}y{1y++;6 2u=1y;2o(c(){4(2u!=1y)m;$.3h(5.1F+(5.1F.2V("?")>-1?"&":"?")+"3O="+C,q,c(M){1t(C,M);25=R;1D()})},5.2t)}}y{1t(C);1D()}r.f(".1u").B();b.1e()}});4(1r){2o(c(){w.A();r.f(".1u").1e()},1)}}c 1t(C,M){b.2D(\'\');4(!5.H&&M!=q){H=2C 2z();1d=""}2O(C);4(M!=q&&M.k){$.2h(M,c(i,J){H.2B({1m:J.1m,h:J.h});1d+=""+(H.k-1)+":"+J.1m+";"})}6 2i=5.1W<H.k?5.1W:H.k;6 29="i";4(5.20){29=""}6 1C,1l;1Y{1C=1J(\'/(?:^|;)\\\\s*(\\\\d+)\\\\s*:[^;]*?\'+C+\'[^;]*/g\'+29);1l=1C.2w(1d)}1P(1T){};6 1Q=\'\';3E(1l!=q&&2i>0){6 1j=1l[1];6 1s=H[1j];4(5.3F&&t.f("j[h="+1s.h+"]").1b("x")){}y{1Q+=\'<7 19="\'+1s.h+\'">\'+2r(1s.1m,C)+\'</7>\';1o++;2i--}1l=1C.2w(1d)}b.16(1Q);4(5.31){e=b.f("7:L:1E");e.11("E-A")}4(1o>5.u){b.Y({"u":(5.u*24)+"1p","3C":"E"});4(W){4(5.1H){N.Y({"12":b.12()+"1p"})}N.Y({"u":(5.u*24)+"1p"}).1e()}}y{b.Y("u","E");4(W){4(5.1H){N.Y({"12":b.12()+"1p"})}N.Y({"u":b.u()+"1p"}).1e()}}}c 2r(G,C){4(5.20){1Y{1J("6 G = G.1c(/(.*)("+C+")(.*)/2q,\'$1<1z>$2</1z>$3\');")}1P(1T){}}y{1Y{1J("6 G = G.1c(/(.*)("+C.3G()+")(.*)/2q,\'$1<1z>$2</1z>$3\');")}1P(1T){}}m G}c 23(){b.f("7").2x(c(){b.f("7").T("E-A");$(I).11("E-A");e=$(I)});b.f("7").2L(c(){$(I).T("E-A");e=q})}c 1U(){b.f("7").1g("2x");b.f("7").1g("2L");b.33(c(){23();b.1g("33")})}c 1D(){6 X=$("#"+1i+"1V").f(".X");23();b.f("7").1g("2Y");b.f("7").2Y(c(){6 j=$(I);V(j.G(),j.n("19"));b.B();W?N.B():\'\';r.B();4(5.1n){$(\'#3M .X\').A()}});4(5.2m){X.1g("1X");X.1X(c(){4(5.1G){6 h=1I($(I).J());V(h,h);r.B();l.1k();e=q}4(5.1n){o.1N("1q")}})}X.1g("1Z");X.1Z(c(l){4(l.D==2F){l.1k();m p}4(l.D!=8){o.f("7.S-Z.17").T("17")}4((l.D==13&&5.2l)||(l.D==9&&5.2j)||(l.D==3I&&5.2A)){4(2M()){6 j=e;V(j.G(),j.n("19"));r.B();l.1k();e=q;4(5.1n){o.1N("1q")}m p}y{4(5.1G){6 h=1I($(I).J());V(h,h);r.B();l.1k();e=q}4(5.1n){o.1N("1q")}m p}}4(l.D==2T){1U();4(e==q||e.k==0){e=b.f("7:L:1E");b.z(0).1B=0}y{e.T("E-A");e=e.2a("7:L:1E");6 1a=U(e.22("7:L").k,10);6 1v=U(e.2a("7:L").k,10);4((1a>14.15(5.u/2)||1v<=14.15(5.u/2))&&2I(e.z(0))!="2G"){b.z(0).1B=U(e.z(0).2b,10)*(1a-14.15(5.u/2))}}b.f("7").T("E-A");e.11("E-A")}4(l.D==38){1U();4(e==q||e.k==0){e=b.f("7:L:28");b.z(0).1B=U(e.z(0).2b,10)*(U(b.f("7:L").k,10)-14.15(5.u/2))}y{e.T("E-A");e=e.22("7:L:1E");6 1a=U(e.22("7:L").k,10);6 1v=U(e.2a("7:L").k,10);4((1v>14.15(5.u/2)||1a<=14.15(5.u/2))&&2I(e.z(0))!="2G"){b.z(0).1B=U(e.z(0).2b,10)*(1a-14.15(5.u/2))}}b.f("7").T("E-A");e.11("E-A")}})}c 2k(){4(5.1O!=0){4(o.f("7.S-Z").k<5.1O){m R}y{m p}}}c 2O(h){4(5.1G&&2k()){b.f("7[2P=1]").2c();4(h.k==0){m}6 7=$(O.Q("7"));7.n({"19":h,"2P":"1"}).2D(h);b.2f(7);1o++}y{m}}c 2e(2d,K){6 1h="";3s(i=0;i<K.z(0).1K.k;i++){4(K.z(0).1K[i].2S!=q){1h+="\\"3u"+K.z(0).1K[i].3v+"\\": \\""+K.z(0).1K[i].2S+"\\","}}1h="{"+1h+" 3w: 0}";2d.3r(2d,1h)}c 2M(){4(e==q){m p}4(e.k==0){m p}m R}c 1I(P){P=P.1c(/[\\"\\\'][\\s]*3l:(.*)[\\"\\\']/g,"\\"\\"");P=P.1c(/3k(.*)/g,"");P=P.1c(/1J\\((.*)\\)/g,"");P=P.1c(\'/([\\3m-\\3n,\\3p-\\3o,\\3y-\\3z])/\',\'\');m P}6 5=$.3J({1F:q,H:p,u:"10",1G:p,31:p,20:p,3N:p,2X:"3j 3B 2E...",1W:30,1O:10,1S:"",2g:"",2t:3D,2y:q,1H:R,2A:R,2j:R,2l:R,1n:R,2m:p},2n);6 o=q;6 b=q;6 r=q;6 1o=0;6 H=2C 2z();6 25=p;6 1d="";6 e=q;6 1L=0;6 W="\\v"=="v";6 N;6 t=$(I);6 1i=t.n("1j");2J();m I})}});',62,237,'||||if|options|var|li||||feed|function||focuson|children||value||option|length|event|return|attr|holder|false|null|complete||element|height||input|selected|else|get|focus|hide|etext|keyCode|auto|_item|text|cache|this|val|item|visible|data|browser_msie_frame|document|string|createElement|true|bit|removeClass|parseInt|addItem|browser_msie|maininput|css|box||addClass|width||Math|round|append|deleted|class|rel|prev|hasClass|replace|search_string|show|locked|unbind|_object|elemid|id|preventDefault|match|caption|keepPromptAfterChoose|counter|px|click|focusme|object|addMembers|default|next|aclose|fast|getBoxTimeout|em|title|scrollTop|myregexp|bindEvents|first|json_url|newel|autoWidth|xssPrevent|eval|attributes|deleting|removeItem|trigger|maxitems|catch|content|name|onselect|ex|removeFeedEvent|_annoninput|maxshownitems|blur|try|keydown|filter_case|div|prevAll|bindFeedEvent||json_cache|addInput|fadeOut|last|filter|nextAll|scrollHeight|remove|func|funCall|prepend|onremove|each|maximum|chooseOnTab|maxItems|chooseOnEnter|onBlurAddTag|opt|setTimeout|preSet|gi|itemIllumination|ie6fix|delay|getBoxTimeoutValue|iframe|exec|mouseover|forceWidth|Array|chooseOnComma|push|new|html|type|191|undefined|createFCBK|typeof|init|preadded|mouseout|checkFocusOn|txt|addTextItem|fckb|after|liclass|nodeValue|40|multiple|indexOf|setAttribute|complete_text|mousedown|size||firstselected|ul|mousemove|change|removeAttr|is|bind||keyup|createTextNode|href|parent|_feed|appendChild|fadeIn|closebutton|getJSON|keypress|Start|script|javascript|x00|x08|x0c|x0b|fcbkcomplete|call|for|jQuery|_|nodeName|notinuse|fn|x0e|x19|frameborder|to|overflow|350|while|filter_selected|toLowerCase|no|188|extend|facebook|scrolling|tags_annoninput|filter_hide|tag'.split('|'),0,{}))
Index: /extensions/user_tags/language/en_UK/description.txt
===================================================================
--- /extensions/user_tags/language/en_UK/description.txt	(revision 6798)
+++ /extensions/user_tags/language/en_UK/description.txt	(revision 6798)
@@ -0,0 +1,1 @@
+Allow visitors to add tag to images
Index: /extensions/user_tags/language/en_UK/index.php
===================================================================
--- /extensions/user_tags/language/en_UK/index.php	(revision 6798)
+++ /extensions/user_tags/language/en_UK/index.php	(revision 6798)
@@ -0,0 +1,28 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/user_tags/language/en_UK/plugin.lang.php
===================================================================
--- /extensions/user_tags/language/en_UK/plugin.lang.php	(revision 6798)
+++ /extensions/user_tags/language/en_UK/plugin.lang.php	(revision 6798)
@@ -0,0 +1,23 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+// only to change default values (see language/templates/plugin.lang.php)
+?>
Index: /extensions/user_tags/language/fr_FR/description.txt
===================================================================
--- /extensions/user_tags/language/fr_FR/description.txt	(revision 6798)
+++ /extensions/user_tags/language/fr_FR/description.txt	(revision 6798)
@@ -0,0 +1,1 @@
+Ce plugin permet aux visiteurs de votre galerie d'ajouter des tags aux images.
Index: /extensions/user_tags/language/fr_FR/index.php
===================================================================
--- /extensions/user_tags/language/fr_FR/index.php	(revision 6798)
+++ /extensions/user_tags/language/fr_FR/index.php	(revision 6798)
@@ -0,0 +1,28 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/user_tags/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/user_tags/language/fr_FR/plugin.lang.php	(revision 6798)
+++ /extensions/user_tags/language/fr_FR/plugin.lang.php	(revision 6798)
@@ -0,0 +1,26 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+$lang['Click to add tags'] = "Cliquez pour ajouter des tags";
+$lang['Start to type'] = "Commencez à tapper";
+$lang['Update tags'] = "Mettre à jour les tags";
+$lang['Cancel'] = "Annuler";
+?>
Index: /extensions/user_tags/language/templates/index.php
===================================================================
--- /extensions/user_tags/language/templates/index.php	(revision 6798)
+++ /extensions/user_tags/language/templates/index.php	(revision 6798)
@@ -0,0 +1,28 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+// Recursive call
+$url = '../';
+header( 'Request-URI: '.$url );
+header( 'Content-Location: '.$url );
+header( 'Location: '.$url );
+exit();
+?>
Index: /extensions/user_tags/language/templates/plugin.lang.php
===================================================================
--- /extensions/user_tags/language/templates/plugin.lang.php	(revision 6798)
+++ /extensions/user_tags/language/templates/plugin.lang.php	(revision 6798)
@@ -0,0 +1,26 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+$lang['Click to add tags'] = "Click to add tags";
+$lang['Start to type'] = "Start to type";
+$lang['Update tags'] = "Update tags";
+$lang['Cancel'] = "Cancel";
+?>
Index: /extensions/user_tags/main.inc.php
===================================================================
--- /extensions/user_tags/main.inc.php	(revision 6798)
+++ /extensions/user_tags/main.inc.php	(revision 6798)
@@ -0,0 +1,36 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+/*
+Plugin Name: User Tags
+Version: 0.1.0
+Description: Allow visitors to add tag to images
+Plugin URI: http://phpwebgallery.net/ext/extension_view.php?eid=441
+Author: nikrou
+Author URI: http://www.nikrou.net/
+*/
+
+if (!defined('PHPWG_ROOT_PATH')) {
+  die('Hacking attempt!');
+}
+
+include_once(dirname(__FILE__).'/init.php');
+?>
Index: /extensions/user_tags/maintain.inc.php
===================================================================
--- /extensions/user_tags/maintain.inc.php	(revision 6798)
+++ /extensions/user_tags/maintain.inc.php	(revision 6798)
@@ -0,0 +1,37 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH')) {
+  die('Hacking attempt!');
+}
+
+function plugin_install($plugin_id, $plugin_version, &$errors) {
+}
+
+function plugin_activate($plugin_id, $plugin_version, &$errors) {
+}
+
+function plugin_deactivate($plugin_id) { 
+}
+
+function plugin_uninstall($plugin_id) {
+}
+?>
Index: /extensions/user_tags/public.php
===================================================================
--- /extensions/user_tags/public.php	(revision 6798)
+++ /extensions/user_tags/public.php	(revision 6798)
@@ -0,0 +1,34 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | User Tags  - a plugin for Piwigo                                      |
+// +-----------------------------------------------------------------------+
+// | Copyright(C) 2010 Nicolas Roudaire             http://www.nikrou.net  |
+// +-----------------------------------------------------------------------+
+// | 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                                          |
+// |                                                                       |
+// | 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, write to the Free Software           |
+// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
+// | MA 02110-1301 USA.                                                    |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH')) {
+  die('Hacking attempt!');
+}
+
+include_once T4U_PLUGIN_ROOT . "/include/t4u_content.class.php";
+
+$public_content = new t4u_Content($plugin_config);
+add_event_handler('render_element_content', 
+		  array($public_content, 'render_element_content'),
+		  EVENT_HANDLER_PRIORITY_NEUTRAL,
+		  2
+		  );
+?>
Index: /extensions/user_tags/template/add_tags.tpl
===================================================================
--- /extensions/user_tags/template/add_tags.tpl	(revision 6798)
+++ /extensions/user_tags/template/add_tags.tpl	(revision 6798)
@@ -0,0 +1,22 @@
+{html_head}
+<script type="text/javascript" src="{$ROOT_URL}{$T4U_JS}/jquery.fcbkcomplete.js"></script>
+<script type="text/javascript">
+var related_tags = '';
+{foreach from=$T4U_RELATED_TAGS item=tag key=id}
+related_tags += '<option value="{$id}" class="selected">{$tag}</option>';
+{/foreach}
+var path = new Array();
+path['t4u_add_script'] = "{$T4U_ADD_SCRIPT}";
+path['t4u_image_id'] = "{$T4U_IMAGE_ID}";
+path['t4u_referer'] = "{$T4U_REFERER}";
+path['t4u_edit_icon'] = "{$ROOT_URL}{$T4U_IMGS}/edit.png";
+path['t4u_get_script'] = "{$T4U_GET_SCRIPT}";
+
+var vocab = new Array();
+vocab['click_to_add_tags'] = "{'Click to add tags'|@translate}";
+vocab['start_to_type'] = "{'Start to type'|@translate}...";
+vocab['update_tags'] = "{'Update tags'|@translate}";
+</script>
+<script type="text/javascript" src="{$ROOT_URL}{$T4U_JS}/jquery.addtags.js"></script>
+<link rel="stylesheet" type="text/css" href="{$ROOT_URL}{$T4U_CSS}/style.css">
+{/html_head}
