commit eb71c40fc146d572ed92a4eb100661296c2461d0 Author: player Date: Sat Aug 15 00:28:06 2026 +0700 init: workspace opencode sync diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cec1def --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.log +__pycache__/ +*.pyc.DS_Store +node_modules/.env + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSE @@ -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. + + + Copyright (C) + + 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. + + , 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. diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSE.txt @@ -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. + + + Copyright (C) + + 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. + + , 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. diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..cb2b647 --- /dev/null +++ b/admin.php @@ -0,0 +1,185 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +ob_start("ob_gzhandler"); + +// check url +$url = $_SERVER['REQUEST_URI']; + +// load session MikroTik +$session = $_GET['session']; +$id = $_GET['id']; +$c = $_GET['c']; +$router = $_GET['router']; +$logo = $_GET['logo']; + +$ids = array( + "editor", + "uplogo", + "settings", +); + +// lang +include('./lang/isocodelang.php'); +include('./include/lang.php'); +include('./lang/'.$langid.'.php'); + +// quick bt +include('./include/quickbt.php'); + +// theme +include('./include/theme.php'); +include('./settings/settheme.php'); +include('./settings/setlang.php'); +if ($_SESSION['theme'] == "") { + $theme = $theme; + $themecolor = $themecolor; + } else { + $theme = $_SESSION['theme']; + $themecolor = $_SESSION['themecolor']; +} + + +// load config +include_once('./include/headhtml.php'); +include('./include/config.php'); +include('./include/readcfg.php'); + +include_once('./lib/routeros_api.class.php'); +include_once('./lib/formatbytesbites.php'); +?> + +window.location='./admin.php?id=sessions'"; + + } else { + $error = '
Alert!
Invalid username or password.
'; + } + } + + + include_once('./include/login.php'); +} elseif (!isset($_SESSION["mikhmon"])) { + echo ""; +} elseif (substr($url, -1) == "/" || substr($url, -4) == ".php") { + echo ""; + +} elseif ($id == "sessions") { + $_SESSION["connect"] = ""; + include_once('./include/menu.php'); + include_once('./settings/sessions.php'); + /*echo ' + ';*/ +} elseif ($id == "settings" && !empty($session) || $id == "settings" && !empty($router)) { + include_once('./include/menu.php'); + include_once('./settings/settings.php'); + echo ' + '; +} elseif ($id == "connect" && !empty($session)) { + ini_set("max_execution_time",5); + include_once('./include/menu.php'); + $API = new RouterosAPI(); + $API->debug = false; + if ($API->connect($iphost, $userhost, decrypt($passwdhost))){ + $_SESSION["connect"] = "Connected"; + echo ""; + } else { + $_SESSION["connect"] = "Not Connected"; + $nl = '\n'; + if ($currency == in_array($currency, $cekindo['indo'])) { + echo ""; + }else{ + echo ""; + } + if($c == "settings"){ + echo ""; + }else{ + echo ""; + } + } +} elseif ($id == "uplogo" && !empty($session)) { + include_once('./include/menu.php'); + include_once('./settings/uplogo.php'); +} elseif ($id == "reboot" && !empty($session)) { + include_once('./process/reboot.php'); +} elseif ($id == "shutdown" && !empty($session)) { + include_once('./process/shutdown.php'); +} elseif ($id == "remove-session" && $session != "") { + include_once('./include/menu.php'); + $fc = file("./include/config.php" ); + $f = fopen("./include/config.php", "w"); + $q = "'"; + $rem = '$data['.$q.$session.$q.']'; + foreach ($fc as $line) { + if (!strstr($line, $rem)) + fputs($f, $line); + } + fclose($f); + echo ""; +} elseif ($id == "about") { + include_once('./include/menu.php'); + include_once('./include/about.php'); +} elseif ($id == "logout") { + include_once('./include/menu.php'); + echo " Logout..."; + session_destroy(); + echo ""; +} elseif ($id == "remove-logo" && $logo != "" && !empty($session)) { + include_once('./include/menu.php'); + $logopath = "./img/"; + $remlogo = $logopath . $logo; + unlink("$remlogo"); + echo ""; +} elseif ($id == "editor" && !empty($session)) { + include_once('./include/menu.php'); + include_once('./settings/vouchereditor.php'); +} elseif (empty($id)) { + echo ""; +} elseif(in_array($id, $ids) && empty($session)){ + echo ""; +} +?> + + + + + + diff --git a/css/editor.min.css b/css/editor.min.css new file mode 100644 index 0000000..4a4a105 --- /dev/null +++ b/css/editor.min.css @@ -0,0 +1 @@ +.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0} \ No newline at end of file diff --git a/css/font-awesome/css/font-awesome.css b/css/font-awesome/css/font-awesome.css new file mode 100644 index 0000000..ee906a8 --- /dev/null +++ b/css/font-awesome/css/font-awesome.css @@ -0,0 +1,2337 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/css/font-awesome/css/font-awesome.min.css b/css/font-awesome/css/font-awesome.min.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/css/font-awesome/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/css/font-awesome/fonts/FontAwesome.otf b/css/font-awesome/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/css/font-awesome/fonts/FontAwesome.otf differ diff --git a/css/font-awesome/fonts/fontawesome-webfont.eot b/css/font-awesome/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/css/font-awesome/fonts/fontawesome-webfont.eot differ diff --git a/css/font-awesome/fonts/fontawesome-webfont.svg b/css/font-awesome/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/css/font-awesome/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/font-awesome/fonts/fontawesome-webfont.ttf b/css/font-awesome/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/css/font-awesome/fonts/fontawesome-webfont.ttf differ diff --git a/css/font-awesome/fonts/fontawesome-webfont.woff b/css/font-awesome/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/css/font-awesome/fonts/fontawesome-webfont.woff differ diff --git a/css/font-awesome/fonts/fontawesome-webfont.woff2 b/css/font-awesome/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/css/font-awesome/fonts/fontawesome-webfont.woff2 differ diff --git a/css/font-awesome/less/animated.less b/css/font-awesome/less/animated.less new file mode 100644 index 0000000..66ad52a --- /dev/null +++ b/css/font-awesome/less/animated.less @@ -0,0 +1,34 @@ +// Animated Icons +// -------------------------- + +.@{fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.@{fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/css/font-awesome/less/bordered-pulled.less b/css/font-awesome/less/bordered-pulled.less new file mode 100644 index 0000000..f1c8ad7 --- /dev/null +++ b/css/font-awesome/less/bordered-pulled.less @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.@{fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em @fa-border-color; + border-radius: .1em; +} + +.@{fa-css-prefix}-pull-left { float: left; } +.@{fa-css-prefix}-pull-right { float: right; } + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { margin-right: .3em; } + &.@{fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.@{fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/css/font-awesome/less/core.less b/css/font-awesome/less/core.less new file mode 100644 index 0000000..c577ac8 --- /dev/null +++ b/css/font-awesome/less/core.less @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.@{fa-css-prefix} { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/css/font-awesome/less/fixed-width.less b/css/font-awesome/less/fixed-width.less new file mode 100644 index 0000000..110289f --- /dev/null +++ b/css/font-awesome/less/fixed-width.less @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.@{fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/css/font-awesome/less/font-awesome.less b/css/font-awesome/less/font-awesome.less new file mode 100644 index 0000000..c3677de --- /dev/null +++ b/css/font-awesome/less/font-awesome.less @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables.less"; +@import "mixins.less"; +@import "path.less"; +@import "core.less"; +@import "larger.less"; +@import "fixed-width.less"; +@import "list.less"; +@import "bordered-pulled.less"; +@import "animated.less"; +@import "rotated-flipped.less"; +@import "stacked.less"; +@import "icons.less"; +@import "screen-reader.less"; diff --git a/css/font-awesome/less/icons.less b/css/font-awesome/less/icons.less new file mode 100644 index 0000000..159d600 --- /dev/null +++ b/css/font-awesome/less/icons.less @@ -0,0 +1,789 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } +.@{fa-css-prefix}-music:before { content: @fa-var-music; } +.@{fa-css-prefix}-search:before { content: @fa-var-search; } +.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } +.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } +.@{fa-css-prefix}-star:before { content: @fa-var-star; } +.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } +.@{fa-css-prefix}-user:before { content: @fa-var-user; } +.@{fa-css-prefix}-film:before { content: @fa-var-film; } +.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } +.@{fa-css-prefix}-th:before { content: @fa-var-th; } +.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } +.@{fa-css-prefix}-check:before { content: @fa-var-check; } +.@{fa-css-prefix}-remove:before, +.@{fa-css-prefix}-close:before, +.@{fa-css-prefix}-times:before { content: @fa-var-times; } +.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } +.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } +.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } +.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } +.@{fa-css-prefix}-gear:before, +.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } +.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } +.@{fa-css-prefix}-home:before { content: @fa-var-home; } +.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } +.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } +.@{fa-css-prefix}-road:before { content: @fa-var-road; } +.@{fa-css-prefix}-download:before { content: @fa-var-download; } +.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } +.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } +.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } +.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } +.@{fa-css-prefix}-rotate-right:before, +.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } +.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } +.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } +.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } +.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } +.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } +.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } +.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } +.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } +.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } +.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } +.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } +.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } +.@{fa-css-prefix}-book:before { content: @fa-var-book; } +.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } +.@{fa-css-prefix}-print:before { content: @fa-var-print; } +.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } +.@{fa-css-prefix}-font:before { content: @fa-var-font; } +.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } +.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } +.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } +.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } +.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } +.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } +.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } +.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } +.@{fa-css-prefix}-list:before { content: @fa-var-list; } +.@{fa-css-prefix}-dedent:before, +.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } +.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } +.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } +.@{fa-css-prefix}-photo:before, +.@{fa-css-prefix}-image:before, +.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } +.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } +.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } +.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } +.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } +.@{fa-css-prefix}-edit:before, +.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } +.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } +.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } +.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } +.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } +.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } +.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } +.@{fa-css-prefix}-play:before { content: @fa-var-play; } +.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } +.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } +.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } +.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } +.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } +.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } +.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } +.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } +.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } +.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } +.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } +.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } +.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } +.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } +.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } +.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } +.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } +.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } +.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } +.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } +.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } +.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } +.@{fa-css-prefix}-mail-forward:before, +.@{fa-css-prefix}-share:before { content: @fa-var-share; } +.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } +.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } +.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } +.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } +.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } +.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } +.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } +.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } +.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } +.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } +.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } +.@{fa-css-prefix}-warning:before, +.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } +.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } +.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } +.@{fa-css-prefix}-random:before { content: @fa-var-random; } +.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } +.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } +.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } +.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } +.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } +.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } +.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } +.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } +.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } +.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } +.@{fa-css-prefix}-bar-chart-o:before, +.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } +.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } +.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } +.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } +.@{fa-css-prefix}-key:before { content: @fa-var-key; } +.@{fa-css-prefix}-gears:before, +.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } +.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } +.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } +.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } +.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } +.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } +.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } +.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } +.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } +.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } +.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } +.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } +.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } +.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } +.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } +.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } +.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } +.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } +.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } +.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } +.@{fa-css-prefix}-facebook-f:before, +.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } +.@{fa-css-prefix}-github:before { content: @fa-var-github; } +.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } +.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-feed:before, +.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } +.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } +.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } +.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } +.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } +.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } +.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } +.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } +.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } +.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } +.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } +.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } +.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } +.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } +.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } +.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } +.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } +.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } +.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } +.@{fa-css-prefix}-group:before, +.@{fa-css-prefix}-users:before { content: @fa-var-users; } +.@{fa-css-prefix}-chain:before, +.@{fa-css-prefix}-link:before { content: @fa-var-link; } +.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } +.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } +.@{fa-css-prefix}-cut:before, +.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } +.@{fa-css-prefix}-copy:before, +.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } +.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } +.@{fa-css-prefix}-save:before, +.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } +.@{fa-css-prefix}-square:before { content: @fa-var-square; } +.@{fa-css-prefix}-navicon:before, +.@{fa-css-prefix}-reorder:before, +.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } +.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } +.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } +.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } +.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } +.@{fa-css-prefix}-table:before { content: @fa-var-table; } +.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } +.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } +.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } +.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } +.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } +.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } +.@{fa-css-prefix}-money:before { content: @fa-var-money; } +.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } +.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } +.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } +.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } +.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } +.@{fa-css-prefix}-unsorted:before, +.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } +.@{fa-css-prefix}-sort-down:before, +.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } +.@{fa-css-prefix}-sort-up:before, +.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } +.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } +.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } +.@{fa-css-prefix}-rotate-left:before, +.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } +.@{fa-css-prefix}-legal:before, +.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } +.@{fa-css-prefix}-dashboard:before, +.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } +.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } +.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } +.@{fa-css-prefix}-flash:before, +.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } +.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } +.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } +.@{fa-css-prefix}-paste:before, +.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } +.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } +.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } +.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } +.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } +.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } +.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } +.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } +.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } +.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } +.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } +.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } +.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } +.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } +.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } +.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } +.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } +.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } +.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } +.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } +.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } +.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } +.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } +.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } +.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } +.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } +.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } +.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } +.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } +.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } +.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } +.@{fa-css-prefix}-mobile-phone:before, +.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } +.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } +.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } +.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } +.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } +.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } +.@{fa-css-prefix}-mail-reply:before, +.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } +.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } +.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } +.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } +.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } +.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } +.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } +.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } +.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } +.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } +.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } +.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } +.@{fa-css-prefix}-code:before { content: @fa-var-code; } +.@{fa-css-prefix}-mail-reply-all:before, +.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } +.@{fa-css-prefix}-star-half-empty:before, +.@{fa-css-prefix}-star-half-full:before, +.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } +.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } +.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } +.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } +.@{fa-css-prefix}-unlink:before, +.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } +.@{fa-css-prefix}-question:before { content: @fa-var-question; } +.@{fa-css-prefix}-info:before { content: @fa-var-info; } +.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } +.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } +.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } +.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } +.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } +.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } +.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } +.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } +.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } +.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } +.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } +.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } +.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } +.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } +.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } +.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } +.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } +.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } +.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } +.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } +.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } +.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } +.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } +.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } +.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } +.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } +.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } +.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } +.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } +.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } +.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } +.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } +.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } +.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } +.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } +.@{fa-css-prefix}-toggle-down:before, +.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } +.@{fa-css-prefix}-toggle-up:before, +.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } +.@{fa-css-prefix}-toggle-right:before, +.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } +.@{fa-css-prefix}-euro:before, +.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } +.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } +.@{fa-css-prefix}-dollar:before, +.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } +.@{fa-css-prefix}-rupee:before, +.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } +.@{fa-css-prefix}-cny:before, +.@{fa-css-prefix}-rmb:before, +.@{fa-css-prefix}-yen:before, +.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } +.@{fa-css-prefix}-ruble:before, +.@{fa-css-prefix}-rouble:before, +.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } +.@{fa-css-prefix}-won:before, +.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } +.@{fa-css-prefix}-bitcoin:before, +.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } +.@{fa-css-prefix}-file:before { content: @fa-var-file; } +.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } +.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } +.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } +.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } +.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } +.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } +.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } +.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } +.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } +.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } +.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } +.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } +.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } +.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } +.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } +.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } +.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } +.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } +.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } +.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } +.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } +.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } +.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } +.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } +.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } +.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } +.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } +.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } +.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } +.@{fa-css-prefix}-android:before { content: @fa-var-android; } +.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } +.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } +.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } +.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } +.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } +.@{fa-css-prefix}-female:before { content: @fa-var-female; } +.@{fa-css-prefix}-male:before { content: @fa-var-male; } +.@{fa-css-prefix}-gittip:before, +.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } +.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } +.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } +.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } +.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } +.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } +.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } +.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } +.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } +.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } +.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } +.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } +.@{fa-css-prefix}-toggle-left:before, +.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } +.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } +.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } +.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } +.@{fa-css-prefix}-turkish-lira:before, +.@{fa-css-prefix}-try:before { content: @fa-var-try; } +.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } +.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } +.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } +.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } +.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } +.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } +.@{fa-css-prefix}-institution:before, +.@{fa-css-prefix}-bank:before, +.@{fa-css-prefix}-university:before { content: @fa-var-university; } +.@{fa-css-prefix}-mortar-board:before, +.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } +.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } +.@{fa-css-prefix}-google:before { content: @fa-var-google; } +.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } +.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } +.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } +.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } +.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } +.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } +.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } +.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } +.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } +.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } +.@{fa-css-prefix}-language:before { content: @fa-var-language; } +.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } +.@{fa-css-prefix}-building:before { content: @fa-var-building; } +.@{fa-css-prefix}-child:before { content: @fa-var-child; } +.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } +.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } +.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } +.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } +.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } +.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } +.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } +.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } +.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } +.@{fa-css-prefix}-automobile:before, +.@{fa-css-prefix}-car:before { content: @fa-var-car; } +.@{fa-css-prefix}-cab:before, +.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } +.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } +.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } +.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } +.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } +.@{fa-css-prefix}-database:before { content: @fa-var-database; } +.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } +.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } +.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } +.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } +.@{fa-css-prefix}-file-photo-o:before, +.@{fa-css-prefix}-file-picture-o:before, +.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } +.@{fa-css-prefix}-file-zip-o:before, +.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } +.@{fa-css-prefix}-file-sound-o:before, +.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } +.@{fa-css-prefix}-file-movie-o:before, +.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } +.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } +.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } +.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } +.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } +.@{fa-css-prefix}-life-bouy:before, +.@{fa-css-prefix}-life-buoy:before, +.@{fa-css-prefix}-life-saver:before, +.@{fa-css-prefix}-support:before, +.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } +.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } +.@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-resistance:before, +.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } +.@{fa-css-prefix}-ge:before, +.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } +.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } +.@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, +.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } +.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } +.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } +.@{fa-css-prefix}-wechat:before, +.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } +.@{fa-css-prefix}-send:before, +.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } +.@{fa-css-prefix}-send-o:before, +.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } +.@{fa-css-prefix}-history:before { content: @fa-var-history; } +.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } +.@{fa-css-prefix}-header:before { content: @fa-var-header; } +.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } +.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } +.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } +.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } +.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } +.@{fa-css-prefix}-soccer-ball-o:before, +.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } +.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } +.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } +.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } +.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } +.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } +.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } +.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } +.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } +.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } +.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } +.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } +.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } +.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } +.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } +.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } +.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } +.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } +.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } +.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } +.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } +.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } +.@{fa-css-prefix}-at:before { content: @fa-var-at; } +.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } +.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } +.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } +.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } +.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } +.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } +.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } +.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } +.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } +.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } +.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } +.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } +.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } +.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } +.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } +.@{fa-css-prefix}-shekel:before, +.@{fa-css-prefix}-sheqel:before, +.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } +.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } +.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } +.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } +.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } +.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } +.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } +.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } +.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } +.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } +.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } +.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } +.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } +.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } +.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } +.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } +.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } +.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } +.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } +.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } +.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } +.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-intersex:before, +.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } +.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } +.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } +.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } +.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } +.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } +.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } +.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } +.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } +.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } +.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } +.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } +.@{fa-css-prefix}-server:before { content: @fa-var-server; } +.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } +.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } +.@{fa-css-prefix}-hotel:before, +.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } +.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } +.@{fa-css-prefix}-train:before { content: @fa-var-train; } +.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } +.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery:before, +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } +.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } +.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } +.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } +.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } +.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } +.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } +.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { content: @fa-var-television; } +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } +.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } +.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } +.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } +.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } +.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } +.@{fa-css-prefix}-map:before { content: @fa-var-map; } +.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } +.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } +.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } +.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } +.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } +.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } +.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } +.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } +.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } +.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } +.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } +.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } +.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } +.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } +.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } +.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } +.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } +.@{fa-css-prefix}-asl-interpreting:before, +.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } +.@{fa-css-prefix}-deafness:before, +.@{fa-css-prefix}-hard-of-hearing:before, +.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } +.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } +.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } +.@{fa-css-prefix}-signing:before, +.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } +.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } +.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } +.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } +.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } +.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } +.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } +.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } +.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } +.@{fa-css-prefix}-google-plus-circle:before, +.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } +.@{fa-css-prefix}-fa:before, +.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } +.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } +.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } +.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } +.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } +.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } +.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } +.@{fa-css-prefix}-vcard:before, +.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } +.@{fa-css-prefix}-vcard-o:before, +.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } +.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } +.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } +.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } +.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } +.@{fa-css-prefix}-drivers-license:before, +.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } +.@{fa-css-prefix}-drivers-license-o:before, +.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } +.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } +.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } +.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } +.@{fa-css-prefix}-thermometer-4:before, +.@{fa-css-prefix}-thermometer:before, +.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } +.@{fa-css-prefix}-thermometer-3:before, +.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } +.@{fa-css-prefix}-thermometer-2:before, +.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } +.@{fa-css-prefix}-thermometer-1:before, +.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } +.@{fa-css-prefix}-thermometer-0:before, +.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } +.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } +.@{fa-css-prefix}-bathtub:before, +.@{fa-css-prefix}-s15:before, +.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } +.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } +.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } +.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } +.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } +.@{fa-css-prefix}-times-rectangle:before, +.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } +.@{fa-css-prefix}-times-rectangle-o:before, +.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } +.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } +.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } +.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } +.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } +.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } +.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } +.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } +.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } +.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } +.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } +.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/css/font-awesome/less/larger.less b/css/font-awesome/less/larger.less new file mode 100644 index 0000000..c9d6467 --- /dev/null +++ b/css/font-awesome/less/larger.less @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.@{fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.@{fa-css-prefix}-2x { font-size: 2em; } +.@{fa-css-prefix}-3x { font-size: 3em; } +.@{fa-css-prefix}-4x { font-size: 4em; } +.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/css/font-awesome/less/list.less b/css/font-awesome/less/list.less new file mode 100644 index 0000000..0b44038 --- /dev/null +++ b/css/font-awesome/less/list.less @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.@{fa-css-prefix}-ul { + padding-left: 0; + margin-left: @fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.@{fa-css-prefix}-li { + position: absolute; + left: -@fa-li-width; + width: @fa-li-width; + top: (2em / 14); + text-align: center; + &.@{fa-css-prefix}-lg { + left: (-@fa-li-width + (4em / 14)); + } +} diff --git a/css/font-awesome/less/mixins.less b/css/font-awesome/less/mixins.less new file mode 100644 index 0000000..beef231 --- /dev/null +++ b/css/font-awesome/less/mixins.less @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +.fa-icon-rotate(@degrees, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only() { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +.sr-only-focusable() { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/css/font-awesome/less/path.less b/css/font-awesome/less/path.less new file mode 100644 index 0000000..835be41 --- /dev/null +++ b/css/font-awesome/less/path.less @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); + src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), + url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), + url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), + url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), + url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); + // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/css/font-awesome/less/rotated-flipped.less b/css/font-awesome/less/rotated-flipped.less new file mode 100644 index 0000000..f6ba814 --- /dev/null +++ b/css/font-awesome/less/rotated-flipped.less @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } +.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } +.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } + +.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } +.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .@{fa-css-prefix}-rotate-90, +:root .@{fa-css-prefix}-rotate-180, +:root .@{fa-css-prefix}-rotate-270, +:root .@{fa-css-prefix}-flip-horizontal, +:root .@{fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/css/font-awesome/less/screen-reader.less b/css/font-awesome/less/screen-reader.less new file mode 100644 index 0000000..11c1881 --- /dev/null +++ b/css/font-awesome/less/screen-reader.less @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { .sr-only(); } +.sr-only-focusable { .sr-only-focusable(); } diff --git a/css/font-awesome/less/stacked.less b/css/font-awesome/less/stacked.less new file mode 100644 index 0000000..fc53fb0 --- /dev/null +++ b/css/font-awesome/less/stacked.less @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.@{fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.@{fa-css-prefix}-stack-1x { line-height: inherit; } +.@{fa-css-prefix}-stack-2x { font-size: 2em; } +.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/css/font-awesome/less/variables.less b/css/font-awesome/less/variables.less new file mode 100644 index 0000000..7ddbbc0 --- /dev/null +++ b/css/font-awesome/less/variables.less @@ -0,0 +1,800 @@ +// Variables +// -------------------------- + +@fa-font-path: "../fonts"; +@fa-font-size-base: 14px; +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-css-prefix: fa; +@fa-version: "4.7.0"; +@fa-border-color: #eee; +@fa-inverse: #fff; +@fa-li-width: (30em / 14); + +@fa-var-500px: "\f26e"; +@fa-var-address-book: "\f2b9"; +@fa-var-address-book-o: "\f2ba"; +@fa-var-address-card: "\f2bb"; +@fa-var-address-card-o: "\f2bc"; +@fa-var-adjust: "\f042"; +@fa-var-adn: "\f170"; +@fa-var-align-center: "\f037"; +@fa-var-align-justify: "\f039"; +@fa-var-align-left: "\f036"; +@fa-var-align-right: "\f038"; +@fa-var-amazon: "\f270"; +@fa-var-ambulance: "\f0f9"; +@fa-var-american-sign-language-interpreting: "\f2a3"; +@fa-var-anchor: "\f13d"; +@fa-var-android: "\f17b"; +@fa-var-angellist: "\f209"; +@fa-var-angle-double-down: "\f103"; +@fa-var-angle-double-left: "\f100"; +@fa-var-angle-double-right: "\f101"; +@fa-var-angle-double-up: "\f102"; +@fa-var-angle-down: "\f107"; +@fa-var-angle-left: "\f104"; +@fa-var-angle-right: "\f105"; +@fa-var-angle-up: "\f106"; +@fa-var-apple: "\f179"; +@fa-var-archive: "\f187"; +@fa-var-area-chart: "\f1fe"; +@fa-var-arrow-circle-down: "\f0ab"; +@fa-var-arrow-circle-left: "\f0a8"; +@fa-var-arrow-circle-o-down: "\f01a"; +@fa-var-arrow-circle-o-left: "\f190"; +@fa-var-arrow-circle-o-right: "\f18e"; +@fa-var-arrow-circle-o-up: "\f01b"; +@fa-var-arrow-circle-right: "\f0a9"; +@fa-var-arrow-circle-up: "\f0aa"; +@fa-var-arrow-down: "\f063"; +@fa-var-arrow-left: "\f060"; +@fa-var-arrow-right: "\f061"; +@fa-var-arrow-up: "\f062"; +@fa-var-arrows: "\f047"; +@fa-var-arrows-alt: "\f0b2"; +@fa-var-arrows-h: "\f07e"; +@fa-var-arrows-v: "\f07d"; +@fa-var-asl-interpreting: "\f2a3"; +@fa-var-assistive-listening-systems: "\f2a2"; +@fa-var-asterisk: "\f069"; +@fa-var-at: "\f1fa"; +@fa-var-audio-description: "\f29e"; +@fa-var-automobile: "\f1b9"; +@fa-var-backward: "\f04a"; +@fa-var-balance-scale: "\f24e"; +@fa-var-ban: "\f05e"; +@fa-var-bandcamp: "\f2d5"; +@fa-var-bank: "\f19c"; +@fa-var-bar-chart: "\f080"; +@fa-var-bar-chart-o: "\f080"; +@fa-var-barcode: "\f02a"; +@fa-var-bars: "\f0c9"; +@fa-var-bath: "\f2cd"; +@fa-var-bathtub: "\f2cd"; +@fa-var-battery: "\f240"; +@fa-var-battery-0: "\f244"; +@fa-var-battery-1: "\f243"; +@fa-var-battery-2: "\f242"; +@fa-var-battery-3: "\f241"; +@fa-var-battery-4: "\f240"; +@fa-var-battery-empty: "\f244"; +@fa-var-battery-full: "\f240"; +@fa-var-battery-half: "\f242"; +@fa-var-battery-quarter: "\f243"; +@fa-var-battery-three-quarters: "\f241"; +@fa-var-bed: "\f236"; +@fa-var-beer: "\f0fc"; +@fa-var-behance: "\f1b4"; +@fa-var-behance-square: "\f1b5"; +@fa-var-bell: "\f0f3"; +@fa-var-bell-o: "\f0a2"; +@fa-var-bell-slash: "\f1f6"; +@fa-var-bell-slash-o: "\f1f7"; +@fa-var-bicycle: "\f206"; +@fa-var-binoculars: "\f1e5"; +@fa-var-birthday-cake: "\f1fd"; +@fa-var-bitbucket: "\f171"; +@fa-var-bitbucket-square: "\f172"; +@fa-var-bitcoin: "\f15a"; +@fa-var-black-tie: "\f27e"; +@fa-var-blind: "\f29d"; +@fa-var-bluetooth: "\f293"; +@fa-var-bluetooth-b: "\f294"; +@fa-var-bold: "\f032"; +@fa-var-bolt: "\f0e7"; +@fa-var-bomb: "\f1e2"; +@fa-var-book: "\f02d"; +@fa-var-bookmark: "\f02e"; +@fa-var-bookmark-o: "\f097"; +@fa-var-braille: "\f2a1"; +@fa-var-briefcase: "\f0b1"; +@fa-var-btc: "\f15a"; +@fa-var-bug: "\f188"; +@fa-var-building: "\f1ad"; +@fa-var-building-o: "\f0f7"; +@fa-var-bullhorn: "\f0a1"; +@fa-var-bullseye: "\f140"; +@fa-var-bus: "\f207"; +@fa-var-buysellads: "\f20d"; +@fa-var-cab: "\f1ba"; +@fa-var-calculator: "\f1ec"; +@fa-var-calendar: "\f073"; +@fa-var-calendar-check-o: "\f274"; +@fa-var-calendar-minus-o: "\f272"; +@fa-var-calendar-o: "\f133"; +@fa-var-calendar-plus-o: "\f271"; +@fa-var-calendar-times-o: "\f273"; +@fa-var-camera: "\f030"; +@fa-var-camera-retro: "\f083"; +@fa-var-car: "\f1b9"; +@fa-var-caret-down: "\f0d7"; +@fa-var-caret-left: "\f0d9"; +@fa-var-caret-right: "\f0da"; +@fa-var-caret-square-o-down: "\f150"; +@fa-var-caret-square-o-left: "\f191"; +@fa-var-caret-square-o-right: "\f152"; +@fa-var-caret-square-o-up: "\f151"; +@fa-var-caret-up: "\f0d8"; +@fa-var-cart-arrow-down: "\f218"; +@fa-var-cart-plus: "\f217"; +@fa-var-cc: "\f20a"; +@fa-var-cc-amex: "\f1f3"; +@fa-var-cc-diners-club: "\f24c"; +@fa-var-cc-discover: "\f1f2"; +@fa-var-cc-jcb: "\f24b"; +@fa-var-cc-mastercard: "\f1f1"; +@fa-var-cc-paypal: "\f1f4"; +@fa-var-cc-stripe: "\f1f5"; +@fa-var-cc-visa: "\f1f0"; +@fa-var-certificate: "\f0a3"; +@fa-var-chain: "\f0c1"; +@fa-var-chain-broken: "\f127"; +@fa-var-check: "\f00c"; +@fa-var-check-circle: "\f058"; +@fa-var-check-circle-o: "\f05d"; +@fa-var-check-square: "\f14a"; +@fa-var-check-square-o: "\f046"; +@fa-var-chevron-circle-down: "\f13a"; +@fa-var-chevron-circle-left: "\f137"; +@fa-var-chevron-circle-right: "\f138"; +@fa-var-chevron-circle-up: "\f139"; +@fa-var-chevron-down: "\f078"; +@fa-var-chevron-left: "\f053"; +@fa-var-chevron-right: "\f054"; +@fa-var-chevron-up: "\f077"; +@fa-var-child: "\f1ae"; +@fa-var-chrome: "\f268"; +@fa-var-circle: "\f111"; +@fa-var-circle-o: "\f10c"; +@fa-var-circle-o-notch: "\f1ce"; +@fa-var-circle-thin: "\f1db"; +@fa-var-clipboard: "\f0ea"; +@fa-var-clock-o: "\f017"; +@fa-var-clone: "\f24d"; +@fa-var-close: "\f00d"; +@fa-var-cloud: "\f0c2"; +@fa-var-cloud-download: "\f0ed"; +@fa-var-cloud-upload: "\f0ee"; +@fa-var-cny: "\f157"; +@fa-var-code: "\f121"; +@fa-var-code-fork: "\f126"; +@fa-var-codepen: "\f1cb"; +@fa-var-codiepie: "\f284"; +@fa-var-coffee: "\f0f4"; +@fa-var-cog: "\f013"; +@fa-var-cogs: "\f085"; +@fa-var-columns: "\f0db"; +@fa-var-comment: "\f075"; +@fa-var-comment-o: "\f0e5"; +@fa-var-commenting: "\f27a"; +@fa-var-commenting-o: "\f27b"; +@fa-var-comments: "\f086"; +@fa-var-comments-o: "\f0e6"; +@fa-var-compass: "\f14e"; +@fa-var-compress: "\f066"; +@fa-var-connectdevelop: "\f20e"; +@fa-var-contao: "\f26d"; +@fa-var-copy: "\f0c5"; +@fa-var-copyright: "\f1f9"; +@fa-var-creative-commons: "\f25e"; +@fa-var-credit-card: "\f09d"; +@fa-var-credit-card-alt: "\f283"; +@fa-var-crop: "\f125"; +@fa-var-crosshairs: "\f05b"; +@fa-var-css3: "\f13c"; +@fa-var-cube: "\f1b2"; +@fa-var-cubes: "\f1b3"; +@fa-var-cut: "\f0c4"; +@fa-var-cutlery: "\f0f5"; +@fa-var-dashboard: "\f0e4"; +@fa-var-dashcube: "\f210"; +@fa-var-database: "\f1c0"; +@fa-var-deaf: "\f2a4"; +@fa-var-deafness: "\f2a4"; +@fa-var-dedent: "\f03b"; +@fa-var-delicious: "\f1a5"; +@fa-var-desktop: "\f108"; +@fa-var-deviantart: "\f1bd"; +@fa-var-diamond: "\f219"; +@fa-var-digg: "\f1a6"; +@fa-var-dollar: "\f155"; +@fa-var-dot-circle-o: "\f192"; +@fa-var-download: "\f019"; +@fa-var-dribbble: "\f17d"; +@fa-var-drivers-license: "\f2c2"; +@fa-var-drivers-license-o: "\f2c3"; +@fa-var-dropbox: "\f16b"; +@fa-var-drupal: "\f1a9"; +@fa-var-edge: "\f282"; +@fa-var-edit: "\f044"; +@fa-var-eercast: "\f2da"; +@fa-var-eject: "\f052"; +@fa-var-ellipsis-h: "\f141"; +@fa-var-ellipsis-v: "\f142"; +@fa-var-empire: "\f1d1"; +@fa-var-envelope: "\f0e0"; +@fa-var-envelope-o: "\f003"; +@fa-var-envelope-open: "\f2b6"; +@fa-var-envelope-open-o: "\f2b7"; +@fa-var-envelope-square: "\f199"; +@fa-var-envira: "\f299"; +@fa-var-eraser: "\f12d"; +@fa-var-etsy: "\f2d7"; +@fa-var-eur: "\f153"; +@fa-var-euro: "\f153"; +@fa-var-exchange: "\f0ec"; +@fa-var-exclamation: "\f12a"; +@fa-var-exclamation-circle: "\f06a"; +@fa-var-exclamation-triangle: "\f071"; +@fa-var-expand: "\f065"; +@fa-var-expeditedssl: "\f23e"; +@fa-var-external-link: "\f08e"; +@fa-var-external-link-square: "\f14c"; +@fa-var-eye: "\f06e"; +@fa-var-eye-slash: "\f070"; +@fa-var-eyedropper: "\f1fb"; +@fa-var-fa: "\f2b4"; +@fa-var-facebook: "\f09a"; +@fa-var-facebook-f: "\f09a"; +@fa-var-facebook-official: "\f230"; +@fa-var-facebook-square: "\f082"; +@fa-var-fast-backward: "\f049"; +@fa-var-fast-forward: "\f050"; +@fa-var-fax: "\f1ac"; +@fa-var-feed: "\f09e"; +@fa-var-female: "\f182"; +@fa-var-fighter-jet: "\f0fb"; +@fa-var-file: "\f15b"; +@fa-var-file-archive-o: "\f1c6"; +@fa-var-file-audio-o: "\f1c7"; +@fa-var-file-code-o: "\f1c9"; +@fa-var-file-excel-o: "\f1c3"; +@fa-var-file-image-o: "\f1c5"; +@fa-var-file-movie-o: "\f1c8"; +@fa-var-file-o: "\f016"; +@fa-var-file-pdf-o: "\f1c1"; +@fa-var-file-photo-o: "\f1c5"; +@fa-var-file-picture-o: "\f1c5"; +@fa-var-file-powerpoint-o: "\f1c4"; +@fa-var-file-sound-o: "\f1c7"; +@fa-var-file-text: "\f15c"; +@fa-var-file-text-o: "\f0f6"; +@fa-var-file-video-o: "\f1c8"; +@fa-var-file-word-o: "\f1c2"; +@fa-var-file-zip-o: "\f1c6"; +@fa-var-files-o: "\f0c5"; +@fa-var-film: "\f008"; +@fa-var-filter: "\f0b0"; +@fa-var-fire: "\f06d"; +@fa-var-fire-extinguisher: "\f134"; +@fa-var-firefox: "\f269"; +@fa-var-first-order: "\f2b0"; +@fa-var-flag: "\f024"; +@fa-var-flag-checkered: "\f11e"; +@fa-var-flag-o: "\f11d"; +@fa-var-flash: "\f0e7"; +@fa-var-flask: "\f0c3"; +@fa-var-flickr: "\f16e"; +@fa-var-floppy-o: "\f0c7"; +@fa-var-folder: "\f07b"; +@fa-var-folder-o: "\f114"; +@fa-var-folder-open: "\f07c"; +@fa-var-folder-open-o: "\f115"; +@fa-var-font: "\f031"; +@fa-var-font-awesome: "\f2b4"; +@fa-var-fonticons: "\f280"; +@fa-var-fort-awesome: "\f286"; +@fa-var-forumbee: "\f211"; +@fa-var-forward: "\f04e"; +@fa-var-foursquare: "\f180"; +@fa-var-free-code-camp: "\f2c5"; +@fa-var-frown-o: "\f119"; +@fa-var-futbol-o: "\f1e3"; +@fa-var-gamepad: "\f11b"; +@fa-var-gavel: "\f0e3"; +@fa-var-gbp: "\f154"; +@fa-var-ge: "\f1d1"; +@fa-var-gear: "\f013"; +@fa-var-gears: "\f085"; +@fa-var-genderless: "\f22d"; +@fa-var-get-pocket: "\f265"; +@fa-var-gg: "\f260"; +@fa-var-gg-circle: "\f261"; +@fa-var-gift: "\f06b"; +@fa-var-git: "\f1d3"; +@fa-var-git-square: "\f1d2"; +@fa-var-github: "\f09b"; +@fa-var-github-alt: "\f113"; +@fa-var-github-square: "\f092"; +@fa-var-gitlab: "\f296"; +@fa-var-gittip: "\f184"; +@fa-var-glass: "\f000"; +@fa-var-glide: "\f2a5"; +@fa-var-glide-g: "\f2a6"; +@fa-var-globe: "\f0ac"; +@fa-var-google: "\f1a0"; +@fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-circle: "\f2b3"; +@fa-var-google-plus-official: "\f2b3"; +@fa-var-google-plus-square: "\f0d4"; +@fa-var-google-wallet: "\f1ee"; +@fa-var-graduation-cap: "\f19d"; +@fa-var-gratipay: "\f184"; +@fa-var-grav: "\f2d6"; +@fa-var-group: "\f0c0"; +@fa-var-h-square: "\f0fd"; +@fa-var-hacker-news: "\f1d4"; +@fa-var-hand-grab-o: "\f255"; +@fa-var-hand-lizard-o: "\f258"; +@fa-var-hand-o-down: "\f0a7"; +@fa-var-hand-o-left: "\f0a5"; +@fa-var-hand-o-right: "\f0a4"; +@fa-var-hand-o-up: "\f0a6"; +@fa-var-hand-paper-o: "\f256"; +@fa-var-hand-peace-o: "\f25b"; +@fa-var-hand-pointer-o: "\f25a"; +@fa-var-hand-rock-o: "\f255"; +@fa-var-hand-scissors-o: "\f257"; +@fa-var-hand-spock-o: "\f259"; +@fa-var-hand-stop-o: "\f256"; +@fa-var-handshake-o: "\f2b5"; +@fa-var-hard-of-hearing: "\f2a4"; +@fa-var-hashtag: "\f292"; +@fa-var-hdd-o: "\f0a0"; +@fa-var-header: "\f1dc"; +@fa-var-headphones: "\f025"; +@fa-var-heart: "\f004"; +@fa-var-heart-o: "\f08a"; +@fa-var-heartbeat: "\f21e"; +@fa-var-history: "\f1da"; +@fa-var-home: "\f015"; +@fa-var-hospital-o: "\f0f8"; +@fa-var-hotel: "\f236"; +@fa-var-hourglass: "\f254"; +@fa-var-hourglass-1: "\f251"; +@fa-var-hourglass-2: "\f252"; +@fa-var-hourglass-3: "\f253"; +@fa-var-hourglass-end: "\f253"; +@fa-var-hourglass-half: "\f252"; +@fa-var-hourglass-o: "\f250"; +@fa-var-hourglass-start: "\f251"; +@fa-var-houzz: "\f27c"; +@fa-var-html5: "\f13b"; +@fa-var-i-cursor: "\f246"; +@fa-var-id-badge: "\f2c1"; +@fa-var-id-card: "\f2c2"; +@fa-var-id-card-o: "\f2c3"; +@fa-var-ils: "\f20b"; +@fa-var-image: "\f03e"; +@fa-var-imdb: "\f2d8"; +@fa-var-inbox: "\f01c"; +@fa-var-indent: "\f03c"; +@fa-var-industry: "\f275"; +@fa-var-info: "\f129"; +@fa-var-info-circle: "\f05a"; +@fa-var-inr: "\f156"; +@fa-var-instagram: "\f16d"; +@fa-var-institution: "\f19c"; +@fa-var-internet-explorer: "\f26b"; +@fa-var-intersex: "\f224"; +@fa-var-ioxhost: "\f208"; +@fa-var-italic: "\f033"; +@fa-var-joomla: "\f1aa"; +@fa-var-jpy: "\f157"; +@fa-var-jsfiddle: "\f1cc"; +@fa-var-key: "\f084"; +@fa-var-keyboard-o: "\f11c"; +@fa-var-krw: "\f159"; +@fa-var-language: "\f1ab"; +@fa-var-laptop: "\f109"; +@fa-var-lastfm: "\f202"; +@fa-var-lastfm-square: "\f203"; +@fa-var-leaf: "\f06c"; +@fa-var-leanpub: "\f212"; +@fa-var-legal: "\f0e3"; +@fa-var-lemon-o: "\f094"; +@fa-var-level-down: "\f149"; +@fa-var-level-up: "\f148"; +@fa-var-life-bouy: "\f1cd"; +@fa-var-life-buoy: "\f1cd"; +@fa-var-life-ring: "\f1cd"; +@fa-var-life-saver: "\f1cd"; +@fa-var-lightbulb-o: "\f0eb"; +@fa-var-line-chart: "\f201"; +@fa-var-link: "\f0c1"; +@fa-var-linkedin: "\f0e1"; +@fa-var-linkedin-square: "\f08c"; +@fa-var-linode: "\f2b8"; +@fa-var-linux: "\f17c"; +@fa-var-list: "\f03a"; +@fa-var-list-alt: "\f022"; +@fa-var-list-ol: "\f0cb"; +@fa-var-list-ul: "\f0ca"; +@fa-var-location-arrow: "\f124"; +@fa-var-lock: "\f023"; +@fa-var-long-arrow-down: "\f175"; +@fa-var-long-arrow-left: "\f177"; +@fa-var-long-arrow-right: "\f178"; +@fa-var-long-arrow-up: "\f176"; +@fa-var-low-vision: "\f2a8"; +@fa-var-magic: "\f0d0"; +@fa-var-magnet: "\f076"; +@fa-var-mail-forward: "\f064"; +@fa-var-mail-reply: "\f112"; +@fa-var-mail-reply-all: "\f122"; +@fa-var-male: "\f183"; +@fa-var-map: "\f279"; +@fa-var-map-marker: "\f041"; +@fa-var-map-o: "\f278"; +@fa-var-map-pin: "\f276"; +@fa-var-map-signs: "\f277"; +@fa-var-mars: "\f222"; +@fa-var-mars-double: "\f227"; +@fa-var-mars-stroke: "\f229"; +@fa-var-mars-stroke-h: "\f22b"; +@fa-var-mars-stroke-v: "\f22a"; +@fa-var-maxcdn: "\f136"; +@fa-var-meanpath: "\f20c"; +@fa-var-medium: "\f23a"; +@fa-var-medkit: "\f0fa"; +@fa-var-meetup: "\f2e0"; +@fa-var-meh-o: "\f11a"; +@fa-var-mercury: "\f223"; +@fa-var-microchip: "\f2db"; +@fa-var-microphone: "\f130"; +@fa-var-microphone-slash: "\f131"; +@fa-var-minus: "\f068"; +@fa-var-minus-circle: "\f056"; +@fa-var-minus-square: "\f146"; +@fa-var-minus-square-o: "\f147"; +@fa-var-mixcloud: "\f289"; +@fa-var-mobile: "\f10b"; +@fa-var-mobile-phone: "\f10b"; +@fa-var-modx: "\f285"; +@fa-var-money: "\f0d6"; +@fa-var-moon-o: "\f186"; +@fa-var-mortar-board: "\f19d"; +@fa-var-motorcycle: "\f21c"; +@fa-var-mouse-pointer: "\f245"; +@fa-var-music: "\f001"; +@fa-var-navicon: "\f0c9"; +@fa-var-neuter: "\f22c"; +@fa-var-newspaper-o: "\f1ea"; +@fa-var-object-group: "\f247"; +@fa-var-object-ungroup: "\f248"; +@fa-var-odnoklassniki: "\f263"; +@fa-var-odnoklassniki-square: "\f264"; +@fa-var-opencart: "\f23d"; +@fa-var-openid: "\f19b"; +@fa-var-opera: "\f26a"; +@fa-var-optin-monster: "\f23c"; +@fa-var-outdent: "\f03b"; +@fa-var-pagelines: "\f18c"; +@fa-var-paint-brush: "\f1fc"; +@fa-var-paper-plane: "\f1d8"; +@fa-var-paper-plane-o: "\f1d9"; +@fa-var-paperclip: "\f0c6"; +@fa-var-paragraph: "\f1dd"; +@fa-var-paste: "\f0ea"; +@fa-var-pause: "\f04c"; +@fa-var-pause-circle: "\f28b"; +@fa-var-pause-circle-o: "\f28c"; +@fa-var-paw: "\f1b0"; +@fa-var-paypal: "\f1ed"; +@fa-var-pencil: "\f040"; +@fa-var-pencil-square: "\f14b"; +@fa-var-pencil-square-o: "\f044"; +@fa-var-percent: "\f295"; +@fa-var-phone: "\f095"; +@fa-var-phone-square: "\f098"; +@fa-var-photo: "\f03e"; +@fa-var-picture-o: "\f03e"; +@fa-var-pie-chart: "\f200"; +@fa-var-pied-piper: "\f2ae"; +@fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pied-piper-pp: "\f1a7"; +@fa-var-pinterest: "\f0d2"; +@fa-var-pinterest-p: "\f231"; +@fa-var-pinterest-square: "\f0d3"; +@fa-var-plane: "\f072"; +@fa-var-play: "\f04b"; +@fa-var-play-circle: "\f144"; +@fa-var-play-circle-o: "\f01d"; +@fa-var-plug: "\f1e6"; +@fa-var-plus: "\f067"; +@fa-var-plus-circle: "\f055"; +@fa-var-plus-square: "\f0fe"; +@fa-var-plus-square-o: "\f196"; +@fa-var-podcast: "\f2ce"; +@fa-var-power-off: "\f011"; +@fa-var-print: "\f02f"; +@fa-var-product-hunt: "\f288"; +@fa-var-puzzle-piece: "\f12e"; +@fa-var-qq: "\f1d6"; +@fa-var-qrcode: "\f029"; +@fa-var-question: "\f128"; +@fa-var-question-circle: "\f059"; +@fa-var-question-circle-o: "\f29c"; +@fa-var-quora: "\f2c4"; +@fa-var-quote-left: "\f10d"; +@fa-var-quote-right: "\f10e"; +@fa-var-ra: "\f1d0"; +@fa-var-random: "\f074"; +@fa-var-ravelry: "\f2d9"; +@fa-var-rebel: "\f1d0"; +@fa-var-recycle: "\f1b8"; +@fa-var-reddit: "\f1a1"; +@fa-var-reddit-alien: "\f281"; +@fa-var-reddit-square: "\f1a2"; +@fa-var-refresh: "\f021"; +@fa-var-registered: "\f25d"; +@fa-var-remove: "\f00d"; +@fa-var-renren: "\f18b"; +@fa-var-reorder: "\f0c9"; +@fa-var-repeat: "\f01e"; +@fa-var-reply: "\f112"; +@fa-var-reply-all: "\f122"; +@fa-var-resistance: "\f1d0"; +@fa-var-retweet: "\f079"; +@fa-var-rmb: "\f157"; +@fa-var-road: "\f018"; +@fa-var-rocket: "\f135"; +@fa-var-rotate-left: "\f0e2"; +@fa-var-rotate-right: "\f01e"; +@fa-var-rouble: "\f158"; +@fa-var-rss: "\f09e"; +@fa-var-rss-square: "\f143"; +@fa-var-rub: "\f158"; +@fa-var-ruble: "\f158"; +@fa-var-rupee: "\f156"; +@fa-var-s15: "\f2cd"; +@fa-var-safari: "\f267"; +@fa-var-save: "\f0c7"; +@fa-var-scissors: "\f0c4"; +@fa-var-scribd: "\f28a"; +@fa-var-search: "\f002"; +@fa-var-search-minus: "\f010"; +@fa-var-search-plus: "\f00e"; +@fa-var-sellsy: "\f213"; +@fa-var-send: "\f1d8"; +@fa-var-send-o: "\f1d9"; +@fa-var-server: "\f233"; +@fa-var-share: "\f064"; +@fa-var-share-alt: "\f1e0"; +@fa-var-share-alt-square: "\f1e1"; +@fa-var-share-square: "\f14d"; +@fa-var-share-square-o: "\f045"; +@fa-var-shekel: "\f20b"; +@fa-var-sheqel: "\f20b"; +@fa-var-shield: "\f132"; +@fa-var-ship: "\f21a"; +@fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-bag: "\f290"; +@fa-var-shopping-basket: "\f291"; +@fa-var-shopping-cart: "\f07a"; +@fa-var-shower: "\f2cc"; +@fa-var-sign-in: "\f090"; +@fa-var-sign-language: "\f2a7"; +@fa-var-sign-out: "\f08b"; +@fa-var-signal: "\f012"; +@fa-var-signing: "\f2a7"; +@fa-var-simplybuilt: "\f215"; +@fa-var-sitemap: "\f0e8"; +@fa-var-skyatlas: "\f216"; +@fa-var-skype: "\f17e"; +@fa-var-slack: "\f198"; +@fa-var-sliders: "\f1de"; +@fa-var-slideshare: "\f1e7"; +@fa-var-smile-o: "\f118"; +@fa-var-snapchat: "\f2ab"; +@fa-var-snapchat-ghost: "\f2ac"; +@fa-var-snapchat-square: "\f2ad"; +@fa-var-snowflake-o: "\f2dc"; +@fa-var-soccer-ball-o: "\f1e3"; +@fa-var-sort: "\f0dc"; +@fa-var-sort-alpha-asc: "\f15d"; +@fa-var-sort-alpha-desc: "\f15e"; +@fa-var-sort-amount-asc: "\f160"; +@fa-var-sort-amount-desc: "\f161"; +@fa-var-sort-asc: "\f0de"; +@fa-var-sort-desc: "\f0dd"; +@fa-var-sort-down: "\f0dd"; +@fa-var-sort-numeric-asc: "\f162"; +@fa-var-sort-numeric-desc: "\f163"; +@fa-var-sort-up: "\f0de"; +@fa-var-soundcloud: "\f1be"; +@fa-var-space-shuttle: "\f197"; +@fa-var-spinner: "\f110"; +@fa-var-spoon: "\f1b1"; +@fa-var-spotify: "\f1bc"; +@fa-var-square: "\f0c8"; +@fa-var-square-o: "\f096"; +@fa-var-stack-exchange: "\f18d"; +@fa-var-stack-overflow: "\f16c"; +@fa-var-star: "\f005"; +@fa-var-star-half: "\f089"; +@fa-var-star-half-empty: "\f123"; +@fa-var-star-half-full: "\f123"; +@fa-var-star-half-o: "\f123"; +@fa-var-star-o: "\f006"; +@fa-var-steam: "\f1b6"; +@fa-var-steam-square: "\f1b7"; +@fa-var-step-backward: "\f048"; +@fa-var-step-forward: "\f051"; +@fa-var-stethoscope: "\f0f1"; +@fa-var-sticky-note: "\f249"; +@fa-var-sticky-note-o: "\f24a"; +@fa-var-stop: "\f04d"; +@fa-var-stop-circle: "\f28d"; +@fa-var-stop-circle-o: "\f28e"; +@fa-var-street-view: "\f21d"; +@fa-var-strikethrough: "\f0cc"; +@fa-var-stumbleupon: "\f1a4"; +@fa-var-stumbleupon-circle: "\f1a3"; +@fa-var-subscript: "\f12c"; +@fa-var-subway: "\f239"; +@fa-var-suitcase: "\f0f2"; +@fa-var-sun-o: "\f185"; +@fa-var-superpowers: "\f2dd"; +@fa-var-superscript: "\f12b"; +@fa-var-support: "\f1cd"; +@fa-var-table: "\f0ce"; +@fa-var-tablet: "\f10a"; +@fa-var-tachometer: "\f0e4"; +@fa-var-tag: "\f02b"; +@fa-var-tags: "\f02c"; +@fa-var-tasks: "\f0ae"; +@fa-var-taxi: "\f1ba"; +@fa-var-telegram: "\f2c6"; +@fa-var-television: "\f26c"; +@fa-var-tencent-weibo: "\f1d5"; +@fa-var-terminal: "\f120"; +@fa-var-text-height: "\f034"; +@fa-var-text-width: "\f035"; +@fa-var-th: "\f00a"; +@fa-var-th-large: "\f009"; +@fa-var-th-list: "\f00b"; +@fa-var-themeisle: "\f2b2"; +@fa-var-thermometer: "\f2c7"; +@fa-var-thermometer-0: "\f2cb"; +@fa-var-thermometer-1: "\f2ca"; +@fa-var-thermometer-2: "\f2c9"; +@fa-var-thermometer-3: "\f2c8"; +@fa-var-thermometer-4: "\f2c7"; +@fa-var-thermometer-empty: "\f2cb"; +@fa-var-thermometer-full: "\f2c7"; +@fa-var-thermometer-half: "\f2c9"; +@fa-var-thermometer-quarter: "\f2ca"; +@fa-var-thermometer-three-quarters: "\f2c8"; +@fa-var-thumb-tack: "\f08d"; +@fa-var-thumbs-down: "\f165"; +@fa-var-thumbs-o-down: "\f088"; +@fa-var-thumbs-o-up: "\f087"; +@fa-var-thumbs-up: "\f164"; +@fa-var-ticket: "\f145"; +@fa-var-times: "\f00d"; +@fa-var-times-circle: "\f057"; +@fa-var-times-circle-o: "\f05c"; +@fa-var-times-rectangle: "\f2d3"; +@fa-var-times-rectangle-o: "\f2d4"; +@fa-var-tint: "\f043"; +@fa-var-toggle-down: "\f150"; +@fa-var-toggle-left: "\f191"; +@fa-var-toggle-off: "\f204"; +@fa-var-toggle-on: "\f205"; +@fa-var-toggle-right: "\f152"; +@fa-var-toggle-up: "\f151"; +@fa-var-trademark: "\f25c"; +@fa-var-train: "\f238"; +@fa-var-transgender: "\f224"; +@fa-var-transgender-alt: "\f225"; +@fa-var-trash: "\f1f8"; +@fa-var-trash-o: "\f014"; +@fa-var-tree: "\f1bb"; +@fa-var-trello: "\f181"; +@fa-var-tripadvisor: "\f262"; +@fa-var-trophy: "\f091"; +@fa-var-truck: "\f0d1"; +@fa-var-try: "\f195"; +@fa-var-tty: "\f1e4"; +@fa-var-tumblr: "\f173"; +@fa-var-tumblr-square: "\f174"; +@fa-var-turkish-lira: "\f195"; +@fa-var-tv: "\f26c"; +@fa-var-twitch: "\f1e8"; +@fa-var-twitter: "\f099"; +@fa-var-twitter-square: "\f081"; +@fa-var-umbrella: "\f0e9"; +@fa-var-underline: "\f0cd"; +@fa-var-undo: "\f0e2"; +@fa-var-universal-access: "\f29a"; +@fa-var-university: "\f19c"; +@fa-var-unlink: "\f127"; +@fa-var-unlock: "\f09c"; +@fa-var-unlock-alt: "\f13e"; +@fa-var-unsorted: "\f0dc"; +@fa-var-upload: "\f093"; +@fa-var-usb: "\f287"; +@fa-var-usd: "\f155"; +@fa-var-user: "\f007"; +@fa-var-user-circle: "\f2bd"; +@fa-var-user-circle-o: "\f2be"; +@fa-var-user-md: "\f0f0"; +@fa-var-user-o: "\f2c0"; +@fa-var-user-plus: "\f234"; +@fa-var-user-secret: "\f21b"; +@fa-var-user-times: "\f235"; +@fa-var-users: "\f0c0"; +@fa-var-vcard: "\f2bb"; +@fa-var-vcard-o: "\f2bc"; +@fa-var-venus: "\f221"; +@fa-var-venus-double: "\f226"; +@fa-var-venus-mars: "\f228"; +@fa-var-viacoin: "\f237"; +@fa-var-viadeo: "\f2a9"; +@fa-var-viadeo-square: "\f2aa"; +@fa-var-video-camera: "\f03d"; +@fa-var-vimeo: "\f27d"; +@fa-var-vimeo-square: "\f194"; +@fa-var-vine: "\f1ca"; +@fa-var-vk: "\f189"; +@fa-var-volume-control-phone: "\f2a0"; +@fa-var-volume-down: "\f027"; +@fa-var-volume-off: "\f026"; +@fa-var-volume-up: "\f028"; +@fa-var-warning: "\f071"; +@fa-var-wechat: "\f1d7"; +@fa-var-weibo: "\f18a"; +@fa-var-weixin: "\f1d7"; +@fa-var-whatsapp: "\f232"; +@fa-var-wheelchair: "\f193"; +@fa-var-wheelchair-alt: "\f29b"; +@fa-var-wifi: "\f1eb"; +@fa-var-wikipedia-w: "\f266"; +@fa-var-window-close: "\f2d3"; +@fa-var-window-close-o: "\f2d4"; +@fa-var-window-maximize: "\f2d0"; +@fa-var-window-minimize: "\f2d1"; +@fa-var-window-restore: "\f2d2"; +@fa-var-windows: "\f17a"; +@fa-var-won: "\f159"; +@fa-var-wordpress: "\f19a"; +@fa-var-wpbeginner: "\f297"; +@fa-var-wpexplorer: "\f2de"; +@fa-var-wpforms: "\f298"; +@fa-var-wrench: "\f0ad"; +@fa-var-xing: "\f168"; +@fa-var-xing-square: "\f169"; +@fa-var-y-combinator: "\f23b"; +@fa-var-y-combinator-square: "\f1d4"; +@fa-var-yahoo: "\f19e"; +@fa-var-yc: "\f23b"; +@fa-var-yc-square: "\f1d4"; +@fa-var-yelp: "\f1e9"; +@fa-var-yen: "\f157"; +@fa-var-yoast: "\f2b1"; +@fa-var-youtube: "\f167"; +@fa-var-youtube-play: "\f16a"; +@fa-var-youtube-square: "\f166"; + diff --git a/css/font-awesome/scss/_animated.scss b/css/font-awesome/scss/_animated.scss new file mode 100644 index 0000000..8a020db --- /dev/null +++ b/css/font-awesome/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/css/font-awesome/scss/_bordered-pulled.scss b/css/font-awesome/scss/_bordered-pulled.scss new file mode 100644 index 0000000..d4b85a0 --- /dev/null +++ b/css/font-awesome/scss/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/css/font-awesome/scss/_core.scss b/css/font-awesome/scss/_core.scss new file mode 100644 index 0000000..7425ef8 --- /dev/null +++ b/css/font-awesome/scss/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/css/font-awesome/scss/_fixed-width.scss b/css/font-awesome/scss/_fixed-width.scss new file mode 100644 index 0000000..b221c98 --- /dev/null +++ b/css/font-awesome/scss/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/css/font-awesome/scss/_icons.scss b/css/font-awesome/scss/_icons.scss new file mode 100644 index 0000000..e63e702 --- /dev/null +++ b/css/font-awesome/scss/_icons.scss @@ -0,0 +1,789 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } +.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } +.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } +.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } +.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } +.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } +.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } +.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } +.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } +.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } +.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } +.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } +.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } +.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } +.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } +.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } +.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } +.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } +.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } +.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } +.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } +.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } +.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } +.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } +.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } +.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } +.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } +.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } +.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } +.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/css/font-awesome/scss/_larger.scss b/css/font-awesome/scss/_larger.scss new file mode 100644 index 0000000..41e9a81 --- /dev/null +++ b/css/font-awesome/scss/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/css/font-awesome/scss/_list.scss b/css/font-awesome/scss/_list.scss new file mode 100644 index 0000000..7d1e4d5 --- /dev/null +++ b/css/font-awesome/scss/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/css/font-awesome/scss/_mixins.scss b/css/font-awesome/scss/_mixins.scss new file mode 100644 index 0000000..c3bbd57 --- /dev/null +++ b/css/font-awesome/scss/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/css/font-awesome/scss/_path.scss b/css/font-awesome/scss/_path.scss new file mode 100644 index 0000000..bb457c2 --- /dev/null +++ b/css/font-awesome/scss/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/css/font-awesome/scss/_rotated-flipped.scss b/css/font-awesome/scss/_rotated-flipped.scss new file mode 100644 index 0000000..a3558fd --- /dev/null +++ b/css/font-awesome/scss/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/css/font-awesome/scss/_screen-reader.scss b/css/font-awesome/scss/_screen-reader.scss new file mode 100644 index 0000000..637426f --- /dev/null +++ b/css/font-awesome/scss/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/css/font-awesome/scss/_stacked.scss b/css/font-awesome/scss/_stacked.scss new file mode 100644 index 0000000..aef7403 --- /dev/null +++ b/css/font-awesome/scss/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/css/font-awesome/scss/_variables.scss b/css/font-awesome/scss/_variables.scss new file mode 100644 index 0000000..498fc4a --- /dev/null +++ b/css/font-awesome/scss/_variables.scss @@ -0,0 +1,800 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.7.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-address-book: "\f2b9"; +$fa-var-address-book-o: "\f2ba"; +$fa-var-address-card: "\f2bb"; +$fa-var-address-card-o: "\f2bc"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bandcamp: "\f2d5"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-bath: "\f2cd"; +$fa-var-bathtub: "\f2cd"; +$fa-var-battery: "\f240"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-drivers-license: "\f2c2"; +$fa-var-drivers-license-o: "\f2c3"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eercast: "\f2da"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-open: "\f2b6"; +$fa-var-envelope-open-o: "\f2b7"; +$fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; +$fa-var-eraser: "\f12d"; +$fa-var-etsy: "\f2d7"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-free-code-camp: "\f2c5"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-grav: "\f2d6"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-handshake-o: "\f2b5"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-id-badge: "\f2c1"; +$fa-var-id-card: "\f2c2"; +$fa-var-id-card-o: "\f2c3"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-imdb: "\f2d8"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linode: "\f2b8"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meetup: "\f2e0"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microchip: "\f2db"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f2ae"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-podcast: "\f2ce"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quora: "\f2c4"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-ravelry: "\f2d9"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-s15: "\f2cd"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-shower: "\f2cc"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-snowflake-o: "\f2dc"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superpowers: "\f2dd"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-telegram: "\f2c6"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thermometer: "\f2c7"; +$fa-var-thermometer-0: "\f2cb"; +$fa-var-thermometer-1: "\f2ca"; +$fa-var-thermometer-2: "\f2c9"; +$fa-var-thermometer-3: "\f2c8"; +$fa-var-thermometer-4: "\f2c7"; +$fa-var-thermometer-empty: "\f2cb"; +$fa-var-thermometer-full: "\f2c7"; +$fa-var-thermometer-half: "\f2c9"; +$fa-var-thermometer-quarter: "\f2ca"; +$fa-var-thermometer-three-quarters: "\f2c8"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-times-rectangle: "\f2d3"; +$fa-var-times-rectangle-o: "\f2d4"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-circle: "\f2bd"; +$fa-var-user-circle-o: "\f2be"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-o: "\f2c0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-vcard: "\f2bb"; +$fa-var-vcard-o: "\f2bc"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-window-close: "\f2d3"; +$fa-var-window-close-o: "\f2d4"; +$fa-var-window-maximize: "\f2d0"; +$fa-var-window-minimize: "\f2d1"; +$fa-var-window-restore: "\f2d2"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpexplorer: "\f2de"; +$fa-var-wpforms: "\f298"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/css/font-awesome/scss/font-awesome.scss b/css/font-awesome/scss/font-awesome.scss new file mode 100644 index 0000000..f1c83aa --- /dev/null +++ b/css/font-awesome/scss/font-awesome.scss @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; +@import "screen-reader"; diff --git a/css/index.php b/css/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/css/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/css/mikhmon-ui.blue.min.css b/css/mikhmon-ui.blue.min.css new file mode 100644 index 0000000..783ddbf --- /dev/null +++ b/css/mikhmon-ui.blue.min.css @@ -0,0 +1 @@ +#brand,.box-group-icon,.box-group>div,input{vertical-align:middle}#notify,.group-item,input{box-sizing:border-box}.box-group-icon,body,button{line-height:1.5}#notify,.btn:hover{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(166,166,166,.15)}.input-group::after,.row::after{content:"";clear:both}body{font-family:-apple-system,BlinkMacSystemFont,"segoe ui",Roboto,"helvetica neue",Arial,sans-serif,"apple color emoji","segoe ui emoji","segoe ui symbol";font-size:14px;font-weight:400;color:#3E3E3E;text-align:left;background-color:#E9EBEE;margin:0}#brand,.modal-window header,.text-bold{font-weight:700}.navbar-left a,.navbar-right a{text-align:center;padding:14px 16px;transition:.3s;color:#f2f2f2;display:block;text-decoration:none}input{margin:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.footer{position:absolute;bottom:0;width:100%;height:60px;background:#6cf}#notify,.navbar,.sidenav{position:fixed}.plch-center::-webkit-input-placeholder{text-align:center}.plch-center:-moz-placeholder{text-align:center}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#E9EBEE;border:1px solid #008BC9}::-webkit-scrollbar-thumb{background:#008BC9;border:1px solid #008BC9}::-webkit-scrollbar-corner{background:#E9EBEE}::-webkit-scrollbar-track-piece the{background:#E9EBEE}::-webkit-resizer{background:#E9EBEE}.navbar{overflow:hidden;background-color:#008BC9;z-index:9;top:0;width:100%;height:50px;border-bottom:1px solid #0782bb}.dropd,.ses{border:none}.navbar-left a{float:left;font-size:17px}.dropd,.navbar-right a,.ses{font-size:14px}.navbar-right a{float:right}.navbar a:hover{color:#f2f2f2}.navbar-hover:hover{background-color:#1EA4E1}.ses{float:right;background-color:#008BC9;color:#f2f2f2;height:30px}.dropd{float:right;background-color:#F5F6F7;color:#3E3E3E;border-radius:3px}.active,.active .fa-caret-down,.dropdown-btn:hover .fa-caret-down{color:#f2f2f2}.spa{border-bottom:1px solid #008BC9}.sidenav{height:100%;width:0;z-index:9;top:0;left:0;background-color:#F5F5F5;overflow-x:hidden;margin-top:51px;border-right:1px solid #008BC9;transition:.5s}.dropdown-btn,.sidenav a{text-decoration:none;font-size:14px;display:block;border:none;background-color:none;width:90%;text-align:left;cursor:pointer;outline:0;transition:.5s;padding-right:10px;margin:5px 0 5px 5px}.sidenav i{font-size:20px;margin-right:2px;padding:7px 0 7px 7px}.dropdown-btn:hover,.sidenav a:hover{background-color:#008BC9;color:#f2f2f2;border-radius:5px}.active{background:#008BC9;border-radius:5px}.dropdown-container{display:none;transition:.5s}.dropdown-container i{padding-left:20px}.menu-open{display:block}#notify,#temp{display:none}.fa-caret-down,.fa-caret-left{float:right;color:#3E3E3E}[class*=col-],[class*=input-group-]{float:left}#notify{background-color:rgba(60,122,151,.6);color:#fff;border:1px solid #008BC9;width:200px;left:50%;margin-left:-100px;padding:6px 8px 8px;text-align:center;border-radius:3px}.box,.card{background-color:#FFF}.wraprer{width:100%}#main{transition:margin-left .5s;margin-top:55px}.main-container{padding:5px 5px 5px 7px}#brand{min-width:165px}#brand span{font-size:18px;line-height:10%}.chart{height:200px;margin:0 auto}.progress-bar,.progress-bar-blue,.progress-bar-red{height:10px;max-width:100%}.box{padding:10px;margin:5px;border-radius:3px;color:#2f353a}.box a{color:#f3f4f5;text-decoration:none}.card-header,.card-header a{color:#f2f2f2}.box h1,h3{padding:0;margin:0}.box-bordered{border:1px solid #008BC9}.box-group-icon,.btn{border:1px solid transparent}.bmh-50{min-height:50px}.bmh-55{min-height:55px}.bmh-60{min-height:60px}.bmh-65{min-height:65px}.bmh-70{min-height:70px}.bmh-75{min-height:75px}.bmh-80{min-height:80px}.bmh-85{min-height:85px}.bmh-90{min-height:90px}.bmh-95{min-height:95px}.bmh-100{min-height:100px}.box-group>div{display:table-cell}.box-group-icon{font-size:40px;display:inline-block;text-align:center;text-decoration:none;white-space:nowrap;width:25%;user-select:none;padding:5px 10px;margin:5px;border-radius:5px}.box-group-area{padding:5px}.login-box,.register-box{width:400px;margin:10px auto;padding-top:10%}@media (max-width:576px){.login-box,.register-box{width:95%;margin-top:20px;padding-top:2%}}.settings{width:66.66%;margin-top:5%;margin-left:auto;margin-right:auto}@media (max-width:750px){.settings{width:95%;margin-top:5px}}.card{margin:5px;border-radius:3px;border:1px solid #008BC9}.card a{text-decoration:none}.card h3{margin:0}.card-header{padding:5px 10px;margin-bottom:5px;border-bottom:1px solid #008BC9;background-color:#008BC9;border-radius:2px 2px 0 0}.bg-danger,.bg-info,.bg-primary,.bg-secondary,.bg-success,.bg-warning{color:#f3f4f5}.card-body{padding:5px 10px;margin-bottom:10px}.card-footer a{padding:0 0 5px;margin-top:5px;min-height:20px}.btn,.btn-login{display:inline-block;user-select:none;padding:3px 10px;vertical-align:middle;text-align:center;white-space:nowrap;cursor:pointer;text-decoration:none}.overflow{overflow-x:auto;overflow-y:auto;max-height:80vh}button{text-decoration:none;display:inline-block;border:none;background-color:none;font-size:14px}.btn{margin:5px;border-radius:5px}.btn-login:hover,.form-control:focus,.group-item:focus{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.btn-login{border:1px solid transparent;border-radius:5px}.group-item,.table td,.table th{padding:5px}[class*=bg-]{text-decoration:none}.bg-primary{background-color:#20a8d8}.bg-secondary{background-color:#73818f}.bg-success{background-color:#4dbd74}.bg-info{background-color:#63c2de}.bg-warning{background-color:#ffc107}.bg-danger{background-color:#f86c6b}.bg-light{background-color:#f3f4f5;color:#2f353a}.bg-blue,.bg-cyan,.bg-dark,.bg-green,.bg-indigo,.bg-orange,.bg-pink,.bg-purple,.bg-teal,.bg-yellow{color:#f3f4f5}.bg-dark{background-color:#2f353a}.bg-blue{background-color:#20a8d8}.bg-indigo{background-color:#6610f2}.bg-purple{background-color:#6f42c1}.bg-pink{background-color:#e83e8c}.bg-red{background-color:#f86c6b;color:#f3f4f5}.bg-orange{background-color:#f8cb00}.bg-yellow{background-color:#ffc107}.bg-green{background-color:#4dbd74}.bg-teal{background-color:#20c997}.bg-cyan{background-color:#17a2b8}.bg-white{background-color:#fff;color:#2f353a}.bg-grey{background-color:#73818f;color:#f3f4f5}.bg-grey-dark{background-color:#2f353a;color:#f3f4f5}.bg-light-blue{background-color:#63c2de;color:#f3f4f5}[class*=text-]{text-decoration:none}.text-primary{color:#20a8d8}.text-secondary{color:#73818f}.text-success{color:#4dbd74}.text-info{color:#63c2de}.text-warning{color:#ffc107}.text-danger{color:#f86c6b}.text-light{color:#f3f4f5}.text-dark{color:#2f353a}.text-blue{color:#20a8d8}.text-indigo{color:#6610f2}.text-purple{color:#6f42c1}.text-pink{color:#e83e8c}.text-red{color:#f86c6b}.text-orange{color:#f8cb00}.text-yellow{color:#ffc107}.text-green{color:#4dbd74}.text-teal{color:#20c997}.text-cyan{color:#17a2b8}.text-white{color:#fff}.text-grey{color:#73818f}.text-grey-dark{color:#2f353a}.text-light-blue{color:#63c2de}.align-middle{vertical-align:middle}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-nowrap{white-space:nowrap}.row::after{display:table}.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}.w-1{width:8.33%}.w-2{width:16.66%}.w-3{width:25%}.w-4{width:33.33%}.w-5{width:41.66%}.w-6{width:50%}.w-7{width:58.33%}.w-8{width:66.66%}.w-9{width:75%}.w-10{width:83.33%}.w-11{width:91.66%}.progress,.table,.w-12{width:100%}.progress{background-color:#E9EBEE;border-radius:5px}.progress-bar{background-color:#f3f4f5;border-radius:5px}.progress-bar-blue{background-color:#20a8d8;border-radius:5px}.progress-bar-red{background-color:#f86c6b;border-radius:5px}.table{background-color:#FFF;border-collapse:collapse!important}.table td,a,th{color:#3E3E3E;text-decoration:none}.table-bordered td,.table-bordered th{border:1px solid #008BC9!important}.table-hover:hover tbody tr:hover{background-color:#67bfe7}.tscroll tbody{display:block;overflow:auto;height:70vh}.tscroll thead{position:relative;display:block}.input-group::after{display:table}.form-control,.group-item{display:block;font-size:14px;background-color:#E9EBEE;color:#3E3E3E}.input-group-1{width:8.33%}.input-group-2{width:16.66%}.input-group-3{width:25%}.input-group-4{width:33.33%}.input-group-5{width:41.66%}.input-group-6{width:50%}.input-group-7{width:58.33%}.input-group-8{width:66.66%}.input-group-9{width:75%}.input-group-10{width:83.33%}.input-group-11{width:91.66%}.alert,.group-item,.input-group-12{width:100%}.group-item{border:1px solid #008BC9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.group-item-l{border-radius:3px 0 0 3px}.group-item-r{border-radius:0 3px 3px 0}.group-item-md{border-radius:none}.group-item:focus{color:#3E3E3E;border-color:#80bdff;outline:0}.group-item::placeholder{color:#3E3E3E;opacity:1}.radius-l-3{border-radius:3px 0 0 3px}.radius-r-3{border-radius:0 3px 3px 0}.radius-b-3{border-radius:0 0 3px 3px}.radius-3{border-radius:3px}.radius-l-5{border-radius:5px 0 0 5px}.radius-r-5{border-radius:0 5px 5px 0}.radius-5{border-radius:5px}.alert{padding:5px 0;border-radius:3px}.pd-2{padding:2px}.pd-2p5{padding:2.5px}.pd-3{padding:3px}.pd-3p5{padding:3.5px}.pd-4{padding:4px}.pd-4p5{padding:4.5px}.pd-5{padding:5px}.pd-5p5{padding:5.5px}.pd-6{padding:6px}.pd-7{padding:7px}.pd-8{padding:8px}.pd-9{padding:9px}.pd-10{padding:10px}.pd-t-2{padding-top:2px}.pd-t-3{padding-top:3px}.pd-t-4{padding-top:4px}.pd-t-5{padding-top:5px}.pd-t-6{padding-top:6px}.pd-t-7{padding-top:7px}.pd-t-8{padding-top:8px}.pd-t-9{padding-top:9px}.pd-t-10{padding-top:10px}.pd-b-2{padding-bottom:2px}.pd-b-3{padding-bottom:3px}.pd-b-4{padding-bottom:4px}.pd-b-5{padding-bottom:5px}.pd-b-6{padding-bottom:6px}.pd-b-7{padding-bottom:7px}.pd-b-8{padding-bottom:8px}.pd-b-9{padding-bottom:9px}.pd-b-10{padding-bottom:10px}.pd-r-2{padding-right:2px}.pd-r-3{padding-right:3px}.pd-r-4{padding-right:4px}.pd-r-5{padding-right:5px}.pd-r-6{padding-right:6px}.pd-r-7{padding-right:7px}.pd-r-8{padding-right:8px}.pd-r-9{padding-right:9px}.pd-r-10{padding-right:10px}.pd-l-2{padding-left:2px}.pd-l-3{padding-left:3px}.pd-l-4{padding-left:4px}.pd-l-5{padding-left:5px}.pd-l-6{padding-left:6px}.pd-l-7{padding-left:7px}.pd-l-8{padding-left:8px}.pd-l-9{padding-left:9px}.pd-l-10{padding-left:10px}.mr-a{margin:auto}.mr-2{margin:2px}.mr-3{margin:3px}.mr-4{margin:4px}.mr-5{margin:5px}.mr-6{margin:6px}.mr-7{margin:7px}.mr-8{margin:8px}.mr-9{margin:9px}.mr-10{margin:10px}.mr-t-2{margin-top:2px}.mr-t-3{margin-top:3px}.mr-t-4{margin-top:4px}.mr-t-5{margin-top:5px}.mr-t-6{margin-top:6px}.mr-t-7{margin-top:7px}.mr-t-8{margin-top:8px}.mr-t-9{margin-top:9px}.mr-t-10{margin-top:10px}.mr-b-2{margin-bottom:2px}.mr-b-3{margin-bottom:3px}.mr-b-4{margin-bottom:4px}.mr-b-5{margin-bottom:5px}.mr-b-6{margin-bottom:6px}.mr-b-7{margin-bottom:7px}.mr-b-8{margin-bottom:8px}.mr-b-9{margin-bottom:9px}.mr-b-10{margin-bottom:10px}.mr-r-2{margin-right:2px}.mr-r-3{margin-right:3px}.mr-r-4{margin-right:4px}.mr-r-5{margin-right:5px}.mr-r-6{margin-right:6px}.mr-r-7{margin-right:7px}.mr-r-8{margin-right:8px}.mr-r-9{margin-right:9px}.mr-r-10{margin-right:10px}.mr-l-2{margin-left:2px}.mr-l-3{margin-left:3px}.mr-l-4{margin-left:4px}.mr-l-5{margin-left:5px}.mr-l-6{margin-left:6px}.mr-l-7{margin-left:7px}.mr-l-8{margin-left:8px}.mr-l-9{margin-left:9px}.mr-l-10{margin-left:10px}.pointer{cursor:pointer}.form-control{width:100%;padding:5px;border:1px solid #008BC9;border-radius:3px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.form-control:focus{color:#3E3E3E;border-color:#80bdff;outline:0}.form-control::placeholder{color:#3E3E3E;opacity:1}.modal-window{position:fixed;background-color:rgba(241,241,241,.507);top:0;right:0;bottom:0;left:0;z-index:999;opacity:0;pointer-events:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;border-radius:5px}.modal-window:target{opacity:1;pointer-events:auto}.modal-window>div{width:33.33%;position:relative;margin:10% auto;padding:1rem;background:#E9EBEE;color:#2f353a;border-radius:3px;border:1px solid #008BC9}.modal-close{color:#2f353a;line-height:25px;position:absolute;right:0;text-align:center;top:0;width:50px;text-decoration:none;background-color:#f86c6b;border-top-right-radius:3px;border-bottom-left-radius:3px}.modal-close:hover{color:#fff}.modal-window h1{font-size:150%;margin:0 0 15px}@media screen and (min-width:750px){.sidenav{width:210px}#main{margin-left:210px}#openNav,#shareWA{display:none}#closeNav{display:block}}@media screen and (max-width:750px){.sidenav{width:0;border-right:0}#brand,#closeNav,#cpage{display:none}#main{margin-left:0}#openNav{display:block}#shareWA{display:inline-block}.modal-window>div{width:80%}[class*=col-]{width:100%}.col-box-1{width:8.33%}.col-box-2{width:16.66%}.col-box-3{width:25%}.col-box-4{width:33.33%}.col-box-5{width:41.66%}.col-box-6{width:50%}.col-box-7{width:58.33%}.col-box-8{width:66.66%}.col-box-9{width:75%}.col-box-10{width:83.33%}.col-box-11{width:91.66%}.col-box-12{width:100%}}.lds-dual-ring{display:inline-block;width:64px;height:64px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px}.lds-dual-ring:after{content:" ";display:block;width:46px;height:46px;margin:1px;border-radius:50%;border:5px solid #008BC9;border-color:#008BC9 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:rgba(255,255,255,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-material .cm-keyword{color:rgba(199,146,234,1)}.cm-s-material .cm-operator{color:rgba(233,237,237,1)}.cm-s-material .cm-variable-2{color:#80CBC4}.cm-s-material .cm-builtin{color:#DECB6B}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#F77669}.cm-s-material .cm-def{color:rgba(233,237,237,1)}.cm-s-material .cm-string{color:#C3E88D}.cm-s-material .cm-string-2{color:#80CBC4}.cm-s-material .cm-comment{color:#546E7A}.cm-s-material .cm-variable{color:#82B1FF}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80CBC4}.cm-s-material .cm-attribute{color:#FFCB6B}.cm-s-material .cm-property{color:#80CBAE}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#DECB6B}.cm-s-material .cm-tag{color:rgba(255,83,112,1)}.cm-s-material .cm-error{color:rgba(255,255,255,1);background-color:#EC5F67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important} \ No newline at end of file diff --git a/css/mikhmon-ui.dark.min.css b/css/mikhmon-ui.dark.min.css new file mode 100644 index 0000000..40b3d46 --- /dev/null +++ b/css/mikhmon-ui.dark.min.css @@ -0,0 +1 @@ +#brand,.box-group-icon,.box-group>div,input{vertical-align:middle}#notify,.group-item,input{box-sizing:border-box}.box-group-icon,body,button{line-height:1.5}#notify,.btn:hover{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(166,166,166,.15)}.input-group::after,.row::after{content:"";clear:both}body{font-family:-apple-system,BlinkMacSystemFont,"segoe ui",Roboto,"helvetica neue",Arial,sans-serif,"apple color emoji","segoe ui emoji","segoe ui symbol";font-size:14px;font-weight:400;color:#e4e7ea;text-align:left;background-color:#2f353a;margin:0}#brand,.modal-window header,.text-bold{font-weight:700}.navbar-left a,.navbar-right a{color:#e4e7ea;text-align:center;padding:14px 16px;transition:.3s;display:block;text-decoration:none}input{margin:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.footer{position:absolute;bottom:0;width:100%;height:60px;background:#6cf}#notify,.navbar,.sidenav{position:fixed}.plch-center::-webkit-input-placeholder{text-align:center}.plch-center:-moz-placeholder{text-align:center}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#3a4149;border:1px solid #2f353a}::-webkit-scrollbar-thumb{background:#343b41;border:1px solid #2f353a}::-webkit-scrollbar-corner{background:#3a4149}::-webkit-scrollbar-track-piece the{background:#3a4149}::-webkit-resizer{background:#3a4149}.navbar{overflow:hidden;background-color:#3a4149;z-index:9;top:0;width:100%;height:50px;border-bottom:1px solid #23282c}.dropd,.ses{border:none}.navbar-left a{float:left;font-size:17px}.dropd,.navbar-right a,.ses{font-size:14px}.navbar-right a{float:right}.navbar a:hover{color:#fff}.navbar-hover:hover{background-color:#2f353a}.ses{float:right;background-color:#3a4149;color:#f2f2f2;height:30px}.dropd{float:right;background-color:#343b41;color:#e4e7ea;border-radius:3px}.spa{border-bottom:1px solid #23282c}.sidenav{height:100%;width:0;z-index:9;top:0;left:0;background-color:#3a4149;overflow-x:hidden;margin-top:51px;border-right:1px solid #23282c;transition:.5s}.dropdown-btn,.sidenav a{text-decoration:none;font-size:14px;color:#e4e7ea;display:block;border:none;background-color:none;width:90%;text-align:left;cursor:pointer;outline:0;transition:.5s;padding-right:10px;margin:5px 0 5px 5px}.sidenav i{font-size:20px;margin-right:2px;padding:7px 0 7px 7px}.dropdown-btn:hover,.sidenav a:hover{color:#f1f1f1;background-color:#20a8d8;border-radius:5px}.active{background:#343b41;border-radius:5px}.dropdown-container{display:none;transition:.5s}.dropdown-container i{padding-left:20px}.menu-open{display:block}#notify,#temp{display:none}.fa-caret-down,.fa-caret-left{float:right;color:#ccc}[class*=col-],[class*=input-group-]{float:left}#notify{background-color:rgba(58,65,73,.6);color:#fff;border:1px solid #c1c1c1;width:200px;left:50%;margin-left:-100px;padding:6px 8px 8px;text-align:center;border-radius:3px}.box,.card{background-color:#3a4149}.bg-danger,.bg-info,.bg-primary,.bg-secondary,.bg-success,.bg-warning,.box,.box a{color:#f3f4f5}.wraprer{width:100%}#main{transition:margin-left .5s;margin-top:55px}.main-container{padding:5px 5px 5px 7px}#brand{min-width:165px}#brand span{font-size:18px;line-height:10%}.chart{height:200px;margin:0 auto}.progress-bar,.progress-bar-blue,.progress-bar-red{height:10px;max-width:100%}.box{padding:10px;margin:5px;border-radius:3px}.box a{text-decoration:none}.box h1,h3{padding:0;margin:0}.box-bordered{border:1px solid #23282c}.box-group-icon,.btn{border:1px solid transparent}.bmh-50{min-height:50px}.bmh-55{min-height:55px}.bmh-60{min-height:60px}.bmh-65{min-height:65px}.bmh-70{min-height:70px}.bmh-75{min-height:75px}.bmh-80{min-height:80px}.bmh-85{min-height:85px}.bmh-90{min-height:90px}.bmh-95{min-height:95px}.bmh-100{min-height:100px}.box-group>div{display:table-cell}.box-group-icon{font-size:40px;display:inline-block;text-align:center;text-decoration:none;white-space:nowrap;width:25%;user-select:none;padding:5px 10px;margin:5px;border-radius:5px}.box-group-area{padding:5px}.login-box,.register-box{width:400px;margin:10px auto;padding-top:10%}@media (max-width:576px){.login-box,.register-box{width:95%;margin-top:20px;padding-top:2%}}.settings{width:66.66%;margin-top:5%;margin-left:auto;margin-right:auto}@media (max-width:750px){.settings{width:95%;margin-top:5px}}.card{margin:5px;border-radius:3px;border:1px solid #23282c}.card a{text-decoration:none}.card h3{margin:0}.card-header{padding:5px 10px;margin-bottom:5px;border-bottom:1px solid #23282c;background-color:#343b41;border-radius:2px 2px 0 0}.card-body{padding:5px 10px;margin-bottom:10px}.card-footer a{padding:0 0 5px;margin-top:5px;min-height:20px}.btn,.btn-login{display:inline-block;user-select:none;padding:3px 10px;vertical-align:middle;text-align:center;white-space:nowrap;cursor:pointer;text-decoration:none}.overflow{overflow-x:auto;overflow-y:auto;max-height:80vh}button{text-decoration:none;display:inline-block;border:none;background-color:none;font-size:14px}.btn{margin:5px;border-radius:5px}.btn-login:hover,.form-control:focus,.group-item:focus{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.btn-login{border:1px solid transparent;border-radius:5px}.group-item,.table td,.table th{padding:5px}[class*=bg-]{text-decoration:none}.bg-primary{background-color:#20a8d8}.bg-secondary{background-color:#73818f}.bg-success{background-color:#4dbd74}.bg-info{background-color:#63c2de}.bg-warning{background-color:#ffc107}.bg-danger{background-color:#f86c6b}.bg-light{background-color:#f3f4f5;color:#2f353a}.bg-blue,.bg-cyan,.bg-dark,.bg-green,.bg-indigo,.bg-orange,.bg-pink,.bg-purple,.bg-teal,.bg-yellow{color:#f3f4f5}.bg-dark{background-color:#2f353a}.bg-blue{background-color:#20a8d8}.bg-indigo{background-color:#6610f2}.bg-purple{background-color:#6f42c1}.bg-pink{background-color:#e83e8c}.bg-red{background-color:#f86c6b;color:#f3f4f5}.bg-orange{background-color:#f8cb00}.bg-yellow{background-color:#ffc107}.bg-green{background-color:#4dbd74}.bg-teal{background-color:#20c997}.bg-cyan{background-color:#17a2b8}.bg-white{background-color:#fff;color:#2f353a}.bg-grey{background-color:#73818f;color:#f3f4f5}.bg-grey-dark{background-color:#2f353a;color:#f3f4f5}.bg-light-blue{background-color:#63c2de;color:#f3f4f5}[class*=text-]{text-decoration:none}.text-primary{color:#20a8d8}.text-secondary{color:#73818f}.text-success{color:#4dbd74}.text-info{color:#63c2de}.text-warning{color:#ffc107}.text-danger{color:#f86c6b}.text-light{color:#f3f4f5}.text-dark{color:#2f353a}.text-blue{color:#20a8d8}.text-indigo{color:#6610f2}.text-purple{color:#6f42c1}.text-pink{color:#e83e8c}.text-red{color:#f86c6b}.text-orange{color:#f8cb00}.text-yellow{color:#ffc107}.text-green{color:#4dbd74}.text-teal{color:#20c997}.text-cyan{color:#17a2b8}.text-white{color:#fff}.text-grey{color:#73818f}.text-grey-dark{color:#2f353a}.text-light-blue{color:#63c2de}.align-middle{vertical-align:middle}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-nowrap{white-space:nowrap}.row::after{display:table}.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}.w-1{width:8.33%}.w-2{width:16.66%}.w-3{width:25%}.w-4{width:33.33%}.w-5{width:41.66%}.w-6{width:50%}.w-7{width:58.33%}.w-8{width:66.66%}.w-9{width:75%}.w-10{width:83.33%}.w-11{width:91.66%}.progress,.table,.w-12{width:100%}.progress{background-color:#2f353a;border-radius:5px}.progress-bar{background-color:#f3f4f5;border-radius:5px}.progress-bar-blue{background-color:#20a8d8;border-radius:5px}.progress-bar-red{background-color:#f86c6b;border-radius:5px}.table{border-collapse:collapse!important}.table td,a,th{color:#f3f4f5;text-decoration:none}.table-bordered td,.table-bordered th{border:1px solid #2f353a!important}.table-hover:hover tbody tr:hover{background-color:#343b41}.tscroll tbody{display:block;overflow:auto;height:70vh}.tscroll thead{position:relative;display:block}.input-group::after{display:table}.form-control,.group-item{display:block;font-size:14px;background-color:#2f353a;color:#f3f4f5}.input-group-1{width:8.33%}.input-group-2{width:16.66%}.input-group-3{width:25%}.input-group-4{width:33.33%}.input-group-5{width:41.66%}.input-group-6{width:50%}.input-group-7{width:58.33%}.input-group-8{width:66.66%}.input-group-9{width:75%}.input-group-10{width:83.33%}.input-group-11{width:91.66%}.alert,.group-item,.input-group-12{width:100%}.group-item{border:1px solid #23282c;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.group-item-l{border-radius:3px 0 0 3px}.group-item-r{border-radius:0 3px 3px 0}.group-item-md{border-radius:none}.group-item:focus{color:#f3f4f5;border-color:#80bdff;outline:0}.group-item::placeholder{color:#f3f4f5;opacity:1}.radius-l-3{border-radius:3px 0 0 3px}.radius-r-3{border-radius:0 3px 3px 0}.radius-b-3{border-radius:0 0 3px 3px}.radius-3{border-radius:3px}.radius-l-5{border-radius:5px 0 0 5px}.radius-r-5{border-radius:0 5px 5px 0}.radius-5{border-radius:5px}.alert{padding:5px 0;border-radius:3px}.pd-2{padding:2px}.pd-2p5{padding:2.5px}.pd-3{padding:3px}.pd-3p5{padding:3.5px}.pd-4{padding:4px}.pd-4p5{padding:4.5px}.pd-5{padding:5px}.pd-5p5{padding:5.5px}.pd-6{padding:6px}.pd-7{padding:7px}.pd-8{padding:8px}.pd-9{padding:9px}.pd-10{padding:10px}.pd-t-2{padding-top:2px}.pd-t-3{padding-top:3px}.pd-t-4{padding-top:4px}.pd-t-5{padding-top:5px}.pd-t-6{padding-top:6px}.pd-t-7{padding-top:7px}.pd-t-8{padding-top:8px}.pd-t-9{padding-top:9px}.pd-t-10{padding-top:10px}.pd-b-2{padding-bottom:2px}.pd-b-3{padding-bottom:3px}.pd-b-4{padding-bottom:4px}.pd-b-5{padding-bottom:5px}.pd-b-6{padding-bottom:6px}.pd-b-7{padding-bottom:7px}.pd-b-8{padding-bottom:8px}.pd-b-9{padding-bottom:9px}.pd-b-10{padding-bottom:10px}.pd-r-2{padding-right:2px}.pd-r-3{padding-right:3px}.pd-r-4{padding-right:4px}.pd-r-5{padding-right:5px}.pd-r-6{padding-right:6px}.pd-r-7{padding-right:7px}.pd-r-8{padding-right:8px}.pd-r-9{padding-right:9px}.pd-r-10{padding-right:10px}.pd-l-2{padding-left:2px}.pd-l-3{padding-left:3px}.pd-l-4{padding-left:4px}.pd-l-5{padding-left:5px}.pd-l-6{padding-left:6px}.pd-l-7{padding-left:7px}.pd-l-8{padding-left:8px}.pd-l-9{padding-left:9px}.pd-l-10{padding-left:10px}.mr-a{margin:auto}.mr-2{margin:2px}.mr-3{margin:3px}.mr-4{margin:4px}.mr-5{margin:5px}.mr-6{margin:6px}.mr-7{margin:7px}.mr-8{margin:8px}.mr-9{margin:9px}.mr-10{margin:10px}.mr-t-2{margin-top:2px}.mr-t-3{margin-top:3px}.mr-t-4{margin-top:4px}.mr-t-5{margin-top:5px}.mr-t-6{margin-top:6px}.mr-t-7{margin-top:7px}.mr-t-8{margin-top:8px}.mr-t-9{margin-top:9px}.mr-t-10{margin-top:10px}.mr-b-2{margin-bottom:2px}.mr-b-3{margin-bottom:3px}.mr-b-4{margin-bottom:4px}.mr-b-5{margin-bottom:5px}.mr-b-6{margin-bottom:6px}.mr-b-7{margin-bottom:7px}.mr-b-8{margin-bottom:8px}.mr-b-9{margin-bottom:9px}.mr-b-10{margin-bottom:10px}.mr-r-2{margin-right:2px}.mr-r-3{margin-right:3px}.mr-r-4{margin-right:4px}.mr-r-5{margin-right:5px}.mr-r-6{margin-right:6px}.mr-r-7{margin-right:7px}.mr-r-8{margin-right:8px}.mr-r-9{margin-right:9px}.mr-r-10{margin-right:10px}.mr-l-2{margin-left:2px}.mr-l-3{margin-left:3px}.mr-l-4{margin-left:4px}.mr-l-5{margin-left:5px}.mr-l-6{margin-left:6px}.mr-l-7{margin-left:7px}.mr-l-8{margin-left:8px}.mr-l-9{margin-left:9px}.mr-l-10{margin-left:10px}.pointer{cursor:pointer}.form-control{width:100%;padding:5px;border:1px solid #23282c;border-radius:3px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.form-control:focus{color:#f3f4f5;border-color:#80bdff;outline:0}.form-control::placeholder{color:#f3f4f5;opacity:1}.modal-window{position:fixed;background-color:rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;z-index:999;opacity:0;pointer-events:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;border-radius:5px}.modal-window:target{opacity:1;pointer-events:auto}.modal-window>div{width:33.33%;position:relative;margin:10% auto;padding:1rem;background:#3a4149;color:#f3f4f5;border-radius:3px;border:1px solid #23282c}.modal-close{color:#2f353a;line-height:25px;position:absolute;right:0;text-align:center;top:0;width:50px;text-decoration:none;background-color:#f86c6b;border-top-right-radius:3px;border-bottom-left-radius:3px}.modal-close:hover{color:#fff}.modal-window h1{font-size:150%;margin:0 0 15px}@media screen and (min-width:750px){.sidenav{width:210px}#main{margin-left:210px}#openNav,#shareWA{display:none}#closeNav{display:block}}@media screen and (max-width:750px){.sidenav{width:0;border-right:0}#brand,#closeNav,#cpage{display:none}#main{margin-left:0}#openNav{display:block}#shareWA{display:inline-block}.modal-window>div{width:80%}[class*=col-]{width:100%}.col-box-1{width:8.33%}.col-box-2{width:16.66%}.col-box-3{width:25%}.col-box-4{width:33.33%}.col-box-5{width:41.66%}.col-box-6{width:50%}.col-box-7{width:58.33%}.col-box-8{width:66.66%}.col-box-9{width:75%}.col-box-10{width:83.33%}.col-box-11{width:91.66%}.col-box-12{width:100%}}.lds-dual-ring{display:inline-block;width:64px;height:64px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px}.lds-dual-ring:after{content:" ";display:block;width:46px;height:46px;margin:1px;border-radius:50%;border:5px solid #e4e7ea;border-color:#e4e7ea transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:rgba(255,255,255,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-material .cm-keyword{color:rgba(199,146,234,1)}.cm-s-material .cm-operator{color:rgba(233,237,237,1)}.cm-s-material .cm-variable-2{color:#80CBC4}.cm-s-material .cm-builtin{color:#DECB6B}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#F77669}.cm-s-material .cm-def{color:rgba(233,237,237,1)}.cm-s-material .cm-string{color:#C3E88D}.cm-s-material .cm-string-2{color:#80CBC4}.cm-s-material .cm-comment{color:#546E7A}.cm-s-material .cm-variable{color:#82B1FF}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80CBC4}.cm-s-material .cm-attribute{color:#FFCB6B}.cm-s-material .cm-property{color:#80CBAE}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#DECB6B}.cm-s-material .cm-tag{color:rgba(255,83,112,1)}.cm-s-material .cm-error{color:rgba(255,255,255,1);background-color:#EC5F67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important} \ No newline at end of file diff --git a/css/mikhmon-ui.green.min.css b/css/mikhmon-ui.green.min.css new file mode 100644 index 0000000..148b4b7 --- /dev/null +++ b/css/mikhmon-ui.green.min.css @@ -0,0 +1 @@ +#brand,.box-group-icon,.box-group>div,input{vertical-align:middle}#notify,.group-item,input{box-sizing:border-box}.box-group-icon,body,button{line-height:1.5}#notify,.btn:hover{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(166,166,166,.15)}.input-group::after,.row::after{content:"";clear:both}body{font-family:-apple-system,BlinkMacSystemFont,"segoe ui",Roboto,"helvetica neue",Arial,sans-serif,"apple color emoji","segoe ui emoji","segoe ui symbol";font-size:14px;font-weight:400;color:#3E3E3E;text-align:left;background-color:#E9EBEE;margin:0}#brand,.modal-window header,.text-bold{font-weight:700}.navbar-left a,.navbar-right a{text-align:center;padding:14px 16px;transition:.3s;color:#f2f2f2;display:block;text-decoration:none}input{margin:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.footer{position:absolute;bottom:0;width:100%;height:60px;background:#6cf}#notify,.navbar,.sidenav{position:fixed}.plch-center::-webkit-input-placeholder{text-align:center}.plch-center:-moz-placeholder{text-align:center}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#E9EBEE;border:1px solid #4dbd74}::-webkit-scrollbar-thumb{background:#4dbd74;border:1px solid #4dbd74}::-webkit-scrollbar-corner{background:#E9EBEE}::-webkit-scrollbar-track-piece the{background:#E9EBEE}::-webkit-resizer{background:#E9EBEE}.navbar{overflow:hidden;background-color:#4dbd74;z-index:9;top:0;width:100%;height:50px;border-bottom:1px solid #4baf6e}.dropd,.ses{border:none}.navbar-left a{float:left;font-size:17px}.dropd,.navbar-right a,.ses{font-size:14px}.navbar-right a{float:right}.navbar a:hover{color:#f2f2f2}.navbar-hover:hover{background-color:#8fdaa9}.ses{float:right;background-color:#4dbd74;color:#f2f2f2;height:30px}.dropd{float:right;background-color:#F5F6F7;color:#3E3E3E;border-radius:3px}.active,.active .fa-caret-down,.dropdown-btn:hover .fa-caret-down{color:#f2f2f2}.spa{border-bottom:1px solid #4dbd74}.sidenav{height:100%;width:0;z-index:9;top:0;left:0;background-color:#F5F5F5;overflow-x:hidden;margin-top:51px;border-right:1px solid #4dbd74;transition:.5s}.dropdown-btn,.sidenav a{text-decoration:none;font-size:14px;display:block;border:none;background-color:none;width:90%;text-align:left;cursor:pointer;outline:0;transition:.5s;padding-right:10px;margin:5px 0 5px 5px}.sidenav i{font-size:20px;margin-right:2px;padding:7px 0 7px 7px}.dropdown-btn:hover,.sidenav a:hover{background-color:#4dbd74;border-radius:5px;color:#f2f2f2}.active{background:#4dbd74;border-radius:5px}.dropdown-container{display:none;transition:.5s}.dropdown-container i{padding-left:20px}.menu-open{display:block}#notify,#temp{display:none}.fa-caret-down,.fa-caret-left{float:right;color:#3E3E3E}[class*=col-],[class*=input-group-]{float:left}#notify{background-color:rgba(56,150,89,.6);color:#fff;border:1px solid #4dbd74;width:200px;left:50%;margin-left:-100px;padding:6px 8px 8px;text-align:center;border-radius:3px}.box,.card{background-color:#FFF}.wraprer{width:100%}#main{transition:margin-left .5s;margin-top:55px}.main-container{padding:5px 5px 5px 7px}#brand{min-width:165px}#brand span{font-size:18px;line-height:10%}.chart{height:200px;margin:0 auto}.progress-bar,.progress-bar-blue,.progress-bar-red{height:10px;max-width:100%}.box{padding:10px;margin:5px;border-radius:3px;color:#2f353a}.bg-danger,.bg-info,.bg-primary,.bg-secondary,.bg-success,.bg-warning,.box a,.card-header,.card-header a{color:#f3f4f5}.box a{text-decoration:none}.box h1,h3{padding:0;margin:0}.box-bordered{border:1px solid #4dbd74}.box-group-icon,.btn{border:1px solid transparent}.bmh-50{min-height:50px}.bmh-55{min-height:55px}.bmh-60{min-height:60px}.bmh-65{min-height:65px}.bmh-70{min-height:70px}.bmh-75{min-height:75px}.bmh-80{min-height:80px}.bmh-85{min-height:85px}.bmh-90{min-height:90px}.bmh-95{min-height:95px}.bmh-100{min-height:100px}.box-group>div{display:table-cell}.box-group-icon{font-size:40px;display:inline-block;text-align:center;text-decoration:none;white-space:nowrap;width:25%;user-select:none;padding:5px 10px;margin:5px;border-radius:5px}.box-group-area{padding:5px}.login-box,.register-box{width:400px;margin:10px auto;padding-top:10%}@media (max-width:576px){.login-box,.register-box{width:95%;margin-top:20px;padding-top:2%}}.settings{width:66.66%;margin-top:5%;margin-left:auto;margin-right:auto}@media (max-width:750px){.settings{width:95%;margin-top:5px}}.card{margin:5px;border-radius:3px;border:1px solid #4dbd74}.card a{text-decoration:none}.card h3{margin:0}.card-header{padding:5px 10px;margin-bottom:5px;border-bottom:1px solid #4dbd74;background-color:#57cc80;border-radius:2px 2px 0 0}.card-body{padding:5px 10px;margin-bottom:10px}.card-footer a{padding:0 0 5px;margin-top:5px;min-height:20px}.btn,.btn-login{display:inline-block;user-select:none;padding:3px 10px;vertical-align:middle;text-align:center;white-space:nowrap;cursor:pointer;text-decoration:none}.overflow{overflow-x:auto;overflow-y:auto;max-height:80vh}button{text-decoration:none;display:inline-block;border:none;background-color:none;font-size:14px}.btn{margin:5px;border-radius:5px}.btn-login{border:1px solid transparent;border-radius:5px}.group-item,.table td,.table th{padding:5px}.btn-login:hover{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.form-control:focus,.group-item:focus{outline:0;box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgb(142,214,167,.25)}[class*=bg-]{text-decoration:none}.bg-primary{background-color:#4dbd74}.bg-secondary{background-color:#73818f}.bg-success{background-color:#4dbd74}.bg-info{background-color:#63c2de}.bg-warning{background-color:#ffc107}.bg-danger{background-color:#f86c6b}.bg-light{background-color:#f3f4f5;color:#2f353a}.bg-blue,.bg-cyan,.bg-dark,.bg-green,.bg-indigo,.bg-orange,.bg-pink,.bg-purple,.bg-teal,.bg-yellow{color:#f3f4f5}.bg-dark{background-color:#2f353a}.bg-blue{background-color:#20a8d8}.bg-indigo{background-color:#6610f2}.bg-purple{background-color:#6f42c1}.bg-pink{background-color:#e83e8c}.bg-red{background-color:#f86c6b;color:#f3f4f5}.bg-orange{background-color:#f8cb00}.bg-yellow{background-color:#ffc107}.bg-green{background-color:#4dbd74}.bg-teal{background-color:#20c997}.bg-cyan{background-color:#17a2b8}.bg-white{background-color:#fff;color:#2f353a}.bg-grey{background-color:#73818f;color:#f3f4f5}.bg-grey-dark{background-color:#2f353a;color:#f3f4f5}.bg-light-blue{background-color:#63c2de;color:#f3f4f5}[class*=text-]{text-decoration:none}.text-primary{color:#20a8d8}.text-secondary{color:#73818f}.text-success{color:#4dbd74}.text-info{color:#63c2de}.text-warning{color:#ffc107}.text-danger{color:#f86c6b}.text-light{color:#f3f4f5}.text-dark{color:#2f353a}.text-blue{color:#20a8d8}.text-indigo{color:#6610f2}.text-purple{color:#6f42c1}.text-pink{color:#e83e8c}.text-red{color:#f86c6b}.text-orange{color:#f8cb00}.text-yellow{color:#ffc107}.text-green{color:#4dbd74}.text-teal{color:#20c997}.text-cyan{color:#17a2b8}.text-white{color:#fff}.text-grey{color:#73818f}.text-grey-dark{color:#2f353a}.text-light-blue{color:#63c2de}.align-middle{vertical-align:middle}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-nowrap{white-space:nowrap}.row::after{display:table}.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}.w-1{width:8.33%}.w-2{width:16.66%}.w-3{width:25%}.w-4{width:33.33%}.w-5{width:41.66%}.w-6{width:50%}.w-7{width:58.33%}.w-8{width:66.66%}.w-9{width:75%}.w-10{width:83.33%}.w-11{width:91.66%}.progress,.table,.w-12{width:100%}.progress{background-color:#E9EBEE;border-radius:5px}.progress-bar{background-color:#f3f4f5;border-radius:5px}.progress-bar-blue{background-color:#20a8d8;border-radius:5px}.progress-bar-red{background-color:#f86c6b;border-radius:5px}.table{background-color:#FFF;border-collapse:collapse!important}.table td,a,th{color:#3E3E3E;text-decoration:none}.table-bordered td,.table-bordered th{border:1px solid #3BB766!important}.table-hover:hover tbody tr:hover{background-color:#8ed6a7}.tscroll tbody{display:block;overflow:auto;height:70vh}.tscroll thead{position:relative;display:block}.input-group::after{display:table}.form-control,.group-item{display:block;font-size:14px;background-color:#E9EBEE;color:#3E3E3E}.input-group-1{width:8.33%}.input-group-2{width:16.66%}.input-group-3{width:25%}.input-group-4{width:33.33%}.input-group-5{width:41.66%}.input-group-6{width:50%}.input-group-7{width:58.33%}.input-group-8{width:66.66%}.input-group-9{width:75%}.input-group-10{width:83.33%}.input-group-11{width:91.66%}.alert,.group-item,.input-group-12{width:100%}.group-item{border:1px solid #4dbd74;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.group-item-l{border-radius:3px 0 0 3px}.group-item-r{border-radius:0 3px 3px 0}.group-item-md{border-radius:none}.group-item:focus{color:#3E3E3E;border-color:#4dbd74}.group-item::placeholder{color:#3E3E3E;opacity:1}.radius-l-3{border-radius:3px 0 0 3px}.radius-r-3{border-radius:0 3px 3px 0}.radius-b-3{border-radius:0 0 3px 3px}.radius-3{border-radius:3px}.radius-l-5{border-radius:5px 0 0 5px}.radius-r-5{border-radius:0 5px 5px 0}.radius-5{border-radius:5px}.alert{padding:5px 0;border-radius:3px}.pd-2{padding:2px}.pd-2p5{padding:2.5px}.pd-3{padding:3px}.pd-3p5{padding:3.5px}.pd-4{padding:4px}.pd-4p5{padding:4.5px}.pd-5{padding:5px}.pd-5p5{padding:5.5px}.pd-6{padding:6px}.pd-7{padding:7px}.pd-8{padding:8px}.pd-9{padding:9px}.pd-10{padding:10px}.pd-t-2{padding-top:2px}.pd-t-3{padding-top:3px}.pd-t-4{padding-top:4px}.pd-t-5{padding-top:5px}.pd-t-6{padding-top:6px}.pd-t-7{padding-top:7px}.pd-t-8{padding-top:8px}.pd-t-9{padding-top:9px}.pd-t-10{padding-top:10px}.pd-b-2{padding-bottom:2px}.pd-b-3{padding-bottom:3px}.pd-b-4{padding-bottom:4px}.pd-b-5{padding-bottom:5px}.pd-b-6{padding-bottom:6px}.pd-b-7{padding-bottom:7px}.pd-b-8{padding-bottom:8px}.pd-b-9{padding-bottom:9px}.pd-b-10{padding-bottom:10px}.pd-r-2{padding-right:2px}.pd-r-3{padding-right:3px}.pd-r-4{padding-right:4px}.pd-r-5{padding-right:5px}.pd-r-6{padding-right:6px}.pd-r-7{padding-right:7px}.pd-r-8{padding-right:8px}.pd-r-9{padding-right:9px}.pd-r-10{padding-right:10px}.pd-l-2{padding-left:2px}.pd-l-3{padding-left:3px}.pd-l-4{padding-left:4px}.pd-l-5{padding-left:5px}.pd-l-6{padding-left:6px}.pd-l-7{padding-left:7px}.pd-l-8{padding-left:8px}.pd-l-9{padding-left:9px}.pd-l-10{padding-left:10px}.mr-a{margin:auto}.mr-2{margin:2px}.mr-3{margin:3px}.mr-4{margin:4px}.mr-5{margin:5px}.mr-6{margin:6px}.mr-7{margin:7px}.mr-8{margin:8px}.mr-9{margin:9px}.mr-10{margin:10px}.mr-t-2{margin-top:2px}.mr-t-3{margin-top:3px}.mr-t-4{margin-top:4px}.mr-t-5{margin-top:5px}.mr-t-6{margin-top:6px}.mr-t-7{margin-top:7px}.mr-t-8{margin-top:8px}.mr-t-9{margin-top:9px}.mr-t-10{margin-top:10px}.mr-b-2{margin-bottom:2px}.mr-b-3{margin-bottom:3px}.mr-b-4{margin-bottom:4px}.mr-b-5{margin-bottom:5px}.mr-b-6{margin-bottom:6px}.mr-b-7{margin-bottom:7px}.mr-b-8{margin-bottom:8px}.mr-b-9{margin-bottom:9px}.mr-b-10{margin-bottom:10px}.mr-r-2{margin-right:2px}.mr-r-3{margin-right:3px}.mr-r-4{margin-right:4px}.mr-r-5{margin-right:5px}.mr-r-6{margin-right:6px}.mr-r-7{margin-right:7px}.mr-r-8{margin-right:8px}.mr-r-9{margin-right:9px}.mr-r-10{margin-right:10px}.mr-l-2{margin-left:2px}.mr-l-3{margin-left:3px}.mr-l-4{margin-left:4px}.mr-l-5{margin-left:5px}.mr-l-6{margin-left:6px}.mr-l-7{margin-left:7px}.mr-l-8{margin-left:8px}.mr-l-9{margin-left:9px}.mr-l-10{margin-left:10px}.pointer{cursor:pointer}.form-control{width:100%;padding:5px;border:1px solid #4dbd74;border-radius:3px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.form-control:focus{color:#3E3E3E;border-color:#4dbd74}.form-control::placeholder{color:#3E3E3E;opacity:1}.modal-window{position:fixed;background-color:rgba(241,241,241,.507);top:0;right:0;bottom:0;left:0;z-index:999;opacity:0;pointer-events:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;border-radius:5px}.modal-window:target{opacity:1;pointer-events:auto}.modal-window>div{width:33.33%;position:relative;margin:10% auto;padding:1rem;background:#FFF;color:#2f353a;border-radius:3px;border:1px solid #4dbd74}.modal-close{color:#2f353a;line-height:25px;position:absolute;right:0;text-align:center;top:0;width:50px;text-decoration:none;background-color:#f86c6b;border-top-right-radius:3px;border-bottom-left-radius:3px}.modal-close:hover{color:#fff}.modal-window h1{font-size:150%;margin:0 0 15px}@media screen and (min-width:750px){.sidenav{width:210px}#main{margin-left:210px}#openNav,#shareWA{display:none}#closeNav{display:block}}@media screen and (max-width:750px){.sidenav{width:0;border-right:0}#brand,#closeNav,#cpage{display:none}#main{margin-left:0}#openNav{display:block}#shareWA{display:inline-block}.modal-window>div{width:80%}[class*=col-]{width:100%}.col-box-1{width:8.33%}.col-box-2{width:16.66%}.col-box-3{width:25%}.col-box-4{width:33.33%}.col-box-5{width:41.66%}.col-box-6{width:50%}.col-box-7{width:58.33%}.col-box-8{width:66.66%}.col-box-9{width:75%}.col-box-10{width:83.33%}.col-box-11{width:91.66%}.col-box-12{width:100%}}.lds-dual-ring{display:inline-block;width:64px;height:64px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px}.lds-dual-ring:after{content:" ";display:block;width:46px;height:46px;margin:1px;border-radius:50%;border:5px solid #4dbd74;border-color:#4dbd74 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:rgba(255,255,255,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-material .cm-keyword{color:rgba(199,146,234,1)}.cm-s-material .cm-operator{color:rgba(233,237,237,1)}.cm-s-material .cm-variable-2{color:#80CBC4}.cm-s-material .cm-builtin{color:#DECB6B}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#F77669}.cm-s-material .cm-def{color:rgba(233,237,237,1)}.cm-s-material .cm-string{color:#C3E88D}.cm-s-material .cm-string-2{color:#80CBC4}.cm-s-material .cm-comment{color:#546E7A}.cm-s-material .cm-variable{color:#82B1FF}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80CBC4}.cm-s-material .cm-attribute{color:#FFCB6B}.cm-s-material .cm-property{color:#80CBAE}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#DECB6B}.cm-s-material .cm-tag{color:rgba(255,83,112,1)}.cm-s-material .cm-error{color:rgba(255,255,255,1);background-color:#EC5F67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important} \ No newline at end of file diff --git a/css/mikhmon-ui.light.min.css b/css/mikhmon-ui.light.min.css new file mode 100644 index 0000000..5ede5c4 --- /dev/null +++ b/css/mikhmon-ui.light.min.css @@ -0,0 +1 @@ +#brand,.box-group-icon,.box-group>div,input{vertical-align:middle}.box-group-icon,body,button{line-height:1.5}#notify,.btn:hover{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(166,166,166,.15)}.input-group::after,.row::after{content:"";clear:both}body{font-family:-apple-system,BlinkMacSystemFont,"segoe ui",Roboto,"helvetica neue",Arial,sans-serif,"apple color emoji","segoe ui emoji","segoe ui symbol";font-size:14px;font-weight:400;color:#3E3E3E;text-align:left;background-color:#E9EBEE;margin:0}#brand,.modal-window header,.text-bold{font-weight:700}.navbar-left a,.navbar-right a{text-align:center;padding:14px 16px;transition:.3s;color:#f2f2f2;display:block;text-decoration:none}input{margin:auto;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}#notify,.group-item{box-sizing:border-box}.footer{position:absolute;bottom:0;width:100%;height:60px;background:#6cf}#notify,.navbar,.sidenav{position:fixed}.plch-center::-webkit-input-placeholder{text-align:center}.plch-center:-moz-placeholder{text-align:center}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#E9EBEE;border:1px solid #c1c1c1}::-webkit-scrollbar-thumb{background:#dfdfdf;border:1px solid #c1c1c1}::-webkit-scrollbar-corner{background:#E9EBEE}::-webkit-scrollbar-track-piece the{background:#E9EBEE}::-webkit-resizer{background:#E9EBEE}.navbar{overflow:hidden;background-color:#008BC9;z-index:9;top:0;width:100%;height:50px;border-bottom:1px solid #c1c1c1}.dropd,.ses{border:none}.navbar-left a{float:left;font-size:17px}.dropd,.navbar-right a,.ses{font-size:14px}.navbar-right a{float:right}.navbar a:hover{color:#f2f2f2}.navbar-hover:hover{background-color:#1EA4E1}.ses{float:right;background-color:#008BC9;color:#f2f2f2;height:30px}.dropd{float:right;background-color:#F5F6F7;color:#3E3E3E;border-radius:3px}.spa{border-bottom:1px solid #c1c1c1}.sidenav{height:100%;width:0;z-index:9;top:0;left:0;background-color:#F5F5F5;overflow-x:hidden;margin-top:51px;border-right:1px solid #c1c1c1;transition:.5s}.dropdown-btn,.sidenav a{text-decoration:none;font-size:14px;display:block;border:none;background-color:none;width:90%;text-align:left;cursor:pointer;outline:0;transition:.5s;padding-right:10px;margin:5px 0 5px 5px}.sidenav i{font-size:20px;margin-right:2px;padding:7px 0 7px 7px}.dropdown-btn:hover,.sidenav a:hover{background-color:#ececec;border-radius:5px}.active{background:#e2e2e2;border-radius:5px;color:#008BC9}.dropdown-container{display:none;transition:.5s}.dropdown-container i{padding-left:20px}.menu-open{display:block}#notify,#temp{display:none}.fa-caret-down,.fa-caret-left{float:right;color:#3E3E3E}[class*=col-],[class*=input-group-]{float:left}#notify{background-color:rgba(0,139,201,.6);color:#fff;border:1px solid #c1c1c1;width:200px;left:50%;margin-left:-100px;padding:6px 8px 8px;text-align:center;border-radius:3px}.box,.card{background-color:#FFF}.wraprer{width:100%}#main{transition:margin-left .5s;margin-top:55px}.main-container{padding:5px 5px 5px 7px}#brand{min-width:165px}#brand span{font-size:18px;line-height:10%}.chart{height:200px;margin:0 auto}.progress-bar,.progress-bar-blue,.progress-bar-red{height:10px;max-width:100%}.box{padding:10px;margin:5px;border-radius:3px;color:#2f353a}.bg-danger,.bg-info,.bg-primary,.bg-secondary,.bg-success,.bg-warning,.box a{color:#f3f4f5}.box a{text-decoration:none}.box h1,h3{padding:0;margin:0}.box-bordered{border:1px solid #c1c1c1}.box-group-icon,.btn{border:1px solid transparent}.bmh-50{min-height:50px}.bmh-55{min-height:55px}.bmh-60{min-height:60px}.bmh-65{min-height:65px}.bmh-70{min-height:70px}.bmh-75{min-height:75px}.bmh-80{min-height:80px}.bmh-85{min-height:85px}.bmh-90{min-height:90px}.bmh-95{min-height:95px}.bmh-100{min-height:100px}.box-group>div{display:table-cell}.box-group-icon{font-size:40px;display:inline-block;text-align:center;text-decoration:none;white-space:nowrap;width:25%;user-select:none;padding:5px 10px;margin:5px;border-radius:5px}.box-group-area{padding:5px}.login-box,.register-box{width:400px;margin:10px auto;padding-top:10%}@media (max-width:576px){.login-box,.register-box{width:95%;margin-top:20px;padding-top:2%}}.settings{width:66.66%;margin-top:5%;margin-left:auto;margin-right:auto}@media (max-width:750px){.settings{width:95%;margin-top:5px}}.card{margin:5px;border-radius:3px;border:1px solid #c1c1c1}.card a{text-decoration:none}.card h3{margin:0}.card-header{padding:5px 10px;margin-bottom:5px;border-bottom:1px solid #c1c1c1;background-color:#F5F6F7;border-radius:2px 2px 0 0}.card-body{padding:5px 10px;margin-bottom:10px}.card-footer a{padding:0 0 5px;margin-top:5px;min-height:20px}.btn,.btn-login{display:inline-block;user-select:none;padding:3px 10px;vertical-align:middle;text-align:center;white-space:nowrap;cursor:pointer;text-decoration:none}.overflow{overflow-x:auto;overflow-y:auto;max-height:80vh}button{text-decoration:none;display:inline-block;border:none;background-color:none;font-size:14px}.btn{margin:5px;border-radius:5px}.btn-login:hover,.form-control:focus,.group-item:focus{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.btn-login{border:1px solid transparent;border-radius:5px}.group-item,.table td,.table th{padding:5px}[class*=bg-]{text-decoration:none}.bg-primary{background-color:#20a8d8}.bg-secondary{background-color:#73818f}.bg-success{background-color:#4dbd74}.bg-info{background-color:#63c2de}.bg-warning{background-color:#ffc107}.bg-danger{background-color:#f86c6b}.bg-light{background-color:#f3f4f5;color:#2f353a}.bg-blue,.bg-cyan,.bg-dark,.bg-green,.bg-indigo,.bg-orange,.bg-pink,.bg-purple,.bg-teal,.bg-yellow{color:#f3f4f5}.bg-dark{background-color:#2f353a}.bg-blue{background-color:#20a8d8}.bg-indigo{background-color:#6610f2}.bg-purple{background-color:#6f42c1}.bg-pink{background-color:#e83e8c}.bg-red{background-color:#f86c6b;color:#f3f4f5}.bg-orange{background-color:#f8cb00}.bg-yellow{background-color:#ffc107}.bg-green{background-color:#4dbd74}.bg-teal{background-color:#20c997}.bg-cyan{background-color:#17a2b8}.bg-white{background-color:#fff;color:#2f353a}.bg-grey{background-color:#73818f;color:#f3f4f5}.bg-grey-dark{background-color:#2f353a;color:#f3f4f5}.bg-light-blue{background-color:#63c2de;color:#f3f4f5}[class*=text-]{text-decoration:none}.text-primary{color:#20a8d8}.text-secondary{color:#73818f}.text-success{color:#4dbd74}.text-info{color:#63c2de}.text-warning{color:#ffc107}.text-danger{color:#f86c6b}.text-light{color:#f3f4f5}.text-dark{color:#2f353a}.text-blue{color:#20a8d8}.text-indigo{color:#6610f2}.text-purple{color:#6f42c1}.text-pink{color:#e83e8c}.text-red{color:#f86c6b}.text-orange{color:#f8cb00}.text-yellow{color:#ffc107}.text-green{color:#4dbd74}.text-teal{color:#20c997}.text-cyan{color:#17a2b8}.text-white{color:#fff}.text-grey{color:#73818f}.text-grey-dark{color:#2f353a}.text-light-blue{color:#63c2de}.align-middle{vertical-align:middle}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-nowrap{white-space:nowrap}.row::after{display:table}.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}.w-1{width:8.33%}.w-2{width:16.66%}.w-3{width:25%}.w-4{width:33.33%}.w-5{width:41.66%}.w-6{width:50%}.w-7{width:58.33%}.w-8{width:66.66%}.w-9{width:75%}.w-10{width:83.33%}.w-11{width:91.66%}.progress,.table,.w-12{width:100%}.progress{background-color:#E9EBEE;border-radius:5px}.progress-bar{background-color:#f3f4f5;border-radius:5px}.progress-bar-blue{background-color:#20a8d8;border-radius:5px}.progress-bar-red{background-color:#f86c6b;border-radius:5px}.table{background-color:#FFF;border-collapse:collapse!important}.table td,a,th{color:#3E3E3E;text-decoration:none}.table-bordered td,.table-bordered th{border:1px solid #c1c1c1!important}.table-hover:hover tbody tr:hover{background-color:#eee}.tscroll tbody{display:block;overflow:auto;height:70vh}.tscroll thead{position:relative;display:block}.input-group::after{display:table}.form-control,.group-item{display:block;font-size:14px;background-color:#E9EBEE;color:#3E3E3E}.input-group-1{width:8.33%}.input-group-2{width:16.66%}.input-group-3{width:25%}.input-group-4{width:33.33%}.input-group-5{width:41.66%}.input-group-6{width:50%}.input-group-7{width:58.33%}.input-group-8{width:66.66%}.input-group-9{width:75%}.input-group-10{width:83.33%}.input-group-11{width:91.66%}.alert,.group-item,.input-group-12{width:100%}.group-item{border:1px solid #c1c1c1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.group-item-l{border-radius:3px 0 0 3px}.group-item-r{border-radius:0 3px 3px 0}.group-item-md{border-radius:none}.group-item:focus{color:#3E3E3E;border-color:#80bdff;outline:0}.group-item::placeholder{color:#3E3E3E;opacity:1}.radius-l-3{border-radius:3px 0 0 3px}.radius-r-3{border-radius:0 3px 3px 0}.radius-b-3{border-radius:0 0 3px 3px}.radius-3{border-radius:3px}.radius-l-5{border-radius:5px 0 0 5px}.radius-r-5{border-radius:0 5px 5px 0}.radius-5{border-radius:5px}.alert{padding:5px 0;border-radius:3px}.pd-2{padding:2px}.pd-2p5{padding:2.5px}.pd-3{padding:3px}.pd-3p5{padding:3.5px}.pd-4{padding:4px}.pd-4p5{padding:4.5px}.pd-5{padding:5px}.pd-5p5{padding:5.5px}.pd-6{padding:6px}.pd-7{padding:7px}.pd-8{padding:8px}.pd-9{padding:9px}.pd-10{padding:10px}.pd-t-2{padding-top:2px}.pd-t-3{padding-top:3px}.pd-t-4{padding-top:4px}.pd-t-5{padding-top:5px}.pd-t-6{padding-top:6px}.pd-t-7{padding-top:7px}.pd-t-8{padding-top:8px}.pd-t-9{padding-top:9px}.pd-t-10{padding-top:10px}.pd-b-2{padding-bottom:2px}.pd-b-3{padding-bottom:3px}.pd-b-4{padding-bottom:4px}.pd-b-5{padding-bottom:5px}.pd-b-6{padding-bottom:6px}.pd-b-7{padding-bottom:7px}.pd-b-8{padding-bottom:8px}.pd-b-9{padding-bottom:9px}.pd-b-10{padding-bottom:10px}.pd-r-2{padding-right:2px}.pd-r-3{padding-right:3px}.pd-r-4{padding-right:4px}.pd-r-5{padding-right:5px}.pd-r-6{padding-right:6px}.pd-r-7{padding-right:7px}.pd-r-8{padding-right:8px}.pd-r-9{padding-right:9px}.pd-r-10{padding-right:10px}.pd-l-2{padding-left:2px}.pd-l-3{padding-left:3px}.pd-l-4{padding-left:4px}.pd-l-5{padding-left:5px}.pd-l-6{padding-left:6px}.pd-l-7{padding-left:7px}.pd-l-8{padding-left:8px}.pd-l-9{padding-left:9px}.pd-l-10{padding-left:10px}.mr-a{margin:auto}.mr-2{margin:2px}.mr-3{margin:3px}.mr-4{margin:4px}.mr-5{margin:5px}.mr-6{margin:6px}.mr-7{margin:7px}.mr-8{margin:8px}.mr-9{margin:9px}.mr-10{margin:10px}.mr-t-2{margin-top:2px}.mr-t-3{margin-top:3px}.mr-t-4{margin-top:4px}.mr-t-5{margin-top:5px}.mr-t-6{margin-top:6px}.mr-t-7{margin-top:7px}.mr-t-8{margin-top:8px}.mr-t-9{margin-top:9px}.mr-t-10{margin-top:10px}.mr-b-2{margin-bottom:2px}.mr-b-3{margin-bottom:3px}.mr-b-4{margin-bottom:4px}.mr-b-5{margin-bottom:5px}.mr-b-6{margin-bottom:6px}.mr-b-7{margin-bottom:7px}.mr-b-8{margin-bottom:8px}.mr-b-9{margin-bottom:9px}.mr-b-10{margin-bottom:10px}.mr-r-2{margin-right:2px}.mr-r-3{margin-right:3px}.mr-r-4{margin-right:4px}.mr-r-5{margin-right:5px}.mr-r-6{margin-right:6px}.mr-r-7{margin-right:7px}.mr-r-8{margin-right:8px}.mr-r-9{margin-right:9px}.mr-r-10{margin-right:10px}.mr-l-2{margin-left:2px}.mr-l-3{margin-left:3px}.mr-l-4{margin-left:4px}.mr-l-5{margin-left:5px}.mr-l-6{margin-left:6px}.mr-l-7{margin-left:7px}.mr-l-8{margin-left:8px}.mr-l-9{margin-left:9px}.mr-l-10{margin-left:10px}.pointer{cursor:pointer}.form-control{width:100%;padding:5px;border:1px solid #c1c1c1;border-radius:3px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.form-control:focus{color:#3E3E3E;border-color:#80bdff;outline:0}.form-control::placeholder{color:#3E3E3E;opacity:1}.modal-window{position:fixed;background-color:rgba(241,241,241,.507);top:0;right:0;bottom:0;left:0;z-index:999;opacity:0;pointer-events:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;border-radius:5px}.modal-window:target{opacity:1;pointer-events:auto}.modal-window>div{width:33.33%;position:relative;margin:10% auto;padding:1rem;background:#E9EBEE;color:#2f353a;border-radius:3px;border:1px solid #c1c1c1}.modal-close{color:#2f353a;line-height:25px;position:absolute;right:0;text-align:center;top:0;width:50px;text-decoration:none;background-color:#f86c6b;border-top-right-radius:3px;border-bottom-left-radius:3px}.modal-close:hover{color:#fff}.modal-window h1{font-size:150%;margin:0 0 15px}@media screen and (min-width:750px){.sidenav{width:210px}#main{margin-left:210px}#openNav,#shareWA{display:none}#closeNav{display:block}}@media screen and (max-width:750px){.sidenav{width:0;border-right:0}#brand,#closeNav,#cpage{display:none}#main{margin-left:0}#openNav{display:block}#shareWA{display:inline-block}.modal-window>div{width:80%}[class*=col-]{width:100%}.col-box-1{width:8.33%}.col-box-2{width:16.66%}.col-box-3{width:25%}.col-box-4{width:33.33%}.col-box-5{width:41.66%}.col-box-6{width:50%}.col-box-7{width:58.33%}.col-box-8{width:66.66%}.col-box-9{width:75%}.col-box-10{width:83.33%}.col-box-11{width:91.66%}.col-box-12{width:100%}}.lds-dual-ring{display:inline-block;width:64px;height:64px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px}.lds-dual-ring:after{content:" ";display:block;width:46px;height:46px;margin:1px;border-radius:50%;border:5px solid #008BC9;border-color:#008BC9 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:rgba(255,255,255,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-material .cm-keyword{color:rgba(199,146,234,1)}.cm-s-material .cm-operator{color:rgba(233,237,237,1)}.cm-s-material .cm-variable-2{color:#80CBC4}.cm-s-material .cm-builtin{color:#DECB6B}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#F77669}.cm-s-material .cm-def{color:rgba(233,237,237,1)}.cm-s-material .cm-string{color:#C3E88D}.cm-s-material .cm-string-2{color:#80CBC4}.cm-s-material .cm-comment{color:#546E7A}.cm-s-material .cm-variable{color:#82B1FF}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80CBC4}.cm-s-material .cm-attribute{color:#FFCB6B}.cm-s-material .cm-property{color:#80CBAE}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#DECB6B}.cm-s-material .cm-tag{color:rgba(255,83,112,1)}.cm-s-material .cm-error{color:rgba(255,255,255,1);background-color:#EC5F67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important} \ No newline at end of file diff --git a/css/mikhmon-ui.pink.min.css b/css/mikhmon-ui.pink.min.css new file mode 100644 index 0000000..3c8fac1 --- /dev/null +++ b/css/mikhmon-ui.pink.min.css @@ -0,0 +1 @@ +#brand,.box-group-icon,.box-group>div,input{vertical-align:middle}#notify,.group-item,input{box-sizing:border-box}.box-group-icon,body,button{line-height:1.5}#notify,.btn:hover{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(166,166,166,.15)}.input-group::after,.row::after{content:"";clear:both}body{font-family:-apple-system,BlinkMacSystemFont,"segoe ui",Roboto,"helvetica neue",Arial,sans-serif,"apple color emoji","segoe ui emoji","segoe ui symbol";font-size:14px;font-weight:400;color:#3E3E3E;text-align:left;background-color:#ebd5df;margin:0}#brand,.modal-window header,.text-bold{font-weight:700}.navbar-left a,.navbar-right a{text-align:center;padding:14px 16px;transition:.3s;color:#f2f2f2;display:block;text-decoration:none}input{margin:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.footer{position:absolute;bottom:0;width:100%;height:60px;background:#6cf}#notify,.navbar,.sidenav{position:fixed}.plch-center::-webkit-input-placeholder{text-align:center}.plch-center:-moz-placeholder{text-align:center}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#ffe6f1;border:1px solid #F670AD}::-webkit-scrollbar-thumb{background:#F670AD;border:1px solid #F670AD}::-webkit-scrollbar-corner{background:#ffe6f1}::-webkit-scrollbar-track-piece the{background:#ffe6f1}::-webkit-resizer{background:#ffe6f1}.navbar{overflow:hidden;background-color:#e83e8c;z-index:9;top:0;width:100%;height:50px;border-bottom:1px solid #F670AD}.dropd,.ses{border:none}.navbar-left a{float:left;font-size:17px}.dropd,.navbar-right a,.ses{font-size:14px}.navbar-right a{float:right}.navbar a:hover{color:#f2f2f2}.navbar-hover:hover{background-color:#fc3d93}.ses{float:right;background-color:#e83e8c;color:#f2f2f2;height:30px}.dropd{float:right;background-color:#FAB3D3;color:#3E3E3E;border-radius:3px}.spa{border-bottom:1px solid #F670AD}.sidenav{height:100%;width:0;z-index:9;top:0;left:0;background-color:#ffe6f1;overflow-x:hidden;margin-top:51px;border-right:1px solid #F670AD;transition:.5s}.dropdown-btn,.sidenav a{text-decoration:none;font-size:14px;display:block;border:none;background-color:none;width:90%;text-align:left;cursor:pointer;outline:0;transition:.5s;padding-right:10px;margin:5px 0 5px 5px}.sidenav i{font-size:20px;margin-right:2px;padding:7px 0 7px 7px}.dropdown-btn:hover,.sidenav a:hover{background-color:#FAB3D3;border-radius:5px}.active{background:#FAB3D3;border-radius:5px;color:#3E3E3E}.dropdown-container{display:none;transition:.5s}.dropdown-container i{padding-left:20px}.menu-open{display:block}#notify,#temp{display:none}.fa-caret-down,.fa-caret-left{float:right;color:#ccc}[class*=col-],[class*=input-group-]{float:left}#notify{background-color:rgba(232,62,140,.6);color:#fff;border:1px solid #F670AD;width:200px;left:50%;margin-left:-100px;padding:6px 8px 8px;text-align:center;border-radius:3px}.box,.card{background-color:#ffe6f1}.wraprer{width:100%}#main{transition:margin-left .5s;margin-top:55px}.main-container{padding:5px 5px 5px 7px}#brand{min-width:165px}#brand span{font-size:18px;line-height:10%}.chart{height:200px;margin:0 auto}.progress-bar,.progress-bar-blue,.progress-bar-red{height:10px;max-width:100%}.box{padding:10px;margin:5px;border-radius:3px;color:#2f353a}.bg-danger,.bg-info,.bg-primary,.bg-secondary,.bg-success,.bg-warning,.box a{color:#f3f4f5}.box a{text-decoration:none}.box h1,h3{padding:0;margin:0}.box-bordered{border:1px solid #F670AD}.box-group-icon,.btn{border:1px solid transparent}.bmh-50{min-height:50px}.bmh-55{min-height:55px}.bmh-60{min-height:60px}.bmh-65{min-height:65px}.bmh-70{min-height:70px}.bmh-75{min-height:75px}.bmh-80{min-height:80px}.bmh-85{min-height:85px}.bmh-90{min-height:90px}.bmh-95{min-height:95px}.bmh-100{min-height:100px}.box-group>div{display:table-cell}.box-group-icon{font-size:40px;display:inline-block;text-align:center;text-decoration:none;white-space:nowrap;width:25%;user-select:none;padding:5px 10px;margin:5px;border-radius:5px}.box-group-area{padding:5px}.login-box,.register-box{width:400px;margin:10px auto;padding-top:10%}@media (max-width:576px){.login-box,.register-box{width:95%;margin-top:20px;padding-top:2%}}.settings{width:66.66%;margin-top:5%;margin-left:auto;margin-right:auto}@media (max-width:750px){.settings{width:95%;margin-top:5px}}.card{margin:5px;border-radius:3px;border:1px solid #F670AD}.card a{text-decoration:none}.card h3{margin:0}.card-header{padding:5px 10px;margin-bottom:5px;border-bottom:1px solid #F670AD;background-color:#FAB3D3;border-radius:2px 2px 0 0}.card-body{padding:5px 10px;margin-bottom:10px}.card-footer a{padding:0 0 5px;margin-top:5px;min-height:20px}.btn,.btn-login{display:inline-block;user-select:none;padding:3px 10px;vertical-align:middle;text-align:center;white-space:nowrap;cursor:pointer;text-decoration:none}.overflow{overflow-x:auto;overflow-y:auto;max-height:80vh}button{text-decoration:none;display:inline-block;border:none;background-color:none;font-size:14px}.btn{margin:5px;border-radius:5px}.btn-login:hover,.form-control:focus,.group-item:focus{box-shadow:inset 0 0 0 transparent,0 0 0 .2rem rgba(0,123,255,.25)}.btn-login{border:1px solid transparent;border-radius:5px}.group-item,.table td,.table th{padding:5px}[class*=bg-]{text-decoration:none}.bg-primary{background-color:#e83e8c}.bg-secondary{background-color:#73818f}.bg-success{background-color:#4dbd74}.bg-info{background-color:#63c2de}.bg-warning{background-color:#ffc107}.bg-danger{background-color:#f86c6b}.bg-light{background-color:#f3f4f5;color:#2f353a}.bg-blue,.bg-cyan,.bg-dark,.bg-green,.bg-indigo,.bg-orange,.bg-pink,.bg-purple,.bg-teal,.bg-yellow{color:#f3f4f5}.bg-dark{background-color:#2f353a}.bg-blue{background-color:#20a8d8}.bg-indigo{background-color:#6610f2}.bg-purple{background-color:#6f42c1}.bg-pink{background-color:#e83e8c}.bg-red{background-color:#f86c6b;color:#f3f4f5}.bg-orange{background-color:#f8cb00}.bg-yellow{background-color:#ffc107}.bg-green{background-color:#4dbd74}.bg-teal{background-color:#20c997}.bg-cyan{background-color:#17a2b8}.bg-white{background-color:#fff;color:#2f353a}.bg-grey{background-color:#73818f;color:#f3f4f5}.bg-grey-dark{background-color:#2f353a;color:#f3f4f5}.bg-light-blue{background-color:#63c2de;color:#f3f4f5}[class*=text-]{text-decoration:none}.text-primary{color:#20a8d8}.text-secondary{color:#73818f}.text-success{color:#4dbd74}.text-info{color:#63c2de}.text-warning{color:#ffc107}.text-danger{color:#f86c6b}.text-light{color:#f3f4f5}.text-dark{color:#2f353a}.text-blue{color:#20a8d8}.text-indigo{color:#6610f2}.text-purple{color:#6f42c1}.text-pink{color:#e83e8c}.text-red{color:#f86c6b}.text-orange{color:#f8cb00}.text-yellow{color:#ffc107}.text-green{color:#4dbd74}.text-teal{color:#20c997}.text-cyan{color:#17a2b8}.text-white{color:#fff}.text-grey{color:#73818f}.text-grey-dark{color:#2f353a}.text-light-blue{color:#63c2de}.align-middle{vertical-align:middle}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-nowrap{white-space:nowrap}.row::after{display:table}.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}.w-1{width:8.33%}.w-2{width:16.66%}.w-3{width:25%}.w-4{width:33.33%}.w-5{width:41.66%}.w-6{width:50%}.w-7{width:58.33%}.w-8{width:66.66%}.w-9{width:75%}.w-10{width:83.33%}.w-11{width:91.66%}.progress,.table,.w-12{width:100%}.progress{background-color:#E9EBEE;border-radius:5px}.progress-bar{background-color:#f3f4f5;border-radius:5px}.progress-bar-blue{background-color:#20a8d8;border-radius:5px}.progress-bar-red{background-color:#f86c6b;border-radius:5px}.table{background-color:#ffe6f1;border-collapse:collapse!important}.table td,a,th{color:#3E3E3E;text-decoration:none}.table-bordered td,.table-bordered th{border:1px solid #F670AD!important}.table-hover:hover tbody tr:hover{background-color:#ffc8e2}.tscroll tbody{display:block;overflow:auto;height:70vh}.tscroll thead{position:relative;display:block}.input-group::after{display:table}.form-control,.group-item{display:block;font-size:14px;background-color:#E9EBEE;color:#3E3E3E}.input-group-1{width:8.33%}.input-group-2{width:16.66%}.input-group-3{width:25%}.input-group-4{width:33.33%}.input-group-5{width:41.66%}.input-group-6{width:50%}.input-group-7{width:58.33%}.input-group-8{width:66.66%}.input-group-9{width:75%}.input-group-10{width:83.33%}.input-group-11{width:91.66%}.alert,.group-item,.input-group-12{width:100%}.group-item{border:1px solid #F670AD;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.group-item-l{border-radius:3px 0 0 3px}.group-item-r{border-radius:0 3px 3px 0}.group-item-md{border-radius:none}.group-item:focus{color:#3E3E3E;border-color:#80bdff;outline:0}.group-item::placeholder{color:#3E3E3E;opacity:1}.radius-l-3{border-radius:3px 0 0 3px}.radius-r-3{border-radius:0 3px 3px 0}.radius-b-3{border-radius:0 0 3px 3px}.radius-3{border-radius:3px}.radius-l-5{border-radius:5px 0 0 5px}.radius-r-5{border-radius:0 5px 5px 0}.radius-5{border-radius:5px}.alert{padding:5px 0;border-radius:3px}.pd-2{padding:2px}.pd-2p5{padding:2.5px}.pd-3{padding:3px}.pd-3p5{padding:3.5px}.pd-4{padding:4px}.pd-4p5{padding:4.5px}.pd-5{padding:5px}.pd-5p5{padding:5.5px}.pd-6{padding:6px}.pd-7{padding:7px}.pd-8{padding:8px}.pd-9{padding:9px}.pd-10{padding:10px}.pd-t-2{padding-top:2px}.pd-t-3{padding-top:3px}.pd-t-4{padding-top:4px}.pd-t-5{padding-top:5px}.pd-t-6{padding-top:6px}.pd-t-7{padding-top:7px}.pd-t-8{padding-top:8px}.pd-t-9{padding-top:9px}.pd-t-10{padding-top:10px}.pd-b-2{padding-bottom:2px}.pd-b-3{padding-bottom:3px}.pd-b-4{padding-bottom:4px}.pd-b-5{padding-bottom:5px}.pd-b-6{padding-bottom:6px}.pd-b-7{padding-bottom:7px}.pd-b-8{padding-bottom:8px}.pd-b-9{padding-bottom:9px}.pd-b-10{padding-bottom:10px}.pd-r-2{padding-right:2px}.pd-r-3{padding-right:3px}.pd-r-4{padding-right:4px}.pd-r-5{padding-right:5px}.pd-r-6{padding-right:6px}.pd-r-7{padding-right:7px}.pd-r-8{padding-right:8px}.pd-r-9{padding-right:9px}.pd-r-10{padding-right:10px}.pd-l-2{padding-left:2px}.pd-l-3{padding-left:3px}.pd-l-4{padding-left:4px}.pd-l-5{padding-left:5px}.pd-l-6{padding-left:6px}.pd-l-7{padding-left:7px}.pd-l-8{padding-left:8px}.pd-l-9{padding-left:9px}.pd-l-10{padding-left:10px}.mr-a{margin:auto}.mr-2{margin:2px}.mr-3{margin:3px}.mr-4{margin:4px}.mr-5{margin:5px}.mr-6{margin:6px}.mr-7{margin:7px}.mr-8{margin:8px}.mr-9{margin:9px}.mr-10{margin:10px}.mr-t-2{margin-top:2px}.mr-t-3{margin-top:3px}.mr-t-4{margin-top:4px}.mr-t-5{margin-top:5px}.mr-t-6{margin-top:6px}.mr-t-7{margin-top:7px}.mr-t-8{margin-top:8px}.mr-t-9{margin-top:9px}.mr-t-10{margin-top:10px}.mr-b-2{margin-bottom:2px}.mr-b-3{margin-bottom:3px}.mr-b-4{margin-bottom:4px}.mr-b-5{margin-bottom:5px}.mr-b-6{margin-bottom:6px}.mr-b-7{margin-bottom:7px}.mr-b-8{margin-bottom:8px}.mr-b-9{margin-bottom:9px}.mr-b-10{margin-bottom:10px}.mr-r-2{margin-right:2px}.mr-r-3{margin-right:3px}.mr-r-4{margin-right:4px}.mr-r-5{margin-right:5px}.mr-r-6{margin-right:6px}.mr-r-7{margin-right:7px}.mr-r-8{margin-right:8px}.mr-r-9{margin-right:9px}.mr-r-10{margin-right:10px}.mr-l-2{margin-left:2px}.mr-l-3{margin-left:3px}.mr-l-4{margin-left:4px}.mr-l-5{margin-left:5px}.mr-l-6{margin-left:6px}.mr-l-7{margin-left:7px}.mr-l-8{margin-left:8px}.mr-l-9{margin-left:9px}.mr-l-10{margin-left:10px}.pointer{cursor:pointer}.form-control{width:100%;padding:5px;border:1px solid #F670AD;border-radius:3px;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.form-control:focus{color:#3E3E3E;border-color:#80bdff;outline:0}.form-control::placeholder{color:#3E3E3E;opacity:1}.modal-window{position:fixed;background-color:rgba(241,241,241,.507);top:0;right:0;bottom:0;left:0;z-index:999;opacity:0;pointer-events:none;-webkit-transition:all .3s;-moz-transition:all .3s;transition:all .3s;border-radius:5px}.modal-window:target{opacity:1;pointer-events:auto}.modal-window>div{width:33.33%;position:relative;margin:10% auto;padding:1rem;background:#ffe6f1;color:#2f353a;border-radius:3px;border:1px solid #F670AD}.modal-close{color:#2f353a;line-height:25px;position:absolute;right:0;text-align:center;top:0;width:50px;text-decoration:none;background-color:#f86c6b;border-top-right-radius:3px;border-bottom-left-radius:3px}.modal-close:hover{color:#fff}.modal-window h1{font-size:150%;margin:0 0 15px}@media screen and (min-width:750px){.sidenav{width:210px}#main{margin-left:210px}#openNav,#shareWA{display:none}#closeNav{display:block}}@media screen and (max-width:750px){.sidenav{width:0;border-right:0}#brand,#closeNav,#cpage{display:none}#main{margin-left:0}#openNav{display:block}#shareWA{display:inline-block}.modal-window>div{width:80%}[class*=col-]{width:100%}.col-box-1{width:8.33%}.col-box-2{width:16.66%}.col-box-3{width:25%}.col-box-4{width:33.33%}.col-box-5{width:41.66%}.col-box-6{width:50%}.col-box-7{width:58.33%}.col-box-8{width:66.66%}.col-box-9{width:75%}.col-box-10{width:83.33%}.col-box-11{width:91.66%}.col-box-12{width:100%}}.lds-dual-ring{display:inline-block;width:64px;height:64px;position:absolute;top:50%;left:50%;margin-top:-50px;margin-left:-50px}.lds-dual-ring:after{content:" ";display:block;width:46px;height:46px;margin:1px;border-radius:50%;border:5px solid #e83e8c;border-color:#e83e8c transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:rgba(255,255,255,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:rgba(255,255,255,.1)}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-material .cm-keyword{color:rgba(199,146,234,1)}.cm-s-material .cm-operator{color:rgba(233,237,237,1)}.cm-s-material .cm-variable-2{color:#80CBC4}.cm-s-material .cm-builtin{color:#DECB6B}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#F77669}.cm-s-material .cm-def{color:rgba(233,237,237,1)}.cm-s-material .cm-string{color:#C3E88D}.cm-s-material .cm-string-2{color:#80CBC4}.cm-s-material .cm-comment{color:#546E7A}.cm-s-material .cm-variable{color:#82B1FF}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80CBC4}.cm-s-material .cm-attribute{color:#FFCB6B}.cm-s-material .cm-property{color:#80CBAE}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#DECB6B}.cm-s-material .cm-tag{color:rgba(255,83,112,1)}.cm-s-material .cm-error{color:rgba(255,255,255,1);background-color:#EC5F67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important} \ No newline at end of file diff --git a/css/pace.blue.css b/css/pace.blue.css new file mode 100644 index 0000000..8f5ea7f --- /dev/null +++ b/css/pace.blue.css @@ -0,0 +1,25 @@ +/*PACE*/ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background: #f86c6b; + position: fixed; + z-index: 2000; + top: 0; + right: 100%; + width: 100%; + height: 2px; +} + +/*PACE*/ \ No newline at end of file diff --git a/css/pace.css b/css/pace.css new file mode 100644 index 0000000..f42d4e7 --- /dev/null +++ b/css/pace.css @@ -0,0 +1,25 @@ +/*PACE*/ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background: #20a8d8; + position: fixed; + z-index: 2000; + top: 0; + right: 100%; + width: 100%; + height: 2px; +} + +/*PACE*/ \ No newline at end of file diff --git a/css/pace.dark.css b/css/pace.dark.css new file mode 100644 index 0000000..f42d4e7 --- /dev/null +++ b/css/pace.dark.css @@ -0,0 +1,25 @@ +/*PACE*/ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background: #20a8d8; + position: fixed; + z-index: 2000; + top: 0; + right: 100%; + width: 100%; + height: 2px; +} + +/*PACE*/ \ No newline at end of file diff --git a/css/pace.green.css b/css/pace.green.css new file mode 100644 index 0000000..8f5ea7f --- /dev/null +++ b/css/pace.green.css @@ -0,0 +1,25 @@ +/*PACE*/ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background: #f86c6b; + position: fixed; + z-index: 2000; + top: 0; + right: 100%; + width: 100%; + height: 2px; +} + +/*PACE*/ \ No newline at end of file diff --git a/css/pace.light.css b/css/pace.light.css new file mode 100644 index 0000000..8f5ea7f --- /dev/null +++ b/css/pace.light.css @@ -0,0 +1,25 @@ +/*PACE*/ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background: #f86c6b; + position: fixed; + z-index: 2000; + top: 0; + right: 100%; + width: 100%; + height: 2px; +} + +/*PACE*/ \ No newline at end of file diff --git a/css/pace.pink.css b/css/pace.pink.css new file mode 100644 index 0000000..e0136c3 --- /dev/null +++ b/css/pace.pink.css @@ -0,0 +1,25 @@ +/*PACE*/ +.pace { + -webkit-pointer-events: none; + pointer-events: none; + + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + } + + .pace-inactive { + display: none; + } + + .pace .pace-progress { + background: #20a8d8; + position: fixed; + z-index: 2000; + top: 0; + right: 100%; + width: 100%; + height: 2px; + } + + /*PACE*/ \ No newline at end of file diff --git a/dashboard/aload.php b/dashboard/aload.php new file mode 100644 index 0000000..92285b1 --- /dev/null +++ b/dashboard/aload.php @@ -0,0 +1,283 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// load session MikroTik + $session = $_GET['session']; + $load = $_GET['load']; + +// lang +include('../include/lang.php'); +include('../lang/'.$langid.'.php'); + +// load config + include('../include/config.php'); + include('../include/readcfg.php'); + +// routeros api + include_once('../lib/routeros_api.class.php'); + include_once('../lib/formatbytesbites.php'); + $API = new RouterosAPI(); + $API->debug = false; + + + + if ($load == "sysresource") { + + $API->connect($iphost, $userhost, decrypt($passwdhost)); + +// get MikroTik system clock + $getclock = $API->comm("/system/clock/print"); + $clock = $getclock[0]; + $timezone = $getclock[0]['time-zone-name']; + date_default_timezone_set($timezone); + +// get system resource MikroTik + $getresource = $API->comm("/system/resource/print"); + $resource = $getresource[0]; + +// get routeboard info + $getrouterboard = $API->comm("/system/routerboard/print"); + $routerboard = $getrouterboard[0]; + ?> + +
+
+
+
+
+
+
+ + ".$_uptime." : " . formatDTM($resource['uptime']); + ?> +
+
+
+
+
+
+
+
+
+
+ + + ".$_model." : " . $routerboard['model'] . "
+ Router OS : " . $resource['version']; + ?> +
+
+
+
+
+
+
+
+
+
+ + + ".$_free_memory." : " . formatBytes($resource['free-memory'], 2) . "
+ ".$_free_hdd." : " . formatBytes($resource['free-hdd-space'], 2) + ?> +
+
+
+
+
+
+ +connect($iphost, $userhost, decrypt($passwdhost)); +// get & counting hotspot users + $countallusers = $API->comm("/ip/hotspot/user/print", array("count-only" => "")); + if ($countallusers < 2) { + $uunit = "item"; + } elseif ($countallusers > 1) { + $uunit = "items"; + } + +// get & counting hotspot active + $counthotspotactive = $API->comm("/ip/hotspot/active/print", array("count-only" => "")); + if ($counthotspotactive < 2) { + $hunit = "item"; + } elseif ($counthotspotactive > 1) { + $hunit = "items"; + } + + ?> + +
+

Hotspot

+ +
+ + +connect($iphost, $userhost, decrypt($passwdhost)); + + // move hotspot log to disk + $getlogging = $API->comm("/system/logging/print", array("?prefix" => "->", )); + $logging = $getlogging[0]; + if ($logging['prefix'] == "->") { + } else { + $API->comm("/system/logging/add", array("action" => "disk", "prefix" => "->", "topics" => "hotspot,info,debug", )); + } + + // get hotspot log + $getlog = $API->comm("/log/print", array("?topics" => "hotspot,info,debug", )); + $log = array_reverse($getlog); + //$THotspotLog = count($getlog); + + if ($livereport == "disable") { + $logh = "457px"; + $lreport = "style='display:none;'"; + } else { + $logh = "350px"; + $lreport = "style='display:block;'"; + } + + + + ?> + +
+
+
+

+
+
+ + + + + + + + + + + "; + if (substr($log[$i]['message'], 0, 2) == "->") { + echo ""; + //echo substr($mess[1], 0,2); + echo ""; + echo ""; + } else { + } + echo ""; + } + ?> + +
(IP)
" . $time . ""; + if (count($mess) > 6) { + echo $mess[1] . ":" . $mess[2] . ":" . $mess[3] . ":" . $mess[4] . ":" . $mess[5] . ":" . $mess[6]; + } else { + echo $mess[1]; + } + echo ""; + if (count($mess) > 6) { + echo str_replace("trying to", "", $mess[7] . " " . $mess[8] . " " . $mess[9] . " " . $mess[10]); + } else { + echo str_replace("trying to", "", $mess[2] . " " . $mess[3] . " " . $mess[4] . " " . $mess[5]); + } + echo "
+
+
+
+
+ + diff --git a/dashboard/home.php b/dashboard/home.php new file mode 100644 index 0000000..acf2acc --- /dev/null +++ b/dashboard/home.php @@ -0,0 +1,403 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + +// get MikroTik system clock + $getclock = $API->comm("/system/clock/print"); + $clock = $getclock[0]; + $timezone = $getclock[0]['time-zone-name']; + $_SESSION['timezone'] = $timezone; + date_default_timezone_set($timezone); + +// get system resource MikroTik + $getresource = $API->comm("/system/resource/print"); + $resource = $getresource[0]; + +// get routeboard info + $getrouterboard = $API->comm("/system/routerboard/print"); + $routerboard = $getrouterboard[0]; +/* +// move hotspot log to disk * + $getlogging = $API->comm("/system/logging/print", array("?prefix" => "->", )); + $logging = $getlogging[0]; + if ($logging['prefix'] == "->") { + } else { + $API->comm("/system/logging/add", array("action" => "disk", "prefix" => "->", "topics" => "hotspot,info,debug", )); + } + +// get hotspot log + $getlog = $API->comm("/log/print", array("?topics" => "hotspot,info,debug", )); + $log = array_reverse($getlog); + $THotspotLog = count($getlog); +*/ +// get & counting hotspot users + $countallusers = $API->comm("/ip/hotspot/user/print", array("count-only" => "")); + if ($countallusers < 2) { + $uunit = "item"; + } elseif ($countallusers > 1) { + $uunit = "items"; + } + +// get & counting hotspot active + $counthotspotactive = $API->comm("/ip/hotspot/active/print", array("count-only" => "")); + if ($counthotspotactive < 2) { + $hunit = "item"; + } elseif ($counthotspotactive > 1) { + $hunit = "items"; + } + + if ($livereport == "disable") { + $logh = "457px"; + $lreport = "style='display:none;'"; + } else { + $logh = "350px"; + $lreport = "style='display:block;'"; + } +/* +// get selling report + $thisD = date("d"); + $thisM = strtolower(date("M")); + $thisY = date("Y"); + + if (strlen($thisD) == 1) { + $thisD = "0" . $thisD; + } else { + $thisD = $thisD; + } + + $idhr = $thisM . "/" . $thisD . "/" . $thisY; + $idbl = $thisM . $thisY; + + $getSRHr = $API->comm("/system/script/print", array( + "?source" => "$idhr", + )); + $TotalRHr = count($getSRHr); + $getSRBl = $API->comm("/system/script/print", array( + "?owner" => "$idbl", + )); + $TotalRBl = count($getSRBl); + + for ($i = 0; $i < $TotalRHr; $i++) { + + $tHr += explode("-|-", $getSRHr[$i]['name'])[3]; + + } + for ($i = 0; $i < $TotalRBl; $i++) { + + $tBl += explode("-|-", $getSRBl[$i]['name'])[3]; + } + }*/ +} +?> + +
+ +
+
+
+
+
+
+
+ + ".$_uptime." : " . formatDTM($resource['uptime']); + $_SESSION[$session.'sdate'] = $clock['date']; + ?> +
+
+
+
+
+
+
+
+
+
+ + + ".$_model." : " . $routerboard['model'] . "
+ Router OS : " . $resource['version']; + ?> +
+
+
+
+
+
+
+
+
+
+ + + ".$_free_memory." : " . formatBytes($resource['free-memory'], 2) . "
+ ".$_free_hdd." : " . formatBytes($resource['free-hdd-space'], 2) + ?> +
+
+
+
+
+
+ +
+
+
+
+

Hotspot

+ +
+
+
+

+ +
+ + comm("/interface/print"); + $interface = $getinterface[$iface - 1]['name']; + /*$TotalReg = count($getinterface); + for ($i = 0; $i < $TotalReg; $i++) { + echo $getinterface[$i]['name'].'
'; + }*/ + ?> + + +
+
+
+
+
+
+
class="box bmh-75 box-bordered"> +
+
+
+ +
+ " . " + ".$_today." " . $_SESSION[$session.'totalHr'] . "vcr : " . $currency . " " . $_SESSION[$session.'dincome']. "
+ ".$_this_month." " . $_SESSION[$session.'totalBl'] . "vcr : " . $currency . " " . $_SESSION[$session.'mincome']; + }else{ + echo "
". $_processing."
"; + } + ?> +
+
+
+
+
+
+
+
+
+

+
+
+ + + + + + + + + + + + + +
(IP)
+
+
+
+
+
+
+
+
+
diff --git a/dashboard/index.php b/dashboard/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/dashboard/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/dhcp/dhcpleases.php b/dhcp/dhcpleases.php new file mode 100644 index 0000000..5e6f117 --- /dev/null +++ b/dhcp/dhcpleases.php @@ -0,0 +1,110 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getlease = $API->comm("/ip/dhcp-server/lease/print"); + $TotalReg = count($getlease); + + $countlease = $API->comm("/ip/dhcp-server/lease/print", array( + "count-only" => "", + )); + +} +?> +
+
+
+
+

DHCP Leases + 1) { + echo "$countlease items"; +}; +echo ""; +?> +   |    +

+
+
+
+ +
+
+ + + + + + + + + + + + + + +"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; +} +?> + +
Address MAC Address Server Active Address Active MAC Address Active Host Name Status
"; + if ($lease['dynamic'] == "true") { + echo "D"; + } else { + echo "S"; + } + echo "" . $addr . "" . $maca . "" . $server . "" . $aaddr . "" . $amaca . "" . $ahostname . "" . $status . "
+
+
+
+
+
+ \ No newline at end of file diff --git a/dhcp/index.php b/dhcp/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/dhcp/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/hotspot/adduser.php b/hotspot/adduser.php new file mode 100644 index 0000000..ed7dc7a --- /dev/null +++ b/hotspot/adduser.php @@ -0,0 +1,201 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getprofile = $API->comm("/ip/hotspot/user/profile/print"); + $srvlist = $API->comm("/ip/hotspot/print"); + + if (isset($_POST['name'])) { + $server = ($_POST['server']); + $name = ($_POST['name']); + $password = ($_POST['pass']); + $profile = ($_POST['profile']); + $disabled = ($_POST['disabled']); + $timelimit = ($_POST['timelimit']); + $datalimit = ($_POST['datalimit']); + $comment = ($_POST['comment']); + $chkvalid = ($_POST['valid']); + $mbgb = ($_POST['mbgb']); + if ($timelimit == "") { + $timelimit = "0"; + } else { + $timelimit = $timelimit; + } + if ($datalimit == "") { + $datalimit = "0"; + } else { + $datalimit = $datalimit * $mbgb; + } + if ($name == $password) { + $usermode = "vc-"; + }else{ + $usermode = "up-"; + } + + $comment = $usermode.$comment; + + $API->comm("/ip/hotspot/user/add", array( + "server" => "$server", + "name" => "$name", + "password" => "$password", + "profile" => "$profile", + "disabled" => "no", + "limit-uptime" => "$timelimit", + "limit-bytes-total" => "$datalimit", + "comment" => "$comment", + )); + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?name" => "$name", + )); + $uid = $getuser[0]['.id']; + echo ""; + } +} +?> + +
+
+
+
+

+
+
+
+
+ ".$_close.""; + } else { + echo " ".$_close.""; + } + ?> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server + +
+
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+

+
+
+ + + + +
+

+ +

+

+ +

+
+
+
+
+ +
\ No newline at end of file diff --git a/hotspot/adduserprofile.php b/hotspot/adduserprofile.php new file mode 100644 index 0000000..008af59 --- /dev/null +++ b/hotspot/adduserprofile.php @@ -0,0 +1,254 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getallqueue = $API->comm("/queue/simple/print", array( + "?dynamic" => "false", + )); + + $getpool = $API->comm("/ip/pool/print"); + + if (isset($_POST['name'])) { + $name = (preg_replace('/\s+/', '-',$_POST['name'])); + $sharedusers = ($_POST['sharedusers']); + $ratelimit = ($_POST['ratelimit']); + $expmode = ($_POST['expmode']); + $validity = ($_POST['validity']); + $graceperiod = ($_POST['graceperiod']); + $getprice = ($_POST['price']); + $getsprice = ($_POST['sprice']); + $addrpool = ($_POST['ppool']); + if ($getprice == "") { + $price = "0"; + } else { + $price = $getprice; + } + if ($getsprice == "") { + $sprice = "0"; + } else { + $sprice = $getsprice; + } + $getlock = ($_POST['lockunlock']); + if ($getlock == "Enable") { + $lock = '; [:local mac $"mac-address"; /ip hotspot user set mac-address=$mac [find where name=$user]]'; + } else { + $lock = ""; + } + + $randstarttime = "0".rand(1,5).":".rand(10,59).":".rand(10,59); + $randinterval = "00:02:".rand(10,59); + + $parent = ($_POST['parent']); + + $record = '; :local mac $"mac-address"; :local time [/system clock get time ]; /system script add name="$date-|-$time-|-$user-|-'.$price.'-|-$address-|-$mac-|-' . $validity . '-|-'.$name.'-|-$comment" owner="$month$year" source=$date comment=mikhmon'; + + $onlogin = ':put (",'.$expmode.',' . $price . ',' . $validity . ','.$sprice.',,' . $getlock . ',"); {:local date [ /system clock get date ];:local year [ :pick $date 7 11 ];:local month [ :pick $date 0 3 ];:local comment [ /ip hotspot user get [/ip hotspot user find where name="$user"] comment]; :local ucode [:pic $comment 0 2]; :if ($ucode = "vc" or $ucode = "up" or $comment = "") do={ /sys sch add name="$user" disable=no start-date=$date interval="' . $validity . '"; :delay 2s; :local exp [ /sys sch get [ /sys sch find where name="$user" ] next-run]; :local getxp [len $exp]; :if ($getxp = 15) do={ :local d [:pic $exp 0 6]; :local t [:pic $exp 7 16]; :local s ("/"); :local exp ("$d$s$year $t"); /ip hotspot user set comment=$exp [find where name="$user"];}; :if ($getxp = 8) do={ /ip hotspot user set comment="$date $exp" [find where name="$user"];}; :if ($getxp > 15) do={ /ip hotspot user set comment=$exp [find where name="$user"];}; /sys sch remove [find where name="$user"]'; + + + if ($expmode == "rem") { + $onlogin = $onlogin . $lock . "}}"; + $mode = "remove"; + } elseif ($expmode == "ntf") { + $onlogin = $onlogin . $lock . "}}"; + $mode = "set limit-uptime=1s"; + } elseif ($expmode == "remc") { + $onlogin = $onlogin . $record . $lock . "}}"; + $mode = "remove"; + } elseif ($expmode == "ntfc") { + $onlogin = $onlogin . $record . $lock . "}}"; + $mode = "set limit-uptime=1s"; + } elseif ($expmode == "0" && $price != "") { + $onlogin = ':put (",,' . $price . ',,,noexp,' . $getlock . ',")' . $lock; + } else { + $onlogin = ""; + } + + $bgservice = ':local dateint do={:local montharray ( "jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec" );:local days [ :pick $d 4 6 ];:local month [ :pick $d 0 3 ];:local year [ :pick $d 7 11 ];:local monthint ([ :find $montharray $month]);:local month ($monthint + 1);:if ( [len $month] = 1) do={:local zero ("0");:return [:tonum ("$year$zero$month$days")];} else={:return [:tonum ("$year$month$days")];}}; :local timeint do={ :local hours [ :pick $t 0 2 ]; :local minutes [ :pick $t 3 5 ]; :return ($hours * 60 + $minutes) ; }; :local date [ /system clock get date ]; :local time [ /system clock get time ]; :local today [$dateint d=$date] ; :local curtime [$timeint t=$time] ; :foreach i in [ /ip hotspot user find where profile="'.$name.'" ] do={ :local comment [ /ip hotspot user get $i comment]; :local name [ /ip hotspot user get $i name]; :local gettime [:pic $comment 12 20]; :if ([:pic $comment 3] = "/" and [:pic $comment 6] = "/") do={:local expd [$dateint d=$comment] ; :local expt [$timeint t=$gettime] ; :if (($expd < $today and $expt < $curtime) or ($expd < $today and $expt > $curtime) or ($expd = $today and $expt < $curtime)) do={ [ /ip hotspot user '.$mode.' $i ]; [ /ip hotspot active remove [find where user=$name] ];}}}'; + + $API->comm("/ip/hotspot/user/profile/add", array( + /*"add-mac-cookie" => "yes",*/ + "name" => "$name", + "address-pool" => "$addrpool", + "rate-limit" => "$ratelimit", + "shared-users" => "$sharedusers", + "status-autorefresh" => "1m", + //"transparent-proxy" => "yes", + "on-login" => "$onlogin", + "parent-queue" => "$parent", + )); + + if($expmode != "0"){ + if (empty($monid)){ + $API->comm("/system/scheduler/add", array( + "name" => "$name", + "start-time" => "$randstarttime", + "interval" => "$randinterval", + "on-event" => "$bgservice", + "disabled" => "no", + "comment" => "Monitor Profile $name", + )); + }else{ + $API->comm("/system/scheduler/set", array( + ".id" => "$monid", + "name" => "$name", + "start-time" => "$randstarttime", + "interval" => "$randinterval", + "on-event" => "$bgservice", + "disabled" => "no", + "comment" => "Monitor Profile $name", + )); + }}else{ + $API->comm("/system/scheduler/remove", array( + ".id" => "$monid")); + } + + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array( + "?name" => "$name", + )); + $pid = $getprofile[0]['.id']; + echo ""; + } +} +?> +
+
+
+
+

+
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Address Pool + +
Shared Users
Rate limit [up/down]
+ +
+ +
Parent Queue + +
+
+
+
+
+
+
+
+

+
+
+ + + + +
+

+ +

+

+ +

+
+
+
+
+
+ diff --git a/hotspot/cookies.php b/hotspot/cookies.php new file mode 100644 index 0000000..596b279 --- /dev/null +++ b/hotspot/cookies.php @@ -0,0 +1,93 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getcookies = $API->comm("/ip/hotspot/cookie/print"); + $TotalReg = count($getcookies); + + $countcookies = $API->comm("/ip/hotspot/cookie/print", array( + "count-only" => "", + )); + +} +?> +
+
+
+
+

Hotspot Cookies + 1) { + echo "$countcookies items"; +}; +echo ""; +?> +   |    +

+
+
+
+ +
+
+ + + + + + + + + + + +"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; +} +?> + +
User MAC Address Domain Expires In
" . $user . "" . $maca . "" . $domain . "" . $exp . "
+
+
+
+
+
+ \ No newline at end of file diff --git a/hotspot/exportusers.php b/hotspot/exportusers.php new file mode 100644 index 0000000..c04fada --- /dev/null +++ b/hotspot/exportusers.php @@ -0,0 +1,205 @@ +. + */ + +// hide all error +error_reporting(0); +ini_set('max_execution_time', 300); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if ($prof == "all") { + $getuser = $API->comm("/ip/hotspot/user/print"); + $TotalReg = count($getuser); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "" + )); + } elseif ($prof != "all") { + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?profile" => "$prof", + )); + $TotalReg = count($getuser); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "", + "?profile" => "$prof", + )); + + } + if ($comm != "") { + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?comment" => "$comm", + //"?uptime" => "00:00:00" + )); + $TotalReg = count($getuser); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "", + "?comment" => "$comm", + )); + } +} +?> +
+
+
+
+

Export Hotspot Users | .')" title="Download User List"> Download +

+ +
+ +
+"> + + + + + + + + '; +} +} else if ($_GET['export'] == "csv") { ?> + + + + + + + + + + + + + + + + + '; + } +} +?> + +
/ip hotspot user
add name="' . $uname . '" password="' . $upass . '" profile="' . $uprofile . '" ' . $comment . ' ' . $timelimit . ' ' . $datalimit . '
UsernamePasswordProfileTime LimitData LimitComment
' . $uname . '' . $upass . '' . $uprofile . '' . $utimelimit . '' . $udatalimit . '' . $ucomment . '
+
+
+
+
+ + + diff --git a/hotspot/generateuser.php b/hotspot/generateuser.php new file mode 100644 index 0000000..25eb2c3 --- /dev/null +++ b/hotspot/generateuser.php @@ -0,0 +1,481 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +ini_set('max_execution_time', 300); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// time zone +date_default_timezone_set($_SESSION['timezone']); + + $genprof = $_GET['genprof']; + if ($genprof != "") { + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array( + "?name" => "$genprof", + )); + $ponlogin = $getprofile[0]['on-login']; + $getprice = explode(",", $ponlogin)[2]; + if ($getprice == "0") { + $getprice = ""; + } else { + $getprice = $getprice; + } + + $getvalid = explode(",", $ponlogin)[3]; + + $getlocku = explode(",", $ponlogin)[6]; + if ($getlocku == "") { + $getprice = "Disable"; + } else { + $getlocku = $getlocku; + } + + if ($currency == in_array($currency, $cekindo['indo'])) { + $getprice = $currency . " " . number_format((float)$getprice, 0, ",", "."); + } else { + $getprice = $currency . " " . number_format((float)$getprice); + } + $ValidPrice = "Validity : " . $getvalid . " | Price : " . $getprice . " | Lock User : " . $getlocku . ""; + } else { + } + + $srvlist = $API->comm("/ip/hotspot/print"); + + if (isset($_POST['qty'])) { + + $qty = ($_POST['qty']); + $server = ($_POST['server']); + $user = ($_POST['user']); + $userl = ($_POST['userl']); + $prefix = ($_POST['prefix']); + $char = ($_POST['char']); + $profile = ($_POST['profile']); + $timelimit = ($_POST['timelimit']); + $datalimit = ($_POST['datalimit']); + $adcomment = ($_POST['adcomment']); + $mbgb = ($_POST['mbgb']); + if ($timelimit == "") { + $timelimit = "0"; + } else { + $timelimit = $timelimit; + } + if ($datalimit == "") { + $datalimit = "0"; + } else { + $datalimit = $datalimit * $mbgb; + } + if ($adcomment == "") { + $adcomment = ""; + } else { + $adcomment = $adcomment; + } + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array("?name" => "$profile")); + $ponlogin = $getprofile[0]['on-login']; + $getvalid = explode(",", $ponlogin)[3]; + $getprice = explode(",", $ponlogin)[2]; + $getsprice = explode(",", $ponlogin)[4]; + $getlock = explode(",", $ponlogin)[6]; + $_SESSION['ubp'] = $profile; + $commt = $user . "-" . rand(100, 999) . "-" . date("m.d.y") . "-" . $adcomment; + $gentemp = $commt . "|~" . $profile . "~" . $getvalid . "~" . $getprice . "!".$getsprice."~" . $timelimit . "~" . $datalimit . "~" . $getlock; + $gen = ''; + $temp = './voucher/temp.php'; + $handle = fopen($temp, 'w') or die('Cannot open file: ' . $temp); + $data = $gen; + fwrite($handle, $data); + + $a = array("1" => "", "", 1, 2, 2, 3, 3, 4); + + if ($user == "up") { + for ($i = 1; $i <= $qty; $i++) { + if ($char == "lower") { + $u[$i] = randLC($userl); + } elseif ($char == "upper") { + $u[$i] = randUC($userl); + } elseif ($char == "upplow") { + $u[$i] = randULC($userl); + } elseif ($char == "mix") { + $u[$i] = randNLC($userl); + } elseif ($char == "mix1") { + $u[$i] = randNUC($userl); + } elseif ($char == "mix2") { + $u[$i] = randNULC($userl); + } + if ($userl == 3) { + $p[$i] = randN(3); + } elseif ($userl == 4) { + $p[$i] = randN(4); + } elseif ($userl == 5) { + $p[$i] = randN(5); + } elseif ($userl == 6) { + $p[$i] = randN(6); + } elseif ($userl == 7) { + $p[$i] = randN(7); + } elseif ($userl == 8) { + $p[$i] = randN(8); + } + + $u[$i] = "$prefix$u[$i]"; + } + + for ($i = 1; $i <= $qty; $i++) { + $API->comm("/ip/hotspot/user/add", array( + "server" => "$server", + "name" => "$u[$i]", + "password" => "$p[$i]", + "profile" => "$profile", + "limit-uptime" => "$timelimit", + "limit-bytes-total" => "$datalimit", + "comment" => "$commt", + )); + } + } + + if ($user == "vc") { + $shuf = ($userl - $a[$userl]); + for ($i = 1; $i <= $qty; $i++) { + if ($char == "lower") { + $u[$i] = randLC($shuf); + } elseif ($char == "upper") { + $u[$i] = randUC($shuf); + } elseif ($char == "upplow") { + $u[$i] = randULC($shuf); + } + if ($userl == 3) { + $p[$i] = randN(1); + } elseif ($userl == 4 || $userl == 5) { + $p[$i] = randN(2); + } elseif ($userl == 6 || $userl == 7) { + $p[$i] = randN(3); + } elseif ($userl == 8) { + $p[$i] = randN(4); + } + + $u[$i] = "$prefix$u[$i]$p[$i]"; + + if ($char == "num") { + if ($userl == 3) { + $p[$i] = randN(3); + } elseif ($userl == 4) { + $p[$i] = randN(4); + } elseif ($userl == 5) { + $p[$i] = randN(5); + } elseif ($userl == 6) { + $p[$i] = randN(6); + } elseif ($userl == 7) { + $p[$i] = randN(7); + } elseif ($userl == 8) { + $p[$i] = randN(8); + } + + $u[$i] = "$prefix$p[$i]"; + } + if ($char == "mix") { + $p[$i] = randNLC($userl); + + + $u[$i] = "$prefix$p[$i]"; + } + if ($char == "mix1") { + $p[$i] = randNUC($userl); + + + $u[$i] = "$prefix$p[$i]"; + } + if ($char == "mix2") { + $p[$i] = randNULC($userl); + + + $u[$i] = "$prefix$p[$i]"; + } + + } + for ($i = 1; $i <= $qty; $i++) { + $API->comm("/ip/hotspot/user/add", array( + "server" => "$server", + "name" => "$u[$i]", + "password" => "$u[$i]", + "profile" => "$profile", + "limit-uptime" => "$timelimit", + "limit-bytes-total" => "$datalimit", + "comment" => "$commt", + )); + } + } + + + if ($qty < 2) { + echo ""; + } else { + echo ""; + } + } + + $getprofile = $API->comm("/ip/hotspot/user/profile/print"); + include_once('./voucher/temp.php'); + $genuser = explode("-", decrypt($genu)); + $genuser1 = explode("~", decrypt($genu)); + $umode = $genuser[0]; + $ucode = $genuser[1]; + $udate = $genuser[2]; + $uprofile = $genuser1[1]; + $uvalid = $genuser1[2]; + $ucommt = $genuser[3]; + if ($uvalid == "") { + $uvalid = "-"; + } else { + $uvalid = $uvalid; + } + $uprice = explode("!",$genuser1[3])[0]; + if ($uprice == "0") { + $uprice = "-"; + } else { + $uprice = $uprice; + } + $suprice = explode("!",$genuser1[3])[1]; + if ($suprice == "0") { + $suprice = "-"; + } else { + $suprice = $suprice; + } + $utlimit = $genuser1[4]; + if ($utlimit == "0") { + $utlimit = "-"; + } else { + $utlimit = $utlimit; + } + $udlimit = $genuser1[5]; + if ($udlimit == "0") { + $udlimit = "-"; + } else { + $udlimit = formatBytes($udlimit, 2); + } + $ulock = $genuser1[6]; + //$urlprint = "$umode-$ucode-$udate-$ucommt"; + $urlprint = explode("|", decrypt($genu))[0]; + if ($currency == in_array($currency, $cekindo['indo'])) { + $uprice = $currency . " " . number_format((float)$uprice, 0, ",", "."); + $suprice = $currency . " " . number_format((float)$suprice, 0, ",", "."); + } else { + $uprice = $currency . " " . number_format((float)$uprice); + $suprice = $currency . " " . number_format((float)$suprice); + + } + +} +?> +
+ +
+
+
+

+
+
+
+
+ ".$_close.""; + } elseif ($_SESSION['vcr'] = "active") { + echo " ".$_close.""; + } else { + echo " ".$_close.""; + } + + ?> + " href="./?hotspot=users&profile= +&session="> + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server + +
+ +
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+ +
+
+
+

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+ +

+

+ +

+
+
+
+
+ +
diff --git a/hotspot/hosts.php b/hotspot/hosts.php new file mode 100644 index 0000000..921a156 --- /dev/null +++ b/hotspot/hosts.php @@ -0,0 +1,138 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if ($hotspot == "hostp") { + $gethosts = $API->comm("/ip/hotspot/host/print", array( + "?bypassed" => "yes", + )); + $TotalReg = count($gethosts); + + $counthosts = $API->comm("/ip/hotspot/host/print", array( + "?bypassed" => "yes", + "count-only" => "", + )); + + } elseif ($hotspot == "hosta") { + $gethosts = $API->comm("/ip/hotspot/host/print", array( + "?authorized" => "yes", + )); + $TotalReg = count($gethosts); + + $counthosts = $API->comm("/ip/hotspot/host/print", array( + "?authorized" => "yes", + "count-only" => "", + )); + + } else { + $gethosts = $API->comm("/ip/hotspot/host/print"); + $TotalReg = count($gethosts); + + $counthosts = $API->comm("/ip/hotspot/host/print", array( + "count-only" => "", + )); + } +} +?> +
+
+
+
+

Hosts + 1) { + echo "$counthosts items "; + }; + ?>  + |   All   + |   A   + |   P   + |    +

+
+ +
+
+ +
+
+ + + + + + + + + + + + +"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; +} +?> + +
MAC Address Address To Address Server
"; + if ($hosts['authorized'] == "true" && $hosts['DHCP'] == "true") { + echo "A H"; + } elseif ($hosts['authorized'] == "true" && $hosts['dynamic'] == "true") { + echo "A D"; + } elseif ($hosts['authorized'] == "true") { + echo "A"; + } elseif ($hosts['DHCP'] == "true") { + echo "H"; + } elseif ($hosts['dynamic'] == "true") { + echo "D"; + } elseif ($hosts['bypassed'] == "true") { + echo "P"; + } else { + } + echo "" . $maca . "" . $addr . "" . $toaddr . "" . $server . "" . $commt . "
+
+
+ +
+
\ No newline at end of file diff --git a/hotspot/hotspotactive.php b/hotspot/hotspotactive.php new file mode 100644 index 0000000..836f6a1 --- /dev/null +++ b/hotspot/hotspotactive.php @@ -0,0 +1,137 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + +// load session MikroTik + $session = $_GET['session']; + $serveractive = $_GET['server']; + +// load config + include('../include/config.php'); + include('../include/readcfg.php'); + +// lang + include('../include/lang.php'); + include('../lang/'.$langid.'.php'); + +// routeros api + include_once('../lib/routeros_api.class.php'); + include_once('../lib/formatbytesbites.php'); + $API = new RouterosAPI(); + $API->debug = false; + $API->connect($iphost, $userhost, decrypt($passwdhost)); + + if ($serveractive != "") { + $gethotspotactive = $API->comm("/ip/hotspot/active/print", array("?server" => "" . $serveractive . "")); + $TotalReg = count($gethotspotactive); + + $counthotspotactive = $API->comm("/ip/hotspot/active/print", array( + "count-only" => "", "?server" => "" . $serveractive . "" + )); + + } else { + $gethotspotactive = $API->comm("/ip/hotspot/active/print"); + $TotalReg = count($gethotspotactive); + + $counthotspotactive = $API->comm("/ip/hotspot/active/print", array( + "count-only" => "", + )); + } +} +?> +
+
+
+
+
+

1) { + echo "$counthotspotactive items"; + }; + if ($serveractive == "") { + } else { + echo " | Show all"; + } + ?>

+
+
+ + + + + + + + + + + + + + + + + +"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; +} +?> + +
ServerUserAddressMac AddressUptimeBytes InBytes OutTime LeftLogin By
" . $server . " " . $user . "" . $address . "" . $mac . "" . $uptime . "" . $bytesi . "" . $byteso . "" . $usesstime . "" . $loginby . "" . $comment . "
+
+
+
+
+
\ No newline at end of file diff --git a/hotspot/index.php b/hotspot/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/hotspot/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/hotspot/ipbinding.php b/hotspot/ipbinding.php new file mode 100644 index 0000000..8c9bf16 --- /dev/null +++ b/hotspot/ipbinding.php @@ -0,0 +1,133 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getbinding = $API->comm("/ip/hotspot/ip-binding/print"); + $TotalReg = count($getbinding); + + $countbinding = $API->comm("/ip/hotspot/ip-binding/print", array( + "count-only" => "", + )); +} + +?> +
+
+
+
+
+

+ 1) { + echo "$countbinding items"; +}; +?> +

+
+
+
+ +
+
+ + + + + + + + + + + + + +"; + ?> + "; + } else { + $uriprocess = "'./?disable-ip-binding=" . $id . "&session=" . $session . "'"; + echo ""; + } + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + ?> + +
MAC Address Address To Address Server
       + "; + if ($binding['bypassed'] == "true") { + echo "P"; + } else { + } + echo "" . $commt . "" . $maca . "" . $addr . "" . $toaddr . "" . $server . "
+
+
+
+
+ +
+
diff --git a/hotspot/listquickprint.php b/hotspot/listquickprint.php new file mode 100644 index 0000000..6f9dfcf --- /dev/null +++ b/hotspot/listquickprint.php @@ -0,0 +1,373 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +ini_set('max_execution_time', 300); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + $qpid = $_GET['qpid']; + $rem = $_GET['remove']; + $charup = array( + "lower" => "abcd", + "upper" => " ABCD", + "upplow" => " aBcD", + "mix" => " 5ab2c34d", + "mix1" => " 5AB2C34D", + "mix2" => "5aB2c34D", + ); + + $charvc = array( + "lower" => " abcd2345", + "upper" => " ABCD2345", + "upplow" => " aBcD2345", + "num" => " 1234", + ); + +if(isset($qpid) && isset($rem)){ + $API->comm("/system/script/remove", array( + ".id" => "$qpid", +)); +echo ''; +} + + // get quick print +$getquickprint = $API->comm("/system/script/print", array("?.id" => "$qpid")); + $quickprintdetails = $getquickprint[0]; + $qpid = $quickprintdetails['.id']; + $quickprintsource = explode("#",$quickprintdetails['source']); + $package = $quickprintsource[1]; + $server = $quickprintsource[2]; + $usermode = $quickprintsource[3]; + $userlength = $quickprintsource[4]; + $prefix = $quickprintsource[5]; + $char = $quickprintsource[6]; + $profile = $quickprintsource[7]; + $timelimit = $quickprintsource[8]; + $datalimit = $quickprintsource[9]; + $comment = $quickprintsource[10]; + if($usermode == "up"){ + $tusermode = $_user_pass; + $tchar = $charup[$char]; + }elseif($usermode == "vc"){ + $tusermode = $_user_user; + $tchar = $charvc[$char]; + } + if (substr(formatBytes2($datalimit, 2), -2) == "MB") { + $udatalimit = $datalimit / 1048576; + $xdatalimit = 1048576; + $MG = "MB"; + } elseif (substr(formatBytes2($datalimit, 2), -2) == "GB") { + $udatalimit = $datalimit / 1073741824; + $xdatalimit = 1073741824; + $MG = "GB"; + } else{ + $udatalimit = ""; + $xdatalimit = 1048576; + $MG = "MB"; + } + + // array color + $color = array('1' => 'bg-blue', 'bg-indigo', 'bg-purple', 'bg-pink', 'bg-red', 'bg-yellow', 'bg-green', 'bg-teal', 'bg-cyan', 'bg-grey', 'bg-light-blue'); + + $srvlist = $API->comm("/ip/hotspot/print"); + $getprofile = $API->comm("/ip/hotspot/user/profile/print"); + + + if (isset($_POST['name'])) { + $name = ($_POST['name']); + $sname = "Quick_Print_".(preg_replace('/\s+/', '-', $_POST['name'])); + $server = ($_POST['server']); + $user = ($_POST['user']); + $userl = ($_POST['userl']); + $prefix = ($_POST['prefix']); + $char = ($_POST['char']); + $profile = ($_POST['profile']); + $timelimit = ($_POST['timelimit']); + $datalimit = ($_POST['datalimit']); + $adcomment = ($_POST['adcomment']); + $mbgb = ($_POST['mbgb']); + if ($timelimit == "") { + $timelimit = "0"; + } else { + $timelimit = $timelimit; + } + if ($datalimit == "") { + $datalimit = "0"; + } else { + $datalimit = $datalimit * $mbgb; + } + if ($adcomment == "") { + $adcomment = ""; + } else { + $adcomment = $adcomment; + } + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array("?name" => "$profile")); + $ponlogin = $getprofile[0]['on-login']; + $getvalid = explode(",", $ponlogin)[3]; + $getprice = explode(",", $ponlogin)[2]; + $getsprice = explode(",", $ponlogin)[4]; + $getlock = explode(",", $ponlogin)[6]; + + $source = '#'.$name.'#'.$server.'#'.$user.'#'.$userl.'#'.$prefix.'#'.$char.'#'.$profile.'#'.$timelimit.'#'.$datalimit.'#'.$adcomment.'#'.$getvalid.'#'.$getprice.'_'.$getsprice.'#'.$getlock; + + if (isset($qpid)){ + $API->comm("/system/script/set", array( + ".id" => "$qpid", + "name" => "$sname", + "source" => "$source", + "comment" => "QuickPrintMikhmon", + )); + }else{ + $API->comm("/system/script/add", array( + "name" => "$sname", + "source" => "$source", + "comment" => "QuickPrintMikhmon", + )); + } + + echo ""; + + } + + + +} +?> +
+ +
+
+
+

+
+
+
+
+ ".$_cancel.""; +}else{ + echo " ".$_close.""; +} ?> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server + +
+ +
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+ +
+
+
+

+
+
+
+
+ + + + + + + + + + + + + + + + + +comm("/system/script/print", array("?comment" => "QuickPrintMikhmon")); +$TotalReg = count($getquickprint); +for ($i = 0; $i < $TotalReg; $i++) { + $quickprintdetails = $getquickprint[$i]; + $qpid = $quickprintdetails['.id']; + $quickprintsource = explode("#",$quickprintdetails['source']); + $package = $quickprintsource[1]; + $server = $quickprintsource[2]; + $usermode = $quickprintsource[3]; + $userlength = $quickprintsource[4]; + $prefix = $quickprintsource[5]; + $char = $quickprintsource[6]; + $profile = $quickprintsource[7]; + $timelimit = $quickprintsource[8]; + $datalimit = $quickprintsource[9]; + $comment = $quickprintsource[10]; + $validity = $quickprintsource[11]; + $getprice = explode("_",$quickprintsource[12])[0]; + $getsprice = explode("_",$quickprintsource[12])[1]; + $userlock = $quickprintsource[13]; + if ($currency == in_array($currency, $cekindo['indo'])) { + $price = $currency . " " . number_format($getprice, 0, ",", "."); + $sprice = $currency . " " . number_format($getsprice, 0, ",", "."); +} else { + $price = $currency . " " . number_format($getprice); + $sprice = $currency . " " . number_format($getsprice); +} +?> + + + + + + + + + + + + + + + + + +
Server
 
+
+
+
+
+
+ +
diff --git a/hotspot/log.php b/hotspot/log.php new file mode 100644 index 0000000..b0480fb --- /dev/null +++ b/hotspot/log.php @@ -0,0 +1,86 @@ +. + */ + +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getlog = $API->comm("/log/print", array( + "?topics" => "hotspot,info,debug" + )); + $log = array_reverse($getlog); + $TotalReg = count($getlog); +} +?> +
+
+
+
+

  |   

+
+
+ +
+ +
+
+ + + + + + + + + +"; + if (substr($log[$i]['message'], 0, 2) == "->") { + echo ""; + //echo substr($mess[1], 0,2); + echo ""; + echo ""; + } else { + } + echo ""; +} +?> + +
(IP)
" . $time . ""; + if (count($mess) > 6) { + echo $mess[1] . ":" . $mess[2] . ":" . $mess[3] . ":" . $mess[4] . ":" . $mess[5] . ":" . $mess[6]; + } else { + echo $mess[1]; + } + echo ""; + if (count($mess) > 6) { + echo str_replace("trying to", "", $mess[7] . " " . $mess[8] . " " . $mess[9] . " " . $mess[10]); + } else { + echo str_replace("trying to", "", $mess[2] . " " . $mess[3] . " " . $mess[4] . " " . $mess[5]); + } + echo "
+
+
+
+
+
diff --git a/hotspot/quickprint.php b/hotspot/quickprint.php new file mode 100644 index 0000000..73bbc17 --- /dev/null +++ b/hotspot/quickprint.php @@ -0,0 +1,102 @@ +. + */ + +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// array color + $color = array('1' => 'bg-blue', 'bg-indigo', 'bg-purple', 'bg-pink', 'bg-red', 'bg-yellow', 'bg-green', 'bg-teal', 'bg-cyan', 'bg-grey', 'bg-light-blue'); + + ?> +
+
+
+
+

   |    List

+
+
+
+
+comm("/system/script/print", array("?comment" => "QuickPrintMikhmon")); +$TotalReg = count($getquickprint); +for ($i = 0; $i < $TotalReg; $i++) { + $quickprintdetails = $getquickprint[$i]; + $qpname = $quickprintdetails['name']; + $qpid = $quickprintdetails['.id']; + $quickprintsource = explode("#",$quickprintdetails['source']); + $package = $quickprintsource[1]; + $server = $quickprintsource[2]; + $usermode = $quickprintsource[3]; + $userlength = $quickprintsource[4]; + $prefix = $quickprintsource[5]; + $char = $quickprintsource[6]; + $profile = $quickprintsource[7]; + $timelimit = $quickprintsource[8]; + $datalimit = $quickprintsource[9]; + $comment = $quickprintsource[10]; + $validity = $quickprintsource[11]; + $getprice = explode("_",$quickprintsource[12])[0]; + $getsprice = explode("_",$quickprintsource[12])[1]; + $userlock = $quickprintsource[13]; + if ($currency == in_array($currency, $cekindo['indo'])) { + $price = $currency . " " . number_format((float)$getprice, 0, ",", "."); + $sprice = $currency . " " . number_format((float)$getsprice, 0, ",", "."); +} else { + $price = $currency . " " . number_format((float)$getprice); + $sprice = $currency . " " . number_format((float)$getsprice); +} + ?> +
+
'> +
+
+ +
+
+

:

+ : | :
: | : | :
+
+
+ +
+
+ +
+
+
+
+
+
+ + \ No newline at end of file diff --git a/hotspot/quickuser.php b/hotspot/quickuser.php new file mode 100644 index 0000000..1f0807b --- /dev/null +++ b/hotspot/quickuser.php @@ -0,0 +1,268 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + +// time zone +date_default_timezone_set($_SESSION['timezone']); + +// load session MikroTik +$session = $_GET['session']; + +$quickprint = $_GET['quickprint']; +$qty = 1; +// lang +include('../include/lang.php'); +include('../lang/'.$langid.'.php'); +// quick bt +include('../include/quickbt.php'); +// load config +include('../include/config.php'); +include('../include/readcfg.php'); + +// routeros api +include_once('../lib/routeros_api.class.php'); +include_once('../lib/formatbytesbites.php'); +$API = new RouterosAPI(); +$API->debug = false; +$API->connect($iphost, $userhost, decrypt($passwdhost)); + // get quick print +$getquickprint = $API->comm("/system/script/print", array("?name" => "$quickprint")); + + $quickprintdetails = $getquickprint[0]; + $qpid = $quickprintdetails['.id']; + $quickprintsource = explode("#",$quickprintdetails['source']); + $package = $quickprintsource[1]; + $server = $quickprintsource[2]; + $usermode = $quickprintsource[3]; + $userl = $quickprintsource[4]; + $prefix = $quickprintsource[5]; + $char = $quickprintsource[6]; + $profile = $quickprintsource[7]; + $timelimit = $quickprintsource[8]; + $datalimit = $quickprintsource[9]; + $comment = $quickprintsource[10]; + $getvalid = $quickprintsource[11]; + $getprice = explode("_",$quickprintsource[12])[0]; + $getsprice = explode("_",$quickprintsource[12])[1]; + $userlock = $quickprintsource[13]; + + if($getsprice == "" && $getprice != ""){ + $price = $getprice; + }else if($getsprice != ""){ + $price = $getsprice; + }else if ($getsprice == "") { + $price = ""; + } + + $commt = $usermode . "-" . rand(100, 999) . "-" . date("m.d.y") . "-" . $comment; + + $a = array("1" => "", "", 1, 2, 2, 3, 3, 4); + + if ($usermode == "up") { + for ($i = 1; $i <= $qty; $i++) { + if ($char == "lower") { + $u[$i] = randLC($userl); + } elseif ($char == "upper") { + $u[$i] = randUC($userl); + } elseif ($char == "upplow") { + $u[$i] = randULC($userl); + } elseif ($char == "mix") { + $u[$i] = randNLC($userl); + } elseif ($char == "mix1") { + $u[$i] = randNUC($userl); + } elseif ($char == "mix2") { + $u[$i] = randNULC($userl); + } + if ($userl == 3) { + $p[$i] = randN(3); + } elseif ($userl == 4) { + $p[$i] = randN(4); + } elseif ($userl == 5) { + $p[$i] = randN(5); + } elseif ($userl == 6) { + $p[$i] = randN(6); + } elseif ($userl == 7) { + $p[$i] = randN(7); + } elseif ($userl == 8) { + $p[$i] = randN(8); + } + + $u[$i] = "$prefix$u[$i]"; + } + + for ($i = 1; $i <= $qty; $i++) { + $API->comm("/ip/hotspot/user/add", array( + "server" => "$server", + "name" => "$u[$i]", + "password" => "$p[$i]", + "profile" => "$profile", + "limit-uptime" => "$timelimit", + "limit-bytes-total" => "$datalimit", + "comment" => "$commt", + )); + } + } + + if ($usermode == "vc") { + $shuf = ($userl - $a[$userl]); + for ($i = 1; $i <= $qty; $i++) { + if ($char == "lower") { + $u[$i] = randLC($shuf); + } elseif ($char == "upper") { + $u[$i] = randUC($shuf); + } elseif ($char == "upplow") { + $u[$i] = randULC($shuf); + } + if ($userl == 3) { + $p[$i] = randN(1); + } elseif ($userl == 4 || $userl == 5) { + $p[$i] = randN(2); + } elseif ($userl == 6 || $userl == 7) { + $p[$i] = randN(3); + } elseif ($userl == 8) { + $p[$i] = randN(4); + } + + $u[$i] = "$prefix$u[$i]$p[$i]"; + + if ($char == "num") { + if ($userl == 3) { + $p[$i] = randN(3); + } elseif ($userl == 4) { + $p[$i] = randN(4); + } elseif ($userl == 5) { + $p[$i] = randN(5); + } elseif ($userl == 6) { + $p[$i] = randN(6); + } elseif ($userl == 7) { + $p[$i] = randN(7); + } elseif ($userl == 8) { + $p[$i] = randN(8); + } + + $u[$i] = "$prefix$p[$i]"; + } + if ($char == "mix") { + $p[$i] = randNLC($userl); + + + $u[$i] = "$prefix$p[$i]"; + } + if ($char == "mix1") { + $p[$i] = randNUC($userl); + + + $u[$i] = "$prefix$p[$i]"; + } + if ($char == "mix2") { + $p[$i] = randNULC($userl); + + + $u[$i] = "$prefix$p[$i]"; + } + + } + for ($i = 1; $i <= $qty; $i++) { + $API->comm("/ip/hotspot/user/add", array( + "server" => "$server", + "name" => "$u[$i]", + "password" => "$u[$i]", + "profile" => "$profile", + "limit-uptime" => "$timelimit", + "limit-bytes-total" => "$datalimit", + "comment" => "$commt", + )); + } + } + + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?name" => "$u[1]", + )); + $userdetails = $getuser[0]; + $uid = $userdetails['.id']; + $uname = $userdetails['name']; + $upass = $userdetails['password']; + $uprofile = $userdetails['profile']; + $uuptime = formatDTM($userdetails['uptime']); + $utimelimit = $userdetails['limit-uptime']; + $udatalimit = $userdetails['limit-bytes-total']; + $ucomment = $userdetails['comment']; + + if (substr(formatBytes2($udatalimit, 2), -2) == "MB") { + $udatalimit = $udatalimit / 1048576; + $MG = "MB"; + } elseif (substr(formatBytes2($udatalimit, 2), -2) == "GB") { + $udatalimit = $udatalimit / 1073741824; + $MG = "GB"; + } elseif ($udatalimit == "") { + $udatalimit = ""; + $MG = "MB"; + } + $_SESSION['sss'] = $uname; + +// Print BT + $chl = urlencode("http://$dnsname/login?username=$uname&password=$upass"); + $qrcode = 'https://chart.googleapis.com/chart?cht=qr&chs=100x100&chld=L|0&chl=' . $chl . '&choe=utf-8'; + //$qrcode = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data='.$chl; + +if ($currency == in_array($currency, $cekindo['indo'])) { + $pricebt = $currency . " " . number_format($price, 0, ",", "."); + if (substr($getvalid, -1) == "d") { + $validity = substr($getvalid, 0, -1) . "Hari"; + } else if (substr($getvalid, -1) == "h") { + $validity = substr($getvalid, 0, -1) . "Jam"; + } + if (substr($utimelimit, -1) == "d" & strlen($utimelimit) > 3) { + $timelimit = ((substr($utimelimit, 0, -1) * 7) + substr($utimelimit, 2, 1)) . "Hari"; + } else if (substr($utimelimit, -1) == "d") { + $timelimit = substr($utimelimit, 0, -1) . "Hari"; + } else if (substr($utimelimit, -1) == "h") { + $timelimit = substr($utimelimit, 0, -1) . "Jam"; + } else if (substr($utimelimit, -1) == "w") { + $timelimit = (substr($utimelimit, 0, -1) * 7) . "Hari"; + } + + } else { + $pricebt = $currency . " " . number_format($price); + $timelimit = $utimelimit; + $validity = $getvalid; + } + if($qrbt == "enable"){$qr = "yes";} + include('../voucher/printbt.php'); +?> + + + \ No newline at end of file diff --git a/hotspot/userbyname.php b/hotspot/userbyname.php new file mode 100644 index 0000000..d5c0a30 --- /dev/null +++ b/hotspot/userbyname.php @@ -0,0 +1,462 @@ +. + */ + +// hide all error +error_reporting(0); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + date_default_timezone_set($_SESSION['timezone']); + + $getprofile = $API->comm("/ip/hotspot/user/profile/print"); + $srvlist = $API->comm("/ip/hotspot/print"); + + if (substr($hotspotuser, 0, 1) == "*") { + $hotspotuser = $hotspotuser; + } elseif (substr($hotspotuser, 0, 1) != "") { + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?name" => "$hotspotuser", + )); + $hotspotuser = $getuser[0]['.id']; + //if($hotspotuser == ""){echo "Hotspot User not found";} + } + + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?.id" => "$hotspotuser", + )); + $userdetails = $getuser[0]; + $uid = $userdetails['.id']; + $userver = $userdetails['server']; + $uname = $userdetails['name']; + $upass = $userdetails['password']; + $umac = $userdetails['mac-address']; + $uprofile = $userdetails['profile']; + $uuptime = formatDTM($userdetails['uptime']); + $ueduser = $userdetails['disabled']; + $utimelimit = $userdetails['limit-uptime']; + $udatalimit = $userdetails['limit-bytes-total']; + $ubytesout = $userdetails['bytes-out']; + $ubytesin = $userdetails['bytes-in']; + $ucomment = $userdetails['comment']; + + + if (substr(formatBytes2($udatalimit, 2), -2) == "MB") { + $udatalimit = $udatalimit / 1048576; + $MG = "MB"; + } elseif (substr(formatBytes2($udatalimit, 2), -2) == "GB") { + $udatalimit = $udatalimit / 1073741824; + $MG = "GB"; + } elseif ($udatalimit == "") { + $udatalimit = ""; + $MG = "MB"; + } + + if ($uname == $upass) { + $usermode = "vc"; + } else { + $usermode = "up"; + } + + if ($uname == "") { + echo "User not found redirect to user list..."; + echo ""; + } + + if((substr($ucomment,3,1) == "/" && substr($ucomment,6,1) == "/")){ + $commt = 'disabled'; + $comment2t = 'text'; + $_tcomment = $_expired; + $_tcomment2 = $_comment; + $ucomment2 = substr($ucomment,21, (strlen($ucomment)-21)); + $ucomment = substr($ucomment,0,20); + }else{ + $comment2t = 'hidden'; + $_tcomment = $_comment; + $_tcomment2 = ""; + $display = 'style="display:none"'; + } + + $getprofilebyuser = $API->comm("/ip/hotspot/user/profile/print", array( + "?name" => "$uprofile" + )); + $profiledetalis = $getprofilebyuser[0]; + $ponlogin = $profiledetalis['on-login']; + $getvalid = explode(",", $ponlogin)[3]; + $getprice = explode(",", $ponlogin)[2]; + $getsprice = explode(",", $ponlogin)[4]; + + + $getsch = $API->comm("/system/scheduler/print", array( + "?name" => "$uname", + )); + $schdetails = $getsch[0]; + $start = $schdetails['start-date'] . " " . $schdetails['start-time']; + $end = $schdetails['next-run']; + //$valy = $schdetails['interval']; +// share WhatsApp + if ($getvalid != "") { + $wavalid = $_validity." : *" . $getvalid . "* %0A"; + } else { + $wavalid = ""; + } + if ($utimelimit != "") { + $watlimit = $_time_limit." : *" . $utimelimit . "* %0A"; + } else { + $watlimit = ""; + $bMB = ""; + } + if ($udatalimit != "") { + $wadlimit = $_data_limit." : *" . $udatalimit . "" . $MG . "* %0A"; + $bMG = $MG; + } else { + $wadlimit = ""; + } + + if($getsprice == "" && $getprice != ""){ + if ($currency == in_array($currency, $cekindo['indo'])) { + $waprice = $_price." : *" . $currency . " " . number_format((float)$getprice, 0, ",", ".") . "* %0A"; + } else { + $waprice = $_price . " : *" . $currency . " " . number_format((float)$getprice) . "* %0A"; + } + $btprice = $getprice; + }else if($getsprice != ""){ + if ($currency == in_array($currency, $cekindo['indo'])) { + $waprice = $_price." : *" . $currency . " " . number_format((float)$getsprice, 0, ",", ".") . "* %0A"; + } else { + $waprice = $_price . " : *" . $currency . " " . number_format((float)$getsprice) . "* %0A"; + } + $btprice = $getsprice; + }else if ($getsprice == "") { + $waprice = ""; + $btprice = ""; + } + + $shareWAUP = " +%0A---------%0A +*" . $hotspotname . "* +%0A%0A +Username : *" . $uname . "* %0A +Password : *" . $upass . "* %0A +" . $wavalid . " +" . $watlimit . " +" . $wadlimit . " +" . $waprice . " %0A +Login : *http://" . $dnsname . "* %0A +--------- +"; + $shareWAVC = " +%0A---------%0A +*" . $hotspotname . "* +%0A%0A +Voucher : *" . $uname . "* %0A +" . $wavalid . " +" . $watlimit . " +" . $wadlimit . " +" . $waprice . " %0A +Login : *http://" . $dnsname . "* %0A +--------- +"; + if ($uname == $upass) { + $shareWA = $shareWAVC; + } else { + $shareWA = $shareWAUP; + } + +// quick bt +include('./include/quickbt.php'); + +// Print BT + $chl = urlencode("http://$dnsname/login?username=$uname&password=$upass"); + $qrcode = 'https://chart.googleapis.com/chart?cht=qr&chs=100x100&chld=L|0&chl=' . $chl . '&choe=utf-8'; + //$qrcode = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data='.$chl; + + + +if ($currency == in_array($currency, $cekindo['indo'])) { + $pricebt = $currency . " " . number_format((float)$btprice, 0, ",", "."); + if (substr($getvalid, -1) == "d") { + $validity = substr($getvalid, 0, -1) . "Hari"; + } else if (substr($getvalid, -1) == "h") { + $validity = substr($getvalid, 0, -1) . "Jam"; + } else if (substr($getvalid, -1) == "m") { + $validity = substr($getvalid, 0, -1) . "Menit"; + } + if (substr($utimelimit, -1) == "d" & strlen($utimelimit) > 3) { + $timelimit = ((substr($utimelimit, 0, -1) * 7) + substr($utimelimit, 2, 1)) . "Hari"; + } else if (substr($utimelimit, -1) == "d") { + $timelimit = substr($utimelimit, 0, -1) . "Hari"; + } else if (substr($utimelimit, -1) == "h") { + $timelimit = substr($utimelimit, 0, -1) . "Jam"; + } else if (substr($utimelimit, -1) == "w") { + $timelimit = (substr($utimelimit, 0, -1) * 7) . "Hari"; + } + } else { + $pricebt = $currency . " " . number_format((float)$btprice); + $timelimit = $utimelimit; + $validity = $getvalid; + } + + + if (isset($_POST['name'])) { + $server = ($_POST['server']); + $name = ($_POST['name']); + $password = ($_POST['pass']); + $profile = ($_POST['profile']); + $disabled = ($_POST['disabled']); + $timelimit = ($_POST['timelimit']); + $datalimit = ($_POST['datalimit']); + $comment = ($_POST['comment']); + $comment2 = ($_POST['comment2']); + $hcomment = ($_POST['h_comment']); + $mbgb = ($_POST['mbgb']); + if ($timelimit == "") { + $timelimit = "0"; + } else { + $timelimit = $timelimit; + } + if ($datalimit == "") { + $datalimit = "0"; + } else { + $datalimit = $datalimit * $mbgb; + } + if ($name == $password) { + $usermode = "vc-"; + }else{ + $usermode = "up-"; + } + + if((substr($hcomment,3,1) == "/" && substr($hcomment,6,1) == "/")){ + $comment = $hcomment." ".$comment2; + }elseif((substr($comment,3,1) == "/" && substr($comment,6,1) == "/")){ + $comment = $comment." ".$comment2; + }elseif(substr($comment,0,3) == "vc-" || substr($comment,0,3) == "up-"){ + $comment = $comment; + }else{ + $comment = $usermode.$comment; + } + + $API->comm("/ip/hotspot/user/set", array( + ".id" => "$uid", + "server" => "$server", + "name" => "$name", + "password" => "$password", + "profile" => "$profile", + "disabled" => "$disabled", + "limit-uptime" => "$timelimit", + "limit-bytes-total" => "$datalimit", + "comment" => "$comment", + )); + echo ""; + } +} +include('./voucher/printbt.php'); +?> + + +
+
+
+
+

+
+
+
+
+ ".$_close.""; + } elseif ($_SESSION['ubc'] != "") { + echo " ".$_close.""; + } elseif ($_SESSION['hua'] != "") { + $_SESSION['ubn'] = ""; + echo " ".$_close.""; + $_SESSION['hua'] = ""; + } elseif ($_SESSION['ubn'] != "") { + echo " ".$_close.""; + $_SESSION['ubn'] = ""; + } else { + echo " ".$_close.""; + } + ?> + +
+ &qr=no&session=','_blank','width=310,height=450').print();"> + &qr=yes&session=','_blank','width=310,height=450').print();"> + Reset'; + } ?> + + +
BT

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + + + + +
Enabled + +
Server + +
+
+
+ +
+
+
+ +
+
+
+
+ +
Mac Address
Uptime
Bytes In / Out
">
+
+
+ +
+
+ +
+
+
>
" disabled>
" disabled>
+

+ +

+
+
+
+
+
+
\ No newline at end of file diff --git a/hotspot/userbyprofile.php b/hotspot/userbyprofile.php new file mode 100644 index 0000000..5bf2312 --- /dev/null +++ b/hotspot/userbyprofile.php @@ -0,0 +1,101 @@ +. + */ + +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// array color + $color = array('1' => 'bg-blue', 'bg-indigo', 'bg-purple', 'bg-pink', 'bg-red', 'bg-yellow', 'bg-green', 'bg-teal', 'bg-cyan', 'bg-grey', 'bg-light-blue'); + + ?> +
+
+
+
+

   |   

+
+
+
+
+
+
+
+
+ + +
+
+

Profile : all
+ comm("/ip/hotspot/user/print", array("count-only" => "")); + if ($countuser < 2) { + echo $countuser . " Item"; + } elseif ($countuser > 1) { + echo $countuser . " Items"; + } + ?>

+ +   +   +
+
+ +
+
+comm("/ip/hotspot/user/profile/print"); +$TotalReg = count($getprofile); +for ($i = 0; $i < $TotalReg; $i++) { + $profiledetalis = $getprofile[$i]; + $pname = $profiledetalis['name']; + ?> +
+
+
+
+ + +
+
+

Profile :
+ comm("/ip/hotspot/user/print", array("count-only" => "", "?profile" => "$pname", )); + if ($countuser < 2) { + echo $countuser . " Item"; + } elseif ($countuser > 1) { + echo $countuser . " Items"; + } + ?>

+ +   +   +
+
+ +
+
+ +
+
+
+
+
+
\ No newline at end of file diff --git a/hotspot/userprofile.php b/hotspot/userprofile.php new file mode 100644 index 0000000..60ff1e0 --- /dev/null +++ b/hotspot/userprofile.php @@ -0,0 +1,173 @@ +. + */ + +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + echo ' + +403 Forbidden + +

403 Forbidden

+
nginx/1.14.0
+ + +'; +} else { + + +// get user profile + $getprofile = $API->comm("/ip/hotspot/user/profile/print"); + $TotalReg = count($getprofile); +// count user profile + $countprofile = $API->comm("/ip/hotspot/user/profile/print", array( + "count-only" => "", + )); +} +?> +
+
+
+
+

User Profile +   |   Add +

+
+ +
+
+ + + + + + + + + + + + + + + +comm("/system/scheduler/print", array( + "?name" => "$pname", + )); + $monexpired = $getmonexpired[0]; + $monid = $monexpired['.id']; + $pmon = $monexpired['name']; + $chkpmon = $monexpired['disabled']; + if(empty($pmon) || $chkpmon == "true"){$moncolor = "text-orange";}else{$moncolor = "text-green";} + echo ""; + ?> + "; + echo ""; +//$profiledetalis = $ARRAY[$i];echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; +} +?> + +
+ 1) { + echo "$countprofile items "; + } + ?>Shared
Users
Rate
Limit
       + $pname" . $profiledetalis['name'];echo "" . $psharedu; + echo "" . $pratelimit; + echo ""; + $getexpmode = explode(",", $ponlogin); +// get expired mode + $expmode = $getexpmode[1]; + if ($expmode == "rem") { + echo "Remove"; + } elseif ($expmode == "ntf") { + echo "Notice"; + } elseif ($expmode == "remc") { + echo "Remove & Record"; + } elseif ($expmode == "ntfc") { + echo "Notice & Record"; + } else { + + } + echo ""; +// get validity + $getvalid = explode(",", $ponlogin); + echo $getvalid[3]; + + echo ""; +// get price + $getprice = explode(",", $ponlogin); + $price = trim($getprice[2]); + if ($price == "" || $price == "0") { + echo ""; + } else { + if ($currency == in_array($currency, $cekindo['indo'])) { + echo number_format((float)$price, 0, ",", "."); + } else { + echo number_format((float)$price, 2); + } + } + + echo ""; +// get price + $getsprice = explode(",", $ponlogin); + $price = trim($getsprice[4]); + if ($price == "" || $price == "0") { + echo ""; + } else { + if ($currency == in_array($currency, $cekindo['indo'])) { + echo number_format((float)$price, 0, ",", "."); + } else { + echo number_format((float)$price, 2); + } + } + + echo ""; + + $getgracep = explode(",", $ponlogin); + echo $getgracep[6]; + echo "
+
+
+
+
+
diff --git a/hotspot/userprofilebyname.php b/hotspot/userprofilebyname.php new file mode 100644 index 0000000..b3506a4 --- /dev/null +++ b/hotspot/userprofilebyname.php @@ -0,0 +1,315 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + + if (substr($userprofile, 0, 1) == "*") { + $userprofile = $userprofile; + } elseif (substr($userprofile, 0, 1) != "") { + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array( + "?name" => "$userprofile", + )); + $userprofile = $getprofile[0]['.id']; + if ($userprofile == "") { + echo "User Profile not found"; + } + } + + $getpool = $API->comm("/ip/pool/print"); + + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array( + "?.id" => "$userprofile" + )); + $profiledetalis = $getprofile[0]; + $pid = $profiledetalis['.id']; + $pname = $profiledetalis['name']; + $psharedu = $profiledetalis['shared-users']; + $pratelimit = $profiledetalis['rate-limit']; + $ponlogin = $profiledetalis['on-login']; + $ppool = $profiledetalis['address-pool']; + $sparent = $profiledetalis['parent-queue']; + + if(empty($ppool)){$ppool = "none";} + if(empty($sparent)){$sparent = "none";} + + $getexpmode = explode(",", $ponlogin)[1]; + + if ($getexpmode == "rem") { + $getexpmodet = "Remove"; + } elseif ($getexpmode == "ntf") { + $getexpmodet = "Notice"; + } elseif ($getexpmode == "remc") { + $getexpmodet = "Remove & Record"; + } elseif ($getexpmode == "ntfc") { + $getexpmodet = "Notice & Record"; + } else { + $getexpmode = "0"; + $getexpmodet = "None"; + } + + $getprice = explode(",", $ponlogin)[2]; + if ($getprice == "0") { + $getprice = ""; + } else { + $getprice = $getprice; + } + + $getsprice = explode(",", $ponlogin)[4]; + if ($getsprice == "0") { + $getsprice = ""; + } else { + $getsprice = $getsprice; + } + + $getvalid = explode(",", $ponlogin)[3]; + + $getgracep = explode(",", $ponlogin)[4]; + + $getlocku = explode(",", $ponlogin)[6]; + if ($getlocku == "") { + $getlocku = "Disable"; + } else { + $getlocku = $getlocku; + } + + $getallqueue = $API->comm("/queue/simple/print", array( + "?dynamic" => "false", + )); + + $getmonexpired = $API->comm("/system/scheduler/print", array( + "?name" => "$pname", + )); + $monexpired = $getmonexpired[0]; + $monid = $monexpired['.id']; + $pmon = $monexpired['name']; + $chkpmon = $monexpired['disabled']; + if(empty($pmon) || $chkpmon == "true"){$moncolor = "text-orange";}else{$moncolor = "text-green";} + + if (isset($_POST['name'])) { + $name = (preg_replace('/\s+/', '-',$_POST['name'])); + $sharedusers = ($_POST['sharedusers']); + $ratelimit = ($_POST['ratelimit']); + $expmode = ($_POST['expmode']); + $validity = ($_POST['validity']); + $graceperiod = ($_POST['graceperiod']); + $getprice = ($_POST['price']); + $getsprice = ($_POST['sprice']); + $addrpool = ($_POST['ppool']); + if ($getprice == "") { + $price = "0"; + } else { + $price = $getprice; + } + if ($getsprice == "") { + $sprice = "0"; + } else { + $sprice = $getsprice; + } + $getlock = ($_POST['lockunlock']); + if ($getlock == "Enable") { + $lock = '; [:local mac $"mac-address"; /ip hotspot user set mac-address=$mac [find where name=$user]]'; + } else { + $lock = ""; + } + + $randstarttime = "0".rand(1,5).":".rand(10,59).":".rand(10,59); + $randinterval = "00:02:".rand(10,59); + + $parent = ($_POST['parent']); + + $record = '; :local mac $"mac-address"; :local time [/system clock get time ]; /system script add name="$date-|-$time-|-$user-|-'.$price.'-|-$address-|-$mac-|-' . $validity . '-|-'.$name.'-|-$comment" owner="$month$year" source=$date comment=mikhmon'; + + $onlogin = ':put (",'.$expmode.',' . $price . ',' . $validity . ','.$sprice.',,' . $getlock . ',"); {:local date [ /system clock get date ];:local year [ :pick $date 7 11 ];:local month [ :pick $date 0 3 ];:local comment [ /ip hotspot user get [/ip hotspot user find where name="$user"] comment]; :local ucode [:pic $comment 0 2]; :if ($ucode = "vc" or $ucode = "up" or $comment = "") do={ /sys sch add name="$user" disable=no start-date=$date interval="' . $validity . '"; :delay 2s; :local exp [ /sys sch get [ /sys sch find where name="$user" ] next-run]; :local getxp [len $exp]; :if ($getxp = 15) do={ :local d [:pic $exp 0 6]; :local t [:pic $exp 7 16]; :local s ("/"); :local exp ("$d$s$year $t"); /ip hotspot user set comment=$exp [find where name="$user"];}; :if ($getxp = 8) do={ /ip hotspot user set comment="$date $exp" [find where name="$user"];}; :if ($getxp > 15) do={ /ip hotspot user set comment=$exp [find where name="$user"];}; /sys sch remove [find where name="$user"]'; + + + if ($expmode == "rem") { + $onlogin = $onlogin . $lock . "}}"; + $mode = "remove"; + } elseif ($expmode == "ntf") { + $onlogin = $onlogin . $lock . "}}"; + $mode = "set limit-uptime=1s"; + } elseif ($expmode == "remc") { + $onlogin = $onlogin . $record . $lock . "}}"; + $mode = "remove"; + } elseif ($expmode == "ntfc") { + $onlogin = $onlogin . $record . $lock . "}}"; + $mode = "set limit-uptime=1s"; + } elseif ($expmode == "0" && $price != "") { + $onlogin = ':put (",,' . $price . ',,,noexp,' . $getlock . ',")' . $lock; + } else { + $onlogin = ""; + } + + $bgservice = ':local dateint do={:local montharray ( "jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec" );:local days [ :pick $d 4 6 ];:local month [ :pick $d 0 3 ];:local year [ :pick $d 7 11 ];:local monthint ([ :find $montharray $month]);:local month ($monthint + 1);:if ( [len $month] = 1) do={:local zero ("0");:return [:tonum ("$year$zero$month$days")];} else={:return [:tonum ("$year$month$days")];}}; :local timeint do={ :local hours [ :pick $t 0 2 ]; :local minutes [ :pick $t 3 5 ]; :return ($hours * 60 + $minutes) ; }; :local date [ /system clock get date ]; :local time [ /system clock get time ]; :local today [$dateint d=$date] ; :local curtime [$timeint t=$time] ; :foreach i in [ /ip hotspot user find where profile="'.$name.'" ] do={ :local comment [ /ip hotspot user get $i comment]; :local name [ /ip hotspot user get $i name]; :local gettime [:pic $comment 12 20]; :if ([:pic $comment 3] = "/" and [:pic $comment 6] = "/") do={:local expd [$dateint d=$comment] ; :local expt [$timeint t=$gettime] ; :if (($expd < $today and $expt < $curtime) or ($expd < $today and $expt > $curtime) or ($expd = $today and $expt < $curtime)) do={ [ /ip hotspot user '.$mode.' $i ]; [ /ip hotspot active remove [find where user=$name] ];}}}'; + + + $API->comm("/ip/hotspot/user/profile/set", array( + /*"add-mac-cookie" => "yes",*/ + ".id" => "$pid", + "name" => "$name", + "address-pool" => "$addrpool", + "rate-limit" => "$ratelimit", + "shared-users" => "$sharedusers", + "status-autorefresh" => "1m", +// "transparent-proxy" => "yes", + "on-login" => "$onlogin", + "parent-queue" => "$parent", + )); + if($expmode != "0"){ + if (empty($monid)){ + $API->comm("/system/scheduler/add", array( + "name" => "$name", + "start-time" => "$randstarttime", + "interval" => "$randinterval", + "on-event" => "$bgservice", + "disabled" => "no", + "comment" => "Monitor Profile $name", + )); + }else{ + $API->comm("/system/scheduler/set", array( + ".id" => "$monid", + "name" => "$name", + "start-time" => "$randstarttime", + "interval" => "$randinterval", + "on-event" => "$bgservice", + "disabled" => "no", + "comment" => "Monitor Profile $name", + )); + }}else{ + $API->comm("/system/scheduler/remove", array( + ".id" => "$monid")); + } + + echo ""; + } +} +?> +
+
+
+
+

+
+
+
+
+ + +
+ + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + + + +
Address Pool + +
Shared Users
Rate limit [up/down]
+ +
+ +
Parent Queue + +
+
+
+
+
+
+
+
+

+
+
+ + + + +
+

+ +

+

+ +

+
+
+
+
+
diff --git a/hotspot/users.php b/hotspot/users.php new file mode 100644 index 0000000..a6c3f1f --- /dev/null +++ b/hotspot/users.php @@ -0,0 +1,269 @@ +. + */ + +// hide all error +error_reporting(0); +ini_set('max_execution_time', 300); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if ($prof == "all") { + $getuser = $API->comm("/ip/hotspot/user/print"); + $TotalReg = count($getuser); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "" + )); + + } elseif ($prof != "all") { + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?profile" => "$prof", + )); + $TotalReg = count($getuser); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "", + "?profile" => "$prof", + )); + + } + if ($comm != "") { + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?comment" => "$comm", + //"?uptime" => "00:00:00" + )); + $TotalReg = count($getuser); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "", + "?comment" => "$comm", + )); + + } + $exp = $_GET['exp']; + if ($exp != "") { + $getuser = $API->comm("/ip/hotspot/user/print", array( + "?limit-uptime" => "1s", + )); + + $counttuser = $API->comm("/ip/hotspot/user/print", array( + "count-only" => "", + "?limit-uptime" => "1s", + )); + + } + $getprofile = $API->comm("/ip/hotspot/user/profile/print"); + $TotalReg2 = count($getprofile); +} +?> + +
+
+
+
+

+ + window.location='./?hotspot=users&profile=all&session=" . $session . ""; + } ?> +   |   +   |   +   |   &export=script" title="Download User List as Mikrotik Script"> Script  |   &export=csv" title="Download User List as CSV"> CSV +   + +

+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + +"; + ?> + '; + } else { + $uriprocess = "'./?disable-hotspot-user=" . $uid . "&session=" . $session."'"; + echo ''; + } + echo ""; + if ($uname == $upass) { + $usermode = "vc"; + } else { + $usermode = "up"; + } + $popup = "javascript:window.open('./voucher/print.php?user=" . $usermode . "-" . $uname . "&qr=no&session=" . $session . "','_blank','width=320,height=550').print();"; + $popupQR = "javascript:window.open('./voucher/print.php?user=" . $usermode . "-" . $uname . "&qr=yes&session=" . $session . "','_blank','width=320,height=550').print();"; + echo "'; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + +} +?> + + +
Server Print Mac Address Bytes In Bytes Out
       + " . $userver . " " . $uname . " "; + echo '   " . $uprofile . "" . $umacadd . "" . $uuptime . "" . $ubytesi . "" . $ubyteso . ""; + if ($uname == "default-trial") { + } else if (substr($ucomment,0,3) == "vc-" || substr($ucomment,0,3) == "up-") { + echo " ". $ucomment." ". $udatalimit ." ".$utimelimit . ""; + } else if ($utimelimit == ' expired') { + echo " " . $ucomment." ". $udatalimit ." ".$utimelimit . ""; + }else{ + echo $ucomment.' '; + } + echo "
+
+
+
+
+
+ + + diff --git a/img/favicon.png b/img/favicon.png new file mode 100644 index 0000000..4cfd5fa Binary files /dev/null and b/img/favicon.png differ diff --git a/img/index.php b/img/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/img/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/img/logo-kemangi41.png b/img/logo-kemangi41.png new file mode 100644 index 0000000..c8931f3 Binary files /dev/null and b/img/logo-kemangi41.png differ diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000..fe8cf8d Binary files /dev/null and b/img/logo.png differ diff --git a/include/about.php b/include/about.php new file mode 100644 index 0000000..896cbaf --- /dev/null +++ b/include/about.php @@ -0,0 +1,94 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +} +?> + +
+
+
+
+

About

+
+
+

MIKHMON V

+

+ Aplikasi ini dipersembahkan untuk pengusaha hotspot di manapun Anda berada. + Semoga makin sukses. +

+

+

+

+

+ Terima kasih untuk semua yang telah mendukung pengembangan MIKHMON. +

+
+ Copyright © 2018 Laksamadi Guko +
+
+
+
+
+
+
+

Changelog

+
+
+
+ +
+
+
+
+
diff --git a/include/config.php b/include/config.php new file mode 100644 index 0000000..deb5c83 --- /dev/null +++ b/include/config.php @@ -0,0 +1,8 @@ +'mikhmon<||>bGRkaQ=='); + +$data['Msr'] = array ('1'=>'Msr!192.168.53.1','Msr@|@mi4','Msr#|#pWJm','Msr%Mesir-Hotspot','Msr^msr.net','Msr&Rp','Msr*10','Msr(1','Msr)','Msr=10','Msr@!@enable'); +$data['rm-jogja'] = array ('1'=>'rm-jogja!remote.vpnmurahjogja.my.id:33206','rm-jogja@|@mi4','rm-jogja#|#pWJm','rm-jogja%mesir hotspot','rm-jogja^msr.net','rm-jogja&Rp','rm-jogja*10','rm-jogja(1','rm-jogja)','rm-jogja=10','rm-jogja@!@enable'); +$data['MTS'] = array ('1'=>'MTS!192.168.35.1:13051','MTS@|@yzm','MTS#|#amFkbGdra2k=','MTS%hotspot_al-amin','MTS^mtsalamin.net','MTS&Rp','MTS*10','MTS(1','MTS)','MTS=10','MTS@!@enable'); +$data['mountain-g'] = array ('1'=>'mountain-g!remote10.vpnmurahjogja.my.id:31182','mountain-g@|@mtg','mountain-g#|#paCnpqWToZ+Z','mountain-g%server-hotspot','mountain-g^mtg.net','mountain-g&Rp','mountain-g*10','mountain-g(1','mountain-g)','mountain-g=10','mountain-g@!@disable'); diff --git a/include/headhtml.php b/include/headhtml.php new file mode 100644 index 0000000..dd12272 --- /dev/null +++ b/include/headhtml.php @@ -0,0 +1,50 @@ +. + */ +session_start(); + // hide all error +error_reporting(0); +?> + + + + MIKHMON <?= $hotspotname; ?> + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/include/index.php b/include/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/include/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/include/lang.php b/include/lang.php new file mode 100644 index 0000000..29c8fa0 --- /dev/null +++ b/include/lang.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/include/login.php b/include/login.php new file mode 100644 index 0000000..cfe56d2 --- /dev/null +++ b/include/login.php @@ -0,0 +1,66 @@ +. + */ +session_start(); + + +?> + + + + + diff --git a/include/menu.php b/include/menu.php new file mode 100644 index 0000000..8e4ea5f --- /dev/null +++ b/include/menu.php @@ -0,0 +1,389 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + include ('./include/version.php'); + + $btnmenuactive = "font-weight: bold;background-color: #f9f9f9; color: #000000"; + if ($hotspot == "dashboard" || substr(end(explode("/", $url)), 0, 8) == "?session") { + $shome = "active"; + $mpage = $_dashboard; + } elseif ($hotspot == "quick-print" || $hotspot == "list-quick-print") { + $squick = "active"; + $mpage = $_quick_print; + } elseif ($hotspot == "users" || $userbyprofile != "" || $hotspot == "export-users" || $removehotspotuserbycomment != "" || $removehotspotuser != "" || $removehotspotusers != "" || $disablehotspotuser || $enablehotspotuser != "") { + $susersl = "active"; + $susers = "active"; + $mpage = $_users; + $umenu = "menu-open"; + } elseif ($hotspotuser == "add") { + $sadduser = "active"; + $mpage = $_users; + $susers = "active"; + $umenu = "menu-open"; + } elseif ($hotspotuser == "generate") { + $sgenuser = "active"; + $mpage = $_users; + $susers = "active"; + $umenu = "menu-open"; + } elseif ($userbyname != "" || $resethotspotuser != "") { + $susers = "active"; + $mpage = $_users; + $umenu = "menu-open"; + } elseif ($hotspot == "user-profiles") { + $suserprofiles = "active"; + $suserprof = "active"; + $mpage = $_user_profile; + $upmenu = "menu-open"; + } elseif ($hotspot == "active" || $removeuseractive != "") { + $sactive = "active"; + $mpage = $_hotspot_active; + $hamenu = "menu-open"; + } elseif ($hotspot == "hosts" || $hotspot == "hostp" || $hotspot == "hosta" || $removehost != "") { + $shosts = "active"; + $mpage = $_hosts; + $hmenu = "menu-open"; + } elseif ($hotspot == "dhcp-leases") { + $slease = "active"; + $mpage = $_dhcp_leases; + } elseif ($minterface == "traffic-monitor") { + $strafficmonitor = "active"; + $mpage = $_traffic_monitor; + } elseif ($hotspot == "ipbinding" || $hotspot == "binding" || $removeipbinding != "" || $enableipbinding != "" || $disableipbinding != "") { + $sipbind = "active"; + $mpage = $_ip_bindings; + $ibmenu = "menu-open"; + } elseif ($hotspot == "template-editor") { + $ssett = "active"; + $teditor = "active"; + $mpage = $_template_editor; + $settmenu = "menu-open"; + } elseif ($hotspot == "uplogo") { + $ssett = "active"; + $uplogo = "active"; + $mpage = $_upload_logo; + $settmenu = "menu-open"; + } elseif ($hotspot == "cookies" || $removecookie != "") { + $scookies = "active"; + $mpage = $_hotspot_cookies; + $cmenu = "menu-open"; + } elseif ($hotspot == "log") { + $log = "active"; + $slog = "active"; + $mpage = $_hotspot_log; + $lmenu = "menu-open"; + } elseif ($report == "userlog") { + $log = "active"; + $sulog = "active"; + $mpage = $_user_log; + $lmenu = "menu-open"; + } elseif ($ppp == "secrets" || $ppp == "addsecret" || $enablesecr != "" || $disablesecr != "" || $removesecr != "" || $secretbyname != "") { + $mppp = "active"; + $ssecrets = "active"; + $mpage = $_ppp_secrets; + $pppmenu = "menu-open"; + } elseif ($ppp == "profiles" || $removepprofile != "" || $ppp == "add-profile" || $ppp == "edit-profile" ) { + $mppp = "active"; + $spprofile = "active"; + $mpage = $_ppp_profiles; + $pppmenu = "menu-open"; + } elseif ($ppp == "active" || $removepactive != "") { + $mppp = "active"; + $spactive = "active"; + $mpage = $_ppp_active; + $pppmenu = "menu-open"; + } elseif ($sys == "scheduler" || $enablesch != "" || $disablesch != "" || $removesch != "") { + $sysmenu = "active"; + $ssch = "active"; + $mpage = $_system_scheduler; + $schmenu = "menu-open"; + } elseif ($report == "selling" || $report == "resume-report") { + $sselling = "active"; + $mpage = $_report; + } elseif ($userprofile == "add") { + $suserprof = "active"; + $sadduserprof = "active"; + $mpage = $_user_profile; + $upmenu = "menu-open"; + } elseif ($userprofilebyname != "") { + $suserprof = "active"; + $mpage = $_user_profile; + $upmenu = "menu-open"; + } elseif ($hotspot == "users-by-profile") { + $susersbp = "active"; + $mpage = $_vouchers; + } elseif ($userbyname != "") { + $mpage = $_users; + $susers = "active"; + } elseif ($hotspot == "about") { + $mpage = $_about; + $sabout = "active"; + } elseif ($id == "sessions" || $id == "remove" || $router == "new") { + $ssesslist = "active"; + $mpage = $_admin_settings; + } elseif ($id == "settings" && $session == "new") { + $snsettings = "active"; + $mpage = $_add_router; + } elseif ($id == "settings" || $id == "connect") { + $ssettings = "active"; + $mpage = $_session_settings; + } elseif ($id == "about") { + $sabout = "active"; + $mpage = $_about; + } elseif ($id == "uplogo") { + $suplogo = "active"; + $mpage = $_upload_logo; + } elseif ($id == "editor") { + $seditor = "active"; + $mpage = $_template_editor; + } +} + +if($idleto != "disable"){ + $didleto = 'display:block;'; +}else{ + $didleto = 'display:none;'; +} +?> + + + + + + + +
+ + + + + + + + + + + + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + &session=" class="menu "> + + + + + + +
+ +
+
+ + +
+
+'; +}else{ + echo ' +
+
+ + + + + + + $("#r_3").load("./dashboard/aload.php?session=' . $session . '&load=logs #r_3"); + var interval1 = "' . ($areload * 1000) . '"; + var dashboard = setInterval(function() { + + $("#r_1").load("./dashboard/aload.php?session=' . $session . '&load=sysresource #r_1"); + $("#r_2").load("./dashboard/aload.php?session=' . $session . '&load=hotspot #r_2"); + $("#r_3").load("./dashboard/aload.php?session=' . $session . '&load=logs #r_3"); + + }, interval1); + +'; +if ($livereport == "enable" || $livereport == "") { + if($_SESSION[$session.'sdate'] != $_SESSION[$session.'idhr']){ + $_SESSION[$session.'totalHr'] = "0"; + echo '$("#r_4").load("./report/livereport.php?session=' . $session . ' #r_4");'; + }else if ($_SESSION[$session.'sdate'] == $_SESSION[$session.'idhr']){ + }else{ + echo '$("#r_4").load("./report/livereport.php?session=' . $session . ' #r_4");'; + } + echo ' + var interval2 = "65432"; + var livereport = setInterval(function() { + $("#r_4").load("./report/livereport.php?session=' . $session . ' #r_4"); + }, interval2); + ';} + echo ' + function cancelPage(){ + window.stop(); + clearInterval(dashboard);'; + if ($livereport == "enable" || $livereport == "") { + echo ' + clearInterval(livereport);'; + } + echo ' + } +'; + +} elseif ($hotspot == "active" && $serveractive != "") { + echo ' +'; +} elseif ($hotspot == "active" && $serveractive == "") { + echo ' +'; +} elseif ($userprofile == "add" || substr($userprofile, 0, 1) == "*" || $userprofile != "") { + echo ""; + +} elseif (in_array($hotspot, $pagehotspot) || in_array($ppp, $pageppp) || in_array($report, $pagereport) || $sys == "scheduler") { +echo ' + +'; +} +} +?> + + + diff --git a/js/editor.min.js b/js/editor.min.js new file mode 100644 index 0000000..a9269a4 --- /dev/null +++ b/js/editor.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";var e=navigator.userAgent,t=navigator.platform,m=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),n=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),i=/Edge\/(\d+)/.exec(e),x=r||n||i,k=x&&(r?document.documentMode||6:+(i||n)[1]),b=!i&&/WebKit\//.test(e),o=b&&/Qt\/\d+\.\d+/.test(e),a=!i&&/Chrome\//.test(e),g=/Opera\//.test(e),s=/Apple Computer/.test(navigator.vendor),l=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),c=/PhantomJS/.test(e),u=!i&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),d=/Android/.test(e),f=u||d||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),w=u||/Mac/.test(t),h=/\bCrOS\b/.test(e),p=/win/i.test(t),v=g&&e.match(/Version\/(\d*\.\d*)/);v&&(v=Number(v[1])),v&&15<=v&&(b=!(g=!1));var y=w&&(o||g&&(null==v||v<12.11)),_=m||x&&9<=k;function C(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var S,T=function(e,t){var r=e.className,n=C(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function L(e){for(var t=e.childNodes.length;0=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t=e.first&&to?ge(o,se(e,o).text.length):(n=se(e,(r=t).line).text.length,null==(i=r.ch)||n=t:o.to>t);(n||(n=[])).push(new Le(a,o.from,l?null:o.to))}}return n}(r,i,a),s=function(e,t,r){var n;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.fromt)&&(!r||Pe(r,o.marker)<0)&&(r=o.marker)}return r}function Re(e,t,r,n,i){var o=se(e,t),a=Te&&o.markedSpans;if(a)for(var l=0;le.lastLine())return t;var r,n=se(e,t);if(!Ke(e,n))return t;for(;r=We(n);)n=r.find(1,!0).line;return fe(n)+1}function Ke(e,t){var r=Te&&t.markedSpans;if(r)for(var n=void 0,i=0;ir.maxLineLength&&(r.maxLineLength=t,r.maxLine=e)})}var Ye=null;function Ze(e,t,r){var n;Ye=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:Ye=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ye=i)}return null!=n?n:Ye}var Qe=function(){var E="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",q="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";var W=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,H=/[stwN]/,R=/[LRr]/,B=/[Lb1n]/,j=/[1n]/;function U(e,t,r){this.level=e,this.from=t,this.to=r}return function(e,t){var r="ltr"==t?"L":"R";if(0==e.length||"ltr"==t&&!W.test(e))return!1;for(var n,i=e.length,o=[],a=0;a=this.string.length},Ft.prototype.sol=function(){return this.pos==this.lineStart},Ft.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ft.prototype.next=function(){if(this.post},Ft.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Ft.prototype.skipToEnd=function(){this.pos=this.string.length},Ft.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(-1e.options.maxHighlightLength&&Ot(e.doc.mode,n.state),o=Et(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Wt(r,n,e){var t=r.doc,i=r.display;if(!t.mode.startState)return new Pt(t,!0,n);var o=function(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),l=t;at.first&&se(t,o-1).stateAfter,l=a?Pt.fromSaved(t,a,o):new Pt(t,zt(t.mode),o);return t.iter(o,n,function(e){Ht(r,e.text,l);var t=l.line;e.stateAfter=t==n-1||t%5==0||t>=i.viewFrom&&tt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}Pt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Pt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Pt.prototype.nextLine=function(){this.line++,0e.options.maxHighlightLength?(l=!1,a&&Ht(e,t,n,d.pos),d.pos=t.length,s=null):s=Kt(Bt(r,d,n.state,f),o),f){var h=f[0].name;h&&(s="m-"+(s?h+" "+s:h))}if(!l||u!=s){for(;cl&&c.from<=l);u++);if(c.to>=s)return d(e,t,r,n,i,o,a);d(e,t.slice(0,c.to-l),r,n,null,o,a),n=null,t=t.slice(c.to-l),l=c.to}}}function tr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function rr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var a,l,s,c,u,d,f,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){s=c=u=l="",d=f=null,v=1/0;for(var y=[],b=void 0,w=0;wp||k.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&v>x.to&&(v=x.to,c=""),k.className&&(s+=" "+k.className),k.css&&(l=(l?l+";":"")+k.css),k.startStyle&&x.from==p&&(u+=" "+k.startStyle),k.endStyle&&x.to==v&&(b||(b=[])).push(k.endStyle,x.to),k.title&&((f||(f={})).title=k.title),k.attributes)for(var _ in k.attributes)(f||(f={}))[_]=k.attributes[_];k.collapsed&&(!d||Pe(d.marker,k)<0)&&(d=x)}else x.from>p&&v>x.from&&(v=x.from)}if(b)for(var C=0;Cr)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Mr(e,t,r,n){return Or(e,Ar(e,t),r,n)}function Nr(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&tt)&&(i=(o=s-l)-1,s<=t&&(a="right")),null!=i){if(n=e[c+2],l==s&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==s-l)for(;c=o.text.length?(t=o.text.length,r="before"):t<=0&&(t=0,r="after"),!c)return s("before"==r?t-1:t,"before"==r);function u(e,t,r){return s(r?e-1:e,1==c[t].level!=r)}var d=Ze(c,t,r),f=Ye,h=u(t,d,"before"==r);return null!=f&&(h.other=u(t,f,"before"!=r)),h}function Vr(e,t){var r=0;t=_e(e.doc,t),e.options.lineWrapping||(r=en(e.display)*t.ch);var n=se(e.doc,t.line),i=$e(n)+xr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function $r(e,t,r,n,i){var o=ge(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Gr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return $r(n.first,0,null,!0,-1);var i=he(n,r),o=n.first+n.size-1;if(on},o,i)}}function Yr(e,t,r,n){return r||(r=Ar(e,t)),Xr(e,t,r,Br(e,t,Or(e,r,n),"line").top)}function Zr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Qr(r,e,t,n,i){i-=$e(e);var o=Ar(r,e),a=Rr(e),l=0,s=e.text.length,c=!0,u=Je(e,r.doc.direction);if(u){var d=(r.options.lineWrapping?function(e,t,r,n,i,o,a){var l=Xr(e,t,n,a),s=l.begin,c=l.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,f=0;f=c||h.to<=s)){var p=1!=h.level,m=Or(e,n,p?Math.min(c,h.to)-1:Math.max(s,h.from)).right,g=mc&&(u={from:u.from,to:c,level:u.level});return u}:function(n,i,o,a,l,s,c){var e=ae(function(e){var t=l[e],r=1!=t.level;return Zr(Kr(n,ge(o,r?t.to:t.from,r?"before":"after"),"line",i,a),s,c,!0)},0,l.length-1),t=l[e];if(0c&&(t=l[e-1])}return t})(r,e,t,o,u,n,i);l=(c=1!=d.level)?d.from:d.to-1,s=c?d.to:d.from-1}var f,h,p=null,m=null,g=ae(function(e){var t=Or(r,o,e);return t.top+=a,t.bottom+=a,!!Zr(t,n,i,!1)&&(t.top<=i&&t.left<=n&&(p=e,m=t),!0)},l,s),v=!1;if(m){var y=n-m.left=w.bottom}return $r(t,g=oe(e.text,g,1),h,v,n-f)}function Jr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Dr){Dr=A("pre");for(var t=0;t<49;++t)Dr.appendChild(document.createTextNode("x")),Dr.appendChild(A("br"));Dr.appendChild(document.createTextNode("x"))}M(e.measure,Dr);var r=Dr.offsetHeight/50;return 3=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n=e.display.viewTo||l.to().linet||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(S,y||0,null==b?k:b,function(e,t,r,n){var i="ltr"==r,o=_(e,i?"left":"right"),a=_(t-1,i?"right":"left"),l=null==y&&0==e,s=null==b&&t==k,c=0==n,u=!S||n==S.length-1;if(a.top-o.top<=3){var d=(M?s:l)&&u,f=(M?l:s)&&c?T:(i?o:a).left,h=d?L:(i?a:o).right;N(f,o.top,h-f,o.bottom)}else{var p,m,g,v;i?(p=M&&l&&c?T:o.left,m=M?L:C(e,r,"before"),g=M?T:C(t,r,"after"),v=M&&s&&u?L:a.right):(p=M?C(e,r,"before"):T,m=!M&&l&&c?L:o.right,g=!M&&s&&u?T:a.left,v=M?C(t,r,"after"):L),N(p,o.top,m-p,o.bottom),o.bottome.display.sizerWidth){var f=Math.ceil(l/en(e.display));f>e.display.maxLineLength&&(e.display.maxLineLength=f,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function bn(e){if(e.widgets)for(var t=0;t=a&&(o=he(t,$e(se(t,s))-e.wrapper.clientHeight),a=s)}return{from:o,to:Math.max(a,o+1)}}function xn(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=rn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;ao&&(t.bottom=t.top+o);var l=e.doc.height+kr(r),s=t.topl-n;if(t.topi+o){var u=Math.min(t.top,(c?l:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=Sr(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.leftf+d-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function Cn(e,t){null!=t&&(Ln(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Sn(e){Ln(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Tn(e,t,r){null==t&&null==r||Ln(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Ln(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Mn(e,Vr(e,t.from),Vr(e,t.to),t.margin))}function Mn(e,t,r,n){var i=_n(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Tn(e,i.scrollLeft,i.scrollTop)}function Nn(e,t){Math.abs(e.doc.scrollTop-t)<2||(m||ai(e,{top:t}),An(e,t,!0),m&&ai(e),ti(e,100))}function An(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function On(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,xn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Dn(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+kr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Cr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var zn=function(e,t,r){this.cm=r;var n=this.vert=A("div",[A("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=A("div",[A("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),tt(n,"scroll",function(){n.clientHeight&&t(n.scrollTop,"vertical")}),tt(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,x&&k<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};zn.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&0=i.viewTo)||i.maxLineChanged&&n.options.lineWrapping,e.update=e.mustUpdate&&new ni(n,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function jn(e){var t=e.cm,r=t.display;e.updatedDisplay&&yn(t),e.barMeasure=Dn(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Mr(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Cr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Sr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Un(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!c){var o=A("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-xr(e.display))+"px;\n height: "+(t.bottom-t.top+Cr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?ge(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?ge(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,l=Kr(e,t),s=r&&r!=t?Kr(e,r):l,c=_n(e,i={left:Math.min(l.left,s.left),top:Math.min(l.top,s.top)-n,right:Math.max(l.left,s.left),bottom:Math.max(l.bottom,s.bottom)+n}),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(Nn(e,c.scrollTop),1t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Te&&je(e.doc,t)i.viewFrom?Qn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Qn(e);else if(t<=i.viewFrom){var o=Jn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Qn(e)}else if(r>=i.viewTo){var a=Jn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Qn(e)}else{var l=Jn(e,t,t,-1),s=Jn(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(ir(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):Qn(e)}var c=i.externalMeasured;c&&(r=i.lineN&&t=n.viewTo)){var o=n.view[ln(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==H(a,r)&&a.push(r)}}}function Qn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Jn(e,t,r,n){var i,o=ln(e,t),a=e.display.view;if(!Te||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var l=e.display.viewFrom,s=0;s=s.display.viewTo)){var u=+new Date+s.options.workTime,d=Wt(s,c.highlightFrontier),f=[];c.iter(d.line,Math.min(c.first+c.size,s.display.viewTo+500),function(e){if(d.line>=s.display.viewFrom){var t=e.styles,r=e.text.length>s.options.maxHighlightLength?Ot(c.mode,d.state):null,n=Et(s,e,d,!0);r&&(d.state=r),e.styles=n.styles;var i=e.styleClasses,o=n.classes;o?e.styleClasses=o:i&&(e.styleClasses=null);for(var a=!t||t.length!=e.styles.length||i!=o&&(!i||!o||i.bgClass!=o.bgClass||i.textClass!=o.textClass),l=0;!a&&lu)return ti(s,s.options.workDelay),!0}),c.highlightFrontier=d.line,c.modeFrontier=Math.max(c.modeFrontier,d.line),f.length&&Vn(s,function(){for(var e=0;e=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==ei(e))return!1;kn(e)&&(Qn(e),t.dims=tn(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroma&&r.viewTo-a<20&&(a=Math.min(i,r.viewTo)),Te&&(o=je(e.doc,o),a=Ue(e.doc,a));var l,s,c,u,d=o!=r.viewFrom||a!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;s=o,c=a,0==(u=(l=e).display).view.length||s>=u.viewTo||c<=u.viewFrom?(u.view=ir(l,s,c),u.viewFrom=s):(u.viewFrom>s?u.view=ir(l,s,u.viewFrom).concat(u.view):u.viewFromc&&(u.view=u.view.slice(0,ln(l,c)))),u.viewTo=c,r.viewOffset=$e(se(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var f=ei(e);if(!d&&0==f&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var h=function(e){if(e.hasFocus())return null;var t=D();if(!t||!O(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&O(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return 4=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&ii(e,t);n=!1){yn(e);var i=Dn(e);sn(e),In(e,i),si(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ai(e,t){var r=new ni(e,t);if(ii(e,r)){yn(e),oi(e,r);var n=Dn(e);sn(e),In(e,n),si(e,n),r.finish()}}function li(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function si(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Cr(e)+"px"}function ci(e){var t=e.display.gutters,r=e.options.gutters;L(t);for(var n=0;na.clientWidth,s=a.scrollHeight>a.clientHeight;if(n&&l||i&&s){if(i&&w&&b)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var d=0;ds-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=(l=i).lastOp==n?(zi(l.done),X(l.done)):l.done.length&&!X(l.done).ranges?X(l.done):1i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||it(e,"historyAdded")}function Ii(e,t,r,n){var i,o,a,l,s,c=e.history,u=n&&n.origin;r==c.lastSelOp||u&&c.lastSelOrigin==u&&(c.lastModTime==c.lastSelTime&&c.lastOrigin==u||(i=e,o=u,a=X(c.done),l=t,"*"==(s=o.charAt(0))||"+"==s&&a.ranges.length==l.ranges.length&&a.somethingSelected()==l.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)))?c.done[c.done.length-1]=t:Pi(t,c.done),c.lastSelTime=+new Date,c.lastSelOrigin=u,c.lastSelOp=r,n&&!1!==n.clearRedo&&zi(c.undone)}function Pi(e,t){var r=X(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Ei(t,r,e,n){var i=r["spans_"+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,n),function(e){e.markedSpans&&((i||(i=r["spans_"+t.id]={}))[o]=e.markedSpans),++o})}function qi(e){if(!e)return null;for(var t,r=0;r=t.ch:l.to>t.ch))){if(i&&(it(s,"beforeCursorEnter"),s.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!s.atomic)continue;if(r){var c=s.find(n<0?1:-1),u=void 0;if((n<0?s.inclusiveRight:s.inclusiveLeft)&&(c=eo(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=ve(c,r))&&(n<0?u<0:0e.first?_e(e,ge(t.line-1)):null:0e.lastLine())){if(t.from.lineo&&(t={from:t.from,to:ge(o,se(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ce(e,t.from,t.to),r||(r=ki(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,l=!1,s=o.line;e.options.lineWrapping||(s=fe(Be(se(n,o.line))),n.iter(s,a.line+1,function(e){if(e==i.maxLine)return l=!0}));-1i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,l=!1)}),l&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiert.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=d,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&Yn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Yi(t.doc)),t&&lr(t,"markerCleared",t,this,i,o),r&&Rn(t),this.parent&&this.parent.clear()}},bo.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(i,o,a){i=_e(this,i),o=_e(this,o);var l=[],s=i.line;return this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t)for(var r=0;r=n.to||null==n.from&&s!=i.line||null!=n.from&&s==o.line&&n.from>=o.ch||a&&!a(n.marker)||l.push(n.marker.parent||n.marker)}++s}),l},getAllMarks:function(){var n=[];return this.iter(function(e){var t=e.markedSpans;if(t)for(var r=0;rt&&(t=e.from),null!=e.to&&e.toe.text.length?null:n}function $o(e,t,r){var n=Vo(e,t.ch,r);return null==n?null:new ge(t.line,n,r<0?"after":"before")}function Go(e,t,r,n,i){if(e){var o=Je(r,t.doc.direction);if(o){var a,l=i<0?X(o):o[0],s=i<0==(1==l.level)?"after":"before";if(0a.doc.first){var o=se(a.doc,n.line-1).text;o&&(n=new ge(n.line,1),a.replaceRange(i.charAt(0)+a.doc.lineSeparator()+o.charAt(o.length-1),ge(n.line-1,o.length-1),n,"+transpose"))}t.push(new vi(n,n))}a.setSelections(t)})},newlineAndIndent:function(n){return Vn(n,function(){for(var e=n.listSelections(),t=e.length-1;0<=t;t--)n.replaceRange(n.doc.lineSeparator(),e[t].anchor,e[t].head,"+input");e=n.listSelections();for(var r=0;ru&&t.push(new vi(ge(l,u),ge(l,V(c,a,r))))}t.length||t.push(new vi(v,v)),$i(b,yi(g,k.ranges.slice(0,x).concat(t),x),{origin:"*mouse",scroll:!1}),g.scrollIntoView(e)}else{var d,f=w,h=da(g,e,y.unit),p=f.anchor;0=i.to||n.lines.bottom?20:0;o&&setTimeout($n(g,function(){c==r&&(a.scroller.scrollTop+=o,e(t))}),50)}}(e):n(e)}),o=$n(g,n);g.state.selectingText=o,tt(a.wrapper.ownerDocument,"mousemove",i),tt(a.wrapper.ownerDocument,"mouseup",o)}(e,n,t,o)}(t,a,s,e):ht(e)==r.scroller&&ct(e):2==l?(a&&Bi(t.doc,a),setTimeout(function(){return r.input.focus()},20)):3==l&&(_?t.display.input.onContextMenu(e):mn(t)))}}function da(e,t,r){if("char"==r)return new vi(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new vi(ge(t.line,0),_e(e.doc,ge(t.line+1,0)));var n=r(e,t);return new vi(n.from,n.to)}function fa(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&ct(t);var a=e.display,l=a.lineDiv.getBoundingClientRect();if(o>l.bottom||!lt(e,r))return dt(t);o-=l.top-a.viewOffset;for(var s=0;s=i)return it(e,r,e,he(e.doc,o),e.options.gutters[s],t),dt(t)}}function ha(e,t){return fa(e,t,"gutterClick",!0)}function pa(e,t){wr(e.display,t)||function(e,t){if(!lt(e,"gutterContextMenu"))return!1;return fa(e,t,"gutterContextMenu",!1)}(e,t)||ot(e,t,"contextmenu")||_||e.display.input.onContextMenu(t)}function ma(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),qr(e)}ca.prototype.compare=function(e,t,r){return this.time+400>e&&0==ve(t,this.pos)&&r==this.button};var ga={toString:function(){return"CodeMirror.Init"}},va={},ya={};function ba(e){ci(e),Yn(e),xn(e)}function wa(e,t,r){if(!t!=!(r&&r!=ga)){var n=e.display.dragFunctions,i=t?tt:nt;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function xa(e){e.options.lineWrapping?(z(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),Xe(e)),on(e),Yn(e),qr(e),setTimeout(function(){return In(e)},100)}function ka(e,t){var r=this;if(!(this instanceof ka))return new ka(e,t);this.options=t=t?E(t):{},E(va,t,!1),ui(t);var n=t.value;"string"==typeof n?n=new So(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new ka.inputStyles[t.inputStyle](this),o=this.display=new le(e,n,i);for(var a in ci(o.wrapper.CodeMirror=this),ma(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),qn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new W,keySeq:null,specialChars:null},t.autofocus&&!f&&o.input.focus(),x&&k<11&&setTimeout(function(){return r.display.input.reset(!0)},20),function(i){var o=i.display;tt(o.scroller,"mousedown",$n(i,ua)),tt(o.scroller,"dblclick",x&&k<11?$n(i,function(e){if(!ot(i,e)){var t=an(i,e);if(t&&!ha(i,e)&&!wr(i.display,e)){ct(e);var r=i.findWordAt(t);Bi(i.doc,r.anchor,r.head)}}}):function(e){return ot(i,e)||ct(e)});tt(o.scroller,"contextmenu",function(e){return pa(i,e)});var r,n={end:0};function a(){o.activeTouch&&(r=setTimeout(function(){return o.activeTouch=null},1e3),(n=o.activeTouch).end=+new Date)}function l(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return 400o.first?q(se(o,t-1).text,null,a):0:"add"==r?c=s+e.options.indentUnit:"subtract"==r?c=s-e.options.indentUnit:"number"==typeof r&&(c=s+r),c=Math.max(0,c);var d="",f=0;if(e.options.indentWithTabs)for(var h=Math.floor(c/a);h;--h)f+=a,d+="\t";if(f=r.text.length?(l.ch=r.text.length,l.sticky="before"):l.ch<=0&&(l.ch=0,l.sticky="after");var n=Ze(s,l.ch,l.sticky),i=s[n];if("ltr"==t.doc.direction&&i.level%2==0&&(0l.ch:i.from=i.from&&f>=u.begin)){var h=d?"before":"after";return new ge(l.line,f,h)}}var p=function(e,t,r){for(var n=function(e,t){return t?new ge(l.line,c(e,1),"before"):new ge(l.line,e,"after")};0<=e&&e=n.first+n.size||(i=new ge(r,i.ch,i.sticky),!(l=se(n,r))))return!1;i=Go(a,n.cm,l,i.line,o)}else i=t;return!0}if("char"==e)s();else if("column"==e)s(!0);else if("word"==e||"group"==e)for(var c=null,u="group"==e,d=n.cm&&n.cm.getHelper(i,"wordChars"),f=!0;!(o<0)||s(!f);f=!1){var h=l.text.charAt(i.ch)||"\n",p=te(h,d)?"w":u&&"\n"==h?"n":!u||/\s/.test(h)?null:"p";if(!u||f||p||(p="s"),c&&c!=p){o<0&&(o=1,s(),i.sticky="after");break}if(p&&(c=p),0=a.height){o.hitSide=!0;break}i+=5*r}return o}var Ia=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new W,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Pa(e,t){var r=Nr(e,t.line);if(!r||r.hidden)return null;var n=se(e.doc,t.line),i=Lr(r,n,t.line),o=Je(n,e.doc.direction),a="left";o&&(a=Ze(o,t.ch)%2?"right":"left");var l=Fr(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function Ea(e,t){return t&&(e.bad=!0),e}function qa(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Ea(e.clipPos(ge(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||i.line=t.display.viewFrom&&Pa(t,n)||{node:l[0].measure.map[2],offset:0},c=i.linen.firstLine()&&(a=ge(a.line-1,se(n.doc,a.line-1).length)),l.ch==se(n.doc,l.line).text.length&&l.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=ln(n,a.line))?(t=fe(i.view[0].line),r=i.view[0].node):(t=fe(i.view[e].line),r=i.view[e-1].node.nextSibling);var s,c,u=ln(n,l.line);if(u==i.view.length-1?(s=i.viewTo-1,c=i.lineDiv.lastChild):(s=fe(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!r)return!1;for(var d=n.doc.splitLines(function(s,e,t,c,u){var r="",d=!1,f=s.doc.lineSeparator(),h=!1;function p(){d&&(r+=f,h&&(r+=f),d=h=!1)}function m(e){e&&(p(),r+=e)}function g(e){if(1==e.nodeType){var t=e.getAttribute("cm-text");if(t)return void m(t);var r,n=e.getAttribute("cm-marker");if(n){var i=s.findMarks(ge(c,0),ge(u+1,0),(l=+n,function(e){return e.id==l}));return void(i.length&&(r=i[0].find(0))&&m(ce(s.doc,r.from,r.to).join(f)))}if("false"==e.getAttribute("contenteditable"))return;var o=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;o&&p();for(var a=0;aa.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)h--,p++;d[d.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(h).replace(/\u200b+$/,"");var x=ge(t,h),k=ge(s,f.length?X(f).length-p:0);return 1n&&(Ca(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Sn(t));else{var a=o.from(),l=o.to(),s=Math.max(n,a.line);n=Math.min(t.lastLine(),l.line-(l.ch?0:1))+1;for(var c=s;c>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]d)&&e.top>t.offsetHeight?c=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=d&&(c=e.bottom),u+t.offsetWidth>f&&(u=f-t.offsetWidth)}t.style.top=c+"px",t.style.left=t.style.right="","right"==i?(u=s.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?u=0:"middle"==i&&(u=(s.sizer.clientWidth-t.offsetWidth)/2),t.style.left=u+"px"),r&&(o=this,a={left:u,top:c,right:u+t.offsetWidth,bottom:c+t.offsetHeight},null!=(l=_n(o,a)).scrollTop&&Nn(o,l.scrollTop),null!=l.scrollLeft&&On(o,l.scrollLeft))},triggerOnKeyDown:Gn(ia),triggerOnKeyPress:Gn(aa),triggerOnKeyUp:oa,triggerOnMouseDown:Gn(ua),execCommand:function(e){if(Xo.hasOwnProperty(e))return Xo[e].call(null,this)},triggerElectric:Gn(function(e){Na(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=_e(this.doc,e),a=0;a=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function a(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function d(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(o(e))continue;return}if(i(e,t+1)){var r=e.text.lastIndexOf("/",t),n=-1",e.ch-1):-1;if(-1==t){if(a(e))continue;return}if(i(e,t+1)){var r=e.text.lastIndexOf("/",t),n=-1")||-1!=n.text.indexOf("<")){var i=d(n),o=i&&s(n.line,n.ch),a=i&&f(n);if(i&&a&&!(0|[*\]])\s*$|\*$/.test(e.string.slice(0,r))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function I(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function e(e){for(var t={},r=e.split(" "),n=0;n!?|\/]/,S=l.isIdentifierChar||/[\w\$_\xa1-\uffff]/,T=l.isReservedIdentifier||!1;function L(e,t){var o,r=e.next();if(y[r]){var n=y[r](e,t);if(!1!==n)return n}if('"'==r||"'"==r)return t.tokenize=(o=r,function(e,t){for(var r,n=!1,i=!1;null!=(r=e.next());){if(r==o&&!n){i=!0;break}n=!n&&"\\"==r}return(i||!n&&!b)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(x.test(r))return a=r,null;if(k.test(r)){if(e.backUp(1),e.match(_))return"number";e.next()}if("/"==r){if(e.eat("*"))return(t.tokenize=M)(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(C.test(r)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(C););return"operator"}if(e.eatWhile(S),w)for(;e.match(w);)e.eatWhile(S);var i=e.current();return P(f,i)?(P(m,i)&&(a="newstatement"),P(g,i)&&(s=!0),"keyword"):P(h,i)?"type":P(p,i)||T&&T(i)?(P(m,i)&&(a="newstatement"),"builtin"):P(v,i)?"atom":"variable"}function M(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=null;break}n="*"==r}return"comment"}function N(e,t){l.typeFirstDefinitions&&e.eol()&&I(t.context)&&(t.typeAtEndOfLine=F(e,t,e.pos))}return{startState:function(e){return{tokenize:null,context:new O((e||0)-c,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var r=t.context;if(e.sol()&&(null==r.align&&(r.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return N(e,t),null;a=s=null;var n=(t.tokenize||L)(e,t);if("comment"==n||"meta"==n)return n;if(null==r.align&&(r.align=!0),";"==a||":"==a||","==a&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)z(t);else if("{"==a)D(t,e.column(),"}");else if("["==a)D(t,e.column(),"]");else if("("==a)D(t,e.column(),")");else if("}"==a){for(;"statement"==r.type;)r=z(t);for("}"==r.type&&(r=z(t));"statement"==r.type;)r=z(t)}else a==r.type?z(t):o&&(("}"==r.type||"top"==r.type)&&";"!=a||"statement"==r.type&&"newstatement"==a)&&D(t,e.column(),"statement",e.current());if("variable"==n&&("def"==t.prevToken||l.typeFirstDefinitions&&F(e,t,e.start)&&I(t.context)&&e.match(/^\s*\(/,!1))&&(n="def"),y.token){var i=y.token(e,t,n);void 0!==i&&(n=i)}return"def"==n&&!1===l.styleDefs&&(n="variable"),t.startOfLine=!1,t.prevToken=s?"def":n||a,N(e,t),n},indent:function(e,t){if(e.tokenize!=L&&null!=e.tokenize||e.typeAtEndOfLine)return A.Pass;var r=e.context,n=t&&t.charAt(0),i=n==r.type;if("statement"==r.type&&"}"==n&&(r=r.prev),l.dontIndentStatements)for(;"statement"==r.type&&l.dontIndentStatements.test(r.info);)r=r.prev;if(y.indent){var o=y.indent(e,r,t,c);if("number"==typeof o)return o}var a=r.prev&&"switch"==r.prev.info;if(l.allmanIndentation&&/[{(]/.test(n)){for(;"top"!=r.type&&"}"!=r.type;)r=r.prev;return r.indented}return"statement"==r.type?r.indented+("{"==n?0:u):!r.align||d&&")"==r.type?")"!=r.type||i?r.indented+(i?0:c)+(i||!a||/^(?:case|default)\b/.test(t)?0:c):r.indented+u:r.column+(i?0:1)},electricInput:t?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}});var t="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",r=e("int long char short double float unsigned signed void bool"),n=e("SEL instancetype id Class Protocol BOOL");function i(e){return P(r,e)||/.+_t/.test(e)}var o="case do else for if switch while struct enum union",a="struct enum union";function l(e,t){if(!t.startOfLine)return!1;for(var r,n=null;r=e.peek();){if("\\"==r&&e.match(/^.$/)){n=l;break}if("/"==r&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=n,"meta"}function s(e,t){return"type"==t.prevToken&&"type"}function c(e){return!(!e||e.length<2)&&("_"==e[0]&&("_"==e[1]||e[1]!==e[1].toLowerCase()))}function u(e){return e.eatWhile(/[\w\.']/),"number"}function d(e,t){if(e.backUp(1),e.match(/(R|u8R|uR|UR|LR)/)){var r=e.match(/"([^\s\\()]{0,16})\(/);return!!r&&(t.cpp11RawStringDelim=r[1],(t.tokenize=h)(e,t))}return e.match(/(u8|u|U|L)/)?!!e.match(/["']/,!1)&&"string":(e.next(),!1)}function f(e,t){for(var r;null!=(r=e.next());)if('"'==r&&!e.eat('"')){t.tokenize=null;break}return"string"}function h(e,t){var r=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+r+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function p(e,t){"string"==typeof e&&(e=[e]);var r=[];function n(e){if(e)for(var t in e)e.hasOwnProperty(t)&&r.push(t)}n(t.keywords),n(t.types),n(t.builtin),n(t.atoms),r.length&&(t.helperType=e[0],A.registerHelper("hintWords",e[0],r));for(var i=0;i!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=m,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,t){var r=t.context;return!("}"!=r.type||!r.align||!e.eat(">"))&&(t.context=new O(r.indented,r.column,r.type,r.info,null,r.prev),"operator")},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=function n(i){return function(e,t){for(var r;r=e.next();){if("*"==r&&e.eat("/")){if(1==i){t.tokenize=null;break}return t.tokenize=n(i-1),t.tokenize(e,t)}if("/"==r&&e.eat("*"))return t.tokenize=n(i+1),t.tokenize(e,t)}return"comment"}}(1),t.tokenize(e,t))}},modeProps:{closeBrackets:{pairs:'()[]{}""',triples:'"'}}}),p("text/x-kotlin",{name:"clike",keywords:e("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:e("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:e("catch class do else finally for if where try while enum"),defKeywords:e("class val var object interface fun"),atoms:e("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return"."==t.prevToken?"variable":"operator"},'"':function(e,t){var o;return t.tokenize=(o=e.match('""'),function(e,t){for(var r,n=!1,i=!1;!e.eol();){if(!o&&!n&&e.match('"')){i=!0;break}if(o&&e.match('"""')){i=!0;break}r=e.next(),!n&&"$"==r&&e.match("{")&&e.skipTo("}"),n=!n&&"\\"==r&&!o}return!i&&o||(t.tokenize=null),"string"}),t.tokenize(e,t)},indent:function(e,t,r,n){var i=r&&r.charAt(0);return"}"!=e.prevToken&&")"!=e.prevToken||""!=r?"operator"==e.prevToken&&"}"!=r||"variable"==e.prevToken&&"."==i||("}"==e.prevToken||")"==e.prevToken)&&"."==i?2*n+t.indented:t.align&&"}"==t.type?t.indented+(e.context.type==(r||"").charAt(0)?0:n):void 0:e.indented}},modeProps:{closeBrackets:{triples:'"'}}}),p(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:e("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:e("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:e("for while do if else struct"),builtin:e("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:e("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":l},modeProps:{fold:["brace","include"]}}),p("text/x-nesc",{name:"clike",keywords:e(t+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:i,blockKeywords:e(o),atoms:e("null true false"),hooks:{"#":l},modeProps:{fold:["brace","include"]}}),p("text/x-objectivec",{name:"clike",keywords:e(t+" bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available"),types:function(e){return i(e)||P(n,e)},builtin:e("FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINED NS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT"),blockKeywords:e(o+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:e(a+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:e("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:c,hooks:{"#":l,"*":s},modeProps:{fold:["brace","include"]}}),p("text/x-squirrel",{name:"clike",keywords:e("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:i,blockKeywords:e("case catch class else for foreach if switch try while"),defKeywords:e("function local class"),typeFirstDefinitions:!0,atoms:e("true false null"),hooks:{"#":l},modeProps:{fold:["brace","include"]}});var g=null;p("text/x-ceylon",{name:"clike",keywords:e("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:e("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:e("class dynamic function interface module object package value"),builtin:e("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:e("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=function o(a){return function(e,t){for(var r,n=!1,i=!1;!e.eol();){if(!n&&e.match('"')&&("single"==a||e.match('""'))){i=!0;break}if(!n&&e.match("``")){g=o(a),i=!0;break}r=e.next(),n="single"==a&&!n&&"\\"==r}return i&&(t.tokenize=null),"string"}}(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!g||!e.match("`"))&&(t.tokenize=g,g=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,r){if(("variable"==r||"type"==r)&&"."==t.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(A){"use strict";function e(e){for(var t={},r=0;r*\/]/.test(r)?w(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?w("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?w(null,r):("u"==r||"U"==r)&&e.match(/rl(-prefix)?\(/i)||("d"==r||"D"==r)&&e.match("omain(",!0,!0)||("r"==r||"R"==r)&&e.match("egexp(",!0,!0)?(e.backUp(1),t.tokenize=k,w("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),w("property","word")):w(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),w("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?w("variable-2","variable-definition"):w("variable-2","variable")):e.match(/^\w+-/)?w("meta","meta"):void 0})(e,t);return r&&"object"==typeof r&&(n=r[1],r=r[0]),i=r,"comment"!=n&&(t.state=N[t.state](n,e,t)),i},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),r.prev&&("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=Math.max(0,r.indent-o)):i=(r=r.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:y,fold:"brace"}});var t=["domain","regexp","url","url-prefix"],r=e(t),n=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],i=e(n),o=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],a=e(o),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],s=e(l),c=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],u=e(c),d=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],f=e(d),h=e(["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),p=e(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),m=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],g=e(m),v=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],y=e(v),b=t.concat(n).concat(o).concat(l).concat(c).concat(d).concat(m).concat(v);function w(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&"/"==r){t.tokenize=null;break}n="*"==r}return["comment","comment"]}A.registerHelper("hintWords","css",b),A.defineMIME("text/css",{documentTypes:r,mediaTypes:i,mediaFeatures:a,mediaValueKeywords:s,propertyKeywords:u,nonStandardPropertyKeywords:f,fontProperties:h,counterDescriptors:p,colorKeywords:g,valueKeywords:y,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=w)(e,t)}},name:"css"}),A.defineMIME("text/x-scss",{mediaTypes:i,mediaFeatures:a,mediaValueKeywords:s,propertyKeywords:u,nonStandardPropertyKeywords:f,colorKeywords:g,valueKeywords:y,fontProperties:h,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=w)(e,t):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),A.defineMIME("text/x-less",{mediaTypes:i,mediaFeatures:a,mediaValueKeywords:s,propertyKeywords:u,nonStandardPropertyKeywords:f,colorKeywords:g,valueKeywords:y,fontProperties:h,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=w)(e,t):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),A.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:i,mediaFeatures:a,propertyKeywords:u,nonStandardPropertyKeywords:f,fontProperties:h,counterDescriptors:p,colorKeywords:g,valueKeywords:y,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=w)(e,t)}},name:"css",helperType:"gss"})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(p){"use strict";var i={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};var o={};function m(e,t){var r,n=e.match(o[r=t]||(o[r]=new RegExp("\\s+"+r+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")));return n?/^\s*(.*?)\s*$/.exec(n[2])[1]:""}function g(e,t){return new RegExp((t?"^":"")+"","i")}function a(e,t){for(var r in e)for(var n=t[r]||(t[r]=[]),i=e[r],o=i.length-1;0<=o;o--)n.unshift(i[o])}p.defineMode("htmlmixed",function(u,e){var d=p.getMode(u,{name:"xml",htmlMode:!0,multilineTagIndentFactor:e.multilineTagIndentFactor,multilineTagIndentPastTag:e.multilineTagIndentPastTag}),f={},t=e&&e.tags,r=e&&e.scriptTypes;if(a(i,f),t&&a(t,f),r)for(var n=r.length-1;0<=n;n--)f.script.unshift(["type",r[n].matches,r[n].mode]);function h(e,t){var r,n=d.token(e,t.htmlState),i=/\btag\b/.test(n);if(i&&!/[<>\s\/]/.test(e.current())&&(r=t.htmlState.tagName&&t.htmlState.tagName.toLowerCase())&&f.hasOwnProperty(r))t.inTag=r+" ";else if(t.inTag&&i&&/>$/.test(e.current())){var o=/^([\S]+) (.*)/.exec(t.inTag);t.inTag=null;var a=">"==e.current()&&function(e,t){for(var r=0;r!?|~^@]/,m=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function g(e,t,r){return n=e,i=r,t}function v(e,t){var i,r=e.next();if('"'==r||"'"==r)return t.tokenize=(i=r,function(e,t){var r,n=!1;if(a&&"@"==e.peek()&&e.match(m))return t.tokenize=v,g("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=i||n);)n=!n&&"\\"==r;return n||(t.tokenize=v),g("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return g("number","number");if("."==r&&e.match(".."))return g("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return g(r);if("="==r&&e.eat(">"))return g("=>","operator");if("0"==r&&e.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i))return g("number","number");if(/\d/.test(r))return e.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/),g("number","number");if("/"==r)return e.eat("*")?(t.tokenize=y)(e,t):e.eat("/")?(e.skipToEnd(),g("comment","comment")):Ve(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),g("regexp","string-2")):(e.eat("="),g("operator","operator",e.current()));if("`"==r)return(t.tokenize=b)(e,t);if("#"==r)return e.skipToEnd(),g("error","error");if(p.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),g("operator","operator",e.current());if(u.test(r)){e.eatWhile(u);var n=e.current();if("."!=t.lastType){if(s.propertyIsEnumerable(n)){var o=s[n];return g(o.type,o.style,n)}if("async"==n&&e.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/,!1))return g("async","keyword",n)}return g("variable","variable",n)}}function y(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=v;break}n="*"==r}return g("comment","comment")}function b(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=v;break}n=!n&&"\\"==r}return g("quasi","string-2",e.current())}var w="([{}])";function o(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(c){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;0<=a;--a){var l=e.string.charAt(a),s=w.indexOf(l);if(0<=s&&s<3){if(!i){++a;break}if(0==--i){"("==l&&(o=!0);break}}else if(3<=s&&s<6)++i;else if(u.test(l))o=!0;else{if(/["'\/]/.test(l))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}var x={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0};function k(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function _(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}var C={state:null,column:null,marked:null,cc:null};function S(){for(var e=arguments.length-1;0<=e;e--)C.cc.push(arguments[e])}function T(){return S.apply(null,arguments),!0}function L(e,t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}function r(e){var t=C.state;if(C.marked="def",t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=function e(t,r){{if(r){if(r.block){var n=e(t,r.prev);return n?n==r.prev?r:new N(n,r.vars,!0):null}return L(t,r.vars)?r:new N(r.prev,new A(t,r.vars),!1)}return null}}(e,t.context);if(null!=r)return void(t.context=r)}else if(!L(e,t.localVars))return void(t.localVars=new A(e,t.localVars));d.globalVars&&!L(e,t.globalVars)&&(t.globalVars=new A(e,t.globalVars))}function M(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function N(e,t,r){this.prev=e,this.vars=t,this.block=r}function A(e,t){this.name=e,this.next=t}var t=new A("this",new A("arguments",null));function O(){C.state.context=new N(C.state.context,C.state.localVars,!1),C.state.localVars=t}function D(){C.state.context=new N(C.state.context,C.state.localVars,!0),C.state.localVars=null}function z(){C.state.localVars=C.state.context.vars,C.state.context=C.state.context.prev}function F(n,i){var e=function(){var e=C.state,t=e.indented;if("stat"==e.lexical.type)t=e.lexical.indented;else for(var r=e.lexical;r&&")"==r.type&&r.align;r=r.prev)t=r.indented;e.lexical=new k(t,C.stream.column(),n,null,e.lexical,i)};return e.lex=!0,e}function I(){var e=C.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function P(r){return function e(t){return t==r?T():";"==r||"}"==t||")"==t||"]"==t?S():T(e)}}function E(e,t){return"var"==e?T(F("vardef",t),ve,P(";"),I):"keyword a"==e?T(F("form"),R,E,I):"keyword b"==e?T(F("form"),E,I):"keyword d"==e?C.stream.match(/^\s*$/,!1)?T():T(F("stat"),j,P(";"),I):"debugger"==e?T(P(";")):"{"==e?T(F("}"),D,oe,I,z):";"==e?T():"if"==e?("else"==C.state.lexical.info&&C.state.cc[C.state.cc.length-1]==I&&C.state.cc.pop()(),T(F("form"),R,E,I,_e)):"function"==e?T(Ne):"for"==e?T(F("form"),Ce,E,I):"class"==e||c&&"interface"==t?(C.marked="keyword",T(F("form"),De,I)):"variable"==e?c&&"declare"==t?(C.marked="keyword",T(E)):c&&("module"==t||"enum"==t||"type"==t)&&C.stream.match(/^\s*\w/,!1)?(C.marked="keyword","enum"==t?T(Ue):"type"==t?T(ce,P("operator"),ce,P(";")):T(F("form"),ye,P("{"),F("}"),oe,I,I)):c&&"namespace"==t?(C.marked="keyword",T(F("form"),W,oe,I)):c&&"abstract"==t?(C.marked="keyword",T(E)):T(F("stat"),Q):"switch"==e?T(F("form"),R,P("{"),F("}","switch"),D,oe,I,I,z):"case"==e?T(W,P(":")):"default"==e?T(P(":")):"catch"==e?T(F("form"),O,q,E,I,z):"export"==e?T(F("stat"),Pe,I):"import"==e?T(F("stat"),qe,I):"async"==e?T(E):"@"==t?T(W,E):S(F("stat"),W,P(";"),I)}function q(e){if("("==e)return T(Ae,P(")"))}function W(e,t){return B(e,t,!1)}function H(e,t){return B(e,t,!0)}function R(e){return"("!=e?S():T(F(")"),W,P(")"),I)}function B(e,t,r){if(C.state.fatArrowAt==C.stream.start){var n=r?X:G;if("("==e)return T(O,F(")"),ne(Ae,")"),I,P("=>"),n,z);if("variable"==e)return S(O,ye,P("=>"),n,z)}var i,o=r?K:U;return x.hasOwnProperty(e)?T(o):"function"==e?T(Ne,o):"class"==e||c&&"interface"==t?(C.marked="keyword",T(F("form"),Oe,I)):"keyword c"==e||"async"==e?T(r?H:W):"("==e?T(F(")"),j,P(")"),I,o):"operator"==e||"spread"==e?T(r?H:W):"["==e?T(F("]"),je,I,o):"{"==e?ie(ee,"}",null,o):"quasi"==e?S(V,o):"new"==e?T((i=r,function(e){return"."==e?T(i?Z:Y):"variable"==e&&c?T(pe,i?K:U):S(i?H:W)})):"import"==e?T(W):T()}function j(e){return e.match(/[;\}\)\],]/)?S():S(W)}function U(e,t){return","==e?T(W):K(e,t,!1)}function K(e,t,r){var n=0==r?U:K,i=0==r?W:H;return"=>"==e?T(O,r?X:G,z):"operator"==e?/\+\+|--/.test(t)||c&&"!"==t?T(n):c&&"<"==t&&C.stream.match(/^([^>]|<.*?>)*>\s*\(/,!1)?T(F(">"),ne(ce,">"),I,n):"?"==t?T(W,P(":"),i):T(i):"quasi"==e?S(V,n):";"!=e?"("==e?ie(H,")","call",n):"."==e?T(J,n):"["==e?T(F("]"),j,P("]"),I,n):c&&"as"==t?(C.marked="keyword",T(ce,n)):"regexp"==e?(C.state.lastType=C.marked="operator",C.stream.backUp(C.stream.pos-C.stream.start-1),T(i)):void 0:void 0}function V(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?T(V):T(W,$)}function $(e){if("}"==e)return C.marked="string-2",C.state.tokenize=b,T(V)}function G(e){return o(C.stream,C.state),S("{"==e?E:W)}function X(e){return o(C.stream,C.state),S("{"==e?E:H)}function Y(e,t){if("target"==t)return C.marked="keyword",T(U)}function Z(e,t){if("target"==t)return C.marked="keyword",T(K)}function Q(e){return":"==e?T(I,E):S(U,P(";"),I)}function J(e){if("variable"==e)return C.marked="property",T()}function ee(e,t){if("async"==e)return C.marked="property",T(ee);if("variable"==e||"keyword"==C.style){return C.marked="property","get"==t||"set"==t?T(te):(c&&C.state.fatArrowAt==C.stream.start&&(r=C.stream.match(/^\s*:\s*/,!1))&&(C.state.fatArrowAt=C.stream.pos+r[0].length),T(re));var r}else{if("number"==e||"string"==e)return C.marked=a?"property":C.style+" property",T(re);if("jsonld-keyword"==e)return T(re);if(c&&M(t))return C.marked="keyword",T(ee);if("["==e)return T(W,ae,P("]"),re);if("spread"==e)return T(H,re);if("*"==t)return C.marked="keyword",T(ee);if(":"==e)return S(re)}}function te(e){return"variable"!=e?S(re):(C.marked="property",T(Ne))}function re(e){return":"==e?T(H):"("==e?S(Ne):void 0}function ne(n,i,o){function a(e,t){if(o?-1"),ce):void 0}function ue(e){if("=>"==e)return T(ce)}function de(e,t){return"variable"==e||"keyword"==C.style?(C.marked="property",T(de)):"?"==t?T(de):":"==e?T(ce):"["==e?T(W,ae,P("]"),de):void 0}function fe(e,t){return"variable"==e&&C.stream.match(/^\s*[?:]/,!1)||"?"==t?T(fe):":"==e?T(ce):S(ce)}function he(e,t){return"<"==t?T(F(">"),ne(ce,">"),I,he):"|"==t||"."==e||"&"==t?T(ce):"["==e?T(P("]"),he):"extends"==t||"implements"==t?(C.marked="keyword",T(ce)):void 0}function pe(e,t){if("<"==t)return T(F(">"),ne(ce,">"),I,he)}function me(){return S(ce,ge)}function ge(e,t){if("="==t)return T(ce)}function ve(e,t){return"enum"==t?(C.marked="keyword",T(Ue)):S(ye,ae,xe,ke)}function ye(e,t){return c&&M(t)?(C.marked="keyword",T(ye)):"variable"==e?(r(t),T()):"spread"==e?T(ye):"["==e?ie(we,"]"):"{"==e?ie(be,"}"):void 0}function be(e,t){return"variable"!=e||C.stream.match(/^\s*:/,!1)?("variable"==e&&(C.marked="property"),"spread"==e?T(ye):"}"==e?S():"["==e?T(W,P("]"),P(":"),be):T(P(":"),ye,xe)):(r(t),T(xe))}function we(){return S(ye,xe)}function xe(e,t){if("="==t)return T(H)}function ke(e){if(","==e)return T(ve)}function _e(e,t){if("keyword b"==e&&"else"==t)return T(F("form","else"),E,I)}function Ce(e,t){return"await"==t?T(Ce):"("==e?T(F(")"),Se,P(")"),I):void 0}function Se(e){return"var"==e?T(ve,P(";"),Le):";"==e?T(Le):"variable"==e?T(Te):S(W,P(";"),Le)}function Te(e,t){return"in"==t||"of"==t?(C.marked="keyword",T(W)):T(U,Le)}function Le(e,t){return";"==e?T(Me):"in"==t||"of"==t?(C.marked="keyword",T(W)):S(W,P(";"),Me)}function Me(e){")"!=e&&T(W)}function Ne(e,t){return"*"==t?(C.marked="keyword",T(Ne)):"variable"==e?(r(t),T(Ne)):"("==e?T(O,F(")"),ne(Ae,")"),I,le,E,z):c&&"<"==t?T(F(">"),ne(me,">"),I,Ne):void 0}function Ae(e,t){return"@"==t&&T(W,Ae),"spread"==e?T(Ae):c&&M(t)?(C.marked="keyword",T(Ae)):S(ye,ae,xe)}function Oe(e,t){return"variable"==e?De(e,t):ze(e,t)}function De(e,t){if("variable"==e)return r(t),T(ze)}function ze(e,t){return"<"==t?T(F(">"),ne(me,">"),I,ze):"extends"==t||"implements"==t||c&&","==e?("implements"==t&&(C.marked="keyword"),T(c?ce:W,ze)):"{"==e?T(F("}"),Fe,I):void 0}function Fe(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||c&&M(t))&&C.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(C.marked="keyword",T(Fe)):"variable"==e||"keyword"==C.style?(C.marked="property",T(c?Ie:Ne,Fe)):"["==e?T(W,ae,P("]"),c?Ie:Ne,Fe):"*"==t?(C.marked="keyword",T(Fe)):";"==e?T(Fe):"}"==e?T():"@"==t?T(W,Fe):void 0}function Ie(e,t){return"?"==t?T(Ie):":"==e?T(ce,xe):"="==t?T(H):S(Ne)}function Pe(e,t){return"*"==t?(C.marked="keyword",T(Be,P(";"))):"default"==t?(C.marked="keyword",T(W,P(";"))):"{"==e?T(ne(Ee,"}"),Be,P(";")):S(E)}function Ee(e,t){return"as"==t?(C.marked="keyword",T(P("variable"))):"variable"==e?S(H,Ee):void 0}function qe(e){return"string"==e?T():"("==e?S(W):S(We,He,Be)}function We(e,t){return"{"==e?ie(We,"}"):("variable"==e&&r(t),"*"==t&&(C.marked="keyword"),T(Re))}function He(e){if(","==e)return T(We,He)}function Re(e,t){if("as"==t)return C.marked="keyword",T(We)}function Be(e,t){if("from"==t)return C.marked="keyword",T(W)}function je(e){return"]"==e?T():S(ne(H,"]"))}function Ue(){return S(F("form"),ye,P("{"),F("}"),ne(Ke,"}"),I,I)}function Ke(){return S(ye,xe)}function Ve(e,t,r){return t.tokenize==v&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}return I.lex=z.lex=!0,{startState:function(e){var t={tokenize:v,lastType:"sof",cc:[],lexical:new k((e||0)-f,0,"block",!1),localVars:d.localVars,context:d.localVars&&new N(null,null,!1),indented:e||0};return d.globalVars&&"object"==typeof d.globalVars&&(t.globalVars=d.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),o(e,t)),t.tokenize!=y&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==n?r:(t.lastType="operator"!=n||"++"!=i&&"--"!=i?n:"incdec",function(e,t,r,n,i){var o=e.cc;for(C.state=e,C.stream=i,C.marked=null,C.cc=o,C.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():l?W:E)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return C.marked?C.marked:"variable"==r&&_(e,n)?"variable-2":t}}(t,r,n,i,e))},indent:function(e,t){if(e.tokenize==y)return $e.Pass;if(e.tokenize!=v)return 0;var r,n=t&&t.charAt(0),i=e.lexical;if(!/^\s*else\b/.test(t))for(var o=e.cc.length-1;0<=o;--o){var a=e.cc[o];if(a==I)i=i.prev;else if(a!=_e)break}for(;("stat"==i.type||"form"==i.type)&&("}"==n||(r=e.cc[e.cc.length-1])&&(r==U||r==K)&&!/^[,\.=+\-*:?[\(]/.test(t));)i=i.prev;h&&")"==i.type&&"stat"==i.prev.type&&(i=i.prev);var l,s,c=i.type,u=n==c;return"vardef"==c?i.indented+("operator"==e.lastType||","==e.lastType?i.info.length+1:0):"form"==c&&"{"==n?i.indented:"form"==c?i.indented+f:"stat"==c?i.indented+(s=t,"operator"==(l=e).lastType||","==l.lastType||p.test(s.charAt(0))||/[,.]/.test(s.charAt(0))?h||f:0):"switch"!=i.info||u||0==d.doubleIndentSwitch?i.align?i.column+(u?0:1):i.indented+(u?0:f):i.indented+(/^(?:case|default)\b/.test(t)?f:2*f)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:a,jsonMode:l,expressionAllowed:Ve,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=W&&t!=H||e.cc.pop()}}}),$e.registerHelper("wordChars","javascript",/[\w$]/),$e.defineMIME("text/javascript","javascript"),$e.defineMIME("text/ecmascript","javascript"),$e.defineMIME("application/javascript","javascript"),$e.defineMIME("application/x-javascript","javascript"),$e.defineMIME("application/ecmascript","javascript"),$e.defineMIME("application/json",{name:"javascript",json:!0}),$e.defineMIME("application/x-json",{name:"javascript",json:!0}),$e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),$e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),$e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(n){var u=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),m=n.Pos,g={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"};function d(e,t,r){var n=e.getLineHandle(t.line),i=t.ch-1,o=r&&r.afterCursor;null==o&&(o=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var a=!o&&0<=i&&g[n.text.charAt(i)]||g[n.text.charAt(++i)];if(!a)return null;var l=">"==a.charAt(1)?1:-1;if(r&&r.strict&&0o))for(u==t.line&&(f=t.ch-(r<0?1:0));f!=h;f+=r){var p=d.charAt(f);if(s.test(p)&&(void 0===n||e.getTokenTypeAt(m(u,f+1))==n))if(">"==g[p].charAt(1)==0\w/,!1)&&(t.tokenize=l([[["->",null]],[[/[\w]+/,"variable"]]],r,n)),"variable-2";var i=!1;for(;!e.eol()&&(i||!1===n||!e.match("{$",!1)&&!e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!i&&e.match(r)){t.tokenize=null,t.tokStack.pop(),t.tokStack.pop();break}i="\\"==e.next()&&!i}return"string"}(e,t,r,n)}}var t="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",r="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",n="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";c.registerHelper("hintWords","php",[t,r,n].join(" ").split(" ")),c.registerHelper("wordChars","php",/[\w$]/);var i={name:"clike",helperType:"php",keywords:e(t),blockKeywords:e("catch do else elseif for foreach if switch try while finally"),defKeywords:e("class function interface namespace trait"),atoms:e(r),builtin:e(n),multiLineStrings:!0,hooks:{$:function(e){return e.eatWhile(/[\w\$_]/),"variable-2"},"<":function(e,t){var r;if(r=e.match(/<<\s*/)){var n=e.eat(/['"]/);e.eatWhile(/[\w\.]/);var i=e.current().slice(r[0].length+(n?2:1));if(n&&e.eat(n),i)return(t.tokStack||(t.tokStack=[])).push(i,0),t.tokenize=s(i,"'"!=n),"string"}return!1},"#":function(e){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"},"/":function(e){if(e.eat("/")){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"}return!1},'"':function(e,t){return(t.tokStack||(t.tokStack=[])).push('"',0),t.tokenize=s('"'),"string"},"{":function(e,t){return t.tokStack&&t.tokStack.length&&t.tokStack[t.tokStack.length-1]++,!1},"}":function(e,t){return t.tokStack&&0")?(t.curMode=l,t.curState=t.html,t.php.context.prev||(t.php=null),"meta"):s.token(e,t.curState);if(e.match(/^<\?\w*/))return t.curMode=s,t.php||(t.php=c.startState(s,l.indent(t.html,""))),t.curState=t.php,"meta";if('"'==t.pending||"'"==t.pending){for(;!e.eol()&&e.next()!=t.pending;);var n="string"}else t.pending&&e.pos/.test(o)?t.pending=i[0]:t.pending={end:e.pos,style:n},e.backUp(o.length-a)),n},indent:function(e,t){return e.curMode!=s&&/^\s*<\//.test(t)||e.curMode==s&&/^\?>/.test(t)?l.indent(e.html,t):e.curMode.indent(e.curState,t)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(e){return{state:e.curState,mode:e.curMode}}}},"htmlmixed","clike"),c.defineMIME("application/x-httpd-php","php"),c.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),c.defineMIME("text/x-php",i)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(_){"use strict";var C={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},S={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};_.defineMode("xml",function(e,t){var a,o,l=e.indentUnit,s={},r=t.htmlMode?C:S;for(var n in r)s[n]=r[n];for(var n in t)s[n]=t[n];function c(t,r){function e(e){return(r.tokenize=e)(t,r)}var n=t.next();return"<"==n?t.eat("!")?t.eat("[")?t.match("CDATA[")?e(i("atom","]]>")):null:t.match("--")?e(i("comment","--\x3e")):t.match("DOCTYPE",!0,!0)?(t.eatWhile(/[\w\._\-]/),e(function n(i){return function(e,t){for(var r;null!=(r=e.next());){if("<"==r)return t.tokenize=n(i+1),t.tokenize(e,t);if(">"==r){if(1==i){t.tokenize=c;break}return t.tokenize=n(i-1),t.tokenize(e,t)}}return"meta"}}(1))):null:t.eat("?")?(t.eatWhile(/[\w\._\-]/),r.tokenize=i("meta","?>"),"meta"):(a=t.eat("/")?"closeTag":"openTag",r.tokenize=u,"tag bracket"):"&"==n?(t.eat("#")?t.eat("x")?t.eatWhile(/[a-fA-F\d]/)&&t.eat(";"):t.eatWhile(/[\d]/)&&t.eat(";"):t.eatWhile(/[\w\.\-:]/)&&t.eat(";"))?"atom":"error":(t.eatWhile(/[^&<]/),null)}function u(e,t){var r,n,i=e.next();if(">"==i||"/"==i&&e.eat(">"))return t.tokenize=c,a=">"==i?"endTag":"selfcloseTag","tag bracket";if("="==i)return a="equals",null;if("<"==i){t.tokenize=c,t.state=p,t.tagName=t.tagStart=null;var o=t.tokenize(e,t);return o?o+" tag error":"tag error"}return/[\'\"]/.test(i)?(t.tokenize=(r=i,(n=function(e,t){for(;!e.eol();)if(e.next()==r){t.tokenize=u;break}return"string"}).isInAttribute=!0,n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function i(r,n){return function(e,t){for(;!e.eol();){if(e.match(n)){t.tokenize=c;break}e.next()}return r}}function d(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(s.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function h(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!s.contextGrabbers.hasOwnProperty(r)||!s.contextGrabbers[r].hasOwnProperty(t))return;f(e)}}function p(e,t,r){return"openTag"==e?(r.tagStart=t.column(),m):"closeTag"==e?g:p}function m(e,t,r){return"word"==e?(r.tagName=t.current(),o="tag",b):s.allowMissingTagName&&"endTag"==e?(o="tag bracket",b(e,t,r)):(o="error",m)}function g(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&s.implicitlyClosed.hasOwnProperty(r.context.tagName)&&f(r),r.context&&r.context.tagName==n||!1===s.matchClosing?(o="tag",v):(o="tag error",y)}return s.allowMissingTagName&&"endTag"==e?(o="tag bracket",v(e,t,r)):(o="error",y)}function v(e,t,r){return"endTag"!=e?(o="error",v):(f(r),p)}function y(e,t,r){return o="error",v(e,0,r)}function b(e,t,r){if("word"==e)return o="attribute",w;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||s.autoSelfClosers.hasOwnProperty(n)?h(r,n):(h(r,n),r.context=new d(r,n,i==r.indented)),p}return o="error",b}function w(e,t,r){return"equals"==e?x:(s.allowMissing||(o="error"),b(e,0,r))}function x(e,t,r){return"string"==e?k:"word"==e&&s.allowUnquoted?(o="string",b):(o="error",b(e,0,r))}function k(e,t,r){return"string"==e?k:b(e,0,r)}return c.isInText=!0,{startState:function(e){var t={tokenize:c,state:p,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;a=null;var r=t.tokenize(e,t);return(r||a)&&"comment"!=r&&(o=null,t.state=t.state(a||r,e,t),o&&(r="error"==o?r+" error":o)),r},indent:function(e,t,r){var n=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+l;if(n&&n.noIndent)return _.Pass;if(e.tokenize!=u&&e.tokenize!=c)return r?r.match(/^(\s*)/)[0].length:0;if(e.tagName)return!1!==s.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+l*(s.multilineTagIndentFactor||1);if(s.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:s.htmlMode?"html":"xml",helperType:s.htmlMode?"html":"xml",skipAttribute:function(e){e.state==x&&(e.state=b)}}}),_.defineMIME("text/xml","xml"),_.defineMIME("application/xml","xml"),_.mimeModes.hasOwnProperty("text/html")||_.defineMIME("text/html",{name:"xml",htmlMode:!0})}); \ No newline at end of file diff --git a/js/highcharts/highcharts.js b/js/highcharts/highcharts.js new file mode 100644 index 0000000..d78b874 --- /dev/null +++ b/js/highcharts/highcharts.js @@ -0,0 +1,441 @@ +/* + Highcharts JS v7.0.2 (2019-01-17) + + (c) 2009-2018 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(M,I){"object"===typeof module&&module.exports?(I["default"]=I,module.exports=M.document?I(M):I):"function"===typeof define&&define.amd?define(function(){return I(M)}):M.Highcharts=I(M)})("undefined"!==typeof window?window:this,function(M){var I=function(){var a="undefined"===typeof M?window:M,z=a.document,F=a.navigator&&a.navigator.userAgent||"",G=z&&z.createElementNS&&!!z.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,h=/(edge|msie|trident)/i.test(F)&&!a.opera,c=-1!== +F.indexOf("Firefox"),r=-1!==F.indexOf("Chrome"),u=c&&4>parseInt(F.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highcharts",version:"7.0.2",deg2rad:2*Math.PI/360,doc:z,hasBidiBug:u,hasTouch:z&&void 0!==z.documentElement.ontouchstart,isMS:h,isWebKit:-1!==F.indexOf("AppleWebKit"),isFirefox:c,isChrome:r,isSafari:!r&&-1!==F.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(F),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{}, +svg:G,win:a,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[]}}();(function(a){a.timers=[];var z=a.charts,F=a.doc,G=a.win;a.error=function(h,c,r){var u=a.isNumber(h)?"Highcharts error #"+h+": www.highcharts.com/errors/"+h:h;r&&a.fireEvent(r,"displayError",{code:h});if(c)throw Error(u);G.console&&console.log(u)};a.Fx=function(a,c,r){this.options=c;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],c=this.paths[1],r=[],u=this.now, +w=a.length,x;if(1===u)r=this.toD;else if(w===c.length&&1>u)for(;w--;)x=parseFloat(a[w]),r[w]=isNaN(x)?c[w]:u*parseFloat(c[w]-x)+x;else r=c;this.elem.attr("d",r,null,!0)},update:function(){var a=this.elem,c=this.prop,r=this.now,u=this.options.step;if(this[c+"Setter"])this[c+"Setter"]();else a.attr?a.element&&a.attr(c,r,null,!0):a.style[c]=r+this.unit;u&&u.call(a,r,this)},run:function(h,c,r){var u=this,w=u.options,x=function(a){return x.stopped?!1:u.step(a)},p=G.requestAnimationFrame||function(a){setTimeout(a, +13)},g=function(){for(var d=0;d=p+this.startTime?(this.now=this.end,this.pos=1,this.update(),r=g[this.prop]=!0,a.objectEach(g,function(a){!0!==a&&(r=!1)}),r&&x&&x.call(w),h=!1):(this.pos=u.easing((c-this.startTime)/p),this.now=this.start+(this.end-this.start)*this.pos,this.update(),h=!0);return h},initPath:function(h,c,r){function u(a){var b,k;for(f=a.length;f--;)b="M"===a[f]||"L"===a[f],k=/[a-zA-Z]/.test(a[f+3]),b&&k&&a.splice(f+1,0,a[f+1],a[f+2],a[f+1],a[f+2])}function w(a,l){for(;a.length< +b;){a[0]=l[b-a.length];var k=a.slice(0,n);[].splice.apply(a,[0,0].concat(k));v&&(k=a.slice(a.length-n),[].splice.apply(a,[a.length,0].concat(k)),f--)}a[0]="M"}function x(a,f){for(var k=(b-a.length)/n;0a&&-Infinity=r&&(c=[1/r])));for(u=0;u=h||!w&&x<=(c[u]+(c[u+1]||c[u]))/2);u++);return p=a.correctFloat(p*r,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a, +c){var h=a.length,u,w;for(w=0;wh&&(h=a[c]);return h};a.destroyObjectProperties=function(h,c){a.objectEach(h,function(a,u){a&&a!==c&&a.destroy&&a.destroy();delete h[u]})};a.discardElement=function(h){var c=a.garbageBin;c||(c=a.createElement("div")); +h&&c.appendChild(h);c.innerHTML=""};a.correctFloat=function(a,c){return parseFloat(a.toPrecision(c||14))};a.setAnimation=function(h,c){c.renderer.globalAnimation=a.pick(h,c.options.chart.animation,!0)};a.animObject=function(h){return a.isObject(h)?a.merge(h):{duration:h?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(h,c,r,u){h=+h||0;c=+c;var w=a.defaultOptions.lang,x=(h.toString().split(".")[1]||"").split("e")[0].length, +p,g,d=h.toString().split("e");-1===c?c=Math.min(x,20):a.isNumber(c)?c&&d[1]&&0>d[1]&&(p=c+ +d[1],0<=p?(d[0]=(+d[0]).toExponential(p).split("e")[0],c=p):(d[0]=d[0].split(".")[0]||0,h=20>c?(d[0]*Math.pow(10,d[1])).toFixed(c):0,d[1]=0)):c=2;g=(Math.abs(d[1]?d[0]:h)+Math.pow(10,-Math.max(c,x)-1)).toFixed(c);x=String(a.pInt(g));p=3h?"-":"")+(p?x.substr(0,p)+u:"");h+=x.substr(p).replace(/(\d{3})(?=\d)/g,"$1"+u);c&&(h+=r+g.slice(-c)); +d[1]&&0!==+h&&(h+="e"+d[1]);return h};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(h,c,r){if("width"===c)return Math.max(0,Math.min(h.offsetWidth,h.scrollWidth,h.getBoundingClientRect&&"none"===a.getStyle(h,"transform",!1)?Math.floor(h.getBoundingClientRect().width):Infinity)-a.getStyle(h,"padding-left")-a.getStyle(h,"padding-right"));if("height"===c)return Math.max(0,Math.min(h.offsetHeight,h.scrollHeight)-a.getStyle(h,"padding-top")-a.getStyle(h,"padding-bottom")); +G.getComputedStyle||a.error(27,!0);if(h=G.getComputedStyle(h,void 0))h=h.getPropertyValue(c),a.pick(r,"opacity"!==c)&&(h=a.pInt(h));return h};a.inArray=function(a,c,r){return c.indexOf(a,r)};a.find=Array.prototype.find?function(a,c){return a.find(c)}:function(a,c){var h,u=a.length;for(h=0;h>16,(h&65280)>>8,h&255,1]:4===c&&(r=[(h&3840)>>4|(h&3840)>>8,(h&240)>>4|h&240,(h&15)<<4|h&15,1])),!r)for(u=this.parsers.length;u--&&!r;)w=this.parsers[u],(c=w.regex.exec(h))&&(r=w.parse(c));this.rgba=r||[]},get:function(a){var c=this.input, +h=this.rgba,u;this.stops?(u=F(c),u.stops=[].concat(u.stops),this.stops.forEach(function(c,h){u.stops[h]=[u.stops[h][0],c.get(a)]})):u=h&&z(h[0])?"rgb"===a||!a&&1===h[3]?"rgb("+h[0]+","+h[1]+","+h[2]+")":"a"===a?h[3]:"rgba("+h.join(",")+")":c;return u},brighten:function(a){var c,h=this.rgba;if(this.stops)this.stops.forEach(function(c){c.brighten(a)});else if(z(a)&&0!==a)for(c=0;3>c;c++)h[c]+=G(255*a),0>h[c]&&(h[c]=0),255q.width)q= +{width:0,height:0}}else q=this.htmlGetBBox();B.isSVG&&(a=q.width,B=q.height,v&&(q.height=B={"11px,17":14,"13px,20":16}[k&&k.fontSize+","+Math.round(B)]||B),e&&(q.width=Math.abs(B*Math.sin(b))+Math.abs(a*Math.cos(b)),q.height=Math.abs(B*Math.cos(b))+Math.abs(a*Math.sin(b))));if(c&&0]*>/g,"").replace(/</g,"\x3c").replace(/>/g,"\x3e")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,e,q){"string"===typeof a?q.setAttribute(e,a):a&&this.complexColor(a,e,q)},visibilitySetter:function(a, +e,q){"inherit"===a?q.removeAttribute(e):this[e]!==a&&q.setAttribute(e,a);this[e]=a},zIndexSetter:function(a,q){var b=this.renderer,f=this.parentGroup,k=(f||b).element||b.box,l,d=this.element,B,n,b=k===b.box;l=this.added;var g;p(a)?(d.setAttribute("data-z-index",a),a=+a,this[q]===a&&(l=!1)):p(this[q])&&d.removeAttribute("data-z-index");this[q]=a;if(l){(a=this.zIndex)&&f&&(f.handleZ=!0);q=k.childNodes;for(g=q.length-1;0<=g&&!B;g--)if(f=q[g],l=f.getAttribute("data-z-index"),n=!p(l),f!==d)if(0>a&&n&& +!b&&!g)k.insertBefore(d,q[g]),B=!0;else if(e(l)<=a||n&&(!p(a)||0<=a))k.insertBefore(d,q[g+1]||null),B=!0;B||(k.insertBefore(d,q[b?3:0]||null),B=!0)}return B},_defaultSetter:function(a,e,q){q.setAttribute(e,a)}});z.prototype.yGetter=z.prototype.xGetter;z.prototype.translateXSetter=z.prototype.translateYSetter=z.prototype.rotationSetter=z.prototype.verticalAlignSetter=z.prototype.rotationOriginXSetter=z.prototype.rotationOriginYSetter=z.prototype.scaleXSetter=z.prototype.scaleYSetter=z.prototype.matrixSetter= +function(a,e){this[e]=a;this.doTransform=!0};z.prototype["stroke-widthSetter"]=z.prototype.strokeSetter=function(a,e,q){this[e]=a;this.stroke&&this["stroke-width"]?(z.prototype.fillSetter.call(this,this.stroke,"stroke",q),q.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===e&&0===a&&this.hasStroke&&(q.removeAttribute("stroke"),this.hasStroke=!1)};F=a.SVGRenderer=function(){this.init.apply(this,arguments)};n(F.prototype,{Element:z,SVG_NS:J,init:function(a,e,q,b, +f,k,l){var d;d=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});l||d.css(this.getStyle(b));b=d.element;a.appendChild(b);c(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&c(b,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=b;this.boxWrapper=d;this.alignedObjects=[];this.url=(v||A)&&m.getElementsByTagName("base").length?R.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(m.createTextNode("Created with Highcharts 7.0.2")); +this.defs=this.createElement("defs").add();this.allowHTML=k;this.forExport=f;this.styledMode=l;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(e,q,!1);var n;v&&a.getBoundingClientRect&&(e=function(){w(a,{left:0,top:0});n=a.getBoundingClientRect();w(a,{left:Math.ceil(n.left)-n.left+"px",top:Math.ceil(n.top)-n.top+"px"})},e(),this.unSubPixelFix=G(R,"resize",e))},definition:function(a){function e(a,b){var f;L(a).forEach(function(a){var k=q.createElement(a.tagName),l={}; +C(a,function(a,e){"tagName"!==e&&"children"!==e&&"textContent"!==e&&(l[e]=a)});k.attr(l);k.add(b||q.defs);a.textContent&&k.element.appendChild(m.createTextNode(a.textContent));e(a.children||[],k);f=k});return f}var q=this;return e(a)},getStyle:function(a){return this.style=n({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a= +this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();d(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var e=new this.Element;e.init(this,a);return e},draw:E,getRadialAttr:function(a,e){return{cx:a[0]-a[2]/2+e.cx*a[2],cy:a[1]-a[2]/2+e.cy*a[2],r:e.r*a[2]}},truncate:function(a,e,q,b,f,k,l){var d=this,n=a.rotation,g,B=b?1:0,J=(q||b).length,E=J,c=[],p=function(a){e.firstChild&& +e.removeChild(e.firstChild);a&&e.appendChild(m.createTextNode(a))},v=function(k,n){n=n||k;if(void 0===c[n])if(e.getSubStringLength)try{c[n]=f+e.getSubStringLength(0,b?n+1:n)}catch(Z){}else d.getSpanWidth&&(p(l(q||b,k)),c[n]=f+d.getSpanWidth(a,e));return c[n]},t,C;a.rotation=0;t=v(e.textContent.length);if(C=f+t>k){for(;B<=J;)E=Math.ceil((B+J)/2),b&&(g=l(b,E)),t=v(E,g&&g.length-1),B===J?B=J+1:t>k?J=E-1:B=E;0===J?p(""):q&&J===q.length-1||p(g||l(q||b,E))}b&&b.splice(0,E);a.actualWidth=t;a.rotation=n; +return C},escapes:{"\x26":"\x26amp;","\x3c":"\x26lt;","\x3e":"\x26gt;","'":"\x26#39;",'"':"\x26quot;"},buildText:function(a){var q=a.element,b=this,f=b.forExport,k=y(a.textStr,"").toString(),l=-1!==k.indexOf("\x3c"),d=q.childNodes,n,g=c(q,"x"),B=a.styles,E=a.textWidth,p=B&&B.lineHeight,v=B&&B.textOutline,t=B&&"ellipsis"===B.textOverflow,K=B&&"nowrap"===B.whiteSpace,L=B&&B.fontSize,A,h,H=d.length,B=E&&!a.added&&this.box,N=function(a){var k;b.styledMode||(k=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize: +L||b.style.fontSize||12);return p?e(p):b.fontMetrics(k,a.getAttribute("style")?a:q).h},D=function(a,e){C(b.escapes,function(q,b){e&&-1!==e.indexOf(q)||(a=a.toString().replace(new RegExp(q,"g"),b))});return a},x=function(a,e){var q;q=a.indexOf("\x3c");a=a.substring(q,a.indexOf("\x3e")-q);q=a.indexOf(e+"\x3d");if(-1!==q&&(q=q+e.length+1,e=a.charAt(q),'"'===e||"'"===e))return a=a.substring(q+1),a.substring(0,a.indexOf(e))};A=[k,t,K,p,v,L,E].join();if(A!==a.textCache){for(a.textCache=A;H--;)q.removeChild(d[H]); +l||v||t||E||-1!==k.indexOf(" ")?(B&&B.appendChild(q),l?(k=b.styledMode?k.replace(/<(b|strong)>/g,'\x3cspan class\x3d"highcharts-strong"\x3e').replace(/<(i|em)>/g,'\x3cspan class\x3d"highcharts-emphasized"\x3e'):k.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e'),k=k.replace(//g,"\x3c/span\x3e").split(//g)):k=[k],k=k.filter(function(a){return""!==a}),k.forEach(function(e, +k){var l,d=0,B=0;e=e.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");l=e.split("|||");l.forEach(function(e){if(""!==e||1===l.length){var p={},v=m.createElementNS(b.SVG_NS,"tspan"),C,y;(C=x(e,"class"))&&c(v,"class",C);if(C=x(e,"style"))C=C.replace(/(;| |^)color([ :])/,"$1fill$2"),c(v,"style",C);(y=x(e,"href"))&&!f&&(c(v,"onclick",'location.href\x3d"'+y+'"'),c(v,"class","highcharts-anchor"),b.styledMode||w(v,{cursor:"pointer"}));e=D(e.replace(/<[a-zA-Z\/](.|\n)*?>/g, +"")||" ");if(" "!==e){v.appendChild(m.createTextNode(e));d?p.dx=0:k&&null!==g&&(p.x=g);c(v,p);q.appendChild(v);!d&&h&&(!T&&f&&w(v,{display:"block"}),c(v,"dy",N(v)));if(E){var A=e.replace(/([^\^])-/g,"$1- ").split(" "),p=!K&&(1Math.abs(k.end-k.start-2*Math.PI));var g=Math.cos(f),J=Math.sin(f),E=Math.cos(n),n=Math.sin(n);k=.001>k.end-f-Math.PI?0:1;l=["M",a+l*g,e+d*J,"A",l,d,0,k,1,a+l*E,e+d*n];p(q)&&l.push(b?"M":"L",a+q*E,e+q*n,"A",q,q,0,k,0, +a+q*g,e+q*J);l.push(b?"":"Z");return l},callout:function(a,e,q,b,k){var f=Math.min(k&&k.r||0,q,b),l=f+6,d=k&&k.anchorX;k=k&&k.anchorY;var n;n=["M",a+f,e,"L",a+q-f,e,"C",a+q,e,a+q,e,a+q,e+f,"L",a+q,e+b-f,"C",a+q,e+b,a+q,e+b,a+q-f,e+b,"L",a+f,e+b,"C",a,e+b,a,e+b,a,e+b-f,"L",a,e+f,"C",a,e,a,e,a+f,e];d&&d>q?k>e+l&&kd?k>e+l&&kb&&d>a+l&&dk&&d>a+l&&da?a+3:Math.round(1.2*a);return{h:q,b:Math.round(.8* +q),f:a}},rotCorr:function(a,e,q){var b=a;e&&q&&(b=Math.max(b*Math.cos(e*g),4));return{x:-a/3*Math.sin(e*g),y:b}},label:function(e,b,f,d,l,g,J,E,v){var m=this,c=m.styledMode,t=m.g("button"!==v&&"label"),C=t.text=m.text("",0,0,J).attr({zIndex:1}),K,L,B=0,y=3,A=0,H,h,N,D,T,x={},r,u,R=/^url\((.*?)\)$/.test(d),w=c||R,P=function(){return c?K.strokeWidth()%2/2:(r?parseInt(r,10):0)%2/2},U,O,S;v&&t.addClass("highcharts-"+v);U=function(){var a=C.element.style,e={};L=(void 0===H||void 0===h||T)&&p(C.textStr)&& +C.getBBox();t.width=(H||L.width||0)+2*y+A;t.height=(h||L.height||0)+2*y;u=y+Math.min(m.fontMetrics(a&&a.fontSize,C).b,L?L.height:Infinity);w&&(K||(t.box=K=m.symbols[d]||R?m.symbol(d):m.rect(),K.addClass(("button"===v?"":"highcharts-label-box")+(v?" highcharts-"+v+"-box":"")),K.add(t),a=P(),e.x=a,e.y=(E?-u:0)+a),e.width=Math.round(t.width),e.height=Math.round(t.height),K.attr(n(e,x)),x={})};O=function(){var a=A+y,e;e=E?0:u;p(H)&&L&&("center"===T||"right"===T)&&(a+={center:.5,right:1}[T]*(H-L.width)); +if(a!==C.x||e!==C.y)C.attr("x",a),C.hasBoxWidthChanged&&(L=C.getBBox(!0),U()),void 0!==e&&C.attr("y",e);C.x=a;C.y=e};S=function(a,e){K?K.attr(a,e):x[a]=e};t.onAdd=function(){C.add(t);t.attr({text:e||0===e?e:"",x:b,y:f});K&&p(l)&&t.attr({anchorX:l,anchorY:g})};t.widthSetter=function(e){H=a.isNumber(e)?e:null};t.heightSetter=function(a){h=a};t["text-alignSetter"]=function(a){T=a};t.paddingSetter=function(a){p(a)&&a!==y&&(y=t.padding=a,O())};t.paddingLeftSetter=function(a){p(a)&&a!==A&&(A=a,O())};t.alignSetter= +function(a){a={left:0,center:.5,right:1}[a];a!==B&&(B=a,L&&t.attr({x:N}))};t.textSetter=function(a){void 0!==a&&C.textSetter(a);U();O()};t["stroke-widthSetter"]=function(a,e){a&&(w=!0);r=this["stroke-width"]=a;S(e,a)};c?t.rSetter=function(a,e){S(e,a)}:t.strokeSetter=t.fillSetter=t.rSetter=function(a,e){"r"!==e&&("fill"===e&&a&&(w=!0),t[e]=a);S(e,a)};t.anchorXSetter=function(a,e){l=t.anchorX=a;S(e,Math.round(a)-P()-N)};t.anchorYSetter=function(a,e){g=t.anchorY=a;S(e,a-D)};t.xSetter=function(a){t.x= +a;B&&(a-=B*((H||L.width)+2*y),t["forceAnimate:x"]=!0);N=Math.round(a);t.attr("translateX",N)};t.ySetter=function(a){D=t.y=Math.round(a);t.attr("translateY",D)};var G=t.css;J={css:function(a){if(a){var e={};a=k(a);t.textProps.forEach(function(q){void 0!==a[q]&&(e[q]=a[q],delete a[q])});C.css(e);"width"in e&&U();"fontSize"in e&&(U(),O())}return G.call(t,a)},getBBox:function(){return{width:L.width+2*y,height:L.height+2*y,x:L.x-y,y:L.y-y}},destroy:function(){q(t.element,"mouseenter");q(t.element,"mouseleave"); +C&&(C=C.destroy());K&&(K=K.destroy());z.prototype.destroy.call(t);t=m=U=O=S=null}};c||(J.shadow=function(a){a&&(U(),K&&K.shadow(a));return t});return n(t,J)}});a.Renderer=F})(I);(function(a){var z=a.attr,F=a.createElement,G=a.css,h=a.defined,c=a.extend,r=a.isFirefox,u=a.isMS,w=a.isWebKit,x=a.pick,p=a.pInt,g=a.SVGElement,d=a.SVGRenderer,m=a.win;c(g.prototype,{htmlCss:function(a){var b="SPAN"===this.element.tagName&&a&&"width"in a,d=x(b&&a.width,void 0),f;b&&(delete a.width,this.textWidth=d,f=!0);a&& +"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=c(this.styles,a);G(this.element,a);f&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,d=this.translateX||0,f=this.translateY||0,g=this.x||0,t=this.y||0,m=this.textAlign||"left",c={left:0,center:.5,right:1}[m],A=this.styles, +k=A&&A.whiteSpace;G(b,{marginLeft:d,marginTop:f});!a.styledMode&&this.shadows&&this.shadows.forEach(function(a){G(a,{marginLeft:d+1,marginTop:f+1})});this.inverted&&b.childNodes.forEach(function(e){a.invertChild(e,b)});if("SPAN"===b.tagName){var A=this.rotation,E=this.textWidth&&p(this.textWidth),C=[A,m,b.innerHTML,this.textWidth,this.textAlign].join(),y;(y=E!==this.oldTextWidth)&&!(y=E>this.oldTextWidth)&&((y=this.textPxLength)||(G(b,{width:"",whiteSpace:k||"nowrap"}),y=b.offsetWidth),y=y>E);y&& +(/[ \-]/.test(b.textContent||b.innerText)||"ellipsis"===b.style.textOverflow)?(G(b,{width:E+"px",display:"block",whiteSpace:k||"normal"}),this.oldTextWidth=E,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;C!==this.cTT&&(k=a.fontMetrics(b.style.fontSize,b).b,!h(A)||A===(this.oldRotation||0)&&m===this.oldAlign||this.setSpanRotation(A,c,k),this.getSpanCorrection(!h(A)&&this.textPxLength||b.offsetWidth,k,c,A,m));G(b,{left:g+(this.xCorr||0)+"px",top:t+(this.yCorr||0)+"px"});this.cTT=C;this.oldRotation= +A;this.oldAlign=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,b,d){var f={},l=this.renderer.getTransformKey();f[l]=f.transform="rotate("+a+"deg)";f[l+(r?"Origin":"-origin")]=f.transformOrigin=100*b+"% "+d+"px";G(this.element,f)},getSpanCorrection:function(a,b,d){this.xCorr=-a*d;this.yCorr=-b}});c(d.prototype,{getTransformKey:function(){return u&&!/Edge/.test(m.navigator.userAgent)?"-ms-transform":w?"-webkit-transform":r?"MozTransform":m.opera?"-o-transform":""},html:function(d,b,l){var f= +this.createElement("span"),n=f.element,t=f.renderer,m=t.isSVG,p=function(a,b){["opacity","visibility"].forEach(function(k){a[k+"Setter"]=function(a,e,q){g.prototype[k+"Setter"].call(this,a,e,q);b[e]=a}});a.addedSetters=!0},A=a.charts[t.chartIndex],A=A&&A.styledMode;f.textSetter=function(a){a!==n.innerHTML&&delete this.bBox;this.textStr=a;n.innerHTML=x(a,"");f.doTransform=!0};m&&p(f,f.element.style);f.xSetter=f.ySetter=f.alignSetter=f.rotationSetter=function(a,b){"align"===b&&(b="textAlign");f[b]= +a;f.doTransform=!0};f.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=!1)};f.attr({text:d,x:Math.round(b),y:Math.round(l)}).css({position:"absolute"});A||f.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});n.style.whiteSpace="nowrap";f.css=f.htmlCss;m&&(f.add=function(a){var b,k=t.box.parentNode,d=[];if(this.parentGroup=a){if(b=a.div,!b){for(;a;)d.push(a),a=a.parentGroup;d.reverse().forEach(function(a){function e(e,q){a[q]=e;"translateX"=== +q?l.left=e+"px":l.top=e+"px";a.doTransform=!0}var l,g=z(a.element,"class");g&&(g={className:g});b=a.div=a.div||F("div",g,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},b||k);l=b.style;c(a,{classSetter:function(a){return function(e){this.element.setAttribute("class",e);a.className=e}}(b),on:function(){d[0].div&&f.on.apply({element:d[0].div},arguments);return a},translateXSetter:e,translateYSetter:e}); +a.addedSetters||p(a,l)})}}else b=k;b.appendChild(n);f.added=!0;f.alignOnAdd&&f.htmlUpdateTransform();return f});return f}})})(I);(function(a){var z=a.defined,F=a.extend,G=a.merge,h=a.pick,c=a.timeUnits,r=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},update:function(a){var c=h(a&&a.useUTC,!0),x=this;this.options=a=G(!0,this.options||{},a);this.Date=a.Date||r.Date;this.timezoneOffset=(this.useUTC=c)&&a.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction(); +(this.variableTimezone=!(c&&!a.getTimezoneOffset&&!a.timezone))||this.timezoneOffset?(this.get=function(a,g){var d=g.getTime(),m=d-x.getTimezoneOffset(g);g.setTime(m);a=g["getUTC"+a]();g.setTime(d);return a},this.set=function(a,g,d){var m;if("Milliseconds"===a||"Seconds"===a||"Minutes"===a&&0===g.getTimezoneOffset()%60)g["set"+a](d);else m=x.getTimezoneOffset(g),m=g.getTime()-m,g.setTime(m),g["setUTC"+a](d),a=x.getTimezoneOffset(g),m=g.getTime()+a,g.setTime(m)}):c?(this.get=function(a,g){return g["getUTC"+ +a]()},this.set=function(a,g,d){return g["setUTC"+a](d)}):(this.get=function(a,g){return g["get"+a]()},this.set=function(a,g,d){return g["set"+a](d)})},makeTime:function(c,r,x,p,g,d){var m,n,b;this.useUTC?(m=this.Date.UTC.apply(0,arguments),n=this.getTimezoneOffset(m),m+=n,b=this.getTimezoneOffset(m),n!==b?m+=b-n:n-36E5!==this.getTimezoneOffset(m-36E5)||a.isSafari||(m-=36E5)):m=(new this.Date(c,r,h(x,1),h(p,0),h(g,0),h(d,0))).getTime();return m},timezoneOffsetFunction:function(){var c=this,h=this.options, +x=r.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(h.timezone){if(x)return function(a){return 6E4*-x.tz(a,h.timezone).utcOffset()};a.error(25)}return this.useUTC&&h.getTimezoneOffset?function(a){return 6E4*h.getTimezoneOffset(a)}:function(){return 6E4*(c.timezoneOffset||0)}},dateFormat:function(c,h,x){if(!a.defined(h)||isNaN(h))return a.defaultOptions.lang.invalidDate||"";c=a.pick(c,"%Y-%m-%d %H:%M:%S");var p=this,g=new this.Date(h),d=this.get("Hours",g), +m=this.get("Day",g),n=this.get("Date",g),b=this.get("Month",g),l=this.get("FullYear",g),f=a.defaultOptions.lang,v=f.weekdays,t=f.shortWeekdays,H=a.pad,g=a.extend({a:t?t[m]:v[m].substr(0,3),A:v[m],d:H(n),e:H(n,2," "),w:m,b:f.shortMonths[b],B:f.months[b],m:H(b+1),o:b+1,y:l.toString().substr(2,2),Y:l,H:H(d),k:d,I:H(d%12||12),l:d%12||12,M:H(p.get("Minutes",g)),p:12>d?"AM":"PM",P:12>d?"am":"pm",S:H(g.getSeconds()),L:H(Math.floor(h%1E3),3)},a.dateFormats);a.objectEach(g,function(a,b){for(;-1!==c.indexOf("%"+ +b);)c=c.replace("%"+b,"function"===typeof a?a.call(p,h):a)});return x?c.substr(0,1).toUpperCase()+c.substr(1):c},resolveDTLFormat:function(c){return a.isObject(c,!0)?c:(c=a.splat(c),{main:c[0],from:c[1],to:c[2]})},getTimeTicks:function(a,r,x,p){var g=this,d=[],m,n={},b;m=new g.Date(r);var l=a.unitRange,f=a.count||1,v;p=h(p,1);if(z(r)){g.set("Milliseconds",m,l>=c.second?0:f*Math.floor(g.get("Milliseconds",m)/f));l>=c.second&&g.set("Seconds",m,l>=c.minute?0:f*Math.floor(g.get("Seconds",m)/f));l>=c.minute&& +g.set("Minutes",m,l>=c.hour?0:f*Math.floor(g.get("Minutes",m)/f));l>=c.hour&&g.set("Hours",m,l>=c.day?0:f*Math.floor(g.get("Hours",m)/f));l>=c.day&&g.set("Date",m,l>=c.month?1:Math.max(1,f*Math.floor(g.get("Date",m)/f)));l>=c.month&&(g.set("Month",m,l>=c.year?0:f*Math.floor(g.get("Month",m)/f)),b=g.get("FullYear",m));l>=c.year&&g.set("FullYear",m,b-b%f);l===c.week&&(b=g.get("Day",m),g.set("Date",m,g.get("Date",m)-b+p+(b4*c.month||g.getTimezoneOffset(r)!==g.getTimezoneOffset(x));r=m.getTime();for(m=1;rd.length&&d.forEach(function(a){0===a%18E5&&"000000000"===g.dateFormat("%H%M%S%L",a)&&(n[a]="day")})}d.info=F(a,{higherRanks:n,totalRange:l*f});return d}}})(I); +(function(a){var z=a.color,F=a.merge;a.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), +decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:a.Time.prototype.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center", +margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"}, +shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M", +day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:a.isTouchDevice?25:10,headerFormat:'\x3cspan style\x3d"font-size: 10px"\x3e{point.key}\x3c/span\x3e\x3cbr/\x3e',pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.y}\x3c/b\x3e\x3cbr/\x3e',backgroundColor:z("#f7f7f7").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none", +whiteSpace:"nowrap"}},credits:{enabled:!0,href:"https://www.highcharts.com?credits",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:"Highcharts.com"}};a.setOptions=function(z){a.defaultOptions=F(!0,a.defaultOptions,z);a.time.update(F(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(F(a.defaultOptions.global, +a.defaultOptions.time));a.dateFormat=function(z,h,c){return a.time.dateFormat(z,h,c)}})(I);(function(a){var z=a.correctFloat,F=a.defined,G=a.destroyObjectProperties,h=a.fireEvent,c=a.isNumber,r=a.merge,u=a.pick,w=a.deg2rad;a.Tick=function(a,c,g,d,m){this.axis=a;this.pos=c;this.type=g||"";this.isNewLabel=this.isNew=!0;this.parameters=m||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;g||d||this.addLabel()};a.Tick.prototype={addLabel:function(){var c=this, +p=c.axis,g=p.options,d=p.chart,m=p.categories,n=p.names,b=c.pos,l=u(c.options&&c.options.labels,g.labels),f=p.tickPositions,v=b===f[0],t=b===f[f.length-1],m=this.parameters.category||(m?u(m[b],n[b],b):b),h=c.label,f=f.info,D,A,k,E;p.isDatetimeAxis&&f&&(A=d.time.resolveDTLFormat(g.dateTimeLabelFormats[!g.grid&&f.higherRanks[b]||f.unitName]),D=A.main);c.isFirst=v;c.isLast=t;c.formatCtx={axis:p,chart:d,isFirst:v,isLast:t,dateTimeLabelFormat:D,tickPositionInfo:f,value:p.isLog?z(p.lin2log(m)):m,pos:b}; +g=p.labelFormatter.call(c.formatCtx,this.formatCtx);if(E=A&&A.list)c.shortenLabel=function(){for(k=0;kf&&d-v*tn&&(k=Math.round((m-d)/Math.cos(f*w)));else if(m=d+(1-v)*t,d-v*tn&&(D=n-a.x+D*v,A=-1),D=Math.min(h,D),DD||c.autoRotation&&(l.styles||{}).width)k=D;k&&(this.shortenLabel?this.shortenLabel():(E.width=Math.floor(k),(g.style||{}).textOverflow||(E.textOverflow="ellipsis"),l.css(E)))},getPosition:function(c, +p,g,d){var m=this.axis,n=m.chart,b=d&&n.oldChartHeight||n.chartHeight;c={x:c?a.correctFloat(m.translate(p+g,null,null,d)+m.transB):m.left+m.offset+(m.opposite?(d&&n.oldChartWidth||n.chartWidth)-m.right-m.left:0),y:c?b-m.bottom+m.offset-(m.opposite?m.height:0):a.correctFloat(b-m.translate(p+g,null,null,d)-m.transB)};h(this,"afterGetPosition",{pos:c});return c},getLabelPosition:function(a,c,g,d,m,n,b,l){var f=this.axis,v=f.transA,t=f.reversed,p=f.staggerLines,D=f.tickRotCorr||{x:0,y:0},A=m.y,k=d||f.reserveSpaceDefault? +0:-f.labelOffset*("center"===f.labelAlign?.5:1),E={};F(A)||(A=0===f.side?g.rotation?-8:-g.getBBox().height:2===f.side?D.y+8:Math.cos(g.rotation*w)*(D.y-g.getBBox(!1,0).height/2));a=a+m.x+k+D.x-(n&&d?n*v*(t?-1:1):0);c=c+A-(n&&!d?n*v*(t?1:-1):0);p&&(g=b/(l||1)%p,f.opposite&&(g=p-g-1),c+=f.labelOffset/p*g);E.x=a;E.y=Math.round(c);h(this,"afterGetLabelPosition",{pos:E,tickmarkOffset:n,index:b});return E},getMarkPath:function(a,c,g,d,m,n){return n.crispLine(["M",a,c,"L",a+(m?0:-g),c+(m?g:0)],d)},renderGridLine:function(a, +c,g){var d=this.axis,m=d.options,n=this.gridLine,b={},l=this.pos,f=this.type,v=u(this.tickmarkOffset,d.tickmarkOffset),t=d.chart.renderer,p=f?f+"Grid":"grid",h=m[p+"LineWidth"],A=m[p+"LineColor"],m=m[p+"LineDashStyle"];n||(d.chart.styledMode||(b.stroke=A,b["stroke-width"]=h,m&&(b.dashstyle=m)),f||(b.zIndex=1),a&&(c=0),this.gridLine=n=t.path().attr(b).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(d.gridGroup));if(n&&(g=d.getPlotLinePath(l+v,n.strokeWidth()*g,a,"pass")))n[a||this.isNew?"attr": +"animate"]({d:g,opacity:c})},renderMark:function(a,c,g){var d=this.axis,m=d.options,n=d.chart.renderer,b=this.type,l=b?b+"Tick":"tick",f=d.tickSize(l),v=this.mark,t=!v,p=a.x;a=a.y;var h=u(m[l+"Width"],!b&&d.isXAxis?1:0),m=m[l+"Color"];f&&(d.opposite&&(f[0]=-f[0]),t&&(this.mark=v=n.path().addClass("highcharts-"+(b?b+"-":"")+"tick").add(d.axisGroup),d.chart.styledMode||v.attr({stroke:m,"stroke-width":h})),v[t?"attr":"animate"]({d:this.getMarkPath(p,a,f[0],v.strokeWidth()*g,d.horiz,n),opacity:c}))}, +renderLabel:function(a,p,g,d){var m=this.axis,n=m.horiz,b=m.options,l=this.label,f=b.labels,v=f.step,m=u(this.tickmarkOffset,m.tickmarkOffset),t=!0,h=a.x;a=a.y;l&&c(h)&&(l.xy=a=this.getLabelPosition(h,a,l,n,f,m,d,v),this.isFirst&&!this.isLast&&!u(b.showFirstLabel,1)||this.isLast&&!this.isFirst&&!u(b.showLastLabel,1)?t=!1:!n||f.step||f.rotation||p||0===g||this.handleOverflow(a),v&&d%v&&(t=!1),t&&c(a.y)?(a.opacity=g,l[this.isNewLabel?"attr":"animate"](a),this.isNewLabel=!1):(l.attr("y",-9999),this.isNewLabel= +!0))},render:function(c,p,g){var d=this.axis,m=d.horiz,n=this.pos,b=u(this.tickmarkOffset,d.tickmarkOffset),n=this.getPosition(m,n,b,p),b=n.x,l=n.y,d=m&&b===d.pos+d.len||!m&&l===d.pos?-1:1;g=u(g,1);this.isActive=!0;this.renderGridLine(p,g,d);this.renderMark(n,g,d);this.renderLabel(n,p,g,c);this.isNew=!1;a.fireEvent(this,"afterRender")},destroy:function(){G(this,this.axis)}}})(I);var X=function(a){var z=a.addEvent,F=a.animObject,G=a.arrayMax,h=a.arrayMin,c=a.color,r=a.correctFloat,u=a.defaultOptions, +w=a.defined,x=a.deg2rad,p=a.destroyObjectProperties,g=a.extend,d=a.fireEvent,m=a.format,n=a.getMagnitude,b=a.isArray,l=a.isNumber,f=a.isString,v=a.merge,t=a.normalizeTickInterval,H=a.objectEach,D=a.pick,A=a.removeEvent,k=a.splat,E=a.syncTimeout,C=a.Tick,y=function(){this.init.apply(this,arguments)};a.extend(y.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"}, +week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:"#666666",cursor:"default",fontSize:"11px"}},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,q){var e=q.isX,b=this;b.chart=a;b.horiz=a.inverted&&!b.isZAxis?!e:e;b.isXAxis=e;b.coll=b.coll||(e?"xAxis":"yAxis");d(this,"init",{userOptions:q});b.opposite=q.opposite;b.side=q.side||(b.horiz?b.opposite?0:2:b.opposite?1:3);b.setOptions(q);var f=this.options,l=f.type;b.labelFormatter=f.labels.formatter||b.defaultLabelFormatter; +b.userOptions=q;b.minPixelPadding=0;b.reversed=f.reversed;b.visible=!1!==f.visible;b.zoomEnabled=!1!==f.zoomEnabled;b.hasNames="category"===l||!0===f.categories;b.categories=f.categories||b.hasNames;b.names||(b.names=[],b.names.keys={});b.plotLinesAndBandsGroups={};b.isLog="logarithmic"===l;b.isDatetimeAxis="datetime"===l;b.positiveValuesOnly=b.isLog&&!b.allowNegativeLog;b.isLinked=w(f.linkedTo);b.ticks={};b.labelEdge=[];b.minorTicks={};b.plotLinesAndBands=[];b.alternateBands={};b.len=0;b.minRange= +b.userMinRange=f.minRange||f.maxZoom;b.range=f.range;b.offset=f.offset||0;b.stacks={};b.oldStacks={};b.stacksTouched=0;b.max=null;b.min=null;b.crosshair=D(f.crosshair,k(a.options.tooltip.crosshairs)[e?0:1],!1);q=b.options.events;-1===a.axes.indexOf(b)&&(e?a.axes.splice(a.xAxis.length,0,b):a.axes.push(b),a[b.coll].push(b));b.series=b.series||[];a.inverted&&!b.isZAxis&&e&&void 0===b.reversed&&(b.reversed=!0);H(q,function(a,e){z(b,e,a)});b.lin2log=f.linearToLogConverter||b.lin2log;b.isLog&&(b.val2lin= +b.log2lin,b.lin2val=b.lin2log);d(this,"afterInit")},setOptions:function(a){this.options=v(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],v(u[this.coll],a));d(this,"afterSetOptions",{userOptions:a})},defaultLabelFormatter:function(){var e=this.axis,q=this.value,b=e.chart.time,k=e.categories,f=this.dateTimeLabelFormat,d=u.lang,l=d.numericSymbols,d=d.numericSymbolMagnitude|| +1E3,g=l&&l.length,n,c=e.options.labels.format,e=e.isLog?Math.abs(q):e.tickInterval;if(c)n=m(c,this,b);else if(k)n=q;else if(f)n=b.dateFormat(f,q);else if(g&&1E3<=e)for(;g--&&void 0===n;)b=Math.pow(d,g+1),e>=b&&0===10*q%b&&null!==l[g]&&0!==q&&(n=a.numberFormat(q/b,-1)+l[g]);void 0===n&&(n=1E4<=Math.abs(q)?a.numberFormat(q,-1):a.numberFormat(q,-1,void 0,""));return n},getSeriesExtremes:function(){var a=this,q=a.chart;d(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax= +a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();a.series.forEach(function(e){if(e.visible||!q.options.chart.ignoreHiddenSeries){var b=e.options,f=b.threshold,k;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=f&&(f=null);if(a.isXAxis)b=e.xData,b.length&&(e=h(b),k=G(b),l(e)||e instanceof Date||(b=b.filter(l),e=h(b),k=G(b)),b.length&&(a.dataMin=Math.min(D(a.dataMin,b[0],e),e),a.dataMax=Math.max(D(a.dataMax,b[0],k),k)));else if(e.getExtremes(),k=e.dataMax,e=e.dataMin,w(e)&&w(k)&& +(a.dataMin=Math.min(D(a.dataMin,e),e),a.dataMax=Math.max(D(a.dataMax,k),k)),w(f)&&(a.threshold=f),!b.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});d(this,"afterGetSeriesExtremes")},translate:function(a,q,b,k,f,d){var e=this.linkedParent||this,g=1,n=0,c=k?e.oldTransA:e.transA;k=k?e.oldMin:e.min;var t=e.minPixelPadding;f=(e.isOrdinal||e.isBroken||e.isLog&&f)&&e.lin2val;c||(c=e.transA);b&&(g*=-1,n=e.len);e.reversed&&(g*=-1,n-=g*(e.sector||e.len));q?(a=(a*g+n-t)/c+k,f&&(a=e.lin2val(a))): +(f&&(a=e.val2lin(a)),a=l(k)?g*(a-k)*c+n+g*t+(l(d)?c*d:0):void 0);return a},toPixels:function(a,q){return this.translate(a,!1,!this.horiz,null,!0)+(q?0:this.pos)},toValue:function(a,q){return this.translate(a-(q?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,q,b,k,f){var e=this,g=e.chart,n=e.left,c=e.top,t,m,v,E,C=b&&g.oldChartHeight||g.chartHeight,p=b&&g.oldChartWidth||g.chartWidth,h,L=e.transB,y,A=function(a,e,q){if("pass"!==k&&aq)k?a=Math.min(Math.max(e,a),q):h=!0;return a}; +y={value:a,lineWidth:q,old:b,force:k,translatedValue:f};d(this,"getPlotLinePath",y,function(d){f=D(f,e.translate(a,null,null,b));f=Math.min(Math.max(-1E5,f),1E5);t=v=Math.round(f+L);m=E=Math.round(C-f-L);l(f)?e.horiz?(m=c,E=C-e.bottom,t=v=A(t,n,n+e.width)):(t=n,v=p-e.right,m=E=A(m,c,c+e.height)):(h=!0,k=!1);d.path=h&&!k?null:g.renderer.crispLine(["M",t,m,"L",v,E],q||1)});return y.path},getLinearTickPositions:function(a,q,b){var e,k=r(Math.floor(q/a)*a);b=r(Math.ceil(b/a)*a);var f=[],d;r(k+a)===k&& +(d=20);if(this.single)return[q];for(q=k;q<=b;){f.push(q);q=r(q+a,d);if(q===e)break;e=q}return f},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?D(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,q=a.options,b=a.tickPositions,k=a.minorTickInterval,f=[],d=a.pointRangePadding||0,l=a.min-d,d=a.max+d,g=d-l;if(g&&g/k=this.minRange,t=this.minRange,f=(t-b+q)/2,f=[q-f,D(a.min,q-f)],k&&(f[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),q=G(f),b=[q+t,D(a.max,q+t)],k&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),b=h(b),b-q=H?(p=H,C=0):b.dataMax<=H&&(u=H,E=0)),b.min=D(z,p,b.dataMin),b.max=D(G,u,b.dataMax));g&&(b.positiveValuesOnly&&!e&&0>=Math.min(b.min,D(b.dataMin,b.min))&&a.error(10,1,f),b.min=r(b.log2lin(b.min),15),b.max=r(b.log2lin(b.max),15));b.range&&w(b.max)&&(b.userMin=b.min=z=Math.max(b.dataMin,b.minFromRange()), +b.userMax=G=b.max,b.range=null);d(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(A||b.axisPointRange||b.usePercentage||v)&&w(b.min)&&w(b.max)&&(f=b.max-b.min)&&(!w(z)&&C&&(b.min-=f*C),!w(G)&&E&&(b.max+=f*E));l(k.softMin)&&!l(b.userMin)&&(b.min=Math.min(b.min,k.softMin));l(k.softMax)&&!l(b.userMax)&&(b.max=Math.max(b.max,k.softMax));l(k.floor)&&(b.min=Math.min(Math.max(b.min,k.floor),Number.MAX_VALUE));l(k.ceiling)&&(b.max=Math.max(Math.min(b.max,k.ceiling),D(b.userMax, +-Number.MAX_VALUE)));x&&w(b.dataMin)&&(H=H||0,!w(z)&&b.min=H?b.min=H:!w(G)&&b.max>H&&b.dataMax<=H&&(b.max=H));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:v&&!h&&y===b.linkedParent.options.tickPixelInterval?h=b.linkedParent.tickInterval:D(h,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,A?1:(b.max-b.min)*y/Math.max(b.len,y));m&&!e&&b.series.forEach(function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&& +b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!h&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));e=D(k.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!h&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish()); +this.setTickPositions()},setTickPositions:function(){var e=this.options,b,k=e.tickPositions;b=this.getMinorTickInterval();var f=e.tickPositioner,l=e.startOnTick,g=e.endOnTick;this.tickmarkOffset=this.categories&&"between"===e.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===b&&this.tickInterval?this.tickInterval/5:b;this.single=this.min===this.max&&w(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==e.allowDecimals);this.tickPositions=b=k&&k.slice(); +!b&&(!this.ordinalPositions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)?(b=[this.min,this.max],a.error(19,!1,this.chart)):b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,e.units),this.min,this.max,e.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()],b[0]=== +b[1]&&(b.length=1)),this.tickPositions=b,f&&(f=f.apply(this,[this.min,this.max])))&&(this.tickPositions=b=f);this.paddedTicks=b.slice(0);this.trimTicks(b,l,g);this.isLinked||(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),k||f||this.adjustTickAmount());d(this,"afterSetTickPositions")},trimTicks:function(a,b,k){var e=a[0],f=a[a.length-1],q=this.minPointOffset||0;d(this,"trimTicks");if(!this.isLinked){if(b&&-Infinity!==e)this.min=e;else for(;this.min-q>a[0];)a.shift();if(k)this.max=f;else for(;this.max+ +qb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.options,b=this.tickInterval,k=this.tickPositions,f=this.tickAmount,d=this.finalTickAmt,l=k&&k.length,g=D(this.threshold,this.softThreshold?0:null),n;if(this.hasData()){if(lf&&(this.tickInterval*=2,this.setTickPositions());if(w(d)){for(b=a=k.length;b--;)(3===d&&1===b%2||2>=d&&0q&&(b=q)),w(k)&&(fq&&(f=q))),this.displayBtn=void 0!==b|| +void 0!==f,this.setExtremes(b,f,!1,void 0,{trigger:"zoom"});a.zoomed=!0});return a.zoomed},setAxisSize:function(){var e=this.chart,b=this.options,k=b.offsets||[0,0,0,0],f=this.horiz,d=this.width=Math.round(a.relativeLength(D(b.width,e.plotWidth-k[3]+k[1]),e.plotWidth)),l=this.height=Math.round(a.relativeLength(D(b.height,e.plotHeight-k[0]+k[2]),e.plotHeight)),g=this.top=Math.round(a.relativeLength(D(b.top,e.plotTop+k[0]),e.plotHeight,e.plotTop)),b=this.left=Math.round(a.relativeLength(D(b.left,e.plotLeft+ +k[3]),e.plotWidth,e.plotLeft));this.bottom=e.chartHeight-l-g;this.right=e.chartWidth-d-b;this.len=Math.max(f?d:l,0);this.pos=f?b:g},getExtremes:function(){var a=this.isLog;return{min:a?r(this.lin2log(this.min)):this.min,max:a?r(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var e=this.isLog,b=e?this.lin2log(this.min):this.min,e=e?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=b:Infinity===a? +a=e:b>a?a=b:ee?a.align="right":195e&&(a.align="left")});return a.align},tickSize:function(a){var e=this.options,b=e[a+"Length"],k=D(e[a+"Width"],"tick"===a&&this.isXAxis?1:0),f;k&&b&&("inside"===e[a+"Position"]&&(b=-b),f=[b,k]);a={tickSize:f};d(this,"afterTickSize",a);return a.tickSize},labelMetrics:function(){var a=this.tickPositions&& +this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,k=this.tickInterval,f=k,d=this.len/(((this.categories?1:0)+this.max-this.min)/k),l,g=a.rotation,n=this.labelMetrics(),c,t=Number.MAX_VALUE,m,v=this.max-this.min,E=function(a){var b=a/(d||1),b=1v&&Infinity!==a&&Infinity!==d&&(b=Math.ceil(v/k));return r(b*k)}; +b?(m=!a.staggerLines&&!a.step&&(w(g)?[g]:d=a)c=E(Math.abs(n.h/Math.sin(x*a))),b=c+Math.abs(a/360),b(k.step||0)&&!k.rotation&&(this.staggerLines|| +1)*this.len/f||!e&&(k.style&&parseInt(k.style.width,10)||d&&d-b.spacing[3]||.33*b.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,k=this.tickPositions,d=this.ticks,l=this.options.labels,g=l&&l.style||{},n=this.horiz,c=this.getSlotWidth(),t=Math.max(1,Math.round(c-2*(l.padding||5))),m={},v=this.labelMetrics(),E=l.style&&l.style.textOverflow,C,p,h=0,y;f(l.rotation)||(m.rotation=l.rotation||0);k.forEach(function(a){(a=d[a])&&a.label&&a.label.textPxLength>h&&(h=a.label.textPxLength)}); +this.maxLabelLength=h;if(this.autoRotation)h>t&&h>v.h?m.rotation=this.labelRotation:this.labelRotation=0;else if(c&&(C=t,!E))for(p="clip",t=k.length;!n&&t--;)if(y=k[t],y=d[y].label)y.styles&&"ellipsis"===y.styles.textOverflow?y.css({textOverflow:"clip"}):y.textPxLength>c&&y.css({width:c+"px"}),y.getBBox().height>this.len/k.length-(v.h-v.f)&&(y.specificTextOverflow="ellipsis");m.rotation&&(C=h>.5*a.chartHeight?.33*a.chartHeight:h,E||(p="ellipsis"));if(this.labelAlign=l.align||this.autoLabelAlign(this.labelRotation))m.align= +this.labelAlign;k.forEach(function(a){var b=(a=d[a])&&a.label,e=g.width,k={};b&&(b.attr(m),a.shortenLabel?a.shortenLabel():C&&!e&&"nowrap"!==g.whiteSpace&&(C=this.min&&a<=this.max)k[a]||(k[a]=new C(this,a)),f&&k[a].isNew&& +k[a].render(b,!0,-1),k[a].render(b)},render:function(){var b=this,k=b.chart,f=b.options,g=b.isLog,n=b.isLinked,c=b.tickPositions,t=b.axisTitle,m=b.ticks,v=b.minorTicks,p=b.alternateBands,h=f.stackLabels,y=f.alternateGridColor,A=b.tickmarkOffset,D=b.axisLine,r=b.showAxis,x=F(k.renderer.globalAnimation),u,w;b.labelEdge.length=0;b.overlap=!1;[m,v,p].forEach(function(a){H(a,function(a){a.isActive=!1})});if(b.hasData()||n)b.minorTickInterval&&!b.categories&&b.getMinorTickPositions().forEach(function(a){b.renderMinorTick(a)}), +c.length&&(c.forEach(function(a,e){b.renderTick(a,e)}),A&&(0===b.min||b.single)&&(m[-1]||(m[-1]=new C(b,-1,null,!0)),m[-1].render(-1))),y&&c.forEach(function(e,f){w=void 0!==c[f+1]?c[f+1]+A:b.max-A;0===f%2&&er&&(!w||b<=u)&&void 0!==b&&g.push(b),b>u&&(l=!0),b=n;else r=this.lin2log(r),u=this.lin2log(u),a=w?this.getMinorTickInterval():c.tickInterval,a=h("auto"===a?null:a,this._minorAutoInterval,c.tickPixelInterval/(w?5:1)*(u-r)/((w?p/this.tickPositions.length:p)||1)),a=G(a,null,F(a)),g=this.getLinearTickPositions(a,r,u).map(this.log2lin),w||(this._minorAutoInterval=a/5);w||(this.tickInterval=a);return g};z.prototype.log2lin=function(a){return Math.log(a)/ +Math.LN10};z.prototype.lin2log=function(a){return Math.pow(10,a)}})(I);(function(a,z){var F=a.arrayMax,G=a.arrayMin,h=a.defined,c=a.destroyObjectProperties,r=a.erase,u=a.merge,w=a.pick;a.PlotLineOrBand=function(a,c){this.axis=a;c&&(this.options=c,this.id=c.id)};a.PlotLineOrBand.prototype={render:function(){a.fireEvent(this,"render");var c=this,p=c.axis,g=p.horiz,d=c.options,m=d.label,n=c.label,b=d.to,l=d.from,f=d.value,v=h(l)&&h(b),t=h(f),H=c.svgElem,D=!H,A=[],k=d.color,E=w(d.zIndex,0),C=d.events, +A={"class":"highcharts-plot-"+(v?"band ":"line ")+(d.className||"")},y={},e=p.chart.renderer,q=v?"bands":"lines";p.isLog&&(l=p.log2lin(l),b=p.log2lin(b),f=p.log2lin(f));p.chart.styledMode||(t?(A.stroke=k,A["stroke-width"]=d.width,d.dashStyle&&(A.dashstyle=d.dashStyle)):v&&(k&&(A.fill=k),d.borderWidth&&(A.stroke=d.borderColor,A["stroke-width"]=d.borderWidth)));y.zIndex=E;q+="-"+E;(k=p.plotLinesAndBandsGroups[q])||(p.plotLinesAndBandsGroups[q]=k=e.g("plot-"+q).attr(y).add());D&&(c.svgElem=H=e.path().attr(A).add(k)); +if(t)A=p.getPlotLinePath(f,H.strokeWidth());else if(v)A=p.getPlotBandPath(l,b,d);else return;D&&A&&A.length?(H.attr({d:A}),C&&a.objectEach(C,function(a,b){H.on(b,function(a){C[b].apply(c,[a])})})):H&&(A?(H.show(),H.animate({d:A})):(H.hide(),n&&(c.label=n=n.destroy())));m&&h(m.text)&&A&&A.length&&0this.max&&c>this.max;if(d&&g)for(a&&(l=d.toString()===g.toString(),b=0),a=0;at-l?t:t-l);else if(q)b[a]=Math.max(d,f+l+k>e?f:f+l);else return!1},y=function(a,e,k,f){var d;fe-n?d=!1:b[a]=fe-k/2?e-k-2:f-k/2;return d}, +e=function(a){var b=A;A=k;k=b;f=a},q=function(){!1!==C.apply(0,A)?!1!==y.apply(0,k)||f||(e(!0),q()):f?b.x=b.y=0:(e(!0),q())};(g.inverted||1y&&(l=!1);a=(k.series&&k.series.yAxis&&k.series.yAxis.pos)+(k.plotY||0);a-=p;k.isHeader&&(a=t?-v:n.plotHeight+ +v);m.push({target:a,rank:k.isHeader?1:0,size:c.tt.getBBox().height+1,point:k,x:y,tt:C})}});this.cleanSplit();f.positioner&&m.forEach(function(a){var b=f.positioner.call(d,a.tt.getBBox().width,a.size,a.point);a.x=b.x;a.align=0;a.target=b.y;a.rank=r(b.rank,a.rank)});a.distribute(m,n.plotHeight+v);m.forEach(function(a){var b=a.point,c=b.series;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:l||b.isHeader||f.positioner?a.x:b.plotX+n.plotLeft+d.distance,y:a.pos+p,anchorX:b.isHeader?b.plotX+n.plotLeft: +b.plotX+c.xAxis.pos,anchorY:b.isHeader?n.plotTop+n.plotHeight/2:b.plotY+c.yAxis.pos})})},updatePosition:function(a){var c=this.chart,d=this.getLabel(),m=(this.options.positioner||this.getPosition).call(this,d.width,d.height,a),n=a.plotX+c.plotLeft;a=a.plotY+c.plotTop;var b;this.outside&&(b=(this.options.borderWidth||0)+2*this.distance,this.renderer.setSize(d.width+b,d.height+b,!1),n+=c.pointer.chartPosition.left-m.x,a+=c.pointer.chartPosition.top-m.y);this.move(Math.round(m.x),Math.round(m.y||0), +n,a)},getDateFormat:function(a,c,d,m){var g=this.chart.time,b=g.dateFormat("%m-%d %H:%M:%S.%L",c),l,f,v={millisecond:15,second:12,minute:9,hour:6,day:3},t="millisecond";for(f in x){if(a===x.week&&+g.dateFormat("%w",c)===d&&"00:00:00.000"===b.substr(6)){f="week";break}if(x[f]>a){f=t;break}if(v[f]&&b.substr(v[f])!=="01-01 00:00:00.000".substr(v[f]))break;"week"!==f&&(t=f)}f&&(l=g.resolveDTLFormat(m[f]).main);return l},getXDateFormat:function(a,c,d){c=c.dateTimeLabelFormats;var g=d&&d.closestPointRange; +return(g?this.getDateFormat(g,a.x,d.options.startOfWeek,c):c.day)||c.year},tooltipFooterHeaderFormatter:function(c,g){var d=g?"footer":"header",m=c.series,n=m.tooltipOptions,b=n.xDateFormat,l=m.xAxis,f=l&&"datetime"===l.options.type&&h(c.key),v=n[d+"Format"];g={isFooter:g,labelConfig:c};a.fireEvent(this,"headerFormatter",g,function(a){f&&!b&&(b=this.getXDateFormat(c,n,l));f&&b&&(c.point&&c.point.tooltipDateKeys||["key"]).forEach(function(a){v=v.replace("{point."+a+"}","{point."+a+":"+b+"}")});m.chart.styledMode&& +(v=this.styledModeFormat(v));a.text=G(v,{point:c,series:m},this.chart.time)});return g.text},bodyFormatter:function(a){return a.map(function(a){var d=a.series.tooltipOptions;return(d[(a.point.formatPrefix||"point")+"Formatter"]||a.point.tooltipFormatter).call(a.point,d[(a.point.formatPrefix||"point")+"Format"]||"")})},styledModeFormat:function(a){return a.replace('style\x3d"font-size: 10px"','class\x3d"highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class\x3d"highcharts-color-{$1.colorIndex}"')}}})(I); +(function(a){var z=a.addEvent,F=a.attr,G=a.charts,h=a.color,c=a.css,r=a.defined,u=a.extend,w=a.find,x=a.fireEvent,p=a.isNumber,g=a.isObject,d=a.offset,m=a.pick,n=a.splat,b=a.Tooltip;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,f){this.options=f;this.chart=a;this.runChartClick=f.chart.events&&!!f.chart.events.click;this.pinchDown=[];this.lastValidTouch={};b&&(a.tooltip=new b(a,f.tooltip),this.followTouchMove=m(f.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b= +this.chart,d=b.options.chart,l=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(l=m(d.pinchType,l));this.zoomX=a=/x/.test(l);this.zoomY=l=/y/.test(l);this.zoomHor=a&&!b||l&&b;this.zoomVert=l&&!b||a&&b;this.hasZoom=a||l},normalize:function(a,b){var f;f=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=d(this.chart.container));return u(a,{chartX:Math.round(f.pageX-b.left),chartY:Math.round(f.pageY-b.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]}; +this.chart.axes.forEach(function(f){b[f.isXAxis?"xAxis":"yAxis"].push({axis:f,value:f.toValue(a[f.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,b,d){var f;a.forEach(function(a){var l=!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(d,l);if((l=g(a,!0))&&!(l=!g(f,!0)))var l=f.distX-a.distX,c=f.dist-a.dist,k=(a.series.group&&a.series.group.zIndex)-(f.series.group&&f.series.group.zIndex),l=0<(0!==l&&b?l:0!==c?c:0!==k?k:f.series.index>a.series.index? +-1:1);l&&(f=a)});return f},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var f=a.series,d=f.xAxis,f=f.yAxis,l=m(a.clientX,a.plotX),c=a.shapeArgs;if(d&&f)return b?{chartX:d.len+d.pos-l,chartY:f.len+f.pos-a.plotY}:{chartX:l+d.pos,chartY:a.plotY+f.pos};if(c&&c.x&&c.y)return{chartX:c.x,chartY:c.y}},getHoverData:function(a,b,d,c,n,h){var f,k=[];c=!(!c||!a);var l=b&&!b.stickyTracking?[b]:d.filter(function(a){return a.visible&& +!(!n&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&a.stickyTracking});b=(f=c?a:this.findNearestKDPoint(l,n,h))&&f.series;f&&(n&&!b.noSharedTooltip?(l=d.filter(function(a){return a.visible&&!(!n&&a.directTouch)&&m(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),l.forEach(function(a){var b=w(a.points,function(a){return a.x===f.x&&!a.isNull});g(b)&&(a.chart.isBoosting&&(b=a.getPoint(b)),k.push(b))})):k.push(f));return{hoverPoint:f,hoverSeries:b,hoverPoints:k}},runPointActions:function(b, +f){var d=this.chart,c=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,l=c?c.shared:!1,g=f||d.hoverPoint,n=g&&g.series||d.hoverSeries,n=this.getHoverData(g,n,d.series,"touchmove"!==b.type&&(!!f||n&&n.directTouch&&this.isDirectTouch),l,b),k,g=n.hoverPoint;k=n.hoverPoints;f=(n=n.hoverSeries)&&n.tooltipOptions.followPointer;l=l&&n&&!n.noSharedTooltip;if(g&&(g!==d.hoverPoint||c&&c.isHidden)){(d.hoverPoints||[]).forEach(function(a){-1===k.indexOf(a)&&a.setState()});(k||[]).forEach(function(a){a.setState("hover")}); +if(d.hoverSeries!==n)n.onMouseOver();d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");if(!g.series)return;g.firePointEvent("mouseOver");d.hoverPoints=k;d.hoverPoint=g;c&&c.refresh(l?k:g,b)}else f&&c&&!c.isHidden&&(g=c.getAnchor([{}],b),c.updatePosition({plotX:g[0],plotY:g[1]}));this.unDocMouseMove||(this.unDocMouseMove=z(d.container.ownerDocument,"mousemove",function(b){var k=G[a.hoverChartIndex];if(k)k.pointer.onDocumentMouseMove(b)}));d.axes.forEach(function(f){var d=m(f.crosshair.snap,!0), +c=d?a.find(k,function(a){return a.series[f.coll]===f}):void 0;c||!d?f.drawCrosshair(b,c):f.hideCrosshair()})},reset:function(a,b){var f=this.chart,d=f.hoverSeries,c=f.hoverPoint,l=f.hoverPoints,g=f.tooltip,k=g&&g.shared?l:c;a&&k&&n(k).forEach(function(b){b.series.isCartesian&&void 0===b.plotX&&(a=!1)});if(a)g&&k&&k.length&&(g.refresh(k),g.shared&&l?l.forEach(function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&& +a.series.yAxis.drawCrosshair(null,a))}):c&&(c.setState(c.state,!0),f.axes.forEach(function(a){a.crosshair&&a.drawCrosshair(null,c)})));else{if(c)c.onMouseOut();l&&l.forEach(function(a){a.setState()});if(d)d.onMouseOut();g&&g.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());f.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=f.hoverPoints=f.hoverPoint=null}},scaleGroups:function(a,b){var f=this.chart,d;f.series.forEach(function(c){d=a||c.getPlotBox();c.xAxis&&c.xAxis.zoomEnabled&& +c.group&&(c.group.attr(d),c.markerGroup&&(c.markerGroup.attr(d),c.markerGroup.clip(b?f.clipRect:null)),c.dataLabelsGroup&&c.dataLabelsGroup.attr(d))});f.clipRect.attr(b||f.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,d=b.options.chart,c=a.chartX,l=a.chartY,g=this.zoomHor,n=this.zoomVert,k=b.plotLeft,m=b.plotTop,C=b.plotWidth,y=b.plotHeight,e,q=this.selectionMarker, +p=this.mouseDownX,r=this.mouseDownY,u=d.panKey&&a[d.panKey+"Key"];q&&q.touch||(ck+C&&(c=k+C),lm+y&&(l=m+y),this.hasDragged=Math.sqrt(Math.pow(p-c,2)+Math.pow(r-l,2)),10k.max&&(h=k.max-t,L=!0);L?(y-=.8*(y-g[n][0]),E||(q-=.8*(q-g[n][1])),u()):g[n]=[y,q];A||(p[n]=r-v,p[f]=t);p=A?1/D:D;x[f]=t;x[n]=h;w[A?a?"scaleY":"scaleX":"scale"+b]=D;w["translate"+b]=p*v+(y-p*C)},pinch:function(a){var c= +this,u=c.chart,w=c.pinchDown,x=a.touches,p=x.length,g=c.lastValidTouch,d=c.hasZoom,m=c.selectionMarker,n={},b=1===p&&(c.inClass(a.target,"highcharts-tracker")&&u.runTrackerClick||c.runChartClick),l={};1b-6&&lh?this.maxItemWidth:a.itemWidth;f&&this.itemX-d+b>h&&(this.itemX=d,this.itemY+=n+this.lastLineHeight+g,this.lastLineHeight=0);this.lastItemY=n+this.itemY+g;this.lastLineHeight=Math.max(c,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=b:(this.itemY+=n+c+g,this.lastLineHeight=c);this.offsetWidth=this.widthOption||Math.max((f?this.itemX-d-(a.checkbox?0:m):b)+d,this.offsetWidth)},getAllItems:function(){var a= +[];this.chart.series.forEach(function(b){var d=b&&b.options;b&&x(d.showInLegend,h(d.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===d.legendType?b.data:b)))});c(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,b){var d=this.chart,f=this.options,c=this.getAlignment();c&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/, +/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(g,l){g.test(c)&&!h(a[l])&&(d[u[l]]=Math.max(d[u[l]],d.legend[(l+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][l]*f[l%2?"x":"y"]+x(f.margin,12)+b[l]+(0===l&&void 0!==d.options.title.margin?d.titleOffset+d.options.title.margin:0)))})},proximatePositions:function(){var d=this.chart,b=[],c="left"===this.options.align;this.allItems.forEach(function(f){var g,l;g=c;f.xAxis&&f.points&&(f.xAxis.options.reversed&&(g=!g),g=a.find(g?f.points:f.points.slice(0).reverse(), +function(b){return a.isNumber(b.plotY)}),l=f.legendGroup.getBBox().height,b.push({target:f.visible?(g?g.plotY:f.xAxis.height)-.3*l:d.plotHeight,size:l,item:f}))},this);a.distribute(b,d.plotHeight);b.forEach(function(a){a.item._legendItemPos[1]=d.plotTop-d.spacing[0]+a.pos})},render:function(){var d=this.chart,b=d.renderer,c=this.group,f,m,h,p=this.box,r=this.options,A=this.padding;this.itemX=A;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=a.relativeLength(r.width, +d.spacingBox.width-A);m=d.spacingBox.width-2*A-r.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(m/=2);this.maxLegendWidth=this.widthOption||m;c||(this.group=c=b.g("legend").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(c),this.scrollGroup=b.g().add(this.contentGroup));this.renderTitle();f=this.getAllItems();g(f,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});r.reversed&&f.reverse();this.allItems=f;this.display= +m=!!f.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;f.forEach(this.renderItem,this);f.forEach(this.layoutItem,this);f=(this.widthOption||this.offsetWidth)+A;h=this.lastItemY+this.lastLineHeight+this.titleHeight;h=this.handleOverflow(h);h+=A;p||(this.box=p=b.rect().addClass("highcharts-legend-box").attr({r:r.borderRadius}).add(c),p.isNew=!0);d.styledMode||p.attr({stroke:r.borderColor,"stroke-width":r.borderWidth||0,fill:r.backgroundColor||"none"}).shadow(r.shadow); +0g&&!1!==E.enabled?(this.clipHeight=h=Math.max(g-20-this.titleHeight-m,0),this.currentPage=x(this.currentPage,1),this.fullHeight=a,r.forEach(function(a,b){var e=a._legendItemPos[1],d=Math.round(a.legendItem.getBBox().height),k=q.length;if(!k||e-q[k-1]>h&&(p||e)!==q[k-1])q.push(p||e),k++;a.pageIx=k-1;p&&(r[b-1].pageIx=k-1);b===r.length-1&&e+d-q[k-1]>h&&e!==p&&(q.push(e),a.pageIx=k);e!==p&&(p=e)}),k||(k=b.clipRect=f.clipRect(0,m,9999,0),b.contentGroup.clip(k)), +u(h),e||(this.nav=e=f.g().attr({zIndex:1}).add(this.group),this.up=f.symbol("triangle",0,0,y,y).on("click",function(){b.scroll(-1,C)}).add(e),this.pager=f.text("",15,10).addClass("highcharts-legend-navigation"),d.styledMode||this.pager.css(E.style),this.pager.add(e),this.down=f.symbol("triangle-down",0,0,y,y).on("click",function(){b.scroll(1,C)}).add(e)),b.scroll(0),a=g):e&&(u(),this.nav=e.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,b){var d=this.pages, +f=d.length;a=this.currentPage+a;var c=this.clipHeight,g=this.options.navigation,m=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof d[0],"string"===g?c.name=d[0]:"number"===g&&(c.x=d[0]),h++);t=b.value;)b=c[++g];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=b&&b.color&&!this.options.color?b.color:this.nonZonedColor;return b},destroy:function(){var a=this.series.chart,c=a.hoverPoints,h;a.pointCount--;c&&(this.setState(),G(c,this),c.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel||this.dataLabels)g(this),this.destroyElements(); +this.legendItem&&a.legend.destroyItem(this);for(h in this)this[h]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],c,g=6;g--;)c=a[g],this[c]&&(this[c]=this[c].destroy());this.dataLabels&&(this.dataLabels.forEach(function(a){a.element&&a.destroy()}),delete this.dataLabels);this.connectors&&(this.connectors.forEach(function(a){a.element&&a.destroy()}),delete this.connectors)},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color, +colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var d=this.series,g=d.tooltipOptions,b=w(g.valueDecimals,""),l=g.valuePrefix||"",f=g.valueSuffix||"";d.chart.styledMode&&(a=d.chart.tooltip.styledModeFormat(a));(d.pointArrayMap||["y"]).forEach(function(d){d="{point."+d;if(l||f)a=a.replace(RegExp(d+"}","g"),l+d+"}"+f);a=a.replace(RegExp(d+"}","g"),d+":,."+b+"f}")});return c(a, +{point:this,series:this.series},d.chart.time)},firePointEvent:function(a,c,g){var b=this,d=this.series.options;(d.point.events[a]||b.options&&b.options.events&&b.options.events[a])&&this.importEvents();"click"===a&&d.allowPointSelect&&(g=function(a){b.select&&b.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});h(this,a,c,g)},visible:!0}})(I);(function(a){var z=a.addEvent,F=a.animObject,G=a.arrayMax,h=a.arrayMin,c=a.correctFloat,r=a.defaultOptions,u=a.defaultPlotOptions,w=a.defined,x=a.erase,p=a.extend, +g=a.fireEvent,d=a.isArray,m=a.isNumber,n=a.isString,b=a.merge,l=a.objectEach,f=a.pick,v=a.removeEvent,t=a.splat,H=a.SVGElement,D=a.syncTimeout,A=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}}, +point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"}, +{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){g(this,"init",{options:b});var k=this,d,e=a.series,c;k.chart=a;k.options=b=k.setOptions(b);k.linkedSeries=[];k.bindAxes();p(k,{name:b.name,state:"",visible:!1!==b.visible,selected:!0===b.selected});d=b.events;l(d,function(a,b){z(k,b,a)});if(d&&d.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick= +!0;k.getColor();k.getSymbol();k.parallelArrays.forEach(function(a){k[a+"Data"]=[]});k.setData(b.data,!1);k.isCartesian&&(a.hasCartesianSeries=!0);e.length&&(c=e[e.length-1]);k._i=f(c&&c._i,-1)+1;a.orderSeries(this.insert(e));g(this,"afterInit")},insert:function(a){var b=this.options.index,k;if(m(b)){for(k=a.length;k--;)if(b>=f(a[k].options.index,a[k]._i)){a.splice(k+1,0,this);break}-1===k&&a.unshift(this);k+=1}else a.push(this);return f(k,a.length-1)},bindAxes:function(){var b=this,d=b.options,f= +b.chart,c;g(this,"bindAxes",null,function(){(b.axisTypes||[]).forEach(function(e){f[e].forEach(function(a){c=a.options;if(d[e]===c.index||void 0!==d[e]&&d[e]===c.id||void 0===d[e]&&0===c.index)b.insert(a.series),b[e]=a,a.isDirty=!0});b[e]||b.optionalAxis===e||a.error(18,!0,f)})})},updateParallelArrays:function(a,b){var k=a.series,d=arguments,e=m(b)?function(e){var d="y"===e&&k.toYData?k.toYData(a):a[e];k[e+"Data"][b]=d}:function(a){Array.prototype[b].apply(k[a+"Data"],Array.prototype.slice.call(d, +2))};k.parallelArrays.forEach(e)},autoIncrement:function(){var a=this.options,b=this.xIncrement,d,c=a.pointIntervalUnit,e=this.chart.time,b=f(b,a.pointStart,0);this.pointInterval=d=f(this.pointInterval,a.pointInterval,1);c&&(a=new e.Date(b),"day"===c?e.set("Date",a,e.get("Date",a)+d):"month"===c?e.set("Month",a,e.get("Month",a)+d):"year"===c&&e.set("FullYear",a,e.get("FullYear",a)+d),d=a.getTime()-b);this.xIncrement=b+d;return b},setOptions:function(a){var d=this.chart,k=d.options,c=k.plotOptions, +e=(d.userOptions||{}).plotOptions||{},q=c[this.type],l=d.styledMode;this.userOptions=b(a);d=b(q,c.series,a);this.tooltipOptions=b(r.tooltip,r.plotOptions.series&&r.plotOptions.series.tooltip,r.plotOptions[this.type].tooltip,k.tooltip.userOptions,c.series&&c.series.tooltip,c[this.type].tooltip,a.tooltip);this.stickyTracking=f(a.stickyTracking,e[this.type]&&e[this.type].stickyTracking,e.series&&e.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?!0:d.stickyTracking);null===q.marker&& +delete d.marker;this.zoneAxis=d.zoneAxis;a=this.zones=(d.zones||[]).slice();!d.negativeColor&&!d.negativeFillColor||d.zones||(k={value:d[this.zoneAxis+"Threshold"]||d.threshold||0,className:"highcharts-negative"},l||(k.color=d.negativeColor,k.fillColor=d.negativeFillColor),a.push(k));a.length&&w(a[a.length-1].value)&&a.push(l?{}:{color:this.color,fillColor:this.fillColor});g(this,"afterSetOptions",{options:d});return d},getName:function(){return f(this.options.name,"Series "+(this.index+1))},getCyclic:function(a, +b,d){var k,e=this.chart,c=this.userOptions,g=a+"Index",l=a+"Counter",m=d?d.length:f(e.options.chart[a+"Count"],e[a+"Count"]);b||(k=f(c[g],c["_"+g]),w(k)||(e.series.length||(e[l]=0),c["_"+g]=k=e[l]%m,e[l]+=1),d&&(b=d[k]));void 0!==k&&(this[g]=k);this[a]=b},getColor:function(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||u[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol", +this.options.marker.symbol,this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,updateData:function(b){var d=this.options,k=this.points,f=[],e,c,g,l=this.requireSorting;this.xIncrement=null;b.forEach(function(b){var c,q,h;c=a.defined(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b)||{};h=c.x;if((c=c.id)||m(h))c&&(q=(q=this.chart.get(c))&&q.index),void 0===q&&m(h)&&(q=this.xData.indexOf(h,g)),-1===q||void 0===q||k[q].touched?f.push(b):b!==d.data[q]?(k[q].update(b, +!1,null,!1),k[q].touched=!0,l&&(g=q+1)):k[q]&&(k[q].touched=!0),e=!0},this);if(e)for(b=k.length;b--;)c=k[b],c.touched||c.remove(!1),c.touched=!1;else if(b.length===k.length)b.forEach(function(a,b){k[b].update&&a!==d.data[b]&&k[b].update(a,!1,null,!1)});else return!1;f.forEach(function(a){this.addPoint(a,!1)},this);return!0},setData:function(b,c,g,l){var e=this,k=e.points,h=k&&k.length||0,t,E=e.options,p=e.chart,v=null,C=e.xAxis,y=E.turboThreshold,r=this.xData,A=this.yData,u=(t=e.pointArrayMap)&&t.length, +w=E.keys,D=0,x=1,H;b=b||[];t=b.length;c=f(c,!0);!1!==l&&t&&h&&!e.cropped&&!e.hasGroupedData&&e.visible&&!e.isSeriesBoosting&&(H=this.updateData(b));if(!H){e.xIncrement=null;e.colorCounter=0;this.parallelArrays.forEach(function(a){e[a+"Data"].length=0});if(y&&t>y){for(g=0;null===v&&gm||this.forceCrop)&&(d[f-1]A?(d=[],k=[]):this.yData&&(d[0]A)&&(e=this.cropData(this.xData,this.yData,r,A),d=e.xData,k=e.yData,e= +e.start,c=!0));for(m=d.length||1;--m;)f=p?h(d[m])-h(d[m-1]):d[m]-d[m-1],0f&&v&&(a.error(15,!1,this.chart),v=!1);this.cropped=c;this.cropStart=e;this.processedXData=d;this.processedYData=k;this.closestPointRange=g},cropData:function(a,b,d,c,e){var k=a.length,g=0,l=k,m;e=f(e,this.cropShoulder,1);for(m=0;m=d){g=Math.max(0,m-e);break}for(d=m;dc){l=d+e;break}return{xData:a.slice(g,l),yData:b.slice(g,l),start:g,end:l}},generatePoints:function(){var a= +this.options,b=a.data,d=this.data,f,e=this.processedXData,c=this.processedYData,l=this.pointClass,m=e.length,h=this.cropStart||0,n,v=this.hasGroupedData,a=a.keys,r,A=[],u;d||v||(d=[],d.length=b.length,d=this.data=d);a&&v&&(this.options.keys=!1);for(u=0;u=l&&(k[A-v]||p)<=n,t&&p)if(t=r.length)for(;t--;)"number"===typeof r[t]&&(e[c++]=r[t]);else e[c++]=r;this.dataMin=h(e);this.dataMax=G(e);g(this,"afterGetExtremes")},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,d=this.xAxis,l=d.categories,e=this.yAxis,q=this.points,h=q.length,n=!!this.modifyValue,t,p=this.pointPlacementToXValue(),v=m(p),r=a.threshold, +A=a.startFromThreshold?r:0,u,D,x,H,z=this.zoneAxis||"y",G=Number.MAX_VALUE;for(t=0;t=Q&&(F.isNull=!0);F.plotX=u=c(Math.min(Math.max(-1E5,d.translate(I,0,0,0,1,p,"flags"===this.type)),1E5));b&&this.visible&&!F.isNull&&M&&M[I]&&(H=this.getStackIndicator(H,I,this.index),V=M[I],Q=V.points[H.key],D=Q[0],Q=Q[1],D===A&&H.key===M[I].base&&(D=f(m(r)&&r,e.min)),e.positiveValuesOnly&& +0>=D&&(D=null),F.total=F.stackTotal=V.total,F.percentage=V.total&&F.y/V.total*100,F.stackY=Q,V.setOffset(this.pointXOffset||0,this.barW||0));F.yBottom=w(D)?Math.min(Math.max(-1E5,e.translate(D,0,1,0,1)),1E5):null;n&&(Q=this.modifyValue(Q,F));F.plotY=D="number"===typeof Q&&Infinity!==Q?Math.min(Math.max(-1E5,e.translate(Q,0,1,0,1)),1E5):void 0;F.isInside=void 0!==D&&0<=D&&D<=e.len&&0<=u&&u<=d.len;F.clientX=v?c(d.translate(I,0,0,0,1,p)):u;F.negative=F[z]<(a[z+"Threshold"]||r||0);F.category=l&&void 0!== +l[F.x]?l[F.x]:F.x;F.isNull||(void 0!==x&&(G=Math.min(G,Math.abs(u-x))),x=u);F.zone=this.zones.length&&F.getZone()}this.closestPointRangePx=G;g(this,"afterTranslate")},getValidPoints:function(a,b){var d=this.chart;return(a||this.points||[]).filter(function(a){return b&&!d.isInsidePlot(a.plotX,a.plotY,d.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,d=this.options,f=b.renderer,e=b.inverted,k=this.clipBox,c=k||b.clipBox,g=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,c.height, +d.xAxis,d.yAxis].join(),l=b[g],m=b[g+"m"];l||(a&&(c.width=0,e&&(c.x=b.plotSizeX),b[g+"m"]=m=f.clipRect(e?b.plotSizeX+99:-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[g]=l=f.clipRect(c),l.count={length:0});a&&!l.count[this.index]&&(l.count[this.index]=!0,l.count.length+=1);!1!==d.clip&&(this.group.clip(a||k?l:b.clipRect),this.markerGroup.clip(m),this.sharedClipKey=g);a||(l.count[this.index]&&(delete l.count[this.index],--l.count.length),0===l.count.length&&g&&b[g]&&(k||(b[g]=b[g].destroy()), +b[g+"m"]&&(b[g+"m"]=b[g+"m"].destroy())))},animate:function(a){var b=this.chart,d=F(this.options.animation),f;a?this.setClip(d):(f=this.sharedClipKey,(a=b[f])&&a.animate({width:b.plotSizeX,x:0},d),b[f+"m"]&&b[f+"m"].animate({width:b.plotSizeX+99,x:0},d),this.animate=null)},afterAnimate:function(){this.setClip();g(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,d,c,e,g,l=this.options.marker,m,h,n,t=this[this.specialGroup]||this.markerGroup;d=this.xAxis; +var p,v=f(l.enabled,!d||d.isRadial?!0:null,this.closestPointRangePx>=l.enabledThreshold*l.radius);if(!1!==l.enabled||this._hasPointMarkers)for(d=0;dc&&b.shadow)));g&&(g.startX=d.xMap,g.isArea=d.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(b,d){d=["zone-graph-"+d,"highcharts-graph highcharts-zone-graph-"+d+" "+(b.className||"")];this.chart.styledMode||d.push(b.color||this.color,b.dashStyle||this.options.dashStyle);a.push(d)}, +this);return a},applyZones:function(){var a=this,b=this.chart,d=b.renderer,c=this.zones,e,g,l=this.clips||[],m,h=this.graph,n=this.area,t=Math.max(b.chartWidth,b.chartHeight),p=this[(this.zoneAxis||"y")+"Axis"],v,r,A=b.inverted,u,w,D,x,H=!1;c.length&&(h||n)&&p&&void 0!==p.min&&(r=p.reversed,u=p.horiz,h&&!this.showLine&&h.hide(),n&&n.hide(),v=p.getExtremes(),c.forEach(function(c,k){e=r?u?b.plotWidth:0:u?0:p.toPixels(v.min)||0;e=Math.min(Math.max(f(g,e),0),t);g=Math.min(Math.max(Math.round(p.toPixels(f(c.value, +v.max),!0)||0),0),t);H&&(e=g=p.toPixels(v.max));w=Math.abs(e-g);D=Math.min(e,g);x=Math.max(e,g);p.isXAxis?(m={x:A?x:D,y:0,width:w,height:t},u||(m.x=b.plotHeight-m.x)):(m={x:0,y:A?x:D,width:t,height:w},u&&(m.y=b.plotWidth-m.y));A&&d.isVML&&(m=p.isXAxis?{x:0,y:r?D:x,height:m.width,width:b.chartWidth}:{x:m.y-b.plotLeft-b.spacingBox.x,y:0,width:m.height,height:b.chartHeight});l[k]?l[k].animate(m):(l[k]=d.clipRect(m),h&&a["zone-graph-"+k].clip(l[k]),n&&a["zone-area-"+k].clip(l[k]));H=c.value>v.max;a.resetZones&& +0===g&&(g=void 0)}),this.clips=l)},invertGroups:function(a){function b(){["group","markerGroup"].forEach(function(b){d[b]&&(c.renderer.isVML&&d[b].attr({width:d.yAxis.len,height:d.xAxis.len}),d[b].width=d.yAxis.len,d[b].height=d.xAxis.len,d[b].invert(a))})}var d=this,c=d.chart,e;d.xAxis&&(e=z(c,"resize",b),z(d,"destroy",e),b(a),d.invertGroups=b)},plotGroup:function(a,b,d,c,e){var f=this[a],k=!f;k&&(this[a]=f=this.chart.renderer.g().attr({zIndex:c||.1}).add(e));f.addClass("highcharts-"+b+" highcharts-series-"+ +this.index+" highcharts-"+this.type+"-series "+(w(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(f.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);f.attr({visibility:d})[k?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,d=this.yAxis;a.inverted&&(b=d,d=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:d?d.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,d,c= +a.options,e=!!a.animate&&b.renderer.isSVG&&F(c.animation).duration,f=a.visible?"inherit":"hidden",l=c.zIndex,m=a.hasRendered,h=b.seriesGroup,n=b.inverted;g(this,"render");d=a.plotGroup("group","series",f,l,h);a.markerGroup=a.plotGroup("markerGroup","markers",f,l,h);e&&a.animate(!0);d.inverted=a.isCartesian?n:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(n); +!1===c.clip||a.sharedClipKey||m||d.clip(b.clipRect);e&&a.animate();m||(a.animationTimeout=D(function(){a.afterAnimate()},e));a.isDirty=!1;a.hasRendered=!0;g(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,d=this.group,c=this.xAxis,e=this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}),d.animate({translateX:f(c&&c.left,a.plotLeft),translateY:f(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX", +"plotY"],searchPoint:function(a,b){var d=this.xAxis,c=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?d.len-a.chartY+d.pos:a.chartX-d.pos,plotY:e?c.len-a.chartX+c.pos:a.chartY-c.pos},b,a)},buildKDTree:function(a){function b(a,c,f){var e,k;if(k=a&&a.length)return e=d.kdAxisArray[c%f],a.sort(function(a,b){return a[e]-b[e]}),k=Math.floor(k/2),{point:a[k],left:b(a.slice(0,k),c+1,f),right:b(a.slice(k+1),c+1,f)}}this.buildingKdTree=!0;var d=this,c=-1h?"left":"right";n=0>h?"right":"left";b[q]&& +(q=c(a,b[q],d+1,l),t=q[g]p;)v--;this.updateParallelArrays(h,"splice",v,0,0);this.updateParallelArrays(h,v);g&&h.name&&(g[p]=h.name); +m.splice(v,0,a);n&&(this.data.splice(v,0,null),this.processData());"point"===f.legendType&&this.generatePoints();d&&(e[0]&&e[0].remove?e[0].remove(!1):(e.shift(),this.updateParallelArrays(h,"shift"),m.shift()));this.isDirtyData=this.isDirty=!0;b&&k.redraw(c)},removePoint:function(a,b,d){var c=this,f=c.data,e=f[a],k=c.points,g=c.chart,m=function(){k&&k.length===f.length&&k.splice(a,1);f.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(e||{series:c},"splice",a,1);e&&e.destroy();c.isDirty= +!0;c.isDirtyData=!0;b&&g.redraw()};H(d,g);b=l(b,!0);e?e.firePointEvent("remove",null,m):m()},remove:function(a,b,d){function c(){f.destroy();f.remove=null;e.isDirtyLegend=e.isDirtyBox=!0;e.linkSeries();l(a,!0)&&e.redraw(b)}var f=this,e=f.chart;!1!==d?p(f,"remove",null,c):c()},update:function(b,d){b=a.cleanRecursively(b,this.userOptions);var c=this,f=c.chart,k=c.userOptions,e=c.initialType||c.type,g=b.type||k.type||f.options.chart.type,m=t[e].prototype,h,v=["group","markerGroup","dataLabelsGroup"], +r=["navigatorSeries","baseSeries"],u=c.finishedAnimating&&{animation:!1},w=["data","name","turboThreshold"],A=Object.keys(b),D=0a&&x>r?(x=Math.max(a,r),g=2*r-x):xh&&g>r?(g=Math.max(h,r),x=2*r-g):g=Math.abs(d)&&.5a.closestPointRange*a.xAxis.transA,n=a.borderWidth=u(c.borderWidth,n?0:1),b=a.yAxis,l=c.threshold,f=a.translatedThreshold=b.getThreshold(l),v=u(c.minPointLength,5),t=a.getColumnMetrics(),p=t.width,r=a.barW=Math.max(p,1+2*n),A=a.pointXOffset=t.offset;d.inverted&&(f-=.5);c.pointPadding&&(r=Math.ceil(r));w.prototype.translate.apply(a);a.points.forEach(function(c){var g=u(c.yBottom,f),k=999+Math.abs(g),m=p,k=Math.min(Math.max(-k,c.plotY),b.len+k),e=c.plotX+A,n=r, +t=Math.min(k,g),w,D=Math.max(k,g)-t;v&&Math.abs(D)v?g-v:f-(w?v:0));h(c.options.pointWidth)&&(m=n=Math.ceil(c.options.pointWidth),e-=Math.round((m-p)/2));c.barX=e;c.pointWidth=m;c.tooltipPos=d.inverted?[b.len+b.pos-d.plotLeft-k,a.xAxis.len-e-n/2,D]:[e+n/2,k+b.pos-d.plotTop,D];c.shapeType=c.shapeType||"rect";c.shapeArgs=a.crispCol.apply(a,c.isNull?[e,f,n,0]:[e,t,n,D])})},getSymbol:a.noop, +drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,d){var c=this.options,g,b=this.pointAttrToOptions||{};g=b.stroke||"borderColor";var h=b["stroke-width"]||"borderWidth",f=a&&a.color||this.color,v=a&&a[g]||c[g]||this.color||f,t=a&&a[h]||c[h]||this[h]||0,b=c.dashStyle;a&&this.zones.length&&(f=a.getZone(),f=a.options.color||f&&f.color||this.color);d&&(a=r(c.states[d],a.options.states&& +a.options.states[d]||{}),d=a.brightness,f=a.color||void 0!==d&&F(f).brighten(a.brightness).get()||f,v=a[g]||v,t=a[h]||t,b=a.dashStyle||b);g={fill:f,stroke:v,"stroke-width":t};b&&(g.dashstyle=b);return g},drawPoints:function(){var a=this,d=this.chart,h=a.options,n=d.renderer,b=h.animationLimit||250,l;a.points.forEach(function(f){var g=f.graphic,m=g&&d.pointCountg;++g)d=x[g],a=2>g||2===g&&/%$/.test(d),x[g]=h(d,[w,r,p,x[2]][g])+(a?u:0);x[3]>x[2]&&(x[3]=x[2]);return x},getStartAndEndRadians:function(a,h){a=F(a)?a:0;h=F(h)&&h>a&&360>h-a?h:a+360;return{start:z*(a+-90),end:z*(h+-90)}}}})(I);(function(a){var z=a.addEvent,F=a.CenteredSeriesMixin,G=a.defined,h=a.extend,c=F.getStartAndEndRadians,r=a.noop,u=a.pick,w=a.Point,x=a.Series,p=a.seriesType,g=a.setAnimation;p("pie","line",{center:[null, +null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0,connectorShape:"fixedOffset",crookDistance:"70%"},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var d=this,c=d.points,b=d.startAngleRad;a||(c.forEach(function(a){var c=a.graphic,g=a.shapeArgs;c&&(c.attr({r:a.startR||d.center[3]/2,start:b,end:b}),c.animate({r:g.r,start:g.start,end:g.end},d.options.animation))}),d.animate=null)},updateTotals:function(){var a,c=0,g=this.points,b=g.length,h,f=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?p-=2*Math.PI:p<-Math.PI/2&&(p+=2*Math.PI);e.slicedTranslation={translateX:Math.round(Math.cos(p)*b),translateY:Math.round(Math.sin(p)*b)};A=Math.cos(p)*a[2]/2;k=Math.sin(p)*a[2]/2;e.tooltipPos=[a[0]+.7*A,a[1]+.7*k];e.half=p<-Math.PI/2||p>Math.PI/2?1:0;e.angle=p;f=Math.min(h,e.labelDistance/5);e.labelPosition={natural:{x:a[0]+A+Math.cos(p)*e.labelDistance,y:a[1]+k+Math.sin(p)* +e.labelDistance},"final":{},alignment:0>e.labelDistance?"center":e.half?"right":"left",connectorPosition:{breakAt:{x:a[0]+A+Math.cos(p)*f,y:a[1]+k+Math.sin(p)*f},touchingSliceAt:{x:a[0]+A,y:a[1]+k}}}}},drawGraph:null,drawPoints:function(){var a=this,c=a.chart,g=c.renderer,b,l,f,p,t=a.options.shadow;!t||a.shadowGroup||c.styledMode||(a.shadowGroup=g.g("shadow").add(a.group));a.points.forEach(function(d){l=d.graphic;if(d.isNull)l&&(d.graphic=l.destroy());else{p=d.shapeArgs;b=d.getTranslate();if(!c.styledMode){var m= +d.shadowGroup;t&&!m&&(m=d.shadowGroup=g.g("shadow").add(a.shadowGroup));m&&m.attr(b);f=a.pointAttribs(d,d.selected&&"select")}l?(l.setRadialReference(a.center),c.styledMode||l.attr(f),l.animate(h(p,b))):(d.graphic=l=g[d.shapeType](p).setRadialReference(a.center).attr(b).add(a.group),c.styledMode||l.attr(f).attr({"stroke-linejoin":"round"}).shadow(t,m));l.attr({visibility:d.visible?"inherit":"hidden"});l.addClass(d.getClassName())}})},searchPoint:r,sortByAngle:function(a,c){a.sort(function(a,b){return void 0!== +a.angle&&(b.angle-a.angle)*c})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:F.getCenter,getSymbol:r},{init:function(){w.prototype.init.apply(this,arguments);var a=this,c;a.name=u(a.name,"Slice");c=function(c){a.slice("select"===c.type)};z(a,"select",c);z(a,"unselect",c);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,c){var d=this,b=d.series,g=b.chart,f=b.options.ignoreHiddenPoint;c=u(c,f);a!==d.visible&&(d.visible=d.options.visible=a=void 0=== +a?!d.visible:a,b.options.data[b.data.indexOf(d)]=d.options,["graphic","dataLabel","connector","shadowGroup"].forEach(function(b){if(d[b])d[b][a?"show":"hide"](!0)}),d.legendItem&&g.legend.colorizeItem(d,a),a||"hover"!==d.state||d.setState(""),f&&(b.isDirty=!0),c&&g.redraw())},slice:function(a,c,h){var b=this.series;g(h,b.chart);u(c,!0);this.sliced=this.options.sliced=G(a)?a:!this.sliced;b.options.data[b.data.indexOf(this)]=this.options;this.graphic.animate(this.getTranslate());this.shadowGroup&&this.shadowGroup.animate(this.getTranslate())}, +getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+a,c.r+a,{innerR:this.shapeArgs.r-1,start:c.start,end:c.end})},connectorShapes:{fixedOffset:function(a,c,g){var b=c.breakAt;c=c.touchingSliceAt;return["M",a.x,a.y].concat(g.softConnector?["C",a.x+("left"===a.alignment?-5:5),a.y,2*b.x-c.x,2*b.y-c.y,b.x,b.y]:["L",b.x,b.y]).concat(["L", +c.x,c.y])},straight:function(a,c){c=c.touchingSliceAt;return["M",a.x,a.y,"L",c.x,c.y]},crookedLine:function(c,g,h){g=g.touchingSliceAt;var b=this.series,d=b.center[0],f=b.chart.plotWidth,m=b.chart.plotLeft,b=c.alignment,t=this.shapeArgs.r;h=a.relativeLength(h.crookDistance,1);h="left"===b?d+t+(f+m-d-t)*(1-h):m+(d-t)*h;d=["L",h,c.y];if("left"===b?h>c.x||hg.x)d=[];return["M",c.x,c.y].concat(d).concat(["L",g.x,g.y])}},getConnectorPath:function(){var a=this.labelPosition,c=this.series.options.dataLabels, +g=c.connectorShape,b=this.connectorShapes;b[g]&&(g=b[g]);return g.call(this,{x:a.final.x,y:a.final.y,alignment:a.alignment},a.connectorPosition,c)}})})(I);(function(a){var z=a.addEvent,F=a.arrayMax,G=a.defined,h=a.extend,c=a.format,r=a.merge,u=a.noop,w=a.pick,x=a.relativeLength,p=a.Series,g=a.seriesTypes,d=a.stableSort,m=a.isArray,n=a.splat;a.distribute=function(b,c,f){function g(a,b){return a.target-b.target}var h,l=!0,m=b,n=[],k;k=0;var p=m.reducedLen||c;for(h=b.length;h--;)k+=b[h].size;if(k>p){d(b, +function(a,b){return(b.rank||0)-(a.rank||0)});for(k=h=0;k<=p;)k+=b[h].size,h++;n=b.splice(h-1,b.length)}d(b,g);for(b=b.map(function(a){return{size:a.size,targets:[a.target],align:w(a.align,.5)}});l;){for(h=b.length;h--;)l=b[h],k=(Math.min.apply(0,l.targets)+Math.max.apply(0,l.targets))/2,l.pos=Math.min(Math.max(0,k-l.size*l.align),c-l.size);h=b.length;for(l=!1;h--;)0b[h].pos&&(b[h-1].size+=b[h].size,b[h-1].targets=b[h-1].targets.concat(b[h].targets),b[h-1].align=.5,b[h- +1].pos+b[h-1].size>c&&(b[h-1].pos=c-b[h-1].size),b.splice(h,1),l=!0)}m.push.apply(m,n);h=0;b.some(function(b){var d=0;if(b.targets.some(function(){m[h].pos=b.pos+d;if(Math.abs(m[h].pos-m[h].target)>f)return m.slice(0,h+1).forEach(function(a){delete a.pos}),m.reducedLen=(m.reducedLen||c)-.1*c,m.reducedLen>.1*c&&a.distribute(m,c,f),!0;d+=m[h].size;h++}))return!0});d(m,g)};p.prototype.drawDataLabels=function(){function b(a,b){var c=b.filter;return c?(b=c.operator,a=a[c.property],c=c.value,"\x3e"===b&& +a>c||"\x3c"===b&&a=c||"\x3c\x3d"===b&&a<=c||"\x3d\x3d"===b&&a==c||"\x3d\x3d\x3d"===b&&a===c?!0:!1):!0}function d(a,b){var c=[],e;if(m(a)&&!m(b))c=a.map(function(a){return r(a,b)});else if(m(b)&&!m(a))c=b.map(function(b){return r(a,b)});else if(m(a)||m(b))for(e=Math.max(a.length,b.length);e--;)c[e]=r(a[e],b[e]);else c=r(a,b);return c}var f=this,g=f.chart,h=f.options,p=h.dataLabels,u=f.points,A,k=f.hasRendered||0,x,C=w(p.defer,!!h.animation),y=g.renderer,p=d(d(g.options.plotOptions&& +g.options.plotOptions.series&&g.options.plotOptions.series.dataLabels,g.options.plotOptions&&g.options.plotOptions[f.type]&&g.options.plotOptions[f.type].dataLabels),p);a.fireEvent(this,"drawDataLabels");if(m(p)||p.enabled||f._hasPointLabels)x=f.plotGroup("dataLabelsGroup","data-labels",C&&!k?"hidden":"visible",p.zIndex||6),C&&(x.attr({opacity:+k}),k||z(f,"afterAnimate",function(){f.visible&&x.show(!0);x[h.animation?"animate":"attr"]({opacity:1},{duration:200})})),u.forEach(function(e){A=n(d(p,e.dlOptions|| +e.options&&e.options.dataLabels));A.forEach(function(d,k){var l=d.enabled&&!e.isNull&&b(e,d),m,q,t,n,p=e.dataLabels?e.dataLabels[k]:e.dataLabel,r=e.connectors?e.connectors[k]:e.connector,v=!p;l&&(m=e.getLabelConfig(),q=d[e.formatPrefix+"Format"]||d.format,m=G(q)?c(q,m,g.time):(d[e.formatPrefix+"Formatter"]||d.formatter).call(m,d),q=d.style,t=d.rotation,g.styledMode||(q.color=w(d.color,q.color,f.color,"#000000"),"contrast"===q.color&&(e.contrastColor=y.getContrast(e.color||f.color),q.color=d.inside|| +0>w(d.distance,e.labelDistance)||h.stacking?e.contrastColor:"#000000"),h.cursor&&(q.cursor=h.cursor)),n={r:d.borderRadius||0,rotation:t,padding:d.padding,zIndex:1},g.styledMode||(n.fill=d.backgroundColor,n.stroke=d.borderColor,n["stroke-width"]=d.borderWidth),a.objectEach(n,function(a,b){void 0===a&&delete n[b]}));!p||l&&G(m)?l&&G(m)&&(p?n.text=m:(e.dataLabels=e.dataLabels||[],p=e.dataLabels[k]=t?y.text(m,0,-9999).addClass("highcharts-data-label"):y.label(m,0,-9999,d.shape,null,null,d.useHTML,null, +"data-label"),k||(e.dataLabel=p),p.addClass(" highcharts-data-label-color-"+e.colorIndex+" "+(d.className||"")+(d.useHTML?" highcharts-tracker":""))),p.options=d,p.attr(n),g.styledMode||p.css(q).shadow(d.shadow),p.added||p.add(x),f.alignDataLabel(e,p,d,null,v)):(e.dataLabel=e.dataLabel&&e.dataLabel.destroy(),e.dataLabels&&(1===e.dataLabels.length?delete e.dataLabels:delete e.dataLabels[k]),k||delete e.dataLabel,r&&(e.connector=e.connector.destroy(),e.connectors&&(1===e.connectors.length?delete e.connectors: +delete e.connectors[k])))})});a.fireEvent(this,"afterDrawDataLabels")};p.prototype.alignDataLabel=function(a,c,d,g,m){var b=this.chart,f=this.isCartesian&&b.inverted,l=w(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),k=w(a.plotY,-9999),n=c.getBBox(),t,p=d.rotation,e=d.align,q=this.visible&&(a.series.forceDL||b.isInsidePlot(l,Math.round(k),f)||g&&b.isInsidePlot(l,f?g.x+1:g.y+g.height-1,f)),r="justify"===w(d.overflow,"justify");if(q&&(t=b.renderer.fontMetrics(b.styledMode?void 0:d.style.fontSize,c).b,g=h({x:f? +this.yAxis.len-k:l,y:Math.round(f?this.xAxis.len-l:k),width:0,height:0},g),h(d,{width:n.width,height:n.height}),p?(r=!1,l=b.renderer.rotCorr(t,p),l={x:g.x+d.x+g.width/2+l.x,y:g.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*g.height},c[m?"attr":"animate"](l).attr({align:e}),k=(p+720)%360,k=180k,"left"===e?l.y-=k?n.height:0:"center"===e?(l.x-=n.width/2,l.y-=n.height/2):"right"===e&&(l.x-=n.width,l.y-=k?0:n.height),c.placed=!0,c.alignAttr=l):(c.align(d,null,g),l=c.alignAttr),r&&0<=g.height? +a.isLabelJustified=this.justifyDataLabel(c,d,l,n,g,m):w(d.crop,!0)&&(q=b.isInsidePlot(l.x,l.y)&&b.isInsidePlot(l.x+n.width,l.y+n.height)),d.shape&&!p))c[m?"attr":"animate"]({anchorX:f?b.plotWidth-a.plotY:a.plotX,anchorY:f?b.plotHeight-a.plotX:a.plotY});q||(c.attr({y:-9999}),c.placed=!1)};p.prototype.justifyDataLabel=function(a,c,d,g,h,m){var b=this.chart,f=c.align,k=c.verticalAlign,l,n,t=a.box?0:a.padding||0;l=d.x+t;0>l&&("right"===f?c.align="left":c.x=-l,n=!0);l=d.x+g.width-t;l>b.plotWidth&&("left"=== +f?c.align="right":c.x=b.plotWidth-l,n=!0);l=d.y+t;0>l&&("bottom"===k?c.verticalAlign="top":c.y=-l,n=!0);l=d.y+g.height-t;l>b.plotHeight&&("top"===k?c.verticalAlign="bottom":c.y=b.plotHeight-l,n=!0);n&&(a.placed=!m,a.align(c,null,h));return n};g.pie&&(g.pie.prototype.dataLabelPositioners={radialDistributionY:function(a){return a.top+a.distributeBox.pos},radialDistributionX:function(a,c,d,g){return a.getX(dc.bottom-2?g:d,c.half,c)},justify:function(a,c,d){return d[0]+(a.half?-1:1)*(c+a.labelDistance)}, +alignToPlotEdges:function(a,c,d,g){a=a.getBBox().width;return c?a+g:d-a-g},alignToConnectors:function(a,c,d,g){var b=0,f;a.forEach(function(a){f=a.dataLabel.getBBox().width;f>b&&(b=f)});return c?b+g:d-b-g}},g.pie.prototype.drawDataLabels=function(){var b=this,c=b.data,d,g=b.chart,h=b.options.dataLabels,m=h.connectorPadding,n=w(h.connectorWidth,1),r=g.plotWidth,k=g.plotHeight,u=g.plotLeft,x=Math.round(g.chartWidth/3),y,e=b.center,q=e[2]/2,z=e[1],K,I,J,N,R=[[],[]],B,P,M,S,O=[0,0,0,0],W=b.dataLabelPositioners; +b.visible&&(h.enabled||b._hasPointLabels)&&(c.forEach(function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto",textOverflow:"clip"}),a.dataLabel.shortened=!1)}),p.prototype.drawDataLabels.apply(b),c.forEach(function(a){a.dataLabel&&(a.visible?(R[a.half].push(a),a.dataLabel._pos=null,!G(h.style.width)&&!G(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>x&&(a.dataLabel.css({width:.7* +x}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),R.forEach(function(c,f){var l,n,p=c.length,t=[],v;if(p)for(b.sortByAngle(c,f-.5),0r-m&&0===f&&(l=Math.round(B+I-r+m),O[1]=Math.max(l,O[1])),0>P-N/2?O[0]=Math.max(Math.round(-P+N/2),O[0]):P+N/2>k&&(O[2]=Math.max(Math.round(P+N/2-k),O[2])),K.sideOverflow=l)}}),0===F(O)||this.verifyDataLabelOverflow(O))&& +(this.placeDataLabels(),n&&this.points.forEach(function(a){var c;y=a.connector;if((K=a.dataLabel)&&K._pos&&a.visible&&0w(this.translatedThreshold,f.yAxis.len)),m=w(d.inside,!!this.options.stacking);l&&(g=r(l),0>g.y&&(g.height+=g.y,g.y=0),l=g.y+g.height-f.yAxis.len,0a+c||f+hb+d||g+lthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,f;w(this,"pan",{originalEvent:a},function(){d&&d.forEach(function(a){a.setState()});("xy"===b?[1,0]:[1]).forEach(function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,g=a[d?"chartX":"chartY"],d=d? +"mouseDownX":"mouseDownY",e=c[d],k=(b.pointRange||0)/2,h=b.reversed&&!c.inverted||!b.reversed&&c.inverted?-1:1,l=b.getExtremes(),m=b.toValue(e-g,!0)+k*h,h=b.toValue(e+b.len-g,!0)-k*h,n=h=h(r.minWidth,0)&&this.chartHeight>=h(r.minHeight,0)}).call(this)&& +c.push(a._id)};z.prototype.currentOptions=function(h){function r(h,p,g,d){var m;a.objectEach(h,function(a,b){if(!d&&-1<["series","xAxis","yAxis"].indexOf(b))for(a=c(a),g[b]=[],m=0;m. + */ +echo ""; +?> + diff --git a/js/jquery.min.js b/js/jquery.min.js new file mode 100644 index 0000000..4d9b3a2 --- /dev/null +++ b/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(""; +} elseif ($_SESSION['ubc'] != "") { + echo ""; +} else { + echo ""; +} + + +?> \ No newline at end of file diff --git a/process/enablehotspotuser.php b/process/enablehotspotuser.php new file mode 100644 index 0000000..e386594 --- /dev/null +++ b/process/enablehotspotuser.php @@ -0,0 +1,35 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +$API->comm("/ip/hotspot/user/set", array( + ".id" => "$enablehotspotuser", + "disabled" => "no", +)); +if ($_SESSION['ubp'] != "") { + echo ""; +} elseif ($_SESSION['ubc'] != "") { + echo ""; +} else { + echo ""; +} + + +?> \ No newline at end of file diff --git a/process/getvalidprice.php b/process/getvalidprice.php new file mode 100644 index 0000000..1e4a4de --- /dev/null +++ b/process/getvalidprice.php @@ -0,0 +1,72 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// load session MikroTik + $session = $_GET['session']; + +// load config + include('../include/config.php'); + $iphost = explode('!', $data[$session][1])[1]; + $userhost = explode('@|@', $data[$session][2])[1]; + $passwdhost = explode('#|#', $data[$session][3])[1]; + $curency = explode('&', $data[$session][6])[1]; + +// lang +include('../include/lang.php'); +include('../lang/'.$langid.'.php'); + + include_once('../lib/routeros_api.class.php'); + + $API = new RouterosAPI(); + $API->debug = false; + $API->connect($iphost, $userhost, decrypt($passwdhost)); + + $uprofname = $_GET['name']; + if ($uprofname != "") { + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array("?name" => "$uprofname")); + $ponlogin = $getprofile[0]['on-login']; + $getvalid = $_validity. " : " . explode(",", $ponlogin)[3]; + $getprice = explode(",", $ponlogin)[2]; + $getsprice = explode(",", $ponlogin)[4]; + $getlock = "| ".$_lock_user." : " . explode(",", $ponlogin)[6]; + if ($getprice == 0) { + } else { + if ($curency == "Rp" || $curency == "rp" || $curency == "IDR" || $curency == "idr") { + $price = "| ".$_price." : " . $curency . " " . number_format($getprice, 0, ",", "."); + } else { + $price = "| ".$_price." : " . $curency . " " . number_format($getprice); + } + } + if ($getsprice == 0) { + } else { + if ($curency == "Rp" || $curency == "rp" || $curency == "IDR" || $curency == "idr") { + $sprice = "| ".$_selling_price." : " . $curency . " " . number_format($getsprice, 0, ",", "."); + } else { + $sprice = "| ".$_selling_price." : " . $curency . " " . number_format($getsprice); + } + } + echo '' . $getvalid . ' ' . $price . ' ' . $sprice . ' ' . $getlock . ''; + echo '' . explode(",", $ponlogin)[3] . ' '; + } +} +?> diff --git a/process/index.php b/process/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/process/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/process/pipbinding.php b/process/pipbinding.php new file mode 100644 index 0000000..ddbed36 --- /dev/null +++ b/process/pipbinding.php @@ -0,0 +1,89 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// remove ip binding +if ($removeipbinding != "") { + $API->comm("/ip/hotspot/ip-binding/remove", array( + ".id" => "$removeipbinding", + )); + + $getqueue = $API->comm("/queue/simple/print", array( + "?name" => "$macbinding", + )); + + $squeue = $getqueue[0]['.id']; + + $API->comm("/queue/simple/remove", array( + ".id" => "$squeue", + )); + + $getvalid = $API->comm("/system/scheduler/print", array( + "?name" => "$macbinding", + )); + + $svalid = $getvalid[0]['.id']; + + $API->comm("/system/scheduler/remove", array( + ".id" => "$svalid", + )); + + $getarp = $API->comm("/ip/arp/print", array( + "?address" => "$ipbinding", + )); + $sarp = $getarp[0]['.id']; + + $API->comm("/ip/arp/remove", array( + ".id" => "$sarp", + )); + + $getlease = $API->comm("/ip/dhcp-server/lease/print", array( + "?address" => "$ipbinding", + )); + + $slease = $getlease[0]['.id']; + + $API->comm("/ip/dhcp-server/lease/remove", array( + ".id" => "$slease", + )); + +//redirect to ipbinding + echo ""; +} + +// enable ip binging +elseif ($enableipbinding != "") { + $API->comm("/ip/hotspot/ip-binding/set", array( + ".id" => "$enableipbinding", + "disabled" => "no", + )); + + echo ""; +} + +// disable ip binging +elseif ($disableipbinding != "") { + $API->comm("/ip/hotspot/ip-binding/set", array( + ".id" => "$disableipbinding", + "disabled" => "yes", + )); + + echo ""; +} \ No newline at end of file diff --git a/process/pscheduler.php b/process/pscheduler.php new file mode 100644 index 0000000..07b349b --- /dev/null +++ b/process/pscheduler.php @@ -0,0 +1,48 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// remove scheduler +if ($removesch != "") { + $API->comm("/system/scheduler/remove", array( + ".id" => "$removesch", + )); + + echo ""; +} +// enable scheduler +elseif ($enablesch != "") { + $API->comm("/system/scheduler/set", array( + ".id" => "$enablesch", + "disabled" => "no", + )); + + echo ""; +} + +// disable scheduler +elseif ($disablesch != "") { + $API->comm("/system/scheduler/set", array( + ".id" => "$disablesch", + "disabled" => "yes", + )); + + echo ""; +} \ No newline at end of file diff --git a/process/reboot.php b/process/reboot.php new file mode 100644 index 0000000..c85a0e4 --- /dev/null +++ b/process/reboot.php @@ -0,0 +1,53 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if (isset($_POST['submit'])) { + $API = new RouterosAPI(); + $API->debug = false; + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/reboot'); + $API->read(); + } + session_destroy(); + echo ""; + } +} +?> +
+
+
+

Reboot MikroTik

+
+
+
+
+

?

+
+ + + +
+
+
+
\ No newline at end of file diff --git a/process/removecookie.php b/process/removecookie.php new file mode 100644 index 0000000..67330ab --- /dev/null +++ b/process/removecookie.php @@ -0,0 +1,28 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// remove host +$API->comm("/ip/hotspot/cookie/remove", array( + ".id" => "$removecookie", +)); +// redirect to host +echo ""; +?> \ No newline at end of file diff --git a/process/removeexpiredhotspotuser.php b/process/removeexpiredhotspotuser.php new file mode 100644 index 0000000..bbe58db --- /dev/null +++ b/process/removeexpiredhotspotuser.php @@ -0,0 +1,43 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +$getuser = $API->comm("/ip/hotspot/user/print", array( + "?limit-uptime" => "1s", +)); +$TotalReg = count($getuser); + +$_SESSION['ubp'] = $getuser[0]['profile']; +$_SESSION['ubc'] = ""; + +for ($i = 0; $i < $TotalReg; $i++) { + $userdetails = $getuser[$i]; + $uid = $userdetails['.id']; + + $API->comm("/ip/hotspot/user/remove", array( + ".id" => "$uid", + )); +} +if ($_SESSION['ubp'] != "") { + echo ""; +} else { + echo ""; +} + +?> \ No newline at end of file diff --git a/process/removehost.php b/process/removehost.php new file mode 100644 index 0000000..54aacba --- /dev/null +++ b/process/removehost.php @@ -0,0 +1,28 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// remove host +$API->comm("/ip/hotspot/host/remove", array( + ".id" => "$removehost", +)); +// redirect to host +echo ""; +?> \ No newline at end of file diff --git a/process/removehotspotuser.php b/process/removehotspotuser.php new file mode 100644 index 0000000..b8a4e27 --- /dev/null +++ b/process/removehotspotuser.php @@ -0,0 +1,109 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if ($removehotspotusers != "") { + $uids = explode("~", $removehotspotusers); + + $nuids = count($uids); + + for ($i = 0; $i < $nuids; $i++) { + + $getuname = $API->comm("/ip/hotspot/user/print", array( + "?.id" => "$uids[$i]", + )); + + $name = $getuname[0]['name']; + + $getscr = $API->comm("/system/script/print", array( + "?name" => "$name", + )); + + $scr = $getscr[0]['.id']; + + $getsch = $API->comm("/system/scheduler/print", array( + "?name" => "$name", + )); + + $sch = $getsch[0]['.id']; + + $API->comm("/system/script/remove", array( + ".id" => "$scr", + )); + + $API->comm("/system/scheduler/remove", array( + ".id" => "$sch", + )); + + $API->comm("/ip/hotspot/user/remove", array( + ".id" => "$uids[$i]", + )); + + } + + if ($_SESSION['ubp'] != "") { + echo ""; + } elseif ($_SESSION['ubc'] != "") { + echo ""; + } else { + echo ""; + } + + +} else { + $getuname = $API->comm("/ip/hotspot/user/print", array( + "?.id" => "$removehotspotuser", + )); + + $name = $getuname[0]['name']; + + $getscr = $API->comm("/system/script/print", array( + "?name" => "$name", + )); + + $scr = $getscr[0]['.id']; + + $getsch = $API->comm("/system/scheduler/print", array( + "?name" => "$name", + )); + + $sch = $getsch[0]['.id']; + + $API->comm("/system/script/remove", array( + ".id" => "$scr", + )); + + $API->comm("/system/scheduler/remove", array( + ".id" => "$sch", + )); + + $API->comm("/ip/hotspot/user/remove", array( + ".id" => "$removehotspotuser", + )); + + + if ($_SESSION['ubp'] != "") { + echo ""; + } elseif ($_SESSION['ubc'] != "") { + echo ""; + } else { + echo ""; + } +} +?> \ No newline at end of file diff --git a/process/removehotspotuserbycomment.php b/process/removehotspotuserbycomment.php new file mode 100644 index 0000000..a8be1fb --- /dev/null +++ b/process/removehotspotuserbycomment.php @@ -0,0 +1,44 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +$getuser = $API->comm("/ip/hotspot/user/print", array( + "?comment" => "$removehotspotuserbycomment", + "?uptime" => "00:00:00" +)); +$TotalReg = count($getuser); + +$_SESSION['ubp'] = $getuser[0]['profile']; +$_SESSION['ubc'] = ""; + +for ($i = 0; $i < $TotalReg; $i++) { + $userdetails = $getuser[$i]; + $uid = $userdetails['.id']; + + $API->comm("/ip/hotspot/user/remove", array( + ".id" => "$uid", + )); +} +if ($_SESSION['ubp'] != "") { + echo ""; +} else { + echo ""; +} + +?> \ No newline at end of file diff --git a/process/removepactive.php b/process/removepactive.php new file mode 100644 index 0000000..31db263 --- /dev/null +++ b/process/removepactive.php @@ -0,0 +1,26 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +$API->comm("/ppp/active/remove", array( + ".id" => "$removepactive", +)); + +echo ""; diff --git a/process/removereport.php b/process/removereport.php new file mode 100644 index 0000000..5e66e57 --- /dev/null +++ b/process/removereport.php @@ -0,0 +1,36 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + + if ($removereport != "") { + $uids = explode("~", $removereport); + + $nuids = count($uids); + + for ($i = 0; $i < $nuids; $i++) { + + $API->comm("/system/script/remove", array( + ".id" => "$uids[$i]", + )); + + } + $_SESSION[$session.'idhr'] = ""; + } + echo ""; \ No newline at end of file diff --git a/process/removeuseractive.php b/process/removeuseractive.php new file mode 100644 index 0000000..b92893b --- /dev/null +++ b/process/removeuseractive.php @@ -0,0 +1,42 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// get user active +$getuser = $API->comm("/ip/hotspot/active/print", array( + "?.id" => "$removeuseractive", +)); +$user = $getuser[0]['user']; +// get cookie id +$getcookie = $API->comm("/ip/hotspot/cookie/print", array( + "?user" => "$user", +)); +$ck = $getcookie[0]['.id']; +// remove cookie +$API->comm("/ip/hotspot/cookie/remove", array( + ".id" => "$ck", +)); +// remove user active +$API->comm("/ip/hotspot/active/remove", array( + ".id" => "$removeuseractive", +)); +// redirect to user active +echo ""; +?> \ No newline at end of file diff --git a/process/removeuserprofile.php b/process/removeuserprofile.php new file mode 100644 index 0000000..ef5b0d5 --- /dev/null +++ b/process/removeuserprofile.php @@ -0,0 +1,37 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +$pid = $removeuserprofile; +$pname = $_GET['pname']; + +$getmonid = $API->comm("/system/scheduler/print", array( + "?name" => "$pname", +)); +$monid = $getmonid[0]['.id']; + +$API->comm("/ip/hotspot/user/profile/remove", array( + ".id" => "$pid", +)); +$API->comm("/system/scheduler/remove", array( + ".id" => "$monid", +)); +echo ""; +?> \ No newline at end of file diff --git a/process/resethotspotuser.php b/process/resethotspotuser.php new file mode 100644 index 0000000..693c767 --- /dev/null +++ b/process/resethotspotuser.php @@ -0,0 +1,45 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +$API->comm("/ip/hotspot/user/set", array( + ".id" => "$resethotspotuser", "limit-uptime" => "0", "comment" => "" +)); +$API->comm("/ip/hotspot/user/reset-counters", array( + ".id" => "$resethotspotuser", +)); + +$getuname = $API->comm("/ip/hotspot/user/print", array( + "?.id" => "$resethotspotuser", +)); +$uname = $getuname[0]['name']; + +$getsname = $API->comm("/system/scheduler/print", array( + "?name" => "$uname", +)); +$removesch = $getsname[0]['.id']; + +$API->comm("/system/scheduler/remove", array( + ".id" => "$removesch", +)); + +echo ""; + +?> \ No newline at end of file diff --git a/process/shutdown.php b/process/shutdown.php new file mode 100644 index 0000000..c1b463c --- /dev/null +++ b/process/shutdown.php @@ -0,0 +1,52 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if (isset($_POST['submit'])) { + $API = new RouterosAPI(); + $API->debug = false; + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/shutdown'); + $API->read(); + } + session_destroy(); + echo ""; + } +} +?> +
+
+
+

Shutdown MikroTik

+
+
+
+
+

?

+
+ + +
+
+
+
\ No newline at end of file diff --git a/report/index.php b/report/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/report/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/report/livereport.php b/report/livereport.php new file mode 100644 index 0000000..a0d4546 --- /dev/null +++ b/report/livereport.php @@ -0,0 +1,133 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// load session MikroTik + $session = $_GET['session']; +// set timezone +date_default_timezone_set($_SESSION['timezone']); + +// lang +include('../include/lang.php'); +include('../lang/'.$langid.'.php'); + + +// load config + include('../include/config.php'); + include('../include/readcfg.php'); + +// routeros api + include_once('../lib/routeros_api.class.php'); + include_once('../lib/formatbytesbites.php'); + $API = new RouterosAPI(); + $API->debug = false; + $API->connect($iphost, $userhost, decrypt($passwdhost)); + + if ($livereport == "disable") { + $logh = "457px"; + $lreport = "style='display:none;'"; + } else { + $logh = "350px"; + $lreport = "style='display:block;'"; +// get selling report + $thisD = date("d"); + $thisM = strtolower(date("M")); + $thisY = date("Y"); + + if (strlen($thisD) == 1) { + $thisD = "0" . $thisD; + } else { + $thisD = $thisD; + } + + $idhr = $thisM . "/" . $thisD . "/" . $thisY; + $idbl = $thisM . $thisY; + + $_SESSION[$session.'idhr'] = $idhr; + + /* $getSRHr = $API->comm("/system/script/print", array( + "?source" => "$idhr", + )); + $TotalRHr = count($getSRHr); + $_SESSION[$session.'totalHr'] = $TotalRHr;*/ + $getSRBl = $API->comm("/system/script/print", array( + "?owner" => "$idbl", + )); + $TotalRBl = count($getSRBl); + $_SESSION[$session.'totalBl'] = $TotalRBl; +/* + for ($i = 0; $i < $TotalRHr; $i++) { + + $tHr += explode("-|-", $getSRHr[$i]['name'])[3]; + + }*/ + foreach($getSRBl as $row){ + + if((explode("-|-", $row['name'])[0]) == $idhr){ + $tHr += explode("-|-", $row['name'])[3]; + $TotalRHr += count((array)$row['source']); /*Modif line add (array) by github https://github.com/MasKawer*/ + + } + $tBl += explode("-|-", $row['name'])[3]; + + if($TotalRHr == ""){ + $TotalRHr = "0"; + $_SESSION[$session.'totalHr'] = "0"; + }else{ + $_SESSION[$session.'totalHr'] = $TotalRHr; + } + + } + } +} +?> + +
+
class="box bmh-75 box-bordered"> +
+
+
+ +
+ " . " + ".$_today." " . $TotalRHr . "vcr : " . $currency . " " . $dincome . "
+ ".$_this_month." " . $TotalRBl . "vcr : " . $currency . " " . $mincome; + ?> +
+
+
+
+
+
+ \ No newline at end of file diff --git a/report/print.php b/report/print.php new file mode 100644 index 0000000..17528d9 --- /dev/null +++ b/report/print.php @@ -0,0 +1,443 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + // load session MikroTik + $session = $_GET['session']; + + // lang + include('../include/lang.php'); + include('../lang/'.$langid.'.php'); + + // load config + include('../include/config.php'); + include('../include/readcfg.php'); + + // routeros api + include_once('../lib/routeros_api.class.php'); + include_once('../lib/formatbytesbites.php'); + $API = new RouterosAPI(); + $API->debug = false; + + $idhr = $_GET['idhr']; + $idbl = $_GET['idbl']; + $idbl2 = explode("/",$idhr)[0].explode("/",$idhr)[2]; + if ($idhr != ""){ + $_SESSION['report'] = "&idhr=".$idhr; + } elseif ($idbl != ""){ + $_SESSION['report'] = "&idbl=".$idbl; + } else { + $_SESSION['report'] = ""; + } + $_SESSION['idbl'] = $idbl; + $remdata = ($_POST['remdata']); + $prefix = $_GET['prefix']; + $fcomment = $_GET['comment']; + $range = $_GET['range']; + if(!empty($range)){$trange = "[".$range."]";} + + $pcomment = substr($prefix, 0,2); + if($pcomment == "!!"){ + $fcomment = explode("!!",$prefix)[1]; + }else{$fcomment = $fcomment;} + + $gettimezone = $API->comm("/system/clock/print"); + $timezone = $gettimezone[0]['time-zone-name']; + date_default_timezone_set($timezone); + + if (isset($remdata)) { + if (strlen($idhr) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?source=' . $idhr . '', false); + $API->write('=.proplist=.id'); + $ARREMD = $API->read(); + for ($i = 0; $i < count($ARREMD); $i++) { + $API->write('/system/script/remove', false); + $API->write('=.id=' . $ARREMD[$i]['.id']); + $READ = $API->read(); + + } + } + } elseif (strlen($idbl) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?owner=' . $idbl . '', false); + $API->write('=.proplist=.id'); + $ARREMD = $API->read(); + for ($i = 0; $i < count($ARREMD); $i++) { + $API->write('/system/script/remove', false); + $API->write('=.id=' . $ARREMD[$i]['.id']); + $READ = $API->read(); + + } + } + + } + echo ""; + } + + if ($pcomment == "!!"){ + $fprefix = "-comment-[" . $fcomment . "]"; + } else if ($prefix != "") { + $fprefix = "-prefix-[" . $prefix . "]"; + } else { + $fprefix = ""; + } + if (strlen($idhr) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?source" => "$idhr", + )); + $TotalReg = count($getData); + } + $filedownload = $idhr; + $shf = "hidden"; + $shd = "inline-block"; + } elseif (strlen($idbl) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?owner" => "$idbl", + )); + $TotalReg = count($getData); + } + $filedownload = $idbl; + $shf = "hidden"; + $shd = "inline-block"; + } elseif ($idhr == "" || $idbl == "") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?comment" => "mikhmon", + )); + $TotalReg = count($getData); + } + $filedownload = "all"; + $shf = "text"; + $shd = "none"; + } elseif (strlen($idbl) > "0" ) { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?owner" => "$idbl", + )); + $TotalReg = count($getData); + } + $filedownload = $idbl; + $shf = "hidden"; + $shd = "inline-block"; + } + +} +?> + + + + .:: MIKHMON <?= $hotspotname; ?> ::. + + + + + + + + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } + } elseif ($prefix != "") { + for ($i = 0; $i < $TotalReg; $i++) { + $getname = explode("-|-", $getData[$i]['name']); + if (substr($getname[2], 0, strlen($prefix)) == $prefix) { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } + } elseif ($range != "") { + $x = explode('-',$range)[0]; + $y = explode('-',$range)[1]; + + $range = range($x, $y); + + for ($i = 0; $i < $TotalReg; $i++) { + $getname = explode("-|-", $getData[$i]['name']); + $day = substr($getname[0],4,2); if(substr($day,0,1) == "0"){$day = substr($day,-1);}else{$day=$day;} + if (in_array($day, $range)) { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } + } else { + for ($i = 0; $i < $TotalReg; $i++) { + $getname = explode("-|-", $getData[$i]['name']); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + $dataresume .= $getname[0].$getname[3]; + $totalresume += $getname[3]; + $_SESSION['dataresume'] = $dataresume; + $_SESSION['totalresume'] = $TotalReg.'/'.$totalresume; + } + + } + ?> + +
".$_selling_report."". $hotspotname ?>
,,,
№
"; + + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $profile = $getname[7]; + echo $profile; + echo ""; + $comment = $getname[8]; + echo $comment; + echo ""; + $price = $getname[3]; + echo $price; + echo "
"; + + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $profile = $getname[7]; + echo $profile; + echo ""; + $comment = $getname[8]; + echo $comment; + echo ""; + $price = $getname[3]; + echo $price; + echo "
"; + + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $profile = $getname[7]; + echo $profile; + echo ""; + $comment = $getname[8]; + echo $comment; + echo ""; + $price = $getname[3]; + echo $price; + echo "
"; + + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $profile = $getname[7]; + echo $profile; + echo ""; + $comment = $getname[8]; + echo $comment; + echo ""; + $price = $getname[3]; + echo $price; + echo "
+
+ +
+ + + + diff --git a/report/resumereport.php b/report/resumereport.php new file mode 100644 index 0000000..f8e8de8 --- /dev/null +++ b/report/resumereport.php @@ -0,0 +1,172 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { +// load session MikroTik +$session = $_GET['session']; + + +// load config + include('../include/config.php'); + include('../include/readcfg.php'); + +$idbl = $_GET['idbl']; +$thisM = substr($idbl,0,3); +$thisY = substr($idbl,-4); + +$ms = array(1 => "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec"); +$mn = array_search($thisM, $ms); + +// https://secure.php.net/manual/en/function.cal-days-in-month.php#38666 +function days_in_month($month, $year) +{ +// calculate number of days in a month +return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31); +} + + +if ($mn == date("n")){ + $totD = (date('d') +1); +}else{ + $totD = (days_in_month($mn, $thisY)+ 1); +} + +function resume_per_day($date){ +$evalue = explode($date,$_SESSION['dataresume']); +$x = count($evalue); + for ($i = 0; $i < $x; $i++) { + $result += (int) $evalue[$i]; + } + return ($x-1).'/'.$result; +} + +$totalvrc = explode("/",$_SESSION['totalresume'])[0]; +$totalincome = explode("/",$_SESSION['totalresume'])[1]; + + +if ($currency == in_array($currency, $cekindo['indo'])) { + $totalreport = "Total " . $totalvrc . "vcr : " . $currency . " " . number_format((float)$totalincome, 0, ",", "."); + +} else { + $totalreport = "Total " . $totalvrc . "vcr : " . $currency . " " . number_format((float)$totalincome, 2); +} + + +} +?> + +
+

Resume Report

+ +
+
+ + + + + +
+ + +
+
\ No newline at end of file diff --git a/report/selling.php b/report/selling.php new file mode 100644 index 0000000..a4087b3 --- /dev/null +++ b/report/selling.php @@ -0,0 +1,456 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $idhr = $_GET['idhr']; + $idbl = $_GET['idbl']; + $idbl2 = explode("/",$idhr)[0].explode("/",$idhr)[2]; + if ($idhr != ""){ + $_SESSION['report'] = "&idhr=".$idhr; + } elseif ($idbl != ""){ + $_SESSION['report'] = "&idbl=".$idbl; + } else { + $_SESSION['report'] = ""; + } + $_SESSION['idbl'] = $idbl; + $remdata = ($_POST['remdata']); + $prefix = $_GET['prefix']; + + + $gettimezone = $API->comm("/system/clock/print"); + $timezone = $gettimezone[0]['time-zone-name']; + date_default_timezone_set($timezone); + + if (isset($remdata)) { + if (strlen($idhr) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?source=' . $idhr . '', false); + $API->write('=.proplist=.id'); + $ARREMD = $API->read(); + for ($i = 0; $i < count($ARREMD); $i++) { + $API->write('/system/script/remove', false); + $API->write('=.id=' . $ARREMD[$i]['.id']); + $READ = $API->read(); + + } + } + } elseif (strlen($idbl) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?owner=' . $idbl . '', false); + $API->write('=.proplist=.id'); + $ARREMD = $API->read(); + for ($i = 0; $i < count($ARREMD); $i++) { + $API->write('/system/script/remove', false); + $API->write('=.id=' . $ARREMD[$i]['.id']); + $READ = $API->read(); + + } + } + + } + echo ""; + } + + if ($prefix != "") { + $fprefix = "-prefix-[" . $prefix . "]"; + } else { + $fprefix = ""; + } + if (strlen($idhr) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?source" => "$idhr", + )); + $TotalReg = count($getData); + } + $filedownload = $idhr; + $shf = "hidden"; + $shd = "inline-block"; + } elseif (strlen($idbl) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?owner" => "$idbl", + )); + $TotalReg = count($getData); + } + $filedownload = $idbl; + $shf = "hidden"; + $shd = "inline-block"; + } elseif ($idhr == "" || $idbl == "") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?comment" => "mikhmon", + )); + $TotalReg = count($getData); + } + $filedownload = "all"; + $shf = "text"; + $shd = "none"; + } elseif (strlen($idbl) > "0" ) { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $getData = $API->comm("/system/script/print", array( + "?owner" => "$idbl", + )); + $TotalReg = count($getData); + } + $filedownload = $idbl; + $shf = "hidden"; + $shd = "inline-block"; + } + +} +?> + + + +
+
+
+
+

+
+
+
+
+
+
+   + + + + '.$_resume.'';}else{ + echo ' '.ucfirst(substr($idbl2,0,3).' '.substr($idbl2,3,5)).'';}?> + + + +
+
+
+
+
+ +
+
+ +
+
+ +
+
+
Filter
+
+ +
+
+ + + + + + + + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + } + } else { + for ($i = 0; $i < $TotalReg; $i++) { + $getname = explode("-|-", $getData[$i]['name']); + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + $dataresume .= $getname[0].$getname[3]; + $totalresume += $getname[3]; + $_SESSION['dataresume'] = $dataresume; + $_SESSION['totalresume'] = $TotalReg.'/'.$totalresume; + } + + } + + ?> + +
,,,,
№
"; + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $profile = $getname[7]; + echo $profile; + echo ""; + $comment = $getname[8]; + echo $comment; + echo ""; + $price = $getname[3]; + echo $price; + echo "
"; + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $profile = $getname[7]; + echo $profile; + echo ""; + $comment = $getname[8]; + echo $comment; + echo ""; + $price = $getname[3]; + echo $price; + echo "
+
+
+
+
+ + + + +
diff --git a/report/userlog.php b/report/userlog.php new file mode 100644 index 0000000..12e27ec --- /dev/null +++ b/report/userlog.php @@ -0,0 +1,252 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $idhr = $_GET['idhr']; + $idbl = $_GET['idbl']; + $remdata = ($_POST['remdata']); + + + if (strlen($idhr) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?=source=' . $idhr . ''); + $ARRAY = $API->read(); + $API->disconnect(); + } + $filedownload = $idhr; + $shf = "hidden"; + $shd = "text"; + } elseif (strlen($idbl) > "0") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?=owner=' . $idbl . ''); + $ARRAY = $API->read(); + $API->disconnect(); + } + $filedownload = $idbl; + $shf = "hidden"; + $shd = "text"; + } elseif ($idhr == "" || $idbl == "") { + if ($API->connect($iphost, $userhost, decrypt($passwdhost))) { + $API->write('/system/script/print', false); + $API->write('?=comment=mikhmon'); + $ARRAY = $API->read(); + $API->disconnect(); + } + $filedownload = "all"; + $shf = "text"; + $shd = "hidden"; + } +} +?> + +
+
+
+
+

User Log

+
+
+
+
+   + + +
+
+
+ +
+
+ +
+
+ +
+
+
Filter
+
+ +
+
+
+ + + + + + + + + + + + + + + + "; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + ?> + +
User Log
addressMac Address
"; + $getname = explode("-|-", $regtable['name']); + $tgl = $getname[0]; + echo $tgl; + echo ""; + $ltime = $getname[1]; + echo $ltime; + echo ""; + $username = $getname[2]; + echo $username; + echo ""; + $addr = $getname[4]; + echo $addr; + echo ""; + $mac = $getname[5]; + echo $mac; + echo ""; + $val = $getname[6]; + echo $val; + echo "
+
+
+
+
+
\ No newline at end of file diff --git a/server.html b/server.html new file mode 100644 index 0000000..2231426 --- /dev/null +++ b/server.html @@ -0,0 +1,7 @@ + + + + +
Mikhmon Server Online
+ + \ No newline at end of file diff --git a/settings/index.php b/settings/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/settings/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/settings/sessions.php b/settings/sessions.php new file mode 100644 index 0000000..0b9fcca --- /dev/null +++ b/settings/sessions.php @@ -0,0 +1,190 @@ +. + */ + +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + +// array color + $color = array('1' => 'bg-blue', 'bg-indigo', 'bg-purple', 'bg-pink', 'bg-red', 'bg-yellow', 'bg-green', 'bg-teal', 'bg-cyan', 'bg-grey', 'bg-light-blue'); + + if (isset($_POST['save'])) { + + $suseradm = ($_POST['useradm']); + $spassadm = encrypt($_POST['passadm']); + $logobt = ($_POST['logobt']); + $qrbt = ($_POST['qrbt']); + + $cari = array('1' => "mikhmon<|<$useradm", "mikhmon>|>$passadm"); + $ganti = array('1' => "mikhmon<|<$suseradm", "mikhmon>|>$spassadm"); + + for ($i = 1; $i < 3; $i++) { + $file = file("./include/config.php"); + $content = file_get_contents("./include/config.php"); + $newcontent = str_replace((string)$cari[$i], (string)$ganti[$i], "$content"); + file_put_contents("./include/config.php", "$newcontent"); + } + + + $gen = ''; + $key = './include/quickbt.php'; + $handle = fopen($key, 'w') or die('Cannot open file: ' . $key); + $data = $gen; + fwrite($handle, $data); + echo ""; + } + +} +?> + + +
+
+
+
+

  |   

+
+
+
+
+
+
+

+
+
+
+ +
+
+
+ +
+ + + +
+ + +
+ +
+
+ +
+
+
+
+
+
+
+
+

+
+
+ + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+ +
+
+
+
QR + +
+
+ +
+
+
+
+ +
+
v
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + diff --git a/settings/setlang.php b/settings/setlang.php new file mode 100644 index 0000000..394e9a2 --- /dev/null +++ b/settings/setlang.php @@ -0,0 +1,48 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// check url +$url2 = explode("&setlang", $url)[0]; + +$getlang = $_GET['setlang']; + +if (empty($getlang)) { + +} else { + if (!empty($isocodelang[$getlang])) { + include_once('./include/headhtml.php'); + $gen = ''; + $slang = './include/lang.php'; + $handle = fopen($slang, 'w') or die('Cannot open file: ' . $slang); + $data = $gen; + fwrite($handle, $data); + $_SESSION['lang'] = $getlang; + echo '

Load '.$getlang.' lang...

'; + echo ""; + + } else { + include_once('./include/headhtml.php'); + echo '

'.$getlang.' lang not found...

'; + echo ""; + } +} + +?> \ No newline at end of file diff --git a/settings/settheme.php b/settings/settheme.php new file mode 100644 index 0000000..e511f2b --- /dev/null +++ b/settings/settheme.php @@ -0,0 +1,69 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); + +// check url +$url2 = explode("&set-theme", $url)[0]; + +$gettheme = $_GET['set-theme']; +$mtheme = array( + "dark", + "light", + "blue", + "green", + "pink", + +); +$theme_color = array( + "#3a4149", + "#008BC9", + "#008BC9", + "#4dbd74", + "#e83e8c", +); + + +$themenum = array_search($gettheme, $mtheme); + +$getthemecolor = $theme_color[$themenum]; + +if (empty($gettheme)) { + +} else { + if (in_array($gettheme, $mtheme)) { + include_once('./include/headhtml.php'); + $gen = ''; + $stheme = './include/theme.php'; + $handle = fopen($stheme, 'w') or die('Cannot open file: ' . $stheme); + $data = $gen; + fwrite($handle, $data); + $_SESSION['theme'] = $gettheme; + $_SESSION['themecolor'] = $getthemecolor; + echo '

Load '.$gettheme.' theme...

'; + echo ""; + + } else { + include_once('./include/headhtml.php'); + echo '

'.$gettheme.' theme not found...

'; + echo ""; + } +} + +?> \ No newline at end of file diff --git a/settings/settings.php b/settings/settings.php new file mode 100644 index 0000000..487cbe3 --- /dev/null +++ b/settings/settings.php @@ -0,0 +1,262 @@ +. + */ + +// hide all error +error_reporting(0); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if ($id == "settings" && explode("-",$router)[0] == "new") { + $data = '$data'; + $f = fopen('./include/config.php', 'a'); + fwrite($f, "\n'$'data['".$router."'] = array ('1'=>'".$router."!','".$router."@|@','".$router."#|#','".$router."%','".$router."^','".$router."&Rp','".$router."*10','".$router."(1','".$router.")','".$router."=10','".$router."@!@disable');"); + fclose($f); + $search = "'$'data"; + $replace = (string)"$data"; + $file = file("./include/config.php"); + $content = file_get_contents("./include/config.php"); + $newcontent = str_replace((string)$search, (string)$replace, "$content"); + file_put_contents("./include/config.php", "$newcontent"); + echo ""; + } + + if (isset($_POST['save'])) { + + $siphost = (preg_replace('/\s+/', '', $_POST['ipmik'])); + $suserhost = ($_POST['usermik']); + $spasswdhost = encrypt($_POST['passmik']); + $shotspotname = str_replace("'","",$_POST['hotspotname']); + $sdnsname = ($_POST['dnsname']); + $scurrency = ($_POST['currency']); + $sreload = ($_POST['areload']); + if ($sreload < 10) { + $sreload = 10; + } else { + $sreload = $sreload; + } + $siface = ($_POST['iface']); + $sinfolp = implode(unpack("H*", $_POST['infolp'])); + //$sinfolp = encrypt($_POST['infolp']); + //$sinfolp = ($_POST['infolp']); + $sidleto = ($_POST['idleto']); + + $sesname = (preg_replace('/\s+/', '-', $_POST['sessname'])); + $slivereport = ($_POST['livereport']); + + $search = array('1' => "$session!$iphost", "$session@|@$userhost", "$session#|#$passwdhost", "$session%$hotspotname", "$session^$dnsname", "$session&$currency", "$session*$areload", "$session($iface", "$session)$infolp", "$session=$idleto", "'$session'", "$session@!@$livereport"); + + $replace = array('1' => "$sesname!$siphost", "$sesname@|@$suserhost", "$sesname#|#$spasswdhost", "$sesname%$shotspotname", "$sesname^$sdnsname", "$sesname&$scurrency", "$sesname*$sreload", "$sesname($siface", "$sesname)$sinfolp", "$sesname=$sidleto", "'$sesname'", "$sesname@!@$slivereport"); + + for ($i = 1; $i < 15; $i++) { + $file = file("./include/config.php"); + $content = file_get_contents("./include/config.php"); + $newcontent = str_replace((string)$search[$i], (string)$replace[$i], "$content"); + file_put_contents("./include/config.php", "$newcontent"); + } + $_SESSION["connect"] = ""; + echo ""; + } + if ($currency == "") { + echo ""; + } +} +?> + + +
+
+
+
+
+

  |   

+
+
+
+
+
+
+
+

+
+
+ + + + + +
" required="1"/>
+
+
+
+
+
+
+

MikroTik

+
+
+ + + + + + + + + + + + + +
IP MikroTik
Username
Password +
+
+ +
+
+
+ +
+
+
+
+
+ +
+
+ Connect +
+
+ Ping +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+

Mikhmon Data

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+ + + + + + + diff --git a/settings/uplogo.php b/settings/uplogo.php new file mode 100644 index 0000000..e2ee7e9 --- /dev/null +++ b/settings/uplogo.php @@ -0,0 +1,165 @@ +. + */ + +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + if (isset($_POST["submit"])) { + $logo_dir = "./img/"; + $logo_file = $logo_dir . basename($_FILES["UploadLogo"]["name"]); + $uploadOk = 1; + $imageFileType = strtolower(pathinfo($logo_file, PATHINFO_EXTENSION)); + +// Check if image file is a actual image or fake image + + $check = getimagesize($_FILES["UploadLogo"]["tmp_name"]); + if ($check !== false) { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
File name is : ' . basename($_FILES["UploadLogo"]["name"]) . '.
'; + } else { + $galat = '
Alert!
File name is : ' . basename($_FILES["UploadLogo"]["name"]) . '.
'; + } + $uploadOk = 1; + } else { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
File bukan gambar.
'; + } else { + $galat = '
Alert!
File is not an image.
'; + } + $uploadOk = 0; + } + + +// Check file size + if ($_FILES["UploadLogo"]["size"] > 2000000) { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
Ukuran file terlalu besar.
'; + } else { + $galat = '
Alert!
File is too large.
'; + } + $uploadOk = 0; + } +// Allow certain file formats + if (basename($_FILES["UploadLogo"]["name"] != "logo-" . $session . ".png")) { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
Hanya bisa upload logo-' . $session . '.png.
'; + } else { + $galat = '
Alert!
Only logo-' . $session . '.png are allowed.
'; + } + $uploadOk = 0; + } +// Check if $uploadOk is set to 0 by an error + if ($uploadOk == 0) { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
File tidak diupload. Nama file harus logo-'.$session.'.png
'; + } else { + $galat = '
Alert!
File was not uploaded. File name must be logo-'.$session.'.png
'; + } + +// if everything is ok, try to upload file + } else { + if (move_uploaded_file($_FILES["UploadLogo"]["tmp_name"], $logo_file)) { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
Success! File ' . basename($_FILES["UploadLogo"]["name"]) . ' telah diupload.
'; + } else { + $galat = '
Alert!
Success! The File ' . basename($_FILES["UploadLogo"]["name"]) . ' has been uploaded.
'; + } + + } else { + if ($currency == in_array($currency, $cekindo['indo'])) { + $galat = '
Alert!
Terjadi masalah ketika upload file. Nama file harus logo-'.$session.'.png
'; + } else { + $galat = '
Alert!
There was an error uploading your file. File name must be logo-'.$session.'.png
'; + } + + } + } +//echo ""; + } +} +?> +
+
+
+
+

+
+
+
+ +
+ +
: logo-.png
+
+
+ +
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + +

+
+
+ +
+
+
+
\ No newline at end of file diff --git a/settings/vouchereditor.php b/settings/vouchereditor.php new file mode 100644 index 0000000..66869e0 --- /dev/null +++ b/settings/vouchereditor.php @@ -0,0 +1,163 @@ +. + */ +session_start(); +?> + + + + + + + + +
+
+
+
+

+
+
+
+ + + + +
+
+
+ + + +
+
+
+
+
Template
+
+
+ +
+ +
+
Reset
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+
+

Variable

+
+
+ +
+
+
+
+ + + + diff --git a/status/index.php b/status/index.php new file mode 100644 index 0000000..4b125c1 --- /dev/null +++ b/status/index.php @@ -0,0 +1,197 @@ +. + */ + +// hide all error +error_reporting(0); +ob_start("ob_gzhandler"); + +$session = $_GET['session']; +require('../lib/routeros_api.class.php'); +include('../lib/formatbytesbites.php'); +include('../include/config.php'); + +// theme +include('../include/theme.php'); + +$iphost = explode('!', $data[$session][1])[1]; +$userhost = explode('@|@', $data[$session][2])[1]; +$passwdhost = explode('#|#', $data[$session][3])[1]; +$hotspotname = explode('%', $data[$session][4])[1]; +$dnsname = explode('^', $data[$session][5])[1]; +$currency = explode('&', $data[$session][6])[1]; + +$cekindo['indo'] = array('RP', 'Rp', 'rp', 'IDR', 'idr', 'RP.', 'Rp.', 'rp.', 'IDR.', 'idr.', ); + +$API = new RouterosAPI(); +$API->debug = false; +if ($currency == in_array($currency, $cekindo['indo'])) { + $title = array("Status Voucher", "User/Kode Voucher", "Paket", "Lama Terhubung", "Pemakaian Data", "Sisa Data", "Masa Aktif", "Dari", "Sampai", "tidak terdaftar.", "sudah kadaluarsa.", "Tanggal", "Cek Status", " Hari", " Jam", "Aktif", "Expired"); +} else { + $title = array("Voucher Status", "User/Voucher Code", "Profile", "Uptime", "Data Usage", "Data Remaining", "Validity", "Start", "End", "not registered.", "expired.", "Date", "Check Status", " Day", " Hour", "Active", "Expired"); +} +if ($currency == in_array($currency, $cekindo['indo'])) { + $s = ""; +} else { + $s = "s"; +} +?> + + + +<?= $title[0] . " " . $hotspotname; ?> + + + + + + + + + + + + + +
+ +
+
+ + diff --git a/status/ping-test.php b/status/ping-test.php new file mode 100644 index 0000000..d2191f7 --- /dev/null +++ b/status/ping-test.php @@ -0,0 +1,75 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); + } else { +$session = $_GET['session']; +$ping = $_GET['ping']; +if(isset($ping) && !empty($session)){ + include_once('../include/config.php'); + $iphost = explode('!', $data[$session][1])[1]; + $host=explode(":",$iphost)[0]; + $port=explode(":",$iphost)[1]; + if(empty($port)){ + $port = 8728; + }else{ + $port = $port; + } +function ping($host,$port){ + $fsock = fsockopen($host,$port,$errno,$errstr,5); + if (! $fsock ){ + return ( + '
+
+
+

Ping Test ['.$host.':'.$port.']

+
+
'. + "Host : ".$host." Port : ".$port."
". + "Error Code : ".$errno."
". + "Error Message : ".$errstr. + "
Ping Timeout
". + ' Close'. + '
+
+
'); + }else{ + return ( + '
+
+
+

Ping Test ['.$host.':'.$port.']

+
+
'. + "Host : ".$host." Port : ".$port."
". + "Ping OK
". + ' Close'. + '
+
+
'); + } + fclose($fsock); +} + +$ping_test = ping($host,$port); +print_r($ping_test); +} +} \ No newline at end of file diff --git a/status/status.php b/status/status.php new file mode 100644 index 0000000..37c8de1 --- /dev/null +++ b/status/status.php @@ -0,0 +1,68 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +$session = $_GET['session']; +$uname = $_GET['name']; + +include_once('../include/config.php'); +$iphost=explode('!',$data[$session][1])[1]; +$userhost=explode('@|@',$data[$session][2])[1]; +$passwdhost=explode('#|#',$data[$session][3])[1]; +$hotspotname=explode('%',$data[$session][4])[1]; +$dnsname=explode('^',$data[$session][5])[1]; +$curency=explode('&',$data[$session][6])[1]; + + +include_once('../lib/routeros_api.class.php'); + +$API = new RouterosAPI(); +$API->debug = false; +$API->connect( $iphost, $userhost, decrypt($passwdhost)); + +if($uname != ""){ + $getname = $API->comm("/ip/hotspot/user/print", array("?name" => "$uname")); + $exp = $getname[0]['comment']; + if(substr($exp,3,1) == "/" && substr($exp,6,1) == "/"){ + $exp = $exp; + }else{ + $getname = $API->comm("/sys/sch/print", array("?name" => "$uname")); + $exp = $getname[0]['next-run']; + } + +} +?> + + + + Voucher-<?= $hotspotname."-".$uname;?> + + + + + +
+ + \ No newline at end of file diff --git a/system/index.php b/system/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/system/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/system/scheduler.php b/system/scheduler.php new file mode 100644 index 0000000..842cf46 --- /dev/null +++ b/system/scheduler.php @@ -0,0 +1,111 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + $getsch = $API->comm("/system/scheduler/print"); + $TotalReg = count($getsch); + + $countsch = $API->comm("/system/scheduler/print", array( + "count-only" => "", + )); + +} +?> +
+
+
+
+

System Scheduler + 1) { + echo "$countsch items"; +}; +echo ""; +?> +   |    +

+
+
+
+ +
+
+ + + + + + + + + + + + + + +"; + ?> + "; + } else { + $uriprocess = "'./?disable-scheduler=" . $id . "&session=" . $session . "'"; + echo ""; + } + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + ?> + +
Name Start Date Start Time Interval Next Run Run Count Comment
       + " . $name . "" . $startd . "" . $startt . "" . $interval . "" . $nextrun . "" . $runcount . "" . $comment . "
+
+
+
+
+
+
\ No newline at end of file diff --git a/traffic/index.php b/traffic/index.php new file mode 100644 index 0000000..00b593c --- /dev/null +++ b/traffic/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/traffic/traffic.php b/traffic/traffic.php new file mode 100644 index 0000000..08ef3a2 --- /dev/null +++ b/traffic/traffic.php @@ -0,0 +1,69 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if(!isset($_SESSION["mikhmon"])){ + header("Location:../admin.php?id=login"); +}else{ +// load session MikroTik +$session = $_GET['session']; +$interface = $_GET['iface']; +//echo $interface +// load config +include('../include/config.php'); +include('../include/readcfg.php'); + +// routeros api +include_once('../lib/routeros_api.class.php'); +include_once('../lib/formatbytesbites.php'); +$API = new RouterosAPI(); +$API->debug = false; + + if($API->connect( $iphost, $userhost, decrypt($passwdhost))){ + +//$getinterface = $API->comm("/interface/print"); + //$interface = $getinterface[$iface-1]['name']; + $getinterfacetraffic = $API->comm("/interface/monitor-traffic", array( + "interface" => "$interface", + "once" => "", + )); + + $rows = array(); $rows2 = array(); + + $ftx = $getinterfacetraffic[0]['tx-bits-per-second']; + $frx = $getinterfacetraffic[0]['rx-bits-per-second']; + + $rows['name'] = 'Tx'; + $rows['data'][] = $ftx; + $rows2['name'] = 'Rx'; + $rows2['data'][] = $frx; + + }else{ + echo "Connection Failed!!"; + } + + $API->disconnect(); + + $result = array(); + + array_push($result,$rows); + array_push($result,$rows2); + print json_encode($result); +} +?> \ No newline at end of file diff --git a/traffic/trafficmonitor.php b/traffic/trafficmonitor.php new file mode 100644 index 0000000..701d384 --- /dev/null +++ b/traffic/trafficmonitor.php @@ -0,0 +1,163 @@ +. + */ +session_start(); +// hide all error +error_reporting(0); +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + +} +?> + +
+

+ +
+
+ comm("/interface/print"); + $interface = $getinterface[$iface - 1]['name']; + $TotalReg = count($getinterface); + + ?> +
+ +
+ +
+
+
\ No newline at end of file diff --git a/user/usersFile b/user/usersFile new file mode 100644 index 0000000..64435bd --- /dev/null +++ b/user/usersFile @@ -0,0 +1 @@ +test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/ \ No newline at end of file diff --git a/voucher/default-small.php b/voucher/default-small.php new file mode 100644 index 0000000..e550812 --- /dev/null +++ b/voucher/default-small.php @@ -0,0 +1,51 @@ + + + + + + + + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kode Voucher
UsernamePassword
+
+
\ No newline at end of file diff --git a/voucher/default-thermal.php b/voucher/default-thermal.php new file mode 100644 index 0000000..e91ae6f --- /dev/null +++ b/voucher/default-thermal.php @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + +
logo
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kode Voucher
UsernamePassword
+ +
Login: http://
+
\ No newline at end of file diff --git a/voucher/default.php b/voucher/default.php new file mode 100644 index 0000000..a013d10 --- /dev/null +++ b/voucher/default.php @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + +
logo
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kode Voucher
Username
Password
UsernamePassword
+
+ +
Login: http://
+
\ No newline at end of file diff --git a/voucher/index.php b/voucher/index.php new file mode 100644 index 0000000..53db45d --- /dev/null +++ b/voucher/index.php @@ -0,0 +1,20 @@ +. + */ +echo ""; +?> + diff --git a/voucher/print.php b/voucher/print.php new file mode 100644 index 0000000..06a50df --- /dev/null +++ b/voucher/print.php @@ -0,0 +1,209 @@ +. + */ +session_start(); + +error_reporting(0); + +ob_start("ob_gzhandler"); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + + date_default_timezone_set($_SESSION['timezone']); + +// load session MikroTik + $session = $_GET['session']; + +// load config + include('../include/config.php'); + include('../include/readcfg.php'); + + include('../lib/formatbytesbites.php'); + + $id = $_GET['id']; + $qr = $_GET['qr']; + $small = $_GET['small']; + $userp = $_GET['user']; + + require('../lib/routeros_api.class.php'); + $API = new RouterosAPI(); + $API->debug = false; + $API->connect($iphost, $userhost, decrypt($passwdhost)); + + + + if ($userp != "") { + $usermode = explode('-', $userp)[0]; + $pulluser = explode('-', $userp); + $iuser = count($pulluser); + $prefix = explode('-', $userp)[$iuser - 2]; + $user = explode('-', $userp)[$iuser - 1]; + if ($iuser == 3) { + $user = $prefix . "-" . $user; + } else { + $user = $user; + } + $getuser = $API->comm("/ip/hotspot/user/print", array("?name" => "$user")); + $TotalReg = count($getuser); + } elseif ($id != "") { + $usermode = explode('-', $id)[0]; + $getuser = $API->comm('/ip/hotspot/user/print', array("?comment" => "$id", "?uptime" => "0s")); + $TotalReg = count($getuser); + } + $getuprofile = $getuser[0]['profile']; + + + $getprofile = $API->comm("/ip/hotspot/user/profile/print", array("?name" => "$getuprofile")); + $getsharedu = $getprofile[0]['shared-users']; + $ponlogin = $getprofile[0]['on-login']; + $validity = explode(",", $ponlogin)[3]; + $getprice = explode(",", $ponlogin)[2]; + $getsprice = explode(",", $ponlogin)[4]; + + + + if($getsprice == "0" && $getprice != "0"){ + if ($currency == in_array($currency, $cekindo['indo'])) { + $price = $currency . " " . number_format((float)$getprice, 0, ",", "."); + } else { + $price = $currency . " " . number_format((float)$getprice, 2); + } + }else if($getsprice != "0"){ + if ($currency == in_array($currency, $cekindo['indo'])) { + $price = $currency . " " . number_format((float)$getsprice, 0, ",", "."); + } else { + $price = $currency . " " . number_format((float)$getsprice, 2); + } + }else if ($getsprice == "0") { + $price = ""; + } + + + + + $logo = "../img/logo-" . $session . ".png"; + if (file_exists($logo)) { + $logo = "../img/logo-" . $session . ".png?t=". str_replace(" ","_",date("Y-m-d H:i:s")); + } else { + $logo = "../img/logo.png?t=". str_replace(" ","_",date("Y-m-d H:i:s")); + } + +} +?> + + + + Voucher-<?= $hotspotname . "-" . $getuprofile . "-" . $id; ?> + + + + + + + + + + + "; + + $num = $i + 1; + ?> + + + + + + diff --git a/voucher/printbt.php b/voucher/printbt.php new file mode 100644 index 0000000..c6bfe36 --- /dev/null +++ b/voucher/printbt.php @@ -0,0 +1,40 @@ + + \ No newline at end of file diff --git a/voucher/temp.php b/voucher/temp.php new file mode 100644 index 0000000..1ed9f72 --- /dev/null +++ b/voucher/temp.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/voucher/template-small.php b/voucher/template-small.php new file mode 100644 index 0000000..917047b --- /dev/null +++ b/voucher/template-small.php @@ -0,0 +1,93 @@ + MASA AKTIF : ".substr($validity,0,-1)." HARI"; +}else if(substr($validity,-1) == "h"){ + $validity = "MASA AKTIF : ".substr($validity,0,-1)."Jam"; +} +if(substr($timelimit,-1) == "d" & strlen($timelimit) >3){ + $timelimit = "Durasi:".((substr($timelimit,0,-1)*7) + substr($timelimit, 2,1))." HARI"; +}else if(substr($timelimit,-1) == "d"){ + $timelimit = "Durasi:".substr($timelimit,0,-1)." HARI"; +}else if(substr($timelimit,-1) == "h"){ + $timelimit = "Durasi:".substr($timelimit,0,-1)."Jam"; +}else if(substr($timelimit,-1) == "w"){ + $timelimit = "Durasi:".(substr($timelimit,0,-1)*7)." HARI"; +} +if($getsprice == "3000"){ $color = "#800000";} +elseif($getsprice == "1000"){ $color = "#424242";} +elseif($getsprice == "2000"){ $color = "#424242";} +elseif($getsprice == "3000"){ $color = "#800000";} +elseif($getsprice == "5000"){ $color = "#FF4500";} +elseif($getsprice == "10000"){ $color = "#424242";} +elseif($getsprice == "15000"){ $color = "#228B22";} +elseif($getsprice == "20000"){ $color = "#008000";} +elseif($getsprice == "30000"){ $color = "#FF00FF";} +elseif($getsprice == "60000"){ $color = "#E60C00";} +elseif($getsprice == "70000"){ $color = "#FF0000";} +else{ $color = "#BA68C8";} +?> + + + + + + + + + + + + +
+ + + + + + +
+
+
+ +
+
+
+ +
+Rp +
+ +
+
+ + + + + + + +
+
+
+ +
+ +
Pass: ".$password;?>
+ +
+
+msr.net +
+ +
+
+ \ No newline at end of file diff --git a/voucher/template-thermal.php b/voucher/template-thermal.php new file mode 100644 index 0000000..9824d50 --- /dev/null +++ b/voucher/template-thermal.php @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + +
logo
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kode Voucher
UsernamePassword
+ +
Login: http://
+
\ No newline at end of file diff --git a/voucher/template.php b/voucher/template.php new file mode 100644 index 0000000..9ce8ead --- /dev/null +++ b/voucher/template.php @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + +
logo
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Kode Voucher
Username
Password
UsernamePassword
+
+ +
Login: http://
+
\ No newline at end of file diff --git a/voucher/variable.php b/voucher/variable.php new file mode 100644 index 0000000..1d28ae2 --- /dev/null +++ b/voucher/variable.php @@ -0,0 +1,47 @@ + +Logo : + + +Hotspotname : + + +Username : + + +Password : + + +Validity : + + +Time Limit : + + +Data Limit : + + +Price : + + +Profile : + + +Comment : + + +DNS Name Hotspot : + + +QR Code : + + +Number Voucher: + + + +Conditional : +$usermode = "vc" +username = password + +$usermode = "up" +username & password \ No newline at end of file diff --git a/voucher/vpreview.php b/voucher/vpreview.php new file mode 100644 index 0000000..abb6f2c --- /dev/null +++ b/voucher/vpreview.php @@ -0,0 +1,163 @@ +. + */ +session_start(); + +error_reporting(0); + +ob_start("ob_gzhandler"); + +if (!isset($_SESSION["mikhmon"])) { + header("Location:../admin.php?id=login"); +} else { + +// load session MikroTik + $session = $_GET['session']; + +// load config + include('../include/config.php'); + include('../include/readcfg.php'); + + include('../lib/formatbytesbites.php'); + + $id = $_GET['id']; + $qr = $_GET['qr']; + $usermode = $_GET['usermode']; + $small = $_GET['small']; + $userp = $_GET['user']; + + + $logo = "../img/logo-" . $session . ".png"; + if (file_exists($logo)) { + $logo = "../img/logo-" . $session . ".png"; + } else { + $logo = "../img/logo.png"; + } + + + $username = "mikhmon"; + $password = "1234"; + $timelimit = "6h"; + $getdatalimit = "1073741824"; + $comment = "test"; + $validity = "1d"; + $profile = "6Jam"; + + +if ($currency == in_array($currency, $cekindo['indo'])) { + $getprice = "5000"; + $price = $currency . " " . number_format((float)$getprice, 0, ",", "."); +} else { + $getprice = "10"; + $price = $currency . " " . number_format((float)$getprice, 2); +} + + + if ($getdatalimit == 0) { + $datalimit = ""; + } else { + $datalimit = formatBytes($getdatalimit, 2); + } + + $urilogin = "http://$dnsname/login?username=$username&password=$password"; + $qrcode = " + + + "; + + $num = 1; + +} +?> + + + + Voucher-<?= $hotspotname . "-" . $getuprofile . "-" . $id; ?> + + + + + + + + + + + + + +