From 41f2c12197e4589cb0a8e3df8d71ef7ab9efdf71 Mon Sep 17 00:00:00 2001 From: codemasher Date: Sun, 3 Sep 2023 18:04:36 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20readthedocs=20from=20@=20chill?= =?UTF-8?q?erlan/php-qrcode@91975f191f0b862094616307e4db2d70eed28e8f=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API-DecoderResult.html | 16 +++---- API-QRCode.html | 20 ++++----- API-QRMatrix.html | 18 ++++---- API-QROptions.html | 32 +++++++++----- API-QROutputInterface.html | 18 ++++---- Appendix-License.html | 12 ++--- Appendix-Terminology.html | 64 +++++++++++++-------------- Appendix-URI-Content.html | 33 +++++++------- Built-In-Output-QREps.html | 16 +++---- Built-In-Output-QRFpdf.html | 16 +++---- Built-In-Output-QRGdImage.html | 16 +++---- Built-In-Output-QRImagick.html | 16 +++---- Built-In-Output-QRMarkupHTML.html | 16 +++---- Built-In-Output-QRMarkupSVG.html | 16 +++---- Built-In-Output-QRString.html | 16 +++---- Usage-Advanced-usage.html | 30 ++++++------- Usage-Installation.html | 28 ++++++------ Usage-Overview.html | 20 ++++----- Usage-Quickstart.html | 22 ++++----- _sources/API-QROptions.md.txt | 6 ++- _sources/API-QROutputInterface.md.txt | 8 ++-- _sources/Appendix-URI-Content.md.txt | 8 ++-- _static/basic.css | 22 +++++++++ _static/documentation_options.js | 3 +- _static/pygments.css | 1 + _static/searchtools.js | 26 +++++++---- _static/sphinx_highlight.js | 16 +++++-- genindex.html | 10 ++--- index.html | 14 +++--- search.html | 10 ++--- searchindex.js | 2 +- 31 files changed, 304 insertions(+), 247 deletions(-) diff --git a/API-DecoderResult.html b/API-DecoderResult.html index 6d35649f0..48f4f20d8 100644 --- a/API-DecoderResult.html +++ b/API-DecoderResult.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

DecoderResult

+

DecoderResult

The full phpDocumentor API documentation can be found at chillerlan.github.io/php-qrcode.

-

Methods

+

Methods

@@ -300,7 +300,7 @@

method

-

Magic Properties (read-only)

+

Magic Properties (read-only)

diff --git a/API-QRCode.html b/API-QRCode.html index 1bf68c78f..d09a6bad2 100644 --- a/API-QRCode.html +++ b/API-QRCode.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRCode

+

QRCode

The full phpDocumentor API documentation can be found at chillerlan.github.io/php-qrcode.

-

Methods

+

Methods

property

@@ -352,7 +352,7 @@
-

Deprecated methods

+

Deprecated methods

@@ -386,9 +386,9 @@
-

Constants

+

Constants

-

Deprecated constants

+

Deprecated constants

method

diff --git a/API-QRMatrix.html b/API-QRMatrix.html index 326332ab1..f828521d0 100644 --- a/API-QRMatrix.html +++ b/API-QRMatrix.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRMatrix

+

QRMatrix

The full phpDocumentor API documentation can be found at chillerlan.github.io/php-qrcode.

-

Methods

+

Methods

name

@@ -388,7 +388,7 @@
-

Deprecated methods

+

Deprecated methods

@@ -422,7 +422,7 @@
-

Constants

+

Constants

The _DARK and _LIGHT postfixed constans exist purely for convenience - their value is the same as QRMatrix::M_XXX | QRMatrix::IS_DARK and QRMatrix::M_XXX ^ QRMatrix::IS_DARK respectively, see QROutputInterface.

diff --git a/API-QROptions.html b/API-QROptions.html index d0c098616..f72798baa 100644 --- a/API-QROptions.html +++ b/API-QROptions.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,11 +268,11 @@
-

QROptions

+

QROptions

(via QROptionsTrait)

The full phpDocumentor API documentation can be found at chillerlan.github.io/php-qrcode.

-

Methods

+

Methods

Inherited from SettingsContainerAbstract

method

@@ -335,7 +335,7 @@
-

Properties

+

Properties

@@ -600,16 +600,28 @@ - + - + + + + + + + + + + + + + diff --git a/API-QROutputInterface.html b/API-QROutputInterface.html index c3f1bd98d..0282d6567 100644 --- a/API-QROutputInterface.html +++ b/API-QROutputInterface.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QROutputInterface

+

QROutputInterface

The full phpDocumentor API documentation can be found at chillerlan.github.io/php-qrcode.

-

Methods

+

Methods

property

$textDark

string

'🔴'

'██'

*

String substitute for dark

$textLight

string

'⭕'

'░░'

*

String substitute for light

$textLineStart

string

''

*

An optional line prefix, e.g. empty space to align the QR Code in a console

$jsonAsBooleans

bool

false

*

Whether to return matrix values in JSON as booleans or $M_TYPE integers

$fpdfMeasureUnit

string

'pt'

@@ -283,7 +283,7 @@ - + @@ -293,7 +293,7 @@

(static) moduleValueIsValid($value)

bool

Determines whether the given value is valid

Checks whether the given value is valid for the current output class

dump(string $file = null)

mixed

-

Constants

+

Constants

diff --git a/Appendix-License.html b/Appendix-License.html index ffa3651b0..6fc0e8713 100644 --- a/Appendix-License.html +++ b/Appendix-License.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -267,7 +267,7 @@
-

License

+

License

Copyright (c) 2023 smiley.
 
 This work is licensed under the Creative Commons
diff --git a/Appendix-Terminology.html b/Appendix-Terminology.html
index 157398a19..84b310eb4 100644
--- a/Appendix-Terminology.html
+++ b/Appendix-Terminology.html
@@ -12,11 +12,11 @@
     
   
   
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
     
     
     
@@ -268,9 +268,9 @@
            
-

Terminology

+

Terminology

-

QR Code

+

QR Code

A QR code (quick-response code) is a type of two-dimensional matrix barcode, invented in 1994 by Japanese company Denso Wave for labelling automobile parts. The QR labelling system was applied beyond the automobile industry due to its fast readability and greater storage capacity @@ -278,18 +278,18 @@ compared to standard UPC barcodes. QR Codes, more specifically, the popular Model 2, are internationally standardized in the ISO/IEC 18004.

-

Matrix

+

Matrix

A QR symbol is arranged in a matrix consisting of an array of nominally square modules arranged in an overall square pattern.

For ease of reference, module positions are defined by their row and column coordinates in the symbol, in the form (x, y) where x designates the column (counting from left to right) and y the row (counting from the top downwards) in which the module is located, with counting commencing at 0. Module (0, 0) is therefore located in the upper left corner of the symbol.

-

Module

+

Module

A module represents a single square “pixel” (not to confuse with pixels in a raster image or screen) in the matrix. A dark module is a binary one and a light module is a binary zero.

-

Version

+

Version

The version of a QR symbol determines the side length of the matrix (and therefore the maximum capacity of code words), ranging from 21×21 modules at version 1 to 177×177 modules at version 40; the module count increases in steps of 4 and can be calculated by 4 * version + 17.

@@ -297,9 +297,9 @@ be calculated by 4<
-

Function Patterns

+

Function Patterns

-

Finder Pattern

+

Finder Pattern

The Finder Pattern shall consist of three identical Position Detection Patterns located at the upper left, upper right and lower left corners of the symbol.

Each Position Detection Pattern may be viewed as three superimposed concentric squares and is constructed of dark 7×7 modules, @@ -312,7 +312,7 @@ Patterns comprising the finder pattern then unambiguously defines the location a

-

Alignment Pattern

+

Alignment Pattern

The Alignment Pattern is a fixed reference pattern in defined positions, which enables the decode software to resynchronise the coordinate mapping of the modules in the event of moderate amounts of distortion of the image.

Each Alignment Pattern may be viewed as three superimposed concentric squares and is constructed of dark 5×5 @@ -324,7 +324,7 @@ version 2 or larger in positions defined in the specification.

-

Timing Pattern

+

Timing Pattern

The horizontal and vertical Timing Patterns respectively consist of a one module wide row or column of alternating dark and light modules, commencing and ending with a dark module. The horizontal Timing Pattern runs across row 6 of the symbol between the separators for the upper Position Detection Patterns; the vertical Timing Pattern @@ -336,14 +336,14 @@ coordinates.

-

Separators

+

Separators

A pattern of all light modules, one module wide, separating the Position Detection Patterns from the rest of the symbol.

Separators

-

Quiet Zone

+

Quiet Zone

This is a region 4 modules wide which shall be free of all other markings, surrounding the symbol on all four sides. Its nominal reflectance value shall be equal to that of the light modules.

@@ -352,11 +352,11 @@ Its nominal reflectance value shall be equal to that of the light modules.

-

Encoding Region

+

Encoding Region

This region shall contain the symbol characters representing data, those representing error correction codewords, the Version Information and Format Information.

-

Data

+

Data

This region contains the encoded data and error correction code blocks. Data bits are placed starting at the bottom-right of the matrix and proceeding upward in a column that is 2 modules wide. When the column reaches the top, the next 2-module column starts immediately to the left of the previous column and continues downward. Whenever the current column reaches the edge of @@ -368,7 +368,7 @@ the data bit is placed in the next unused module.

-

Version Information

+

Version Information

The Version Information is an 18 bit sequence containing 6 data bits, with 12 error correction bits calculated using the (18, 6) BCH code which contains the version number.

@@ -376,7 +376,7 @@ the data bit is placed in the next unused module.

-

Format Information

+

Format Information

The Format Information is a 15 bit sequence containing 5 data bits, with 10 error correction bits calculated using the (15, 5) BCH code. It contains information on the error correction level applied to the symbol and on the masking pattern used, essential to enable the remainder of the encoding region to be decoded.

@@ -385,7 +385,7 @@ essential to enable the remainder of the encoding region to be decoded.

-

Darkmodule

+

Darkmodule

The module in position (4 * version + 9, 8) shall always be dark and does not form part of the Format Information.

Darkmodule @@ -393,7 +393,7 @@ essential to enable the remainder of the encoding region to be decoded.

-

Mode

+

Mode

The mode is the method of representing a defined character set as a bit string, with a mode indicator, a four-bit identifier indicating in which mode the next data sequence is encoded.

name

@@ -447,7 +447,7 @@ essential to enable the remainder of the encoding region to be decoded.

* Hanzi mode is not part of the ISO specification, but the Chinese standard GB/T 18284

-

Segment

+

Segment

Each segment consists of the 4 bit mode indicator followed by the data bit stream, where the content of the bit stream can vary depending on the mode:

@@ -522,7 +522,7 @@ essential to enable the remainder of the encoding region to be decoded.

-

Extended Channel Interpretation (ECI)

+

Extended Channel Interpretation (ECI)

Extended Channel Interpretation can be used to indicate an alternate character encoding for the following Byte segment (by default, ISO-8859-1 “Latin-1”).

