{"id":5068,"date":"2023-04-13T15:07:40","date_gmt":"2023-04-13T08:07:40","guid":{"rendered":"https:\/\/danielepais.com\/journal\/?p=5068"},"modified":"2023-04-13T15:10:03","modified_gmt":"2023-04-13T08:10:03","slug":"qr-codes-an-amazing-invention","status":"publish","type":"post","link":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/","title":{"rendered":"QR Codes &#8211; An Amazing Invention"},"content":{"rendered":"<p>QR codes, or Quick Response Codes, are an amazing invention.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/ywAAAAAAQABAAACAUwAOw==\" fifu-lazy=\"1\" fifu-data-sizes=\"auto\" fifu-data-srcset=\"https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/ebcb6c92b9dc\/qr-code-an-amazing-invention.webp?p=5068&w=75&h=0&c=0 75w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/7a299bf2699f\/qr-code-an-amazing-invention.webp?p=5068&w=100&h=0&c=0 100w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/91e7b43cca0f\/qr-code-an-amazing-invention.webp?p=5068&w=150&h=0&c=0 150w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/2d99a41d0039\/qr-code-an-amazing-invention.webp?p=5068&w=240&h=0&c=0 240w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/a5b1954d04de\/qr-code-an-amazing-invention.webp?p=5068&w=320&h=0&c=0 320w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/4818d61d4891\/qr-code-an-amazing-invention.webp?p=5068&w=500&h=0&c=0 500w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/e2d63124f4fe\/qr-code-an-amazing-invention.webp?p=5068&w=640&h=0&c=0 640w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/03cefefd8a54\/qr-code-an-amazing-invention.webp?p=5068&w=800&h=0&c=0 800w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/20dcecdce467\/qr-code-an-amazing-invention.webp?p=5068&w=1024&h=0&c=0 1024w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/d3a304d0c834\/qr-code-an-amazing-invention.webp?p=5068&w=1280&h=0&c=0 1280w, https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/78b15f4ff74c\/qr-code-an-amazing-invention.webp?p=5068&w=1600&h=0&c=0 1600w\" class=\"aligncenter size-full wp-image-5084\" title=\"QR Code \u2013 An Amazing Invention\" fifu-data-src=\"https:\/\/wp.fifu.app\/danielepais.com\/aHR0cHM6Ly9kYW5pZWxlcGFpcy5jb20vam91cm5hbC93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wNC9RUi1Db2RlLeKAky1Bbi1BbWF6aW5nLUludmVudGlvbi5qcGc\/5592018af9c4\/qr-code-an-amazing-invention.webp?p=5068\" alt=\"QR Code \u2013 An Amazing Invention\" width=\"1280\" height=\"720\" \/><\/p>\n<p>They allow consumers to scan them with their smartphone and be taken directly to a website or app without having to enter a web address.<\/p>\n<p>They have come a long way from their humble origins and are now widely accepted as a marketing tool. Thankfully, the coronavirus (COVID-19) pandemic has given them a fresh lease of life and refocused their potential for businesses.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6ac83eb2053e3\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #18bc9c;color:#18bc9c\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #18bc9c;color:#18bc9c\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6ac83eb2053e3\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Definition_and_brief_history_of_QR_codes\" >Definition and brief history of QR codes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Importance_of_QR_codes_in_todays_world\" >Importance of QR codes in today&#8217;s world<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Advantages_of_using_QR_codes\" >Advantages of using QR codes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Benefits_of_QR_codes_for_consumers\" >Benefits of QR codes for consumers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Tips_for_creating_effective_QR_codes\" >Tips for creating effective QR codes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Best_practices_for_designing_QR_codes\" >Best practices for designing QR codes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#QR_codes_and_data_privacy\" >QR codes and data privacy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#QR_Codes_In_conclusion\" >QR Codes: In conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#FAQ\" >FAQ<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#What_is_a_QR_code\" >What is a QR code?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#How_do_I_scan_a_QR_code\" >How do I scan a QR code?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Who_invented_QR_codes\" >Who invented QR codes?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#What_can_QR_codes_be_used_for\" >What can QR codes be used for?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Can_I_create_my_own_QR_code\" >Can I create my own QR code?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Are_QR_codes_secure\" >Are QR codes secure?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#How_long_do_QR_codes_last\" >How long do QR codes last?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Can_I_customize_the_design_of_a_QR_code\" >Can I customize the design of a QR code?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Do_I_need_an_internet_connection_to_scan_a_QR_code\" >Do I need an internet connection to scan a QR code?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Are_QR_codes_still_relevant\" >Are QR codes still relevant?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Make_your_own_QR_code_with_our_free_tool\" >Make your own QR code with our free tool<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Make_your_own_QR_code_generator_and_host_it_in_your_website\" >Make your own QR code generator and host it in your website<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Step_1\" >Step 1<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Step_2\" >Step 2<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Step_3\" >Step 3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Step_4\" >Step 4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#Step_5\" >Step 5<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Definition_and_brief_history_of_QR_codes\"><\/span>Definition and brief history of QR codes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes are a type of barcode that can be scanned by smartphones, providing a quick and easy way to access information or services. They are a powerful marketing tool and an excellent option for any business looking to reach consumers quickly.<\/p>\n<p>A QR code is a two-dimensional image made up of black squares arranged in a grid on a white background. The <a href=\"https:\/\/danielepais.com\/journal\/design-of-the-day-30-04-2020\/\">design<\/a> includes three distinctive squares in the upper left, upper right, and lower left corners, as well as a smaller square (or multiple squares) near the fourth corner.<\/p>\n<p>When a QR code is scanned by a device with scanning capabilities, it\u2019s analyzed using patterns that are present throughout the image. A two-dimensional digital image sensor detects the distinctive squares and small dots, then a programmed processor analyzes them and extracts required data.<\/p>\n<p>The data can then be recomposed into a format that a QR reader recognizes. This can be a URL to a website, an internal product ID, or other types of information. A QR code also features a Quiet Zone, which helps a QR reader distinguish what is and isn\u2019t contained in the code.<\/p>\n<p>The original QR code was created by Masahiro Hara at Denso Wave in 1994, but it took two decades for the technology to gain popularity and become commonplace. It\u2019s only now that smartphone technology has made it possible to scan and process these pixelated codes with ease, turning them into an extremely useful marketing tool for businesses of all sizes.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Importance_of_QR_codes_in_todays_world\"><\/span>Importance of QR codes in today&#8217;s world<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes are an amazing invention that have become a part of many peoples lives. Whether it is helping to validate concert tickets or scanning menus in restaurants, these barcodes help people access information more quickly.<\/p>\n<p>Unlike traditional barcodes, QR codes are designed to encode and provide information along two axes. This makes them much faster than traditional barcodes.<\/p>\n<p>These codes are also incredibly flexible and can be used for a wide range of different purposes. They can be used to open a URL, link to an online form or even send an email message.<\/p>\n<p>Another way that QR codes can be used is to link to a file. This can be anything from PDF <a href=\"https:\/\/danielepais.com\/journal\/encrypt-files-on-linux-using-veracrypt\/\">files<\/a> to MP4 videos.<\/p>\n<p>They can also be used to transfer vCards, which are electronic business cards that contain a name, title, photo, phone number and email address. These are extremely convenient and save time and money on printing and mailing physical business cards.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Advantages_of_using_QR_codes\"><\/span>Advantages of using QR codes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes are an amazing invention. They allow people to <a href=\"https:\/\/www.nbcnews.com\/id\/wbna46760094\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">connect with a business directly<\/a> through their mobile devices, ensuring that they are always aware of what is happening at the business.<\/p>\n<p>They also allow businesses to track the success of their marketing campaigns in real time and determine which tactics are working. This is incredibly valuable information, as it allows them to better understand their audience and develop more effective marketing strategies in the future.<\/p>\n<p>Another advantage of QR codes is that they are extremely versatile. They can be added to any type of marketing material, from billboards to business cards and packaging.<\/p>\n<p>However, despite their versatility, there are some disadvantages to using QR codes. First, they require an internet connection in order to <a href=\"https:\/\/danielepais.com\/journal\/work-on-pc-from-home\/\">work<\/a> properly.<\/p>\n<p>Second, they can be confusing for people who don\u2019t have experience with the technology. They can lead users to websites that they don\u2019t recognize or even put personal information at risk.<\/p>\n<p>Thankfully, these challenges can be overcome with a little planning and smart implementation. They can also be used to engage with targeted audiences and improve customer experiences.<\/p>\n<div class=\"boxlink\">Read also: <a title=\"Quick and easy make a WordPress Plugin \u2013 level 3\" href=\"https:\/\/danielepais.com\/journal\/quick-and-easy-make-a-wordpress-plugin-level-3\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Quick and easy make a WordPress Plugin \u2013 level 3<\/a><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Benefits_of_QR_codes_for_consumers\"><\/span>Benefits of QR codes for consumers<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes are an amazing invention that is used all over the world to deliver an enhanced customer experience. They are used by brands and businesses of all sizes to improve their marketing efforts, create new revenue streams, and drive consumer loyalty.<\/p>\n<p>One of the most important benefits of using QR codes is that they make it easier for consumers to access information. From product reviews and knowledge base articles to video tutorials, manufacturers and brands use QR codes to help consumers learn more about their products and services.<\/p>\n<p>Consumers love QR codes because they are easy to scan and can be accessed from any mobile device. They also allow customers to connect with a brand in a fun and interactive way.<\/p>\n<p>They also increase the number of people who complete the action the code is designed for, whether that&#8217;s visiting a website or filling out a form. Creating a QR code that links to social media is also a great way to encourage engagement and share your brand with others.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tips_for_creating_effective_QR_codes\"><\/span>Tips for creating effective QR codes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes are a versatile and unique technology that can be used in many different ways. They can increase brand awareness, promote products, share information, create customer feedback, and much more.<\/p>\n<p>To create an effective QR code, you need to keep a few things in mind. First, make sure the QR code is readable and easy to scan. This can be achieved by creating a design that includes a CTA, using a solid border around the QR code, and adding contrast to the design.<\/p>\n<p>You should also avoid pixelated or blurry QR codes. This makes it difficult for phones to recognize the codes.<\/p>\n<p>Moreover, you should try to keep the size of your codes as small as possible. This will allow more people to scan them and take advantage of the QR code\u2019s functionality.<\/p>\n<p>You can also add a picture to your QR code to attract attention. This can be a simple image of your business logo or an illustration.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Best_practices_for_designing_QR_codes\"><\/span>Best practices for designing QR codes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Whether you\u2019re designing QR Codes for your brand or to be used on your marketing materials, it\u2019s important to follow these best practices. These will help ensure that your QR Codes are readable and effective.<\/p>\n<p>First, you should choose a color that\u2019s in contrast with your background. This will make it easy for scanning apps to read your QR Code.<\/p>\n<p>You can also choose to give your QR Codes different edges or frames for added graphical flair. However, you should be sure to keep the QR Code\u2019s overall square shape.<\/p>\n<p>It\u2019s important to not reshape your QR Code too drastically, as this will make it difficult for scanners to read. This could result in fewer scans for your campaign.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"QR_codes_and_data_privacy\"><\/span>QR codes and data privacy<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes have become a popular tool for businesses and consumers. They allow people to interact with digital content and services without the need to touch a device. They also make it easier to connect the offline and online worlds.<\/p>\n<p>But while this convenience is wonderful, there are a few risks that come with them. Cybercriminals can use these codes to steal your personal information and money.<\/p>\n<p>Fortunately, there are ways to protect your privacy and security while using QR codes. The first step is to learn how to safely scan these codes.<\/p>\n<p>Another way to keep your data safe is to avoid downloading apps from QR codes. Bad actors can easily clone and spoof these codes, giving them the ability to download and install malware onto your device.<\/p>\n<p>You should also keep your personalized QR codes in a secure folder on your device and only scan them with an app that is trustworthy and verified. This is especially important for medical documents like vaccine passports. It will help prevent identity theft and fraud.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"QR_Codes_In_conclusion\"><\/span>QR Codes: In conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>QR codes have become an essential tool in today&#8217;s digital world. They offer a quick and easy way to access information, share data, and make transactions. With the widespread use of smartphones and mobile devices, QR codes have become a ubiquitous feature in marketing campaigns, retail stores, and healthcare facilities.<\/p>\n<p>QR codes are versatile and can be used in a variety of applications, including product labeling, ticketing, payment systems, and more. They provide a cost-effective and efficient solution for businesses to engage with their customers and offer personalized experiences.<\/p>\n<p>Looking ahead, the future of QR codes looks promising. As technology continues to advance, QR codes will become even more integrated into our daily lives. For example, some experts predict that QR codes will play a critical role in the development of contactless payment systems and other digital innovations.<\/p>\n<p>Overall, QR codes offer a convenient and effective way to bridge the gap between the digital and physical worlds. Their widespread use and versatility make them a valuable tool for businesses and consumers alike, and their future applications are limitless.<\/p>\n<div class=\"boxlink\">Read also: <a title=\"Make a WordPress no index plugin\" href=\"https:\/\/danielepais.com\/journal\/make-a-wordpress-no-index-plugin\/\" target=\"_blank\" rel=\"noopener\" data-wpel-link=\"internal\">Make a WordPress no index plugin<\/a><\/div>\n<h2><span class=\"ez-toc-section\" id=\"FAQ\"><\/span>FAQ<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Here are 10 frequently asked questions about QR codes:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_is_a_QR_code\"><\/span>What is a QR code?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A QR code is a two-dimensional barcode that can be scanned using a smartphone or QR code reader to quickly access information, such as a website, contact information, or product details.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_do_I_scan_a_QR_code\"><\/span>How do I scan a QR code?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To scan a QR code, you need a smartphone with a camera and a QR code reader app. Open the app and point your camera at the QR code. The app will automatically scan and decode the information.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Who_invented_QR_codes\"><\/span>Who invented QR codes?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>QR codes were invented by a subsidiary of Denso Corporation, a Japanese automotive company, in 1994. The lead inventor was Masahiro Hara.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_can_QR_codes_be_used_for\"><\/span>What can QR codes be used for?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>QR codes can be used for a variety of purposes, such as <a href=\"https:\/\/danielepais.com\/journal\/sharing-a-network-with-linux-and-windows-using-samba\/\">sharing<\/a> contact information, directing people to a website, providing product details, and even making payments.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Can_I_create_my_own_QR_code\"><\/span>Can I create my own QR code?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes, you can create your own QR code using a QR code generator website or app. Simply enter the information you want to share and the website\/app will generate a QR code for you to download and share.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Are_QR_codes_secure\"><\/span>Are QR codes secure?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>QR codes themselves are not secure or encrypted, but the information they link to can be secured. It&#8217;s important to be cautious when scanning QR codes, especially if you don&#8217;t know where the code came from.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_long_do_QR_codes_last\"><\/span>How long do QR codes last?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>QR codes can last indefinitely as long as they are not damaged or corrupted. However, it&#8217;s important to note that the information they link to may become outdated over time.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Can_I_customize_the_design_of_a_QR_code\"><\/span>Can I customize the design of a QR code?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes, many QR code generators allow you to customize the design of your QR code by adding colors, logos, and other graphics. However, it&#8217;s important to keep the QR code scannable and easily recognizable.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Do_I_need_an_internet_connection_to_scan_a_QR_code\"><\/span>Do I need an internet connection to scan a QR code?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes, you need an internet connection to scan a QR code that links to a website or other online resource. However, some QR codes may contain information that can be accessed offline.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Are_QR_codes_still_relevant\"><\/span>Are QR codes still relevant?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes, QR codes are still relevant and widely used today, especially in industries such as marketing, retail, and healthcare. With the rise of smartphone usage, QR codes offer a quick and easy way to access information on the go.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Make_your_own_QR_code_with_our_free_tool\"><\/span>Make your own QR code with our free tool<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Hey there! Want to create your own custom QR code? Look no further! Our free QR code generator tool allows you to easily make a unique and personalized code for your business, product, or personal use. Whether you want to link to a website, share contact information, or promote a special offer, our tool has got you covered. With just a few clicks, you can create a scannable QR code that stands out and grabs attention. Plus, it&#8217;s totally free! So what are you waiting for? Give it a try and see how easy it is to make your own custom QR code.<\/p>\n<p><a href=\"https:\/\/qr-code-generator.danielepais.com\/\" target=\"_blank\" rel=\"noopener\" data-cke-saved-href=\"https:\/\/qr-code-generator.danielepais.com\/\">TRY IT NOW<\/a><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Make_your_own_QR_code_generator_and_host_it_in_your_website\"><\/span>Make your own QR code generator and host it in your website<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Want to take your website to the next level? Try our make your own QR code generator with the provided HTML\/JS code and host it on your website! It&#8217;s an easy way to add some extra functionality to your site and create a customized experience for your users. With our free tool, you can generate unique QR codes that link to any URL or information you choose, and add them seamlessly to your website. Plus, our generator is totally customizable, so you can make sure it matches your branding and style. So why not give it a try and see how easy it is to make your website stand out with a custom QR code generator?<\/p>\n<p>Here is a quick tutorial on how to do it:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_1\"><\/span>Step 1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create an HTML file and name it whatever you like. For this tutorial I will call it index.html so that if is going to be part of a directory you do not need to call the actual HTML file. Below is the content to add to it.<\/p>\n<pre id=\"code-snippet-source-37\" class=\"code-snippet-source\"><code class=\"language-php\">&lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN&quot; &quot;http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd&quot;&gt;\r\n&lt;html xmlns=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot; xml:lang=&quot;en&quot; lang=&quot;en&quot;&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Free QR Code generator&lt;\/title&gt;\r\n&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=UTF-8&quot; \/&gt;\r\n&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\r\n&lt;link rel=&quot;stylesheet&quot; href=&quot;https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/4.7.0\/css\/font-awesome.min.css&quot;&gt;\r\n&lt;script type=&quot;text\/javascript&quot; src=&quot;jquery.min.js&quot;&gt;&lt;\/script&gt;\r\n&lt;script type=&quot;text\/javascript&quot; src=&quot;qrcode.js&quot;&gt;&lt;\/script&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;style type=&quot;text\/css&quot;&gt;\r\n\r\n\u00a0\u00a0 \u00a0html, body {\r\n\u00a0 height: 100%;\u00a0\r\n}\r\n\r\nbody {\r\n\u00a0 font-family: &#039;Open Sans&#039;, sans-serif;\r\n\u00a0 display: flex;\r\n\u00a0 margin: auto;\r\n\u00a0 justify-content: center;\r\n\u00a0 color: #333;\r\n\u00a0 background: rgb(34,193,195);\r\n\u00a0 background: radial-gradient(circle, rgba(34,193,195,1) 0%, rgba(253,187,45,1) 100%);\r\n}\r\n\r\n.container {\r\n\u00a0 margin: 100px 15px;\r\n\u00a0 max-width: 670px;\r\n\u00a0\u00a0\r\n\u00a0 @media screen and (min-width: 600px){\u00a0\r\n\u00a0 \u00a0 padding: 0 30px;\r\n\u00a0 }\r\n}\r\n\r\np {\r\n\u00a0 font-size: 16px;\r\n\u00a0 line-height: 26px;\r\n\u00a0 word-wrap: break-word;\r\n\u00a0 overflow-wrap: break-word;\r\n\u00a0 hyphens: auto;\r\n\u00a0\u00a0\r\n\u00a0 @media screen and (min-width: 600px){\u00a0\r\n\u00a0 \u00a0 font-size: 18px;\r\n\u00a0 \u00a0 line-height: 30px;\r\n\u00a0 }\r\n}\r\n\r\n.input {\r\n\u00a0 font-size: 16px;\r\n\u00a0 font-size: max(16px, 1em);\r\n\u00a0 font-family: inherit;\r\n\u00a0 padding: 0.25em 0.5em;\r\n\u00a0 background-color: #fff;\r\n\u00a0 border: 2px solid var(--input-border);\r\n\u00a0 border-radius: 4px;\r\n\u00a0 text-align: center;\r\n\u00a0 border-style: dotted;\r\n\u00a0 border-color: #ff0000\r\n}\r\n\r\n\r\n\u00a0\u00a0 \u00a0\r\n&lt;\/style&gt;\r\n\r\n&lt;body&gt;\r\n\r\n\u00a0\u00a0 \u00a0&lt;div style=&quot;padding-top: 7rem;&quot; align=&quot;center&quot;&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;h2&gt;&lt;i class=&quot;fa fa-qrcode&quot; style=&quot;font-size:48px;color:red&quot;&gt;&lt;\/i&gt;&lt;br&gt;dp-QR Code Generator&lt;\/h2&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;h3&gt;Please write your URL or any text \/ number below&lt;br&gt;&lt;span style=&quot;font-size: 0.8rem;&quot;&gt;Then press enter on your keyboard.&lt;br&gt;Once your QR code is generated you can right click and &quot;save as&quot; your image.&lt;\/span&gt;&lt;\/h3&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;input class=&quot;input&quot; id=&quot;text&quot; type=&quot;text&quot; value=&quot;https:\/\/yourdomain.com&quot; style=&quot;width:15rem; height: 2rem&quot; \/&gt;&lt;br \/&gt;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0&lt;div id=&quot;qrcode&quot; style=&quot;width:200px; height:200px; margin-top:15px;&quot;&gt;&lt;\/div&gt;\r\n\r\n\u00a0\u00a0 \u00a0&lt;\/div&gt;\r\n\r\n&lt;!-- JS --&gt;\u00a0\u00a0 \u00a0\r\n\r\n&lt;script type=&quot;text\/javascript&quot;&gt;\r\nvar qrcode = new QRCode(document.getElementById(&quot;qrcode&quot;), {\r\n\u00a0\u00a0 \u00a0width : 200,\r\n\u00a0\u00a0 \u00a0height : 200\r\n});\r\n\r\nfunction makeCode () {\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0var elText = document.getElementById(&quot;text&quot;);\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0if (!elText.value) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0alert(&quot;Input a text&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elText.focus();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return;\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0qrcode.makeCode(elText.value);\r\n}\r\n\r\nmakeCode();\r\n\r\n$(&quot;#text&quot;).\r\n\u00a0\u00a0 \u00a0on(&quot;blur&quot;, function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0makeCode();\r\n\u00a0\u00a0 \u00a0}).\r\n\u00a0\u00a0 \u00a0on(&quot;keydown&quot;, function (e) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (e.keyCode == 13) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0makeCode();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0});\r\n&lt;\/script&gt;\r\n&lt;\/body&gt;<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Step_2\"><\/span>Step 2<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create an empty index.svg file of 200&#215;100 px and place it on your main root.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Step_3\"><\/span>Step 3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create you hosted version of jquery.min.js (alternatively you can add a call to jquery web hosted version on your HTML head). Below is the content to add to it.<\/p>\n<pre id=\"code-snippet-source-38\" class=\"code-snippet-source\"><code class=\"language-php\">\/*! jQuery v1.8.3 jquery.com | jquery.org\/license *\/\r\n(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&amp;&amp;e.nodeType===1){var i=&quot;data-&quot;+n.replace(P,&quot;-$1&quot;).toLowerCase();r=e.getAttribute(i);if(typeof r==&quot;string&quot;){try{r=r===&quot;true&quot;?!0:r===&quot;false&quot;?!1:r===&quot;null&quot;?null:+r+&quot;&quot;===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t===&quot;data&quot;&amp;&amp;v.isEmptyObject(e[t]))continue;if(t!==&quot;toJSON&quot;)return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&amp;&amp;e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t==&quot;string&quot;){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)&gt;=0===n})}function lt(e){var t=ct.split(&quot;|&quot;),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r&lt;i;r++)v.event.add(t,n,u[n][r])}o.data&amp;&amp;(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&amp;&amp;t.clearAttributes(),t.mergeAttributes&amp;&amp;t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n===&quot;object&quot;?(t.parentNode&amp;&amp;(t.outerHTML=e.outerHTML),v.support.html5Clone&amp;&amp;e.innerHTML&amp;&amp;!v.trim(t.innerHTML)&amp;&amp;(t.innerHTML=e.innerHTML)):n===&quot;input&quot;&amp;&amp;Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&amp;&amp;(t.value=e.value)):n===&quot;option&quot;?t.selected=e.defaultSelected:n===&quot;input&quot;||n===&quot;textarea&quot;?t.defaultValue=e.defaultValue:n===&quot;script&quot;&amp;&amp;t.text!==e.text&amp;&amp;(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!=&quot;undefined&quot;?e.getElementsByTagName(&quot;*&quot;):typeof e.querySelectorAll!=&quot;undefined&quot;?e.querySelectorAll(&quot;*&quot;):[]}function _t(e){Et.test(e.type)&amp;&amp;(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,&quot;display&quot;)===&quot;none&quot;||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s&lt;o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,&quot;olddisplay&quot;),t?(!i[s]&amp;&amp;n.style.display===&quot;none&quot;&amp;&amp;(n.style.display=&quot;&quot;),n.style.display===&quot;&quot;&amp;&amp;Gt(n)&amp;&amp;(i[s]=v._data(n,&quot;olddisplay&quot;,nn(n.nodeName)))):(r=Dt(n,&quot;display&quot;),!i[s]&amp;&amp;r!==&quot;none&quot;&amp;&amp;v._data(n,&quot;olddisplay&quot;,r))}for(s=0;s&lt;o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display===&quot;none&quot;||n.style.display===&quot;&quot;)n.style.display=t?i[s]||&quot;&quot;:&quot;none&quot;}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||&quot;px&quot;):t}function en(e,t,n,r){var i=n===(r?&quot;border&quot;:&quot;content&quot;)?4:t===&quot;width&quot;?1:0,s=0;for(;i&lt;4;i+=2)n===&quot;margin&quot;&amp;&amp;(s+=v.css(e,n+$t[i],!0)),r?(n===&quot;content&quot;&amp;&amp;(s-=parseFloat(Dt(e,&quot;padding&quot;+$t[i]))||0),n!==&quot;margin&quot;&amp;&amp;(s-=parseFloat(Dt(e,&quot;border&quot;+$t[i]+&quot;Width&quot;))||0)):(s+=parseFloat(Dt(e,&quot;padding&quot;+$t[i]))||0,n!==&quot;padding&quot;&amp;&amp;(s+=parseFloat(Dt(e,&quot;border&quot;+$t[i]+&quot;Width&quot;))||0));return s}function tn(e,t,n){var r=t===&quot;width&quot;?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&amp;&amp;v.css(e,&quot;boxSizing&quot;)===&quot;border-box&quot;;if(r&lt;=0||r==null){r=Dt(e,t);if(r&lt;0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&amp;&amp;(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?&quot;border&quot;:&quot;content&quot;),i)+&quot;px&quot;}function nn(e){if(Wt[e])return Wt[e];var t=v(&quot;&lt;&quot;+e+&quot;&gt;&quot;).appendTo(i.body),n=t.css(&quot;display&quot;);t.remove();if(n===&quot;none&quot;||n===&quot;&quot;){Pt=i.body.appendChild(Pt||v.extend(i.createElement(&quot;iframe&quot;),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(&quot;&lt;!doctype html&gt;&lt;html&gt;&lt;body&gt;&quot;),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,&quot;display&quot;),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+&quot;[&quot;+(typeof i==&quot;object&quot;?t:&quot;&quot;)+&quot;]&quot;,i,n,r)});else if(!n&amp;&amp;v.type(t)===&quot;object&quot;)for(i in t)fn(e+&quot;[&quot;+i+&quot;]&quot;,t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!=&quot;string&quot;&amp;&amp;(n=t,t=&quot;*&quot;);var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u&lt;a;u++)r=o[u],s=\/^\\+\/.test(r),s&amp;&amp;(r=r.substr(1)||&quot;*&quot;),i=e[r]=e[r]||[],i[s?&quot;unshift&quot;:&quot;push&quot;](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f&lt;l&amp;&amp;(c||!u);f++)u=a[f](n,r,i),typeof u==&quot;string&quot;&amp;&amp;(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&amp;&amp;!o[&quot;*&quot;]&amp;&amp;(u=kn(e,n,r,i,&quot;*&quot;,o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&amp;&amp;((s[r]?e:i||(i={}))[r]=n[r]);i&amp;&amp;v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&amp;&amp;(n[l[s]]=r[s]);while(f[0]===&quot;*&quot;)f.shift(),i===t&amp;&amp;(i=e.mimeType||n.getResponseHeader(&quot;content-type&quot;));if(i)for(s in a)if(a[s]&amp;&amp;a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+&quot; &quot;+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&amp;&amp;f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&amp;&amp;(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!==&quot;*&quot;){if(u!==&quot;*&quot;&amp;&amp;u!==i){n=a[u+&quot; &quot;+i]||a[&quot;* &quot;+i];if(!n)for(r in a){s=r.split(&quot; &quot;);if(s[1]===i){n=a[u+&quot; &quot;+s[0]]||a[&quot;* &quot;+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&amp;&amp;(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&amp;&amp;e[&quot;throws&quot;])t=n(t);else try{t=n(t)}catch(l){return{state:&quot;parsererror&quot;,error:n?l:&quot;No conversion from &quot;+u+&quot; to &quot;+i}}}u=i}return{state:&quot;success&quot;,data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject(&quot;Microsoft.XMLHTTP&quot;)}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn[&quot;*&quot;]),i=0,s=r.length;for(;i&lt;s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n\/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s&lt;o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i&lt;1&amp;&amp;o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n&lt;r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i&lt;o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&amp;&amp;f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&amp;&amp;(i=s[1],s=e[n]=s[0]),n!==r&amp;&amp;(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&amp;&amp;&quot;expand&quot;in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&amp;&amp;Gt(e);n.queue||(l=v._queueHooks(e,&quot;fx&quot;),l.unqueued==null&amp;&amp;(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,&quot;fx&quot;).length||l.empty.fire()})})),e.nodeType===1&amp;&amp;(&quot;height&quot;in t||&quot;width&quot;in t)&amp;&amp;(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,&quot;display&quot;)===&quot;inline&quot;&amp;&amp;v.css(e,&quot;float&quot;)===&quot;none&quot;&amp;&amp;(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)===&quot;inline&quot;?p.display=&quot;inline-block&quot;:p.zoom=1)),n.overflow&amp;&amp;(p.overflow=&quot;hidden&quot;,v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s===&quot;toggle&quot;;if(s===(g?&quot;hide&quot;:&quot;show&quot;))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,&quot;fxshow&quot;)||v._data(e,&quot;fxshow&quot;,{}),&quot;hidden&quot;in u&amp;&amp;(g=u.hidden),a&amp;&amp;(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,&quot;fxshow&quot;,!0);for(t in d)v.style(e,t,d[t])});for(r=0;r&lt;o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&amp;&amp;(f.end=f.start,f.start=i===&quot;width&quot;||i===&quot;height&quot;?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i&lt;4;i+=2-t)n=$t[i],r[&quot;margin&quot;+n]=r[&quot;padding&quot;+n]=e;return t&amp;&amp;(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=\/[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)\/.source,g=\/\\S\/,y=\/\\s+\/,b=\/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$\/g,w=\/^(?:[^#&lt;]*(&lt;[\\w\\W]+&gt;)[^&gt;]*$|#([\\w\\-]*)$)\/,E=\/^&lt;(\\w+)\\s*\\\/?&gt;(?:&lt;\\\/\\1&gt;|)$\/,S=\/^[\\],:{}\\s]*$\/,x=\/(?:^|:|,)(?:\\s*\\[)+\/g,T=\/\\\\(?:[&quot;\\\\\\\/bfnrt]|u[\\da-fA-F]{4})\/g,N=\/&quot;[^&quot;\\\\\\r\\n]*&quot;|true|false|null|-?(?:\\d\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)\/g,C=\/^-ms-\/,k=\/-([\\da-z])\/gi,L=function(e,t){return(t+&quot;&quot;).toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener(&quot;DOMContentLoaded&quot;,A,!1),v.ready()):i.readyState===&quot;complete&quot;&amp;&amp;(i.detachEvent(&quot;onreadystatechange&quot;,A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e==&quot;string&quot;){e.charAt(0)===&quot;&lt;&quot;&amp;&amp;e.charAt(e.length-1)===&quot;&gt;&quot;&amp;&amp;e.length&gt;=3?s=[null,e,null]:s=w.exec(e);if(s&amp;&amp;(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&amp;&amp;n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&amp;&amp;v.isPlainObject(n)&amp;&amp;this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&amp;&amp;o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&amp;&amp;(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:&quot;&quot;,jquery:&quot;1.8.3&quot;,length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e&lt;0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t===&quot;find&quot;?r.selector=this.selector+(this.selector?&quot; &quot;:&quot;&quot;)+n:t&amp;&amp;(r.selector=this.selector+&quot;.&quot;+t+&quot;(&quot;+n+&quot;)&quot;),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),&quot;slice&quot;,l.call(arguments).join(&quot;,&quot;))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u==&quot;boolean&quot;&amp;&amp;(l=u,u=arguments[1]||{},a=2),typeof u!=&quot;object&quot;&amp;&amp;!v.isFunction(u)&amp;&amp;(u={}),f===a&amp;&amp;(u=this,--a);for(;a&lt;f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&amp;&amp;i&amp;&amp;(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&amp;&amp;v.isArray(r)?r:[]):o=r&amp;&amp;v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&amp;&amp;(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&amp;&amp;(e.$=a),t&amp;&amp;e.jQuery===v&amp;&amp;(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&amp;&amp;--v.readyWait&gt;0)return;r.resolveWith(i,[v]),v.fn.trigger&amp;&amp;v(i).trigger(&quot;ready&quot;).off(&quot;ready&quot;)},isFunction:function(e){return v.type(e)===&quot;function&quot;},isArray:Array.isArray||function(e){return v.type(e)===&quot;array&quot;},isWindow:function(e){return e!=null&amp;&amp;e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&amp;&amp;isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||&quot;object&quot;},isPlainObject:function(e){if(!e||v.type(e)!==&quot;object&quot;||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&amp;&amp;!p.call(e,&quot;constructor&quot;)&amp;&amp;!p.call(e.constructor.prototype,&quot;isPrototypeOf&quot;))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!=&quot;string&quot;?null:(typeof t==&quot;boolean&quot;&amp;&amp;(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!=&quot;string&quot;)return null;t=v.trim(t);if(e.JSON&amp;&amp;e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,&quot;@&quot;).replace(N,&quot;]&quot;).replace(x,&quot;&quot;)))return(new Function(&quot;return &quot;+t))();v.error(&quot;Invalid JSON: &quot;+t)},parseXML:function(n){var r,i;if(!n||typeof n!=&quot;string&quot;)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,&quot;text\/xml&quot;)):(r=new ActiveXObject(&quot;Microsoft.XMLDOM&quot;),r.async=&quot;false&quot;,r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName(&quot;parsererror&quot;).length)&amp;&amp;v.error(&quot;Invalid XML: &quot;+n),r},noop:function(){},globalEval:function(t){t&amp;&amp;g.test(t)&amp;&amp;(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,&quot;ms-&quot;).replace(k,L)},nodeName:function(e,t){return e.nodeName&amp;&amp;e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s&lt;o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s&lt;o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&amp;&amp;!d.call(&quot;\\ufeff\\u00a0&quot;)?function(e){return e==null?&quot;&quot;:d.call(e)}:function(e){return e==null?&quot;&quot;:(e+&quot;&quot;).replace(b,&quot;&quot;)},makeArray:function(e,t){var n,r=t||[];return e!=null&amp;&amp;(n=v.type(e),e.length==null||n===&quot;string&quot;||n===&quot;function&quot;||n===&quot;regexp&quot;||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n&lt;0?Math.max(0,r+n):n:0;for(;n&lt;r;n++)if(n in t&amp;&amp;t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r==&quot;number&quot;)for(;s&lt;r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s&lt;o;s++)r=!!t(e[s],s),n!==r&amp;&amp;i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&amp;&amp;typeof a==&quot;number&quot;&amp;&amp;(a&gt;0&amp;&amp;e[0]&amp;&amp;e[a-1]||a===0||v.isArray(e));if(f)for(;u&lt;a;u++)i=n(e[u],u,r),i!=null&amp;&amp;(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&amp;&amp;(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n==&quot;string&quot;&amp;&amp;(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&amp;&amp;typeof r==&quot;object&quot;){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&amp;&amp;v.isFunction(i),f&amp;&amp;(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l&lt;c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState===&quot;complete&quot;)setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener(&quot;DOMContentLoaded&quot;,A,!1),e.addEventListener(&quot;load&quot;,v.ready,!1);else{i.attachEvent(&quot;onreadystatechange&quot;,A),e.attachEvent(&quot;onload&quot;,v.ready);var n=!1;try{n=e.frameElement==null&amp;&amp;i.documentElement}catch(s){}n&amp;&amp;n.doScroll&amp;&amp;function o(){if(!v.isReady){try{n.doScroll(&quot;left&quot;)}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each(&quot;Boolean Number String Function Array Date RegExp Object&quot;.split(&quot; &quot;),function(e,t){O[&quot;[object &quot;+t+&quot;]&quot;]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e==&quot;string&quot;?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&amp;&amp;[],l=function(t){n=e.memory&amp;&amp;t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&amp;&amp;u&lt;o;u++)if(a[u].apply(t[0],t[1])===!1&amp;&amp;e.stopOnFalse){n=!1;break}i=!1,a&amp;&amp;(f?f.length&amp;&amp;l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i===&quot;function&quot;?(!e.unique||!c.has(n))&amp;&amp;a.push(n):n&amp;&amp;n.length&amp;&amp;i!==&quot;string&quot;&amp;&amp;r(n)})})(arguments),i?o=a.length:n&amp;&amp;(s=t,l(n))}return this},remove:function(){return a&amp;&amp;v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))&gt;-1)a.splice(n,1),i&amp;&amp;(n&lt;=o&amp;&amp;o--,n&lt;=u&amp;&amp;u--)}),this},has:function(e){return v.inArray(e,a)&gt;-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&amp;&amp;(!r||f)&amp;&amp;(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[[&quot;resolve&quot;,&quot;done&quot;,v.Callbacks(&quot;once memory&quot;),&quot;resolved&quot;],[&quot;reject&quot;,&quot;fail&quot;,v.Callbacks(&quot;once memory&quot;),&quot;rejected&quot;],[&quot;notify&quot;,&quot;progress&quot;,v.Callbacks(&quot;memory&quot;)]],n=&quot;pending&quot;,r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&amp;&amp;v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+&quot;With&quot;](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&amp;&amp;o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+&quot;With&quot;]=o.fireWith}),r.promise(i),e&amp;&amp;e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&amp;&amp;v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length&gt;1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r&gt;1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t&lt;r;t++)n[t]&amp;&amp;v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement(&quot;div&quot;);p.setAttribute(&quot;className&quot;,&quot;t&quot;),p.innerHTML=&quot; \u00a0&lt;link\/&gt;&lt;table&gt;&lt;\/table&gt;&lt;a href=&#039;\/a&#039;&gt;a&lt;\/a&gt;&lt;input type=&#039;checkbox&#039;\/&gt;&quot;,n=p.getElementsByTagName(&quot;*&quot;),r=p.getElementsByTagName(&quot;a&quot;)[0];if(!n||!r||!n.length)return{};s=i.createElement(&quot;select&quot;),o=s.appendChild(i.createElement(&quot;option&quot;)),u=p.getElementsByTagName(&quot;input&quot;)[0],r.style.cssText=&quot;top:1px;float:left;opacity:.5&quot;,t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName(&quot;tbody&quot;).length,htmlSerialize:!!p.getElementsByTagName(&quot;link&quot;).length,style:\/top\/.test(r.getAttribute(&quot;style&quot;)),hrefNormalized:r.getAttribute(&quot;href&quot;)===&quot;\/a&quot;,opacity:\/^0.5\/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value===&quot;on&quot;,optSelected:o.selected,getSetAttribute:p.className!==&quot;t&quot;,enctype:!!i.createElement(&quot;form&quot;).enctype,html5Clone:i.createElement(&quot;nav&quot;).cloneNode(!0).outerHTML!==&quot;&lt;:nav&gt;&lt;\/:nav&gt;&quot;,boxModel:i.compatMode===&quot;CSS1Compat&quot;,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&amp;&amp;p.attachEvent&amp;&amp;p.fireEvent&amp;&amp;(p.attachEvent(&quot;onclick&quot;,h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent(&quot;onclick&quot;),p.detachEvent(&quot;onclick&quot;,h)),u=i.createElement(&quot;input&quot;),u.value=&quot;t&quot;,u.setAttribute(&quot;type&quot;,&quot;radio&quot;),t.radioValue=u.value===&quot;t&quot;,u.setAttribute(&quot;checked&quot;,&quot;checked&quot;),u.setAttribute(&quot;name&quot;,&quot;t&quot;),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f=&quot;on&quot;+l,c=f in p,c||(p.setAttribute(f,&quot;return;&quot;),c=typeof p[f]==&quot;function&quot;),t[l+&quot;Bubbles&quot;]=c;return v(function(){var n,r,s,o,u=&quot;padding:0;margin:0;border:0;display:block;overflow:hidden;&quot;,a=i.getElementsByTagName(&quot;body&quot;)[0];if(!a)return;n=i.createElement(&quot;div&quot;),n.style.cssText=&quot;visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px&quot;,a.insertBefore(n,a.firstChild),r=i.createElement(&quot;div&quot;),n.appendChild(r),r.innerHTML=&quot;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;\/td&gt;&lt;td&gt;t&lt;\/td&gt;&lt;\/tr&gt;&lt;\/table&gt;&quot;,s=r.getElementsByTagName(&quot;td&quot;),s[0].style.cssText=&quot;padding:0;margin:0;border:0;display:none&quot;,c=s[0].offsetHeight===0,s[0].style.display=&quot;&quot;,s[1].style.display=&quot;none&quot;,t.reliableHiddenOffsets=c&amp;&amp;s[0].offsetHeight===0,r.innerHTML=&quot;&quot;,r.style.cssText=&quot;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;&quot;,t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&amp;&amp;(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!==&quot;1%&quot;,t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:&quot;4px&quot;}).width===&quot;4px&quot;,o=i.createElement(&quot;div&quot;),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width=&quot;0&quot;,r.style.width=&quot;1px&quot;,r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!=&quot;undefined&quot;&amp;&amp;(r.innerHTML=&quot;&quot;,r.style.cssText=u+&quot;width:1px;padding:1px;display:inline;zoom:1&quot;,t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display=&quot;block&quot;,r.style.overflow=&quot;visible&quot;,r.innerHTML=&quot;&lt;div&gt;&lt;\/div&gt;&quot;,r.firstChild.style.width=&quot;5px&quot;,t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=\/(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$\/,P=\/([A-Z])\/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:&quot;jQuery&quot;+(v.fn.jquery+Math.random()).replace(\/\\D\/g,&quot;&quot;),noData:{embed:!0,object:&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot;,applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&amp;&amp;!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n==&quot;string&quot;,f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&amp;&amp;u;if((!c||!l[c]||!i&amp;&amp;!l[c].data)&amp;&amp;a&amp;&amp;r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n==&quot;object&quot;||typeof n==&quot;function&quot;)i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&amp;&amp;(s[v.camelCase(n)]=r),a?(o=s[n],o==null&amp;&amp;(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(&quot; &quot;)));for(i=0,s=t.length;i&lt;s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&amp;&amp;v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&amp;&amp;e.getAttribute(&quot;classid&quot;)===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&amp;&amp;!v._data(a,&quot;parsedAttrs&quot;)){s=a.attributes;for(u=s.length;f&lt;u;f++)o=s[f].name,o.indexOf(&quot;data-&quot;)||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,&quot;parsedAttrs&quot;,!0)}}return l}return typeof e==&quot;object&quot;?this.each(function(){v.data(this,e)}):(r=e.split(&quot;.&quot;,2),r[1]=r[1]?&quot;.&quot;+r[1]:&quot;&quot;,i=r[1]+&quot;!&quot;,v.access(this,function(n){if(n===t)return l=this.triggerHandler(&quot;getData&quot;+i,[r[0]]),l===t&amp;&amp;a&amp;&amp;(l=v.data(a,e),l=H(a,e,l)),l===t&amp;&amp;r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler(&quot;setData&quot;+i,r),v.data(this,e,n),t.triggerHandler(&quot;changeData&quot;+i,r)})},null,n,arguments.length&gt;1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||&quot;fx&quot;)+&quot;queue&quot;,r=v._data(e,t),n&amp;&amp;(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||&quot;fx&quot;;var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i===&quot;inprogress&quot;&amp;&amp;(i=n.shift(),r--),i&amp;&amp;(t===&quot;fx&quot;&amp;&amp;n.unshift(&quot;inprogress&quot;),delete s.stop,i.call(e,o,s)),!r&amp;&amp;s&amp;&amp;s.empty.fire()},_queueHooks:function(e,t){var n=t+&quot;queueHooks&quot;;return v._data(e,n)||v._data(e,n,{empty:v.Callbacks(&quot;once memory&quot;).add(function(){v.removeData(e,t+&quot;queue&quot;,!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!=&quot;string&quot;&amp;&amp;(n=e,e=&quot;fx&quot;,r--),arguments.length&lt;r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e===&quot;fx&quot;&amp;&amp;t[0]!==&quot;inprogress&quot;&amp;&amp;v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||&quot;fx&quot;,this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||&quot;fx&quot;,[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!=&quot;string&quot;&amp;&amp;(n=e,e=t),e=e||&quot;fx&quot;;while(u--)r=v._data(o[u],e+&quot;queueHooks&quot;),r&amp;&amp;r.empty&amp;&amp;(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=\/[\\t\\r\\n]\/g,R=\/\\r\/g,U=\/^(?:button|input)$\/i,z=\/^(?:button|input|object|select|textarea)$\/i,W=\/^a(?:rea|)$\/i,X=\/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$\/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length&gt;1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length&gt;1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&amp;&amp;typeof e==&quot;string&quot;){t=e.split(y);for(n=0,r=this.length;n&lt;r;n++){i=this[n];if(i.nodeType===1)if(!i.className&amp;&amp;t.length===1)i.className=e;else{s=&quot; &quot;+i.className+&quot; &quot;;for(o=0,u=t.length;o&lt;u;o++)s.indexOf(&quot; &quot;+t[o]+&quot; &quot;)&lt;0&amp;&amp;(s+=t[o]+&quot; &quot;);i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&amp;&amp;typeof e==&quot;string&quot;||e===t){n=(e||&quot;&quot;).split(y);for(u=0,a=this.length;u&lt;a;u++){i=this[u];if(i.nodeType===1&amp;&amp;i.className){r=(&quot; &quot;+i.className+&quot; &quot;).replace(q,&quot; &quot;);for(s=0,o=n.length;s&lt;o;s++)while(r.indexOf(&quot; &quot;+n[s]+&quot; &quot;)&gt;=0)r=r.replace(&quot; &quot;+n[s]+&quot; &quot;,&quot; &quot;);i.className=e?v.trim(r):&quot;&quot;}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t==&quot;boolean&quot;;return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n===&quot;string&quot;){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?&quot;addClass&quot;:&quot;removeClass&quot;](i)}else if(n===&quot;undefined&quot;||n===&quot;boolean&quot;)this.className&amp;&amp;v._data(this,&quot;__className__&quot;,this.className),this.className=this.className||e===!1?&quot;&quot;:v._data(this,&quot;__className__&quot;)||&quot;&quot;})},hasClass:function(e){var t=&quot; &quot;+e+&quot; &quot;,n=0,r=this.length;for(;n&lt;r;n++)if(this[n].nodeType===1&amp;&amp;(&quot; &quot;+this[n].className+&quot; &quot;).replace(q,&quot; &quot;).indexOf(t)&gt;=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&amp;&amp;&quot;get&quot;in n&amp;&amp;(r=n.get(s,&quot;value&quot;))!==t?r:(r=s.value,typeof r==&quot;string&quot;?r.replace(R,&quot;&quot;):r==null?&quot;&quot;:r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s=&quot;&quot;:typeof s==&quot;number&quot;?s+=&quot;&quot;:v.isArray(s)&amp;&amp;(s=v.map(s,function(e){return e==null?&quot;&quot;:e+&quot;&quot;})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!(&quot;set&quot;in n)||n.set(this,s,&quot;value&quot;)===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type===&quot;select-one&quot;||i&lt;0,o=s?null:[],u=s?i+1:r.length,a=i&lt;0?u:s?i:0;for(;a&lt;u;a++){n=r[a];if((n.selected||a===i)&amp;&amp;(v.support.optDisabled?!n.disabled:n.getAttribute(&quot;disabled&quot;)===null)&amp;&amp;(!n.parentNode.disabled||!v.nodeName(n.parentNode,&quot;optgroup&quot;))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find(&quot;option&quot;).each(function(){this.selected=v.inArray(v(this).val(),n)&gt;=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&amp;&amp;v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute==&quot;undefined&quot;)return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&amp;&amp;(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&amp;&amp;&quot;set&quot;in o&amp;&amp;u&amp;&amp;(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+&quot;&quot;),r)}return o&amp;&amp;&quot;get&quot;in o&amp;&amp;u&amp;&amp;(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&amp;&amp;e.nodeType===1){r=t.split(y);for(;o&lt;r.length;o++)i=r[o],i&amp;&amp;(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,&quot;&quot;),e.removeAttribute(V?i:n),s&amp;&amp;n in e&amp;&amp;(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&amp;&amp;e.parentNode)v.error(&quot;type property can&#039;t be changed&quot;);else if(!v.support.radioValue&amp;&amp;t===&quot;radio&quot;&amp;&amp;v.nodeName(e,&quot;input&quot;)){var n=e.value;return e.setAttribute(&quot;type&quot;,t),n&amp;&amp;(e.value=n),t}}},value:{get:function(e,t){return j&amp;&amp;v.nodeName(e,&quot;button&quot;)?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&amp;&amp;v.nodeName(e,&quot;button&quot;))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:&quot;tabIndex&quot;,readonly:&quot;readOnly&quot;,&quot;for&quot;:&quot;htmlFor&quot;,&quot;class&quot;:&quot;className&quot;,maxlength:&quot;maxLength&quot;,cellspacing:&quot;cellSpacing&quot;,cellpadding:&quot;cellPadding&quot;,rowspan:&quot;rowSpan&quot;,colspan:&quot;colSpan&quot;,usemap:&quot;useMap&quot;,frameborder:&quot;frameBorder&quot;,contenteditable:&quot;contentEditable&quot;},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&amp;&amp;(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&amp;&amp;&quot;set&quot;in s&amp;&amp;(i=s.set(e,r,n))!==t?i:e[n]=r:s&amp;&amp;&quot;get&quot;in s&amp;&amp;(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode(&quot;tabindex&quot;);return n&amp;&amp;n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&amp;&amp;e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!=&quot;boolean&quot;&amp;&amp;(r=e.getAttributeNode(n))&amp;&amp;r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&amp;&amp;(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&amp;&amp;(I[n]?r.value!==&quot;&quot;:r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+&quot;&quot;}},v.each([&quot;width&quot;,&quot;height&quot;],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n===&quot;&quot;)return e.setAttribute(t,&quot;auto&quot;),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===&quot;&quot;&amp;&amp;(t=&quot;false&quot;),j.set(e,t,n)}}),v.support.hrefNormalized||v.each([&quot;href&quot;,&quot;src&quot;,&quot;width&quot;,&quot;height&quot;],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+&quot;&quot;}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&amp;&amp;(t.selectedIndex,t.parentNode&amp;&amp;t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype=&quot;encoding&quot;),v.support.checkOn||v.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){v.valHooks[this]={get:function(e){return e.getAttribute(&quot;value&quot;)===null?&quot;on&quot;:e.value}}}),v.each([&quot;radio&quot;,&quot;checkbox&quot;],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)&gt;=0}})});var $=\/^(?:textarea|input|select)$\/i,J=\/^([^\\.]*|)(?:\\.(.+)|)$\/,K=\/(?:^|\\s)hover(\\.\\S+|)\\b\/,Q=\/^key\/,G=\/^(?:mouse|contextmenu)|click\/,Y=\/^(?:focusinfocus|focusoutblur)$\/,Z=function(e){return v.event.special.hover?e:e.replace(K,&quot;mouseenter$1 mouseleave$1&quot;)};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&amp;&amp;(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v==&quot;undefined&quot;||!!e&amp;&amp;v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(&quot; &quot;);for(f=0;f&lt;n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||&quot;&quot;).split(&quot;.&quot;).sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&amp;&amp;v.expr.match.needsContext.test(s),namespace:h.join(&quot;.&quot;)},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&amp;&amp;e.attachEvent(&quot;on&quot;+c,u)}g.add&amp;&amp;(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&amp;&amp;v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||&quot;&quot;)).split(&quot; &quot;);for(s=0;s&lt;t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp(&quot;(^|\\\\.)&quot;+f.split(&quot;.&quot;).sort().join(&quot;\\\\.(?:.*\\\\.|)&quot;)+&quot;(\\\\.|$)&quot;):null;for(c=0;c&lt;d.length;c++)m=d[c],(i||a===m.origType)&amp;&amp;(!n||n.guid===m.guid)&amp;&amp;(!f||f.test(m.namespace))&amp;&amp;(!r||r===m.selector||r===&quot;**&quot;&amp;&amp;m.selector)&amp;&amp;(d.splice(c--,1),m.selector&amp;&amp;d.delegateCount--,p.remove&amp;&amp;p.remove.call(e,m));d.length===0&amp;&amp;l!==d.length&amp;&amp;((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&amp;&amp;v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&amp;&amp;(delete g.handle,v.removeData(e,&quot;events&quot;,!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&amp;&amp;s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf(&quot;!&quot;)&gt;=0&amp;&amp;(y=y.slice(0,-1),a=!0),y.indexOf(&quot;.&quot;)&gt;=0&amp;&amp;(b=y.split(&quot;.&quot;),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&amp;&amp;!v.event.global[y])return;n=typeof n==&quot;object&quot;?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join(&quot;.&quot;),n.namespace_re=n.namespace?new RegExp(&quot;(^|\\\\.)&quot;+b.join(&quot;\\\\.(?:.*\\\\.|)&quot;)+&quot;(\\\\.|$)&quot;):null,h=y.indexOf(&quot;:&quot;)&lt;0?&quot;on&quot;+y:&quot;&quot;;if(!s){u=v.cache;for(f in u)u[f].events&amp;&amp;u[f].events[y]&amp;&amp;v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&amp;&amp;p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&amp;&amp;!p.noBubble&amp;&amp;!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&amp;&amp;m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f&lt;m.length&amp;&amp;!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,&quot;events&quot;)||{})[n.type]&amp;&amp;v._data(l,&quot;handle&quot;),d&amp;&amp;d.apply(l,r),d=h&amp;&amp;l[h],d&amp;&amp;v.acceptData(l)&amp;&amp;d.apply&amp;&amp;d.apply(l,r)===!1&amp;&amp;n.preventDefault();return n.type=y,!o&amp;&amp;!n.isDefaultPrevented()&amp;&amp;(!p._default||p._default.apply(s.ownerDocument,r)===!1)&amp;&amp;(y!==&quot;click&quot;||!v.nodeName(s,&quot;a&quot;))&amp;&amp;v.acceptData(s)&amp;&amp;h&amp;&amp;s[y]&amp;&amp;(y!==&quot;focus&quot;&amp;&amp;y!==&quot;blur&quot;||n.target.offsetWidth!==0)&amp;&amp;!v.isWindow(s)&amp;&amp;(c=s[h],c&amp;&amp;(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&amp;&amp;(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,&quot;events&quot;)||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&amp;&amp;!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&amp;&amp;b.preDispatch.call(this,n)===!1)return;if(m&amp;&amp;(!n.button||n.type!==&quot;click&quot;))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!==&quot;click&quot;){u={},f=[];for(r=0;r&lt;m;r++)c=d[r],h=c.selector,u[h]===t&amp;&amp;(u[h]=c.needsContext?v(h,this).index(s)&gt;=0:v.find(h,this,null,[s]).length),u[h]&amp;&amp;f.push(c);f.length&amp;&amp;w.push({elem:s,matches:f})}d.length&gt;m&amp;&amp;w.push({elem:this,matches:d.slice(m)});for(r=0;r&lt;w.length&amp;&amp;!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i&lt;a.matches.length&amp;&amp;!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&amp;&amp;!c.namespace||n.namespace_re&amp;&amp;n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&amp;&amp;(n.result=o,o===!1&amp;&amp;(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&amp;&amp;b.postDispatch.call(this,n),n.result},props:&quot;attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which&quot;.split(&quot; &quot;),fixHooks:{},keyHooks:{props:&quot;char charCode key keyCode&quot;.split(&quot; &quot;),filter:function(e,t){return e.which==null&amp;&amp;(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:&quot;button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&amp;&amp;n.clientX!=null&amp;&amp;(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&amp;&amp;s.scrollLeft||o&amp;&amp;o.scrollLeft||0)-(s&amp;&amp;s.clientLeft||o&amp;&amp;o.clientLeft||0),e.pageY=n.clientY+(s&amp;&amp;s.scrollTop||o&amp;&amp;o.scrollTop||0)-(s&amp;&amp;s.clientTop||o&amp;&amp;o.clientTop||0)),!e.relatedTarget&amp;&amp;a&amp;&amp;(e.relatedTarget=a===e.target?n.toElement:a),!e.which&amp;&amp;u!==t&amp;&amp;(e.which=u&amp;1?1:u&amp;2?3:u&amp;4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&amp;&amp;(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:&quot;focusin&quot;},blur:{delegateType:&quot;focusout&quot;},beforeunload:{setup:function(e,t,n){v.isWindow(this)&amp;&amp;(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&amp;&amp;(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&amp;&amp;n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&amp;&amp;e.removeEventListener(t,n,!1)}:function(e,t,n){var r=&quot;on&quot;+t;e.detachEvent&amp;&amp;(typeof e[r]==&quot;undefined&quot;&amp;&amp;(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&amp;&amp;e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&amp;&amp;e.getPreventDefault()?tt:et):this.type=e,t&amp;&amp;v.extend(this,t),this.timeStamp=e&amp;&amp;e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&amp;&amp;e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:&quot;mouseover&quot;,mouseleave:&quot;mouseout&quot;},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&amp;&amp;!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,&quot;form&quot;))return!1;v.event.add(this,&quot;click._submit keypress._submit&quot;,function(e){var n=e.target,r=v.nodeName(n,&quot;input&quot;)||v.nodeName(n,&quot;button&quot;)?n.form:t;r&amp;&amp;!v._data(r,&quot;_submit_attached&quot;)&amp;&amp;(v.event.add(r,&quot;submit._submit&quot;,function(e){e._submit_bubble=!0}),v._data(r,&quot;_submit_attached&quot;,!0))})},postDispatch:function(e){e._submit_bubble&amp;&amp;(delete e._submit_bubble,this.parentNode&amp;&amp;!e.isTrigger&amp;&amp;v.event.simulate(&quot;submit&quot;,this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,&quot;form&quot;))return!1;v.event.remove(this,&quot;._submit&quot;)}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type===&quot;checkbox&quot;||this.type===&quot;radio&quot;)v.event.add(this,&quot;propertychange._change&quot;,function(e){e.originalEvent.propertyName===&quot;checked&quot;&amp;&amp;(this._just_changed=!0)}),v.event.add(this,&quot;click._change&quot;,function(e){this._just_changed&amp;&amp;!e.isTrigger&amp;&amp;(this._just_changed=!1),v.event.simulate(&quot;change&quot;,this,e,!0)});return!1}v.event.add(this,&quot;beforeactivate._change&quot;,function(e){var t=e.target;$.test(t.nodeName)&amp;&amp;!v._data(t,&quot;_change_attached&quot;)&amp;&amp;(v.event.add(t,&quot;change._change&quot;,function(e){this.parentNode&amp;&amp;!e.isSimulated&amp;&amp;!e.isTrigger&amp;&amp;v.event.simulate(&quot;change&quot;,this.parentNode,e,!0)}),v._data(t,&quot;_change_attached&quot;,!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!==&quot;radio&quot;&amp;&amp;t.type!==&quot;checkbox&quot;)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,&quot;._change&quot;),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:&quot;focusin&quot;,blur:&quot;focusout&quot;},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&amp;&amp;i.addEventListener(e,r,!0)},teardown:function(){--n===0&amp;&amp;i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e==&quot;object&quot;){typeof n!=&quot;string&quot;&amp;&amp;(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&amp;&amp;i==null?(i=n,r=n=t):i==null&amp;&amp;(typeof n==&quot;string&quot;?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&amp;&amp;(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&amp;&amp;e.preventDefault&amp;&amp;e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+&quot;.&quot;+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e==&quot;object&quot;){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n==&quot;function&quot;)r=n,n=t;return r===!1&amp;&amp;(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||&quot;**&quot;,t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,&quot;**&quot;):this.off(t,e||&quot;**&quot;,n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,&quot;lastToggle&quot;+e.guid)||0)%r;return v._data(this,&quot;lastToggle&quot;+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r&lt;t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each(&quot;blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu&quot;.split(&quot; &quot;),function(e,t){v.fn[t]=function(e,n){return n==null&amp;&amp;(n=e,e=null),arguments.length&gt;0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&amp;&amp;(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&amp;&amp;(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!=&quot;string&quot;)return n;if(l!==1&amp;&amp;l!==9)return[];a=o(t);if(!a&amp;&amp;!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&amp;&amp;(s=t.ownerDocument.getElementById(f))&amp;&amp;u(t,s)&amp;&amp;s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&amp;&amp;Z&amp;&amp;t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,&quot;$1&quot;),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n===&quot;input&quot;&amp;&amp;t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n===&quot;input&quot;||n===&quot;button&quot;)&amp;&amp;t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&amp;&amp;(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+&quot; &quot;];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&amp;&amp;(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j,&quot; &quot;);for(o in i.filter)(r=J[o].exec(u))&amp;&amp;(!f[o]||(r=f[o](r)))&amp;&amp;(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&amp;&amp;t.dir===&quot;parentNode&quot;,o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+&quot; &quot;+o+&quot; &quot;,l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a==&quot;string&quot;&amp;&amp;a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length&gt;1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u&lt;a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&amp;&amp;t.push(u);return o}function ct(e,t,n,r,i,s){return r&amp;&amp;!r[d]&amp;&amp;(r=ct(r)),i&amp;&amp;!i[d]&amp;&amp;(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||&quot;*&quot;,u.nodeType?[u]:u,[]),m=e&amp;&amp;(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&amp;&amp;n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&amp;&amp;f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&amp;&amp;(f=i?T.call(s,c):h[l])&gt;-1&amp;&amp;(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[&quot; &quot;],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)&gt;-1},u,!0),h=[function(e,n,r){return!o&amp;&amp;(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a&lt;s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r&lt;s;r++)if(i.relative[e[r].type])break;return ct(a&gt;1&amp;&amp;ft(h),a&gt;1&amp;&amp;e.slice(0,a-1).join(&quot;&quot;).replace(j,&quot;$1&quot;),n,a&lt;r&amp;&amp;ht(e.slice(a,r)),r&lt;s&amp;&amp;ht(e=e.slice(r)),r&lt;s&amp;&amp;e.join(&quot;&quot;))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length&gt;0,s=e.length&gt;0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w=&quot;0&quot;,x=u&amp;&amp;[],T=h!=null,N=c,C=u||s&amp;&amp;i.find.TAG(&quot;*&quot;,h&amp;&amp;a.parentNode||a),k=b+=N==null?1:Math.E;T&amp;&amp;(c=a!==g&amp;&amp;a,n=o.el);for(;(p=C[w])!=null;w++){if(s&amp;&amp;p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&amp;&amp;(b=k,n=++o.el)}r&amp;&amp;((p=!v&amp;&amp;p)&amp;&amp;y--,u&amp;&amp;x.push(p))}y+=w;if(r&amp;&amp;w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y&gt;0)while(w--)!x[w]&amp;&amp;!m[w]&amp;&amp;(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&amp;&amp;!u&amp;&amp;m.length&gt;0&amp;&amp;y+t.length&gt;1&amp;&amp;nt.uniqueSort(l)}return T&amp;&amp;(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r&lt;i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&amp;&amp;h.length===1){u=h[0]=h[0].slice(0);if(u.length&gt;2&amp;&amp;(f=u[0]).type===&quot;ID&quot;&amp;&amp;t.nodeType===9&amp;&amp;!s&amp;&amp;i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,&quot;&quot;),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o&gt;=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,&quot;&quot;),z.test(u[0].type)&amp;&amp;t.parentNode||t,s)){u.splice(o,1),e=r.length&amp;&amp;u.join(&quot;&quot;);if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p=&quot;undefined&quot;,d=(&quot;sizcache&quot;+Math.random()).replace(&quot;.&quot;,&quot;&quot;),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t&lt;n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)&gt;i.cacheLength&amp;&amp;delete e[t.shift()],e[n+&quot; &quot;]=r},e)},k=C(),L=C(),A=C(),O=&quot;[\\\\x20\\\\t\\\\r\\\\n\\\\f]&quot;,M=&quot;(?:\\\\\\\\.|[-\\\\w]|[^\\\\x00-\\\\xa0])+&quot;,_=M.replace(&quot;w&quot;,&quot;w#&quot;),D=&quot;([*^$|!~]?=)&quot;,P=&quot;\\\\[&quot;+O+&quot;*(&quot;+M+&quot;)&quot;+O+&quot;*(?:&quot;+D+O+&quot;*(?:([&#039;\\&quot;])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(&quot;+_+&quot;)|)|)&quot;+O+&quot;*\\\\]&quot;,H=&quot;:(&quot;+M+&quot;)(?:\\\\((?:([&#039;\\&quot;])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\2|([^()[\\\\]]*|(?:(?:&quot;+P+&quot;)|[^:]|\\\\\\\\.)*|.*))\\\\)|)&quot;,B=&quot;:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(&quot;+O+&quot;*((?:-\\\\d)?\\\\d*)&quot;+O+&quot;*\\\\)|)(?=[^-]|$)&quot;,j=new RegExp(&quot;^&quot;+O+&quot;+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)&quot;+O+&quot;+$&quot;,&quot;g&quot;),F=new RegExp(&quot;^&quot;+O+&quot;*,&quot;+O+&quot;*&quot;),I=new RegExp(&quot;^&quot;+O+&quot;*([\\\\x20\\\\t\\\\r\\\\n\\\\f&gt;+~])&quot;+O+&quot;*&quot;),q=new RegExp(H),R=\/^(?:#([\\w\\-]+)|(\\w+)|\\.([\\w\\-]+))$\/,U=\/^:not\/,z=\/[\\x20\\t\\r\\n\\f]*[+~]\/,W=\/:not\\($\/,X=\/h\\d\/i,V=\/input|select|textarea|button\/i,$=\/\\\\(?!\\\\)\/g,J={ID:new RegExp(&quot;^#(&quot;+M+&quot;)&quot;),CLASS:new RegExp(&quot;^\\\\.(&quot;+M+&quot;)&quot;),NAME:new RegExp(&quot;^\\\\[name=[&#039;\\&quot;]?(&quot;+M+&quot;)[&#039;\\&quot;]?\\\\]&quot;),TAG:new RegExp(&quot;^(&quot;+M.replace(&quot;w&quot;,&quot;w*&quot;)+&quot;)&quot;),ATTR:new RegExp(&quot;^&quot;+P),PSEUDO:new RegExp(&quot;^&quot;+H),POS:new RegExp(B,&quot;i&quot;),CHILD:new RegExp(&quot;^:(only|nth|first|last)-child(?:\\\\(&quot;+O+&quot;*(even|odd|(([+-]|)(\\\\d*)n|)&quot;+O+&quot;*(?:([+-]|)&quot;+O+&quot;*(\\\\d+)|))&quot;+O+&quot;*\\\\)|)&quot;,&quot;i&quot;),needsContext:new RegExp(&quot;^&quot;+O+&quot;*[&gt;+~]|&quot;+B,&quot;i&quot;)},K=function(e){var t=g.createElement(&quot;div&quot;);try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment(&quot;&quot;)),!e.getElementsByTagName(&quot;*&quot;).length}),G=K(function(e){return e.innerHTML=&quot;&lt;a href=&#039;#&#039;&gt;&lt;\/a&gt;&quot;,e.firstChild&amp;&amp;typeof e.firstChild.getAttribute!==p&amp;&amp;e.firstChild.getAttribute(&quot;href&quot;)===&quot;#&quot;}),Y=K(function(e){e.innerHTML=&quot;&lt;select&gt;&lt;\/select&gt;&quot;;var t=typeof e.lastChild.getAttribute(&quot;multiple&quot;);return t!==&quot;boolean&quot;&amp;&amp;t!==&quot;string&quot;}),Z=K(function(e){return e.innerHTML=&quot;&lt;div class=&#039;hidden e&#039;&gt;&lt;\/div&gt;&lt;div class=&#039;hidden&#039;&gt;&lt;\/div&gt;&quot;,!e.getElementsByClassName||!e.getElementsByClassName(&quot;e&quot;).length?!1:(e.lastChild.className=&quot;e&quot;,e.getElementsByClassName(&quot;e&quot;).length===2)}),et=K(function(e){e.id=d+0,e.innerHTML=&quot;&lt;a name=&#039;&quot;+d+&quot;&#039;&gt;&lt;\/a&gt;&lt;div name=&#039;&quot;+d+&quot;&#039;&gt;&lt;\/div&gt;&quot;,y.insertBefore(e,y.firstChild);var t=g.getElementsByName&amp;&amp;g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length&gt;0},s=nt.getText=function(e){var t,n=&quot;&quot;,r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent==&quot;string&quot;)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&amp;&amp;(e.ownerDocument||e).documentElement;return t?t.nodeName!==&quot;HTML&quot;:!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&amp;&amp;t.parentNode;return e===r||!!(r&amp;&amp;r.nodeType===1&amp;&amp;n.contains&amp;&amp;n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&amp;&amp;!!(e.compareDocumentPosition(t)&amp;16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]==&quot;boolean&quot;?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute(&quot;href&quot;,2)},type:function(e){return e.getAttribute(&quot;type&quot;)}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&amp;&amp;!n){var r=t.getElementById(e);return r&amp;&amp;r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&amp;&amp;!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&amp;&amp;i.getAttributeNode(&quot;id&quot;).value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e===&quot;*&quot;){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&amp;&amp;i.push(r);return i}return n},NAME:et&amp;&amp;function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&amp;&amp;function(e,t,n){if(typeof t.getElementsByClassName!==p&amp;&amp;!n)return t.getElementsByClassName(e)}},relative:{&quot;&gt;&quot;:{dir:&quot;parentNode&quot;,first:!0},&quot; &quot;:{dir:&quot;parentNode&quot;},&quot;+&quot;:{dir:&quot;previousSibling&quot;,first:!0},&quot;~&quot;:{dir:&quot;previousSibling&quot;}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,&quot;&quot;),e[3]=(e[4]||e[5]||&quot;&quot;).replace($,&quot;&quot;),e[2]===&quot;~=&quot;&amp;&amp;(e[3]=&quot; &quot;+e[3]+&quot; &quot;),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]===&quot;nth&quot;?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]===&quot;even&quot;||e[2]===&quot;odd&quot;)),e[4]=+(e[6]+e[7]||e[2]===&quot;odd&quot;)):e[2]&amp;&amp;nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&amp;&amp;(n=ut(t,!0))&amp;&amp;(n=t.indexOf(&quot;)&quot;,t.length-n)-t.length)&amp;&amp;(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,&quot;&quot;),function(t){return t.getAttribute(&quot;id&quot;)===e}}:function(e){return e=e.replace($,&quot;&quot;),function(t){var n=typeof t.getAttributeNode!==p&amp;&amp;t.getAttributeNode(&quot;id&quot;);return n&amp;&amp;n.value===e}},TAG:function(e){return e===&quot;*&quot;?function(){return!0}:(e=e.replace($,&quot;&quot;).toLowerCase(),function(t){return t.nodeName&amp;&amp;t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+&quot; &quot;];return t||(t=new RegExp(&quot;(^|&quot;+O+&quot;)&quot;+e+&quot;(&quot;+O+&quot;|$)&quot;))&amp;&amp;k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&amp;&amp;e.getAttribute(&quot;class&quot;)||&quot;&quot;)})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t===&quot;!=&quot;:t?(s+=&quot;&quot;,t===&quot;=&quot;?s===n:t===&quot;!=&quot;?s!==n:t===&quot;^=&quot;?n&amp;&amp;s.indexOf(n)===0:t===&quot;*=&quot;?n&amp;&amp;s.indexOf(n)&gt;-1:t===&quot;$=&quot;?n&amp;&amp;s.substr(s.length-n.length)===n:t===&quot;~=&quot;?(&quot; &quot;+s+&quot; &quot;).indexOf(n)&gt;-1:t===&quot;|=&quot;?s===n||s.substr(0,n.length+1)===n+&quot;-&quot;:!1):!0}},CHILD:function(e,t,n,r){return e===&quot;nth&quot;?function(e){var t,i,s=e.parentNode;if(n===1&amp;&amp;r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&amp;&amp;i\/n&gt;=0}:function(t){var n=t;switch(e){case&quot;only&quot;:case&quot;first&quot;:while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e===&quot;first&quot;)return!0;n=t;case&quot;last&quot;:while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error(&quot;unsupported pseudo: &quot;+e);return r[d]?r(t):r.length&gt;1?(n=[e,e,&quot;&quot;,t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,&quot;$1&quot;));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length&gt;0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)&gt;-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t===&quot;input&quot;&amp;&amp;!!e.checked||t===&quot;option&quot;&amp;&amp;!!e.selected},selected:function(e){return e.parentNode&amp;&amp;e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName&gt;&quot;@&quot;||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()===&quot;input&quot;&amp;&amp;(t=e.type)===&quot;text&quot;&amp;&amp;((n=e.getAttribute(&quot;type&quot;))==null||n.toLowerCase()===t)},radio:rt(&quot;radio&quot;),checkbox:rt(&quot;checkbox&quot;),file:rt(&quot;file&quot;),password:rt(&quot;password&quot;),image:rt(&quot;image&quot;),submit:it(&quot;submit&quot;),reset:it(&quot;reset&quot;),button:function(e){var t=e.nodeName.toLowerCase();return t===&quot;input&quot;&amp;&amp;e.type===&quot;button&quot;||t===&quot;button&quot;},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&amp;&amp;(!t.hasFocus||t.hasFocus())&amp;&amp;!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n&lt;0?n+t:n]}),even:st(function(e,t){for(var n=0;n&lt;t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n&lt;t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n&lt;0?n+t:n;--r&gt;=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n&lt;0?n+t:n;++r&lt;t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&amp;4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&amp;&amp;t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f&lt;n&amp;&amp;f&lt;r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&amp;&amp;(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error(&quot;Syntax error, unrecognized expression: &quot;+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+&quot; &quot;];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&amp;&amp;function(){var e,t=vt,n=\/&#039;|\\\\\/g,r=\/\\=[\\x20\\t\\r\\n\\f]*([^&#039;&quot;\\]]*)[\\x20\\t\\r\\n\\f]*\\]\/g,i=[&quot;:focus&quot;],s=[&quot;:active&quot;],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML=&quot;&lt;select&gt;&lt;option selected=&#039;&#039;&gt;&lt;\/option&gt;&lt;\/select&gt;&quot;,e.querySelectorAll(&quot;[selected]&quot;).length||i.push(&quot;\\\\[&quot;+O+&quot;*(?:checked|disabled|ismap|multiple|readonly|selected|value)&quot;),e.querySelectorAll(&quot;:checked&quot;).length||i.push(&quot;:checked&quot;)}),K(function(e){e.innerHTML=&quot;&lt;p test=&#039;&#039;&gt;&lt;\/p&gt;&quot;,e.querySelectorAll(&quot;[test^=&#039;&#039;]&quot;).length&amp;&amp;i.push(&quot;[*^$]=&quot;+O+&quot;*(?:\\&quot;\\&quot;|&#039;&#039;)&quot;),e.innerHTML=&quot;&lt;input type=&#039;hidden&#039;\/&gt;&quot;,e.querySelectorAll(&quot;:enabled&quot;).length||i.push(&quot;:enabled&quot;,&quot;:disabled&quot;)}),i=new RegExp(i.join(&quot;|&quot;)),vt=function(e,r,s,o,u){if(!o&amp;&amp;!u&amp;&amp;!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&amp;&amp;e;if(r.nodeType===1&amp;&amp;r.nodeName.toLowerCase()!==&quot;object&quot;){a=ut(e),(l=r.getAttribute(&quot;id&quot;))?c=l.replace(n,&quot;\\\\$&amp;&quot;):r.setAttribute(&quot;id&quot;,c),c=&quot;[id=&#039;&quot;+c+&quot;&#039;] &quot;,f=a.length;while(f--)a[f]=c+a[f].join(&quot;&quot;);h=z.test(e)&amp;&amp;r.parentNode||r,p=a.join(&quot;,&quot;)}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute(&quot;id&quot;)}}return t(e,r,s,o,u)},u&amp;&amp;(K(function(t){e=u.call(t,&quot;div&quot;);try{u.call(t,&quot;[test!=&#039;&#039;]:sizzle&quot;),s.push(&quot;!=&quot;,H)}catch(n){}}),s=new RegExp(s.join(&quot;|&quot;)),nt.matchesSelector=function(t,n){n=n.replace(r,&quot;=&#039;$1&#039;]&quot;);if(!o(t)&amp;&amp;!s.test(n)&amp;&amp;!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&amp;&amp;t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length&gt;0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[&quot;:&quot;]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=\/Until$\/,rt=\/^(?:parents|prev(?:Until|All))\/,it=\/^.[^:#\\[\\.,]*$\/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!=&quot;string&quot;)return v(e).filter(function(){for(t=0,n=u.length;t&lt;n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack(&quot;&quot;,&quot;find&quot;,e);for(t=0,n=this.length;t&lt;n;t++){r=o.length,v.find(e,this[t],o);if(t&gt;0)for(i=r;i&lt;o.length;i++)for(s=0;s&lt;r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t&lt;r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),&quot;not&quot;,e)},filter:function(e){return this.pushStack(ft(this,e,!0),&quot;filter&quot;,e)},is:function(e){return!!e&amp;&amp;(typeof e==&quot;string&quot;?st.test(e)?v(e,this.context).index(this[0])&gt;=0:v.filter(e,this).length&gt;0:this.filter(e).length&gt;0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!=&quot;string&quot;?v(e,t||this.context):0;for(;r&lt;i;r++){n=this[r];while(n&amp;&amp;n.ownerDocument&amp;&amp;n!==t&amp;&amp;n.nodeType!==11){if(o?o.index(n)&gt;-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length&gt;1?v.unique(s):s,this.pushStack(s,&quot;closest&quot;,e)},index:function(e){return e?typeof e==&quot;string&quot;?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&amp;&amp;this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e==&quot;string&quot;?v(e,t):v.makeArray(e&amp;&amp;e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&amp;&amp;t.nodeType!==11?t:null},parents:function(e){return v.dir(e,&quot;parentNode&quot;)},parentsUntil:function(e,t,n){return v.dir(e,&quot;parentNode&quot;,n)},next:function(e){return at(e,&quot;nextSibling&quot;)},prev:function(e){return at(e,&quot;previousSibling&quot;)},nextAll:function(e){return v.dir(e,&quot;nextSibling&quot;)},prevAll:function(e){return v.dir(e,&quot;previousSibling&quot;)},nextUntil:function(e,t,n){return v.dir(e,&quot;nextSibling&quot;,n)},prevUntil:function(e,t,n){return v.dir(e,&quot;previousSibling&quot;,n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,&quot;iframe&quot;)?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&amp;&amp;typeof r==&quot;string&quot;&amp;&amp;(i=v.filter(r,i)),i=this.length&gt;1&amp;&amp;!ot[e]?v.unique(i):i,this.length&gt;1&amp;&amp;rt.test(e)&amp;&amp;(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(&quot;,&quot;))}}),v.extend({filter:function(e,t,n){return n&amp;&amp;(e=&quot;:not(&quot;+e+&quot;)&quot;),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&amp;&amp;s.nodeType!==9&amp;&amp;(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&amp;&amp;i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&amp;&amp;e!==t&amp;&amp;n.push(e);return n}});var ct=&quot;abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video&quot;,ht=\/ jQuery\\d+=&quot;(?:null|\\d+)&quot;\/g,pt=\/^\\s+\/,dt=\/&lt;(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^&gt;]*)\\\/&gt;\/gi,vt=\/&lt;([\\w:]+)\/,mt=\/&lt;tbody\/i,gt=\/&lt;|&amp;#?\\w+;\/,yt=\/&lt;(?:script|style|link)\/i,bt=\/&lt;(?:script|object|embed|option|style)\/i,wt=new RegExp(&quot;&lt;(?:&quot;+ct+&quot;)[\\\\s\/&gt;]&quot;,&quot;i&quot;),Et=\/^(?:checkbox|radio)$\/,St=\/checked\\s*(?:[^=]|=\\s*.checked.)\/i,xt=\/\\\/(java|ecma)script\/i,Tt=\/^\\s*&lt;!(?:\\[CDATA\\[|\\-\\-)|[\\]\\-]{2}&gt;\\s*$\/g,Nt={option:[1,&quot;&lt;select multiple=&#039;multiple&#039;&gt;&quot;,&quot;&lt;\/select&gt;&quot;],legend:[1,&quot;&lt;fieldset&gt;&quot;,&quot;&lt;\/fieldset&gt;&quot;],thead:[1,&quot;&lt;table&gt;&quot;,&quot;&lt;\/table&gt;&quot;],tr:[2,&quot;&lt;table&gt;&lt;tbody&gt;&quot;,&quot;&lt;\/tbody&gt;&lt;\/table&gt;&quot;],td:[3,&quot;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&quot;,&quot;&lt;\/tr&gt;&lt;\/tbody&gt;&lt;\/table&gt;&quot;],col:[2,&quot;&lt;table&gt;&lt;tbody&gt;&lt;\/tbody&gt;&lt;colgroup&gt;&quot;,&quot;&lt;\/colgroup&gt;&lt;\/table&gt;&quot;],area:[1,&quot;&lt;map&gt;&quot;,&quot;&lt;\/map&gt;&quot;],_default:[0,&quot;&quot;,&quot;&quot;]},Ct=lt(i),kt=Ct.appendChild(i.createElement(&quot;div&quot;));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,&quot;X&lt;div&gt;&quot;,&quot;&lt;\/div&gt;&quot;]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&amp;&amp;this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&amp;&amp;t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&amp;&amp;e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,&quot;body&quot;)||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&amp;&amp;this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&amp;&amp;this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),&quot;before&quot;,this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),&quot;after&quot;,this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&amp;&amp;n.nodeType===1&amp;&amp;(v.cleanData(n.getElementsByTagName(&quot;*&quot;)),v.cleanData([n])),n.parentNode&amp;&amp;n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&amp;&amp;v.cleanData(e.getElementsByTagName(&quot;*&quot;));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,&quot;&quot;):t;if(typeof e==&quot;string&quot;&amp;&amp;!yt.test(e)&amp;&amp;(v.support.htmlSerialize||!wt.test(e))&amp;&amp;(v.support.leadingWhitespace||!pt.test(e))&amp;&amp;!Nt[(vt.exec(e)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase()]){e=e.replace(dt,&quot;&lt;$1&gt;&lt;\/$2&gt;&quot;);try{for(;r&lt;i;r++)n=this[r]||{},n.nodeType===1&amp;&amp;(v.cleanData(n.getElementsByTagName(&quot;*&quot;)),n.innerHTML=e);n=0}catch(s){}}n&amp;&amp;this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),&quot;replaceWith&quot;,e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!=&quot;string&quot;&amp;&amp;(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&amp;&amp;c&gt;1&amp;&amp;typeof f==&quot;string&quot;&amp;&amp;St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&amp;&amp;(o=s);if(s){n=n&amp;&amp;v.nodeName(s,&quot;tr&quot;);for(u=i.cacheable||c-1;a&lt;c;a++)r.call(n&amp;&amp;v.nodeName(this[a],&quot;table&quot;)?Lt(this[a],&quot;tbody&quot;):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&amp;&amp;v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:&quot;GET&quot;,dataType:&quot;script&quot;,async:!1,global:!1,&quot;throws&quot;:!0}):v.error(&quot;no ajax&quot;):v.globalEval((t.text||t.textContent||t.innerHTML||&quot;&quot;).replace(Tt,&quot;&quot;)),t.parentNode&amp;&amp;t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&amp;&amp;n[0]||n,n=n.ownerDocument||n,e.length===1&amp;&amp;typeof a==&quot;string&quot;&amp;&amp;a.length&lt;512&amp;&amp;n===i&amp;&amp;a.charAt(0)===&quot;&lt;&quot;&amp;&amp;!bt.test(a)&amp;&amp;(v.support.checkClone||!St.test(a))&amp;&amp;(v.support.html5Clone||!wt.test(a))&amp;&amp;(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&amp;&amp;(v.fragments[a]=u&amp;&amp;s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:&quot;append&quot;,prependTo:&quot;prepend&quot;,insertBefore:&quot;before&quot;,insertAfter:&quot;after&quot;,replaceAll:&quot;replaceWith&quot;},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&amp;&amp;this[0].parentNode;if((a==null||a&amp;&amp;a.nodeType===11&amp;&amp;a.childNodes.length===1)&amp;&amp;u===1)return o[t](this[0]),this;for(;i&lt;u;i++)r=(i&gt;0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test(&quot;&lt;&quot;+e.nodeName+&quot;&gt;&quot;)?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&amp;&amp;(e.nodeType===1||e.nodeType===11)&amp;&amp;!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&amp;&amp;Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&amp;&amp;Ct,b=[];if(!t||typeof t.createDocumentFragment==&quot;undefined&quot;)t=i;for(s=0;(u=e[s])!=null;s++){typeof u==&quot;number&quot;&amp;&amp;(u+=&quot;&quot;);if(!u)continue;if(typeof u==&quot;string&quot;)if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement(&quot;div&quot;),y.appendChild(c),u=u.replace(dt,&quot;&lt;$1&gt;&lt;\/$2&gt;&quot;),a=(vt.exec(u)||[&quot;&quot;,&quot;&quot;])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a===&quot;table&quot;&amp;&amp;!h?c.firstChild&amp;&amp;c.firstChild.childNodes:f[1]===&quot;&lt;table&gt;&quot;&amp;&amp;!h?c.childNodes:[];for(o=p.length-1;o&gt;=0;--o)v.nodeName(p[o],&quot;tbody&quot;)&amp;&amp;!p[o].childNodes.length&amp;&amp;p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&amp;&amp;pt.test(u)&amp;&amp;c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&amp;&amp;(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,&quot;input&quot;)?_t(u):typeof u.getElementsByTagName!=&quot;undefined&quot;&amp;&amp;v.grep(u.getElementsByTagName(&quot;input&quot;),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,&quot;script&quot;)||!m(u))n.appendChild(u),typeof u.getElementsByTagName!=&quot;undefined&quot;&amp;&amp;(g=v.grep(v.merge([],u.getElementsByTagName(&quot;script&quot;)),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&amp;&amp;a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&amp;&amp;(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=\/(chrome)[ \\\/]([\\w.]+)\/.exec(e)||\/(webkit)[ \\\/]([\\w.]+)\/.exec(e)||\/(opera)(?:.*version|)[ \\\/]([\\w.]+)\/.exec(e)||\/(msie) ([\\w.]+)\/.exec(e)||e.indexOf(&quot;compatible&quot;)&lt;0&amp;&amp;\/(mozilla)(?:.*? rv:([\\w.]+)|)\/.exec(e)||[];return{browser:t[1]||&quot;&quot;,version:t[2]||&quot;0&quot;}},e=v.uaMatch(o.userAgent),t={},e.browser&amp;&amp;(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&amp;&amp;(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&amp;&amp;i instanceof v&amp;&amp;!(i instanceof e)&amp;&amp;(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=\/alpha\\([^)]*\\)\/i,jt=\/opacity=([^)]*)\/,Ft=\/^(top|right|bottom|left)$\/,It=\/^(none|table(?!-c[ea]).+)\/,qt=\/^margin\/,Rt=new RegExp(&quot;^(&quot;+m+&quot;)(.*)$&quot;,&quot;i&quot;),Ut=new RegExp(&quot;^(&quot;+m+&quot;)(?!px)[a-z%]+$&quot;,&quot;i&quot;),zt=new RegExp(&quot;^([-+])=(&quot;+m+&quot;)&quot;,&quot;i&quot;),Wt={BODY:&quot;block&quot;},Xt={position:&quot;absolute&quot;,visibility:&quot;hidden&quot;,display:&quot;block&quot;},Vt={letterSpacing:0,fontWeight:400},$t=[&quot;Top&quot;,&quot;Right&quot;,&quot;Bottom&quot;,&quot;Left&quot;],Jt=[&quot;Webkit&quot;,&quot;O&quot;,&quot;Moz&quot;,&quot;ms&quot;],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length&gt;1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e==&quot;boolean&quot;;return v.isFunction(e)&amp;&amp;v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,&quot;opacity&quot;);return n===&quot;&quot;?&quot;1&quot;:n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{&quot;float&quot;:v.support.cssFloat?&quot;cssFloat&quot;:&quot;styleFloat&quot;},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&amp;&amp;&quot;get&quot;in u&amp;&amp;(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o===&quot;string&quot;&amp;&amp;(s=zt.exec(r))&amp;&amp;(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o=&quot;number&quot;);if(r==null||o===&quot;number&quot;&amp;&amp;isNaN(r))return;o===&quot;number&quot;&amp;&amp;!v.cssNumber[a]&amp;&amp;(r+=&quot;px&quot;);if(!u||!(&quot;set&quot;in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&amp;&amp;&quot;get&quot;in u&amp;&amp;(s=u.get(e,!0,i)),s===t&amp;&amp;(s=Dt(e,n)),s===&quot;normal&quot;&amp;&amp;n in Vt&amp;&amp;(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&amp;&amp;(r=u.getPropertyValue(n)||u[n],r===&quot;&quot;&amp;&amp;!v.contains(t.ownerDocument,t)&amp;&amp;(r=v.style(t,n)),Ut.test(r)&amp;&amp;qt.test(n)&amp;&amp;(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&amp;&amp;(Dt=function(e,t){var n,r,i=e.currentStyle&amp;&amp;e.currentStyle[t],s=e.style;return i==null&amp;&amp;s&amp;&amp;s[t]&amp;&amp;(i=s[t]),Ut.test(i)&amp;&amp;!Ft.test(t)&amp;&amp;(n=s.left,r=e.runtimeStyle&amp;&amp;e.runtimeStyle.left,r&amp;&amp;(e.runtimeStyle.left=e.currentStyle.left),s.left=t===&quot;fontSize&quot;?&quot;1em&quot;:i,i=s.pixelLeft+&quot;px&quot;,s.left=n,r&amp;&amp;(e.runtimeStyle.left=r)),i===&quot;&quot;?&quot;auto&quot;:i}),v.each([&quot;height&quot;,&quot;width&quot;],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&amp;&amp;It.test(Dt(e,&quot;display&quot;))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&amp;&amp;v.css(e,&quot;boxSizing&quot;)===&quot;border-box&quot;):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&amp;&amp;e.currentStyle?e.currentStyle.filter:e.style.filter)||&quot;&quot;)?.01*parseFloat(RegExp.$1)+&quot;&quot;:t?&quot;1&quot;:&quot;&quot;},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?&quot;alpha(opacity=&quot;+t*100+&quot;)&quot;:&quot;&quot;,s=r&amp;&amp;r.filter||n.filter||&quot;&quot;;n.zoom=1;if(t&gt;=1&amp;&amp;v.trim(s.replace(Bt,&quot;&quot;))===&quot;&quot;&amp;&amp;n.removeAttribute){n.removeAttribute(&quot;filter&quot;);if(r&amp;&amp;!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+&quot; &quot;+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:&quot;inline-block&quot;},function(){if(t)return Dt(e,&quot;marginRight&quot;)})}}),!v.support.pixelPosition&amp;&amp;v.fn.position&amp;&amp;v.each([&quot;top&quot;,&quot;left&quot;],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+&quot;px&quot;:r}}}})}),v.expr&amp;&amp;v.expr.filters&amp;&amp;(v.expr.filters.hidden=function(e){return e.offsetWidth===0&amp;&amp;e.offsetHeight===0||!v.support.reliableHiddenOffsets&amp;&amp;(e.style&amp;&amp;e.style.display||Dt(e,&quot;display&quot;))===&quot;none&quot;},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:&quot;&quot;,padding:&quot;&quot;,border:&quot;Width&quot;},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n==&quot;string&quot;?n.split(&quot; &quot;):[n],s={};for(r=0;r&lt;4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=\/%20\/g,sn=\/\\[\\]$\/,on=\/\\r?\\n\/g,un=\/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$\/i,an=\/^(?:select|textarea)\/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&amp;&amp;!this.disabled&amp;&amp;(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,&quot;\\r\\n&quot;)}}):{name:t.name,value:n.replace(on,&quot;\\r\\n&quot;)}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?&quot;&quot;:t,i[i.length]=encodeURIComponent(e)+&quot;=&quot;+encodeURIComponent(t)};n===t&amp;&amp;(n=v.ajaxSettings&amp;&amp;v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&amp;&amp;!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join(&quot;&amp;&quot;).replace(rn,&quot;+&quot;)};var ln,cn,hn=\/#.*$\/,pn=\/^(.*?):[ \\t]*([^\\r\\n]*)\\r?$\/mg,dn=\/^(?:about|app|app\\-storage|.+\\-extension|file|res|widget):$\/,vn=\/^(?:GET|HEAD)$\/,mn=\/^\\\/\\\/\/,gn=\/\\?\/,yn=\/&lt;script\\b[^&lt;]*(?:(?!&lt;\\\/script&gt;)&lt;[^&lt;]*)*&lt;\\\/script&gt;\/gi,bn=\/([?&amp;])_=[^&amp;]*\/,wn=\/^([\\w\\+\\.\\-]+:)(?:\\\/\\\/([^\\\/?#:]*)(?::(\\d+)|)|)\/,En=v.fn.load,Sn={},xn={},Tn=[&quot;*\/&quot;]+[&quot;*&quot;];try{cn=s.href}catch(Nn){cn=i.createElement(&quot;a&quot;),cn.href=&quot;&quot;,cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!=&quot;string&quot;&amp;&amp;En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(&quot; &quot;);return a&gt;=0&amp;&amp;(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&amp;&amp;typeof n==&quot;object&quot;&amp;&amp;(s=&quot;POST&quot;),v.ajax({url:e,type:s,dataType:&quot;html&quot;,data:n,complete:function(e,t){r&amp;&amp;u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v(&quot;&lt;div&gt;&quot;).append(e.replace(yn,&quot;&quot;)).find(i):e)}),this},v.each(&quot;ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend&quot;.split(&quot; &quot;),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each([&quot;get&quot;,&quot;post&quot;],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&amp;&amp;(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,&quot;script&quot;)},getJSON:function(e,t,n){return v.get(e,t,n,&quot;json&quot;)},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:&quot;GET&quot;,contentType:&quot;application\/x-www-form-urlencoded; charset=UTF-8&quot;,processData:!0,async:!0,accepts:{xml:&quot;application\/xml, text\/xml&quot;,html:&quot;text\/html&quot;,text:&quot;text\/plain&quot;,json:&quot;application\/json, text\/javascript&quot;,&quot;*&quot;:Tn},contents:{xml:\/xml\/,html:\/html\/,json:\/json\/},responseFields:{xml:&quot;responseXML&quot;,text:&quot;responseText&quot;},converters:{&quot;* text&quot;:e.String,&quot;text html&quot;:!0,&quot;text json&quot;:v.parseJSON,&quot;text xml&quot;:v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&amp;&amp;clearTimeout(u),o=t,i=a||&quot;&quot;,x.readyState=e&gt;0?4:0,s&amp;&amp;(w=An(c,x,s));if(e&gt;=200&amp;&amp;e&lt;300||e===304)c.ifModified&amp;&amp;(S=x.getResponseHeader(&quot;Last-Modified&quot;),S&amp;&amp;(v.lastModified[r]=S),S=x.getResponseHeader(&quot;Etag&quot;),S&amp;&amp;(v.etag[r]=S)),e===304?(T=&quot;notmodified&quot;,l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T=&quot;error&quot;,e&lt;0&amp;&amp;(e=0)}x.status=e,x.statusText=(n||T)+&quot;&quot;,l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&amp;&amp;p.trigger(&quot;ajax&quot;+(l?&quot;Success&quot;:&quot;Error&quot;),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&amp;&amp;(p.trigger(&quot;ajaxComplete&quot;,[x,c]),--v.active||v.event.trigger(&quot;ajaxStop&quot;))}typeof e==&quot;object&quot;&amp;&amp;(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&amp;&amp;(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks(&quot;once memory&quot;),g=c.statusCode||{},b={},w={},E=0,S=&quot;canceled&quot;,x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&amp;&amp;o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E&lt;2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+&quot;&quot;).replace(hn,&quot;&quot;).replace(mn,ln[1]+&quot;\/\/&quot;),c.dataTypes=v.trim(c.dataType||&quot;*&quot;).toLowerCase().split(y),c.crossDomain==null&amp;&amp;(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&amp;&amp;a[2]===ln[2]&amp;&amp;(a[3]||(a[1]===&quot;http:&quot;?80:443))==(ln[3]||(ln[1]===&quot;http:&quot;?80:443)))),c.data&amp;&amp;c.processData&amp;&amp;typeof c.data!=&quot;string&quot;&amp;&amp;(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&amp;&amp;v.active++===0&amp;&amp;v.event.trigger(&quot;ajaxStart&quot;);if(!c.hasContent){c.data&amp;&amp;(c.url+=(gn.test(c.url)?&quot;&amp;&quot;:&quot;?&quot;)+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,&quot;$1_=&quot;+N);c.url=C+(C===c.url?(gn.test(c.url)?&quot;&amp;&quot;:&quot;?&quot;)+&quot;_=&quot;+N:&quot;&quot;)}}(c.data&amp;&amp;c.hasContent&amp;&amp;c.contentType!==!1||n.contentType)&amp;&amp;x.setRequestHeader(&quot;Content-Type&quot;,c.contentType),c.ifModified&amp;&amp;(r=r||c.url,v.lastModified[r]&amp;&amp;x.setRequestHeader(&quot;If-Modified-Since&quot;,v.lastModified[r]),v.etag[r]&amp;&amp;x.setRequestHeader(&quot;If-None-Match&quot;,v.etag[r])),x.setRequestHeader(&quot;Accept&quot;,c.dataTypes[0]&amp;&amp;c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!==&quot;*&quot;?&quot;, &quot;+Tn+&quot;; q=0.01&quot;:&quot;&quot;):c.accepts[&quot;*&quot;]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&amp;&amp;E!==2){S=&quot;abort&quot;;for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,&quot;No Transport&quot;);else{x.readyState=1,f&amp;&amp;p.trigger(&quot;ajaxSend&quot;,[x,c]),c.async&amp;&amp;c.timeout&gt;0&amp;&amp;(u=setTimeout(function(){x.abort(&quot;timeout&quot;)},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E&lt;2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=\/\\?\/,Dn=\/(=)\\?(?=&amp;|$)|\\?\\?\/,Pn=v.now();v.ajaxSetup({jsonp:&quot;callback&quot;,jsonpCallback:function(){var e=Mn.pop()||v.expando+&quot;_&quot;+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter(&quot;json jsonp&quot;,function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&amp;&amp;Dn.test(f),h=l&amp;&amp;!c&amp;&amp;typeof a==&quot;string&quot;&amp;&amp;!(n.contentType||&quot;&quot;).indexOf(&quot;application\/x-www-form-urlencoded&quot;)&amp;&amp;Dn.test(a);if(n.dataTypes[0]===&quot;jsonp&quot;||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,&quot;$1&quot;+s):h?n.data=a.replace(Dn,&quot;$1&quot;+s):l&amp;&amp;(n.url+=(_n.test(f)?&quot;&amp;&quot;:&quot;?&quot;)+n.jsonp+&quot;=&quot;+s),n.converters[&quot;script json&quot;]=function(){return u||v.error(s+&quot; was not called&quot;),u[0]},n.dataTypes[0]=&quot;json&quot;,e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&amp;&amp;(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&amp;&amp;v.isFunction(o)&amp;&amp;o(u[0]),u=o=t}),&quot;script&quot;}),v.ajaxSetup({accepts:{script:&quot;text\/javascript, application\/javascript, application\/ecmascript, application\/x-ecmascript&quot;},contents:{script:\/javascript|ecmascript\/},converters:{&quot;text script&quot;:function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter(&quot;script&quot;,function(e){e.cache===t&amp;&amp;(e.cache=!1),e.crossDomain&amp;&amp;(e.type=&quot;GET&quot;,e.global=!1)}),v.ajaxTransport(&quot;script&quot;,function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName(&quot;head&quot;)[0]||i.documentElement;return{send:function(s,o){n=i.createElement(&quot;script&quot;),n.async=&quot;async&quot;,e.scriptCharset&amp;&amp;(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||\/loaded|complete\/.test(n.readyState))n.onload=n.onreadystatechange=null,r&amp;&amp;n.parentNode&amp;&amp;r.removeChild(n),n=t,i||o(200,&quot;success&quot;)},r.insertBefore(n,r.firstChild)},abort:function(){n&amp;&amp;n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&amp;&amp;Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&amp;&amp;&quot;withCredentials&quot;in e})}(v.ajaxSettings.xhr()),v.support.ajax&amp;&amp;v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&amp;&amp;a.overrideMimeType&amp;&amp;a.overrideMimeType(n.mimeType),!n.crossDomain&amp;&amp;!i[&quot;X-Requested-With&quot;]&amp;&amp;(i[&quot;X-Requested-With&quot;]=&quot;XMLHttpRequest&quot;);try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&amp;&amp;n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&amp;&amp;(i||a.readyState===4)){r=t,o&amp;&amp;(a.onreadystatechange=v.noop,Bn&amp;&amp;delete Hn[o]);if(i)a.readyState!==4&amp;&amp;a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&amp;&amp;h.documentElement&amp;&amp;(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=&quot;&quot;}!u&amp;&amp;n.isLocal&amp;&amp;!n.crossDomain?u=c.text?200:404:u===1223&amp;&amp;(u=204)}}}catch(d){i||s(-1,d)}c&amp;&amp;s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&amp;&amp;(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&amp;&amp;r(0,1)}}}});var qn,Rn,Un=\/^(?:toggle|show|hide)$\/,zn=new RegExp(&quot;^(?:([-+])=|)(&quot;+m+&quot;)([a-z%]*)$&quot;,&quot;i&quot;),Wn=\/queueHooks$\/,Xn=[Gn],Vn={&quot;*&quot;:[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?&quot;&quot;:&quot;px&quot;);if(r!==&quot;px&quot;&amp;&amp;u){u=v.css(i.elem,e,!0)||n||1;do a=a||&quot;.5&quot;,u\/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()\/o)&amp;&amp;a!==1&amp;&amp;--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=[&quot;*&quot;]):e=e.split(&quot; &quot;);var n,r=0,i=e.length;for(;r&lt;i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||&quot;swing&quot;,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?&quot;&quot;:&quot;px&quot;)},cur:function(){var e=Yn.propHooks[this.prop];return e&amp;&amp;e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.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&amp;&amp;this.options.step.call(this.elem,this.now,this),n&amp;&amp;n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&amp;&amp;e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,&quot;&quot;),!t||t===&quot;auto&quot;?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&amp;&amp;(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&amp;&amp;e.elem.parentNode&amp;&amp;(e.elem[e.prop]=e.now)}},v.each([&quot;toggle&quot;,&quot;show&quot;,&quot;hide&quot;],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r==&quot;boolean&quot;||!e&amp;&amp;v.isFunction(r)&amp;&amp;v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css(&quot;opacity&quot;,0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&amp;&amp;t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!=&quot;string&quot;&amp;&amp;(r=n,n=e,e=t),n&amp;&amp;e!==!1&amp;&amp;this.queue(e||&quot;fx&quot;,[]),this.each(function(){var t=!0,n=e!=null&amp;&amp;e+&quot;queueHooks&quot;,s=v.timers,o=v._data(this);if(n)o[n]&amp;&amp;o[n].stop&amp;&amp;i(o[n]);else for(n in o)o[n]&amp;&amp;o[n].stop&amp;&amp;Wn.test(n)&amp;&amp;i(o[n]);for(n=s.length;n--;)s[n].elem===this&amp;&amp;(e==null||s[n].queue===e)&amp;&amp;(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&amp;&amp;v.dequeue(this,e)})}}),v.each({slideDown:Zn(&quot;show&quot;),slideUp:Zn(&quot;hide&quot;),slideToggle:Zn(&quot;toggle&quot;),fadeIn:{opacity:&quot;show&quot;},fadeOut:{opacity:&quot;hide&quot;},fadeToggle:{opacity:&quot;toggle&quot;}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&amp;&amp;typeof e==&quot;object&quot;?v.extend({},e):{complete:n||!n&amp;&amp;t||v.isFunction(e)&amp;&amp;e,duration:e,easing:n&amp;&amp;t||t&amp;&amp;!v.isFunction(t)&amp;&amp;t};r.duration=v.fx.off?0:typeof r.duration==&quot;number&quot;?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue=&quot;fx&quot;;return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&amp;&amp;r.old.call(this),r.queue&amp;&amp;v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)\/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r&lt;n.length;r++)e=n[r],!e()&amp;&amp;n[r]===e&amp;&amp;n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&amp;&amp;v.timers.push(e)&amp;&amp;!Rn&amp;&amp;(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&amp;&amp;v.expr.filters&amp;&amp;(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=\/^(?:body|html)$\/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&amp;&amp;l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!=&quot;undefined&quot;&amp;&amp;(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&amp;&amp;(t+=parseFloat(v.css(e,&quot;marginTop&quot;))||0,n+=parseFloat(v.css(e,&quot;marginLeft&quot;))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,&quot;position&quot;);r===&quot;static&quot;&amp;&amp;(e.style.position=&quot;relative&quot;);var i=v(e),s=i.offset(),o=v.css(e,&quot;top&quot;),u=v.css(e,&quot;left&quot;),a=(r===&quot;absolute&quot;||r===&quot;fixed&quot;)&amp;&amp;v.inArray(&quot;auto&quot;,[o,u])&gt;-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&amp;&amp;(t=t.call(e,n,s)),t.top!=null&amp;&amp;(f.top=t.top-s.top+c),t.left!=null&amp;&amp;(f.left=t.left-s.left+h),&quot;using&quot;in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,&quot;marginTop&quot;))||0,n.left-=parseFloat(v.css(e,&quot;marginLeft&quot;))||0,r.top+=parseFloat(v.css(t[0],&quot;borderTopWidth&quot;))||0,r.left+=parseFloat(v.css(t[0],&quot;borderLeftWidth&quot;))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&amp;&amp;!er.test(e.nodeName)&amp;&amp;v.css(e,&quot;position&quot;)===&quot;static&quot;)e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:&quot;pageXOffset&quot;,scrollTop:&quot;pageYOffset&quot;},function(e,n){var r=\/Y\/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:&quot;height&quot;,Width:&quot;width&quot;},function(e,n){v.each({padding:&quot;inner&quot;+e,content:n,&quot;&quot;:&quot;outer&quot;+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&amp;&amp;(r||typeof i!=&quot;boolean&quot;),u=r||(i===!0||s===!0?&quot;margin&quot;:&quot;border&quot;);return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement[&quot;client&quot;+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body[&quot;scroll&quot;+e],s[&quot;scroll&quot;+e],n.body[&quot;offset&quot;+e],s[&quot;offset&quot;+e],s[&quot;client&quot;+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define==&quot;function&quot;&amp;&amp;define.amd&amp;&amp;define.amd.ajQuery&amp;&amp;define(&quot;jquery&quot;,[],function(){return v})})(window);<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Step_4\"><\/span>Step 4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create your qrcode.js file and place it on your root directory. Below is the content to add to it.<\/p>\n<pre id=\"code-snippet-source-39\" class=\"code-snippet-source\"><code class=\"language-php\">var QRCode;\r\n\r\n(function () {\r\n\u00a0\u00a0 \u00a0\/\/---------------------------------------------------------------------\r\n\u00a0\u00a0 \u00a0\/\/ QRCode for JavaScript\r\n\u00a0\u00a0 \u00a0\/\/\r\n\u00a0\u00a0 \u00a0\/\/ Copyright (c) 2009 Kazuhiko Arase\r\n\u00a0\u00a0 \u00a0\/\/\r\n\u00a0\u00a0 \u00a0\/\/ URL: http:\/\/www.d-project.com\/\r\n\u00a0\u00a0 \u00a0\/\/\r\n\u00a0\u00a0 \u00a0\/\/ Licensed under the MIT license:\r\n\u00a0\u00a0 \u00a0\/\/ \u00a0 http:\/\/www.opensource.org\/licenses\/mit-license.php\r\n\u00a0\u00a0 \u00a0\/\/\r\n\u00a0\u00a0 \u00a0\/\/ The word &quot;QR Code&quot; is registered trademark of\u00a0\r\n\u00a0\u00a0 \u00a0\/\/ DENSO WAVE INCORPORATED\r\n\u00a0\u00a0 \u00a0\/\/ \u00a0 http:\/\/www.denso-wave.com\/qrcode\/faqpatent-e.html\r\n\u00a0\u00a0 \u00a0\/\/\r\n\u00a0\u00a0 \u00a0\/\/---------------------------------------------------------------------\r\n\u00a0\u00a0 \u00a0function QR8bitByte(data) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.mode = QRMode.MODE_8BIT_BYTE;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.data = data;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.parsedData = [];\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Added to support UTF-8 Characters\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var i = 0, l = this.data.length; i &lt; l; i++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var byteArray = [];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var code = this.data.charCodeAt(i);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (code &gt; 0x10000) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[0] = 0xF0 | ((code &amp; 0x1C0000) &gt;&gt;&gt; 18);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[1] = 0x80 | ((code &amp; 0x3F000) &gt;&gt;&gt; 12);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[2] = 0x80 | ((code &amp; 0xFC0) &gt;&gt;&gt; 6);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[3] = 0x80 | (code &amp; 0x3F);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} else if (code &gt; 0x800) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[0] = 0xE0 | ((code &amp; 0xF000) &gt;&gt;&gt; 12);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[1] = 0x80 | ((code &amp; 0xFC0) &gt;&gt;&gt; 6);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[2] = 0x80 | (code &amp; 0x3F);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} else if (code &gt; 0x80) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[0] = 0xC0 | ((code &amp; 0x7C0) &gt;&gt;&gt; 6);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[1] = 0x80 | (code &amp; 0x3F);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} else {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0byteArray[0] = code;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.parsedData.push(byteArray);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.parsedData = Array.prototype.concat.apply([], this.parsedData);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (this.parsedData.length != this.data.length) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.parsedData.unshift(191);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.parsedData.unshift(187);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.parsedData.unshift(239);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0QR8bitByte.prototype = {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0getLength: function (buffer) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return this.parsedData.length;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0},\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0write: function (buffer) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var i = 0, l = this.parsedData.length; i &lt; l; i++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0buffer.put(this.parsedData[i], 8);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0};\r\n\r\n\u00a0\u00a0 \u00a0function QRCodeModel(typeNumber, errorCorrectLevel) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.typeNumber = typeNumber;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.errorCorrectLevel = errorCorrectLevel;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.modules = null;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.moduleCount = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.dataCache = null;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.dataList = [];\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0QRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row&lt;0||this.moduleCount&lt;=row||col&lt;0||this.moduleCount&lt;=col){throw new Error(row+&quot;,&quot;+col);}\r\n\u00a0\u00a0 \u00a0return this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row&lt;this.moduleCount;row++){this.modules[row]=new Array(this.moduleCount);for(var col=0;col&lt;this.moduleCount;col++){this.modules[row][col]=null;}}\r\n\u00a0\u00a0 \u00a0this.setupPositionProbePattern(0,0);this.setupPositionProbePattern(this.moduleCount-7,0);this.setupPositionProbePattern(0,this.moduleCount-7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(test,maskPattern);if(this.typeNumber&gt;=7){this.setupTypeNumber(test);}\r\n\u00a0\u00a0 \u00a0if(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\r\n\u00a0\u00a0 \u00a0this.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r&lt;=7;r++){if(row+r&lt;=-1||this.moduleCount&lt;=row+r)continue;for(var c=-1;c&lt;=7;c++){if(col+c&lt;=-1||this.moduleCount&lt;=col+c)continue;if((0&lt;=r&amp;&amp;r&lt;=6&amp;&amp;(c==0||c==6))||(0&lt;=c&amp;&amp;c&lt;=6&amp;&amp;(r==0||r==6))||(2&lt;=r&amp;&amp;r&lt;=4&amp;&amp;2&lt;=c&amp;&amp;c&lt;=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i&lt;8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint&gt;lostPoint){minLostPoint=lostPoint;pattern=i;}}\r\n\u00a0\u00a0 \u00a0return pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row&lt;this.modules.length;row++){var y=row*cs;for(var col=0;col&lt;this.modules[row].length;col++){var x=col*cs;var dark=this.modules[row][col];if(dark){qr_mc.beginFill(0,100);qr_mc.moveTo(x,y);qr_mc.lineTo(x+cs,y);qr_mc.lineTo(x+cs,y+cs);qr_mc.lineTo(x,y+cs);qr_mc.endFill();}}}\r\n\u00a0\u00a0 \u00a0return qr_mc;},setupTimingPattern:function(){for(var r=8;r&lt;this.moduleCount-8;r++){if(this.modules[r][6]!=null){continue;}\r\n\u00a0\u00a0 \u00a0this.modules[r][6]=(r%2==0);}\r\n\u00a0\u00a0 \u00a0for(var c=8;c&lt;this.moduleCount-8;c++){if(this.modules[6][c]!=null){continue;}\r\n\u00a0\u00a0 \u00a0this.modules[6][c]=(c%2==0);}},setupPositionAdjustPattern:function(){var pos=QRUtil.getPatternPosition(this.typeNumber);for(var i=0;i&lt;pos.length;i++){for(var j=0;j&lt;pos.length;j++){var row=pos[i];var col=pos[j];if(this.modules[row][col]!=null){continue;}\r\n\u00a0\u00a0 \u00a0for(var r=-2;r&lt;=2;r++){for(var c=-2;c&lt;=2;c++){if(r==-2||r==2||c==-2||c==2||(r==0&amp;&amp;c==0)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}}}},setupTypeNumber:function(test){var bits=QRUtil.getBCHTypeNumber(this.typeNumber);for(var i=0;i&lt;18;i++){var mod=(!test&amp;&amp;((bits&gt;&gt;i)&amp;1)==1);this.modules[Math.floor(i\/3)][i%3+this.moduleCount-8-3]=mod;}\r\n\u00a0\u00a0 \u00a0for(var i=0;i&lt;18;i++){var mod=(!test&amp;&amp;((bits&gt;&gt;i)&amp;1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i\/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel&lt;&lt;3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i&lt;15;i++){var mod=(!test&amp;&amp;((bits&gt;&gt;i)&amp;1)==1);if(i&lt;6){this.modules[i][8]=mod;}else if(i&lt;8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\r\n\u00a0\u00a0 \u00a0for(var i=0;i&lt;15;i++){var mod=(!test&amp;&amp;((bits&gt;&gt;i)&amp;1)==1);if(i&lt;8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i&lt;9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\r\n\u00a0\u00a0 \u00a0this.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col&gt;0;col-=2){if(col==6)col--;while(true){for(var c=0;c&lt;2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex&lt;data.length){dark=(((data[byteIndex]&gt;&gt;&gt;bitIndex)&amp;1)==1);}\r\n\u00a0\u00a0 \u00a0var mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\r\n\u00a0\u00a0 \u00a0this.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\r\n\u00a0\u00a0 \u00a0row+=inc;if(row&lt;0||this.moduleCount&lt;=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;i&lt;dataList.length;i++){var data=dataList[i];buffer.put(data.mode,4);buffer.put(data.getLength(),QRUtil.getLengthInBits(data.mode,typeNumber));data.write(buffer);}\r\n\u00a0\u00a0 \u00a0var totalDataCount=0;for(var i=0;i&lt;rsBlocks.length;i++){totalDataCount+=rsBlocks[i].dataCount;}\r\n\u00a0\u00a0 \u00a0if(buffer.getLengthInBits()&gt;totalDataCount*8){throw new Error(&quot;code length overflow. (&quot;\r\n\u00a0\u00a0 \u00a0+buffer.getLengthInBits()\r\n\u00a0\u00a0 \u00a0+&quot;&gt;&quot;\r\n\u00a0\u00a0 \u00a0+totalDataCount*8\r\n\u00a0\u00a0 \u00a0+&quot;)&quot;);}\r\n\u00a0\u00a0 \u00a0if(buffer.getLengthInBits()+4&lt;=totalDataCount*8){buffer.put(0,4);}\r\n\u00a0\u00a0 \u00a0while(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\r\n\u00a0\u00a0 \u00a0while(true){if(buffer.getLengthInBits()&gt;=totalDataCount*8){break;}\r\n\u00a0\u00a0 \u00a0buffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()&gt;=totalDataCount*8){break;}\r\n\u00a0\u00a0 \u00a0buffer.put(QRCodeModel.PAD1,8);}\r\n\u00a0\u00a0 \u00a0return QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r&lt;rsBlocks.length;r++){var dcCount=rsBlocks[r].dataCount;var ecCount=rsBlocks[r].totalCount-dcCount;maxDcCount=Math.max(maxDcCount,dcCount);maxEcCount=Math.max(maxEcCount,ecCount);dcdata[r]=new Array(dcCount);for(var i=0;i&lt;dcdata[r].length;i++){dcdata[r][i]=0xff&amp;buffer.buffer[i+offset];}\r\n\u00a0\u00a0 \u00a0offset+=dcCount;var rsPoly=QRUtil.getErrorCorrectPolynomial(ecCount);var rawPoly=new QRPolynomial(dcdata[r],rsPoly.getLength()-1);var modPoly=rawPoly.mod(rsPoly);ecdata[r]=new Array(rsPoly.getLength()-1);for(var i=0;i&lt;ecdata[r].length;i++){var modIndex=i+modPoly.getLength()-ecdata[r].length;ecdata[r][i]=(modIndex&gt;=0)?modPoly.get(modIndex):0;}}\r\n\u00a0\u00a0 \u00a0var totalCodeCount=0;for(var i=0;i&lt;rsBlocks.length;i++){totalCodeCount+=rsBlocks[i].totalCount;}\r\n\u00a0\u00a0 \u00a0var data=new Array(totalCodeCount);var index=0;for(var i=0;i&lt;maxDcCount;i++){for(var r=0;r&lt;rsBlocks.length;r++){if(i&lt;dcdata[r].length){data[index++]=dcdata[r][i];}}}\r\n\u00a0\u00a0 \u00a0for(var i=0;i&lt;maxEcCount;i++){for(var r=0;r&lt;rsBlocks.length;r++){if(i&lt;ecdata[r].length){data[index++]=ecdata[r][i];}}}\r\n\u00a0\u00a0 \u00a0return data;};var QRMode={MODE_NUMBER:1&lt;&lt;0,MODE_ALPHA_NUM:1&lt;&lt;1,MODE_8BIT_BYTE:1&lt;&lt;2,MODE_KANJI:1&lt;&lt;3};var QRErrorCorrectLevel={L:1,M:0,Q:3,H:2};var QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var QRUtil={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:(1&lt;&lt;10)|(1&lt;&lt;8)|(1&lt;&lt;5)|(1&lt;&lt;4)|(1&lt;&lt;2)|(1&lt;&lt;1)|(1&lt;&lt;0),G18:(1&lt;&lt;12)|(1&lt;&lt;11)|(1&lt;&lt;10)|(1&lt;&lt;9)|(1&lt;&lt;8)|(1&lt;&lt;5)|(1&lt;&lt;2)|(1&lt;&lt;0),G15_MASK:(1&lt;&lt;14)|(1&lt;&lt;12)|(1&lt;&lt;10)|(1&lt;&lt;4)|(1&lt;&lt;1),getBCHTypeInfo:function(data){var d=data&lt;&lt;10;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)&gt;=0){d^=(QRUtil.G15&lt;&lt;(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\r\n\u00a0\u00a0 \u00a0return((data&lt;&lt;10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data&lt;&lt;12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)&gt;=0){d^=(QRUtil.G18&lt;&lt;(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\r\n\u00a0\u00a0 \u00a0return(data&lt;&lt;12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data&gt;&gt;&gt;=1;}\r\n\u00a0\u00a0 \u00a0return digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i\/2)+Math.floor(j\/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(&quot;bad maskPattern:&quot;+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i&lt;errorCorrectLength;i++){a=a.multiply(new QRPolynomial([1,QRMath.gexp(i)],0));}\r\n\u00a0\u00a0 \u00a0return a;},getLengthInBits:function(mode,type){if(1&lt;=type&amp;&amp;type&lt;10){switch(mode){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:return 8;case QRMode.MODE_KANJI:return 8;default:throw new Error(&quot;mode:&quot;+mode);}}else if(type&lt;27){switch(mode){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw new Error(&quot;mode:&quot;+mode);}}else if(type&lt;41){switch(mode){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw new Error(&quot;mode:&quot;+mode);}}else{throw new Error(&quot;type:&quot;+type);}},getLostPoint:function(qrCode){var moduleCount=qrCode.getModuleCount();var lostPoint=0;for(var row=0;row&lt;moduleCount;row++){for(var col=0;col&lt;moduleCount;col++){var sameCount=0;var dark=qrCode.isDark(row,col);for(var r=-1;r&lt;=1;r++){if(row+r&lt;0||moduleCount&lt;=row+r){continue;}\r\n\u00a0\u00a0 \u00a0for(var c=-1;c&lt;=1;c++){if(col+c&lt;0||moduleCount&lt;=col+c){continue;}\r\n\u00a0\u00a0 \u00a0if(r==0&amp;&amp;c==0){continue;}\r\n\u00a0\u00a0 \u00a0if(dark==qrCode.isDark(row+r,col+c)){sameCount++;}}}\r\n\u00a0\u00a0 \u00a0if(sameCount&gt;5){lostPoint+=(3+sameCount-5);}}}\r\n\u00a0\u00a0 \u00a0for(var row=0;row&lt;moduleCount-1;row++){for(var col=0;col&lt;moduleCount-1;col++){var count=0;if(qrCode.isDark(row,col))count++;if(qrCode.isDark(row+1,col))count++;if(qrCode.isDark(row,col+1))count++;if(qrCode.isDark(row+1,col+1))count++;if(count==0||count==4){lostPoint+=3;}}}\r\n\u00a0\u00a0 \u00a0for(var row=0;row&lt;moduleCount;row++){for(var col=0;col&lt;moduleCount-6;col++){if(qrCode.isDark(row,col)&amp;&amp;!qrCode.isDark(row,col+1)&amp;&amp;qrCode.isDark(row,col+2)&amp;&amp;qrCode.isDark(row,col+3)&amp;&amp;qrCode.isDark(row,col+4)&amp;&amp;!qrCode.isDark(row,col+5)&amp;&amp;qrCode.isDark(row,col+6)){lostPoint+=40;}}}\r\n\u00a0\u00a0 \u00a0for(var col=0;col&lt;moduleCount;col++){for(var row=0;row&lt;moduleCount-6;row++){if(qrCode.isDark(row,col)&amp;&amp;!qrCode.isDark(row+1,col)&amp;&amp;qrCode.isDark(row+2,col)&amp;&amp;qrCode.isDark(row+3,col)&amp;&amp;qrCode.isDark(row+4,col)&amp;&amp;!qrCode.isDark(row+5,col)&amp;&amp;qrCode.isDark(row+6,col)){lostPoint+=40;}}}\r\n\u00a0\u00a0 \u00a0var darkCount=0;for(var col=0;col&lt;moduleCount;col++){for(var row=0;row&lt;moduleCount;row++){if(qrCode.isDark(row,col)){darkCount++;}}}\r\n\u00a0\u00a0 \u00a0var ratio=Math.abs(100*darkCount\/moduleCount\/moduleCount-50)\/5;lostPoint+=ratio*10;return lostPoint;}};var QRMath={glog:function(n){if(n&lt;1){throw new Error(&quot;glog(&quot;+n+&quot;)&quot;);}\r\n\u00a0\u00a0 \u00a0return QRMath.LOG_TABLE[n];},gexp:function(n){while(n&lt;0){n+=255;}\r\n\u00a0\u00a0 \u00a0while(n&gt;=256){n-=255;}\r\n\u00a0\u00a0 \u00a0return QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i&lt;8;i++){QRMath.EXP_TABLE[i]=1&lt;&lt;i;}\r\n\u00a0\u00a0 \u00a0for(var i=8;i&lt;256;i++){QRMath.EXP_TABLE[i]=QRMath.EXP_TABLE[i-4]^QRMath.EXP_TABLE[i-5]^QRMath.EXP_TABLE[i-6]^QRMath.EXP_TABLE[i-8];}\r\n\u00a0\u00a0 \u00a0for(var i=0;i&lt;255;i++){QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]]=i;}\r\n\u00a0\u00a0 \u00a0function QRPolynomial(num,shift){if(num.length==undefined){throw new Error(num.length+&quot;\/&quot;+shift);}\r\n\u00a0\u00a0 \u00a0var offset=0;while(offset&lt;num.length&amp;&amp;num[offset]==0){offset++;}\r\n\u00a0\u00a0 \u00a0this.num=new Array(num.length-offset+shift);for(var i=0;i&lt;num.length-offset;i++){this.num[i]=num[i+offset];}}\r\n\u00a0\u00a0 \u00a0QRPolynomial.prototype={get:function(index){return this.num[index];},getLength:function(){return this.num.length;},multiply:function(e){var num=new Array(this.getLength()+e.getLength()-1);for(var i=0;i&lt;this.getLength();i++){for(var j=0;j&lt;e.getLength();j++){num[i+j]^=QRMath.gexp(QRMath.glog(this.get(i))+QRMath.glog(e.get(j)));}}\r\n\u00a0\u00a0 \u00a0return new QRPolynomial(num,0);},mod:function(e){if(this.getLength()-e.getLength()&lt;0){return this;}\r\n\u00a0\u00a0 \u00a0var ratio=QRMath.glog(this.get(0))-QRMath.glog(e.get(0));var num=new Array(this.getLength());for(var i=0;i&lt;this.getLength();i++){num[i]=this.get(i);}\r\n\u00a0\u00a0 \u00a0for(var i=0;i&lt;e.getLength();i++){num[i]^=QRMath.gexp(QRMath.glog(e.get(i))+ratio);}\r\n\u00a0\u00a0 \u00a0return new QRPolynomial(num,0).mod(e);}};function QRRSBlock(totalCount,dataCount){this.totalCount=totalCount;this.dataCount=dataCount;}\r\n\u00a0\u00a0 \u00a0QRRSBlock.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];QRRSBlock.getRSBlocks=function(typeNumber,errorCorrectLevel){var rsBlock=QRRSBlock.getRsBlockTable(typeNumber,errorCorrectLevel);if(rsBlock==undefined){throw new Error(&quot;bad rs block @ typeNumber:&quot;+typeNumber+&quot;\/errorCorrectLevel:&quot;+errorCorrectLevel);}\r\n\u00a0\u00a0 \u00a0var length=rsBlock.length\/3;var list=[];for(var i=0;i&lt;length;i++){var count=rsBlock[i*3+0];var totalCount=rsBlock[i*3+1];var dataCount=rsBlock[i*3+2];for(var j=0;j&lt;count;j++){list.push(new QRRSBlock(totalCount,dataCount));}}\r\n\u00a0\u00a0 \u00a0return list;};QRRSBlock.getRsBlockTable=function(typeNumber,errorCorrectLevel){switch(errorCorrectLevel){case QRErrorCorrectLevel.L:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+0];case QRErrorCorrectLevel.M:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+1];case QRErrorCorrectLevel.Q:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+2];case QRErrorCorrectLevel.H:return QRRSBlock.RS_BLOCK_TABLE[(typeNumber-1)*4+3];default:return undefined;}};function QRBitBuffer(){this.buffer=[];this.length=0;}\r\n\u00a0\u00a0 \u00a0QRBitBuffer.prototype={get:function(index){var bufIndex=Math.floor(index\/8);return((this.buffer[bufIndex]&gt;&gt;&gt;(7-index%8))&amp;1)==1;},put:function(num,length){for(var i=0;i&lt;length;i++){this.putBit(((num&gt;&gt;&gt;(length-i-1))&amp;1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length\/8);if(this.buffer.length&lt;=bufIndex){this.buffer.push(0);}\r\n\u00a0\u00a0 \u00a0if(bit){this.buffer[bufIndex]|=(0x80&gt;&gt;&gt;(this.length%8));}\r\n\u00a0\u00a0 \u00a0this.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0function _isSupportCanvas() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return typeof CanvasRenderingContext2D != &quot;undefined&quot;;\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/\/ android 2.x doesn&#039;t support Data-URI spec\r\n\u00a0\u00a0 \u00a0function _getAndroid() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var android = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var sAgent = navigator.userAgent;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (\/android\/i.test(sAgent)) { \/\/ android\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0android = true;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var aMat = sAgent.toString().match(\/android ([0-9]\\.[0-9])\/i);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (aMat &amp;&amp; aMat[1]) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0android = parseFloat(aMat[1]);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return android;\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0var svgDrawer = (function() {\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var Drawing = function (el, htOption) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el = el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._htOption = htOption;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.draw = function (oQRCode) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var _htOption = this._htOption;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var _el = this._el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nCount = oQRCode.getModuleCount();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nWidth = Math.floor(_htOption.width \/ nCount);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nHeight = Math.floor(_htOption.height \/ nCount);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.clear();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0function makeSVG(tag, attrs) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var el = document.createElementNS(&#039;http:\/\/www.w3.org\/2000\/svg&#039;, tag);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var k in attrs)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var svg = makeSVG(&quot;svg&quot; , {&#039;viewBox&#039;: &#039;0 0 &#039; + String(nCount) + &quot; &quot; + String(nCount), &#039;width&#039;: &#039;100%&#039;, &#039;height&#039;: &#039;100%&#039;, &#039;fill&#039;: _htOption.colorLight});\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0svg.setAttributeNS(&quot;http:\/\/www.w3.org\/2000\/xmlns\/&quot;, &quot;xmlns:xlink&quot;, &quot;http:\/\/www.w3.org\/1999\/xlink&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_el.appendChild(svg);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0svg.appendChild(makeSVG(&quot;rect&quot;, {&quot;fill&quot;: _htOption.colorLight, &quot;width&quot;: &quot;100%&quot;, &quot;height&quot;: &quot;100%&quot;}));\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0svg.appendChild(makeSVG(&quot;rect&quot;, {&quot;fill&quot;: _htOption.colorDark, &quot;width&quot;: &quot;1&quot;, &quot;height&quot;: &quot;1&quot;, &quot;id&quot;: &quot;template&quot;}));\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var row = 0; row &lt; nCount; row++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var col = 0; col &lt; nCount; col++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (oQRCode.isDark(row, col)) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var child = makeSVG(&quot;use&quot;, {&quot;x&quot;: String(col), &quot;y&quot;: String(row)});\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0child.setAttributeNS(&quot;http:\/\/www.w3.org\/1999\/xlink&quot;, &quot;href&quot;, &quot;#template&quot;)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0svg.appendChild(child);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.clear = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while (this._el.hasChildNodes())\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el.removeChild(this._el.lastChild);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return Drawing;\r\n\u00a0\u00a0 \u00a0})();\r\n\r\n\u00a0\u00a0 \u00a0var useSVG = document.documentElement.tagName.toLowerCase() === &quot;svg&quot;;\r\n\r\n\u00a0\u00a0 \u00a0\/\/ Drawing in DOM by using Table tag\r\n\u00a0\u00a0 \u00a0var Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var Drawing = function (el, htOption) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el = el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._htOption = htOption;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Draw the QRCode\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {QRCode} oQRCode\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.draw = function (oQRCode) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var _htOption = this._htOption;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var _el = this._el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nCount = oQRCode.getModuleCount();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nWidth = Math.floor(_htOption.width \/ nCount);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nHeight = Math.floor(_htOption.height \/ nCount);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var aHTML = [&#039;&lt;table style=&quot;border:0;border-collapse:collapse;&quot;&gt;&#039;];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var row = 0; row &lt; nCount; row++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0aHTML.push(&#039;&lt;tr&gt;&#039;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var col = 0; col &lt; nCount; col++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0aHTML.push(&#039;&lt;td style=&quot;border:0;border-collapse:collapse;padding:0;margin:0;width:&#039; + nWidth + &#039;px;height:&#039; + nHeight + &#039;px;background-color:&#039; + (oQRCode.isDark(row, col) ? _htOption.colorDark : _htOption.colorLight) + &#039;;&quot;&gt;&lt;\/td&gt;&#039;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0aHTML.push(&#039;&lt;\/tr&gt;&#039;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0aHTML.push(&#039;&lt;\/table&gt;&#039;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_el.innerHTML = aHTML.join(&#039;&#039;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Fix the margin values as real size.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var elTable = _el.childNodes[0];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nLeftMarginTable = (_htOption.width - elTable.offsetWidth) \/ 2;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nTopMarginTable = (_htOption.height - elTable.offsetHeight) \/ 2;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (nLeftMarginTable &gt; 0 &amp;&amp; nTopMarginTable &gt; 0) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0elTable.style.margin = nTopMarginTable + &quot;px &quot; + nLeftMarginTable + &quot;px&quot;;\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Clear the QRCode\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.clear = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el.innerHTML = &#039;&#039;;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return Drawing;\r\n\u00a0\u00a0 \u00a0})() : (function () { \/\/ Drawing in Canvas\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0function _onMakeImage() {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elImage.src = this._elCanvas.toDataURL(&quot;image\/png&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elImage.style.display = &quot;block&quot;;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elCanvas.style.display = &quot;none&quot;;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Android 2.1 bug workaround\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ http:\/\/code.google.com\/p\/android\/issues\/detail?id=5141\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (this._android &amp;&amp; this._android &lt;= 2.1) {\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0var factor = 1 \/ window.devicePixelRatio;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0var drawImage = CanvasRenderingContext2D.prototype.drawImage;\u00a0\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0CanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if ((&quot;nodeName&quot; in image) &amp;&amp; \/img\/i.test(image.nodeName)) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0for (var i = arguments.length - 1; i &gt;= 1; i--) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0arguments[i] = arguments[i] * factor;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} else if (typeof dw == &quot;undefined&quot;) {\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0arguments[1] *= factor;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0arguments[2] *= factor;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0arguments[3] *= factor;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0arguments[4] *= factor;\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0drawImage.apply(this, arguments);\u00a0\r\n\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Check whether the user&#039;s browser supports Data URI or not\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @private\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {Function} fSuccess Occurs if it supports Data URI\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {Function} fFail Occurs if it doesn&#039;t support Data URI\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0function _safeSetDataURI(fSuccess, fFail) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var self = this;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._fFail = fFail;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._fSuccess = fSuccess;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ Check it just once\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (self._bSupportDataURI === null) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var el = document.createElement(&quot;img&quot;);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var fOnError = function() {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._bSupportDataURI = false;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (self._fFail) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._fFail.call(self);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 };\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var fOnSuccess = function() {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._bSupportDataURI = true;\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (self._fSuccess) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._fSuccess.call(self);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 };\r\n\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 el.onabort = fOnError;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 el.onerror = fOnError;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 el.onload = fOnSuccess;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 el.src = &quot;data:image\/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4\/\/8\/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==&quot;; \/\/ the Image contains 1px data.\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 } else if (self._bSupportDataURI === true &amp;&amp; self._fSuccess) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._fSuccess.call(self);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 } else if (self._bSupportDataURI === false &amp;&amp; self._fFail) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 self._fFail.call(self);\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Drawing QRCode by using canvas\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @constructor\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {HTMLElement} el\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {Object} htOption QRCode Options\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var Drawing = function (el, htOption) {\r\n\u00a0 \u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._bIsPainted = false;\r\n\u00a0 \u00a0 \u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._android = _getAndroid();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._htOption = htOption;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elCanvas = document.createElement(&quot;canvas&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elCanvas.width = htOption.width;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elCanvas.height = htOption.height;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0el.appendChild(this._elCanvas);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el = el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oContext = this._elCanvas.getContext(&quot;2d&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._bIsPainted = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elImage = document.createElement(&quot;img&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elImage.alt = &quot;Scan me!&quot;;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._elImage.style.display = &quot;none&quot;;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el.appendChild(this._elImage);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._bSupportDataURI = null;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Draw the QRCode\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {QRCode} oQRCode\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.draw = function (oQRCode) {\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var _elImage = this._elImage;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var _oContext = this._oContext;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 var _htOption = this._htOption;\r\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nCount = oQRCode.getModuleCount();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nWidth = _htOption.width \/ nCount;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nHeight = _htOption.height \/ nCount;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nRoundedWidth = Math.round(nWidth);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nRoundedHeight = Math.round(nHeight);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_elImage.style.display = &quot;none&quot;;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.clear();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var row = 0; row &lt; nCount; row++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var col = 0; col &lt; nCount; col++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var bIsDark = oQRCode.isDark(row, col);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nLeft = col * nWidth;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nTop = row * nHeight;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_oContext.lineWidth = 1;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_oContext.fillRect(nLeft, nTop, nWidth, nHeight);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ \uc548\ud2f0 \uc568\ub9ac\uc5b4\uc2f1 \ubc29\uc9c0 \ucc98\ub9ac\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_oContext.strokeRect(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Math.floor(nLeft) + 0.5,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Math.floor(nTop) + 0.5,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nRoundedWidth,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nRoundedHeight\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_oContext.strokeRect(\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Math.ceil(nLeft) - 0.5,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Math.ceil(nTop) - 0.5,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nRoundedWidth,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nRoundedHeight\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._bIsPainted = true;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Make the image from Canvas if the browser supports Data URI.\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.makeImage = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (this._bIsPainted) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0_safeSetDataURI.call(this, _onMakeImage);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Return whether the QRCode is painted or not\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @return {Boolean}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.isPainted = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return this._bIsPainted;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * Clear the QRCode\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.clear = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._bIsPainted = false;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @private\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 * @param {Number} nNumber\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing.prototype.round = function (nNumber) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (!nNumber) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return nNumber;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return Math.floor(nNumber * 1000) \/ 1000;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return Drawing;\r\n\u00a0\u00a0 \u00a0})();\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0 * Get the type by string length\r\n\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0 * @private\r\n\u00a0\u00a0 \u00a0 * @param {String} sText\r\n\u00a0\u00a0 \u00a0 * @param {Number} nCorrectLevel\r\n\u00a0\u00a0 \u00a0 * @return {Number} type\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0function _getTypeNumber(sText, nCorrectLevel) {\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nType = 1;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var length = _getUTF8Length(sText);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var i = 0, len = QRCodeLimitLength.length; i &lt;= len; i++) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var nLimit = 0;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0switch (nCorrectLevel) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case QRErrorCorrectLevel.L :\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nLimit = QRCodeLimitLength[i][0];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case QRErrorCorrectLevel.M :\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nLimit = QRCodeLimitLength[i][1];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case QRErrorCorrectLevel.Q :\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nLimit = QRCodeLimitLength[i][2];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0case QRErrorCorrectLevel.H :\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nLimit = QRCodeLimitLength[i][3];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (length &lt;= nLimit) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0break;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0} else {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0nType++;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (nType &gt; QRCodeLimitLength.length) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0throw new Error(&quot;Too long data&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return nType;\r\n\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0function _getUTF8Length(sText) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0var replacedText = encodeURI(sText).toString().replace(\/\\%[0-9a-fA-F]{2}\/g, &#039;a&#039;);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0return replacedText.length + (replacedText.length != sText ? 3 : 0);\r\n\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0 * @class QRCode\r\n\u00a0\u00a0 \u00a0 * @constructor\r\n\u00a0\u00a0 \u00a0 * @example\u00a0\r\n\u00a0\u00a0 \u00a0 * new QRCode(document.getElementById(&quot;test&quot;), &quot;http:\/\/jindo.dev.naver.com\/collie&quot;);\r\n\u00a0\u00a0 \u00a0 *\r\n\u00a0\u00a0 \u00a0 * @example\r\n\u00a0\u00a0 \u00a0 * var oQRCode = new QRCode(&quot;test&quot;, {\r\n\u00a0\u00a0 \u00a0 * \u00a0 \u00a0text : &quot;http:\/\/naver.com&quot;,\r\n\u00a0\u00a0 \u00a0 * \u00a0 \u00a0width : 128,\r\n\u00a0\u00a0 \u00a0 * \u00a0 \u00a0height : 128\r\n\u00a0\u00a0 \u00a0 * });\r\n\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0 * oQRCode.clear(); \/\/ Clear the QRCode.\r\n\u00a0\u00a0 \u00a0 * oQRCode.makeCode(&quot;http:\/\/map.naver.com&quot;); \/\/ Re-create the QRCode.\r\n\u00a0\u00a0 \u00a0 *\r\n\u00a0\u00a0 \u00a0 * @param {HTMLElement|String} el target element or &#039;id&#039; attribute of element.\r\n\u00a0\u00a0 \u00a0 * @param {Object|String} vOption\r\n\u00a0\u00a0 \u00a0 * @param {String} vOption.text QRCode link data\r\n\u00a0\u00a0 \u00a0 * @param {Number} [vOption.width=256]\r\n\u00a0\u00a0 \u00a0 * @param {Number} [vOption.height=256]\r\n\u00a0\u00a0 \u00a0 * @param {String} [vOption.colorDark=&quot;#000000&quot;]\r\n\u00a0\u00a0 \u00a0 * @param {String} [vOption.colorLight=&quot;#ffffff&quot;]\r\n\u00a0\u00a0 \u00a0 * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H]\u00a0\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0QRCode = function (el, vOption) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._htOption = {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0width : 256,\u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0height : 256,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0typeNumber : 4,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0colorDark : &quot;#000000&quot;,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0colorLight : &quot;#ffffff&quot;,\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0correctLevel : QRErrorCorrectLevel.H\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (typeof vOption === &#039;string&#039;) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0vOption\u00a0\u00a0 \u00a0= {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0text : vOption\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/ Overwrites options\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (vOption) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0for (var i in vOption) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._htOption[i] = vOption[i];\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (typeof el == &quot;string&quot;) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0el = document.getElementById(el);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (this._htOption.useSVG) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0Drawing = svgDrawer;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._android = _getAndroid();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el = el;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oQRCode = null;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oDrawing = new Drawing(this._el, this._htOption);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (this._htOption.text) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.makeCode(this._htOption.text);\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0 * Make the QRCode\r\n\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0 * @param {String} sText link data\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0QRCode.prototype.makeCode = function (sText) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oQRCode.addData(sText);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oQRCode.make();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._el.title = sText;\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oDrawing.draw(this._oQRCode);\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this.makeImage();\r\n\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0 * Make the Image from Canvas element\r\n\u00a0\u00a0 \u00a0 * - It occurs automatically\r\n\u00a0\u00a0 \u00a0 * - Android below 3 doesn&#039;t support Data-URI spec.\r\n\u00a0\u00a0 \u00a0 *\u00a0\r\n\u00a0\u00a0 \u00a0 * @private\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0QRCode.prototype.makeImage = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0if (typeof this._oDrawing.makeImage == &quot;function&quot; &amp;&amp; (!this._android || this._android &gt;= 3)) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oDrawing.makeImage();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0 * Clear the QRCode\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0QRCode.prototype.clear = function () {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0this._oDrawing.clear();\r\n\u00a0\u00a0 \u00a0};\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\/**\r\n\u00a0\u00a0 \u00a0 * @name QRCode.CorrectLevel\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0QRCode.CorrectLevel = QRErrorCorrectLevel;\r\n})();<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Step_5\"><\/span>Step 5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Create your qrcode.min.js with the content below.<\/p>\n<pre id=\"code-snippet-source-40\" class=\"code-snippet-source\"><code class=\"language-php\">var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e&gt;d;d++){var f=this.data.charCodeAt(d);f&gt;65536?(b[0]=240|(1835008&amp;f)&gt;&gt;&gt;18,b[1]=128|(258048&amp;f)&gt;&gt;&gt;12,b[2]=128|(4032&amp;f)&gt;&gt;&gt;6,b[3]=128|63&amp;f):f&gt;2048?(b[0]=224|(61440&amp;f)&gt;&gt;&gt;12,b[1]=128|(4032&amp;f)&gt;&gt;&gt;6,b[2]=128|63&amp;f):f&gt;128?(b[0]=192|(1984&amp;f)&gt;&gt;&gt;6,b[1]=128|63&amp;f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&amp;&amp;(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+&quot;\/&quot;+b);for(var c=0;c&lt;a.length&amp;&amp;0==a[c];)c++;this.num=new Array(a.length-c+b);for(var d=0;d&lt;a.length-c;d++)this.num[d]=a[d+c]}function j(a,b){this.totalCount=a,this.dataCount=b}function k(){this.buffer=[],this.length=0}function m(){return&quot;undefined&quot;!=typeof CanvasRenderingContext2D}function n(){var a=!1,b=navigator.userAgent;return\/android\/i.test(b)&amp;&amp;(a=!0,aMat=b.toString().match(\/android ([0-9]\\.[0-9])\/i),aMat&amp;&amp;aMat[1]&amp;&amp;(a=parseFloat(aMat[1]))),a}function r(a,b){for(var c=1,e=s(a),f=0,g=l.length;g&gt;=f;f++){var h=0;switch(b){case d.L:h=l[f][0];break;case d.M:h=l[f][1];break;case d.Q:h=l[f][2];break;case d.H:h=l[f][3]}if(h&gt;=e)break;c++}if(c&gt;l.length)throw new Error(&quot;Too long data&quot;);return c}function s(a){var b=encodeURI(a).toString().replace(\/\\%[0-9a-fA-F]{2}\/g,&quot;a&quot;);return b.length+(b.length!=a?3:0)}a.prototype={getLength:function(){return this.parsedData.length},write:function(a){for(var b=0,c=this.parsedData.length;c&gt;b;b++)a.put(this.parsedData[b],8)}},b.prototype={addData:function(b){var c=new a(b);this.dataList.push(c),this.dataCache=null},isDark:function(a,b){if(0&gt;a||this.moduleCount&lt;=a||0&gt;b||this.moduleCount&lt;=b)throw new Error(a+&quot;,&quot;+b);return this.modules[a][b]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var d=0;d&lt;this.moduleCount;d++){this.modules[d]=new Array(this.moduleCount);for(var e=0;e&lt;this.moduleCount;e++)this.modules[d][e]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(a,c),this.typeNumber&gt;=7&amp;&amp;this.setupTypeNumber(a),null==this.dataCache&amp;&amp;(this.dataCache=b.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,b){for(var c=-1;7&gt;=c;c++)if(!(-1&gt;=a+c||this.moduleCount&lt;=a+c))for(var d=-1;7&gt;=d;d++)-1&gt;=b+d||this.moduleCount&lt;=b+d||(this.modules[a+c][b+d]=c&gt;=0&amp;&amp;6&gt;=c&amp;&amp;(0==d||6==d)||d&gt;=0&amp;&amp;6&gt;=d&amp;&amp;(0==c||6==c)||c&gt;=2&amp;&amp;4&gt;=c&amp;&amp;d&gt;=2&amp;&amp;4&gt;=d?!0:!1)},getBestMaskPattern:function(){for(var a=0,b=0,c=0;8&gt;c;c++){this.makeImpl(!0,c);var d=f.getLostPoint(this);(0==c||a&gt;d)&amp;&amp;(a=d,b=c)}return b},createMovieClip:function(a,b,c){var d=a.createEmptyMovieClip(b,c),e=1;this.make();for(var f=0;f&lt;this.modules.length;f++)for(var g=f*e,h=0;h&lt;this.modules[f].length;h++){var i=h*e,j=this.modules[f][h];j&amp;&amp;(d.beginFill(0,100),d.moveTo(i,g),d.lineTo(i+e,g),d.lineTo(i+e,g+e),d.lineTo(i,g+e),d.endFill())}return d},setupTimingPattern:function(){for(var a=8;a&lt;this.moduleCount-8;a++)null==this.modules[a][6]&amp;&amp;(this.modules[a][6]=0==a%2);for(var b=8;b&lt;this.moduleCount-8;b++)null==this.modules[6][b]&amp;&amp;(this.modules[6][b]=0==b%2)},setupPositionAdjustPattern:function(){for(var a=f.getPatternPosition(this.typeNumber),b=0;b&lt;a.length;b++)for(var c=0;c&lt;a.length;c++){var d=a[b],e=a[c];if(null==this.modules[d][e])for(var g=-2;2&gt;=g;g++)for(var h=-2;2&gt;=h;h++)this.modules[d+g][e+h]=-2==g||2==g||-2==h||2==h||0==g&amp;&amp;0==h?!0:!1}},setupTypeNumber:function(a){for(var b=f.getBCHTypeNumber(this.typeNumber),c=0;18&gt;c;c++){var d=!a&amp;&amp;1==(1&amp;b&gt;&gt;c);this.modules[Math.floor(c\/3)][c%3+this.moduleCount-8-3]=d}for(var c=0;18&gt;c;c++){var d=!a&amp;&amp;1==(1&amp;b&gt;&gt;c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c\/3)]=d}},setupTypeInfo:function(a,b){for(var c=this.errorCorrectLevel&lt;&lt;3|b,d=f.getBCHTypeInfo(c),e=0;15&gt;e;e++){var g=!a&amp;&amp;1==(1&amp;d&gt;&gt;e);6&gt;e?this.modules[e][8]=g:8&gt;e?this.modules[e+1][8]=g:this.modules[this.moduleCount-15+e][8]=g}for(var e=0;15&gt;e;e++){var g=!a&amp;&amp;1==(1&amp;d&gt;&gt;e);8&gt;e?this.modules[8][this.moduleCount-e-1]=g:9&gt;e?this.modules[8][15-e-1+1]=g:this.modules[8][15-e-1]=g}this.modules[this.moduleCount-8][8]=!a},mapData:function(a,b){for(var c=-1,d=this.moduleCount-1,e=7,g=0,h=this.moduleCount-1;h&gt;0;h-=2)for(6==h&amp;&amp;h--;;){for(var i=0;2&gt;i;i++)if(null==this.modules[d][h-i]){var j=!1;g&lt;a.length&amp;&amp;(j=1==(1&amp;a[g]&gt;&gt;&gt;e));var k=f.getMask(b,d,h-i);k&amp;&amp;(j=!j),this.modules[d][h-i]=j,e--,-1==e&amp;&amp;(g++,e=7)}if(d+=c,0&gt;d||this.moduleCount&lt;=d){d-=c,c=-c;break}}}},b.PAD0=236,b.PAD1=17,b.createData=function(a,c,d){for(var e=j.getRSBlocks(a,c),g=new k,h=0;h&lt;d.length;h++){var i=d[h];g.put(i.mode,4),g.put(i.getLength(),f.getLengthInBits(i.mode,a)),i.write(g)}for(var l=0,h=0;h&lt;e.length;h++)l+=e[h].dataCount;if(g.getLengthInBits()&gt;8*l)throw new Error(&quot;code length overflow. (&quot;+g.getLengthInBits()+&quot;&gt;&quot;+8*l+&quot;)&quot;);for(g.getLengthInBits()+4&lt;=8*l&amp;&amp;g.put(0,4);0!=g.getLengthInBits()%8;)g.putBit(!1);for(;;){if(g.getLengthInBits()&gt;=8*l)break;if(g.put(b.PAD0,8),g.getLengthInBits()&gt;=8*l)break;g.put(b.PAD1,8)}return b.createBytes(g,e)},b.createBytes=function(a,b){for(var c=0,d=0,e=0,g=new Array(b.length),h=new Array(b.length),j=0;j&lt;b.length;j++){var k=b[j].dataCount,l=b[j].totalCount-k;d=Math.max(d,k),e=Math.max(e,l),g[j]=new Array(k);for(var m=0;m&lt;g[j].length;m++)g[j][m]=255&amp;a.buffer[m+c];c+=k;var n=f.getErrorCorrectPolynomial(l),o=new i(g[j],n.getLength()-1),p=o.mod(n);h[j]=new Array(n.getLength()-1);for(var m=0;m&lt;h[j].length;m++){var q=m+p.getLength()-h[j].length;h[j][m]=q&gt;=0?p.get(q):0}}for(var r=0,m=0;m&lt;b.length;m++)r+=b[m].totalCount;for(var s=new Array(r),t=0,m=0;d&gt;m;m++)for(var j=0;j&lt;b.length;j++)m&lt;g[j].length&amp;&amp;(s[t++]=g[j][m]);for(var m=0;e&gt;m;m++)for(var j=0;j&lt;b.length;j++)m&lt;h[j].length&amp;&amp;(s[t++]=h[j][m]);return s};for(var c={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},d={L:1,M:0,Q:3,H:2},e={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},f={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(a){for(var b=a&lt;&lt;10;f.getBCHDigit(b)-f.getBCHDigit(f.G15)&gt;=0;)b^=f.G15&lt;&lt;f.getBCHDigit(b)-f.getBCHDigit(f.G15);return(a&lt;&lt;10|b)^f.G15_MASK},getBCHTypeNumber:function(a){for(var b=a&lt;&lt;12;f.getBCHDigit(b)-f.getBCHDigit(f.G18)&gt;=0;)b^=f.G18&lt;&lt;f.getBCHDigit(b)-f.getBCHDigit(f.G18);return a&lt;&lt;12|b},getBCHDigit:function(a){for(var b=0;0!=a;)b++,a&gt;&gt;&gt;=1;return b},getPatternPosition:function(a){return f.PATTERN_POSITION_TABLE[a-1]},getMask:function(a,b,c){switch(a){case e.PATTERN000:return 0==(b+c)%2;case e.PATTERN001:return 0==b%2;case e.PATTERN010:return 0==c%3;case e.PATTERN011:return 0==(b+c)%3;case e.PATTERN100:return 0==(Math.floor(b\/2)+Math.floor(c\/3))%2;case e.PATTERN101:return 0==b*c%2+b*c%3;case e.PATTERN110:return 0==(b*c%2+b*c%3)%2;case e.PATTERN111:return 0==(b*c%3+(b+c)%2)%2;default:throw new Error(&quot;bad maskPattern:&quot;+a)}},getErrorCorrectPolynomial:function(a){for(var b=new i([1],0),c=0;a&gt;c;c++)b=b.multiply(new i([1,g.gexp(c)],0));return b},getLengthInBits:function(a,b){if(b&gt;=1&amp;&amp;10&gt;b)switch(a){case c.MODE_NUMBER:return 10;case c.MODE_ALPHA_NUM:return 9;case c.MODE_8BIT_BYTE:return 8;case c.MODE_KANJI:return 8;default:throw new Error(&quot;mode:&quot;+a)}else if(27&gt;b)switch(a){case c.MODE_NUMBER:return 12;case c.MODE_ALPHA_NUM:return 11;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 10;default:throw new Error(&quot;mode:&quot;+a)}else{if(!(41&gt;b))throw new Error(&quot;type:&quot;+b);switch(a){case c.MODE_NUMBER:return 14;case c.MODE_ALPHA_NUM:return 13;case c.MODE_8BIT_BYTE:return 16;case c.MODE_KANJI:return 12;default:throw new Error(&quot;mode:&quot;+a)}}},getLostPoint:function(a){for(var b=a.getModuleCount(),c=0,d=0;b&gt;d;d++)for(var e=0;b&gt;e;e++){for(var f=0,g=a.isDark(d,e),h=-1;1&gt;=h;h++)if(!(0&gt;d+h||d+h&gt;=b))for(var i=-1;1&gt;=i;i++)0&gt;e+i||e+i&gt;=b||(0!=h||0!=i)&amp;&amp;g==a.isDark(d+h,e+i)&amp;&amp;f++;f&gt;5&amp;&amp;(c+=3+f-5)}for(var d=0;b-1&gt;d;d++)for(var e=0;b-1&gt;e;e++){var j=0;a.isDark(d,e)&amp;&amp;j++,a.isDark(d+1,e)&amp;&amp;j++,a.isDark(d,e+1)&amp;&amp;j++,a.isDark(d+1,e+1)&amp;&amp;j++,(0==j||4==j)&amp;&amp;(c+=3)}for(var d=0;b&gt;d;d++)for(var e=0;b-6&gt;e;e++)a.isDark(d,e)&amp;&amp;!a.isDark(d,e+1)&amp;&amp;a.isDark(d,e+2)&amp;&amp;a.isDark(d,e+3)&amp;&amp;a.isDark(d,e+4)&amp;&amp;!a.isDark(d,e+5)&amp;&amp;a.isDark(d,e+6)&amp;&amp;(c+=40);for(var e=0;b&gt;e;e++)for(var d=0;b-6&gt;d;d++)a.isDark(d,e)&amp;&amp;!a.isDark(d+1,e)&amp;&amp;a.isDark(d+2,e)&amp;&amp;a.isDark(d+3,e)&amp;&amp;a.isDark(d+4,e)&amp;&amp;!a.isDark(d+5,e)&amp;&amp;a.isDark(d+6,e)&amp;&amp;(c+=40);for(var k=0,e=0;b&gt;e;e++)for(var d=0;b&gt;d;d++)a.isDark(d,e)&amp;&amp;k++;var l=Math.abs(100*k\/b\/b-50)\/5;return c+=10*l}},g={glog:function(a){if(1&gt;a)throw new Error(&quot;glog(&quot;+a+&quot;)&quot;);return g.LOG_TABLE[a]},gexp:function(a){for(;0&gt;a;)a+=255;for(;a&gt;=256;)a-=255;return g.EXP_TABLE[a]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;8&gt;h;h++)g.EXP_TABLE[h]=1&lt;&lt;h;for(var h=8;256&gt;h;h++)g.EXP_TABLE[h]=g.EXP_TABLE[h-4]^g.EXP_TABLE[h-5]^g.EXP_TABLE[h-6]^g.EXP_TABLE[h-8];for(var h=0;255&gt;h;h++)g.LOG_TABLE[g.EXP_TABLE[h]]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;c&lt;this.getLength();c++)for(var d=0;d&lt;a.getLength();d++)b[c+d]^=g.gexp(g.glog(this.get(c))+g.glog(a.get(d)));return new i(b,0)},mod:function(a){if(this.getLength()-a.getLength()&lt;0)return this;for(var b=g.glog(this.get(0))-g.glog(a.get(0)),c=new Array(this.getLength()),d=0;d&lt;this.getLength();d++)c[d]=this.get(d);for(var d=0;d&lt;a.getLength();d++)c[d]^=g.gexp(g.glog(a.get(d))+b);return new i(c,0).mod(a)}},j.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],j.getRSBlocks=function(a,b){var c=j.getRsBlockTable(a,b);if(void 0==c)throw new Error(&quot;bad rs block @ typeNumber:&quot;+a+&quot;\/errorCorrectLevel:&quot;+b);for(var d=c.length\/3,e=[],f=0;d&gt;f;f++)for(var g=c[3*f+0],h=c[3*f+1],i=c[3*f+2],k=0;g&gt;k;k++)e.push(new j(h,i));return e},j.getRsBlockTable=function(a,b){switch(b){case d.L:return j.RS_BLOCK_TABLE[4*(a-1)+0];case d.M:return j.RS_BLOCK_TABLE[4*(a-1)+1];case d.Q:return j.RS_BLOCK_TABLE[4*(a-1)+2];case d.H:return j.RS_BLOCK_TABLE[4*(a-1)+3];default:return void 0}},k.prototype={get:function(a){var b=Math.floor(a\/8);return 1==(1&amp;this.buffer[b]&gt;&gt;&gt;7-a%8)},put:function(a,b){for(var c=0;b&gt;c;c++)this.putBit(1==(1&amp;a&gt;&gt;&gt;b-c-1))},getLengthInBits:function(){return this.length},putBit:function(a){var b=Math.floor(this.length\/8);this.buffer.length&lt;=b&amp;&amp;this.buffer.push(0),a&amp;&amp;(this.buffer[b]|=128&gt;&gt;&gt;this.length%8),this.length++}};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],o=function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){function g(a,b){var c=document.createElementNS(&quot;http:\/\/www.w3.org\/2000\/svg&quot;,a);for(var d in b)b.hasOwnProperty(d)&amp;&amp;c.setAttribute(d,b[d]);return c}var b=this._htOption,c=this._el,d=a.getModuleCount();Math.floor(b.width\/d),Math.floor(b.height\/d),this.clear();var h=g(&quot;svg&quot;,{viewBox:&quot;0 0 &quot;+String(d)+&quot; &quot;+String(d),width:&quot;100%&quot;,height:&quot;100%&quot;,fill:b.colorLight});h.setAttributeNS(&quot;http:\/\/www.w3.org\/2000\/xmlns\/&quot;,&quot;xmlns:xlink&quot;,&quot;http:\/\/www.w3.org\/1999\/xlink&quot;),c.appendChild(h),h.appendChild(g(&quot;rect&quot;,{fill:b.colorDark,width:&quot;1&quot;,height:&quot;1&quot;,id:&quot;template&quot;}));for(var i=0;d&gt;i;i++)for(var j=0;d&gt;j;j++)if(a.isDark(i,j)){var k=g(&quot;use&quot;,{x:String(i),y:String(j)});k.setAttributeNS(&quot;http:\/\/www.w3.org\/1999\/xlink&quot;,&quot;href&quot;,&quot;#template&quot;),h.appendChild(k)}},a.prototype.clear=function(){for(;this._el.hasChildNodes();)this._el.removeChild(this._el.lastChild)},a}(),p=&quot;svg&quot;===document.documentElement.tagName.toLowerCase(),q=p?o:m()?function(){function a(){this._elImage.src=this._elCanvas.toDataURL(&quot;image\/png&quot;),this._elImage.style.display=&quot;block&quot;,this._elCanvas.style.display=&quot;none&quot;}function d(a,b){var c=this;if(c._fFail=b,c._fSuccess=a,null===c._bSupportDataURI){var d=document.createElement(&quot;img&quot;),e=function(){c._bSupportDataURI=!1,c._fFail&amp;&amp;_fFail.call(c)},f=function(){c._bSupportDataURI=!0,c._fSuccess&amp;&amp;c._fSuccess.call(c)};return d.onabort=e,d.onerror=e,d.onload=f,d.src=&quot;data:image\/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4\/\/8\/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==&quot;,void 0}c._bSupportDataURI===!0&amp;&amp;c._fSuccess?c._fSuccess.call(c):c._bSupportDataURI===!1&amp;&amp;c._fFail&amp;&amp;c._fFail.call(c)}if(this._android&amp;&amp;this._android&lt;=2.1){var b=1\/window.devicePixelRatio,c=CanvasRenderingContext2D.prototype.drawImage;CanvasRenderingContext2D.prototype.drawImage=function(a,d,e,f,g,h,i,j){if(&quot;nodeName&quot;in a&amp;&amp;\/img\/i.test(a.nodeName))for(var l=arguments.length-1;l&gt;=1;l--)arguments[l]=arguments[l]*b;else&quot;undefined&quot;==typeof j&amp;&amp;(arguments[1]*=b,arguments[2]*=b,arguments[3]*=b,arguments[4]*=b);c.apply(this,arguments)}}var e=function(a,b){this._bIsPainted=!1,this._android=n(),this._htOption=b,this._elCanvas=document.createElement(&quot;canvas&quot;),this._elCanvas.width=b.width,this._elCanvas.height=b.height,a.appendChild(this._elCanvas),this._el=a,this._oContext=this._elCanvas.getContext(&quot;2d&quot;),this._bIsPainted=!1,this._elImage=document.createElement(&quot;img&quot;),this._elImage.style.display=&quot;none&quot;,this._el.appendChild(this._elImage),this._bSupportDataURI=null};return e.prototype.draw=function(a){var b=this._elImage,c=this._oContext,d=this._htOption,e=a.getModuleCount(),f=d.width\/e,g=d.height\/e,h=Math.round(f),i=Math.round(g);b.style.display=&quot;none&quot;,this.clear();for(var j=0;e&gt;j;j++)for(var k=0;e&gt;k;k++){var l=a.isDark(j,k),m=k*f,n=j*g;c.strokeStyle=l?d.colorDark:d.colorLight,c.lineWidth=1,c.fillStyle=l?d.colorDark:d.colorLight,c.fillRect(m,n,f,g),c.strokeRect(Math.floor(m)+.5,Math.floor(n)+.5,h,i),c.strokeRect(Math.ceil(m)-.5,Math.ceil(n)-.5,h,i)}this._bIsPainted=!0},e.prototype.makeImage=function(){this._bIsPainted&amp;&amp;d.call(this,a)},e.prototype.isPainted=function(){return this._bIsPainted},e.prototype.clear=function(){this._oContext.clearRect(0,0,this._elCanvas.width,this._elCanvas.height),this._bIsPainted=!1},e.prototype.round=function(a){return a?Math.floor(1e3*a)\/1e3:a},e}():function(){var a=function(a,b){this._el=a,this._htOption=b};return a.prototype.draw=function(a){for(var b=this._htOption,c=this._el,d=a.getModuleCount(),e=Math.floor(b.width\/d),f=Math.floor(b.height\/d),g=[&#039;&lt;table style=&quot;border:0;border-collapse:collapse;&quot;&gt;&#039;],h=0;d&gt;h;h++){g.push(&quot;&lt;tr&gt;&quot;);for(var i=0;d&gt;i;i++)g.push(&#039;&lt;td style=&quot;border:0;border-collapse:collapse;padding:0;margin:0;width:&#039;+e+&quot;px;height:&quot;+f+&quot;px;background-color:&quot;+(a.isDark(h,i)?b.colorDark:b.colorLight)+&#039;;&quot;&gt;&lt;\/td&gt;&#039;);g.push(&quot;&lt;\/tr&gt;&quot;)}g.push(&quot;&lt;\/table&gt;&quot;),c.innerHTML=g.join(&quot;&quot;);var j=c.childNodes[0],k=(b.width-j.offsetWidth)\/2,l=(b.height-j.offsetHeight)\/2;k&gt;0&amp;&amp;l&gt;0&amp;&amp;(j.style.margin=l+&quot;px &quot;+k+&quot;px&quot;)},a.prototype.clear=function(){this._el.innerHTML=&quot;&quot;},a}();QRCode=function(a,b){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:&quot;#000000&quot;,colorLight:&quot;#ffffff&quot;,correctLevel:d.H},&quot;string&quot;==typeof b&amp;&amp;(b={text:b}),b)for(var c in b)this._htOption[c]=b[c];&quot;string&quot;==typeof a&amp;&amp;(a=document.getElementById(a)),this._android=n(),this._el=a,this._oQRCode=null,this._oDrawing=new q(this._el,this._htOption),this._htOption.text&amp;&amp;this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(a){this._oQRCode=new b(r(a,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(a),this._oQRCode.make(),this._el.title=a,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){&quot;function&quot;==typeof this._oDrawing.makeImage&amp;&amp;(!this._android||this._android&gt;=3)&amp;&amp;this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=d}();<\/code><\/pre>\n<p>And that&#8217;s it, just make sure these 4 files are in your root or sub-directory, that&#8217;s all is needed. You can now make your owh QR codes with ease. Enjoy!<\/p>\n<p>If you feel that this is too complicated you can also <a href=\"https:\/\/danielepais.com\/journal\/free-downloads\/?dlm-dp-dl=5075\" target=\"_blank\" rel=\"noopener\">download all files from here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..<\/p>\n","protected":false},"author":1,"featured_media":5084,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[1128,561],"tags":[1182],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Daniele Pais\"\/>\n\t<meta name=\"google-site-verification\" content=\"googleb91c9505ed997b99\" \/>\n\t<meta name=\"msvalidate.01\" content=\"AD1C96C338E051848BE08C67378B20CA\" \/>\n\t<meta name=\"keywords\" content=\"qr code generator,content creation,web development\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Daniele Pais Blog\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"QR Codes \u2013 An Amazing Invention | Phuket Web Design\" \/>\n\t\t<meta property=\"og:description\" content=\"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-04-13T08:07:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-04-13T08:10:03+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@daniele_pais\" \/>\n\t\t<meta name=\"twitter:title\" content=\"QR Codes \u2013 An Amazing Invention | Phuket Web Design\" \/>\n\t\t<meta name=\"twitter:description\" content=\"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#article\",\"name\":\"QR Codes \\u2013 An Amazing Invention | Phuket Web Design\",\"headline\":\"QR Codes &#8211; An Amazing Invention\",\"author\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/author\\\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/QR-Code-\\u2013-An-Amazing-Invention.jpg\",\"width\":1280,\"height\":720,\"caption\":\"QR Code \\u2013 An Amazing Invention\"},\"datePublished\":\"2023-04-13T15:07:40+07:00\",\"dateModified\":\"2023-04-13T15:10:03+07:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#webpage\"},\"articleSection\":\"Content Creation, Web Development, QR Code Generator\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/danielepais.com\\\/journal\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/#listItem\",\"name\":\"Web\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/#listItem\",\"position\":2,\"name\":\"Web\",\"item\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/web-development\\\/#listItem\",\"name\":\"Web Development\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/web-development\\\/#listItem\",\"position\":3,\"name\":\"Web Development\",\"item\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/web-development\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#listItem\",\"name\":\"QR Codes &#8211; An Amazing Invention\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/#listItem\",\"name\":\"Web\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#listItem\",\"position\":4,\"name\":\"QR Codes &#8211; An Amazing Invention\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/category\\\/web\\\/web-development\\\/#listItem\",\"name\":\"Web Development\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/#person\",\"name\":\"Daniele Pais\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86bedf0ab24a6d4a4f32de230cc797ef?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Daniele Pais\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/author\\\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\\\/#author\",\"url\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/author\\\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\\\/\",\"name\":\"Daniele Pais\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86bedf0ab24a6d4a4f32de230cc797ef?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Daniele Pais\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#webpage\",\"url\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/\",\"name\":\"QR Codes \\u2013 An Amazing Invention | Phuket Web Design\",\"description\":\"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/author\\\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/author\\\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/QR-Code-\\u2013-An-Amazing-Invention.jpg\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#mainImage\",\"width\":1280,\"height\":720,\"caption\":\"QR Code \\u2013 An Amazing Invention\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/qr-codes-an-amazing-invention\\\/#mainImage\"},\"datePublished\":\"2023-04-13T15:07:40+07:00\",\"dateModified\":\"2023-04-13T15:10:03+07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/#website\",\"url\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/\",\"name\":\"Phuket Web Design\",\"description\":\"Digital Print\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/danielepais.com\\\/journal\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"QR Codes \u2013 An Amazing Invention | Phuket Web Design","description":"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..","canonical_url":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/","robots":"max-image-preview:large","keywords":"qr code generator,content creation,web development","webmasterTools":{"google-site-verification":"googleb91c9505ed997b99","msvalidate.01":"AD1C96C338E051848BE08C67378B20CA","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#article","name":"QR Codes \u2013 An Amazing Invention | Phuket Web Design","headline":"QR Codes &#8211; An Amazing Invention","author":{"@id":"https:\/\/danielepais.com\/journal\/author\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\/#author"},"publisher":{"@id":"https:\/\/danielepais.com\/journal\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg","width":1280,"height":720,"caption":"QR Code \u2013 An Amazing Invention"},"datePublished":"2023-04-13T15:07:40+07:00","dateModified":"2023-04-13T15:10:03+07:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#webpage"},"isPartOf":{"@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#webpage"},"articleSection":"Content Creation, Web Development, QR Code Generator"},{"@type":"BreadcrumbList","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal#listItem","position":1,"name":"Home","item":"https:\/\/danielepais.com\/journal","nextItem":{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/category\/web\/#listItem","name":"Web"}},{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/category\/web\/#listItem","position":2,"name":"Web","item":"https:\/\/danielepais.com\/journal\/category\/web\/","nextItem":{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/category\/web\/web-development\/#listItem","name":"Web Development"},"previousItem":{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/category\/web\/web-development\/#listItem","position":3,"name":"Web Development","item":"https:\/\/danielepais.com\/journal\/category\/web\/web-development\/","nextItem":{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#listItem","name":"QR Codes &#8211; An Amazing Invention"},"previousItem":{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/category\/web\/#listItem","name":"Web"}},{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#listItem","position":4,"name":"QR Codes &#8211; An Amazing Invention","previousItem":{"@type":"ListItem","@id":"https:\/\/danielepais.com\/journal\/category\/web\/web-development\/#listItem","name":"Web Development"}}]},{"@type":"Person","@id":"https:\/\/danielepais.com\/journal\/#person","name":"Daniele Pais","image":{"@type":"ImageObject","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/86bedf0ab24a6d4a4f32de230cc797ef?s=96&d=mm&r=g","width":96,"height":96,"caption":"Daniele Pais"}},{"@type":"Person","@id":"https:\/\/danielepais.com\/journal\/author\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\/#author","url":"https:\/\/danielepais.com\/journal\/author\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\/","name":"Daniele Pais","image":{"@type":"ImageObject","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/86bedf0ab24a6d4a4f32de230cc797ef?s=96&d=mm&r=g","width":96,"height":96,"caption":"Daniele Pais"}},{"@type":"WebPage","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#webpage","url":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/","name":"QR Codes \u2013 An Amazing Invention | Phuket Web Design","description":"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/danielepais.com\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#breadcrumblist"},"author":{"@id":"https:\/\/danielepais.com\/journal\/author\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\/#author"},"creator":{"@id":"https:\/\/danielepais.com\/journal\/author\/_-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2--2\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg","@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#mainImage","width":1280,"height":720,"caption":"QR Code \u2013 An Amazing Invention"},"primaryImageOfPage":{"@id":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/#mainImage"},"datePublished":"2023-04-13T15:07:40+07:00","dateModified":"2023-04-13T15:10:03+07:00"},{"@type":"WebSite","@id":"https:\/\/danielepais.com\/journal\/#website","url":"https:\/\/danielepais.com\/journal\/","name":"Phuket Web Design","description":"Digital Print","inLanguage":"en-US","publisher":{"@id":"https:\/\/danielepais.com\/journal\/#person"}}]},"og:locale":"en_US","og:site_name":"Daniele Pais Blog","og:type":"article","og:title":"QR Codes \u2013 An Amazing Invention | Phuket Web Design","og:description":"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..","og:url":"https:\/\/danielepais.com\/journal\/qr-codes-an-amazing-invention\/","og:image":"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg","og:image:secure_url":"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg","og:image:width":"1280","og:image:height":"720","article:published_time":"2023-04-13T08:07:40+00:00","article:modified_time":"2023-04-13T08:10:03+00:00","twitter:card":"summary","twitter:site":"@daniele_pais","twitter:title":"QR Codes \u2013 An Amazing Invention | Phuket Web Design","twitter:description":"QR codes, or Quick Response Codes, are an amazing invention. They allow consumers to scan them with their smartphone and be taken directly to a website or..","twitter:image":"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg"},"aioseo_meta_data":{"post_id":"5068","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"qr codes","score":100,"analysis":{"keyphraseInTitle":{"score":9,"maxScore":9,"error":0},"keyphraseInDescription":{"score":9,"maxScore":9,"error":0},"keyphraseLength":{"score":9,"maxScore":9,"error":0,"length":2},"keyphraseInURL":{"score":5,"maxScore":5,"error":0},"keyphraseInIntroduction":{"score":9,"maxScore":9,"error":0},"keyphraseInSubHeadings":{"score":9,"maxScore":9,"error":0},"keyphraseInImageAlt":{"score":9,"maxScore":9,"error":0}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":"#post_title #separator_sa #site_title","og_description":"#post_excerpt","og_object_type":"default","og_image_type":"featured","og_image_url":"https:\/\/danielepais.com\/journal\/wp-content\/uploads\/2023\/04\/QR-Code-\u2013-An-Amazing-Invention.jpg","og_image_width":"1280","og_image_height":"720","og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":true,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2023-04-13 06:24:03","updated":"2025-06-11 19:06:47","ai":null,"seo_analyzer_scan_date":null},"_links":{"self":[{"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/posts\/5068"}],"collection":[{"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/comments?post=5068"}],"version-history":[{"count":0,"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/posts\/5068\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/media\/5084"}],"wp:attachment":[{"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/media?parent=5068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/categories?post=5068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danielepais.com\/journal\/wp-json\/wp\/v2\/tags?post=5068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}