* switch to composer for qrcode and otp dependencies
* move most OTP-related stuff into userhelper * remove old phpqrcode and otphp libraries
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
use chillerlan\QRCode;
|
||||
|
||||
class Pref_Prefs extends Handler_Protected {
|
||||
|
||||
@@ -313,7 +314,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
$authenticator = false;
|
||||
}
|
||||
|
||||
$otp_enabled = $this->is_otp_enabled();
|
||||
$otp_enabled = UserHelper::is_otp_enabled($_SESSION["uid"]);
|
||||
|
||||
if ($authenticator && method_exists($authenticator, "change_password")) {
|
||||
?>
|
||||
@@ -406,20 +407,8 @@ class Pref_Prefs extends Handler_Protected {
|
||||
<?php
|
||||
}
|
||||
|
||||
private function is_otp_enabled() {
|
||||
$sth = $this->pdo->prepare("SELECT otp_enabled FROM ttrss_users
|
||||
WHERE id = ?");
|
||||
$sth->execute([$_SESSION["uid"]]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
return sql_bool_to_bool($row["otp_enabled"]);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private function index_auth_2fa() {
|
||||
$otp_enabled = $this->is_otp_enabled();
|
||||
$otp_enabled = UserHelper::is_otp_enabled($_SESSION["uid"]);
|
||||
|
||||
if ($_SESSION["auth_module"] == "auth_internal") {
|
||||
if ($otp_enabled) {
|
||||
@@ -469,14 +458,13 @@ class Pref_Prefs extends Handler_Protected {
|
||||
|
||||
if (function_exists("imagecreatefromstring")) {
|
||||
print "<h3>" . __("Scan the following code by the Authenticator application or copy the key manually") . "</h3>";
|
||||
$csrf_token_hash = sha1($_SESSION["csrf_token"]);
|
||||
print "<img alt='otp qr-code' src='backend.php?op=pref-prefs&method=otpqrcode&csrf_token_hash=$csrf_token_hash'>";
|
||||
print "<img src=".($this->_get_otp_qrcode_img()).">";
|
||||
} else {
|
||||
print_error("PHP GD functions are required to generate QR codes.");
|
||||
print "<h3>" . __("Use the following OTP key with a compatible Authenticator application") . "</h3>";
|
||||
}
|
||||
|
||||
$otp_secret = $this->otpsecret();
|
||||
$otp_secret = UserHelper::get_otp_secret($_SESSION["uid"]);
|
||||
?>
|
||||
|
||||
<form dojoType='dijit.form.Form'>
|
||||
@@ -990,90 +978,39 @@ class Pref_Prefs extends Handler_Protected {
|
||||
$_SESSION["prefs_show_advanced"] = !$_SESSION["prefs_show_advanced"];
|
||||
}
|
||||
|
||||
function otpsecret() {
|
||||
$sth = $this->pdo->prepare("SELECT salt, otp_enabled
|
||||
FROM ttrss_users
|
||||
WHERE id = ?");
|
||||
$sth->execute([$_SESSION['uid']]);
|
||||
function _get_otp_qrcode_img() {
|
||||
$secret = UserHelper::get_otp_secret($_SESSION["uid"]);
|
||||
$login = UserHelper::get_login_by_id($_SESSION["uid"]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
$otp_enabled = sql_bool_to_bool($row["otp_enabled"]);
|
||||
if ($secret && $login) {
|
||||
$qrcode = new \chillerlan\QRCode\QRCode();
|
||||
|
||||
if (!$otp_enabled) {
|
||||
$base32 = new \OTPHP\Base32();
|
||||
$secret = $base32->encode(mb_substr(sha1($row["salt"]), 0, 12), false);
|
||||
$otpurl = "otpauth://totp/".urlencode($login)."?secret=$secret&issuer=".urlencode("Tiny Tiny RSS");
|
||||
|
||||
return $secret;
|
||||
}
|
||||
return $qrcode->render($otpurl);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function otpqrcode() {
|
||||
$csrf_token_hash = clean($_REQUEST["csrf_token_hash"]);
|
||||
|
||||
if (sha1($_SESSION["csrf_token"]) === $csrf_token_hash) {
|
||||
require_once "lib/phpqrcode/phpqrcode.php";
|
||||
|
||||
$sth = $this->pdo->prepare("SELECT login
|
||||
FROM ttrss_users
|
||||
WHERE id = ?");
|
||||
$sth->execute([$_SESSION['uid']]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
$secret = $this->otpsecret();
|
||||
$login = $row['login'];
|
||||
|
||||
if ($secret) {
|
||||
QRcode::png("otpauth://totp/".urlencode($login).
|
||||
"?secret=$secret&issuer=".urlencode("Tiny Tiny RSS"));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
header("Content-Type: text/json");
|
||||
print Errors::to_json(Errors::E_UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
function otpenable() {
|
||||
|
||||
$password = clean($_REQUEST["password"]);
|
||||
$otp = clean($_REQUEST["otp"]);
|
||||
$otp_check = clean($_REQUEST["otp"]);
|
||||
|
||||
$authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
|
||||
|
||||
if ($authenticator->check_password($_SESSION["uid"], $password)) {
|
||||
|
||||
$secret = $this->otpsecret();
|
||||
|
||||
if ($secret) {
|
||||
|
||||
$base32 = new \OTPHP\Base32();
|
||||
|
||||
$topt = new \OTPHP\TOTP($secret);
|
||||
|
||||
$otp_check = $topt->now();
|
||||
|
||||
if ($otp == $otp_check) {
|
||||
$sth = $this->pdo->prepare("UPDATE ttrss_users
|
||||
SET otp_enabled = true WHERE id = ?");
|
||||
|
||||
$sth->execute([$_SESSION['uid']]);
|
||||
|
||||
print "OK";
|
||||
} else {
|
||||
print "ERROR:".__("Incorrect one time password");
|
||||
}
|
||||
if (UserHelper::enable_otp($_SESSION["uid"], $otp_check)) {
|
||||
print "OK";
|
||||
} else {
|
||||
print "ERROR:".__("Incorrect one time password");
|
||||
}
|
||||
|
||||
} else {
|
||||
print "ERROR:".__("Incorrect password");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static function isdefaultpassword() {
|
||||
static function _is_default_password() {
|
||||
$authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
|
||||
|
||||
if ($authenticator &&
|
||||
@@ -1116,9 +1053,7 @@ class Pref_Prefs extends Handler_Protected {
|
||||
"message" => $message]);
|
||||
}
|
||||
|
||||
$sth = $this->pdo->prepare("UPDATE ttrss_users SET otp_enabled = false WHERE
|
||||
id = ?");
|
||||
$sth->execute([$_SESSION['uid']]);
|
||||
UserHelper::disable_otp($_SESSION["uid"]);
|
||||
|
||||
print "OK";
|
||||
} else {
|
||||
|
||||
@@ -439,7 +439,7 @@ class RPC extends Handler_Protected {
|
||||
$params["default_view_limit"] = (int) get_pref(Prefs::_DEFAULT_VIEW_LIMIT);
|
||||
$params["default_view_order_by"] = get_pref(Prefs::_DEFAULT_VIEW_ORDER_BY);
|
||||
$params["bw_limit"] = (int) $_SESSION["bw_limit"];
|
||||
$params["is_default_pw"] = Pref_Prefs::isdefaultpassword();
|
||||
$params["is_default_pw"] = Pref_Prefs::_is_default_password();
|
||||
$params["label_base_index"] = LABEL_BASE_INDEX;
|
||||
|
||||
$theme = get_pref(Prefs::USER_CSS_THEME);
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<?php
|
||||
use OTPHP\TOTP;
|
||||
|
||||
class UserHelper {
|
||||
|
||||
static function authenticate(string $login = null, string $password = null, bool $check_only = false, string $service = null) {
|
||||
@@ -141,14 +143,29 @@ class UserHelper {
|
||||
|
||||
}
|
||||
|
||||
static function get_user_ip() {
|
||||
static function get_user_ip() : string {
|
||||
foreach (["HTTP_X_REAL_IP", "REMOTE_ADDR"] as $hdr) {
|
||||
if (isset($_SERVER[$hdr]))
|
||||
return $_SERVER[$hdr];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static function find_user_by_login(string $login) {
|
||||
static function get_login_by_id(int $id) : string {
|
||||
$pdo = Db::pdo();
|
||||
|
||||
$sth = $pdo->prepare("SELECT login FROM ttrss_users WHERE id = ?");
|
||||
$sth->execute([$id]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
return $row["login"];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static function find_user_by_login(string $login) : int {
|
||||
$pdo = Db::pdo();
|
||||
|
||||
$sth = $pdo->prepare("SELECT id FROM ttrss_users WHERE
|
||||
@@ -159,7 +176,7 @@ class UserHelper {
|
||||
return $row["id"];
|
||||
}
|
||||
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
static function logout() {
|
||||
@@ -203,4 +220,60 @@ class UserHelper {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
static function check_otp(int $owner_uid, int $otp_check) : bool {
|
||||
$otp = TOTP::create(self::get_otp_secret($owner_uid, true));
|
||||
|
||||
return $otp->now() == $otp_check;
|
||||
}
|
||||
|
||||
static function disable_otp(int $owner_uid) : bool {
|
||||
$sth = Db::pdo()->prepare("UPDATE ttrss_users SET otp_enabled = false WHERE id = ?");
|
||||
$sth->execute([$owner_uid]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static function enable_otp(int $owner_uid, int $otp_check) : bool {
|
||||
$secret = self::get_otp_secret($owner_uid);
|
||||
|
||||
if ($secret) {
|
||||
$otp = TOTP::create($secret);
|
||||
|
||||
if ($otp->now() == $otp_check) {
|
||||
$sth = Db::pdo()->prepare("UPDATE ttrss_users
|
||||
SET otp_enabled = true WHERE id = ?");
|
||||
|
||||
$sth->execute([$owner_uid]);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static function is_otp_enabled(int $owner_uid) : bool {
|
||||
$sth = Db::pdo()->prepare("SELECT otp_enabled FROM ttrss_users WHERE id = ?");
|
||||
$sth->execute([$owner_uid]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
return sql_bool_to_bool($row["otp_enabled"]);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static function get_otp_secret(int $owner_uid, bool $show_if_enabled = false) : string {
|
||||
$sth = Db::pdo()->prepare("SELECT salt, otp_enabled FROM ttrss_users WHERE id = ?");
|
||||
$sth->execute([$owner_uid]);
|
||||
|
||||
if ($row = $sth->fetch()) {
|
||||
if (!sql_bool_to_bool($row["otp_enabled"]) || $show_if_enabled) {
|
||||
return \ParagonIE\ConstantTime\Base32::encodeUpperUnpadded(mb_substr(sha1($row["salt"]), 0, 12));
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
6
composer.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"require": {
|
||||
"spomky-labs/otphp": "^10.0",
|
||||
"chillerlan/php-qrcode": "^3.3"
|
||||
}
|
||||
}
|
||||
495
composer.lock
generated
Normal file
@@ -0,0 +1,495 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "51b3544b18f6b9f21242d9f647e29fcb",
|
||||
"packages": [
|
||||
{
|
||||
"name": "beberlei/assert",
|
||||
"version": "v3.2.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/beberlei/assert.git",
|
||||
"reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/beberlei/assert/zipball/d63a6943fc4fd1a2aedb65994e3548715105abcf",
|
||||
"reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-ctype": "*",
|
||||
"ext-json": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-simplexml": "*",
|
||||
"php": "^7"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "*",
|
||||
"phpstan/phpstan-shim": "*",
|
||||
"phpunit/phpunit": ">=6.0.0 <8"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Assert\\": "lib/Assert"
|
||||
},
|
||||
"files": [
|
||||
"lib/Assert/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-2-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de",
|
||||
"role": "Lead Developer"
|
||||
},
|
||||
{
|
||||
"name": "Richard Quadling",
|
||||
"email": "rquadling@gmail.com",
|
||||
"role": "Collaborator"
|
||||
}
|
||||
],
|
||||
"description": "Thin assertion library for input validation in business models.",
|
||||
"keywords": [
|
||||
"assert",
|
||||
"assertion",
|
||||
"validation"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/beberlei/assert/issues",
|
||||
"source": "https://github.com/beberlei/assert/tree/v3"
|
||||
},
|
||||
"time": "2019-12-19T17:51:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "chillerlan/php-qrcode",
|
||||
"version": "3.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/chillerlan/php-qrcode.git",
|
||||
"reference": "d8bf297e6843a53aeaa8f3285ce04fc349d133d6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/d8bf297e6843a53aeaa8f3285ce04fc349d133d6",
|
||||
"reference": "d8bf297e6843a53aeaa8f3285ce04fc349d133d6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"chillerlan/php-settings-container": "^1.2",
|
||||
"ext-mbstring": "*",
|
||||
"php": "^7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5",
|
||||
"setasign/fpdf": "^1.8.2"
|
||||
},
|
||||
"suggest": {
|
||||
"chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.",
|
||||
"setasign/fpdf": "Required to use the QR FPDF output."
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"chillerlan\\QRCode\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kazuhiko Arase",
|
||||
"homepage": "https://github.com/kazuhikoarase"
|
||||
},
|
||||
{
|
||||
"name": "Smiley",
|
||||
"email": "smiley@chillerlan.net",
|
||||
"homepage": "https://github.com/codemasher"
|
||||
},
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/chillerlan/php-qrcode/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A QR code generator. PHP 7.2+",
|
||||
"homepage": "https://github.com/chillerlan/php-qrcode",
|
||||
"keywords": [
|
||||
"phpqrcode",
|
||||
"qr",
|
||||
"qr code",
|
||||
"qrcode",
|
||||
"qrcode-generator"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/chillerlan/php-qrcode/issues",
|
||||
"source": "https://github.com/chillerlan/php-qrcode/tree/3.4.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://ko-fi.com/codemasher",
|
||||
"type": "ko_fi"
|
||||
}
|
||||
],
|
||||
"time": "2020-11-18T20:51:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "chillerlan/php-settings-container",
|
||||
"version": "1.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/chillerlan/php-settings-container.git",
|
||||
"reference": "b9b0431dffd74102ee92348a63b4c33fc8ba639b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/b9b0431dffd74102ee92348a63b4c33fc8ba639b",
|
||||
"reference": "b9b0431dffd74102ee92348a63b4c33fc8ba639b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": "^7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.3"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"chillerlan\\Settings\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Smiley",
|
||||
"email": "smiley@chillerlan.net",
|
||||
"homepage": "https://github.com/codemasher"
|
||||
}
|
||||
],
|
||||
"description": "A container class for immutable settings objects. Not a DI container. PHP 7.2+",
|
||||
"homepage": "https://github.com/chillerlan/php-settings-container",
|
||||
"keywords": [
|
||||
"PHP7",
|
||||
"Settings",
|
||||
"container",
|
||||
"helper"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/chillerlan/php-settings-container/issues",
|
||||
"source": "https://github.com/chillerlan/php-settings-container"
|
||||
},
|
||||
"time": "2019-09-10T00:09:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/constant_time_encoding",
|
||||
"version": "v2.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
||||
"reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
|
||||
"reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7|^8"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6|^7|^8|^9",
|
||||
"vimeo/psalm": "^1|^2|^3|^4"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"ParagonIE\\ConstantTime\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Paragon Initiative Enterprises",
|
||||
"email": "security@paragonie.com",
|
||||
"homepage": "https://paragonie.com",
|
||||
"role": "Maintainer"
|
||||
},
|
||||
{
|
||||
"name": "Steve 'Sc00bz' Thomas",
|
||||
"email": "steve@tobtu.com",
|
||||
"homepage": "https://www.tobtu.com",
|
||||
"role": "Original Developer"
|
||||
}
|
||||
],
|
||||
"description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
|
||||
"keywords": [
|
||||
"base16",
|
||||
"base32",
|
||||
"base32_decode",
|
||||
"base32_encode",
|
||||
"base64",
|
||||
"base64_decode",
|
||||
"base64_encode",
|
||||
"bin2hex",
|
||||
"encoding",
|
||||
"hex",
|
||||
"hex2bin",
|
||||
"rfc4648"
|
||||
],
|
||||
"support": {
|
||||
"email": "info@paragonie.com",
|
||||
"issues": "https://github.com/paragonie/constant_time_encoding/issues",
|
||||
"source": "https://github.com/paragonie/constant_time_encoding"
|
||||
},
|
||||
"time": "2020-12-06T15:14:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spomky-labs/otphp",
|
||||
"version": "v10.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Spomky-Labs/otphp.git",
|
||||
"reference": "f44cce5a9db4b8da410215d992110482c931232f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Spomky-Labs/otphp/zipball/f44cce5a9db4b8da410215d992110482c931232f",
|
||||
"reference": "f44cce5a9db4b8da410215d992110482c931232f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"beberlei/assert": "^3.0",
|
||||
"ext-mbstring": "*",
|
||||
"paragonie/constant_time_encoding": "^2.0",
|
||||
"php": "^7.2|^8.0",
|
||||
"thecodingmachine/safe": "^0.1.14|^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^2.0",
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"phpstan/phpstan-beberlei-assert": "^0.12",
|
||||
"phpstan/phpstan-deprecation-rules": "^0.12",
|
||||
"phpstan/phpstan-phpunit": "^0.12",
|
||||
"phpstan/phpstan-strict-rules": "^0.12",
|
||||
"phpunit/phpunit": "^8.0",
|
||||
"thecodingmachine/phpstan-safe-rule": "^1.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"v10.0": "10.0.x-dev",
|
||||
"v9.0": "9.0.x-dev",
|
||||
"v8.3": "8.3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"OTPHP\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Florent Morselli",
|
||||
"homepage": "https://github.com/Spomky"
|
||||
},
|
||||
{
|
||||
"name": "All contributors",
|
||||
"homepage": "https://github.com/Spomky-Labs/otphp/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A PHP library for generating one time passwords according to RFC 4226 (HOTP Algorithm) and the RFC 6238 (TOTP Algorithm) and compatible with Google Authenticator",
|
||||
"homepage": "https://github.com/Spomky-Labs/otphp",
|
||||
"keywords": [
|
||||
"FreeOTP",
|
||||
"RFC 4226",
|
||||
"RFC 6238",
|
||||
"google authenticator",
|
||||
"hotp",
|
||||
"otp",
|
||||
"totp"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Spomky-Labs/otphp/issues",
|
||||
"source": "https://github.com/Spomky-Labs/otphp/tree/v10.0.1"
|
||||
},
|
||||
"time": "2020-01-28T09:24:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "thecodingmachine/safe",
|
||||
"version": "v1.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thecodingmachine/safe.git",
|
||||
"reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
|
||||
"reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^0.12",
|
||||
"squizlabs/php_codesniffer": "^3.2",
|
||||
"thecodingmachine/phpstan-strict-rules": "^0.12"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Safe\\": [
|
||||
"lib/",
|
||||
"deprecated/",
|
||||
"generated/"
|
||||
]
|
||||
},
|
||||
"files": [
|
||||
"deprecated/apc.php",
|
||||
"deprecated/libevent.php",
|
||||
"deprecated/mssql.php",
|
||||
"deprecated/stats.php",
|
||||
"lib/special_cases.php",
|
||||
"generated/apache.php",
|
||||
"generated/apcu.php",
|
||||
"generated/array.php",
|
||||
"generated/bzip2.php",
|
||||
"generated/calendar.php",
|
||||
"generated/classobj.php",
|
||||
"generated/com.php",
|
||||
"generated/cubrid.php",
|
||||
"generated/curl.php",
|
||||
"generated/datetime.php",
|
||||
"generated/dir.php",
|
||||
"generated/eio.php",
|
||||
"generated/errorfunc.php",
|
||||
"generated/exec.php",
|
||||
"generated/fileinfo.php",
|
||||
"generated/filesystem.php",
|
||||
"generated/filter.php",
|
||||
"generated/fpm.php",
|
||||
"generated/ftp.php",
|
||||
"generated/funchand.php",
|
||||
"generated/gmp.php",
|
||||
"generated/gnupg.php",
|
||||
"generated/hash.php",
|
||||
"generated/ibase.php",
|
||||
"generated/ibmDb2.php",
|
||||
"generated/iconv.php",
|
||||
"generated/image.php",
|
||||
"generated/imap.php",
|
||||
"generated/info.php",
|
||||
"generated/ingres-ii.php",
|
||||
"generated/inotify.php",
|
||||
"generated/json.php",
|
||||
"generated/ldap.php",
|
||||
"generated/libxml.php",
|
||||
"generated/lzf.php",
|
||||
"generated/mailparse.php",
|
||||
"generated/mbstring.php",
|
||||
"generated/misc.php",
|
||||
"generated/msql.php",
|
||||
"generated/mysql.php",
|
||||
"generated/mysqli.php",
|
||||
"generated/mysqlndMs.php",
|
||||
"generated/mysqlndQc.php",
|
||||
"generated/network.php",
|
||||
"generated/oci8.php",
|
||||
"generated/opcache.php",
|
||||
"generated/openssl.php",
|
||||
"generated/outcontrol.php",
|
||||
"generated/password.php",
|
||||
"generated/pcntl.php",
|
||||
"generated/pcre.php",
|
||||
"generated/pdf.php",
|
||||
"generated/pgsql.php",
|
||||
"generated/posix.php",
|
||||
"generated/ps.php",
|
||||
"generated/pspell.php",
|
||||
"generated/readline.php",
|
||||
"generated/rpminfo.php",
|
||||
"generated/rrd.php",
|
||||
"generated/sem.php",
|
||||
"generated/session.php",
|
||||
"generated/shmop.php",
|
||||
"generated/simplexml.php",
|
||||
"generated/sockets.php",
|
||||
"generated/sodium.php",
|
||||
"generated/solr.php",
|
||||
"generated/spl.php",
|
||||
"generated/sqlsrv.php",
|
||||
"generated/ssdeep.php",
|
||||
"generated/ssh2.php",
|
||||
"generated/stream.php",
|
||||
"generated/strings.php",
|
||||
"generated/swoole.php",
|
||||
"generated/uodbc.php",
|
||||
"generated/uopz.php",
|
||||
"generated/url.php",
|
||||
"generated/var.php",
|
||||
"generated/xdiff.php",
|
||||
"generated/xml.php",
|
||||
"generated/xmlrpc.php",
|
||||
"generated/yaml.php",
|
||||
"generated/yaz.php",
|
||||
"generated/zip.php",
|
||||
"generated/zlib.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "PHP core functions that throw exceptions instead of returning FALSE on error",
|
||||
"support": {
|
||||
"issues": "https://github.com/thecodingmachine/safe/issues",
|
||||
"source": "https://github.com/thecodingmachine/safe/tree/v1.3.3"
|
||||
},
|
||||
"time": "2020-10-28T17:51:34+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.0.0"
|
||||
}
|
||||
@@ -1,24 +1,17 @@
|
||||
<?php
|
||||
spl_autoload_register(function($class) {
|
||||
$namespace = '';
|
||||
$class_name = $class;
|
||||
|
||||
if (strpos($class, '\\') !== false)
|
||||
list ($namespace, $class_name) = explode('\\', $class, 2);
|
||||
$root_dir = dirname(__DIR__); // we were in tt-rss/include
|
||||
|
||||
$root_dir = dirname(__DIR__); // we're in tt-rss/include
|
||||
// - internal tt-rss classes are loaded from classes/ and use special naming logic instead of namespaces
|
||||
// - plugin classes are loaded by PluginHandler from plugins.local/ and plugins/
|
||||
|
||||
// 1. third party libraries with namespaces are loaded from vendor/
|
||||
// 2. internal tt-rss classes are loaded from classes/ and use special naming logic instead of namespaces
|
||||
// 3. plugin classes are loaded by PluginHandler from plugins.local/ and plugins/ (TODO: use generic autoloader?)
|
||||
|
||||
if ($namespace && $class_name) {
|
||||
$class_file = "$root_dir/vendor/$namespace/" . str_replace('\\', '/', $class_name) . ".php";
|
||||
} else {
|
||||
$class_file = "$root_dir/classes/" . str_replace("_", "/", strtolower($class)) . ".php";
|
||||
}
|
||||
$class_file = "$root_dir/classes/" . str_replace("_", "/", strtolower($class)) . ".php";
|
||||
|
||||
if (file_exists($class_file))
|
||||
include $class_file;
|
||||
|
||||
});
|
||||
|
||||
// also pull composer autoloader
|
||||
require_once "vendor/autoload.php";
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
* 1.0.0 build 2010031920
|
||||
|
||||
- first public release
|
||||
- help in readme, install
|
||||
- cleanup ans separation of QRtools and QRspec
|
||||
- now TCPDF binding requires minimal changes in TCPDF, having most of job
|
||||
done in QRtools tcpdfBarcodeArray
|
||||
- nicer QRtools::timeBenchmark output
|
||||
- license and copyright notices in files
|
||||
- indent cleanup - from tab to 4spc, keep it that way please :)
|
||||
- sf project, repository, wiki
|
||||
- simple code generator in index.php
|
||||
|
||||
* 1.1.0 build 2010032113
|
||||
|
||||
- added merge tool wich generate merged version of code
|
||||
located in phpqrcode.php
|
||||
- splited qrconst.php from qrlib.php
|
||||
|
||||
* 1.1.1 build 2010032405
|
||||
|
||||
- patch by Rick Seymour allowing saving PNG and displaying it at the same time
|
||||
- added version info in VERSION file
|
||||
- modified merge tool to include version info into generated file
|
||||
- fixed e-mail in almost all head comments
|
||||
|
||||
* 1.1.2 build 2010032722
|
||||
|
||||
- full integration with TCPDF thanks to Nicola Asuni, it's author
|
||||
- fixed bug with alphanumeric encoding detection
|
||||
|
||||
* 1.1.3 build 2010081807
|
||||
|
||||
- short opening tags replaced with standard ones
|
||||
|
||||
* 1.1.4 build 2010100721
|
||||
|
||||
- added missing static keyword QRinput::check (found by Luke Brookhart, Onjax LLC)
|
||||
@@ -1,67 +0,0 @@
|
||||
== REQUIREMENTS ==
|
||||
|
||||
* PHP5
|
||||
* PHP GD2 extension with JPEG and PNG support
|
||||
|
||||
== INSTALLATION ==
|
||||
|
||||
If you want to recreate cache by yourself make sure cache directory is
|
||||
writable and you have permisions to write into it. Also make sure you are
|
||||
able to read files in it if you have cache option enabled
|
||||
|
||||
== CONFIGURATION ==
|
||||
|
||||
Feel free to modify config constants in qrconfig.php file. Read about it in
|
||||
provided comments and project wiki page (links in README file)
|
||||
|
||||
== QUICK START ==
|
||||
|
||||
Notice: probably you should'nt use all of this in same script :)
|
||||
|
||||
<?phpb
|
||||
|
||||
//include only that one, rest required files will be included from it
|
||||
include "qrlib.php"
|
||||
|
||||
//write code into file, Error corection lecer is lowest, L (one form: L,M,Q,H)
|
||||
//each code square will be 4x4 pixels (4x zoom)
|
||||
//code will have 2 code squares white boundary around
|
||||
|
||||
QRcode::png('PHP QR Code :)', 'test.png', 'L', 4, 2);
|
||||
|
||||
//same as above but outputs file directly into browser (with appr. header etc.)
|
||||
//all other settings are default
|
||||
//WARNING! it should be FIRST and ONLY output generated by script, otherwise
|
||||
//rest of output will land inside PNG binary, breaking it for sure
|
||||
QRcode::png('PHP QR Code :)');
|
||||
|
||||
//show benchmark
|
||||
QRtools::timeBenchmark();
|
||||
|
||||
//rebuild cache
|
||||
QRtools::buildCache();
|
||||
|
||||
//code generated in text mode - as a binary table
|
||||
//then displayed out as HTML using Unicode block building chars :)
|
||||
$tab = $qr->encode('PHP QR Code :)');
|
||||
QRspec::debug($tab, true);
|
||||
|
||||
== TCPDF INTEGRATION ==
|
||||
|
||||
Inside bindings/tcpdf you will find slightly modified 2dbarcodes.php.
|
||||
Instal phpqrcode liblaty inside tcpdf folder, then overwrite (or merge)
|
||||
2dbarcodes.php
|
||||
|
||||
Then use similar as example #50 from TCPDF examples:
|
||||
|
||||
<?php
|
||||
|
||||
$style = array(
|
||||
'border' => true,
|
||||
'padding' => 4,
|
||||
'fgcolor' => array(0,0,0),
|
||||
'bgcolor' => false, //array(255,255,255)
|
||||
);
|
||||
|
||||
//code name: QR, specify error correction level after semicolon (L,M,Q,H)
|
||||
$pdf->write2DBarcode('PHP QR Code :)', 'QR,L', '', '', 30, 30, $style, 'N');
|
||||
@@ -1,165 +0,0 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
@@ -1,45 +0,0 @@
|
||||
This is PHP implementation of QR Code 2-D barcode generator. It is pure-php
|
||||
LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi.
|
||||
|
||||
== LICENSING ==
|
||||
|
||||
Copyright (C) 2010 by Dominik Dzienia
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the Free
|
||||
Software Foundation; either version 3 of the License, or any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. See the GNU Lesser General Public License (LICENSE file)
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License along
|
||||
with this library; if not, write to the Free Software Foundation, Inc., 51
|
||||
Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
== INSTALATION AND USAGE ==
|
||||
|
||||
* INSTALL file
|
||||
* http://sourceforge.net/apps/mediawiki/phpqrcode/index.php?title=Main_Page
|
||||
|
||||
== CONTACT ==
|
||||
|
||||
Fell free to contact me via e-mail (deltalab at poczta dot fm) or using
|
||||
folowing project pages:
|
||||
|
||||
* http://sourceforge.net/projects/phpqrcode/
|
||||
* http://phpqrcode.sourceforge.net/
|
||||
|
||||
== ACKNOWLEDGMENTS ==
|
||||
|
||||
Based on C libqrencode library (ver. 3.1.1)
|
||||
Copyright (C) 2006-2010 by Kentaro Fukuchi
|
||||
http://megaui.net/fukuchi/works/qrencode/index.en.html
|
||||
|
||||
QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other
|
||||
countries.
|
||||
|
||||
Reed-Solomon code encoder is written by Phil Karn, KA9Q.
|
||||
Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
1.1.4
|
||||
2010100721
|
||||
2
lib/phpqrcode/cache/frame_1.dat
vendored
@@ -1,2 +0,0 @@
|
||||
xڝ<EFBFBD><EFBFBD>
|
||||
<EFBFBD> E9<45>u<06><>`<60>"PńC<C584>牗T!0$
|
||||
BIN
lib/phpqrcode/cache/frame_1.png
vendored
|
Before Width: | Height: | Size: 126 B |
BIN
lib/phpqrcode/cache/frame_10.dat
vendored
BIN
lib/phpqrcode/cache/frame_10.png
vendored
|
Before Width: | Height: | Size: 202 B |
BIN
lib/phpqrcode/cache/frame_11.dat
vendored
BIN
lib/phpqrcode/cache/frame_11.png
vendored
|
Before Width: | Height: | Size: 205 B |
BIN
lib/phpqrcode/cache/frame_12.dat
vendored
BIN
lib/phpqrcode/cache/frame_12.png
vendored
|
Before Width: | Height: | Size: 216 B |
BIN
lib/phpqrcode/cache/frame_13.dat
vendored
BIN
lib/phpqrcode/cache/frame_13.png
vendored
|
Before Width: | Height: | Size: 210 B |
BIN
lib/phpqrcode/cache/frame_14.dat
vendored
BIN
lib/phpqrcode/cache/frame_14.png
vendored
|
Before Width: | Height: | Size: 213 B |
BIN
lib/phpqrcode/cache/frame_15.dat
vendored
BIN
lib/phpqrcode/cache/frame_15.png
vendored
|
Before Width: | Height: | Size: 219 B |
1
lib/phpqrcode/cache/frame_16.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<0E> E]s<>IX<49>;<3B><01>n6<6E><36>`<60>q<EFBFBD><71><EFBFBD>W6<57><36><EFBFBD><04>`<60>%A/3!<21><><EFBFBD><EFBFBD><EFBFBD>!g<><67>̡<EFBFBD>1N)<0B>E<EFBFBD><45>|;<3B><>>6⸏<36>97$<0E><><EFBFBD><EFBFBD>c]kk<6B><6B>w<EFBFBD>1<EFBFBD><31>[<5B>m<EFBFBD>C͜c<CD9C>R<><52><EFBFBD><EFBFBD>><3E><><1A><><EFBFBD>E,<2C>hʼnp<C589>#<1C>xF<1C>yW<79><57>VWG<57><47><EFBFBD>3<EFBFBD><33>+<2B><0F><><EFBFBD>˓<EFBFBD>S<EFBFBD><53>}Ğ<>#<1C>G8b^c^c<><63><11>p<EFBFBD>c&3YQ"<11><1B><><EFBFBD><EFBFBD>v<EFBFBD><76><11><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD>9<EFBFBD>܇<EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09>Ŀ<EFBFBD>Q<><51>L<EFBFBD>/<2F><><EFBFBD><EFBFBD>
|
||||
BIN
lib/phpqrcode/cache/frame_16.png
vendored
|
Before Width: | Height: | Size: 211 B |
BIN
lib/phpqrcode/cache/frame_17.dat
vendored
BIN
lib/phpqrcode/cache/frame_17.png
vendored
|
Before Width: | Height: | Size: 211 B |
2
lib/phpqrcode/cache/frame_18.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD>0E]<5D>օ,2;s<><73>&<26>͚h<14><1D><>O<EFBFBD><4F><EFBFBD><7F><EFBFBD><EFBFBD>1&09OIv@DD<44><0C>&<26>ىK<D989>X<EFBFBD><58>Fv<46><<11>dq<64>9<><%h<><68>Y<>s!(d<><64><EFBFBD>s;~||b(<28><>Yůg#<23>`<60>K<16><>S<EFBFBD><53><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6>s<1C>idߍLg:ә<>t<EFBFBD>/gm<67><6D><EFBFBD><EFBFBD>k<EFBFBD>M<>3<EFBFBD>{<7B>4rT<72>Q<EFBFBD><51>e<EFBFBD><65>s<EFBFBD>><3E><ә<>t<EFBFBD>3<EFBFBD><33><EFBFBD>;<12>H<EFBFBD>#љ<>t<EFBFBD>3<EFBFBD><EFBFBD>Y<EFBFBD>+og<>h<EFBFBD><68><EFBFBD><EFBFBD>ٽ<EFBFBD>ln<6C><6E>F><3E>i^<5E>#awm;g<>~p<>g<EFBFBD>Ns{6z<36><7A><EFBFBD><EFBFBD><19><><EFBFBD><EFBFBD>p<><70>'
|
||||
BIN
lib/phpqrcode/cache/frame_18.png
vendored
|
Before Width: | Height: | Size: 228 B |
3
lib/phpqrcode/cache/frame_19.dat
vendored
@@ -1,3 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD> E<><45><EFBFBD>.<2E>No<4E>7ћ<37><D19B>iiR<>N2<4E><32>W%<25>x<04>@<40>ڜ<EFBFBD>'<27>
|
||||
u<EFBFBD>6<EFBFBD><EFBFBD><EFBFBD>.<2E>*S;}<7D><><EFBFBD>à<EFBFBD>T<0B><><EFBFBD>zr<>t<><74>%<25>,<2C><><EFBFBD><EFBFBD><EFBFBD>}<7D>;<3B><><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><5A>L<EFBFBD><4C><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><50>$<24><><EFBFBD><1E>q<EFBFBD>g<EFBFBD>L<EFBFBD><4C>dJ<64>;<3B><>w<><77><EFBFBD>.]z#<23><><EFBFBD>[͝<><CD9D>Og<4F><67><EFBFBD><EFBFBD>"<22><> <09>B<EFBFBD><17><>}<7D>}<7D>;<3B><>w<><77><1D><>#1Gb<47><62>;<3B><>w<><77><EFBFBD>_<EFBFBD>C+w<>@Df<44><04><><EFBFBD><EFBFBD>u<EFBFBD><75>2<EFBFBD><32><EFBFBD><EFBFBD>N<EFBFBD><4E>9R7|pW<70>k<EFBFBD><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<><6B><EFBFBD><07><><1C><><1C><>
|
||||
BIN
lib/phpqrcode/cache/frame_19.png
vendored
|
Before Width: | Height: | Size: 225 B |
1
lib/phpqrcode/cache/frame_2.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD>͒<EFBFBD>
|
||||
BIN
lib/phpqrcode/cache/frame_2.png
vendored
|
Before Width: | Height: | Size: 144 B |
BIN
lib/phpqrcode/cache/frame_20.dat
vendored
BIN
lib/phpqrcode/cache/frame_20.png
vendored
|
Before Width: | Height: | Size: 225 B |
1
lib/phpqrcode/cache/frame_21.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<0E> E]s<>IX<49>;<3B><01>n6Up<55><13><>в<EFBFBD><D0B2>]٘<><i-eW<65><57><EFBFBD><EFBFBD>)<29><>ŕ<EFBFBD><C595>
H\jvq<76>HL\6<><36><EFBFBD>ЅrI<72><06>Lܹ<4C><DCB9>%<25><18>@<40><><EFBFBD>V<EFBFBD>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>(<28>P4|<7C>Xn<58>gɝ<><15>~]D<><44><EFBFBD><EFBFBD>u1Us S\<5C><16><>,<2C><>2<EFBFBD><1F>N<EFBFBD><4E>?D<>K<EFBFBD><4B>F-:<3A>eJ]p_<70><16><>,<2C>a0<61>`<60><><EFBFBD>X<><16>`<60><><0C>w,`X<>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<0B><>Y4{<7B><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>v<EFBFBD>Js<4A><73><EFBFBD><EFBFBD>9<EFBFBD><39><EFBFBD>)<29>u<EFBFBD>۹<EFBFBD><DBB9><EFBFBD>,<17>]<5D><><EFBFBD><EFBFBD>^_<>7$<24>_<EFBFBD>
|
||||
BIN
lib/phpqrcode/cache/frame_21.png
vendored
|
Before Width: | Height: | Size: 235 B |
3
lib/phpqrcode/cache/frame_22.dat
vendored
@@ -1,3 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD>0E]{<7B><>.<2E>]{{{<7B><>Z<EFBFBD>Bep<65><06>we@<1F>V<EFBFBD>ERZ3<5A><33>"*2o<32>4<EFBFBD>y<EFBFBD>)i#d<>bdF҅<46><12>I"<22><><14>4<EFBFBD><34>W<17>I<EFBFBD>u<EFBFBD><75>45<34>x<EFBFBD>.Z<>S<EFBFBD>{<7B><><EFBFBD>8<EFBFBD><38><07>k={o.<2E>q<EFBFBD><71><01>[<13><>:帒q<E5B892><71><EFBFBD>y
|
||||
)t#<23><>N8<4E>dCj<43>-O<>OG}<7D>:/<2F>:s<>z!<21>)^<<3C>e<EFBFBD><65>S<EFBFBD>u<EFBFBD>{<7B> '<27>p<EFBFBD> '<27>=<3D>=<3D>=<3D>'<27>p<EFBFBD> '<27>p<EFBFBD>ߣߣ<DFA3><DFA3><1F>N8<4E><38><EFBFBD><EFBFBD>9<EFBFBD><39><EFBFBD><EFBFBD>pQQ<51>]H<19>pz<70><7A><EFBFBD>G<EFBFBD>^<5E><>Q<EFBFBD><51>I|<7C>߳<EFBFBD>u;9<><39><EFBFBD><EFBFBD><EFBFBD>d;<3B>X~$<24><><EFBFBD><13>t<1E><><1B><>dy
|
||||
BIN
lib/phpqrcode/cache/frame_22.png
vendored
|
Before Width: | Height: | Size: 226 B |
3
lib/phpqrcode/cache/frame_23.dat
vendored
@@ -1,3 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD> E<><45><EFBFBD>fo<>7ћU<D19B>) %M!Δ<><CE94>Yu(<<1E><><17>sK<73><4B>T<EFBFBD><54><EFBFBD>
|
||||
<EFBFBD>&<26>I<>\i+<2B>Ъ<EFBFBD>(m<><6D>FQ<46><51><EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>v~n1<6E>o<>]s<><73><EFBFBD><EFBFBD><EFBFBD>_ޟ<18>3`<60>_w2<77>ȹ<EFBFBD>lc[<5B><>;<3B><12>c֟ˤ<D69F>N<EFBFBD><4E>4<EFBFBD>p<EFBFBD>
|
||||
BIN
lib/phpqrcode/cache/frame_23.png
vendored
|
Before Width: | Height: | Size: 220 B |
1
lib/phpqrcode/cache/frame_24.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<0E> E<><45><EFBFBD>MX0;<3B><><EFBFBD>nVP4<50>HSS<19>x<EFBFBD>U3<55>/O<><4F>LiJ4<4A><34><EFBFBD>V<EFBFBD>JC<4A>%<25><>6VR&<16><>D<EFBFBD>B<EFBFBD>HjD<6A><44>J<0E>??<3F><><EFBFBD>Bl<42>cDZ<><C7B1><EFBFBD>'<27>U<EFBFBD><55>X<EFBFBD>U<EFBFBD>ޏ0<DE8F><30>yw<79>į<EFBFBD>j<EFBFBD><6A>똳<EFBFBD>3ś<33><C59B><EFBFBD>cj<63><6A><EFBFBD>{<7B><><12>:Gq<>G<1C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0E>N<EFBFBD>v;<3B><>笓J<0C><><EFBFBD><<3C><><EFBFBD>]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>#<23>8<EFBFBD><38>#<23>8<EFBFBD>H'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Gq<>G<1C><>tr:9<>#<23>8<EFBFBD><38>#<23>8<EFBFBD>ؓh<D893><68><15>N<EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD>_<EFBFBD><5F>>t<>e<EFBFBD><65>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>^<5E>\g<><67><EFBFBD>Qe?<3F>vu<><75>o<EFBFBD><6F>;<3B><1A>><3E><>*<2A>wl<77><02>m<>
|
||||
BIN
lib/phpqrcode/cache/frame_24.png
vendored
|
Before Width: | Height: | Size: 242 B |
3
lib/phpqrcode/cache/frame_25.dat
vendored
@@ -1,3 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD> <10><><EFBFBD>s낋<73>]r<>x<13>Y51mM<>BG
|
||||
<EFBFBD><EFBFBD>*Sx|Ua5Ƶ<35>Z<><5A><EFBFBD>-,<2C>1<EFBFBD><31>H<15>P<EFBFBD>Rj<52><6A>X5<58><35>i<EFBFBD><69><EFBFBD><EFBFBD>G<EFBFBD>>W<><57><EFBFBD>R<EFBFBD><52><EFBFBD>/<2F><>+uT廯<54><0C>ӯ嗴<D3AF>u<EFBFBD><75><0E><>[S<>a<EFBFBD>[kv<6B><76>5<EFBFBD>+5n<1F><><EFBFBD>J<EFBFBD><4A>%+V<>X<EFBFBD>bŊ<62>߬u'<27><07><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SR<53><52><EFBFBD><EFBFBD>tzZ<7A><5A>+<2B>+V<>X<EFBFBD>bŊ<62>ٟٟٟ<D99F><D99F>+V<>X<EFBFBD>b<EFBFBD><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}Ŋ+V<>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VI<56><49><EFBFBD><EFBFBD><15>+k<>q<>[<5B><>t<1E><>oVZ<56><5A>voNV<4E>w<1C>}<7D>{<7B>r<ýR<C3BD><52>"<22>R<EFBFBD><52>]<1D>
|
||||
BIN
lib/phpqrcode/cache/frame_25.png
vendored
|
Before Width: | Height: | Size: 242 B |
2
lib/phpqrcode/cache/frame_26.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD> E<><45>օ,t<>7<EFBFBD>7ћU<D19B> E)i7<><37>*~c<><63><EFBFBD><EFBFBD>X<14>EB<45><42><EFBFBD>FC<><43><EFBFBD>6<EFBFBD>:&<26>L,<2C><>Mv.<2E><><EFBFBD><EFBFBD>Kg<4B>ո<EFBFBD>YM<59>><3E><><EFBFBD>><3E>mۚ<6D>?<3F><>v<><76><EFBFBD>mg?<3F><>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD>η<1D>d<EFBFBD><64>C<><16>U<EFBFBD><55>Ik<49><6B><EFBFBD>E\<5C><>Ms<4D>f<>a<EFBFBD>f<>a><3E>[sӈ9쬩ެ8b<38><k<><6B>7<EFBFBD>}<7D><>k<><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD>0<EFBFBD>3<>0<EFBFBD>3<><33>*r<15><>\<5C>7f<>a<EFBFBD>f<>a<EFBFBD>fr<15><>\<5C>7f<>a<EFBFBD>f<>a<EFBFBD>Y<EFBFBD><59><18><><0C>d<EFBFBD>4<EFBFBD>9k<><6B><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD>X y<>g<EFBFBD><67><EFBFBD>)<1B><>dw<64>n̢<6E>U<EFBFBD>><3E><><EFBFBD>]<5D><>Lg<4C><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Eo<45> w1
|
||||
BIN
lib/phpqrcode/cache/frame_26.png
vendored
|
Before Width: | Height: | Size: 244 B |
BIN
lib/phpqrcode/cache/frame_27.dat
vendored
BIN
lib/phpqrcode/cache/frame_27.png
vendored
|
Before Width: | Height: | Size: 237 B |
BIN
lib/phpqrcode/cache/frame_28.dat
vendored
BIN
lib/phpqrcode/cache/frame_28.png
vendored
|
Before Width: | Height: | Size: 234 B |
2
lib/phpqrcode/cache/frame_29.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<0E> <10>a<EFBFBD> <09><><EFBFBD><EFBFBD>@n7+*<2A><><EFBFBD><EFBFBD>4<EFBFBD>!<21>?<3F>J<EFBFBD><4A><EFBFBD> <09><><EFBFBD>抮<EFBFBD>]<5D><1A><>S<EFBFBD><53>Tf)<29><>s<EFBFBD>I<EFBFBD>"<22>Ȕb<C894><62>0<EFBFBD><30>|<7C>"Luٸ<75>,<2C><>E<18>1\6<>*<2A>uQ<75>?<3F>>a<>υ<EFBFBD><CF85><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>-r<><72><EFBFBD>n.<2E>ꯋ\<5C>T<EFBFBD><54>:<3A>*)|)<29><>,<2C><>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x_<78><5F>}:^R<><52>Uoɢ<6F>u<EFBFBD>~<7E>މX`<60>XЏЏЏЏ<D08F>_`<60>X`<60>XЏЏЏ<D08F>_`<60>X`<60>XЏЏЏЏ<D08F>wb<77>X`<60><16><>PU<><55>)D<><44>"c<>{<7B>z<EFBFBD><7A><EFBFBD>3<EFBFBD><33><EFBFBD><}<7D><><EFBFBD>^?b<>m<EFBFBD><6D><EFBFBD>잃<EFBFBD><EC9E83><EFBFBD><EFBFBD><EFBFBD>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.<2E>]
|
||||
<EFBFBD>{Q6u<07>T,9
|
||||
BIN
lib/phpqrcode/cache/frame_29.png
vendored
|
Before Width: | Height: | Size: 232 B |
1
lib/phpqrcode/cache/frame_3.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BIN
lib/phpqrcode/cache/frame_3.png
vendored
|
Before Width: | Height: | Size: 147 B |
BIN
lib/phpqrcode/cache/frame_30.dat
vendored
BIN
lib/phpqrcode/cache/frame_30.png
vendored
|
Before Width: | Height: | Size: 255 B |
1
lib/phpqrcode/cache/frame_31.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<0E> <10>a<EFBFBD> <0B><>
|
||||
BIN
lib/phpqrcode/cache/frame_31.png
vendored
|
Before Width: | Height: | Size: 260 B |
2
lib/phpqrcode/cache/frame_32.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD> <14><>־<EFBFBD><D6BE><EFBFBD><EFBFBD>.<2E> <20>D<EFBFBD>l<EFBFBD>,<0C><>Mz<4D><7A>6<EFBFBD><10>Ç gcJ<63>D;<3B>'.<2E>A<EFBFBD>Iq<49>މ<EFBFBD>I,Ir<49>Y<EFBFBD><59><EFBFBD><EFBFBD>Fk%<25>D<EFBFBD>O<14>y|ED<45>D<EFBFBD><44>(L<>_Y<5F><59>>*ߚ?a<>O<EFBFBD><15>k<7F>L_<4C><[c<><63><EFBFBD><EFBFBD>><3E>c˘<63>u<1C>LI<4C><49>%<25>#<23>0<EFBFBD>#<23>0<EFBFBD>#<23><>otѢ<74><D1A2><EFBFBD>}<7D><>4<EFBFBD>f<EFBFBD>v_)<29><>E<EFBFBD>p<EFBFBD><1F><>h5R<35><52>8<EFBFBD>8<EFBFBD>1<EFBFBD>#<23>0<EFBFBD>#<23>0<EFBFBD><30><EFBFBD>i<EFBFBD><69>tZ<74>#<23>0<EFBFBD>#<23>0<EFBFBD>#<23>0<EFBFBD><30><EFBFBD>i<EFBFBD><69>tZ<74>#<23>0<EFBFBD>#<23>0<EFBFBD>#<23>0<EFBFBD><30><EFBFBD>i<EFBFBD><69>tZ<74>l<EFBFBD>0<EFBFBD>#<23>0<EFBFBD><08><>9q"<22><>HܜH<DC9C>Q<EFBFBD><51><1B><>"<22><>L5}-<2D><>Y<59><D7BE><EFBFBD>k<EFBFBD>`<60><>><3E>z鸳<><E9B8B3><EFBFBD>4&<26>p<EFBFBD><70>!<21><><EFBFBD>!<21><>`<60>:5
|
||||
BIN
lib/phpqrcode/cache/frame_32.png
vendored
|
Before Width: | Height: | Size: 262 B |
14
lib/phpqrcode/cache/frame_33.dat
vendored
@@ -1,14 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<0E> <10>a<EFBFBD><EFBFBD><DEBA><EFBFBD><EFBFBD><EFBFBD>@n7+*L++<2B>柮<12><><05><>bb<62>*LC<4C><12><><EFBFBD><EFBFBD>ck<>H<EFBFBD>r<><72>j<EFBFBD><6A><EFBFBD>J5Y<35>i~0<>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD>T<EFBFBD>}<7D><>e<EFBFBD>><3E><>5<EFBFBD>b_<62>w<EFBFBD>͟?<3F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0E>\<5C><>Ra<>i+7<><37>W<EFBFBD><57>\<5C><>wLUN<55>L<EFBFBD><4C>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><6A>O<4F><7F>kc<6B><63><EFBFBD><EFBFBD><1D>\˩|%<25>o<<3C><>k<EFBFBD><6B>L<EFBFBD>+<2B>+<2B>v<EFBFBD><76><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><>>}<06><0C>8<><38><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><0C><19>3<EFBFBD>g<EFBFBD><67><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><>3<EFBFBD>g<EFBFBD><67>@<40><><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><><EFBFBD>
|
||||
+<2B><>:R<><52><EFBFBD>X<EFBFBD><58>B<EFBFBD>9<EFBFBD><39>I<EFBFBD>=<>k<EFBFBD><07><>o/Sw<53>ؘ<EFBFBD>ٯ<EFBFBD>`g<><67><EFBFBD><EFBFBD><EFBFBD><1C>r_ٙ<5F>Y<EFBFBD><59>VSY<53><59>zIefnmQoz
|
||||
BIN
lib/phpqrcode/cache/frame_33.png
vendored
|
Before Width: | Height: | Size: 253 B |
BIN
lib/phpqrcode/cache/frame_34.dat
vendored
BIN
lib/phpqrcode/cache/frame_34.png
vendored
|
Before Width: | Height: | Size: 256 B |
BIN
lib/phpqrcode/cache/frame_35.dat
vendored
BIN
lib/phpqrcode/cache/frame_35.png
vendored
|
Before Width: | Height: | Size: 243 B |
BIN
lib/phpqrcode/cache/frame_36.dat
vendored
BIN
lib/phpqrcode/cache/frame_36.png
vendored
|
Before Width: | Height: | Size: 272 B |
BIN
lib/phpqrcode/cache/frame_37.dat
vendored
BIN
lib/phpqrcode/cache/frame_37.png
vendored
|
Before Width: | Height: | Size: 279 B |
1
lib/phpqrcode/cache/frame_38.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><EFBFBD>0Ў<>u<EFBFBD>A2<41>;Н<><D09D>k<>(<28>g<><67>y<1D>tp9<70><14>$<24><><EFBFBD><EFBFBD>D<7F><44><EFBFBD><EFBFBD>\<5C>e^'t<>-aI<61><49>FM<46>S<EFBFBD>k<EFBFBD><6B>I<EFBFBD>Ť<EFBFBD>:7<><37>|L<>k<EFBFBD>N<EFBFBD>8N7<4E><37><EFBFBD>i}<7D><><EFBFBD><EFBFBD>i,<2C>[W<><57>g<67>Ӵ<><1E><>?3<>1<EFBFBD>i<EFBFBD><69>N<EFBFBD>}}=<3D>OM:4<><34>)S<>L<EFBFBD>2eʔ)S<>L#$<24><>
|
||||
BIN
lib/phpqrcode/cache/frame_38.png
vendored
|
Before Width: | Height: | Size: 279 B |
BIN
lib/phpqrcode/cache/frame_39.dat
vendored
BIN
lib/phpqrcode/cache/frame_39.png
vendored
|
Before Width: | Height: | Size: 264 B |
1
lib/phpqrcode/cache/frame_4.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BIN
lib/phpqrcode/cache/frame_4.png
vendored
|
Before Width: | Height: | Size: 149 B |
2
lib/phpqrcode/cache/frame_40.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><EFBFBD>@Ь<><D0AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@o<>7<1B><>`<60>Qfe<66>䕫PA><3E><><EFBFBD><EFBFBD><EFBFBD><?jjo5WNiz<06><>y<EFBFBD>W<EFBFBD><57><EFBFBD><EFBFBD>&]߅C?<3F>I<>r<EFBFBD>W<EFBFBD><57>^;<3B>8<EFBFBD><38>
|
||||
<EFBFBD><EFBFBD>s<ð<><C3B0>S{<7B>9^gE<67>}><3E><><]<5D><><EFBFBD><EFBFBD>߳bZ<62>n<EFBFBD><6E>^A<><41>Q}[<5B>9^<5E>]<5D>y<EFBFBD><79>najM܇K̘1cƌ3f̘1<CC98><31><EFBFBD>{<7B>W5}<7D><>{<7B><>7lM<6C><4D><EFBFBD>ޚx<DE9A>I<<1E><>K<EFBFBD><4B><EFBFBD><EFBFBD>αyl3f̘1cƌ3f̘1<CC98><31>ۻٻ={<7B><>αyl3f̘1cƌ3f̘1<CC98><31>ۻٻ={<7B><>αyl3f̘1cƌ3f̘1<CC98><31>ۻٻ={<7B><>αyl3f̘1cƌ3f̘1<CC98><31>ۻٻ={<7B><>αyl3f̘1cƌ3f̘<66><CC98><12><>Sʑ<53>Ӓ7<D392>H<EFBFBD>Kg\<5C><><EFBFBD>u<EFBFBD><75><EFBFBD>_<EFBFBD><5F>r'4<1F>[<5B><>-<2D>]<5D><>q<EFBFBD><71>L<EFBFBD><4C>8Ɲ<38><C69D>Y1q<31><71><EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD><EFBFBD>/(%<25>
|
||||
BIN
lib/phpqrcode/cache/frame_40.png
vendored
|
Before Width: | Height: | Size: 267 B |
1
lib/phpqrcode/cache/frame_5.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>1<0E> E<><45>u<0E>7Л<37><D09B>Z<01><12>|N<><4E><19>DB0@R$l,-<2D>>VKZ[<<3C><><EFBFBD>z<EFBFBD>qƎ<71><C68E>YJ&<26>i<EFBFBD>嚂<>Zy<5A>:Y'<27><>Y<EFBFBD><59>V<EFBFBD>&<26>e<EFBFBD>R<EFBFBD>"<22>sj<73><6A>r<EFBFBD><72>+<2B><><EFBFBD><EFBFBD>.<2E>MƎ<4D><C68E><EFBFBD>9<EFBFBD><39>z<EFBFBD>s<03><><EFBFBD>,
|
||||
BIN
lib/phpqrcode/cache/frame_5.png
vendored
|
Before Width: | Height: | Size: 150 B |
BIN
lib/phpqrcode/cache/frame_6.dat
vendored
BIN
lib/phpqrcode/cache/frame_6.png
vendored
|
Before Width: | Height: | Size: 151 B |
BIN
lib/phpqrcode/cache/frame_7.dat
vendored
BIN
lib/phpqrcode/cache/frame_7.png
vendored
|
Before Width: | Height: | Size: 189 B |
BIN
lib/phpqrcode/cache/frame_8.dat
vendored
BIN
lib/phpqrcode/cache/frame_8.png
vendored
|
Before Width: | Height: | Size: 204 B |
BIN
lib/phpqrcode/cache/frame_9.dat
vendored
BIN
lib/phpqrcode/cache/frame_9.png
vendored
|
Before Width: | Height: | Size: 199 B |
BIN
lib/phpqrcode/cache/mask_0/mask_101_0.dat
vendored
BIN
lib/phpqrcode/cache/mask_0/mask_105_0.dat
vendored
2
lib/phpqrcode/cache/mask_0/mask_109_0.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>=
|
||||
<EFBFBD>0н<>i<EFBFBD>9'<27>b<11>$<24><>t<EFBFBD><1E><><1B><>^#i<><69><EFBFBD><1B>i?<3F><><EFBFBD><1F>b<EFBFBD>K[AU<41>F徝Ƶijx]m<>]2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-Ė<>K<EFBFBD>~<0B>Vw}<7D>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&O<>ɓ<EFBFBD>666666yR<79><52>'<27>%lllll/<2F><>h<7F>l<EFBFBD><6C><EFBFBD>m <09><><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>l<EFBFBD><6C><EFBFBD>3<EFBFBD>+<2B><>mͫ
|
||||
2
lib/phpqrcode/cache/mask_0/mask_113_0.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>;
|
||||
<EFBFBD>0<05>><3E>I<EFBFBD><49>9+E<><45><EFBFBD>s<EFBFBD>=ϤL1̄[<5B><><EFBFBD>F<EFBFBD>ZU<5A>4<1C>?i<<3C><><EFBFBD>;7<><37><EFBFBD><EFBFBD>;<3B><>P<EFBFBD><50>#<23>W-[<5B>ݯ6<DDAF><36><EFBFBD>dddddd<64>c",;<3B>"<22><><EFBFBD>sk<>摑<EFBFBD><E69191><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Q&<26><>erw######<23>L.<2E><><EFBFBD>摑<EFBFBD><E69191><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Иy<14>1<EFBFBD>^˲\<5C><><EFBFBD><EFBFBD><EFBFBD>3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><>v
|
||||
2
lib/phpqrcode/cache/mask_0/mask_117_0.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD>0<05>}O<><4F><EFBFBD>r<EFBFBD>R,#3<08><07><><EFBFBD>,<2C><><06><><EFBFBD>o5<16>C<EFBFBD><43><EFBFBD>q:<3A><><EFBFBD>;;<17>wvN<76><4E>JZG<5A>=<3D>m<EFBFBD><6D><EFBFBD>}<7D><>
|
||||
1
lib/phpqrcode/cache/mask_0/mask_121_0.dat
vendored
@@ -1 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>1<0E> О<><D09E><EFBFBD>/<2F><>w
|
||||
2
lib/phpqrcode/cache/mask_0/mask_125_0.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>A
|
||||
<EFBFBD> н<><D0BD><EFBFBD>_<EFBFBD><5F><EFBFBD>TH`3AO<41>L<>4<EFBFBD>k<><6B><05><>(<28><><EFBFBD>ew<65><77>GW<47><1E><><EFBFBD>.<2E> #<23><>2<EFBFBD><32><EFBFBD>} \<5C><>Y<EFBFBD><59><EFBFBD><EFBFBD>gggggggggg_d<5F>><3E><><EFBFBD><EFBFBD>j^<5E><><EFBFBD>s<EFBFBD><73>;;;;;;;;;;<3B>'<27><>q<EFBFBD>;;;;;;;;;<3B>'˰<>q<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><1F><>_P<1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Yw<59>{e<><65>=d<><64><EFBFBD><EFBFBD><EFBFBD>G<EFBFBD>/<2F><><EFBFBD>
|
||||
2
lib/phpqrcode/cache/mask_0/mask_129_0.dat
vendored
@@ -1,2 +0,0 @@
|
||||
x<EFBFBD><EFBFBD><EFBFBD>1
|
||||
<EFBFBD> <05><><EFBFBD><EFBFBD><EFBFBD>/<2F>*<2A><>D<EFBFBD>E<EFBFBD>'<27>hg<68>t<>-<2D>}_<>pV<><18> \"<22>b=s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[<5B><>J<19><>=8Dh<44>o<EFBFBD><6F>۞'<16>0X<30> <20><1F><>۴<EFBFBD><DBB4><EFBFBD><EFBFBD><18>e<EFBFBD>0`<60><><18><17><><0C>j"0`<60><><EFBFBD><EFBFBD>Wf`^P0`<60><><06><05>2<03><><EFBFBD>Ȁ<18><> <20><><EFBFBD>d07(<28><13><O<06><><EFBFBD><06>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>
|
||||