An ECI segment starts with the 4 bit indicator 0111 followed by the ECI Assignment number (8, 16 or 24 bits), @@ -548,7 +548,7 @@ followed by a Byte segment (

-

Mixed Mode

+

Mixed Mode

Encoding modes can be mixed as needed within a QR symbol in order to optimize data usage. Each segment of data is encoded in the appropriate mode, with the basic structure Mode Indicator / Character Count Indicator / Data and followed immediately by the Mode Indicator commencing the next segment.

@@ -560,11 +560,11 @@ Each segment of data is encoded in the appropriate mode, with the basic structur
-

ECC (Error Correction Coding)

+

ECC (Error Correction Coding)

QR codes use Reed–Solomon error correction that allow QR code readers to detect and correct errors. A detailed breakdown of the process can be found at thonky.com - QR Code Tutorial.

-

ECC Level

+

ECC Level

The number of data versus error correction bytes within each block depends on the version of the QR symbol and the error correction level. The higher the error correction level, the less storage capacity. The following table lists the approximate error correction capability at each of the four levels:

@@ -601,7 +601,7 @@ error correction capability at each of the four levels:

-

Maximum data capacity

+

Maximum data capacity

The maximum data capacity of a QR Code at version 40 for each ECC level and mode is shown in the following table:

@@ -648,11 +648,11 @@ error correction capability at each of the four levels:

-

Data masking

+

Data masking

Masking is the process of XORing the bit pattern in the encoding region with a masking pattern to provide a symbol with more evenly balanced numbers of dark and light modules and reduced occurrence of patterns which would interfere with fast processing of the image.

-

Evaluation

+

Evaluation

The mask pattern evaluation is done for each of the 8 mask patterns, the pattern with the lowest penalty score shall be used for the final output. During the evaluation, 4 rules are applied to get the penalty score:

    @@ -663,7 +663,7 @@ During the evaluation, 4 rules are applied to get the penalty score:

-

Mask pattern

+

Mask pattern

@@ -710,7 +710,7 @@ During the evaluation, 4 rules are applied to get the penalty score:

-

Reflectance

+

Reflectance

Symbols are intended to be read when either dark on light or light on dark. The International Standard (ISO/IEC 18004) is based on dark images on a light background (example on the left), reflectance reversal therefore means a light image on dark background (example on the right).

diff --git a/Appendix-URI-Content.html b/Appendix-URI-Content.html index 4de46cb4b..bf757e0d7 100644 --- a/Appendix-URI-Content.html +++ b/Appendix-URI-Content.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@

Pattern

@@ -294,7 +294,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Built-In-Output-QRFpdf.html b/Built-In-Output-QRFpdf.html index 6eb8607c1..46817e7bc 100644 --- a/Built-In-Output-QRFpdf.html +++ b/Built-In-Output-QRFpdf.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRFpdf

+

QRFpdf

Class QRFpdf: Portable Document Format (PDF) output via FPDF

-

Options that affect this module

+

Options that affect this module

property

@@ -297,7 +297,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Built-In-Output-QRGdImage.html b/Built-In-Output-QRGdImage.html index 4eb9b7d9a..a220ad800 100644 --- a/Built-In-Output-QRGdImage.html +++ b/Built-In-Output-QRGdImage.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRGdImage

+

QRGdImage

Class QRGdImage: GdImage raster graphic output (GIF, JPG, PNG)

-

Options that affect this module

+

Options that affect this module

property

@@ -318,7 +318,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Built-In-Output-QRImagick.html b/Built-In-Output-QRImagick.html index 84b9ef627..ec25c175a 100644 --- a/Built-In-Output-QRImagick.html +++ b/Built-In-Output-QRImagick.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,7 +268,7 @@
-

QRImagick

+

QRImagick

Class QRImagick: ImageMagick output, multiple supported image formats

Please follow the installation guides for your operating system:

-

Options that affect this module

+

Options that affect this module

property

@@ -321,7 +321,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Built-In-Output-QRMarkupHTML.html b/Built-In-Output-QRMarkupHTML.html index 8dd918c40..a14602ef6 100644 --- a/Built-In-Output-QRMarkupHTML.html +++ b/Built-In-Output-QRMarkupHTML.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRMarkupHTML

+

QRMarkupHTML

Class QRMarkupHTML: HTML output (a cheap markup substitute when SVG is not available or not an option)

-

Options that affect this module

+

Options that affect this module

property

@@ -294,7 +294,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Built-In-Output-QRMarkupSVG.html b/Built-In-Output-QRMarkupSVG.html index ed65670c8..7891cf202 100644 --- a/Built-In-Output-QRMarkupSVG.html +++ b/Built-In-Output-QRMarkupSVG.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRMarkupSVG

+

QRMarkupSVG

Class QRMarkupSVG: Scalable Vector Graphics (SVG) output

-

Options that affect this module

+

Options that affect this module

property

@@ -336,7 +336,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Built-In-Output-QRString.html b/Built-In-Output-QRString.html index 09445e024..cf871837b 100644 --- a/Built-In-Output-QRString.html +++ b/Built-In-Output-QRString.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,10 +268,10 @@
-

QRString

+

QRString

Class QRString: String output: plain text, JSON

-

Options that affect this module

+

Options that affect this module

property

@@ -291,7 +291,7 @@

property

-

Options that have no effect

+

Options that have no effect

diff --git a/Usage-Advanced-usage.html b/Usage-Advanced-usage.html index abe1ce407..542e33348 100644 --- a/Usage-Advanced-usage.html +++ b/Usage-Advanced-usage.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,9 +268,9 @@
-

Advanced usage

+

Advanced usage

-

Configuration via QROptions

+

Configuration via QROptions

The QROptions class is a container based on chillerlan/php-settings-container that behaves similar to a \stdClass object, but with fixed properties.

$options = new QROptions;
 
@@ -284,7 +284,7 @@
 
-

Supply an iterable of options

+

Supply an iterable of options

The constructor takes an iterable of $key => $value pairs. For each setting an optional setter will be called if present.

$myOptions = [
 	'version'    => 5,
@@ -301,7 +301,7 @@
 
-

Load and save JSON

+

Load and save JSON

The settings can be saved to and loaded from JSON, e.g. to store them in a database:

$json = $options->toJSON(JSON_THROW_ON_ERROR);
 // via JsonSerializable interface
@@ -316,7 +316,7 @@
 
-

Extending the QROptions class

+

Extending the QROptions class

In case you need additional settings for your output module, just extend QROptions

class MyCustomOptions extends QROptions{
 	protected string $myParam = 'defaultValue';
@@ -363,7 +363,7 @@
 
-

QRCode methods

+

QRCode methods

Aside of invoking a QRCode instance with an optional QROptions object as parameter, you can also set the options instance after invocation. After invocation of the QROptions instance, values can be set without calling QRCode::setOptions() again (instance is backreferenced), however, this may create side effects.

// instance will be invoked with default settings
@@ -376,7 +376,7 @@ After invocation of the 
-

Save to file

+

Save to file

Save the QR Code output to /path/to/qrcode.svg:

$options->imageBase64 = false;
 $options->cachefile   = '/path/to/qrcode.svg';
@@ -392,7 +392,7 @@ After invocation of the 
-

Render a QRMatrix instance

+

Render a QRMatrix instance

You can render a QRMatrix instance directly:

// a matrix from the current data segments
 $matrix = $qrcode->getQRMatrix();
@@ -420,7 +420,7 @@ After invocation of the 
-

Mixed mode

+

Mixed mode

Mixed mode QR Codes can be generated by adding several data segments:

// make sure to set a proper internal encoding character set
 // ideally, this should be set in php.ini internal_encoding,
@@ -455,7 +455,7 @@ This method is used internally when a data mode is invoked, but it can come in h
 
-

QR Code reader

+

QR Code reader

In some cases it might be necessary to increase the contrast of a QR Code image:

$options->readerUseImagickIfAvailable = true;
 $options->readerIncreaseContrast      = true;
diff --git a/Usage-Installation.html b/Usage-Installation.html
index c2496fec2..e35de2859 100644
--- a/Usage-Installation.html
+++ b/Usage-Installation.html
@@ -12,11 +12,11 @@
     
   
   
-        
-        
-        
-        
-        
+        
+        
+        
+        
+        
     
     
     
@@ -268,12 +268,12 @@
            
-

Installation

+

Installation

-

Installation with Composer

+

Installation with Composer

Composer is required to install this package. Please do not open an issue to complain about “monopolizing the implementation” or similar - we’ve been there before.

-

composer.json

+

composer.json

Installation via composer.json:

{
 	"require": {
@@ -286,7 +286,7 @@
 

Note: replace dev-main with a version constraint, e.g. ^4.3 - see releases for valid versions. In case you want to keep using dev-main, specify the hash of a commit to avoid running into unforseen issues, like so: dev-main#cb69751c3bc090a7fdd2f2601bbe10f28d225f10

-

Version switch

+

Version switch

If your application supports older PHP versions and uses the basic QRCode syntax (new QRCode)->render($data), then you can add a version switch to your composer.json to allow installing a php-qrcode version that suits the platform it runs on:

{
 	"require": {
@@ -300,7 +300,7 @@ In case you want to keep using 
 
-

Terminal

+

Terminal

To install php-qrcode on the terminal, use:

composer require chillerlan/php-qrcode

If you want to install the package from a specific tag or commit, do as follows:

@@ -311,13 +311,13 @@ In case you want to keep using
-

Manual installation

+

Manual installation

Download the desired version of the package from main or release and extract the contents to your project folder. After that, run composer install in the package root directory to install the required dependencies and generate ./vendor/autoload.php.

Profit!

-

Can i use this library without using composer?

+

Can i use this library without using composer?

You can, but it’s absolutely not recommended, nor supported.

With that said, I’ll leave you with this info:

    @@ -329,7 +329,7 @@ After that, run com
-

Supported PHP versions & extension requirements

+

Supported PHP versions & extension requirements

The PHP built-in extensions GdImage and mbstring are used across all versions, ImageMagick is optional since v3.x.

property

@@ -388,7 +388,7 @@ After that, run com

PSA: PHP versions < 8.0 are EOL and therefore the respective QRCode versions are also no longer supported!

-

ImageMagick

+

ImageMagick

Please follow the installation guides for your operating system:

  • ImageMagick: imagemagick.org/script/download.php

  • diff --git a/Usage-Overview.html b/Usage-Overview.html index 160538683..e05379dc6 100644 --- a/Usage-Overview.html +++ b/Usage-Overview.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,11 +268,11 @@
    -

    Overview

    +

    Overview

    A PHP QR Code generator based on the implementation by Kazuhiko Arase, namespaced, cleaned up, improved and other stuff.
    It also features a QR Code reader based on a PHP port of the ZXing library.

    -

    Features

    +

    Features

    -

    Requirements

    +

    Requirements

    -

    Framework Integration

    +

    Framework Integration

    • Drupal:

        @@ -366,7 +366,7 @@ It also features a QR Code reader based on a
    -

    Shameless advertising

    +

    Shameless advertising

    Hi, please check out some of my other projects that are way cooler than qrcodes!

    • js-qrcode - a javascript port of this library

    • diff --git a/Usage-Quickstart.html b/Usage-Quickstart.html index e29ae82db..bffc9adef 100644 --- a/Usage-Quickstart.html +++ b/Usage-Quickstart.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -268,9 +268,9 @@
      -

      Quickstart

      +

      Quickstart

      -

      Import the library

      +

      Import the library

      Import the main class(es) and include the autoloader (if necessary):

      use chillerlan\QRCode\{QRCode, QROptions};
       
      @@ -279,7 +279,7 @@
       
      -

      Create your first QR Code

      +

      Create your first QR Code

      We want to encode this URI for a mobile authenticator into a QRcode image:

      $data   = 'otpauth://totp/test?secret=B3JX4VCVJDVNXNZ5&issuer=chillerlan.net';
       $qrcode = (new QRCode)->render($data);
      @@ -288,7 +288,7 @@
       
      -

      Configuration

      +

      Configuration

      Configuration using QROptions:

      $options = new QROptions;
       $options->version     = 7;
      @@ -304,7 +304,7 @@ Also, have a look 
      -

      Reading QR Codes

      +

      Reading QR Codes

      Using the built-in QR Code reader is pretty straight-forward:

      try{
       	$result = (new QRCode)->readFromFile('path/to/file.png'); // -> DecoderResult
      @@ -324,7 +324,7 @@ Also, have a look 
      -

      Notes

      +

      Notes

      The QR encoder, especially the subroutines for mask pattern testing, can cause high CPU load on increased matrix size. You can avoid a part of this load by choosing a fast output module, like SVG. Oh hey and don’t forget to sanitize any user input!

      diff --git a/_sources/API-QROptions.md.txt b/_sources/API-QROptions.md.txt index bd8239a49..4a530389c 100644 --- a/_sources/API-QROptions.md.txt +++ b/_sources/API-QROptions.md.txt @@ -70,8 +70,10 @@ Inherited from [`SettingsContainerAbstract`](https://github.com/chillerlan/php-s | `$svgPreserveAspectRatio` | `string` | `'xMidYMid'` | * | See [preserveAspectRatio on MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/preserveAspectRatio) | | `$svgWidth` | `string\|null` | `null` | * | Optional "width" attribute with the specified value (note that the value is not checked!) | | `$svgHeight` | `string\|null` | `null` | * | Optional "height" attribute with the specified value (note that the value is not checked!) | -| `$textDark` | `string` | `'🔴'` | * | String substitute for dark | -| `$textLight` | `string` | `'⭕'` | * | String substitute for light | +| `$textDark` | `string` | `'██'` | * | String substitute for dark | +| `$textLight` | `string` | `'░░'` | * | String substitute for light | +| `$textLineStart` | `string` | `''` | * | An optional line prefix, e.g. empty space to align the QR Code in a console | +| `$jsonAsBooleans` | `bool` | `false` | * | Whether to return matrix values in JSON as booleans or $M_TYPE integers | | `$fpdfMeasureUnit` | `string` | `'pt'` | * | Measurement unit for FPDF output: pt, mm, cm, in | | `$readerUseImagickIfAvailable` | `bool` | `false` | * | Use Imagick (if available) when reading QR Codes | | `$readerGrayscale` | `bool` | `false` | * | Grayscale the image before reading | diff --git a/_sources/API-QROutputInterface.md.txt b/_sources/API-QROutputInterface.md.txt index 78ceaf428..62268768a 100644 --- a/_sources/API-QROutputInterface.md.txt +++ b/_sources/API-QROutputInterface.md.txt @@ -5,10 +5,10 @@ The full phpDocumentor API documentation can be found at [chillerlan.github.io/p ## Methods -| method | return | description | -|---------------------------------------|---------|---------------------------------------------------------------------| -| (static) `moduleValueIsValid($value)` | `bool` | Determines whether the given value is valid | -| `dump(string $file = null)` | `mixed` | Generates the output, optionally dumps it to a file, and returns it | +| method | return | description | +|---------------------------------------|---------|----------------------------------------------------------------------| +| (static) `moduleValueIsValid($value)` | `bool` | Checks whether the given value is valid for the current output class | +| `dump(string $file = null)` | `mixed` | Generates the output, optionally dumps it to a file, and returns it | ## Constants diff --git a/_sources/Appendix-URI-Content.md.txt b/_sources/Appendix-URI-Content.md.txt index dfb5d4efa..3d95e5cb0 100644 --- a/_sources/Appendix-URI-Content.md.txt +++ b/_sources/Appendix-URI-Content.md.txt @@ -20,8 +20,8 @@ https://www.youtube.com/watch?v=dQw4w9WgXcQ **See also:** - - [What is a URL? (Mozilla MDN)](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL) - - [URL (Wikipedia)](https://en.wikipedia.org/wiki/URL) +- [What is a URL? (Mozilla MDN)](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL) +- [URL (Wikipedia)](https://en.wikipedia.org/wiki/URL) ## E-Mail `mailto` @@ -84,7 +84,7 @@ geo:,[,;crs=;u=] ``` The default coordinate system is WGS-84, for which latitude and longitude should be supplied as decimal degrees, the optional altitude in meters. -Te parameter `u` can be used to specify an *uncertainty* value (in meters), a different *coordinate reference system* may be supplied with `crs`. +The parameter `u` can be used to specify an *uncertainty* value (in meters), a different *coordinate reference system* may be supplied with `crs`. Some applications support an additional query string with values of `z` for *zoom* level and `q` for a local search *query* (URL-encoded): ``` @@ -243,6 +243,8 @@ END:VEVENT END:VCALENDAR ``` +**See also:** + - [RFC 5545 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)](https://datatracker.ietf.org/doc/html/rfc5545) - [iCalendar (Wikipedia)](https://en.wikipedia.org/wiki/ICalendar) - [vobject library for PHP (GitHub)](https://github.com/sabre-io/vobject) diff --git a/_static/basic.css b/_static/basic.css index 7577acb1a..30fee9d0f 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -237,6 +237,10 @@ a.headerlink { visibility: hidden; } +a:visited { + color: #551A8B; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -670,6 +674,16 @@ dd { margin-left: 30px; } +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; @@ -738,6 +752,14 @@ abbr, acronym { cursor: help; } +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + /* -- code displays --------------------------------------------------------- */ pre { diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 6fdbd7dc1..31e37a502 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,4 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), +const DOCUMENTATION_OPTIONS = { VERSION: 'main', LANGUAGE: 'en', COLLAPSE_INDEX: false, diff --git a/_static/pygments.css b/_static/pygments.css index 691aeb82d..0d49244ed 100644 --- a/_static/pygments.css +++ b/_static/pygments.css @@ -17,6 +17,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ diff --git a/_static/searchtools.js b/_static/searchtools.js index 97d56a74d..7918c3fab 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -57,12 +57,12 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, searchTerms) => { +const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename] = item; @@ -75,20 +75,24 @@ const _displayItem = (item, searchTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; + requestUrl = contentRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; + requestUrl = contentRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = title; - if (descr) + if (descr) { listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) @@ -97,6 +101,9 @@ const _displayItem = (item, searchTerms) => { listItem.appendChild( Search.makeSearchSummary(data, searchTerms) ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -115,14 +122,15 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, - searchTerms + searchTerms, + highlightTerms, ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), searchTerms); + _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), 5 ); } @@ -360,7 +368,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, searchTerms); + _displayNextItem(results, results.length, searchTerms, highlightTerms); }, /** diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js index aae669d7e..8a96c69a1 100644 --- a/_static/sphinx_highlight.js +++ b/_static/sphinx_highlight.js @@ -29,14 +29,19 @@ const _highlight = (node, addItems, text, className) => { } span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore( span, parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), + rest, node.nextSibling ) ); node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS( @@ -140,5 +145,10 @@ const SphinxHighlight = { }, }; -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/genindex.html b/genindex.html index 70d7f0930..3dd46e01c 100644 --- a/genindex.html +++ b/genindex.html @@ -11,11 +11,11 @@ - - - - - + + + + + diff --git a/index.html b/index.html index c247c3b49..91704fc56 100644 --- a/index.html +++ b/index.html @@ -12,11 +12,11 @@ - - - - - + + + + + @@ -267,8 +267,8 @@
      -

      PHP-QRCode Manual

      -

      Edition for chillerlan/php-qrcode [main]. Updated on Jul 15, 2023.

      +

      PHP-QRCode Manual

      +

      Edition for chillerlan/php-qrcode [main]. Updated on Sep 03, 2023.

      This work is licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0) License.

      Usage

      diff --git a/search.html b/search.html index 1233bb3aa..c1e6aead6 100644 --- a/search.html +++ b/search.html @@ -12,11 +12,11 @@ - - - - - + + + + + diff --git a/searchindex.js b/searchindex.js index e7dd359f6..ae233ec80 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["API-DecoderResult", "API-QRCode", "API-QRMatrix", "API-QROptions", "API-QROutputInterface", "Appendix-License", "Appendix-Terminology", "Appendix-URI-Content", "Built-In-Output-QREps", "Built-In-Output-QRFpdf", "Built-In-Output-QRGdImage", "Built-In-Output-QRImagick", "Built-In-Output-QRMarkupHTML", "Built-In-Output-QRMarkupSVG", "Built-In-Output-QRString", "Usage-Advanced-usage", "Usage-Installation", "Usage-Overview", "Usage-Quickstart", "index"], "filenames": ["API-DecoderResult.md", "API-QRCode.md", "API-QRMatrix.md", "API-QROptions.md", "API-QROutputInterface.md", "Appendix-License.rst", "Appendix-Terminology.md", "Appendix-URI-Content.md", "Built-In-Output-QREps.md", "Built-In-Output-QRFpdf.md", "Built-In-Output-QRGdImage.md", "Built-In-Output-QRImagick.md", "Built-In-Output-QRMarkupHTML.md", "Built-In-Output-QRMarkupSVG.md", "Built-In-Output-QRString.md", "Usage-Advanced-usage.md", "Usage-Installation.md", "Usage-Overview.md", "Usage-Quickstart.md", "index.rst"], "titles": ["DecoderResult", "QRCode", "QRMatrix", "QROptions", "QROutputInterface", "License", "Terminology", "Popular content and URI schemes", "QREps", "QRFpdf", "QRGdImage", "QRImagick", "QRMarkupHTML", "QRMarkupSVG", "QRString", "Advanced usage", "Installation", "Overview", "Quickstart", "PHP-QRCode Manual"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 15, 16, 18], "full": [0, 1, 2, 3, 4, 5, 7], "phpdocumentor": [0, 1, 2, 3, 4], "api": [0, 1, 2, 3, 4, 16], "document": [0, 1, 2, 3, 4, 9], "can": [0, 1, 2, 3, 4, 5, 6, 7, 13, 15, 17, 18, 19], "found": [0, 1, 2, 3, 4, 6], "chillerlan": [0, 1, 2, 3, 4, 15, 16, 18, 19], "github": [0, 1, 2, 3, 4, 7, 11, 16], "io": [0, 1, 2, 3, 4], "php": [0, 1, 2, 3, 4, 7, 11, 13, 15, 17, 18], "qrcode": [0, 2, 3, 4, 6, 7, 13, 16, 17, 18], "return": [0, 1, 2, 3, 4, 15], "descript": [0, 1, 2, 3, 4, 6, 7], "__construct": [0, 1, 2, 3], "iter": [0, 3, 19], "null": [0, 1, 2, 3, 4, 13, 15], "us": [0, 2, 3, 5, 6, 7, 13, 15, 17, 18, 19], "intern": [0, 1, 2, 3, 5, 6, 15, 19], "decod": [0, 6], "__tostr": [0, 3, 15], "string": [0, 1, 3, 4, 6, 7, 9, 11, 12, 13, 14, 15, 17, 18], "data": [0, 1, 2, 3, 15, 16, 18, 19], "contain": [0, 6, 7, 15], "qr": [0, 1, 2, 3, 7, 16, 17, 19], "symbol": [0, 6, 17], "hasstructuredappend": 0, "bool": [0, 2, 3, 4, 8, 9, 10, 11, 13], "getqrmatrix": [0, 1, 15], "qrmatrix": [0, 1, 19], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18], "rawbyt": 0, "bitbuff": [0, 2], "version": [0, 1, 2, 3, 7, 15, 17, 18, 19], "ecclevel": [0, 1, 2, 3, 15], "maskpattern": [0, 1, 2, 3], "default": [0, 3, 4, 6, 7, 13, 15, 18], "structuredappendpar": 0, "int": [0, 1, 2, 3, 8, 10, 11, 13], "1": [0, 3, 5, 6, 7, 16, 17], "structuredappendsequ": 0, "settingscontainerinterfac": [1, 3, 15], "option": [1, 3, 4, 7, 16, 17, 18, 19], "see": [1, 2, 3, 6, 13, 16, 17, 18, 19], "qroption": [1, 18, 19], "setopt": [1, 15], "self": [1, 2], "set": [1, 2, 3, 5, 6, 7, 15], "an": [1, 2, 3, 5, 6, 7, 12, 16, 17, 19], "instanc": [1, 2, 5, 18, 19], "call": [1, 3, 7, 15], "via": [1, 3, 7, 9, 12, 13, 16, 17, 19], "constructor": [1, 3, 15], "render": [1, 3, 16, 18, 19], "file": [1, 3, 4, 16, 18, 19], "mix": [1, 3, 4, 9, 10, 11, 17, 19], "code": [1, 2, 3, 7, 16, 17, 19], "given": [1, 2, 3, 4, 5, 6], "save": [1, 19], "output": [1, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "depend": [1, 6, 16, 17], "chosen": [1, 5], "mode": [1, 4, 7, 17, 19], "qroutputinterfac": [1, 2, 3, 15, 19], "dump": [1, 4, 15], "rendermatrix": [1, 15], "matrix": [1, 2, 15, 18, 19], "object": [1, 7, 15], "current": [1, 2, 6, 15], "addseg": 1, "qrdatamodeinterfac": [1, 15], "segment": [1, 15, 19], "add": [1, 2, 3, 7, 16], "clearseg": [1, 15], "clear": [1, 2, 15], "arrai": [1, 2, 3, 6, 8, 10, 11, 13], "addnumericseg": [1, 15], "numer": [1, 6, 17], "addalphanumseg": [1, 15], "alphanumer": [1, 6, 17], "addkanjiseg": [1, 15], "kanji": [1, 6, 15, 17], "japanes": [1, 6, 17], "13": [1, 6, 17], "bit": [1, 6, 17], "doubl": [1, 7, 17], "byte": [1, 6, 15, 17], "charact": [1, 6, 7, 15], "shift": [1, 6, 17], "ji": [1, 6, 17], "addhanziseg": [1, 15], "hanzi": [1, 6, 15, 17], "simplifi": [1, 6, 17], "chines": [1, 6, 17], "gb2312": [1, 6, 15, 17], "gb18030": [1, 6, 15, 17], "addbyteseg": [1, 15], "8": [1, 2, 5, 6, 7, 15, 16, 17], "addecidesign": 1, "encod": [1, 2, 7, 15, 17, 18, 19], "standalon": 1, "eci": [1, 19], "design": [1, 5, 6], "addeciseg": [1, 15], "includ": [1, 2, 5, 7, 16, 18], "readfromfil": [1, 15, 18], "path": [1, 3, 7, 15, 18], "decoderresult": [1, 15, 18, 19], "read": [1, 3, 5, 6, 16, 19], "from": [1, 2, 3, 5, 6, 7, 15, 16], "readfromblob": 1, "blob": 1, "readfromsourc": 1, "luminancesourceinterfac": 1, "sourc": 1, "lumin": 1, "sinc": [1, 2, 16], "replac": [1, 2, 3, 5, 16], "getmatrix": [1, 2], "5": [1, 2, 3, 5, 6, 15, 16], "0": [1, 2, 3, 5, 6, 7, 16, 19], "isnumb": 1, "number": [1, 3, 6, 15, 19], "validatestr": [1, 15], "isalphanum": 1, "alphanum": [1, 15], "iskanji": 1, "isbyt": 1, "name": [1, 2, 3, 4, 7, 15], "version_auto": [1, 3], "auto": [1, 3], "mask_pattern_auto": 1, "output_markup_svg": 1, "markup_svg": [1, 3, 4], "output_markup_html": 1, "markup_html": [1, 3, 4], "output_image_png": 1, "gdimage_png": [1, 3, 4, 15], "output_image_jpg": 1, "gdimage_jpg": [1, 3, 4], "output_image_gif": 1, "gdimage_gif": [1, 3, 4], "output_string_json": 1, "string_json": [1, 3, 4], "output_string_text": 1, "string_text": [1, 3, 4], "output_imagick": 1, "imagick": [1, 3, 4, 11, 16, 17], "output_fpdf": 1, "fpdf": [1, 3, 4, 9, 17], "output_custom": 1, "custom": [1, 3, 4], "ecc_l": 1, "l": [1, 3, 6, 17], "ecc_m": 1, "m": [1, 3, 6, 7, 15, 17], "ecc_q": 1, "q": [1, 3, 6, 7, 17], "ecc_h": 1, "h": [1, 3, 5, 6, 7, 17], "data_numb": 1, "data_alphanum": 1, "data_byt": 1, "data_kanji": 1, "initfunctionalpattern": [2, 15], "shortcut": 2, "initi": [2, 7], "function": [2, 15, 19], "pattern": [2, 3, 18, 19], "represent": [2, 5], "2": [2, 3, 5, 6, 7, 16, 17], "dimension": [2, 6], "getvers": 2, "getecclevel": 2, "ecc": [2, 17, 19], "level": [2, 3, 7, 17, 19], "getmaskpattern": 2, "mask": [2, 3, 18, 19], "getsiz": 2, "absoulut": 2, "size": [2, 3, 18], "quiet": [2, 3, 19], "zone": [2, 3, 19], "4": [2, 3, 5, 6, 7, 16, 17, 19], "17": [2, 6, 17], "quietzon": 2, "get": [2, 6, 18], "x": [2, 3, 6, 7, 16, 17], "y": [2, 6], "valu": [2, 3, 4, 6, 7, 15], "modul": [2, 3, 4, 15, 17, 18], "m_type": 2, "setarea": 2, "startx": 2, "starti": 2, "width": [2, 3, 6], "height": [2, 3, 6], "fill": [2, 3], "area": [2, 6, 7], "start": [2, 3, 6], "point": 2, "top": [2, 3, 6], "left": [2, 3, 6], "checktyp": 2, "check": [2, 3, 15, 17], "whether": [2, 3, 4, 5], "i": [2, 3, 4, 5, 6, 7, 12, 13, 15, 17, 18, 19], "checktypein": 2, "true": [2, 3, 7, 15], "match": 2, "otherwis": [2, 5], "fals": [2, 3, 15, 18], "dark": [2, 3, 6], "light": [2, 3, 6], "checkneighbour": 2, "statu": [2, 5], "neighbour": 2, "bitmask": 2, "result": [2, 5, 15, 18], "setdarkmodul": 2, "setfinderpattern": 2, "setsepar": 2, "setalignmentpattern": 2, "settimingpattern": 2, "setversionnumb": 2, "setformatinfo": 2, "setquietzon": 2, "quietzones": [2, 3], "draw": [2, 3], "around": 2, "rotate90": 2, "rotat": 2, "90": 2, "degre": [2, 7], "clock": 2, "wise": 2, "setlogospac": 2, "space": [2, 3, 7], "order": [2, 6], "logo": [2, 3, 5, 7], "text": [2, 3, 5, 7, 14, 17], "writecodeword": 2, "map": [2, 3, 4, 6, 7], "interleav": 2, "binari": [2, 6, 17], "appli": [2, 5, 6], "revers": [2, 6], "_dark": 2, "_light": 2, "postfix": 2, "constan": 2, "exist": [2, 3, 15], "pure": 2, "conveni": 2, "same": [2, 6], "m_xxx": 2, "is_dark": 2, "respect": [2, 5, 6, 16], "flag": 2, "m_data": 2, "m_null": 2, "m_darkmodule_light": 2, "reflect": [2, 19], "m_darkmodul": 2, "onc": 2, "per": [2, 6], "xy": 2, "9": [2, 3, 5, 6, 16], "actual": 2, "m_data_dark": 2, "m_finder": 2, "7x7": 2, "finder": [2, 19], "m_finder_dark": 2, "m_finder_dot_light": 2, "m_finder_dot": 2, "inner": 2, "3x3": 2, "block": [2, 6, 7, 18], "m_separ": 2, "separ": [2, 5, 7, 19], "line": [2, 3], "along": [2, 17], "m_separator_dark": 2, "m_align": 2, "5x5": 2, "align": [2, 19], "m_alignment_dark": 2, "m_time": 2, "time": [2, 5, 7, 19], "m_timing_dark": 2, "m_format": 2, "format": [2, 5, 7, 9, 11, 17, 19], "inform": [2, 5, 19], "m_format_dark": 2, "m_version": 2, "m_version_dark": 2, "m_quietzon": 2, "margin": [2, 3], "m_quietzone_dark": 2, "m_logo": 2, "imag": [2, 3, 5, 6, 11, 13, 15, 18], "yet": 2, "m_logo_dark": 2, "m_test": 2, "test": [2, 16, 18], "m_test_dark": 2, "qroptionstrait": [3, 15], "inherit": 3, "settingscontainerabstract": [3, 15], "info": [3, 16], "construct": [3, 6], "after": [3, 15, 16], "have": [3, 5, 6, 18, 19], "been": [3, 5, 16], "protect": [3, 5, 7, 15], "void": [3, 15], "trait": [3, 15], "each": [3, 6, 15], "similar": [3, 5, 6, 7, 15, 16], "php4": 3, "__get": 3, "thi": [3, 5, 6, 7, 15, 17, 18, 19], "get_": [3, 15], "__set": 3, "set_": [3, 15], "__isset": 3, "__unset": 3, "json": [3, 14, 17, 19], "toarrai": 3, "fromiter": [3, 15], "tojson": [3, 15], "jsonopt": 3, "accept": [3, 5], "constant": [3, 19], "fromjson": [3, 15], "jsonseri": 3, "implement": [3, 8, 9, 14, 16, 17], "jsonserializ": [3, 15], "interfac": [3, 15], "allow": [3, 5, 6, 16], "40": [3, 6, 17], "versionmin": 3, "minimum": [3, 5, 7], "versionmax": 3, "maximum": [3, 19], "error": [3, 5, 15, 18, 19], "correct": [3, 19], "where": [3, 5, 6], "7": [3, 5, 6, 7, 15, 16, 17, 18], "15": [3, 6, 17, 19], "25": [3, 6], "30": [3, 5, 6, 7], "addquietzon": 3, "accord": [3, 5, 6, 7], "spec": 3, "clamp": 3, "matrixs": 3, "outputtyp": [3, 15], "xxx": 3, "built": [3, 4, 16, 17, 18], "one": [3, 5, 6, 7], "ep": [3, 4, 8, 17], "outputinterfac": 3, "fqcn": 3, "returnresourc": [3, 8, 9, 10, 11, 12, 13, 14], "resourc": [3, 5, 7], "instead": [3, 7, 13, 18], "applic": [3, 5, 6, 7, 16], "cachefil": [3, 15], "cach": 3, "imagebase64": [3, 8, 9, 10, 11, 12, 13, 14, 15, 18], "toggl": 3, "base64": [3, 7, 18], "raw": [3, 18], "eol": [3, 12, 13, 14, 16], "php_eol": 3, "newlin": 3, "html": [3, 12, 17], "svg": [3, 12, 13, 15, 17, 18], "bgcolor": [3, 8, 9, 10, 11, 12, 13, 14], "valid": [3, 4, 7, 16], "gd": [3, 16, 17], "color": [3, 6, 13], "background": [3, 6, 13], "qrimagick": [3, 16, 17, 19], "white": [3, 6], "qrgdimag": [3, 19], "255": 3, "qrfpdf": [3, 19], "blank": 3, "page": 3, "drawlightmodul": [3, 8, 9, 10, 11, 12, 13, 14], "drawcircularmodul": [3, 8, 9, 10, 11, 12, 13, 14], "specifi": [3, 5, 7, 15, 16], "circl": 3, "circleradiu": [3, 8, 9, 10, 11, 12, 13, 14], "float": [3, 10, 11, 13, 17], "45": 3, "75": 3, "radiu": 3, "when": [3, 6, 7, 12, 15], "svgdrawcircularmodul": 3, "keepassquar": [3, 8, 9, 10, 11, 12, 13, 14], "which": [3, 5, 6, 7, 15], "exclud": 3, "connectpath": [3, 8, 9, 10, 11, 12, 13, 14], "connect": [3, 5], "sever": [3, 5, 15, 16], "avoid": [3, 5, 16, 18], "weird": 3, "glitch": 3, "gradient": 3, "etc": [3, 4, 17], "excludefromconnect": [3, 8, 9, 10, 11, 12, 13, 14], "svgconnectpath": 3, "modulevalu": 3, "addlogospac": 3, "creation": [3, 17], "logospacewidth": 3, "logospaceheight": 3, "logospacestartx": 3, "horizont": [3, 6], "posit": [3, 6], "corner": [3, 6], "logospacestarti": 3, "vertic": [3, 6], "scale": [3, 8, 9, 10, 11, 12, 13, 14], "pixel": [3, 6], "imagetranspar": [3, 8, 9, 10, 11, 12, 13, 14], "transpar": [3, 13], "jpeg": [3, 7], "support": [3, 7, 11, 17, 19], "onli": [3, 5, 7, 19], "transparencycolor": [3, 10, 11], "pngcompress": [3, 10, 11], "imagepng": 3, "compress": [3, 7], "jpegqual": [3, 10, 11], "85": 3, "100": [3, 6], "imagejpeg": 3, "qualiti": 3, "imagickformat": [3, 11], "png": [3, 10, 15, 18], "imagemagick": [3, 11, 17, 19], "settyp": 3, "cssclass": [3, 12, 13], "A": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17], "common": [3, 5, 7, 19], "css": [3, 4, 12, 13], "class": [3, 4, 8, 9, 10, 11, 12, 13, 14, 18, 19], "markupdark": [3, 12, 13], "000": [3, 6], "markup": [3, 12, 17], "substitut": [3, 12], "markuplight": [3, 12, 13], "fff": 3, "svgaddxmlhead": [3, 13], "xml": [3, 18], "header": [3, 18], "e": [3, 5, 15, 16, 18, 19], "g": [3, 5, 7, 15, 16], "emb": 3, "directli": [3, 5, 15], "svgopac": [3, 13], "opac": 3, "svgdef": [3, 13], "anyth": [3, 5], "def": [3, 13], "tag": [3, 16], "svgviewboxs": [3, 13], "viewbox": 3, "singl": [3, 6], "integ": 3, "defin": [3, 5, 6, 17], "attribut": [3, 5, 13, 19], "svgpreserveaspectratio": [3, 13], "xmidymid": 3, "preserveaspectratio": 3, "mdn": [3, 7], "svgwidth": [3, 13], "note": [3, 7, 16, 19], "svgheight": [3, 13], "textdark": [3, 14], "textlight": [3, 14], "fpdfmeasureunit": [3, 9], "pt": 3, "measur": [3, 5], "unit": 3, "mm": 3, "cm": [3, 17], "readeruseimagickifavail": [3, 15], "avail": [3, 5, 12], "readergrayscal": [3, 15], "grayscal": 3, "befor": [3, 5, 16], "readerincreasecontrast": [3, 15], "increas": [3, 6, 15, 18], "contrast": [3, 15], "static": 4, "modulevalueisvalid": 4, "determin": [4, 6], "gener": [4, 7, 15, 16, 17, 18], "fqn": 4, "default_module_valu": 4, "layernam": 4, "readabl": [4, 6], "copyright": 5, "c": 5, "2023": [5, 19], "smilei": 5, "work": [5, 7, 19], "under": [5, 19], "creativ": [5, 19], "cc": [5, 7, 19], "BY": [5, 19], "summari": [5, 7], "below": 5, "follow": [5, 6, 7, 11, 16, 17], "legal": 5, "you": [5, 7, 15, 16, 18], "ar": [5, 6, 7, 16, 17], "free": [5, 6], "share": [5, 7, 17], "copi": [5, 7], "redistribut": 5, "materi": 5, "ani": [5, 15, 18], "medium": [5, 6], "adapt": 5, "remix": 5, "transform": 5, "build": 5, "upon": 5, "purpos": 5, "even": 5, "commerci": 5, "licensor": 5, "cannot": 5, "revok": 5, "freedom": 5, "long": 5, "term": 5, "must": 5, "give": [5, 6], "appropri": [5, 6], "credit": 5, "provid": [5, 6, 7, 17], "link": [5, 7, 16], "indic": [5, 6, 7], "chang": [5, 6], "were": 5, "made": 5, "mai": [5, 6, 7, 15, 18], "do": [5, 16], "so": [5, 6, 7, 16], "reason": [5, 8, 9, 10, 11, 12, 13, 14], "manner": 5, "wai": [5, 17], "suggest": 5, "endors": 5, "your": [5, 11, 15, 16, 19], "No": 5, "addit": [5, 6, 7, 15], "restrict": 5, "technolog": 5, "other": [5, 6, 7, 15, 17], "permit": 5, "corpor": 5, "law": 5, "firm": 5, "doe": [5, 6, 15], "servic": [5, 7], "advic": 5, "distribut": 5, "public": 5, "creat": [5, 7, 15, 17, 19], "lawyer": 5, "client": [5, 17], "relationship": 5, "make": [5, 7, 15], "its": [5, 6], "relat": 5, "basi": 5, "warranti": 5, "regard": 5, "condit": 5, "disclaim": 5, "all": [5, 6, 7, 16], "liabil": 5, "damag": 5, "fullest": 5, "extent": 5, "possibl": [5, 6, 7], "standard": [5, 6], "creator": 5, "right": [5, 6], "holder": 5, "origin": 5, "authorship": 5, "subject": [5, 7], "certain": 5, "consider": 5, "exhaust": 5, "form": [5, 6, 7], "part": [5, 6, 18], "our": 5, "intend": [5, 6, 13], "those": [5, 6], "author": 5, "permiss": 5, "irrevoc": 5, "should": [5, 7, 15], "understand": 5, "thei": [5, 6, 7], "choos": [5, 18], "also": [5, 6, 13, 15, 16, 17, 18, 19], "secur": 5, "necessari": [5, 15, 18], "reus": [5, 15], "expect": [5, 16], "clearli": 5, "mark": [5, 6], "except": [5, 15, 18], "limit": 5, "more": [5, 6, 7, 15, 18], "wiki": [5, 7], "creativecommon": 5, "org": [5, 7, 11, 16], "considerations_for_licensor": 5, "By": 5, "grant": 5, "If": [5, 6, 16], "": [5, 7, 15, 16, 18], "exampl": [5, 6, 7, 11, 17, 18], "becaus": 5, "regul": 5, "ha": [5, 7], "still": 5, "special": [5, 7], "request": 5, "ask": 5, "describ": [5, 7], "although": 5, "requir": [5, 7, 19], "encourag": 5, "considerations_for_license": 5, "exercis": 5, "agre": 5, "bound": 5, "To": [5, 16], "interpret": [5, 7, 19], "contract": 5, "benefit": 5, "receiv": 5, "section": [5, 7], "definit": 5, "mean": [5, 6], "deriv": 5, "base": [5, 6, 7, 15, 17], "translat": 5, "alter": 5, "arrang": [5, 6], "modifi": 5, "held": 5, "For": [5, 6, 15, 17], "music": 5, "perform": 5, "sound": 5, "record": 5, "alwai": [5, 6], "produc": 5, "synch": 5, "move": [5, 6], "b": 5, "contribut": 5, "close": 5, "without": [5, 7, 15, 19], "broadcast": 5, "sui": 5, "generi": 5, "databas": [5, 15, 17], "how": [5, 17], "label": [5, 6, 7], "categor": 5, "d": 5, "effect": [5, 15, 19], "absenc": 5, "proper": [5, 15], "circumv": 5, "fulfil": 5, "oblig": 5, "articl": [5, 17], "11": [5, 6, 7], "wipo": 5, "treati": 5, "adopt": 5, "decemb": 5, "20": 5, "1996": 5, "agreement": 5, "fair": 5, "deal": 5, "f": 5, "artist": 5, "literari": 5, "individu": 5, "entiti": 5, "process": [5, 6, 18], "reproduct": 5, "displai": 5, "dissemin": 5, "commun": 5, "import": [5, 19], "member": 5, "access": [5, 7], "place": [5, 6], "them": [5, 15], "j": [5, 17], "than": [5, 6, 17], "direct": [5, 6], "96": 5, "ec": 5, "european": 5, "parliament": 5, "council": 5, "march": 5, "amend": 5, "succeed": 5, "well": [5, 7], "essenti": [5, 6], "equival": [5, 7], "anywher": 5, "world": [5, 7], "k": [5, 7], "correspond": 5, "scope": 5, "herebi": 5, "worldwid": 5, "royalti": 5, "non": 5, "sublicens": 5, "exclus": [5, 11], "reproduc": 5, "whole": 5, "doubt": 5, "need": [5, 6, 15], "compli": 5, "3": [5, 6, 16, 17], "6": [5, 6, 7, 16], "media": 5, "technic": 5, "modif": [5, 15], "now": [5, 18], "known": 5, "hereaft": 5, "waiv": 5, "assert": 5, "forbid": 5, "simpli": [5, 7, 18], "never": 5, "downstream": 5, "recipi": [5, 7], "offer": [5, 15], "everi": 5, "automat": 5, "impos": 5, "differ": [5, 7], "noth": 5, "constitut": 5, "constru": 5, "impli": 5, "sponsor": 5, "offici": 5, "moral": 5, "integr": [5, 19], "nor": [5, 16], "privaci": 5, "person": 5, "howev": [5, 7, 15, 16], "patent": 5, "trademark": 5, "collect": 5, "through": 5, "societi": 5, "voluntari": 5, "waivabl": 5, "statutori": 5, "compulsori": 5, "scheme": [5, 19], "In": [5, 15, 16], "case": [5, 7, 15, 16], "expressli": 5, "reserv": [5, 6], "retain": 5, "suppli": [5, 7, 19], "identif": [5, 6, 7], "pseudonym": 5, "ii": 5, "notic": 5, "iii": 5, "refer": [5, 6, 7], "iv": 5, "v": [5, 7], "uri": [5, 18, 19], "hyperlink": 5, "practic": 5, "previou": [5, 6], "satisfi": 5, "context": 5, "remov": 5, "prevent": 5, "extract": [5, 16], "substanti": 5, "portion": 5, "content": [5, 6, 16, 18, 19], "supplement": 5, "unless": 5, "undertaken": 5, "THE": 5, "TO": 5, "AS": 5, "AND": 5, "NO": 5, "OR": 5, "OF": 5, "kind": 5, "concern": 5, "express": 5, "titl": 5, "merchant": 5, "fit": 5, "FOR": 5, "particular": 5, "infring": 5, "latent": 5, "defect": 5, "accuraci": 5, "presenc": 5, "NOT": 5, "discover": 5, "IN": 5, "event": [5, 6, 19], "WILL": 5, "BE": 5, "liabl": 5, "ON": 5, "theori": 5, "neglig": 5, "indirect": 5, "incident": 5, "consequenti": 5, "punit": 5, "exemplari": 5, "loss": 5, "cost": 5, "expens": 5, "aris": 5, "out": [5, 17], "IF": 5, "advis": [5, 7], "SUCH": 5, "abov": 5, "shall": [5, 6, 7], "most": [5, 7, 16], "approxim": [5, 6], "absolut": [5, 16], "waiver": 5, "termin": [5, 6, 19], "here": [5, 7], "fail": 5, "reinstat": 5, "date": 5, "violat": 5, "cure": 5, "within": [5, 6, 17], "dai": 5, "discoveri": 5, "affect": [5, 19], "seek": 5, "remedi": 5, "stop": 5, "surviv": 5, "state": [5, 7], "herein": 5, "independ": 5, "reduc": [5, 6], "could": 5, "lawfulli": 5, "provis": 5, "deem": 5, "unenforc": 5, "reform": 5, "enforc": 5, "remain": [5, 16], "failur": 5, "consent": 5, "privileg": 5, "immun": 5, "jurisdict": 5, "parti": 5, "notwithstand": 5, "elect": 5, "publish": 5, "consid": 5, "dedic": 5, "domain": 5, "cc0": 5, "polici": 5, "prior": 5, "written": 5, "unauthor": 5, "paragraph": 5, "contact": [5, 19], "quick": 6, "respons": 6, "two": [6, 17], "barcod": [6, 7], "invent": 6, "1994": 6, "compani": 6, "denso": 6, "wave": 6, "automobil": 6, "system": [6, 7, 11, 16], "wa": 6, "beyond": 6, "industri": 6, "due": 6, "fast": [6, 18], "greater": 6, "storag": 6, "compar": 6, "upc": 6, "specif": [6, 7, 16], "popular": [6, 19], "model": [6, 17], "internation": 6, "iso": 6, "iec": 6, "18004": 6, "consist": 6, "nomin": 6, "squar": 6, "overal": 6, "eas": [6, 7], "row": 6, "column": 6, "coordin": [6, 19], "count": 6, "downward": 6, "locat": [6, 7], "commenc": 6, "therefor": [6, 16], "upper": 6, "repres": 6, "confus": 6, "raster": [6, 10, 13], "screen": 6, "zero": 6, "side": [6, 15], "length": [6, 7], "word": 6, "rang": 6, "21": [6, 7], "177": 6, "step": [6, 17], "calcul": 6, "tabl": 6, "com": [6, 7, 11, 16], "three": 6, "ident": [6, 7], "detect": 6, "lower": 6, "view": 6, "superimpos": 6, "concentr": 6, "preferenti": 6, "low": 6, "probabl": 6, "being": 6, "encount": 6, "elsewher": 6, "enabl": 6, "rapid": 6, "field": [6, 7], "compris": 6, "unambigu": 6, "orient": 6, "fix": [6, 15], "softwar": 6, "resynchronis": 6, "moder": 6, "amount": 6, "distort": 6, "central": 6, "larger": 6, "wide": 6, "altern": [6, 7, 15], "end": [6, 7], "run": [6, 16], "across": [6, 16], "between": 6, "similarli": 6, "down": 6, "hand": 6, "densiti": 6, "datum": 6, "rest": 6, "surround": 6, "four": 6, "Its": 6, "equal": 6, "codeword": 6, "bottom": 6, "proceed": 6, "upward": 6, "reach": 6, "next": 6, "immedi": 6, "continu": 6, "whenev": 6, "edg": 6, "unus": 6, "wikipedia": [6, 7], "thonki": 6, "tutori": 6, "18": [6, 17], "sequenc": 6, "12": 6, "bch": 6, "10": [6, 7], "It": [6, 7, 17, 18], "remaind": 6, "method": [6, 7, 19], "identifi": [6, 7], "0001": 6, "digit": [6, 7], "0010": 6, "0100": 6, "1000": 6, "1101": 6, "structur": 6, "append": 6, "0011": 6, "split": 6, "messag": [6, 7], "multipl": [6, 11], "up": [6, 16, 17], "16": 6, "0111": 6, "select": 6, "fnc1": 6, "first": [6, 19], "0101": 6, "128": 6, "zxing": [6, 7, 17], "issu": [6, 16], "1373": 6, "second": [6, 7], "1001": 6, "0000": 6, "gb": 6, "t": [6, 7, 18], "18284": 6, "stream": 6, "vari": 6, "variabl": 6, "charcount": 6, "total": 6, "pariti": 6, "assign": 6, "payload": 6, "lenght": 6, "26": 6, "27": [6, 7], "14": 6, "8859": 6, "latin": 6, "24": 6, "preced": [6, 7], "id": 6, "127": 6, "16383": 6, "16384": 6, "999999": 6, "optim": 6, "usag": [6, 18], "basic": [6, 16], "bitstream": 6, "n": [6, 7, 8, 9, 10, 11, 12, 13, 14], "reed": 6, "solomon": 6, "reader": [6, 7, 17, 18, 19], "detail": [6, 7], "breakdown": 6, "versu": 6, "higher": 6, "less": 6, "list": [6, 7, 16], "capabl": 6, "short": 6, "01": 6, "00": 6, "quartil": 6, "high": [6, 18], "shown": 6, "max": 6, "23648": 6, "7089": 6, "4296": 6, "2953": 6, "1817": 6, "18672": 6, "5596": 6, "3391": 6, "2331": 6, "1435": 6, "13328": 6, "3993": 6, "2420": 6, "1663": 6, "1024": 6, "10208": 6, "3057": 6, "1852": 6, "1273": 6, "784": 6, "store": [6, 15], "subset": 6, "xore": 6, "evenli": 6, "balanc": 6, "occurr": 6, "would": [6, 7], "interfer": 6, "done": 6, "lowest": 6, "penalti": 6, "score": 6, "final": 6, "dure": 6, "rule": 6, "find": [6, 16], "repetit": 6, "cell": [6, 7], "00000": 6, "11111": 6, "consecut": 6, "black": 6, "ratio": 6, "far": 6, "50": 6, "mod": 6, "001": 6, "010": 6, "011": 6, "intdiv": 6, "101": 6, "110": 6, "111": 6, "either": [6, 7, 17], "brief": 7, "perhap": 7, "sure": [7, 15], "properli": 7, "en": 7, "some": [7, 15, 17, 18], "open": [7, 16], "vendor": [7, 16, 18], "youtub": 7, "app": 7, "www": 7, "watch": 7, "dqw4w9wgxcq": 7, "what": 7, "mozilla": 7, "ensur": 7, "paramet": [7, 15], "ad": [7, 15], "queri": 7, "addr": 7, "bcc": 7, "bodi": 7, "address": 7, "hello": 7, "20world": 7, "messagewith": 7, "20i": 7, "20the": 7, "20messag": 7, "20bodi": 7, "carbon": 7, "blind": 7, "adress": 7, "element": 7, "comma": 7, "rfc": 7, "3986": 7, "addr1": 7, "addr2": 7, "6068": 7, "email": 7, "prefix": 7, "devic": 7, "dialer": 7, "invok": [7, 15], "999": 7, "123": 7, "456": 7, "7890": 7, "complet": 7, "telephon": 7, "sould": 7, "countri": 7, "hyphen": 7, "sm": 7, "fax": 7, "deprec": [7, 17, 19], "favor": 7, "3966": 7, "nation": 7, "convent": 7, "write": 7, "googl": [7, 17], "libphonenumb": 7, "port": [7, 17], "geograph": 7, "altitud": 7, "latitud": 7, "longitud": 7, "cr": 7, "u": 7, "num": 7, "wg": 7, "84": 7, "decim": 7, "meter": 7, "te": 7, "uncertainti": 7, "z": 7, "zoom": 7, "local": 7, "search": 7, "47": 7, "620521": 7, "122": 7, "349293": 7, "988056": 7, "86": 7, "925278": 7, "8848": 7, "373333": 7, "142": 7, "591667": 7, "10920": 7, "37": 7, "786971": 7, "399677": 7, "moon": 7, "2011": 7, "35": 7, "5870": 7, "uniform": 7, "secret": [7, 18], "issuer": [7, 18], "param": 7, "elemet": 7, "mandatori": 7, "strongi": 7, "totp": [7, 18], "hotp": 7, "counter": 7, "account": 7, "kei": [7, 15], "associ": 7, "colon": 7, "cryptograph": 7, "random": 7, "base32": 7, "3548": 7, "pad": 7, "hexadecim": 7, "algorithm": 7, "hash": [7, 16], "sha1": 7, "sha256": 7, "sha512": 7, "otp": 7, "period": 7, "jbswy3dpehpk3pxp": 7, "42": 7, "3atim": 7, "60": 7, "4226": 7, "hmac": 7, "One": 7, "password": 7, "6238": 7, "wi": 7, "fi": 7, "syntax": [7, 16], "look": [7, 18], "wifi": 7, "ssid": 7, "p": 7, "hidden": 7, "wep": 7, "wpa": 7, "wpa2": 7, "eap": 7, "nopass": 7, "omit": 7, "ignor": 7, "enclos": 7, "quot": 7, "ascii": 7, "hex": 7, "abcd1234": 7, "escap": 7, "backslash": 7, "wpa3": 7, "pleas": [7, 11, 16, 17], "anonym": 7, "like": [7, 16, 18], "ttl": 7, "pwd": 7, "ph2": 7, "phase": 7, "mschapv2": 7, "utf": [7, 15], "present": [7, 15], "sae": 7, "der": 7, "asn": 7, "subjectpublickeyinfo": 7, "pk": 7, "r": 7, "transit": 7, "disabl": 7, "mynetworkwihoutpassword": 7, "myhiddenwpanetwork": 7, "password123": 7, "myhiddenwpa2network": 7, "commonli": 7, "exchang": 7, "too": 7, "complex": 7, "fulli": 7, "explain": 7, "just": [7, 15], "bare": 7, "begin": 7, "fn": 7, "gender": 7, "o": 7, "home": 7, "adr": 7, "line1": 7, "line2": 7, "street": 7, "citi": 7, "zip": [7, 16], "tz": 7, "photo": 7, "categori": 7, "6350": 7, "ontologi": 7, "peopl": 7, "organ": 7, "w3c": 7, "vobject": 7, "librari": [7, 17, 19], "formerli": 7, "prodid": 7, "spati": 7, "laracon": 7, "onlin": 7, "wr": 7, "calnam": 7, "vevent": 7, "uid": 7, "5ef5c3f64cb2c": 7, "dtstamp": 7, "tzid": 7, "utc": 7, "20200626t094630": 7, "feed": 7, "dtstart": 7, "20190306t150000z": 7, "dtend": 7, "20190306t160000z": 7, "20190419t135034z": 7, "5545": 7, "internet": 7, "schedul": 7, "core": [7, 17], "encapsul": [8, 17], "postscript": [8, 17], "properti": [8, 9, 10, 11, 12, 13, 14, 15, 19], "portabl": 9, "pdf": [9, 17], "gdimag": [10, 11, 16, 17], "graphic": [10, 13], "gif": 10, "jpg": 10, "instal": [11, 17, 19], "guid": [11, 16, 18], "oper": [11, 16], "script": [11, 16], "download": [11, 16], "ext": [11, 16, 17], "window": [11, 16], "imagickdemo": 11, "cheap": 12, "scalabl": 13, "vector": 13, "achiev": 13, "discuss": 13, "199": 13, "comment": 13, "plain": [14, 17], "behav": 15, "stdclass": 15, "new": [15, 16, 18], "foo": 15, "bar": 15, "retriev": 15, "var_dump": 15, "thrown": 15, "take": 15, "pair": 15, "setter": 15, "myoption": 15, "json_throw_on_error": 15, "json_encod": 15, "overwriten": 15, "mycustomopt": 15, "myparam": 15, "defaultvalu": 15, "flexibl": [15, 17], "approach": 15, "mycustomoptionstrait": 15, "magic": [15, 19], "set_myparam": 15, "trim": 15, "getter": 15, "get_myparam": 15, "strtoupper": 15, "whatev": [15, 16], "fly": 15, "asid": 15, "invoc": 15, "again": 15, "backreferenc": 15, "overrid": 15, "printf": [15, 18], "img": [15, 18], "src": [15, 18], "alt": [15, 18], "readerresult": 15, "manual": 15, "mycustomoutput": 15, "qrmarkupsvg": [15, 19], "ideal": 15, "ini": 15, "internal_encod": 15, "default_charset": 15, "mbstring": [15, 16, 17], "mb_internal_encod": 15, "numericdata": 15, "alphanumdata": 15, "kanjidata": 15, "hanzidata": 15, "binarydata": 15, "ecicharset": 15, "encodedecidata": 15, "implemend": 15, "come": 15, "handi": 15, "input": [15, 18], "beforehand": 15, "throw": [15, 18], "invalid": 15, "might": 15, "packag": [16, 17], "complain": 16, "about": 16, "monopol": 16, "we": [16, 18], "ve": 16, "dev": 16, "main": [16, 18, 19], "constraint": 16, "releas": 16, "want": [16, 18], "keep": 16, "commit": 16, "unforseen": 16, "cb69751c3bc090a7fdd2f2601bbe10f28d225f10": 16, "older": 16, "suit": [16, 17], "platform": 16, "v2": 16, "unchang": 16, "throughout": 16, "v5": 16, "verifi": 16, "deploi": 16, "f15b0afe9d4128bf734c3bf1bcffae72bf7b3e53": 16, "desir": 16, "project": [16, 17], "folder": [16, 18], "root": 16, "directori": 16, "autoload": [16, 18], "profit": 16, "recommend": 16, "With": 16, "said": 16, "ll": 16, "leav": 16, "choic": 16, "repo": 16, "packagist": 16, "good": [16, 18], "luck": 16, "v3": 16, "branch": 16, "ye": 16, "fileinfo": [16, 17], "v4": [16, 17], "php8": 16, "v1": 16, "let": 16, "die": 16, "psa": 16, "longer": 16, "kazuhiko": 17, "aras": 17, "namespac": 17, "clean": 17, "improv": 17, "stuff": 17, "combin": 17, "gbt18284": 17, "2000": 17, "easili": 17, "extens": [17, 19], "setasign": 17, "drupal": 17, "factor": 17, "authent": [17, 18, 19], "tfa": 17, "login": 17, "ga_login": 17, "symfoni": 17, "phpqrcode": 17, "bundl": 17, "wordpress": 17, "wp": 17, "auth": 17, "simpl": 17, "2fa": 17, "button": 17, "woltlab": 17, "verif": 17, "appwrit": 17, "cachet": 17, "g\u00e9ant": 17, "cat": 17, "openitcockpit": 17, "twill": 17, "elef": 17, "twilio": 17, "hi": 17, "my": 17, "cooler": 17, "javascript": 17, "httpinterfac": 17, "psr": 17, "implemet": 17, "oauth": 17, "bunch": 17, "querybuild": 17, "mysql": 17, "postgr": 17, "sqlite": 17, "mssql": 17, "firebird": 17, "tootbot": 17, "mastodon": 17, "bot": 17, "require_onc": 18, "__dir__": 18, "mobil": [18, 19], "otpauth": [18, 19], "b3jx4vcvjdvnxnz5": 18, "net": 18, "echo": 18, "advanc": [18, 19], "depth": 18, "pretti": 18, "straight": 18, "forward": 18, "try": 18, "catch": 18, "throwabl": 18, "handl": 18, "cast": 18, "idea": 18, "wrap": 18, "occur": 18, "especi": 18, "subroutin": 18, "caus": 18, "cpu": 18, "load": [18, 19], "oh": 18, "hei": 18, "don": 18, "forget": 18, "sanit": 18, "user": 18, "edit": 19, "updat": 19, "jul": 19, "licens": 19, "overview": 19, "featur": 19, "framework": 19, "shameless": 19, "advertis": 19, "compos": 19, "quickstart": 19, "configur": 19, "extend": 19, "qrep": 19, "qrmarkuphtml": 19, "qrstring": 19, "terminologi": 19, "region": 19, "darkmodul": 19, "channel": 19, "capac": 19, "evalu": 19, "url": 19, "http": 19, "mail": 19, "mailto": 19, "phone": 19, "tel": 19, "geo": 19, "wireless": 19, "network": 19, "vcard": 19, "calendar": 19, "vcalendar": 19, "icalendar": 19}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"decoderresult": 0, "method": [0, 1, 2, 3, 4, 15], "magic": 0, "properti": [0, 3], "read": [0, 18], "onli": 0, "qrcode": [1, 15, 19], "deprec": [1, 2], "constant": [1, 2, 4], "qrmatrix": [2, 15], "qroption": [3, 15], "qroutputinterfac": 4, "licens": 5, "terminologi": 6, "qr": [6, 15, 18], "code": [6, 15, 18], "matrix": 6, "modul": [6, 8, 9, 10, 11, 12, 13, 14, 19], "version": [6, 16], "function": 6, "pattern": 6, "finder": 6, "align": 6, "time": 6, "separ": 6, "quiet": 6, "zone": 6, "encod": 6, "region": 6, "data": 6, "inform": [6, 7], "format": 6, "darkmodul": 6, "mode": [6, 15], "segment": 6, "extend": [6, 15], "channel": 6, "interpret": 6, "eci": 6, "mix": [6, 15], "ecc": 6, "error": 6, "correct": 6, "level": 6, "maximum": 6, "capac": 6, "mask": 6, "evalu": 6, "reflect": 6, "popular": 7, "content": 7, "uri": 7, "scheme": 7, "url": 7, "http": 7, "e": 7, "mail": 7, "mailto": 7, "phone": 7, "number": 7, "tel": 7, "geo": 7, "coordin": 7, "mobil": 7, "authent": 7, "otpauth": 7, "wireless": 7, "network": 7, "configur": [7, 15, 18], "contact": 7, "vcard": 7, "calendar": 7, "event": 7, "vcalendar": 7, "icalendar": 7, "see": 7, "also": 7, "qrep": 8, "option": [8, 9, 10, 11, 12, 13, 14, 15], "affect": [8, 9, 10, 11, 12, 13, 14], "thi": [8, 9, 10, 11, 12, 13, 14, 16], "have": [8, 9, 10, 11, 12, 13, 14], "effect": [8, 9, 10, 11, 12, 13, 14], "qrfpdf": 9, "qrgdimag": 10, "qrimagick": 11, "qrmarkuphtml": 12, "qrmarkupsvg": 13, "qrstring": 14, "advanc": 15, "usag": [15, 19], "via": 15, "suppli": 15, "an": 15, "iter": 15, "load": 15, "save": 15, "json": [15, 16], "class": 15, "file": 15, "render": 15, "instanc": 15, "reader": 15, "instal": 16, "compos": 16, "switch": 16, "termin": 16, "manual": [16, 19], "can": 16, "i": 16, "us": 16, "librari": [16, 18], "without": 16, "support": 16, "php": [16, 19], "extens": 16, "requir": [16, 17], "imagemagick": 16, "overview": 17, "featur": 17, "framework": 17, "integr": 17, "shameless": 17, "advertis": 17, "quickstart": 18, "import": 18, "creat": 18, "your": 18, "first": 18, "note": 18, "built": 19, "In": 19, "output": 19, "public": 19, "api": 19, "appendix": 19}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"DecoderResult": [[0, "decoderresult"]], "Methods": [[0, "methods"], [1, "methods"], [2, "methods"], [3, "methods"], [4, "methods"]], "Magic Properties (read-only)": [[0, "magic-properties-read-only"]], "QRCode": [[1, "qrcode"]], "Deprecated methods": [[1, "deprecated-methods"], [2, "deprecated-methods"]], "Constants": [[1, "constants"], [2, "constants"], [4, "constants"]], "Deprecated constants": [[1, "deprecated-constants"]], "QRMatrix": [[2, "qrmatrix"]], "QROptions": [[3, "qroptions"]], "Properties": [[3, "properties"]], "QROutputInterface": [[4, "qroutputinterface"]], "License": [[5, "license"]], "Terminology": [[6, "terminology"]], "QR Code": [[6, "qr-code"]], "Matrix": [[6, "matrix"]], "Module": [[6, "module"]], "Version": [[6, "version"]], "Function Patterns": [[6, "function-patterns"]], "Finder Pattern": [[6, "finder-pattern"]], "Alignment Pattern": [[6, "alignment-pattern"]], "Timing Pattern": [[6, "timing-pattern"]], "Separators": [[6, "separators"]], "Quiet Zone": [[6, "quiet-zone"]], "Encoding Region": [[6, "encoding-region"]], "Data": [[6, "data"]], "Version Information": [[6, "version-information"]], "Format Information": [[6, "format-information"]], "Darkmodule": [[6, "darkmodule"]], "Mode": [[6, "mode"]], "Segment": [[6, "segment"]], "Extended Channel Interpretation (ECI)": [[6, "extended-channel-interpretation-eci"]], "Mixed Mode": [[6, "mixed-mode"]], "ECC (Error Correction Coding)": [[6, "ecc-error-correction-coding"]], "ECC Level": [[6, "ecc-level"]], "Maximum data capacity": [[6, "maximum-data-capacity"]], "Data masking": [[6, "data-masking"]], "Evaluation": [[6, "evaluation"]], "Mask pattern": [[6, "mask-pattern"]], "Reflectance": [[6, "reflectance"]], "Popular content and URI schemes": [[7, "popular-content-and-uri-schemes"]], "URL https": [[7, "url-https"]], "E-Mail mailto": [[7, "e-mail-mailto"]], "Phone numbers tel": [[7, "phone-numbers-tel"]], "Geo Coordinates geo": [[7, "geo-coordinates-geo"]], "Mobile Authenticators otpauth": [[7, "mobile-authenticators-otpauth"]], "Wireless Network configuration": [[7, "wireless-network-configuration"]], "Contact information: vCard": [[7, "contact-information-vcard"]], "Calendar Events: vCalendar and iCalendar": [[7, "calendar-events-vcalendar-and-icalendar"]], "See also": [[7, "see-also"]], "QREps": [[8, "qreps"]], "Options that affect this module": [[8, "options-that-affect-this-module"], [9, "options-that-affect-this-module"], [10, "options-that-affect-this-module"], [11, "options-that-affect-this-module"], [12, "options-that-affect-this-module"], [13, "options-that-affect-this-module"], [14, "options-that-affect-this-module"]], "Options that have no effect": [[8, "options-that-have-no-effect"], [9, "options-that-have-no-effect"], [10, "options-that-have-no-effect"], [11, "options-that-have-no-effect"], [12, "options-that-have-no-effect"], [13, "options-that-have-no-effect"], [14, "options-that-have-no-effect"]], "QRFpdf": [[9, "qrfpdf"]], "QRGdImage": [[10, "qrgdimage"]], "QRImagick": [[11, "qrimagick"]], "QRMarkupHTML": [[12, "qrmarkuphtml"]], "QRMarkupSVG": [[13, "qrmarkupsvg"]], "QRString": [[14, "qrstring"]], "Advanced usage": [[15, "advanced-usage"]], "Configuration via QROptions": [[15, "configuration-via-qroptions"]], "Supply an iterable of options": [[15, "supply-an-iterable-of-options"]], "Load and save JSON": [[15, "load-and-save-json"]], "Extending the QROptions class": [[15, "extending-the-qroptions-class"]], "QRCode methods": [[15, "qrcode-methods"]], "Save to file": [[15, "save-to-file"]], "Render a QRMatrix instance": [[15, "render-a-qrmatrix-instance"]], "Mixed mode": [[15, "mixed-mode"]], "QR Code reader": [[15, "qr-code-reader"]], "Installation": [[16, "installation"]], "Installation with Composer": [[16, "installation-with-composer"]], "composer.json": [[16, "composer-json"]], "Version switch": [[16, "version-switch"]], "Terminal": [[16, "terminal"]], "Manual installation": [[16, "manual-installation"]], "Can i use this library without using composer?": [[16, "can-i-use-this-library-without-using-composer"]], "Supported PHP versions & extension requirements": [[16, "supported-php-versions-extension-requirements"]], "ImageMagick": [[16, "imagemagick"]], "Overview": [[17, "overview"]], "Features": [[17, "features"]], "Requirements": [[17, "requirements"]], "Framework Integration": [[17, "framework-integration"]], "Shameless advertising": [[17, "shameless-advertising"]], "Quickstart": [[18, "quickstart"]], "Import the library": [[18, "import-the-library"]], "Create your first QR Code": [[18, "create-your-first-qr-code"]], "Configuration": [[18, "configuration"]], "Reading QR Codes": [[18, "reading-qr-codes"]], "Notes": [[18, "notes"]], "PHP-QRCode Manual": [[19, "php-qrcode-manual"]], "Usage": [[19, null]], "Built-In Output Modules": [[19, null]], "Public API": [[19, null]], "Appendix": [[19, null]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["API-DecoderResult", "API-QRCode", "API-QRMatrix", "API-QROptions", "API-QROutputInterface", "Appendix-License", "Appendix-Terminology", "Appendix-URI-Content", "Built-In-Output-QREps", "Built-In-Output-QRFpdf", "Built-In-Output-QRGdImage", "Built-In-Output-QRImagick", "Built-In-Output-QRMarkupHTML", "Built-In-Output-QRMarkupSVG", "Built-In-Output-QRString", "Usage-Advanced-usage", "Usage-Installation", "Usage-Overview", "Usage-Quickstart", "index"], "filenames": ["API-DecoderResult.md", "API-QRCode.md", "API-QRMatrix.md", "API-QROptions.md", "API-QROutputInterface.md", "Appendix-License.rst", "Appendix-Terminology.md", "Appendix-URI-Content.md", "Built-In-Output-QREps.md", "Built-In-Output-QRFpdf.md", "Built-In-Output-QRGdImage.md", "Built-In-Output-QRImagick.md", "Built-In-Output-QRMarkupHTML.md", "Built-In-Output-QRMarkupSVG.md", "Built-In-Output-QRString.md", "Usage-Advanced-usage.md", "Usage-Installation.md", "Usage-Overview.md", "Usage-Quickstart.md", "index.rst"], "titles": ["DecoderResult", "QRCode", "QRMatrix", "QROptions", "QROutputInterface", "License", "Terminology", "Popular content and URI schemes", "QREps", "QRFpdf", "QRGdImage", "QRImagick", "QRMarkupHTML", "QRMarkupSVG", "QRString", "Advanced usage", "Installation", "Overview", "Quickstart", "PHP-QRCode Manual"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 15, 16, 18], "full": [0, 1, 2, 3, 4, 5, 7], "phpdocumentor": [0, 1, 2, 3, 4], "api": [0, 1, 2, 3, 4, 16], "document": [0, 1, 2, 3, 4, 9], "can": [0, 1, 2, 3, 4, 5, 6, 7, 13, 15, 17, 18, 19], "found": [0, 1, 2, 3, 4, 6], "chillerlan": [0, 1, 2, 3, 4, 15, 16, 18, 19], "github": [0, 1, 2, 3, 4, 7, 11, 16], "io": [0, 1, 2, 3, 4], "php": [0, 1, 2, 3, 4, 7, 11, 13, 15, 17, 18], "qrcode": [0, 2, 3, 4, 6, 7, 13, 16, 17, 18], "return": [0, 1, 2, 3, 4, 15], "descript": [0, 1, 2, 3, 4, 6, 7], "__construct": [0, 1, 2, 3], "iter": [0, 3, 19], "null": [0, 1, 2, 3, 4, 13, 15], "us": [0, 2, 3, 5, 6, 7, 13, 15, 17, 18, 19], "intern": [0, 1, 2, 3, 5, 6, 15, 19], "decod": [0, 6], "__tostr": [0, 3, 15], "string": [0, 1, 3, 4, 6, 7, 9, 11, 12, 13, 14, 15, 17, 18], "data": [0, 1, 2, 3, 15, 16, 18, 19], "contain": [0, 6, 7, 15], "qr": [0, 1, 2, 3, 7, 16, 17, 19], "symbol": [0, 6, 17], "hasstructuredappend": 0, "bool": [0, 2, 3, 4, 8, 9, 10, 11, 13], "getqrmatrix": [0, 1, 15], "qrmatrix": [0, 1, 19], "type": [0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 18], "rawbyt": 0, "bitbuff": [0, 2], "version": [0, 1, 2, 3, 7, 15, 17, 18, 19], "ecclevel": [0, 1, 2, 3, 15], "maskpattern": [0, 1, 2, 3], "default": [0, 3, 4, 6, 7, 13, 15, 18], "structuredappendpar": 0, "int": [0, 1, 2, 3, 8, 10, 11, 13], "1": [0, 3, 5, 6, 7, 16, 17], "structuredappendsequ": 0, "settingscontainerinterfac": [1, 3, 15], "option": [1, 3, 4, 7, 16, 17, 18, 19], "see": [1, 2, 3, 6, 13, 16, 17, 18, 19], "qroption": [1, 18, 19], "setopt": [1, 15], "self": [1, 2], "set": [1, 2, 3, 5, 6, 7, 15], "an": [1, 2, 3, 5, 6, 7, 12, 16, 17, 19], "instanc": [1, 2, 5, 18, 19], "call": [1, 3, 7, 15], "via": [1, 3, 7, 9, 12, 13, 16, 17, 19], "constructor": [1, 3, 15], "render": [1, 3, 16, 18, 19], "file": [1, 3, 4, 16, 18, 19], "mix": [1, 3, 4, 9, 10, 11, 17, 19], "code": [1, 2, 3, 7, 16, 17, 19], "given": [1, 2, 3, 4, 5, 6], "save": [1, 19], "output": [1, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "depend": [1, 6, 16, 17], "chosen": [1, 5], "mode": [1, 4, 7, 17, 19], "qroutputinterfac": [1, 2, 3, 15, 19], "dump": [1, 4, 15], "rendermatrix": [1, 15], "matrix": [1, 2, 3, 15, 18, 19], "object": [1, 7, 15], "current": [1, 2, 4, 6, 15], "addseg": 1, "qrdatamodeinterfac": [1, 15], "segment": [1, 15, 19], "add": [1, 2, 3, 7, 16], "clearseg": [1, 15], "clear": [1, 2, 15], "arrai": [1, 2, 3, 6, 8, 10, 11, 13], "addnumericseg": [1, 15], "numer": [1, 6, 17], "addalphanumseg": [1, 15], "alphanumer": [1, 6, 17], "addkanjiseg": [1, 15], "kanji": [1, 6, 15, 17], "japanes": [1, 6, 17], "13": [1, 6, 17], "bit": [1, 6, 17], "doubl": [1, 7, 17], "byte": [1, 6, 15, 17], "charact": [1, 6, 7, 15], "shift": [1, 6, 17], "ji": [1, 6, 17], "addhanziseg": [1, 15], "hanzi": [1, 6, 15, 17], "simplifi": [1, 6, 17], "chines": [1, 6, 17], "gb2312": [1, 6, 15, 17], "gb18030": [1, 6, 15, 17], "addbyteseg": [1, 15], "8": [1, 2, 5, 6, 7, 15, 16, 17], "addecidesign": 1, "encod": [1, 2, 7, 15, 17, 18, 19], "standalon": 1, "eci": [1, 19], "design": [1, 5, 6], "addeciseg": [1, 15], "includ": [1, 2, 5, 7, 16, 18], "readfromfil": [1, 15, 18], "path": [1, 3, 7, 15, 18], "decoderresult": [1, 15, 18, 19], "read": [1, 3, 5, 6, 16, 19], "from": [1, 2, 3, 5, 6, 7, 15, 16], "readfromblob": 1, "blob": 1, "readfromsourc": 1, "luminancesourceinterfac": 1, "sourc": 1, "lumin": 1, "sinc": [1, 2, 16], "replac": [1, 2, 3, 5, 16], "getmatrix": [1, 2], "5": [1, 2, 3, 5, 6, 15, 16], "0": [1, 2, 3, 5, 6, 7, 16, 19], "isnumb": 1, "number": [1, 3, 6, 15, 19], "validatestr": [1, 15], "isalphanum": 1, "alphanum": [1, 15], "iskanji": 1, "isbyt": 1, "name": [1, 2, 3, 4, 7, 15], "version_auto": [1, 3], "auto": [1, 3], "mask_pattern_auto": 1, "output_markup_svg": 1, "markup_svg": [1, 3, 4], "output_markup_html": 1, "markup_html": [1, 3, 4], "output_image_png": 1, "gdimage_png": [1, 3, 4, 15], "output_image_jpg": 1, "gdimage_jpg": [1, 3, 4], "output_image_gif": 1, "gdimage_gif": [1, 3, 4], "output_string_json": 1, "string_json": [1, 3, 4], "output_string_text": 1, "string_text": [1, 3, 4], "output_imagick": 1, "imagick": [1, 3, 4, 11, 16, 17], "output_fpdf": 1, "fpdf": [1, 3, 4, 9, 17], "output_custom": 1, "custom": [1, 3, 4], "ecc_l": 1, "l": [1, 3, 6, 17], "ecc_m": 1, "m": [1, 3, 6, 7, 15, 17], "ecc_q": 1, "q": [1, 3, 6, 7, 17], "ecc_h": 1, "h": [1, 3, 5, 6, 7, 17], "data_numb": 1, "data_alphanum": 1, "data_byt": 1, "data_kanji": 1, "initfunctionalpattern": [2, 15], "shortcut": 2, "initi": [2, 7], "function": [2, 15, 19], "pattern": [2, 3, 18, 19], "represent": [2, 5], "2": [2, 3, 5, 6, 7, 16, 17], "dimension": [2, 6], "getvers": 2, "getecclevel": 2, "ecc": [2, 17, 19], "level": [2, 3, 7, 17, 19], "getmaskpattern": 2, "mask": [2, 3, 18, 19], "getsiz": 2, "absoulut": 2, "size": [2, 3, 18], "quiet": [2, 3, 19], "zone": [2, 3, 19], "4": [2, 3, 5, 6, 7, 16, 17, 19], "17": [2, 6, 17], "quietzon": 2, "get": [2, 6, 18], "x": [2, 3, 6, 7, 16, 17], "y": [2, 6], "valu": [2, 3, 4, 6, 7, 15], "modul": [2, 3, 4, 15, 17, 18], "m_type": [2, 3], "setarea": 2, "startx": 2, "starti": 2, "width": [2, 3, 6], "height": [2, 3, 6], "fill": [2, 3], "area": [2, 6, 7], "start": [2, 3, 6], "point": 2, "top": [2, 3, 6], "left": [2, 3, 6], "checktyp": 2, "check": [2, 3, 4, 15, 17], "whether": [2, 3, 4, 5], "i": [2, 3, 4, 5, 6, 7, 12, 13, 15, 17, 18, 19], "checktypein": 2, "true": [2, 3, 7, 15], "match": 2, "otherwis": [2, 5], "fals": [2, 3, 15, 18], "dark": [2, 3, 6], "light": [2, 3, 6], "checkneighbour": 2, "statu": [2, 5], "neighbour": 2, "bitmask": 2, "result": [2, 5, 15, 18], "setdarkmodul": 2, "setfinderpattern": 2, "setsepar": 2, "setalignmentpattern": 2, "settimingpattern": 2, "setversionnumb": 2, "setformatinfo": 2, "setquietzon": 2, "quietzones": [2, 3], "draw": [2, 3], "around": 2, "rotate90": 2, "rotat": 2, "90": 2, "degre": [2, 7], "clock": 2, "wise": 2, "setlogospac": 2, "space": [2, 3, 7], "order": [2, 6], "logo": [2, 3, 5, 7], "text": [2, 3, 5, 7, 14, 17], "writecodeword": 2, "map": [2, 3, 4, 6, 7], "interleav": 2, "binari": [2, 6, 17], "appli": [2, 5, 6], "revers": [2, 6], "_dark": 2, "_light": 2, "postfix": 2, "constan": 2, "exist": [2, 3, 15], "pure": 2, "conveni": 2, "same": [2, 6], "m_xxx": 2, "is_dark": 2, "respect": [2, 5, 6, 16], "flag": 2, "m_data": 2, "m_null": 2, "m_darkmodule_light": 2, "reflect": [2, 19], "m_darkmodul": 2, "onc": 2, "per": [2, 6], "xy": 2, "9": [2, 3, 5, 6, 16], "actual": 2, "m_data_dark": 2, "m_finder": 2, "7x7": 2, "finder": [2, 19], "m_finder_dark": 2, "m_finder_dot_light": 2, "m_finder_dot": 2, "inner": 2, "3x3": 2, "block": [2, 6, 7, 18], "m_separ": 2, "separ": [2, 5, 7, 19], "line": [2, 3], "along": [2, 17], "m_separator_dark": 2, "m_align": 2, "5x5": 2, "align": [2, 3, 19], "m_alignment_dark": 2, "m_time": 2, "time": [2, 5, 7, 19], "m_timing_dark": 2, "m_format": 2, "format": [2, 5, 7, 9, 11, 17, 19], "inform": [2, 5, 19], "m_format_dark": 2, "m_version": 2, "m_version_dark": 2, "m_quietzon": 2, "margin": [2, 3], "m_quietzone_dark": 2, "m_logo": 2, "imag": [2, 3, 5, 6, 11, 13, 15, 18], "yet": 2, "m_logo_dark": 2, "m_test": 2, "test": [2, 16, 18], "m_test_dark": 2, "qroptionstrait": [3, 15], "inherit": 3, "settingscontainerabstract": [3, 15], "info": [3, 16], "construct": [3, 6], "after": [3, 15, 16], "have": [3, 5, 6, 18, 19], "been": [3, 5, 16], "protect": [3, 5, 7, 15], "void": [3, 15], "trait": [3, 15], "each": [3, 6, 15], "similar": [3, 5, 6, 7, 15, 16], "php4": 3, "__get": 3, "thi": [3, 5, 6, 7, 15, 17, 18, 19], "get_": [3, 15], "__set": 3, "set_": [3, 15], "__isset": 3, "__unset": 3, "json": [3, 14, 17, 19], "toarrai": 3, "fromiter": [3, 15], "tojson": [3, 15], "jsonopt": 3, "accept": [3, 5], "constant": [3, 19], "fromjson": [3, 15], "jsonseri": 3, "implement": [3, 8, 9, 14, 16, 17], "jsonserializ": [3, 15], "interfac": [3, 15], "allow": [3, 5, 6, 16], "40": [3, 6, 17], "versionmin": 3, "minimum": [3, 5, 7], "versionmax": 3, "maximum": [3, 19], "error": [3, 5, 15, 18, 19], "correct": [3, 19], "where": [3, 5, 6], "7": [3, 5, 6, 7, 15, 16, 17, 18], "15": [3, 6, 17], "25": [3, 6], "30": [3, 5, 6, 7], "addquietzon": 3, "accord": [3, 5, 6, 7], "spec": 3, "clamp": 3, "matrixs": 3, "outputtyp": [3, 15], "xxx": 3, "built": [3, 4, 16, 17, 18], "one": [3, 5, 6, 7], "ep": [3, 4, 8, 17], "outputinterfac": 3, "fqcn": 3, "returnresourc": [3, 8, 9, 10, 11, 12, 13, 14], "resourc": [3, 5, 7], "instead": [3, 7, 13, 18], "applic": [3, 5, 6, 7, 16], "cachefil": [3, 15], "cach": 3, "imagebase64": [3, 8, 9, 10, 11, 12, 13, 14, 15, 18], "toggl": 3, "base64": [3, 7, 18], "raw": [3, 18], "eol": [3, 12, 13, 14, 16], "php_eol": 3, "newlin": 3, "html": [3, 12, 17], "svg": [3, 12, 13, 15, 17, 18], "bgcolor": [3, 8, 9, 10, 11, 12, 13, 14], "valid": [3, 4, 7, 16], "gd": [3, 16, 17], "color": [3, 6, 13], "background": [3, 6, 13], "qrimagick": [3, 16, 17, 19], "white": [3, 6], "qrgdimag": [3, 19], "255": 3, "qrfpdf": [3, 19], "blank": 3, "page": 3, "drawlightmodul": [3, 8, 9, 10, 11, 12, 13, 14], "drawcircularmodul": [3, 8, 9, 10, 11, 12, 13, 14], "specifi": [3, 5, 7, 15, 16], "circl": 3, "circleradiu": [3, 8, 9, 10, 11, 12, 13, 14], "float": [3, 10, 11, 13, 17], "45": 3, "75": 3, "radiu": 3, "when": [3, 6, 7, 12, 15], "svgdrawcircularmodul": 3, "keepassquar": [3, 8, 9, 10, 11, 12, 13, 14], "which": [3, 5, 6, 7, 15], "exclud": 3, "connectpath": [3, 8, 9, 10, 11, 12, 13, 14], "connect": [3, 5], "sever": [3, 5, 15, 16], "avoid": [3, 5, 16, 18], "weird": 3, "glitch": 3, "gradient": 3, "etc": [3, 4, 17], "excludefromconnect": [3, 8, 9, 10, 11, 12, 13, 14], "svgconnectpath": 3, "modulevalu": 3, "addlogospac": 3, "creation": [3, 17], "logospacewidth": 3, "logospaceheight": 3, "logospacestartx": 3, "horizont": [3, 6], "posit": [3, 6], "corner": [3, 6], "logospacestarti": 3, "vertic": [3, 6], "scale": [3, 8, 9, 10, 11, 12, 13, 14], "pixel": [3, 6], "imagetranspar": [3, 8, 9, 10, 11, 12, 13, 14], "transpar": [3, 13], "jpeg": [3, 7], "support": [3, 7, 11, 17, 19], "onli": [3, 5, 7, 19], "transparencycolor": [3, 10, 11], "pngcompress": [3, 10, 11], "imagepng": 3, "compress": [3, 7], "jpegqual": [3, 10, 11], "85": 3, "100": [3, 6], "imagejpeg": 3, "qualiti": 3, "imagickformat": [3, 11], "png": [3, 10, 15, 18], "imagemagick": [3, 11, 17, 19], "settyp": 3, "cssclass": [3, 12, 13], "A": [3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17], "common": [3, 5, 7, 19], "css": [3, 4, 12, 13], "class": [3, 4, 8, 9, 10, 11, 12, 13, 14, 18, 19], "markupdark": [3, 12, 13], "000": [3, 6], "markup": [3, 12, 17], "substitut": [3, 12], "markuplight": [3, 12, 13], "fff": 3, "svgaddxmlhead": [3, 13], "xml": [3, 18], "header": [3, 18], "e": [3, 5, 15, 16, 18, 19], "g": [3, 5, 7, 15, 16], "emb": 3, "directli": [3, 5, 15], "svgopac": [3, 13], "opac": 3, "svgdef": [3, 13], "anyth": [3, 5], "def": [3, 13], "tag": [3, 16], "svgviewboxs": [3, 13], "viewbox": 3, "singl": [3, 6], "integ": 3, "defin": [3, 5, 6, 17], "attribut": [3, 5, 13, 19], "svgpreserveaspectratio": [3, 13], "xmidymid": 3, "preserveaspectratio": 3, "mdn": [3, 7], "svgwidth": [3, 13], "note": [3, 7, 16, 19], "svgheight": [3, 13], "textdark": [3, 14], "textlight": [3, 14], "textlinestart": 3, "prefix": [3, 7], "empti": 3, "consol": 3, "jsonasboolean": 3, "boolean": 3, "fpdfmeasureunit": [3, 9], "pt": 3, "measur": [3, 5], "unit": 3, "mm": 3, "cm": [3, 17], "readeruseimagickifavail": [3, 15], "avail": [3, 5, 12], "readergrayscal": [3, 15], "grayscal": 3, "befor": [3, 5, 16], "readerincreasecontrast": [3, 15], "increas": [3, 6, 15, 18], "contrast": [3, 15], "static": 4, "modulevalueisvalid": 4, "gener": [4, 7, 15, 16, 17, 18], "fqn": 4, "default_module_valu": 4, "layernam": 4, "readabl": [4, 6], "copyright": 5, "c": 5, "2023": [5, 19], "smilei": 5, "work": [5, 7, 19], "under": [5, 19], "creativ": [5, 19], "cc": [5, 7, 19], "BY": [5, 19], "summari": [5, 7], "below": 5, "follow": [5, 6, 7, 11, 16, 17], "legal": 5, "you": [5, 7, 15, 16, 18], "ar": [5, 6, 7, 16, 17], "free": [5, 6], "share": [5, 7, 17], "copi": [5, 7], "redistribut": 5, "materi": 5, "ani": [5, 15, 18], "medium": [5, 6], "adapt": 5, "remix": 5, "transform": 5, "build": 5, "upon": 5, "purpos": 5, "even": 5, "commerci": 5, "licensor": 5, "cannot": 5, "revok": 5, "freedom": 5, "long": 5, "term": 5, "must": 5, "give": [5, 6], "appropri": [5, 6], "credit": 5, "provid": [5, 6, 7, 17], "link": [5, 7, 16], "indic": [5, 6, 7], "chang": [5, 6], "were": 5, "made": 5, "mai": [5, 6, 7, 15, 18], "do": [5, 16], "so": [5, 6, 7, 16], "reason": [5, 8, 9, 10, 11, 12, 13, 14], "manner": 5, "wai": [5, 17], "suggest": 5, "endors": 5, "your": [5, 11, 15, 16, 19], "No": 5, "addit": [5, 6, 7, 15], "restrict": 5, "technolog": 5, "other": [5, 6, 7, 15, 17], "permit": 5, "corpor": 5, "law": 5, "firm": 5, "doe": [5, 6, 15], "servic": [5, 7], "advic": 5, "distribut": 5, "public": 5, "creat": [5, 7, 15, 17, 19], "lawyer": 5, "client": [5, 17], "relationship": 5, "make": [5, 7, 15], "its": [5, 6], "relat": 5, "basi": 5, "warranti": 5, "regard": 5, "condit": 5, "disclaim": 5, "all": [5, 6, 7, 16], "liabil": 5, "damag": 5, "fullest": 5, "extent": 5, "possibl": [5, 6, 7], "standard": [5, 6], "creator": 5, "right": [5, 6], "holder": 5, "origin": 5, "authorship": 5, "subject": [5, 7], "certain": 5, "consider": 5, "exhaust": 5, "form": [5, 6, 7], "part": [5, 6, 18], "our": 5, "intend": [5, 6, 13], "those": [5, 6], "author": 5, "permiss": 5, "irrevoc": 5, "should": [5, 7, 15], "understand": 5, "thei": [5, 6, 7], "choos": [5, 18], "also": [5, 6, 13, 15, 16, 17, 18, 19], "secur": 5, "necessari": [5, 15, 18], "reus": [5, 15], "expect": [5, 16], "clearli": 5, "mark": [5, 6], "except": [5, 15, 18], "limit": 5, "more": [5, 6, 7, 15, 18], "wiki": [5, 7], "creativecommon": 5, "org": [5, 7, 11, 16], "considerations_for_licensor": 5, "By": 5, "grant": 5, "If": [5, 6, 16], "": [5, 7, 15, 16, 18], "exampl": [5, 6, 7, 11, 17, 18], "becaus": 5, "regul": 5, "ha": [5, 7], "still": 5, "special": [5, 7], "request": 5, "ask": 5, "describ": [5, 7], "although": 5, "requir": [5, 7, 19], "encourag": 5, "considerations_for_license": 5, "exercis": 5, "agre": 5, "bound": 5, "To": [5, 16], "interpret": [5, 7, 19], "contract": 5, "benefit": 5, "receiv": 5, "section": [5, 7], "definit": 5, "mean": [5, 6], "deriv": 5, "base": [5, 6, 7, 15, 17], "translat": 5, "alter": 5, "arrang": [5, 6], "modifi": 5, "held": 5, "For": [5, 6, 15, 17], "music": 5, "perform": 5, "sound": 5, "record": 5, "alwai": [5, 6], "produc": 5, "synch": 5, "move": [5, 6], "b": 5, "contribut": 5, "close": 5, "without": [5, 7, 15, 19], "broadcast": 5, "sui": 5, "generi": 5, "databas": [5, 15, 17], "how": [5, 17], "label": [5, 6, 7], "categor": 5, "d": 5, "effect": [5, 15, 19], "absenc": 5, "proper": [5, 15], "circumv": 5, "fulfil": 5, "oblig": 5, "articl": [5, 17], "11": [5, 6, 7], "wipo": 5, "treati": 5, "adopt": 5, "decemb": 5, "20": 5, "1996": 5, "agreement": 5, "fair": 5, "deal": 5, "f": 5, "artist": 5, "literari": 5, "individu": 5, "entiti": 5, "process": [5, 6, 18], "reproduct": 5, "displai": 5, "dissemin": 5, "commun": 5, "import": [5, 19], "member": 5, "access": [5, 7], "place": [5, 6], "them": [5, 15], "j": [5, 17], "than": [5, 6, 17], "direct": [5, 6], "96": 5, "ec": 5, "european": 5, "parliament": 5, "council": 5, "march": 5, "amend": 5, "succeed": 5, "well": [5, 7], "essenti": [5, 6], "equival": [5, 7], "anywher": 5, "world": [5, 7], "k": [5, 7], "correspond": 5, "scope": 5, "herebi": 5, "worldwid": 5, "royalti": 5, "non": 5, "sublicens": 5, "exclus": [5, 11], "reproduc": 5, "whole": 5, "doubt": 5, "need": [5, 6, 15], "compli": 5, "3": [5, 6, 16, 17], "6": [5, 6, 7, 16], "media": 5, "technic": 5, "modif": [5, 15], "now": [5, 18], "known": 5, "hereaft": 5, "waiv": 5, "assert": 5, "forbid": 5, "simpli": [5, 7, 18], "never": 5, "downstream": 5, "recipi": [5, 7], "offer": [5, 15], "everi": 5, "automat": 5, "impos": 5, "differ": [5, 7], "noth": 5, "constitut": 5, "constru": 5, "impli": 5, "sponsor": 5, "offici": 5, "moral": 5, "integr": [5, 19], "nor": [5, 16], "privaci": 5, "person": 5, "howev": [5, 7, 15, 16], "patent": 5, "trademark": 5, "collect": 5, "through": 5, "societi": 5, "voluntari": 5, "waivabl": 5, "statutori": 5, "compulsori": 5, "scheme": [5, 19], "In": [5, 15, 16], "case": [5, 7, 15, 16], "expressli": 5, "reserv": [5, 6], "retain": 5, "suppli": [5, 7, 19], "identif": [5, 6, 7], "pseudonym": 5, "ii": 5, "notic": 5, "iii": 5, "refer": [5, 6, 7], "iv": 5, "v": [5, 7], "uri": [5, 18, 19], "hyperlink": 5, "practic": 5, "previou": [5, 6], "satisfi": 5, "context": 5, "remov": 5, "prevent": 5, "extract": [5, 16], "substanti": 5, "portion": 5, "content": [5, 6, 16, 18, 19], "supplement": 5, "unless": 5, "undertaken": 5, "THE": 5, "TO": 5, "AS": 5, "AND": 5, "NO": 5, "OR": 5, "OF": 5, "kind": 5, "concern": 5, "express": 5, "titl": 5, "merchant": 5, "fit": 5, "FOR": 5, "particular": 5, "infring": 5, "latent": 5, "defect": 5, "accuraci": 5, "presenc": 5, "NOT": 5, "discover": 5, "IN": 5, "event": [5, 6, 19], "WILL": 5, "BE": 5, "liabl": 5, "ON": 5, "theori": 5, "neglig": 5, "indirect": 5, "incident": 5, "consequenti": 5, "punit": 5, "exemplari": 5, "loss": 5, "cost": 5, "expens": 5, "aris": 5, "out": [5, 17], "IF": 5, "advis": [5, 7], "SUCH": 5, "abov": 5, "shall": [5, 6, 7], "most": [5, 7, 16], "approxim": [5, 6], "absolut": [5, 16], "waiver": 5, "termin": [5, 6, 19], "here": [5, 7], "fail": 5, "reinstat": 5, "date": 5, "violat": 5, "cure": 5, "within": [5, 6, 17], "dai": 5, "discoveri": 5, "affect": [5, 19], "seek": 5, "remedi": 5, "stop": 5, "surviv": 5, "state": [5, 7], "herein": 5, "independ": 5, "reduc": [5, 6], "could": 5, "lawfulli": 5, "provis": 5, "deem": 5, "unenforc": 5, "reform": 5, "enforc": 5, "remain": [5, 16], "failur": 5, "consent": 5, "privileg": 5, "immun": 5, "jurisdict": 5, "parti": 5, "notwithstand": 5, "elect": 5, "publish": 5, "consid": 5, "dedic": 5, "domain": 5, "cc0": 5, "polici": 5, "prior": 5, "written": 5, "unauthor": 5, "paragraph": 5, "contact": [5, 19], "quick": 6, "respons": 6, "two": [6, 17], "barcod": [6, 7], "invent": 6, "1994": 6, "compani": 6, "denso": 6, "wave": 6, "automobil": 6, "system": [6, 7, 11, 16], "wa": 6, "beyond": 6, "industri": 6, "due": 6, "fast": [6, 18], "greater": 6, "storag": 6, "compar": 6, "upc": 6, "specif": [6, 7, 16], "popular": [6, 19], "model": [6, 17], "internation": 6, "iso": 6, "iec": 6, "18004": 6, "consist": 6, "nomin": 6, "squar": 6, "overal": 6, "eas": [6, 7], "row": 6, "column": 6, "coordin": [6, 19], "count": 6, "downward": 6, "locat": [6, 7], "commenc": 6, "therefor": [6, 16], "upper": 6, "repres": 6, "confus": 6, "raster": [6, 10, 13], "screen": 6, "zero": 6, "determin": 6, "side": [6, 15], "length": [6, 7], "word": 6, "rang": 6, "21": [6, 7], "177": 6, "step": [6, 17], "calcul": 6, "tabl": 6, "com": [6, 7, 11, 16], "three": 6, "ident": [6, 7], "detect": 6, "lower": 6, "view": 6, "superimpos": 6, "concentr": 6, "preferenti": 6, "low": 6, "probabl": 6, "being": 6, "encount": 6, "elsewher": 6, "enabl": 6, "rapid": 6, "field": [6, 7], "compris": 6, "unambigu": 6, "orient": 6, "fix": [6, 15], "softwar": 6, "resynchronis": 6, "moder": 6, "amount": 6, "distort": 6, "central": 6, "larger": 6, "wide": 6, "altern": [6, 7, 15], "end": [6, 7], "run": [6, 16], "across": [6, 16], "between": 6, "similarli": 6, "down": 6, "hand": 6, "densiti": 6, "datum": 6, "rest": 6, "surround": 6, "four": 6, "Its": 6, "equal": 6, "codeword": 6, "bottom": 6, "proceed": 6, "upward": 6, "reach": 6, "next": 6, "immedi": 6, "continu": 6, "whenev": 6, "edg": 6, "unus": 6, "wikipedia": [6, 7], "thonki": 6, "tutori": 6, "18": [6, 17], "sequenc": 6, "12": 6, "bch": 6, "10": [6, 7], "It": [6, 7, 17, 18], "remaind": 6, "method": [6, 7, 19], "identifi": [6, 7], "0001": 6, "digit": [6, 7], "0010": 6, "0100": 6, "1000": 6, "1101": 6, "structur": 6, "append": 6, "0011": 6, "split": 6, "messag": [6, 7], "multipl": [6, 11], "up": [6, 16, 17], "16": 6, "0111": 6, "select": 6, "fnc1": 6, "first": [6, 19], "0101": 6, "128": 6, "zxing": [6, 7, 17], "issu": [6, 16], "1373": 6, "second": [6, 7], "1001": 6, "0000": 6, "gb": 6, "t": [6, 7, 18], "18284": 6, "stream": 6, "vari": 6, "variabl": 6, "charcount": 6, "total": 6, "pariti": 6, "assign": 6, "payload": 6, "lenght": 6, "26": 6, "27": [6, 7], "14": 6, "8859": 6, "latin": 6, "24": 6, "preced": [6, 7], "id": 6, "127": 6, "16383": 6, "16384": 6, "999999": 6, "optim": 6, "usag": [6, 18], "basic": [6, 16], "bitstream": 6, "n": [6, 7, 8, 9, 10, 11, 12, 13, 14], "reed": 6, "solomon": 6, "reader": [6, 7, 17, 18, 19], "detail": [6, 7], "breakdown": 6, "versu": 6, "higher": 6, "less": 6, "list": [6, 7, 16], "capabl": 6, "short": 6, "01": 6, "00": 6, "quartil": 6, "high": [6, 18], "shown": 6, "max": 6, "23648": 6, "7089": 6, "4296": 6, "2953": 6, "1817": 6, "18672": 6, "5596": 6, "3391": 6, "2331": 6, "1435": 6, "13328": 6, "3993": 6, "2420": 6, "1663": 6, "1024": 6, "10208": 6, "3057": 6, "1852": 6, "1273": 6, "784": 6, "store": [6, 15], "subset": 6, "xore": 6, "evenli": 6, "balanc": 6, "occurr": 6, "would": [6, 7], "interfer": 6, "done": 6, "lowest": 6, "penalti": 6, "score": 6, "final": 6, "dure": 6, "rule": 6, "find": [6, 16], "repetit": 6, "cell": [6, 7], "00000": 6, "11111": 6, "consecut": 6, "black": 6, "ratio": 6, "far": 6, "50": 6, "mod": 6, "001": 6, "010": 6, "011": 6, "intdiv": 6, "101": 6, "110": 6, "111": 6, "either": [6, 7, 17], "brief": 7, "perhap": 7, "sure": [7, 15], "properli": 7, "en": 7, "some": [7, 15, 17, 18], "open": [7, 16], "vendor": [7, 16, 18], "youtub": 7, "app": 7, "www": 7, "watch": 7, "dqw4w9wgxcq": 7, "what": 7, "mozilla": 7, "ensur": 7, "paramet": [7, 15], "ad": [7, 15], "queri": 7, "addr": 7, "bcc": 7, "bodi": 7, "address": 7, "hello": 7, "20world": 7, "messagewith": 7, "20i": 7, "20the": 7, "20messag": 7, "20bodi": 7, "carbon": 7, "blind": 7, "adress": 7, "element": 7, "comma": 7, "rfc": 7, "3986": 7, "addr1": 7, "addr2": 7, "6068": 7, "email": 7, "devic": 7, "dialer": 7, "invok": [7, 15], "999": 7, "123": 7, "456": 7, "7890": 7, "complet": 7, "telephon": 7, "sould": 7, "countri": 7, "hyphen": 7, "sm": 7, "fax": 7, "deprec": [7, 17, 19], "favor": 7, "3966": 7, "nation": 7, "convent": 7, "write": 7, "googl": [7, 17], "libphonenumb": 7, "port": [7, 17], "geograph": 7, "altitud": 7, "latitud": 7, "longitud": 7, "cr": 7, "u": 7, "num": 7, "wg": 7, "84": 7, "decim": 7, "meter": 7, "uncertainti": 7, "z": 7, "zoom": 7, "local": 7, "search": 7, "47": 7, "620521": 7, "122": 7, "349293": 7, "988056": 7, "86": 7, "925278": 7, "8848": 7, "373333": 7, "142": 7, "591667": 7, "10920": 7, "37": 7, "786971": 7, "399677": 7, "moon": 7, "2011": 7, "35": 7, "5870": 7, "uniform": 7, "secret": [7, 18], "issuer": [7, 18], "param": 7, "elemet": 7, "mandatori": 7, "strongi": 7, "totp": [7, 18], "hotp": 7, "counter": 7, "account": 7, "kei": [7, 15], "associ": 7, "colon": 7, "cryptograph": 7, "random": 7, "base32": 7, "3548": 7, "pad": 7, "hexadecim": 7, "algorithm": 7, "hash": [7, 16], "sha1": 7, "sha256": 7, "sha512": 7, "otp": 7, "period": 7, "jbswy3dpehpk3pxp": 7, "42": 7, "3atim": 7, "60": 7, "4226": 7, "hmac": 7, "One": 7, "password": 7, "6238": 7, "wi": 7, "fi": 7, "syntax": [7, 16], "look": [7, 18], "wifi": 7, "ssid": 7, "p": 7, "hidden": 7, "wep": 7, "wpa": 7, "wpa2": 7, "eap": 7, "nopass": 7, "omit": 7, "ignor": 7, "enclos": 7, "quot": 7, "ascii": 7, "hex": 7, "abcd1234": 7, "escap": 7, "backslash": 7, "wpa3": 7, "pleas": [7, 11, 16, 17], "anonym": 7, "like": [7, 16, 18], "ttl": 7, "pwd": 7, "ph2": 7, "phase": 7, "mschapv2": 7, "utf": [7, 15], "present": [7, 15], "sae": 7, "der": 7, "asn": 7, "subjectpublickeyinfo": 7, "pk": 7, "r": 7, "transit": 7, "disabl": 7, "mynetworkwihoutpassword": 7, "myhiddenwpanetwork": 7, "password123": 7, "myhiddenwpa2network": 7, "commonli": 7, "exchang": 7, "too": 7, "complex": 7, "fulli": 7, "explain": 7, "just": [7, 15], "bare": 7, "begin": 7, "fn": 7, "gender": 7, "o": 7, "home": 7, "adr": 7, "line1": 7, "line2": 7, "street": 7, "citi": 7, "zip": [7, 16], "tz": 7, "photo": 7, "categori": 7, "6350": 7, "ontologi": 7, "peopl": 7, "organ": 7, "w3c": 7, "vobject": 7, "librari": [7, 17, 19], "formerli": 7, "prodid": 7, "spati": 7, "laracon": 7, "onlin": 7, "wr": 7, "calnam": 7, "vevent": 7, "uid": 7, "5ef5c3f64cb2c": 7, "dtstamp": 7, "tzid": 7, "utc": 7, "20200626t094630": 7, "feed": 7, "dtstart": 7, "20190306t150000z": 7, "dtend": 7, "20190306t160000z": 7, "20190419t135034z": 7, "5545": 7, "internet": 7, "schedul": 7, "core": [7, 17], "encapsul": [8, 17], "postscript": [8, 17], "properti": [8, 9, 10, 11, 12, 13, 14, 15, 19], "portabl": 9, "pdf": [9, 17], "gdimag": [10, 11, 16, 17], "graphic": [10, 13], "gif": 10, "jpg": 10, "instal": [11, 17, 19], "guid": [11, 16, 18], "oper": [11, 16], "script": [11, 16], "download": [11, 16], "ext": [11, 16, 17], "window": [11, 16], "imagickdemo": 11, "cheap": 12, "scalabl": 13, "vector": 13, "achiev": 13, "discuss": 13, "199": 13, "comment": 13, "plain": [14, 17], "behav": 15, "stdclass": 15, "new": [15, 16, 18], "foo": 15, "bar": 15, "retriev": 15, "var_dump": 15, "thrown": 15, "take": 15, "pair": 15, "setter": 15, "myoption": 15, "json_throw_on_error": 15, "json_encod": 15, "overwriten": 15, "mycustomopt": 15, "myparam": 15, "defaultvalu": 15, "flexibl": [15, 17], "approach": 15, "mycustomoptionstrait": 15, "magic": [15, 19], "set_myparam": 15, "trim": 15, "getter": 15, "get_myparam": 15, "strtoupper": 15, "whatev": [15, 16], "fly": 15, "asid": 15, "invoc": 15, "again": 15, "backreferenc": 15, "overrid": 15, "printf": [15, 18], "img": [15, 18], "src": [15, 18], "alt": [15, 18], "readerresult": 15, "manual": 15, "mycustomoutput": 15, "qrmarkupsvg": [15, 19], "ideal": 15, "ini": 15, "internal_encod": 15, "default_charset": 15, "mbstring": [15, 16, 17], "mb_internal_encod": 15, "numericdata": 15, "alphanumdata": 15, "kanjidata": 15, "hanzidata": 15, "binarydata": 15, "ecicharset": 15, "encodedecidata": 15, "implemend": 15, "come": 15, "handi": 15, "input": [15, 18], "beforehand": 15, "throw": [15, 18], "invalid": 15, "might": 15, "packag": [16, 17], "complain": 16, "about": 16, "monopol": 16, "we": [16, 18], "ve": 16, "dev": 16, "main": [16, 18, 19], "constraint": 16, "releas": 16, "want": [16, 18], "keep": 16, "commit": 16, "unforseen": 16, "cb69751c3bc090a7fdd2f2601bbe10f28d225f10": 16, "older": 16, "suit": [16, 17], "platform": 16, "v2": 16, "unchang": 16, "throughout": 16, "v5": 16, "verifi": 16, "deploi": 16, "f15b0afe9d4128bf734c3bf1bcffae72bf7b3e53": 16, "desir": 16, "project": [16, 17], "folder": [16, 18], "root": 16, "directori": 16, "autoload": [16, 18], "profit": 16, "recommend": 16, "With": 16, "said": 16, "ll": 16, "leav": 16, "choic": 16, "repo": 16, "packagist": 16, "good": [16, 18], "luck": 16, "v3": 16, "branch": 16, "ye": 16, "fileinfo": [16, 17], "v4": [16, 17], "php8": 16, "v1": 16, "let": 16, "die": 16, "psa": 16, "longer": 16, "kazuhiko": 17, "aras": 17, "namespac": 17, "clean": 17, "improv": 17, "stuff": 17, "combin": 17, "gbt18284": 17, "2000": 17, "easili": 17, "extens": [17, 19], "setasign": 17, "drupal": 17, "factor": 17, "authent": [17, 18, 19], "tfa": 17, "login": 17, "ga_login": 17, "symfoni": 17, "phpqrcode": 17, "bundl": 17, "wordpress": 17, "wp": 17, "auth": 17, "simpl": 17, "2fa": 17, "button": 17, "woltlab": 17, "verif": 17, "appwrit": 17, "cachet": 17, "g\u00e9ant": 17, "cat": 17, "openitcockpit": 17, "twill": 17, "elef": 17, "twilio": 17, "hi": 17, "my": 17, "cooler": 17, "javascript": 17, "httpinterfac": 17, "psr": 17, "implemet": 17, "oauth": 17, "bunch": 17, "querybuild": 17, "mysql": 17, "postgr": 17, "sqlite": 17, "mssql": 17, "firebird": 17, "tootbot": 17, "mastodon": 17, "bot": 17, "require_onc": 18, "__dir__": 18, "mobil": [18, 19], "otpauth": [18, 19], "b3jx4vcvjdvnxnz5": 18, "net": 18, "echo": 18, "advanc": [18, 19], "depth": 18, "pretti": 18, "straight": 18, "forward": 18, "try": 18, "catch": 18, "throwabl": 18, "handl": 18, "cast": 18, "idea": 18, "wrap": 18, "occur": 18, "especi": 18, "subroutin": 18, "caus": 18, "cpu": 18, "load": [18, 19], "oh": 18, "hei": 18, "don": 18, "forget": 18, "sanit": 18, "user": 18, "edit": 19, "updat": 19, "sep": 19, "03": 19, "licens": 19, "overview": 19, "featur": 19, "framework": 19, "shameless": 19, "advertis": 19, "compos": 19, "quickstart": 19, "configur": 19, "extend": 19, "qrep": 19, "qrmarkuphtml": 19, "qrstring": 19, "terminologi": 19, "region": 19, "darkmodul": 19, "channel": 19, "capac": 19, "evalu": 19, "url": 19, "http": 19, "mail": 19, "mailto": 19, "phone": 19, "tel": 19, "geo": 19, "wireless": 19, "network": 19, "vcard": 19, "calendar": 19, "vcalendar": 19, "icalendar": 19}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"decoderresult": 0, "method": [0, 1, 2, 3, 4, 15], "magic": 0, "properti": [0, 3], "read": [0, 18], "onli": 0, "qrcode": [1, 15, 19], "deprec": [1, 2], "constant": [1, 2, 4], "qrmatrix": [2, 15], "qroption": [3, 15], "qroutputinterfac": 4, "licens": 5, "terminologi": 6, "qr": [6, 15, 18], "code": [6, 15, 18], "matrix": 6, "modul": [6, 8, 9, 10, 11, 12, 13, 14, 19], "version": [6, 16], "function": 6, "pattern": 6, "finder": 6, "align": 6, "time": 6, "separ": 6, "quiet": 6, "zone": 6, "encod": 6, "region": 6, "data": 6, "inform": [6, 7], "format": 6, "darkmodul": 6, "mode": [6, 15], "segment": 6, "extend": [6, 15], "channel": 6, "interpret": 6, "eci": 6, "mix": [6, 15], "ecc": 6, "error": 6, "correct": 6, "level": 6, "maximum": 6, "capac": 6, "mask": 6, "evalu": 6, "reflect": 6, "popular": 7, "content": 7, "uri": 7, "scheme": 7, "url": 7, "http": 7, "e": 7, "mail": 7, "mailto": 7, "phone": 7, "number": 7, "tel": 7, "geo": 7, "coordin": 7, "mobil": 7, "authent": 7, "otpauth": 7, "wireless": 7, "network": 7, "configur": [7, 15, 18], "contact": 7, "vcard": 7, "calendar": 7, "event": 7, "vcalendar": 7, "icalendar": 7, "see": 7, "also": 7, "qrep": 8, "option": [8, 9, 10, 11, 12, 13, 14, 15], "affect": [8, 9, 10, 11, 12, 13, 14], "thi": [8, 9, 10, 11, 12, 13, 14, 16], "have": [8, 9, 10, 11, 12, 13, 14], "effect": [8, 9, 10, 11, 12, 13, 14], "qrfpdf": 9, "qrgdimag": 10, "qrimagick": 11, "qrmarkuphtml": 12, "qrmarkupsvg": 13, "qrstring": 14, "advanc": 15, "usag": [15, 19], "via": 15, "suppli": 15, "an": 15, "iter": 15, "load": 15, "save": 15, "json": [15, 16], "class": 15, "file": 15, "render": 15, "instanc": 15, "reader": 15, "instal": 16, "compos": 16, "switch": 16, "termin": 16, "manual": [16, 19], "can": 16, "i": 16, "us": 16, "librari": [16, 18], "without": 16, "support": 16, "php": [16, 19], "extens": 16, "requir": [16, 17], "imagemagick": 16, "overview": 17, "featur": 17, "framework": 17, "integr": 17, "shameless": 17, "advertis": 17, "quickstart": 18, "import": 18, "creat": 18, "your": 18, "first": 18, "note": 18, "built": 19, "In": 19, "output": 19, "public": 19, "api": 19, "appendix": 19}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"DecoderResult": [[0, "decoderresult"]], "Methods": [[0, "methods"], [1, "methods"], [2, "methods"], [3, "methods"], [4, "methods"]], "Magic Properties (read-only)": [[0, "magic-properties-read-only"]], "QRCode": [[1, "qrcode"]], "Deprecated methods": [[1, "deprecated-methods"], [2, "deprecated-methods"]], "Constants": [[1, "constants"], [2, "constants"], [4, "constants"]], "Deprecated constants": [[1, "deprecated-constants"]], "QRMatrix": [[2, "qrmatrix"]], "QROptions": [[3, "qroptions"]], "Properties": [[3, "properties"]], "QROutputInterface": [[4, "qroutputinterface"]], "License": [[5, "license"]], "Terminology": [[6, "terminology"]], "QR Code": [[6, "qr-code"]], "Matrix": [[6, "matrix"]], "Module": [[6, "module"]], "Version": [[6, "version"]], "Function Patterns": [[6, "function-patterns"]], "Finder Pattern": [[6, "finder-pattern"]], "Alignment Pattern": [[6, "alignment-pattern"]], "Timing Pattern": [[6, "timing-pattern"]], "Separators": [[6, "separators"]], "Quiet Zone": [[6, "quiet-zone"]], "Encoding Region": [[6, "encoding-region"]], "Data": [[6, "data"]], "Version Information": [[6, "version-information"]], "Format Information": [[6, "format-information"]], "Darkmodule": [[6, "darkmodule"]], "Mode": [[6, "mode"]], "Segment": [[6, "segment"]], "Extended Channel Interpretation (ECI)": [[6, "extended-channel-interpretation-eci"]], "Mixed Mode": [[6, "mixed-mode"]], "ECC (Error Correction Coding)": [[6, "ecc-error-correction-coding"]], "ECC Level": [[6, "ecc-level"]], "Maximum data capacity": [[6, "maximum-data-capacity"]], "Data masking": [[6, "data-masking"]], "Evaluation": [[6, "evaluation"]], "Mask pattern": [[6, "mask-pattern"]], "Reflectance": [[6, "reflectance"]], "Popular content and URI schemes": [[7, "popular-content-and-uri-schemes"]], "URL https": [[7, "url-https"]], "E-Mail mailto": [[7, "e-mail-mailto"]], "Phone numbers tel": [[7, "phone-numbers-tel"]], "Geo Coordinates geo": [[7, "geo-coordinates-geo"]], "Mobile Authenticators otpauth": [[7, "mobile-authenticators-otpauth"]], "Wireless Network configuration": [[7, "wireless-network-configuration"]], "Contact information: vCard": [[7, "contact-information-vcard"]], "Calendar Events: vCalendar and iCalendar": [[7, "calendar-events-vcalendar-and-icalendar"]], "See also": [[7, "see-also"]], "QREps": [[8, "qreps"]], "Options that affect this module": [[8, "options-that-affect-this-module"], [9, "options-that-affect-this-module"], [10, "options-that-affect-this-module"], [11, "options-that-affect-this-module"], [12, "options-that-affect-this-module"], [13, "options-that-affect-this-module"], [14, "options-that-affect-this-module"]], "Options that have no effect": [[8, "options-that-have-no-effect"], [9, "options-that-have-no-effect"], [10, "options-that-have-no-effect"], [11, "options-that-have-no-effect"], [12, "options-that-have-no-effect"], [13, "options-that-have-no-effect"], [14, "options-that-have-no-effect"]], "QRFpdf": [[9, "qrfpdf"]], "QRGdImage": [[10, "qrgdimage"]], "QRImagick": [[11, "qrimagick"]], "QRMarkupHTML": [[12, "qrmarkuphtml"]], "QRMarkupSVG": [[13, "qrmarkupsvg"]], "QRString": [[14, "qrstring"]], "Advanced usage": [[15, "advanced-usage"]], "Configuration via QROptions": [[15, "configuration-via-qroptions"]], "Supply an iterable of options": [[15, "supply-an-iterable-of-options"]], "Load and save JSON": [[15, "load-and-save-json"]], "Extending the QROptions class": [[15, "extending-the-qroptions-class"]], "QRCode methods": [[15, "qrcode-methods"]], "Save to file": [[15, "save-to-file"]], "Render a QRMatrix instance": [[15, "render-a-qrmatrix-instance"]], "Mixed mode": [[15, "mixed-mode"]], "QR Code reader": [[15, "qr-code-reader"]], "Installation": [[16, "installation"]], "Installation with Composer": [[16, "installation-with-composer"]], "composer.json": [[16, "composer-json"]], "Version switch": [[16, "version-switch"]], "Terminal": [[16, "terminal"]], "Manual installation": [[16, "manual-installation"]], "Can i use this library without using composer?": [[16, "can-i-use-this-library-without-using-composer"]], "Supported PHP versions & extension requirements": [[16, "supported-php-versions-extension-requirements"]], "ImageMagick": [[16, "imagemagick"]], "Overview": [[17, "overview"]], "Features": [[17, "features"]], "Requirements": [[17, "requirements"]], "Framework Integration": [[17, "framework-integration"]], "Shameless advertising": [[17, "shameless-advertising"]], "Quickstart": [[18, "quickstart"]], "Import the library": [[18, "import-the-library"]], "Create your first QR Code": [[18, "create-your-first-qr-code"]], "Configuration": [[18, "configuration"]], "Reading QR Codes": [[18, "reading-qr-codes"]], "Notes": [[18, "notes"]], "PHP-QRCode Manual": [[19, "php-qrcode-manual"]], "Usage": [[19, null]], "Built-In Output Modules": [[19, null]], "Public API": [[19, null]], "Appendix": [[19, null]]}, "indexentries": {}}) \ No newline at end of file