From 14955ce9c69f5a6474ca957fdb94babf3dc636ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= Date: Mon, 13 Feb 2017 15:32:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/trunk.iml | 18 + .idea/vcs.xml | 6 + .idea/workspace.xml | 424 +++++ composer.json | 2 - composer.lock | 388 ++++ runtime/log/201702/13.log | 747 ++++++++ runtime/log/201702/13_sql.log | 74 + .../temp/3bcd978f9cb3f7990d7036969405255d.php | 46 + .../temp/d0720a6de1598fd846b92ea5de3d6a83.php | 23 + .../temp/f8a32d1b6015ffcf81f5293caa6f865c.php | 96 + .../temp/fc8deb1371272955af5d837d65c45b2b.php | 2 + vendor/aferrandini/phpqrcode/.gitignore | 1 - vendor/aferrandini/phpqrcode/LICENSE | 165 -- vendor/aferrandini/phpqrcode/VERSION | 2 - .../aferrandini/phpqrcode/cache/frame_1.dat | 2 - .../aferrandini/phpqrcode/cache/frame_1.png | Bin 126 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_10.dat | Bin 204 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_10.png | Bin 202 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_11.dat | Bin 210 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_11.png | Bin 205 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_12.dat | Bin 222 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_12.png | Bin 216 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_13.dat | Bin 223 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_13.png | Bin 210 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_14.dat | Bin 227 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_14.png | Bin 213 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_15.dat | Bin 242 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_15.png | Bin 219 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_16.dat | 1 - .../aferrandini/phpqrcode/cache/frame_16.png | Bin 211 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_17.dat | Bin 237 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_17.png | Bin 211 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_18.dat | 2 - .../aferrandini/phpqrcode/cache/frame_18.png | Bin 228 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_19.dat | 3 - .../aferrandini/phpqrcode/cache/frame_19.png | Bin 225 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_2.dat | 1 - .../aferrandini/phpqrcode/cache/frame_2.png | Bin 144 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_20.dat | Bin 250 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_20.png | Bin 225 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_21.dat | 1 - .../aferrandini/phpqrcode/cache/frame_21.png | Bin 235 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_22.dat | 3 - .../aferrandini/phpqrcode/cache/frame_22.png | Bin 226 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_23.dat | 3 - .../aferrandini/phpqrcode/cache/frame_23.png | Bin 220 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_24.dat | 1 - .../aferrandini/phpqrcode/cache/frame_24.png | Bin 242 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_25.dat | 3 - .../aferrandini/phpqrcode/cache/frame_25.png | Bin 242 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_26.dat | 2 - .../aferrandini/phpqrcode/cache/frame_26.png | Bin 244 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_27.dat | Bin 284 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_27.png | Bin 237 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_28.dat | Bin 318 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_28.png | Bin 234 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_29.dat | 2 - .../aferrandini/phpqrcode/cache/frame_29.png | Bin 232 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_3.dat | 1 - .../aferrandini/phpqrcode/cache/frame_3.png | Bin 147 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_30.dat | Bin 324 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_30.png | Bin 255 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_31.dat | 1 - .../aferrandini/phpqrcode/cache/frame_31.png | Bin 260 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_32.dat | 2 - .../aferrandini/phpqrcode/cache/frame_32.png | Bin 262 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_33.dat | 14 - .../aferrandini/phpqrcode/cache/frame_33.png | Bin 253 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_34.dat | Bin 331 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_34.png | Bin 256 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_35.dat | Bin 342 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_35.png | Bin 243 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_36.dat | Bin 370 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_36.png | Bin 272 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_37.dat | Bin 376 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_37.png | Bin 279 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_38.dat | 1 - .../aferrandini/phpqrcode/cache/frame_38.png | Bin 279 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_39.dat | Bin 404 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_39.png | Bin 264 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_4.dat | 1 - .../aferrandini/phpqrcode/cache/frame_4.png | Bin 149 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_40.dat | 2 - .../aferrandini/phpqrcode/cache/frame_40.png | Bin 267 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_5.dat | 1 - .../aferrandini/phpqrcode/cache/frame_5.png | Bin 150 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_6.dat | Bin 132 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_6.png | Bin 151 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_7.dat | Bin 196 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_7.png | Bin 189 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_8.dat | Bin 201 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_8.png | Bin 204 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_9.dat | Bin 206 -> 0 bytes .../aferrandini/phpqrcode/cache/frame_9.png | Bin 199 -> 0 bytes .../phpqrcode/cache/mask_0/mask_101_0.dat | Bin 157 -> 0 bytes .../phpqrcode/cache/mask_0/mask_105_0.dat | Bin 162 -> 0 bytes .../phpqrcode/cache/mask_0/mask_109_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_113_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_117_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_121_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_125_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_129_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_133_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_137_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_141_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_145_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_149_0.dat | 3 - .../phpqrcode/cache/mask_0/mask_153_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_157_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_161_0.dat | Bin 241 -> 0 bytes .../phpqrcode/cache/mask_0/mask_165_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_169_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_173_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_177_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_21_0.dat | Bin 48 -> 0 bytes .../phpqrcode/cache/mask_0/mask_25_0.dat | Bin 57 -> 0 bytes .../phpqrcode/cache/mask_0/mask_29_0.dat | Bin 59 -> 0 bytes .../phpqrcode/cache/mask_0/mask_33_0.dat | Bin 62 -> 0 bytes .../phpqrcode/cache/mask_0/mask_37_0.dat | Bin 65 -> 0 bytes .../phpqrcode/cache/mask_0/mask_41_0.dat | Bin 68 -> 0 bytes .../phpqrcode/cache/mask_0/mask_45_0.dat | Bin 106 -> 0 bytes .../phpqrcode/cache/mask_0/mask_49_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_53_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_57_0.dat | 4 - .../phpqrcode/cache/mask_0/mask_61_0.dat | Bin 119 -> 0 bytes .../phpqrcode/cache/mask_0/mask_65_0.dat | Bin 123 -> 0 bytes .../phpqrcode/cache/mask_0/mask_69_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_73_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_77_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_81_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_85_0.dat | 2 - .../phpqrcode/cache/mask_0/mask_89_0.dat | 1 - .../phpqrcode/cache/mask_0/mask_93_0.dat | 3 - .../phpqrcode/cache/mask_0/mask_97_0.dat | Bin 150 -> 0 bytes .../phpqrcode/cache/mask_1/mask_101_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_105_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_109_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_113_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_117_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_121_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_125_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_129_1.dat | Bin 164 -> 0 bytes .../phpqrcode/cache/mask_1/mask_133_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_137_1.dat | 3 - .../phpqrcode/cache/mask_1/mask_141_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_145_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_149_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_153_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_157_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_161_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_165_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_169_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_173_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_177_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_21_1.dat | Bin 42 -> 0 bytes .../phpqrcode/cache/mask_1/mask_25_1.dat | Bin 48 -> 0 bytes .../phpqrcode/cache/mask_1/mask_29_1.dat | Bin 50 -> 0 bytes .../phpqrcode/cache/mask_1/mask_33_1.dat | Bin 53 -> 0 bytes .../phpqrcode/cache/mask_1/mask_37_1.dat | Bin 56 -> 0 bytes .../phpqrcode/cache/mask_1/mask_41_1.dat | Bin 58 -> 0 bytes .../phpqrcode/cache/mask_1/mask_45_1.dat | Bin 82 -> 0 bytes .../phpqrcode/cache/mask_1/mask_49_1.dat | Bin 84 -> 0 bytes .../phpqrcode/cache/mask_1/mask_53_1.dat | Bin 87 -> 0 bytes .../phpqrcode/cache/mask_1/mask_57_1.dat | Bin 92 -> 0 bytes .../phpqrcode/cache/mask_1/mask_61_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_65_1.dat | Bin 99 -> 0 bytes .../phpqrcode/cache/mask_1/mask_69_1.dat | Bin 102 -> 0 bytes .../phpqrcode/cache/mask_1/mask_73_1.dat | Bin 104 -> 0 bytes .../phpqrcode/cache/mask_1/mask_77_1.dat | Bin 110 -> 0 bytes .../phpqrcode/cache/mask_1/mask_81_1.dat | Bin 114 -> 0 bytes .../phpqrcode/cache/mask_1/mask_85_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_89_1.dat | 1 - .../phpqrcode/cache/mask_1/mask_93_1.dat | 2 - .../phpqrcode/cache/mask_1/mask_97_1.dat | 2 - .../phpqrcode/cache/mask_2/mask_101_2.dat | 3 - .../phpqrcode/cache/mask_2/mask_105_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_109_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_113_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_117_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_121_2.dat | Bin 127 -> 0 bytes .../phpqrcode/cache/mask_2/mask_125_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_129_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_133_2.dat | 10 - .../phpqrcode/cache/mask_2/mask_137_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_141_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_145_2.dat | 4 - .../phpqrcode/cache/mask_2/mask_149_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_153_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_157_2.dat | 3 - .../phpqrcode/cache/mask_2/mask_161_2.dat | Bin 190 -> 0 bytes .../phpqrcode/cache/mask_2/mask_165_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_169_2.dat | Bin 196 -> 0 bytes .../phpqrcode/cache/mask_2/mask_173_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_177_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_21_2.dat | Bin 35 -> 0 bytes .../phpqrcode/cache/mask_2/mask_25_2.dat | Bin 41 -> 0 bytes .../phpqrcode/cache/mask_2/mask_29_2.dat | Bin 45 -> 0 bytes .../phpqrcode/cache/mask_2/mask_33_2.dat | Bin 47 -> 0 bytes .../phpqrcode/cache/mask_2/mask_37_2.dat | Bin 47 -> 0 bytes .../phpqrcode/cache/mask_2/mask_41_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_45_2.dat | Bin 68 -> 0 bytes .../phpqrcode/cache/mask_2/mask_49_2.dat | Bin 70 -> 0 bytes .../phpqrcode/cache/mask_2/mask_53_2.dat | Bin 73 -> 0 bytes .../phpqrcode/cache/mask_2/mask_57_2.dat | Bin 76 -> 0 bytes .../phpqrcode/cache/mask_2/mask_61_2.dat | Bin 78 -> 0 bytes .../phpqrcode/cache/mask_2/mask_65_2.dat | Bin 89 -> 0 bytes .../phpqrcode/cache/mask_2/mask_69_2.dat | Bin 88 -> 0 bytes .../phpqrcode/cache/mask_2/mask_73_2.dat | Bin 94 -> 0 bytes .../phpqrcode/cache/mask_2/mask_77_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_81_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_85_2.dat | 2 - .../phpqrcode/cache/mask_2/mask_89_2.dat | 1 - .../phpqrcode/cache/mask_2/mask_93_2.dat | Bin 103 -> 0 bytes .../phpqrcode/cache/mask_2/mask_97_2.dat | 2 - .../phpqrcode/cache/mask_3/mask_101_3.dat | 1 - .../phpqrcode/cache/mask_3/mask_105_3.dat | 1 - .../phpqrcode/cache/mask_3/mask_109_3.dat | 1 - .../phpqrcode/cache/mask_3/mask_113_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_117_3.dat | 4 - .../phpqrcode/cache/mask_3/mask_121_3.dat | Bin 212 -> 0 bytes .../phpqrcode/cache/mask_3/mask_125_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_129_3.dat | 8 - .../phpqrcode/cache/mask_3/mask_133_3.dat | Bin 216 -> 0 bytes .../phpqrcode/cache/mask_3/mask_137_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_141_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_145_3.dat | 3 - .../phpqrcode/cache/mask_3/mask_149_3.dat | 1 - .../phpqrcode/cache/mask_3/mask_153_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_157_3.dat | Bin 248 -> 0 bytes .../phpqrcode/cache/mask_3/mask_161_3.dat | 3 - .../phpqrcode/cache/mask_3/mask_165_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_169_3.dat | 1 - .../phpqrcode/cache/mask_3/mask_173_3.dat | 1 - .../phpqrcode/cache/mask_3/mask_177_3.dat | Bin 312 -> 0 bytes .../phpqrcode/cache/mask_3/mask_21_3.dat | Bin 60 -> 0 bytes .../phpqrcode/cache/mask_3/mask_25_3.dat | Bin 75 -> 0 bytes .../phpqrcode/cache/mask_3/mask_29_3.dat | Bin 75 -> 0 bytes .../phpqrcode/cache/mask_3/mask_33_3.dat | Bin 79 -> 0 bytes .../phpqrcode/cache/mask_3/mask_37_3.dat | Bin 83 -> 0 bytes .../phpqrcode/cache/mask_3/mask_41_3.dat | Bin 85 -> 0 bytes .../phpqrcode/cache/mask_3/mask_45_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_49_3.dat | Bin 127 -> 0 bytes .../phpqrcode/cache/mask_3/mask_53_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_57_3.dat | Bin 126 -> 0 bytes .../phpqrcode/cache/mask_3/mask_61_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_65_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_69_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_73_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_77_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_81_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_85_3.dat | Bin 160 -> 0 bytes .../phpqrcode/cache/mask_3/mask_89_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_93_3.dat | 2 - .../phpqrcode/cache/mask_3/mask_97_3.dat | Bin 175 -> 0 bytes .../phpqrcode/cache/mask_4/mask_101_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_105_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_109_4.dat | Bin 182 -> 0 bytes .../phpqrcode/cache/mask_4/mask_113_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_117_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_121_4.dat | Bin 208 -> 0 bytes .../phpqrcode/cache/mask_4/mask_125_4.dat | Bin 213 -> 0 bytes .../phpqrcode/cache/mask_4/mask_129_4.dat | Bin 220 -> 0 bytes .../phpqrcode/cache/mask_4/mask_133_4.dat | 3 - .../phpqrcode/cache/mask_4/mask_137_4.dat | Bin 248 -> 0 bytes .../phpqrcode/cache/mask_4/mask_141_4.dat | Bin 254 -> 0 bytes .../phpqrcode/cache/mask_4/mask_145_4.dat | Bin 255 -> 0 bytes .../phpqrcode/cache/mask_4/mask_149_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_153_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_157_4.dat | 1 - .../phpqrcode/cache/mask_4/mask_161_4.dat | 1 - .../phpqrcode/cache/mask_4/mask_165_4.dat | 3 - .../phpqrcode/cache/mask_4/mask_169_4.dat | Bin 297 -> 0 bytes .../phpqrcode/cache/mask_4/mask_173_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_177_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_21_4.dat | Bin 57 -> 0 bytes .../phpqrcode/cache/mask_4/mask_25_4.dat | Bin 76 -> 0 bytes .../phpqrcode/cache/mask_4/mask_29_4.dat | Bin 78 -> 0 bytes .../phpqrcode/cache/mask_4/mask_33_4.dat | Bin 89 -> 0 bytes .../phpqrcode/cache/mask_4/mask_37_4.dat | Bin 86 -> 0 bytes .../phpqrcode/cache/mask_4/mask_41_4.dat | Bin 89 -> 0 bytes .../phpqrcode/cache/mask_4/mask_45_4.dat | Bin 120 -> 0 bytes .../phpqrcode/cache/mask_4/mask_49_4.dat | Bin 124 -> 0 bytes .../phpqrcode/cache/mask_4/mask_53_4.dat | Bin 128 -> 0 bytes .../phpqrcode/cache/mask_4/mask_57_4.dat | Bin 130 -> 0 bytes .../phpqrcode/cache/mask_4/mask_61_4.dat | Bin 132 -> 0 bytes .../phpqrcode/cache/mask_4/mask_65_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_69_4.dat | 1 - .../phpqrcode/cache/mask_4/mask_73_4.dat | 3 - .../phpqrcode/cache/mask_4/mask_77_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_81_4.dat | 3 - .../phpqrcode/cache/mask_4/mask_85_4.dat | Bin 154 -> 0 bytes .../phpqrcode/cache/mask_4/mask_89_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_93_4.dat | 2 - .../phpqrcode/cache/mask_4/mask_97_4.dat | Bin 176 -> 0 bytes .../phpqrcode/cache/mask_5/mask_101_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_105_5.dat | Bin 224 -> 0 bytes .../phpqrcode/cache/mask_5/mask_109_5.dat | Bin 211 -> 0 bytes .../phpqrcode/cache/mask_5/mask_113_5.dat | 9 - .../phpqrcode/cache/mask_5/mask_117_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_121_5.dat | Bin 256 -> 0 bytes .../phpqrcode/cache/mask_5/mask_125_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_129_5.dat | Bin 259 -> 0 bytes .../phpqrcode/cache/mask_5/mask_133_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_137_5.dat | 3 - .../phpqrcode/cache/mask_5/mask_141_5.dat | Bin 297 -> 0 bytes .../phpqrcode/cache/mask_5/mask_145_5.dat | Bin 300 -> 0 bytes .../phpqrcode/cache/mask_5/mask_149_5.dat | 3 - .../phpqrcode/cache/mask_5/mask_153_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_157_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_161_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_165_5.dat | Bin 332 -> 0 bytes .../phpqrcode/cache/mask_5/mask_169_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_173_5.dat | 4 - .../phpqrcode/cache/mask_5/mask_177_5.dat | 11 - .../phpqrcode/cache/mask_5/mask_21_5.dat | Bin 74 -> 0 bytes .../phpqrcode/cache/mask_5/mask_25_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_29_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_33_5.dat | Bin 106 -> 0 bytes .../phpqrcode/cache/mask_5/mask_37_5.dat | Bin 103 -> 0 bytes .../phpqrcode/cache/mask_5/mask_41_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_45_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_49_5.dat | Bin 146 -> 0 bytes .../phpqrcode/cache/mask_5/mask_53_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_57_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_61_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_65_5.dat | Bin 163 -> 0 bytes .../phpqrcode/cache/mask_5/mask_69_5.dat | Bin 167 -> 0 bytes .../phpqrcode/cache/mask_5/mask_73_5.dat | Bin 184 -> 0 bytes .../phpqrcode/cache/mask_5/mask_77_5.dat | 1 - .../phpqrcode/cache/mask_5/mask_81_5.dat | 3 - .../phpqrcode/cache/mask_5/mask_85_5.dat | Bin 186 -> 0 bytes .../phpqrcode/cache/mask_5/mask_89_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_93_5.dat | 2 - .../phpqrcode/cache/mask_5/mask_97_5.dat | 1 - .../phpqrcode/cache/mask_6/mask_101_6.dat | 2 - .../phpqrcode/cache/mask_6/mask_105_6.dat | 3 - .../phpqrcode/cache/mask_6/mask_109_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_113_6.dat | 3 - .../phpqrcode/cache/mask_6/mask_117_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_121_6.dat | Bin 309 -> 0 bytes .../phpqrcode/cache/mask_6/mask_125_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_129_6.dat | Bin 310 -> 0 bytes .../phpqrcode/cache/mask_6/mask_133_6.dat | Bin 296 -> 0 bytes .../phpqrcode/cache/mask_6/mask_137_6.dat | 2 - .../phpqrcode/cache/mask_6/mask_141_6.dat | 10 - .../phpqrcode/cache/mask_6/mask_145_6.dat | Bin 357 -> 0 bytes .../phpqrcode/cache/mask_6/mask_149_6.dat | 2 - .../phpqrcode/cache/mask_6/mask_153_6.dat | Bin 367 -> 0 bytes .../phpqrcode/cache/mask_6/mask_157_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_161_6.dat | Bin 399 -> 0 bytes .../phpqrcode/cache/mask_6/mask_165_6.dat | Bin 400 -> 0 bytes .../phpqrcode/cache/mask_6/mask_169_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_173_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_177_6.dat | 14 - .../phpqrcode/cache/mask_6/mask_21_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_25_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_29_6.dat | 3 - .../phpqrcode/cache/mask_6/mask_33_6.dat | Bin 124 -> 0 bytes .../phpqrcode/cache/mask_6/mask_37_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_41_6.dat | Bin 132 -> 0 bytes .../phpqrcode/cache/mask_6/mask_45_6.dat | Bin 189 -> 0 bytes .../phpqrcode/cache/mask_6/mask_49_6.dat | 2 - .../phpqrcode/cache/mask_6/mask_53_6.dat | Bin 195 -> 0 bytes .../phpqrcode/cache/mask_6/mask_57_6.dat | 2 - .../phpqrcode/cache/mask_6/mask_61_6.dat | 2 - .../phpqrcode/cache/mask_6/mask_65_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_69_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_73_6.dat | Bin 230 -> 0 bytes .../phpqrcode/cache/mask_6/mask_77_6.dat | 1 - .../phpqrcode/cache/mask_6/mask_81_6.dat | 3 - .../phpqrcode/cache/mask_6/mask_85_6.dat | Bin 229 -> 0 bytes .../phpqrcode/cache/mask_6/mask_89_6.dat | Bin 263 -> 0 bytes .../phpqrcode/cache/mask_6/mask_93_6.dat | Bin 276 -> 0 bytes .../phpqrcode/cache/mask_6/mask_97_6.dat | 2 - .../phpqrcode/cache/mask_7/mask_101_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_105_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_109_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_113_7.dat | 11 - .../phpqrcode/cache/mask_7/mask_117_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_121_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_125_7.dat | Bin 288 -> 0 bytes .../phpqrcode/cache/mask_7/mask_129_7.dat | Bin 282 -> 0 bytes .../phpqrcode/cache/mask_7/mask_133_7.dat | Bin 281 -> 0 bytes .../phpqrcode/cache/mask_7/mask_137_7.dat | 5 - .../phpqrcode/cache/mask_7/mask_141_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_145_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_149_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_153_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_157_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_161_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_165_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_169_7.dat | Bin 383 -> 0 bytes .../phpqrcode/cache/mask_7/mask_173_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_177_7.dat | Bin 407 -> 0 bytes .../phpqrcode/cache/mask_7/mask_21_7.dat | 4 - .../phpqrcode/cache/mask_7/mask_25_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_29_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_33_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_37_7.dat | Bin 122 -> 0 bytes .../phpqrcode/cache/mask_7/mask_41_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_45_7.dat | Bin 173 -> 0 bytes .../phpqrcode/cache/mask_7/mask_49_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_53_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_57_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_61_7.dat | 2 - .../phpqrcode/cache/mask_7/mask_65_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_69_7.dat | Bin 202 -> 0 bytes .../phpqrcode/cache/mask_7/mask_73_7.dat | Bin 221 -> 0 bytes .../phpqrcode/cache/mask_7/mask_77_7.dat | Bin 226 -> 0 bytes .../phpqrcode/cache/mask_7/mask_81_7.dat | 1 - .../phpqrcode/cache/mask_7/mask_85_7.dat | Bin 213 -> 0 bytes .../phpqrcode/cache/mask_7/mask_89_7.dat | Bin 244 -> 0 bytes .../phpqrcode/cache/mask_7/mask_93_7.dat | Bin 248 -> 0 bytes .../phpqrcode/cache/mask_7/mask_97_7.dat | 2 - vendor/aferrandini/phpqrcode/composer.json | 21 - .../aferrandini/phpqrcode/lib/PHPQRCode.php | 42 - .../phpqrcode/lib/PHPQRCode/Autoloader.php | 48 - .../phpqrcode/lib/PHPQRCode/Constants.php | 58 - .../phpqrcode/lib/PHPQRCode/FrameFiller.php | 96 - .../phpqrcode/lib/PHPQRCode/QRbitstream.php | 182 -- .../phpqrcode/lib/PHPQRCode/QRcode.php | 158 -- .../phpqrcode/lib/PHPQRCode/QRencode.php | 137 -- .../phpqrcode/lib/PHPQRCode/QRimage.php | 95 - .../phpqrcode/lib/PHPQRCode/QRinput.php | 486 ----- .../phpqrcode/lib/PHPQRCode/QRinputItem.php | 246 --- .../phpqrcode/lib/PHPQRCode/QRmask.php | 325 ---- .../phpqrcode/lib/PHPQRCode/QRrawcode.php | 117 -- .../phpqrcode/lib/PHPQRCode/QRrs.php | 56 - .../phpqrcode/lib/PHPQRCode/QRrsItem.php | 162 -- .../phpqrcode/lib/PHPQRCode/QRrsblock.php | 25 - .../phpqrcode/lib/PHPQRCode/QRspec.php | 586 ------ .../phpqrcode/lib/PHPQRCode/QRsplit.php | 316 ---- .../phpqrcode/lib/PHPQRCode/QRstr.php | 35 - .../phpqrcode/lib/PHPQRCode/QRtools.php | 171 -- vendor/aferrandini/phpqrcode/readme.md | 37 - vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 44 - vendor/composer/autoload_namespaces.php | 1 - vendor/composer/autoload_psr4.php | 2 - vendor/composer/autoload_real.php | 14 +- vendor/composer/autoload_static.php | 73 +- vendor/composer/installed.json | 133 -- vendor/topthink/think-worker/LICENSE | 201 -- vendor/topthink/think-worker/README.md | 53 - vendor/topthink/think-worker/composer.json | 21 - vendor/topthink/think-worker/src/Server.php | 55 - vendor/workerman/workerman/.gitignore | 5 - vendor/workerman/workerman/Autoloader.php | 69 - .../Connection/AsyncTcpConnection.php | 316 ---- .../Connection/ConnectionInterface.php | 83 - .../workerman/Connection/TcpConnection.php | 719 -------- .../workerman/Connection/UdpConnection.php | 115 -- vendor/workerman/workerman/Events/Ev.php | 173 -- vendor/workerman/workerman/Events/Event.php | 188 -- .../workerman/Events/EventInterface.php | 86 - .../workerman/workerman/Events/Libevent.php | 205 -- vendor/workerman/workerman/Events/React.php | 265 --- .../workerman/Events/React/ExtEventLoop.php | 76 - .../workerman/Events/React/LibEventLoop.php | 77 - .../Events/React/StreamSelectLoop.php | 77 - vendor/workerman/workerman/Events/Select.php | 263 --- vendor/workerman/workerman/Lib/Constants.php | 35 - vendor/workerman/workerman/Lib/Timer.php | 176 -- vendor/workerman/workerman/MIT-LICENSE.txt | 21 - .../workerman/workerman/Protocols/Frame.php | 61 - vendor/workerman/workerman/Protocols/Http.php | 577 ------ .../workerman/Protocols/Http/mime.types | 80 - .../workerman/Protocols/ProtocolInterface.php | 52 - vendor/workerman/workerman/Protocols/Text.php | 70 - .../workerman/Protocols/Websocket.php | 473 ----- vendor/workerman/workerman/Protocols/Ws.php | 433 ----- vendor/workerman/workerman/README.md | 636 ------- vendor/workerman/workerman/WebServer.php | 301 --- vendor/workerman/workerman/Worker.php | 1641 ----------------- vendor/workerman/workerman/composer.json | 33 - 477 files changed, 1850 insertions(+), 11920 deletions(-) create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/trunk.iml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 composer.lock create mode 100644 runtime/log/201702/13.log create mode 100644 runtime/log/201702/13_sql.log create mode 100644 runtime/temp/3bcd978f9cb3f7990d7036969405255d.php create mode 100644 runtime/temp/d0720a6de1598fd846b92ea5de3d6a83.php create mode 100644 runtime/temp/f8a32d1b6015ffcf81f5293caa6f865c.php create mode 100644 runtime/temp/fc8deb1371272955af5d837d65c45b2b.php delete mode 100644 vendor/aferrandini/phpqrcode/.gitignore delete mode 100644 vendor/aferrandini/phpqrcode/LICENSE delete mode 100644 vendor/aferrandini/phpqrcode/VERSION delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_1.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_10.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_10.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_11.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_11.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_12.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_12.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_13.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_13.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_14.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_14.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_15.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_15.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_16.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_16.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_17.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_17.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_18.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_18.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_19.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_19.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_2.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_20.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_20.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_21.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_21.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_22.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_22.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_23.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_23.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_24.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_24.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_25.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_25.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_26.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_26.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_27.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_27.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_28.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_28.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_29.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_29.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_3.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_30.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_30.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_31.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_31.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_32.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_32.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_33.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_33.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_34.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_34.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_35.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_35.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_36.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_36.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_37.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_37.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_38.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_38.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_39.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_39.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_4.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_40.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_40.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_5.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_6.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_7.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_8.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_8.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_9.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/frame_9.png delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_101_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_105_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_109_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_113_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_117_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_121_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_125_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_129_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_133_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_137_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_141_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_145_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_149_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_153_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_157_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_161_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_165_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_169_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_173_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_177_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_21_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_25_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_29_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_33_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_37_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_41_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_45_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_49_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_53_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_57_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_61_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_65_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_69_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_73_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_77_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_81_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_85_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_89_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_93_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_0/mask_97_0.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_101_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_105_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_109_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_113_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_117_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_121_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_125_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_129_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_133_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_137_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_141_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_145_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_149_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_153_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_157_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_161_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_165_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_169_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_173_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_177_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_21_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_25_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_29_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_33_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_37_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_41_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_45_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_49_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_53_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_57_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_61_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_65_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_69_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_73_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_77_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_81_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_85_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_89_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_93_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_1/mask_97_1.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_101_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_105_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_109_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_113_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_117_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_121_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_125_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_129_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_133_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_137_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_141_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_145_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_149_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_153_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_157_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_161_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_165_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_169_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_173_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_177_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_21_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_25_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_29_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_33_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_37_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_41_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_45_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_49_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_53_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_57_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_61_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_65_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_69_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_73_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_77_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_81_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_85_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_89_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_93_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_2/mask_97_2.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_101_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_105_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_109_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_113_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_117_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_121_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_125_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_129_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_133_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_137_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_141_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_145_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_149_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_153_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_157_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_161_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_165_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_169_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_173_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_177_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_21_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_25_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_29_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_33_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_37_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_41_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_45_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_49_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_53_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_57_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_61_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_65_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_69_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_73_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_77_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_81_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_85_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_89_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_93_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_3/mask_97_3.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_101_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_105_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_109_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_113_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_117_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_121_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_125_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_129_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_133_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_137_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_141_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_145_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_149_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_153_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_157_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_161_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_165_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_169_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_173_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_177_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_21_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_25_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_29_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_33_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_37_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_41_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_45_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_49_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_53_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_57_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_61_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_65_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_69_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_73_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_77_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_81_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_85_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_89_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_93_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_4/mask_97_4.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_101_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_105_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_109_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_113_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_117_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_121_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_125_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_129_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_133_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_137_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_141_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_145_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_149_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_153_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_157_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_161_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_165_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_169_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_173_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_177_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_21_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_25_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_29_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_33_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_37_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_41_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_45_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_49_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_53_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_57_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_61_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_65_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_69_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_73_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_77_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_81_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_85_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_89_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_93_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_5/mask_97_5.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_101_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_105_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_109_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_113_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_117_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_121_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_125_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_129_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_133_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_137_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_141_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_145_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_149_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_153_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_157_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_161_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_165_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_169_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_173_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_177_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_21_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_25_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_29_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_33_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_37_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_41_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_45_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_49_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_53_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_57_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_61_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_65_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_69_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_73_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_77_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_81_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_85_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_89_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_93_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_6/mask_97_6.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_101_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_105_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_109_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_113_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_117_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_121_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_125_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_129_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_133_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_137_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_141_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_145_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_149_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_153_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_157_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_161_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_165_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_169_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_173_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_177_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_21_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_25_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_29_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_33_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_37_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_41_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_45_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_49_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_53_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_57_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_61_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_65_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_69_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_73_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_77_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_81_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_85_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_89_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_93_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/cache/mask_7/mask_97_7.dat delete mode 100644 vendor/aferrandini/phpqrcode/composer.json delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/Autoloader.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/Constants.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/FrameFiller.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRbitstream.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRcode.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRencode.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRimage.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinput.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinputItem.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRmask.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrawcode.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrs.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsItem.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsblock.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRspec.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRsplit.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRstr.php delete mode 100644 vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRtools.php delete mode 100644 vendor/aferrandini/phpqrcode/readme.md delete mode 100644 vendor/topthink/think-worker/LICENSE delete mode 100644 vendor/topthink/think-worker/README.md delete mode 100644 vendor/topthink/think-worker/composer.json delete mode 100644 vendor/topthink/think-worker/src/Server.php delete mode 100644 vendor/workerman/workerman/.gitignore delete mode 100644 vendor/workerman/workerman/Autoloader.php delete mode 100644 vendor/workerman/workerman/Connection/AsyncTcpConnection.php delete mode 100644 vendor/workerman/workerman/Connection/ConnectionInterface.php delete mode 100644 vendor/workerman/workerman/Connection/TcpConnection.php delete mode 100644 vendor/workerman/workerman/Connection/UdpConnection.php delete mode 100644 vendor/workerman/workerman/Events/Ev.php delete mode 100644 vendor/workerman/workerman/Events/Event.php delete mode 100644 vendor/workerman/workerman/Events/EventInterface.php delete mode 100644 vendor/workerman/workerman/Events/Libevent.php delete mode 100644 vendor/workerman/workerman/Events/React.php delete mode 100644 vendor/workerman/workerman/Events/React/ExtEventLoop.php delete mode 100644 vendor/workerman/workerman/Events/React/LibEventLoop.php delete mode 100644 vendor/workerman/workerman/Events/React/StreamSelectLoop.php delete mode 100644 vendor/workerman/workerman/Events/Select.php delete mode 100644 vendor/workerman/workerman/Lib/Constants.php delete mode 100644 vendor/workerman/workerman/Lib/Timer.php delete mode 100644 vendor/workerman/workerman/MIT-LICENSE.txt delete mode 100644 vendor/workerman/workerman/Protocols/Frame.php delete mode 100644 vendor/workerman/workerman/Protocols/Http.php delete mode 100644 vendor/workerman/workerman/Protocols/Http/mime.types delete mode 100644 vendor/workerman/workerman/Protocols/ProtocolInterface.php delete mode 100644 vendor/workerman/workerman/Protocols/Text.php delete mode 100644 vendor/workerman/workerman/Protocols/Websocket.php delete mode 100644 vendor/workerman/workerman/Protocols/Ws.php delete mode 100644 vendor/workerman/workerman/README.md delete mode 100644 vendor/workerman/workerman/WebServer.php delete mode 100644 vendor/workerman/workerman/Worker.php delete mode 100644 vendor/workerman/workerman/composer.json diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..940aad0e7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..9ffbec9f7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/trunk.iml b/.idea/trunk.iml new file mode 100644 index 000000000..b31359362 --- /dev/null +++ b/.idea/trunk.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..78e665fde --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 000000000..275e819ba --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + project + + + true + + + + DIRECTORY + + false + + + + + + + C:\Users\Anyon\AppData\Roaming\Subversion + + + + + + + + + 1486970693317 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/composer.json b/composer.json index 6dd78189d..307c3304a 100644 --- a/composer.json +++ b/composer.json @@ -19,12 +19,10 @@ "php": ">=5.4.0", "pclzip/pclzip": "^2.8", "qiniu/php-sdk": "^7.0", - "aferrandini/phpqrcode": "^1.0", "zoujingli/wechat-php-sdk": "dev-master", "topthink/framework": "^5.0", "topthink/think-captcha": "^1.0", "topthink/think-mongo": "^1.1", - "topthink/think-worker": "^1.0", "topthink/think-queue": "^1.0" }, "extra": { diff --git a/composer.lock b/composer.lock new file mode 100644 index 000000000..7cdd8786d --- /dev/null +++ b/composer.lock @@ -0,0 +1,388 @@ +{ + "_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#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "7c9685d29208f32193dc293722b2f2e7", + "content-hash": "80db93fe5e6971dc5fd7643c71527810", + "packages": [ + { + "name": "pclzip/pclzip", + "version": "2.8.2", + "source": { + "type": "git", + "url": "https://github.com/ivanlanin/pclzip.git", + "reference": "19dd1de9d3f5fc4d7d70175b4c344dee329f45fd" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/ivanlanin/pclzip/19dd1de9d3f5fc4d7d70175b4c344dee329f45fd.zip", + "reference": "19dd1de9d3f5fc4d7d70175b4c344dee329f45fd", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "pclzip.lib.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Vincent Blavet" + } + ], + "description": "A PHP library that offers compression and extraction functions for Zip formatted archives", + "homepage": "http://www.phpconcept.net/pclzip", + "keywords": [ + "php", + "zip" + ], + "time": "2014-06-05 11:42:24" + }, + { + "name": "qiniu/php-sdk", + "version": "v7.1.3", + "source": { + "type": "git", + "url": "https://github.com/qiniu/php-sdk.git", + "reference": "b91653485e36b4797d7a302cc86c49695e47a642" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/qiniu/php-sdk/b91653485e36b4797d7a302cc86c49695e47a642.zip", + "reference": "b91653485e36b4797d7a302cc86c49695e47a642", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Qiniu\\": "src/Qiniu" + }, + "files": [ + "src/Qiniu/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Qiniu", + "email": "sdk@qiniu.com", + "homepage": "http://www.qiniu.com" + } + ], + "description": "Qiniu Resource (Cloud) Storage SDK for PHP", + "homepage": "http://developer.qiniu.com/", + "keywords": [ + "cloud", + "qiniu", + "sdk", + "storage" + ], + "time": "2016-11-18 02:57:31" + }, + { + "name": "topthink/framework", + "version": "v5.0.6", + "source": { + "type": "git", + "url": "https://github.com/top-think/framework.git", + "reference": "a3a37e6cfad132d5b02ffff8f23a4abc565f7928" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/top-think/framework/a3a37e6cfad132d5b02ffff8f23a4abc565f7928.zip", + "reference": "a3a37e6cfad132d5b02ffff8f23a4abc565f7928", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "topthink/think-installer": "~1.0" + }, + "require-dev": { + "johnkary/phpunit-speedtrap": "^1.0", + "mikey179/vfsstream": "~1.6", + "phpdocumentor/reflection-docblock": "^2.0", + "phploc/phploc": "2.*", + "phpunit/phpunit": "4.8.*", + "sebastian/phpcpd": "2.*" + }, + "type": "think-framework", + "autoload": { + "psr-4": { + "think\\": "library/think" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "the new thinkphp framework", + "homepage": "http://thinkphp.cn/", + "keywords": [ + "framework", + "orm", + "thinkphp" + ], + "time": "2017-02-07 09:39:59" + }, + { + "name": "topthink/think-captcha", + "version": "v1.0.7", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-captcha.git", + "reference": "0c55455df26a1626a60d0dc35d2d89002b741d44" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/top-think/think-captcha/0c55455df26a1626a60d0dc35d2d89002b741d44.zip", + "reference": "0c55455df26a1626a60d0dc35d2d89002b741d44", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\captcha\\": "src/" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "captcha package for thinkphp5", + "time": "2016-07-06 01:47:11" + }, + { + "name": "topthink/think-helper", + "version": "v1.0.5", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-helper.git", + "reference": "ed64408cdc4cdbd390365ba0906d208b987af520" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/top-think/think-helper/ed64408cdc4cdbd390365ba0906d208b987af520.zip", + "reference": "ed64408cdc4cdbd390365ba0906d208b987af520", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\helper\\": "src" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP5 Helper Package", + "time": "2016-12-01 07:08:40" + }, + { + "name": "topthink/think-installer", + "version": "v1.0.11", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-installer.git", + "reference": "4c6e1ebecd1afce3f4ccc47e147d61bbe1bf641d" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/top-think/think-installer/4c6e1ebecd1afce3f4ccc47e147d61bbe1bf641d.zip", + "reference": "4c6e1ebecd1afce3f4ccc47e147d61bbe1bf641d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "require-dev": { + "composer/composer": "1.0.*@dev" + }, + "type": "composer-plugin", + "extra": { + "class": "think\\composer\\Plugin" + }, + "autoload": { + "psr-4": { + "think\\composer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "time": "2016-12-01 09:08:45" + }, + { + "name": "topthink/think-mongo", + "version": "v1.5", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-mongo.git", + "reference": "2dd7ecae965cd3a6e5cc99f3db7c63353dae4cf3" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/top-think/think-mongo/2dd7ecae965cd3a6e5cc99f3db7c63353dae4cf3.zip", + "reference": "2dd7ecae965cd3a6e5cc99f3db7c63353dae4cf3", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "think\\mongo\\": "src" + }, + "files": [] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "liu21st", + "email": "liu21st@gmail.com" + } + ], + "description": "mongodb driver for thinkphp5", + "time": "2017-02-06 06:05:55" + }, + { + "name": "topthink/think-queue", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/top-think/think-queue.git", + "reference": "503c5b809585ca60cba9485a233aa8be4b22c990" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/top-think/think-queue/503c5b809585ca60cba9485a233aa8be4b22c990.zip", + "reference": "503c5b809585ca60cba9485a233aa8be4b22c990", + "shasum": "" + }, + "require": { + "topthink/think-helper": ">=1.0.4", + "topthink/think-installer": ">=1.0.10" + }, + "type": "think-extend", + "extra": { + "think-config": { + "queue": "src/config.php" + } + }, + "autoload": { + "psr-4": { + "think\\": "src" + }, + "files": [ + "src/common.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "yunwuxin", + "email": "448901948@qq.com" + } + ], + "description": "The ThinkPHP5 Queue Package", + "time": "2016-12-01 04:29:39" + }, + { + "name": "zoujingli/wechat-php-sdk", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/zoujingli/wechat-php-sdk.git", + "reference": "36ad89c0f7fe1e4b29591cdb5c25079e1e0bd0e0" + }, + "dist": { + "type": "zip", + "url": "https://packagist.phpcomposer.com/files/zoujingli/wechat-php-sdk/36ad89c0f7fe1e4b29591cdb5c25079e1e0bd0e0.zip", + "reference": "36ad89c0f7fe1e4b29591cdb5c25079e1e0bd0e0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "project", + "autoload": { + "psr-4": { + "Wechat\\": "./Wechat" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "WeChat development of SDK", + "homepage": "http://www.kancloud.cn/zoujingli/wechat-php-sdk", + "keywords": [ + "wechat-php-sdk" + ], + "time": "2017-02-07 02:34:38" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "zoujingli/wechat-php-sdk": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.4.0" + }, + "platform-dev": [] +} diff --git a/runtime/log/201702/13.log b/runtime/log/201702/13.log new file mode 100644 index 000000000..7eb1236a4 --- /dev/null +++ b/runtime/log/201702/13.log @@ -0,0 +1,747 @@ +[ 2017-02-13T15:24:16+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/ +[ log ] localhost/git/Think.Admin.git/trunk/public/ [è¿è¡Œæ—¶é—´ï¼š0.184468s][åžå率:5.42req/s] [内存消耗:1,867.47kb] [文件加载:51] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => '', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ RUN ] app\index\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\index\controller\Index.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/index\view\index.index.html [ array ( + 0 => 'mysql_ver', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:05+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/ +[ log ] localhost/git/Think.Admin.git/trunk/public/ [è¿è¡Œæ—¶é—´ï¼š0.179222s][åžå率:5.58req/s] [内存消耗:1,735.62kb] [文件加载:49] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => '', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ RUN ] app\index\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\index\controller\Index.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/index\view\index.index.html [ array ( + 0 => 'mysql_ver', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:11+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/ +[ log ] localhost/git/Think.Admin.git/trunk/public/ [è¿è¡Œæ—¶é—´ï¼š0.176604s][åžå率:5.66req/s] [内存消耗:1,735.62kb] [文件加载:49] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => '', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ RUN ] app\index\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\index\controller\Index.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/index\view\index.index.html [ array ( + 0 => 'mysql_ver', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:15+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/ +[ log ] localhost/git/Think.Admin.git/trunk/public/ [è¿è¡Œæ—¶é—´ï¼š0.192202s][åžå率:5.20req/s] [内存消耗:1,735.26kb] [文件加载:49] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => '', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ RUN ] app\index\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\index\controller\Index.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/index\view\index.index.html [ array ( + 0 => 'mysql_ver', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:22+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/ +[ log ] localhost/git/Think.Admin.git/trunk/public/ [è¿è¡Œæ—¶é—´ï¼š0.172166s][åžå率:5.81req/s] [内存消耗:1,735.26kb] [文件加载:49] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => '', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ RUN ] app\index\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\index\controller\Index.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/index\view\index.index.html [ array ( + 0 => 'mysql_ver', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:23+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/ +[ log ] localhost/git/Think.Admin.git/trunk/public/ [è¿è¡Œæ—¶é—´ï¼š0.178346s][åžå率:5.61req/s] [内存消耗:1,735.26kb] [文件加载:49] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => '', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ RUN ] app\index\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\index\controller\Index.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/index\view\index.index.html [ array ( + 0 => 'mysql_ver', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:30+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin [è¿è¡Œæ—¶é—´ï¼š0.027518s][åžå率:36.34req/s] [内存消耗:1,675.81kb] [文件加载:48] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => NULL, + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Index->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Index.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\index.index.html [ array ( +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:35+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login/out +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out [è¿è¡Œæ—¶é—´ï¼š0.030166s][åžå率:33.15req/s] [内存消耗:1,733.65kb] [文件加载:49] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => 'out', + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->out[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\tpl\dispatch_jump.tpl [ array ( + 0 => 'code', + 1 => 'msg', + 2 => 'data', + 3 => 'url', + 4 => 'wait', +) ] +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:38+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.285504s][åžå率:3.50req/s] [内存消耗:2,396.17kb] [文件加载:54] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:40+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.253184s][åžå率:3.95req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:43+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.222344s][åžå率:4.50req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:46+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.227475s][åžå率:4.40req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:25:53+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.202697s][åžå率:4.93req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:26:02+08:00 ] 127.0.0.1 127.0.0.1 POST /git/Think.Admin.git/trunk/public/index.php/admin/login.html?spm= +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html?spm= [è¿è¡Œæ—¶é—´ï¼š0.224704s][åžå率:4.45req/s] [内存消耗:2,251.96kb] [文件加载:53] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html', + 'content-type' => 'application/x-www-form-urlencoded; charset=UTF-8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'x-requested-with' => 'XMLHttpRequest', + 'origin' => 'http://localhost', + 'accept' => '*/*', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'content-length' => '29', + 'connection' => 'keep-alive', + 'host' => 'localhost', +) +[ info ] [ PARAM ] array ( + 'spm' => '', + 'username' => 'admin', + 'password' => 'admin', +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:26:06+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.194527s][åžå率:5.14req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:26:08+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.251247s][åžå率:3.98req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:26:09+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.213909s][åžå率:4.67req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- +[ 2017-02-13T15:26:10+08:00 ] 127.0.0.1 127.0.0.1 GET /git/Think.Admin.git/trunk/public/index.php/admin/login.html +[ log ] localhost/git/Think.Admin.git/trunk/public/index.php/admin/login.html [è¿è¡Œæ—¶é—´ï¼š0.242357s][åžå率:4.13req/s] [内存消耗:2,184.48kb] [文件加载:52] +[ info ] [ LANG ] D:\WebRoot\git\Think.Admin.git\trunk\thinkphp\lang\zh-cn.php +[ info ] [ ROUTE ] array ( + 'type' => 'module', + 'module' => + array ( + 0 => 'admin', + 1 => 'login', + 2 => NULL, + ), +) +[ info ] [ HEADER ] array ( + 'cookie' => 'Hm_lvt_a749c1e19337bf37230ba6612eb08384=1461140972; Hm_lvt_df31b90409cbd7237728ca1a770d72e6=1462270422; Hm_lvt_382f81c966395258f239157654081890=1468996754; Hm_lvt_site_tongji_baidu=1470811295; Hm_lvt_ba76f8230db5f616edc89ce066670710=1475199764,1475205882,1475216746,1475222999; Hm_lvt_eafbf4b8e3422783a656563ed24ee102=1476178655; Phpstorm-82d7aa02=0e3cf729-9f9b-47a6-bbaa-60533d7847d8; Hm_lvt_300f21b954333702d5a49058b8302461=1481897306; pgv_pvi=4380452864; Hm_lvt_b74c94c4284592ec7cdd105cda50675b=1483765589,1483767170; Hm_lvt_f9a6d4c4393e28fa0b3f8a7d89c1c6da=1484548786; _ga=GA1.1.1347941633.1484560091; Phpstorm-eab8d6e1=f804067a-eb31-4f5b-afe0-c7b103070070; PHPSESSID=8j7dfvo310ouauv6ve7ulhphu7', + 'accept-language' => 'zh-CN,zh;q=0.8', + 'accept-encoding' => 'gzip, deflate, sdch, br', + 'referer' => 'http://localhost/git/Think.Admin.git/trunk/public/index.php/admin/login/out', + 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', + 'user-agent' => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', + 'upgrade-insecure-requests' => '1', + 'cache-control' => 'no-cache', + 'pragma' => 'no-cache', + 'connection' => 'keep-alive', + 'host' => 'localhost', + 'content-length' => '', + 'content-type' => '', +) +[ info ] [ PARAM ] array ( +) +[ info ] [ SESSION ] INIT array ( + 'id' => '', + 'var_session_id' => '', + 'prefix' => 'think', + 'type' => '', + 'auto_start' => true, +) +[ info ] [ RUN ] app\admin\controller\Login->index[ D:\WebRoot\git\Think.Admin.git\trunk\application\admin\controller\Login.php ] +[ info ] [ VIEW ] D:\WebRoot\git\Think.Admin.git\trunk/application/admin\view\login.index.html [ array ( + 0 => 'ptitle', +) ] +[ info ] [ DB ] INIT mysql +[ info ] [ LOG ] INIT File + +--------------------------------------------------------------- diff --git a/runtime/log/201702/13_sql.log b/runtime/log/201702/13_sql.log new file mode 100644 index 000000000..b716cdffa --- /dev/null +++ b/runtime/log/201702/13_sql.log @@ -0,0 +1,74 @@ +[ 2017-02-13T15:24:16+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.072325s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] select version() as ver [ RunTime:0.047469s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:05+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.083081s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] select version() as ver [ RunTime:0.053416s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:11+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.083413s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] select version() as ver [ RunTime:0.054539s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:15+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.090656s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] select version() as ver [ RunTime:0.059757s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:22+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.081388s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] select version() as ver [ RunTime:0.052667s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:23+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.070316s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] select version() as ver [ RunTime:0.048477s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:38+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.092744s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.062826s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.061914s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:40+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.091101s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.060868s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.062520s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:43+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.080324s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.057568s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.055270s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:46+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.080896s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.054947s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.054665s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:25:53+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.071798s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.049264s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.047247s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:26:02+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.080301s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_user` [ RunTime:0.054278s ] +[ sql ] [ SQL ] SELECT * FROM `system_user` WHERE `username` = 'admin' LIMIT 1 [ RunTime:0.052934s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:26:06+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.072369s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.047883s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.047002s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:26:08+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.092387s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.060988s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.061939s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:26:09+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.079486s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.055046s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.052254s ] + +--------------------------------------------------------------- +[ 2017-02-13T15:26:10+08:00 ] [ sql ] [ DB ] CONNECT:[ UseTime:0.089792s ] mysql:dbname=think.admin;host=data.cuci.cc;port=3306;charset=utf8mb4 +[ sql ] [ SQL ] SHOW COLUMNS FROM `system_config` [ RunTime:0.061361s ] +[ sql ] [ SQL ] SELECT * FROM `system_config` [ RunTime:0.059401s ] + +--------------------------------------------------------------- diff --git a/runtime/temp/3bcd978f9cb3f7990d7036969405255d.php b/runtime/temp/3bcd978f9cb3f7990d7036969405255d.php new file mode 100644 index 000000000..deec22671 --- /dev/null +++ b/runtime/temp/3bcd978f9cb3f7990d7036969405255d.php @@ -0,0 +1,46 @@ + + + + + + 跳转æ示 + + + +
+ +

:)

+

+ +

:(

+

+ +

+

+ 页é¢è‡ªåŠ¨ 跳转 等待时间: +

+
+ + + diff --git a/runtime/temp/d0720a6de1598fd846b92ea5de3d6a83.php b/runtime/temp/d0720a6de1598fd846b92ea5de3d6a83.php new file mode 100644 index 000000000..1ffc0fb55 --- /dev/null +++ b/runtime/temp/d0720a6de1598fd846b92ea5de3d6a83.php @@ -0,0 +1,23 @@ + + + + + + åŽå°é¦–页 + + +框架版本: +
+系统类型: +
+è¿è¡ŒçŽ¯å¢ƒï¼š +
+PHP版本: +
+MySQL版本: +
+上传é™åˆ¶ï¼š +
+POSTé™åˆ¶ï¼š + + \ No newline at end of file diff --git a/runtime/temp/f8a32d1b6015ffcf81f5293caa6f865c.php b/runtime/temp/f8a32d1b6015ffcf81f5293caa6f865c.php new file mode 100644 index 000000000..ecea2d933 --- /dev/null +++ b/runtime/temp/f8a32d1b6015ffcf81f5293caa6f865c.php @@ -0,0 +1,96 @@ + + + + + + + + <?php echo (isset($ptitle) && ($ptitle !== '')?$ptitle:''); ?> + + + + + + + + + + + +
+ + +
+
+ +
+ 欢迎登录åŽå°ç®¡ç†ç•Œé¢å¹³å° + +
+ +
+ +
+
+
+
+
+
+ +
+
+ +
+ + + + \ No newline at end of file diff --git a/runtime/temp/fc8deb1371272955af5d837d65c45b2b.php b/runtime/temp/fc8deb1371272955af5d837d65c45b2b.php new file mode 100644 index 000000000..bab2b2db1 --- /dev/null +++ b/runtime/temp/fc8deb1371272955af5d837d65c45b2b.php @@ -0,0 +1,2 @@ + +admin \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/.gitignore b/vendor/aferrandini/phpqrcode/.gitignore deleted file mode 100644 index 485dee64b..000000000 --- a/vendor/aferrandini/phpqrcode/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.idea diff --git a/vendor/aferrandini/phpqrcode/LICENSE b/vendor/aferrandini/phpqrcode/LICENSE deleted file mode 100644 index 188330326..000000000 --- a/vendor/aferrandini/phpqrcode/LICENSE +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - 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. diff --git a/vendor/aferrandini/phpqrcode/VERSION b/vendor/aferrandini/phpqrcode/VERSION deleted file mode 100644 index e0d3a2ee7..000000000 --- a/vendor/aferrandini/phpqrcode/VERSION +++ /dev/null @@ -1,2 +0,0 @@ -1.1.5 -2012021604 diff --git a/vendor/aferrandini/phpqrcode/cache/frame_1.dat b/vendor/aferrandini/phpqrcode/cache/frame_1.dat deleted file mode 100644 index be28feac4..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚÁ À E9³u`³"PÅ„CÛ牗T!0$ -E•É²Q™Ém½úhÛ¾9{kI"› 9Ln)Ap¤åÖ¾Ë>ß^‡Õz³mënÅ–;ü´mßn†ú¦Ë \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_1.png b/vendor/aferrandini/phpqrcode/cache/frame_1.png deleted file mode 100644 index 86ce6e98d8cf7071291d5e5bb39bc3080511c8b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dx33?wJtG`|X@*aCb)T!Hle|NocXoPQU{GWK+F z45^rtobc!Hfq>uNnVVn7Gg`2HlysJm`1k++!4KjchA)1}^Yl3E66=VaXwbng!p`vB WU-#~W{*xdZ7(8A5T-G@yGywobm@6p& diff --git a/vendor/aferrandini/phpqrcode/cache/frame_10.dat b/vendor/aferrandini/phpqrcode/cache/frame_10.dat deleted file mode 100644 index aff163f6882e1c842881c539160539ee97221e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmV;-05ku1+U=K34ul{KMqP93Nm#TyxdGe+ZZ`bX2|6GY6RiCuCX1^|Hy)_wA3>UwXVkes{2iDcbZs(b-_ G?>v^)7G+HU diff --git a/vendor/aferrandini/phpqrcode/cache/frame_10.png b/vendor/aferrandini/phpqrcode/cache/frame_10.png deleted file mode 100644 index dbfcd70b588c9cc508d210d761ca285c962e70c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^mLSZ?3?#Q*6Fdf_*aCb)T!Hle|NocXoPQU{s`qqp z45^rNcH&0P1_Kcn{i)eEQ&eWabo5TEo z<(=q;l{2~SNFHOk7+K+Z++>o}0+W;js(lQ_L5J;4XHRbpJ@7EKSbjtGxs>0TanIFf yTerS?Jf(G)Wt_o(rC4{V)qPjP^(|O~A28=0dj4ToPRUb}EH+ z?=;|LU8z+!qM$&p(|BcWyT^0wyzYLMW@>oYiN^Dsz8hTJ4a-aiVeGGljlcQ?PgyF*WC@)ePT+&@l!`0?ief1~n6 zE|yl^gW5e`nKwIinOvP@sie!fPIxQBN@sPwvjzdvtR(AR7bMPLqt$5hLLY|jw(O$c@esqcjU~XWxX2%DQ}j2 Ypk>~2FWzvVWdEB3>HkBaKPQDn?w1{Br2qf` diff --git a/vendor/aferrandini/phpqrcode/cache/frame_12.png b/vendor/aferrandini/phpqrcode/cache/frame_12.png deleted file mode 100644 index 8ba67822cdbeb547858ff6fc50cacee24a1b7d39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^jv&m)3?#Q$MzaAawg8_HS0MfW|No^o=iddgdOckn zLn`JZC;Z`O`p;)zaHT2o|6@ssn1en08x5|_?@qWT|MUNU=7X>P-D6i`V>=dLP>_)D zgJ10T|NV^*^<88qe3j=qkQ8w3g4pi>{%_LN%!j{MZKyvjEwPU&^5g&i?aJMXS9tf# z))chnOn-VfGWh@Dzii+24R{?7GfXmbNLp7=x~^a^N0{!Mqa4YM488*Y@7T!EMuc4o**_dv29=tg%zuR9}#CwLe ZF7lm6+oM%3(p}KSMZA}4^aZ5yN}69FYBT@< diff --git a/vendor/aferrandini/phpqrcode/cache/frame_13.png b/vendor/aferrandini/phpqrcode/cache/frame_13.png deleted file mode 100644 index 6e49d35a02fdca84cbce7cbdcc4455a8f6c7a3bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^t{}|F3?$W@cV+=8wg8_Hkl_FS|CipJe;3GV_jGX# zshD$j(m~D!10L6U|G3>D>;fX{1#EjgrWdpJzq`==!Zpb!r-Z@r!+bgW{TFJO+!qN- zO!?Nbz~r}2caWn=<;hYT--4|xm^^H6ZOHEH)LZFp|21ezZE(M-7khSp>&l1M=G~k7 z```Ke>ZO4uStq~s?ri>iZOio6Z8x~5aew=^?BI!1D~3ap?Te2HrSt=x#Ng@b=d#Wz Gp$P!f)Kr=P diff --git a/vendor/aferrandini/phpqrcode/cache/frame_14.dat b/vendor/aferrandini/phpqrcode/cache/frame_14.dat deleted file mode 100644 index e9ae093296aa29fab5e9902b6f08c589fb0ada98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmV<90382#+U=M@3dA4`MZ5Oa11^$Xy@B3DZ#HVvL77flO`r_qyJ{$pN0cm*QcbkW zOb{?`fMilEnI}OcLM9cXSrSxIB``^d*Q8K#Sp&p|blj)ly$_eQu1|D#ZtYL-`P`_v z&)r4JoKwyYFt*0oxjyAsirGHbg&iU}F_Jo|lREvc)7@EgS~DZ_@w7&yaPY@qP1;GU zPx{8yNuAV5=eW*sedFq+PER-?LOv2s0FYrKP6Y+uPUG`wUqQUsGc*0ziH*;3-ma%} dV(p*WKJj*9?cGU|IJ?7+#M);zc>`M4w|A(xa#R2S diff --git a/vendor/aferrandini/phpqrcode/cache/frame_14.png b/vendor/aferrandini/phpqrcode/cache/frame_14.png deleted file mode 100644 index efc36c034f1a851498e5afad249adcce3d9fb04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^o*>M~3?#kx&YTaV*aCb)T!Hle|NocXoPQU{>hg4P z45^rNchW}Q1_K_Jxm}Srn$(yB6x19;G$JQ*YGh^#@P1G+>r7-mB7W`V*G+#Woopx# zaXH*8JW=$>j6!jp4LdeJ%jrLRbWNrUPz|e%?4;ffl``SFGrY?`?QLBi&=CD)URb+W z;hsD0-;#Cz-B}wlN7VYo-djpFrLW5Bvr5*ct<9@=upq-IF3r5?k;t7x_kgZq@O1Ta JS?83{1OWKuRWASl diff --git a/vendor/aferrandini/phpqrcode/cache/frame_15.dat b/vendor/aferrandini/phpqrcode/cache/frame_15.dat deleted file mode 100644 index 18727818d76dba4873f5993f6c9ba948ca4646af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmV zjE0Ef4oN1(k{KEk$4bexVm9YiXdC56v{3T$rBr2ZX>#9!_g z`B^`!y7Nq9&A4060Wo%qv*Ufsu{CCYT^E&9np3604Q_DzFE?pw^~|@kYVIa#&+I*` zl@Y;Kkq??`U*qt@M8@#wp?=9QD&F@s(Gu5We?xHWW={>BMTjUwEzGB diff --git a/vendor/aferrandini/phpqrcode/cache/frame_15.png b/vendor/aferrandini/phpqrcode/cache/frame_15.png deleted file mode 100644 index a9f416c7cf6d12d66b42288ca30634bd231620ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^z97uV3?y$Jul@|A*aCb)T!Hle|NocXoPQU{n&9c; z7*a7OIpGgKW4(k#*1|KZ|Y7;q&c({geOlq6{l_|NsB~@BeOj2?=LKg_g#L z_90*X^SA8}*y`}CUV@?f(2QoEFV40{_R4EX?7Qw<^Koy}!|cERKm4zM{J-8+&^5^V zM2+FAWR7Cxrk}D0bN=>!U_F$7K!)M7p-w2XYph^ate~2LVYZ-;n}smLZ{Gt?94;j$ Q0^P>o>FVdQ&MBb@0G@4Fe*gdg diff --git a/vendor/aferrandini/phpqrcode/cache/frame_16.dat b/vendor/aferrandini/phpqrcode/cache/frame_16.dat deleted file mode 100644 index 60af67845..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_16.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí™A„ E]sëIX´;¸Ün6€È`‚q”êêW6ñ奚`Œ%A/3!¢°‚¢Š!g–ÈÌ¡’1N) éE¢Ï|;®—>6â¸Þ97$ëÄôëc]kköwé1Öü[·m­CÍœcÊRºÄê¹>¦èµ¾šE,•hʼnp„#áxFyWÏÇVWGçòÕ3¼Õ+шþàË“úSŽâ}Äž#áG8b^c^cÏÀŽp„c&3YQ"ñŽ÷çÌvµù›…ñàÎþþ¼–¹kÞ9ŠÜ‡÷}”¹³ï×ú ¢Ä¿QäÿL—/ÝÔÀÏ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_16.png b/vendor/aferrandini/phpqrcode/cache/frame_16.png deleted file mode 100644 index 6ac8fe890573bd9ec52af39a315ac3ab4ea2821f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^fgsGt3?wHw-Y5l9YymzYu0Z<#|Nl#G&c6#}b$Gfs zhE&W+PWZ#m$}S<1weXDnM;@Ma0pIRB@R(Uk#Imf`XJ1(VT~b2AdEtS^#)tMHfByex zYuj(|)!|#c1w;4Yo6V7boNcfCeZ$Lh|MkLuTKNe-qW;_ev6oobrMz06=bb#S{I8Dh zN*l`;cPanr7UAppFZhu8w7WuKxXRac9?ujuXHUG*!(qm7^gY)#$(yb3fo@{(boFyt I=akR{0Keo@^#A|> diff --git a/vendor/aferrandini/phpqrcode/cache/frame_17.dat b/vendor/aferrandini/phpqrcode/cache/frame_17.dat deleted file mode 100644 index 87f0cf593bab1049b794e2cd5af31a03aed5ae4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmV??y z+zk`^4Hi`JDI!!RUucn1n-C-N9Fb z^_i|y`igmlD_r3USGeLnfcpUE6|QiFD_o!A%FM(h?MeyC;;xkP+jach+JBqBM9KYfaSc^$Z&>9G^P0tbL9Kb? diff --git a/vendor/aferrandini/phpqrcode/cache/frame_17.png b/vendor/aferrandini/phpqrcode/cache/frame_17.png deleted file mode 100644 index 5b929ac736efe8f6d1985337c1177744c1269ea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^p&-o23?!MXtt5dITYyi9E0F&G|NqjP^X~##9iA?Z zAr*6y6aMhChD%6fCBE4#FAy~=;3R%V0whYqvPd*ASAoyV)#iDwF3O@+^;xolwc$WL45Dpax@=q3hFS3j3^ HP6ó<Ó™Ît¦3éÌ;ïH¼#Ñ™Ît¦3ÍYœ+og©hù¶óµÙ½¬lnðûF>Øi^»#awm;gè~pÛgìNs{6z’‘»ãºïÞäp¾Ê' \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_18.png b/vendor/aferrandini/phpqrcode/cache/frame_18.png deleted file mode 100644 index ee0d6a35e2e6a84e715d5eb5b4fdc9b5d2749abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^ks!>-3?%c9O1%M6YymzYu0Z<#|Nl#G&c6#}&Gd9} z45^rtobZRAwO&R-A}euD{dY-;n8Z2%#V16aW903$A%y{rCU=?+2?S zoD&%`Zq?5?^Z!3DPkmyQ!<_#d4AUG7+P3l-Ff2$saPI&Ek5tBsDdq+>Yyb1R)Ia|J zpWl75<3-~We~dpEEmriJ=c8wIT*8-4vt+_y-iROtCy{xt9gWtVsEV2B>-_MFQnAED a3kLr4d-pH(c*O{GB!j1`pUXO@geCyv16v^g diff --git a/vendor/aferrandini/phpqrcode/cache/frame_19.dat b/vendor/aferrandini/phpqrcode/cache/frame_19.dat deleted file mode 100644 index 95e26adc1..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_19.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíšA -Ä E»öÖ.ÌNo 7Ñ›¶iiRÚN2‹áW%ðxÁ@ÚÚœê'­ -u6×êˆ.*S;}˜«ÒàÏT úèÌzrt¹ï%ç,ÒÅÚâÎ}ç;“âç)¹Ÿ˜âÝZÚîLåè¹÷¬Pçç$¯×÷ÏqËgœLÂôdJ‡;Üáw¸Ãý.]z#Ÿ¾«[ͽïOg‚­Æô"ÐË áBíî¦}Ç}‡;Üáw¸Ãî˜#1GbŽ„;Üáw¸Ãý_ÝC+w¢@Dfî÷ïç™uø2™ÅÚÉNþû9R7|pWßkïû®¿“ßßkºö¿ºú»¼ÎÓ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_19.png b/vendor/aferrandini/phpqrcode/cache/frame_19.png deleted file mode 100644 index 20fddd84c87b089846e770d1f605bb2ad7f57c71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^u^`OI3?%>V|Iq-X*aCb)T!Hle|NocXoPQU{n&#=^ z7*a9k?UaqYhYUnq&Wq-jC5YuSB#B&dnb|T?LRr=$Z_R}Tk2{2ZJNXJK?z>}STkBod zD!Ahe?+Y#-&W#RvJnw{;%)2x3`m?>pT<459AMQBAm|$4*AhL{Qjqyw_`&^NPya`bn zXJgWHCRV@tu;iM2+Sbh*zvtZi6J38hrG4+=)_Z5WUzM+1``TYoxK{mFuJ#L=ri0wm XqQq6W4|?kYUC7|+>gTe~DWM4f0svZN diff --git a/vendor/aferrandini/phpqrcode/cache/frame_2.dat b/vendor/aferrandini/phpqrcode/cache/frame_2.dat deleted file mode 100644 index 7e42f31ca..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_2.dat +++ /dev/null @@ -1 +0,0 @@ -xÚÍ’Í À F{vë&  à&°Y+?Z1öÐSŸ'y!¢ŸÌÁa815&£•Û´ŽÙHå£Ùžc³•l«ÏFÆè1º#é6 fÊÖü©§6Äø•O7ˆ¨†C¦«›ðÖžÏ8gI®ÏöfB¦ÃÄÿæ\DÔ»( \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_2.png b/vendor/aferrandini/phpqrcode/cache/frame_2.png deleted file mode 100644 index 9c150ebe3c6343f6eb7549ec855a85c65de7604d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~;3?%=liz@&rwg8_HS0MfW|No^o=iddgTs>VJ zLn`JZC;X{zXk7U1e=Qr^_5b1%IX6fouV7|A3{)sB@vn(vQN$aEu-Zyy=Ewg(ur1JZ on5OM)8&Req;!^#!TfKm!>(UHx3vIVCg!03uy4-2eap diff --git a/vendor/aferrandini/phpqrcode/cache/frame_20.dat b/vendor/aferrandini/phpqrcode/cache/frame_20.dat deleted file mode 100644 index d5ecc1d8a0be752c422607ca863710fb41e89f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmb=p^>&so*I@;L*3I9pv5Fh-u3+BVd2h|XrM?Rygy#mlsE%yq{QN_rm3^kbraf_K zT{CJkWkNo9UY6CcnsV--^u zOJldbdLR|gckNx0zDb^tqE2c~fteS{QV^$$s-(VRP{&d+%}!k2n8hWL&;YFRNm@X@0pL0J~;%WB>pF diff --git a/vendor/aferrandini/phpqrcode/cache/frame_20.png b/vendor/aferrandini/phpqrcode/cache/frame_20.png deleted file mode 100644 index 23a061d5442e5950dc57ae4e3f754a72b18ff53a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^i6G3#3?%=YhPDX_8iU0msvcT2m((dUcsbb;eOISnHE*Dg<1ej05g z6TelqVW*J3LxB0VBTn;T9{U-YPuzYYm+{WVu)4`tCvuk0J$+=^JinE@{pYYme)_^G zRCKb+Ysa%PrSIR~y}9%L-~0HO`-ivRxp~21a(d3@Y0=B8FU(feo3S(D-WC(-B3)aC Yhx#Rc#-1{#fi7h5boFyt=akR{0I{51asU7T diff --git a/vendor/aferrandini/phpqrcode/cache/frame_21.dat b/vendor/aferrandini/phpqrcode/cache/frame_21.dat deleted file mode 100644 index 1974dd9d4..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_21.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíšA„ E]sëIX´;¹Ün6Up‚“в™ÿ]Ù˜þ< i-eWö‹¶˜)×äÅ•¼ÉÂ…H\jvqÙHL\6–šÝÐ…rI›¢LܹÜÕ%ÅÓ@´þ±V—vÆÂúý¤(ÏP4|ÎXnÒgÉß¼~]D¾ÉÕ×u1Us S\À°€,ÿÅ2Þ¢N§Ã?D›KºüF-:“eJ]p_À°€,˜a0Ã`†ÁÝ XÀ°`†Á ƒw,` X´]˜ˆ™‚¹‹˜°5 ‰®Y4{å±æñ2íûåvçJs†±Ûí9±˜í)õu±Û¹êÏØ,«]¸“‹Ù^_§7$ƒ_Í \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_21.png b/vendor/aferrandini/phpqrcode/cache/frame_21.png deleted file mode 100644 index 291598c72d21bac6548d649a4c0ae361a3f3c281..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^sUXbA3?%b5?e76nYymzYu0Z<#|Nl#G&c6#}E%0=4 z45^s&c8Ve2Ap-%H>!P`J6Rz)A#2UEl5$}@DKW0@L!ESpLCP{0HM08I+w9mQHp{3|< z#uoLvV(f=)_!nr4*yb$UIO$8w3qQFZD{qDu=PBg(==aGzoAaDygT+2UZ#}`II(`@a zTfYDFcHhw_Mf$&32ite~e#^+LRiYnGe^u zy!rp1m#1E^%JI(s6AU`tXJpwn$-ff(mztmOBd(vL_Y+&&`mg^F|356yrZelFIŸ¤Oò-Á 7Üpà 7ú$}’>É·7Üpà ·tss‰Órs §åVÍÎÜÆ÷’mýï¡Ò¹ò‡Þñ}R~7ôà&¾÷º?7ùÞýÔ¦Iïbhâ{æ»<ÀMi- \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_23.png b/vendor/aferrandini/phpqrcode/cache/frame_23.png deleted file mode 100644 index b8f16ae239dd9f4c18c18191589b0f98e896c750..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^xggBQ3?wI-)rtZswg8_HS0MfW|No^o=idcMc)B=- zRLn_E_|wl2FCmdNaYwkl!49Ruey#-t=bLuQzgozl!F}cTUb(J&bqNVPt_=cgZT~$s z{jWFp<9dnv$v=0tgvgY49MfCbML0qY4m1n4Xi4n5_TOEBC(>kZ^AY#v;4+grFO{vO z&Rv<5>-tpA?P=FPcV6u)6IiDGIq|S3riwW=Ht_4NMYDR2t#y5Bw5WhlxO>L&-&1e; Q10BcU>FVdQ&MBb@0PfXRdH?_b diff --git a/vendor/aferrandini/phpqrcode/cache/frame_24.dat b/vendor/aferrandini/phpqrcode/cache/frame_24.dat deleted file mode 100644 index 7b92e29c4..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_24.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí›Aƒ E»öÖMX0;¸ÜnVP4ÚHSS»xßU3±/O´ý LiJ4ž±Vâ JCŠ%ý‰6VR&ÃÞD‘BœHjDù‚JÏ??™¯êBl­cDZñ½§'óU­ëXïUïÞ0æÃywÍį÷j¬é똳€3Å›¾ë˜cj†ù£{¨¥½:GqÄGÿÝñøŸûÚ°N†v;¹¶ç¬“J ‡ÄÐ<û‡É]ŽêëÈóˆ#Ž8âˆ#Ž8âH'§“ÓÉùÍÁGqÄGéätr:9Ï#Ž8âˆ#Ž8âØ“h­ˆ¯NÔt”Œ´Ö_ÝØ>t¹eëìS­¯¦æžù^\g¯õÎQe?ùvuöÌoïÕ;ˆï>ìˆ*ïwlò×mÑ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_24.png b/vendor/aferrandini/phpqrcode/cache/frame_24.png deleted file mode 100644 index 397c64f8533159fe3c792420d93cab3ec64c673c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^g&@qx3?y%CxHlO{u?6^qxB}__|Nk$&IsYz@wcOLi zF{EP7+o>CQ4;cu!o)=Bt;3dWH(5PX|Xd0Tbewt9=(giM&ioPz%uZwq_{AtYK_=L;b z-~axk|Ds~-#=Rctl_DS6E<4m{++hxOxW(*z(!L?xL2jbS`@Xaf{qGdGWmpvR5thb97@%;4$j=d#Wzp$Pzhc4tul diff --git a/vendor/aferrandini/phpqrcode/cache/frame_25.dat b/vendor/aferrandini/phpqrcode/cache/frame_25.dat deleted file mode 100644 index ba125182e..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_25.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÛA -à …á¬së‚‹™]rƒx½Y51mMÈBG -ÿ¸*Sx|Ua5Ƶ‚Z—Š„-,Ž1ä²HÑPÒRj–šX5§®i†©’áG©>W¥ŽžRïöÕ/Ëâ+uT廯å Ïӯ嗴ªuæÏ¥Ú[Sía£[kví÷5•+5n§Á´JêÜ%+V¬X±bÅŠõ߬u'Á±þÔû SRýå÷štzZ»ì+÷+V¬X±bÅŠ•ÙŸÙŸÙŸûŠ+V¬X±bÅÊìÏìÏìÏ}ÅŠ+V¬X±ö±ª¤¥ÖVI©¢ÖÖ‘+k«qÿ[úËtŽ·oVZÍþvoNV³wÇ}µ{³r<ýR­Þ"RÍÞ]ê W«r} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_25.png b/vendor/aferrandini/phpqrcode/cache/frame_25.png deleted file mode 100644 index 25bc4454afbe21949bfd01d1a8bbab713486ae65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^r6A163?#iy+587mYymzYu0Z<#|Nl#G&c6#}E%$VB z45^s&cB&%ZAqN51|5`cu2Qt4gsF-;4Ir?6nTp+=+Nr<&Ydrf9n!e{G{vpig`o@IAV zpT3{+yxVcXEa?kbazcxq6{lLB{}VM?`;*JP)#Y~fCz=^ŸÎí>ûmÛš·?ª•vô¹¾mg?ßÒ±Îþ³æηªd˜“Cµ¹U¦ÏIk•ÚÚE\ÕÙMs†f˜a†f˜a>œ[sÓˆ9쬩ެ8böËî”]ßöLgÉÝÁ›³è¾äEo‚ w1 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_26.png b/vendor/aferrandini/phpqrcode/cache/frame_26.png deleted file mode 100644 index f4a6b393861525908d76f29c6d8a3bfc2ba4f747..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^l_1Q>3?$V}WIz&Z0X`wFK>Gjx|4VPqzYAoo^mK6y zshE?T@TZ^UpG-o+3Rkfo(&rC6=+gP1FW~!t-{pbx-~a#LB)q!sxL;FM;QZsxnjpG@X|Wc^3Whe7pc$LY4HynfX%(+id5E{n0v40R%_lqrDMPR_=K#Nbs1J=Z*FW%KHev5UH0bx zvhP3A?5`T{eKs|C?=(67e>XRlv;V$O{Jat(4^}wWvJV8GgET;O7Rx~3dn=g8x81kq zTBsYH(o>B~k(w6wdiUP<-~a4d_f^K|^b>jOg|*Ku{@y(>H?~&4sQTS6>xH+g>q>Tg S)BB(oTgzV+tiQ0S`YHfvkCqVt diff --git a/vendor/aferrandini/phpqrcode/cache/frame_27.png b/vendor/aferrandini/phpqrcode/cache/frame_27.png deleted file mode 100644 index 8419ec2301e8c0278f9f86d97417d51d3df000bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^wIIyM3?#Su{YwKY3Z=Ttv zWf2y7&zVY?&I!gH*lL(C<3L-FqWk?PvhJVcioOWu?Vls-VEE&Jg0;|sb157vj!F0I zoFJt8?3CA*9ZT0UM?PxZcc8vtF);OXk;vd$@?2>|KWW^(`l diff --git a/vendor/aferrandini/phpqrcode/cache/frame_28.dat b/vendor/aferrandini/phpqrcode/cache/frame_28.dat deleted file mode 100644 index 8cbaa1961bed61c3d774192448857480eb49762f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmb=p^>&UUU$cUMYi#vvHNCX5BIcc(ch)S(P&rt#xF_>o`BhIHdwqxJ`pXR0ab3O; zyhvzU>thM$uzdDevN_u7>@yw8*(S-Z(T=tZ`1|rey6L^W%k_%NF5F|Ui=6h%{9e%d zZ;qDSdF$l&FG(-^99&vHr#0ZpbjM5kK3J?R3cg=E!9=w8_VG%C;KB!IWDhW~88k5R zBz#a~TYLY*^54yi?c%-~`hWLu-)r%Km;K+Pv$J34CnoIU-@%{2z$^h(euDc6>nEnl zMr%QcZlKHrafo2K5)VwFf<8p>oeNCgzsZd&I##GMUwz`}E2+Yy_3mfghfV%>+;#2K w_7?4#@$=nu@tm|;Z8o*f=bqOl7=Ny{aÌÏ…ãþñŽÄRõ-r­“÷n.ïꯋ\®T¿ü:Ó*)|)°À ,°À ,þÑâêóåéx_ã¬}:^R„ƒUoÉ¢‰uÁ~ÁÞ‰X`XÐÐÐа_`X`XÐÐа_`X`XÐÐÐаwbX`¿¥PUõö)DÔÞ"cÈ{‹zçÎõ3ê›é<}¸ó¡^?b÷mÿÎÂìžƒíº°»óaûŽ´’Âê.] -³{Q6uáT,9 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_29.png b/vendor/aferrandini/phpqrcode/cache/frame_29.png deleted file mode 100644 index ffe072c868268ea77f05f71c17088021d549090d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^tsuP;BJn$?U}wS}0TXykDcgTe~DWM4fn*mjQ diff --git a/vendor/aferrandini/phpqrcode/cache/frame_3.dat b/vendor/aferrandini/phpqrcode/cache/frame_3.dat deleted file mode 100644 index 188d531c2..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_3.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí“Á À E{vë&  à&°Y+¢b¤öÐkŸ'yù‘¤¿ÌÁa :äÀTXlÞ¶$W+Óvû®îœ¢9}gRæ¬@H0YPB½ÆÃEmÚÚ?ûœÍ±ísœÖ"bµìt2cnÖé†É:½ﺭë;¿Y§“ÃzÿQã«7¿Ô \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_3.png b/vendor/aferrandini/phpqrcode/cache/frame_3.png deleted file mode 100644 index 945ee7cb993022c3ba0081cdd6b833b92395b30c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^vLMXJ3?y@6zxn_vwg8_HS0MfW|No^o=iddgJUm?- zLn`JZC;a)}-nj7F|NHzr>;C`eQV>iqJa$2VtqrL1f5H!Lr4wnjD-wRh|KHox`0@XB rt_3F@rfGYe5mn(<%W`B5%F}Pb9F^HI>YU!D_xBYq^}BRWJ#p5u$@O~+U60g$ z^ZZ%%C&E6_>--Dp^Lw@H{+B%qvQk^Qjp5k3r)$sId8T^L{8KD*Wwpx3yDA4+gnbMS zvP`Zw$-FB!Z`b@c+Rxs&eZ4X_H(t}zN!in)_Pe(B-kBwv{Vn`0k`1A%fm#-_F9E_Q zHV6?QtI7cc&w)*Z5ts^pmI@a>n)4-LQd5VAxSF@+|0}%z9_8)t4X9Z8-TGsS+L_O` o3*N2iKjl*T?_}Zp7w1|m>#S{6FV2w-Q4O5Cykv#>|8j$;0GhIr$^ZZW diff --git a/vendor/aferrandini/phpqrcode/cache/frame_30.png b/vendor/aferrandini/phpqrcode/cache/frame_30.png deleted file mode 100644 index 75dbddd2416814ef91b71363c859c3dbe86f0802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^ogmD}3?!9ab#?(Mwg8_HS0MfW|No^o=iddgws^WY zhE&XXJ8dKHAp-$deb!SFYn&!CY6Q4UH4Jk7sONJ?V2XzJ1%+7_{OTQ#YUCIa<5O*I z@1FcVdoow(KLw+VEhS36DYCp#b}QPnZQP#yZF5>L_wIw#N8!&ZL32x5J2SZFRNT#W zJ+d{@@YEHq?4aMP=C-7+TKmm!p0e&81)Cc7+)G|xes$W5z3%q9Wf`gZcFvkf-|8dM zyYVæ«·ù§:ñÒÒÄAš8üý-+mTíÎÎbl°Ál°ÁlèštMº&]“³l°Ál°Áº&]“®I×ä¼Ál°Ál°Áº&]“®Éyƒ 6Ø`ƒ 6Ø`ƒÍÝi¬uy´ØXWòè±Éi¬²\t†ýz•—Š>•.î”z¾kÊß t²¿7©ß7òwJõÏ”¶4Òw‘ÒˆßÓÖÍ85‰ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_31.png b/vendor/aferrandini/phpqrcode/cache/frame_31.png deleted file mode 100644 index b14d1fa267f229a5b21beb06401aaea3c7ee4673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^y&%lU3?w&9$bJT-*aCb)T!Hle|NocXoPQU{+Ue=y z7*a9k?X-=&hYSQ<^+j{d5~R!+0*%=60@{+AM5auc(!n|5PK2l6>q3RVA30i5E;U78 zzm!b-J6oUkrH>MO^Sih(w%FVJC(3=iBOLgbf7_Y;qQm^gYNmAkvubmKsBNb!r<>aC-Pn**9g*ßš?aÊOƒ¿k±L_£<[c—ñ¶ï>Êc˘õuÔLIäÕ%Â#Œ0Â#Œ0Â#ŒÞotÑ¢šõµ}ÅÜ4Ífv_)‰ÂE¢pú¬h5R·88³1Â#Œ0Â#Œ0¢ÓÒié´tZÎ#Œ0Â#Œ0Â#Œ0¢ÓÒié´tZÎ#Œ0Â#Œ0Â#Œ0¢ÓÒié´tZÎlŒ0Â#Œ0£÷9q"¢ÉHÜœH™Qþµï"ÛÕL5}-ÝÜY×¾Óê¸kì`¤â>¶z鸳®þÖ4&Òp÷á!‘Šû!«ù`¿:5 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_32.png b/vendor/aferrandini/phpqrcode/cache/frame_32.png deleted file mode 100644 index 58d42db3c5b755228c7565cdf8128438559cfe1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^6G51f8A$#VJCOjS*aCb)T!Hle|NocXoPQU{+U@D$ z7*a9k?X-=&hYSQ<^`{N~#na9iwuURu!V?k}}KG;`at7keZ6HBO!j zPFw%CYT8codjH_FpLqjK{?_pC(kM^0-qBFEG_3wrT<*O&_g>F?-&noh_CE9X8vcLx zZ-?L5c<5S4(d*MS%jL4aFL*KcmFQoSBb$x~rEe4WKl3d;RlhCaH-pl}T98i}JYD@< J);T3K0RZV1Z(9HW diff --git a/vendor/aferrandini/phpqrcode/cache/frame_33.dat b/vendor/aferrandini/phpqrcode/cache/frame_33.dat deleted file mode 100644 index a2613755a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_33.dat +++ /dev/null @@ -1,14 +0,0 @@ -xÚíÜAƒ …a×Þº‰‹™Ü@n7+*L++Ó柮óò‰ÌbbÜ*LCï‘°‡‰c k™H¥rš”j•²J5Yíi~0•_«òŒû×TÊTõ}å—e©>ýö5‘b_åwÐÍŸ?¿¤ßìæ§ÖÜù†\ý­RaÆi+7õßW©¦\ãþwLUNåL¦Â -+¬°Â -+¬°Âêÿ­jßÒO·ŸkcëÞñôç\Ë©|%•o<á‹k–­Lî+Î+Îv¬°Â -+¬°Â -+¬°ÂŠ>}ú ô8¯°Â -+¬°Â -+¬°Â -+ú ôè3Ðgà¼Â -+¬°Â -+¬°Â -+¬è3Ðg Ï@Ÿó -+¬°Â -+¬°Â -+¬°:R‰¨ªX³ÚB‰9«”IÔ=çkÞ±o/Swçؘ™Ù¯Ï`g¶áÅÊÌÈr_Ù™™Y¾ƒVSY™ÅzIefnmQoz >á \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_33.png b/vendor/aferrandini/phpqrcode/cache/frame_33.png deleted file mode 100644 index 924c728e0aa0b3c22b7537d833d53f072a923640..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmV7LUZoG!D=_b+G>~XohCiGYUA3?`$qlQw=oFH)|?GM%W=ZP z?o-WP`{JCI-1j+kVd;lds9Q_l#)_e*e%!H*n2YxP(|eQ4yd?KKF7uLH<|VmLxpSZ$ z1MOt{Gd*JG7)eOIdQ#d>d~xt^_>>*JiBA`^i7E%w2i00000NkvXXu0mjf DAwYG& diff --git a/vendor/aferrandini/phpqrcode/cache/frame_34.dat b/vendor/aferrandini/phpqrcode/cache/frame_34.dat deleted file mode 100644 index 7ceb0259d4a6f14ad6d9e5d76eb87c07b034c711..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331 zcmb=p_4bZoU$cP#>xCNzb)OE=JWTSu!=w6LqU*^gyy-W?Z;@;Fg>L`1=l-EkZ?iVvV?C0_X=i2_ zCW9G)ljhbgx7l(nwvgX`%e6^Q_5bh5(A^bzqxMK4)(Kt#i%i{@a^9b964fc@euQ;PW=~uiO$9&bgnPb zQZeW4^o^WMjsmX#U8f~jtBEBjv`tG?seT)Aq*3=qXXlI+_hnO3Z`!AqXdKG<^zh@1 z$2a89EJ`kxb5FQ`=(boyS7nhxxW0w*`IRj*&5GUQE?a*(lXrI>tApXq$M?>eXvpg? zJ7Dnt${M{rF8!;dRI6f&a!y#e`IJAq{!imf{LG6>4VD`%_D=Lmb(?#S3j3^P65% diff --git a/vendor/aferrandini/phpqrcode/cache/frame_35.dat b/vendor/aferrandini/phpqrcode/cache/frame_35.dat deleted file mode 100644 index 56bc3e28ee83b24767b00391773560ca842f0b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmb=p_4e+@yk-Lt)(dC;l&Z2-bJsJ}Gu4L)&k?(_Yz24S#B<8tYk0!l*-FIIBjt?0 zZ`YVyJa2n|_x3Zdk9bXgHfz^qygTh2XweY|A-_q!&2k4t`5 zdHt-uf3>=7$NxRcHpcK?YhPbowodr?x--Th*X`3@Jbts=sCI7N@2dT+b7tjn%l`^M?L^?B>}TrgGEWxv+gtv>&1 z^SpAXK9B(~H-km1?tx8$7`Ys%2q^kG_8{C6zxh|wzed(x`wSQ9yIX(x>6}yP9JAN? zaAi*~^7>i6``g|}l``+#Pxx*7Q>a$?+fMp@&Wq;Q9mQL}|JJ)V^U3dOv#MPg=?~>E Qwf>fGyj#QM-^sTe06Gf6oB#j- diff --git a/vendor/aferrandini/phpqrcode/cache/frame_35.png b/vendor/aferrandini/phpqrcode/cache/frame_35.png deleted file mode 100644 index d29806c6037dea38b05d8211a0a45c2e0c1ff1d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmV69g+8T9FaOlD5lXr@5A{4g21 z`3F-KR1%=7ED2boeU%@kIrD;Vui5n8>omRhI!*7rPSbn8llib6 tcmDZ{$vZ*}#x^0hn~*mYfxOG)^abWznpY06{Y3x(002ovPDHLkV1fp`ZrcC= diff --git a/vendor/aferrandini/phpqrcode/cache/frame_36.dat b/vendor/aferrandini/phpqrcode/cache/frame_36.dat deleted file mode 100644 index 282c60d23bca6a7c3ac2c3da0744992f3415d8d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmb=p_4ck~UbBG!>xDHtOI5|b@#Qg?H_pDw$;Z^XB}m*L@cxD_oki=_lM}=$=E<9G z-R?29c-FLpVq^dBT+!v^g&NTH_@wd)yXEcGyBzK-j`OqvsA7=ytvYW@9>9b z_WqKQLf0xI)<4~MTkdf{-#UAXb5bv_XIHKgJ-y+Ial~c2Rr$$h4+rJ0P5XKC?x8T> z8}0rlCMY_$@kss?KYU%i=k@&DYZIUS(0u#r`Qg$fYBKRcefj5YDxU=N96s;-dSNve zNU2c@M9){5FJQQ)9U&%Zbfx$L7;cb*sRL;UIPVCC2diGpI|Q*2B5lhKfv>@?fNH7t zol$&B)74DpqnE3hkLL7O>+2T(ei-}yr{??h8{VJ({BR!k#40|+{iXYjd3MGhD3d#O cr#P`%x8CVcM|J%hp|(5rsloS;^$2?d0KeI-=l}o! diff --git a/vendor/aferrandini/phpqrcode/cache/frame_36.png b/vendor/aferrandini/phpqrcode/cache/frame_36.png deleted file mode 100644 index 96ecb421354bec386b535fe1e2cf4fd753142013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272 zcmV+r0q_2aP)#C@Z9i(!~1M zrir*qV+k70-90^>68kqFj-O|}12;kA2%H6FtI=5KdLSEeASYjjHt&ri*^^Il@nz@$ zcM<0VP`V6=a&MyY!``k&|IeMgxU(i;@#22_fZ4~6ypj)cPBagDuD;9QQOl0fagwX_p(bdJihERcvP@-vOY{Y; W&Oa>B-?9<_0000W;+CoZ{7==byZrmTWaR#jx=*j}d9!=n z?jLue-7XczO-tXCTNhVr9_xF%CU42z`5zaC*qmOutsr!7Nc8d9(}S-rUG+8hGgqu? z>hF#zI+2@FPEJzwo~AQDvGQO3&(Hs_exLZN>iNf?wdd`Eg1#-+{C#?NzFg&`r^?Tk ze!Y~>4^#=)^407M7_OO)5CclC+`bSD6Zb-m25VS)uMGyjf-Qs@QzZ?7*Sz=JBAN4V zs?k%Ey^Est6oX4n+Z;cW+cNi&e)WmBGn&?4`2F$Yr!zA>_V(^buig{cW~=_xLjUnR b%i@}2^Cua-iuB0WJUmakbVYvd1M%+wXsyHf diff --git a/vendor/aferrandini/phpqrcode/cache/frame_37.png b/vendor/aferrandini/phpqrcode/cache/frame_37.png deleted file mode 100644 index fcc51627d75b1195d79e915e5ba5a26accff30b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmV+y0qFjTP)Q+l9uWqZrGW15EmmL1Za)FnMD)vS~08#pCh dPbukz=wHCg@a-IQ|2+Tz002ovPDHLkV1gG4c{u<8 diff --git a/vendor/aferrandini/phpqrcode/cache/frame_38.dat b/vendor/aferrandini/phpqrcode/cache/frame_38.dat deleted file mode 100644 index 71cf53eb5..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_38.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝAªƒ0ÐŽÝuÁA2«;ÐèÎkü(üg¾Ày•tp9Äï$Ëò™¹Dœ”ò¼\ºe^'tÒ-aIºŠFMšSškÂðIóŤÓ:7®¤|LúkŸNã8N7®œöi}ö‡×Ÿi,Ÿ[W†¿g®Ó´Ì°ë?3ô1÷i™¾N·}}=ÂOM:4“”)S¦L™2eÊ”)S¦L#$½ÿ ôÂJã­þÂJM:}ý]˜•ÖL›Ù§ÎSÿQL™2eÊ”)S¦L™2Õ¡èPt(:Šó”)S¦L™2eÊ”)S¦:ŠE‡¢Cqž2eÊ”)S¦L™2eÊ”©E‡¢CÑ¡8O™2eÊ”)S¦L™2eÊT‡¢CÑ¡èPœ§L™2eÊ”)S¦L™2Ý“¦”sJCIKÖÔ‚iÍ93ônº_Ñò ÿ¾¿ü¼“+R‡û®£“ièû£Žû4ö\Çg¿¥¤‘ïŽ;% }ßaÞnŽ£ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_38.png b/vendor/aferrandini/phpqrcode/cache/frame_38.png deleted file mode 100644 index 89238f3c5bd6d3fa6aea44d2037dfd3bc0a34723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^D?yl%8AxVH_vZj9wg8_HS0MfW|No^o=iddg&Um^w zhE&XXJKd1$kb{7$dT5{Gy(7n%mk6AeQJ$Kzej0N`L_}BkhKVNY?%zz+J@k*Y+f^`a z^_k}%XBzDPc}byOdLr}0>WR7QehE+CtzjSL!0mG&m*?>2?tA~Zcn+}6IBv0`eDmq~ zc}z}+JJ0WJ_POR~GP(Dkvz2Uh;m>QHUB{HvnxDHtOI5|b@#Qg?H_jFnQdbgP@~WvsW^bbC&dz=Fbh`ibKL2SI zT-|A9x%8!2QQou6xhFC&&-ym4$aD9pW82OKdqz6mnsRx4=J8U#egE%mowI%0@84xI zZ4W<8zrSnRI_rgRZWpP2x%=6e@AT!byU*{w{_FTmgQ=a_yU*CBT#j3w|M=bQ)LTYp z-zJx@O!B(5Z`GEZo10QkPt%RwHa}ta_dLm$f4^*>CH-=s6v(7v&e*fR{ ztx~zGZ*4yp{T!$et^>&Eoe;)fc50TK5C1au;(Jh&pbBm$WPVLpzUJk@F9}r!=o)#a zk*D#WWv<`r;O<;6&F5D_CzowJTRZ36gVgy2`}e(i{XD+qP1dt!Yu@B<2_N6LRd3?0 je}Av+{;~a+3#!$wOf&lxJI6os@crUlGxJ^MEBXTf`CjAm diff --git a/vendor/aferrandini/phpqrcode/cache/frame_39.png b/vendor/aferrandini/phpqrcode/cache/frame_39.png deleted file mode 100644 index 1dc9cd1bc53a2e27ad5b61791c7a76cdab408123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^YeATi8A$#}%mtDRYymzYu0Z<#|Nl#G&c6#}?e%nV z45^s&cKSvxCPM)i^QmwDPN{$JaQO_kPo;GYt#kKIo$zc&c3+{t4%5trR)KEM%_$W+ zC*PSQGk)DUdv52RwA;cz%>sV@oL27Om%5WD`n|Bh@=ZQB4@JyxmgML?8g}V+>Zb|( zXHzc5U$%Rcbzopr09yKW761SM diff --git a/vendor/aferrandini/phpqrcode/cache/frame_4.dat b/vendor/aferrandini/phpqrcode/cache/frame_4.dat deleted file mode 100644 index 67b30e82a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_4.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí”Á À E=»uÐ pجQ•ØCOMŸ'ÃË$ ³@à¨Ø3e–F©\FNXRyÉؾC{‰a8­Ræ Ńa2@ñ圉qküßÉH1ê(£ˆÅ`cç¦j³~Ë0ö¥¿ÃܨÖËÃعnXÿGåÿÄ€ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_4.png b/vendor/aferrandini/phpqrcode/cache/frame_4.png deleted file mode 100644 index b72f9e70d374741d1d4ec4537b7a379088325669..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^iXhC$3?y^40(5{BTYyi9E0F&G|NqjP^X~##UY;(F zAr*6y6aM`F&%o^b_W%Fyk`gih|L^bcaylaE>?|uG@sHV&`Ea~}XRw*|gxLT4_cSuT v*!F>Kf^¦ÀÚôã°<]ßÕÐëß³bZ«nã¥^A›öQ}[÷9^ª]«yþìnajM܇K̘1cÆŒ3f̘1ã¸Æ{ßW5}ç½{ÍÑ7lMßÒïÞšxÜI<¼áK½¨Æáαyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘1ã«Û»Ù»={·“αyl3f̘1cÆŒ3f̘ñ÷çœSÊ‘ŒÓ’7¥HÆKÞ¼g\ç¾âuõßÏ_ÿªr'4Ü[çÞ-Æ]›…qˆûL·ç8ƱÛY1q„»‹Ä!î—ÞÔ/(%û \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_40.png b/vendor/aferrandini/phpqrcode/cache/frame_40.png deleted file mode 100644 index 8034d862d60aed55180914d323aa4557f39c036f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmV+m0rdWfP)xUy&%?@Zqe$Lt^IHF*f5Ycy_0y589U#OP zDOgy2<>WYTpYrhA^tGLJe{+Ghzs|!@a34iK>1DI|zE}TO_YMEQ{K#kcE&Gwr@LTpH zpW(OcM?S;hKGje=R>w-jeWqvU%KmI=|;a=Y2bm$Ju*=arXY8`~`*2(t2@u R+XVms002ovPDHLkV1jNhe*XXf diff --git a/vendor/aferrandini/phpqrcode/cache/frame_5.dat b/vendor/aferrandini/phpqrcode/cache/frame_5.dat deleted file mode 100644 index d5dafe186..000000000 --- a/vendor/aferrandini/phpqrcode/cache/frame_5.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí”1À E½u 7ЛÀÍZµ‡|N†—üD B0@R$l,-™>VKZ[<ýØÚz—qÆŽ¨ØYJ&ƒiåš‚‹ZyË:Y'ë¯YµÁVÿ&—e•RÄ"§sj©Ýrþö+Ëé‰ù.·MÆŽ»–Ó9ÓòzµsŽ”É, \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/frame_5.png b/vendor/aferrandini/phpqrcode/cache/frame_5.png deleted file mode 100644 index 96b6494f35ba71741f72bc32599a359f5ff9798e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^svykB3?%;tY;pinYymzYt|0FJ|4VPqzYAn}d%8G= zRLn_E`1AiiKeO}O|Nral4R$bjGKvT(os*D~I&|QJJV%|uAJ)mthyDc|{ILJu|LIo+o1yT37=P9COrj~W-G?9JF6VLpcd diff --git a/vendor/aferrandini/phpqrcode/cache/frame_6.png b/vendor/aferrandini/phpqrcode/cache/frame_6.png deleted file mode 100644 index 05ca358b0ebc0c3a0b76df7bc0411af2d596f586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^njp-`3?wJ5o3s^3u?6^qxB}__|Nk$&IsYz@<>Tq% z7*a7OIpGgbjFGJ^N}+Uq<3Ul6SeNAsih33jb6-tP*oFY|>b2SQ8z)uR?vtd#dj@Cr|apornv1)El=m yfE)D&wC=s-ob2oKGnB!6a?|8|>$jotR__k)Tfb?1CbP75iyKQ(;+|ur1|Lo4=9^M0XYLiuS90INiM|3P! zl1w_Dw_=lP*>oFG#pgDRUYDi$t)1S^DCLO~UG_j|*#gebx3BZ+nH+yL4#Xe`MZ5Oaleo}by@B3DZ#Iau!Ks7Twck}KFFz0sl!D6kkmQ`t zEwPxAt7e4vK(tICs>9R+3CvUzZbGE0t`1I&>PRt0PIx4!4(e4n`AHE@7YTQ-GD-FT zU5Un`f|ct4S(0g==b;u6VVT$-+hayNZ>kV6cem$hSdySrt`hAq)&LF)(-K_0ARP&tIq1zdFuig-v-KQf|`xVm{I3hDX Dr=(<@ diff --git a/vendor/aferrandini/phpqrcode/cache/frame_8.png b/vendor/aferrandini/phpqrcode/cache/frame_8.png deleted file mode 100644 index db1f1877ab3aa0f221156a6c8ab461cf548b7c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^h9Jzy3?w~+F2@5Ywg8_HS0MfW|No^o=iddg8a-Vc zLn`KMov@L&*+9hQeCRTV$kt=bOB^&Mo4IaE8~7hfU-_hp z>GjwD9k;ZU{x$DC`?c>k>SwyYUwnVQ%-n^a7#d|n|4z96z#8Zn22WQ%mvv4FO#qqh BQ^o)Q diff --git a/vendor/aferrandini/phpqrcode/cache/frame_9.dat b/vendor/aferrandini/phpqrcode/cache/frame_9.dat deleted file mode 100644 index d79295ee0f93bf3b101c220b436cc0d302b3dd72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmV;<05Sh~+U=G>4ul{KMO}02Nm#TyxdGe+ZZ;LFff1oFD-%8|o4)*%Sp6YHdA;?7 z06sMb75pI)g+!%pq7Eks1(Ax~0~7*wDR<~T*G1Lma@N`!#dGl;n!P;E()p>G>kd7u z??pPBm5wsHKNm@}RC?UEAu(m9sO7c1-s)A`rDjb%?QOHhl&f?!YX5jm&9&Z*<@HW4 z${vU~>O~9yjCv75*xjqWU*~WAGqlU$A+xo=8}e*Zc!_gVK9@YR<##wsNwa7{iF0qJ IFSFt|>Yb-#$p8QV diff --git a/vendor/aferrandini/phpqrcode/cache/frame_9.png b/vendor/aferrandini/phpqrcode/cache/frame_9.png deleted file mode 100644 index 74ddf08da2f671de67f1fed645afe705662e8424..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^rXbA73?y%B7#ag9wg8_HS0MfW|No^o=iddgYCK&W zLn`L%ov@L!AwagA1{7>@m-%iy`qAdx51;UBica)=ne)?S3j3^P6=xt5c>OY+~gW)7igeMcUJuTaR$o&p-O;5+hmJG|D H^z#4!b%aZc diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_105_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_105_0.dat deleted file mode 100644 index 97e9e5dfff667572d9451add45a3a5e05c157625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmb=p_4bw{SAzlr%YohNFaEDz7aTYx-~rdw7iUi!E!oMQ9qZ10=B~!Y1!Xh8FbC`Z zyZK8u`25eDzn4VhGJ|J-om&>Dy5;$~&1-gk)KCM0Wh*o*?Q>r*t&Z>8Q#|w7j5+Ec zQ8l$%fAdS<5uE#%zyDF50RnO9r|hm-%}`_g>f0!1_?Y+V!H}75vy!UUpR@9hH`4Vh H(~brJDN;^O diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_109_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_109_0.dat deleted file mode 100644 index eadf83a2c..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_109_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÚ= -€0 н§iï9'Åb‡$ ¾tËýáÚû^#iª¥Ëi?³ÅôÛbúK[AUØFå¾ÆµÄ³x]mŸ]2Ž-Ä–KŽ~ ÏVw}¶X›ûÆÆÆÆÆÆÆ&O²É“Þ666666yRž”'½%lllll/´åhœl…Ãîm ¹¤êádël™¶´3Ù+ïÛmÍ« \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_113_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_113_0.dat deleted file mode 100644 index 5eb7f5de2..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_113_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÚ; -…0Ð>«Iö¿9+Eñƒ‚sá=ϤL1Ì„[¤÷¹FáZU‹4‡?i<ÿç;7çòç;‡ÆP¥Œ#ýW-[ñݯ6÷µddddddüc",;í"¼Ÿskæ‘‘‘‘‘‘‘‘Q&—Éerw######£L.¯Êäæ‘‘‘‘‘‘‘±Ð˜y¼1†^˲\òîÆØ3Æâ³ÚÓóøÏÆ ‘Ñv \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_117_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_117_0.dat deleted file mode 100644 index 781c7f875..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_117_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÚA -„0 Ð}OÓÞÿr³R,#3öñ¥Ë,âÃþ¢½o5ŸCµØÐq:õõÖ;;¬wvN­ÁJZGÅ=Œm»û}Úö ѱ¬¬¬¬¬¬¬¬µ¦2âÞi‹RïïkÆj_YYYYYYYYeÙ_ö·¯¬¬¬¬¬¬¬¬²¿ì/ûÛWVVVVVVÖkîáýd-úϺ,#¦ßÀOÖÎZc]|‡{ž¾Áúˆ­$™ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_121_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_121_0.dat deleted file mode 100644 index 68810c347..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_121_0.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÛ1„ ОÓÀý/·•w YMüSø Ä8>2SÐûÖF O­EÓÈÌÓc«W\ûÛ¼š‹{c§æpK›GÕžB·ÐšþímûŽxhfffffffæ/s2ÛÇÚ2W|*÷d®1ÛÏÌÌÌÌÌÌÌÌÌê*5³ºÊÆÌÌÌÌÌÌÌ̬®RW©«œaÌÌÌÌÌÌÌÌsöòËÁ\xm~8ß®¸ƒr0wæjsdm÷ªýü&óâyÙ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_125_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_125_0.dat deleted file mode 100644 index 2c73ef1a8..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_125_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÛA -€ н§Ñû_®•‘TH`3AO—L4ü kí£ÍÃ(áÍÛewö›GWÖÙ××.í #ÃÞ2¿û¡} \ëçYú»¤´gggggggggg_d>Ïïµòj^™ÕØsíö;;;;;;;;;;»'ÇÉqö;;;;;;;;;»'Ë°ËqþuììììììììµÇ_Pì‰Íçö—ÏóYwÄ{eÿš=dÍ×ÌýþGû/ý“¸ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_129_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_129_0.dat deleted file mode 100644 index 812ee8a66..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_129_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÛ1 -Å ÀÞÓèý/—*Ÿ„DøEØ'ÉhgõtÙ-ì}_£pV‹· \"Ìb=sþ—ÁÌå™ó[ƒÐJŒô=8DhÅoàºÛž' 0XÐ ÑüÎÛ´©è‘¬e 0`À€ ˜ôÊ Ì j" 0`ÀÀ¼ Wf`^P0`À€æ½2ó‚šÈ€ ¼Ò óÉôd07(ì“Y‹/XLÿGb…yÁ"êpT \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_137_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_137_0.dat deleted file mode 100644 index f6d993b03..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_137_0.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜ1„ ОÓÀý/·•+FÉZ?®JšÉ Læ7Ôº¬ØÝ*ÑBÚa%L~šŒË»òä”ÉØéÊ“C“ðJ›´YîIWJ ½™ý.K]ñR˜0a„ “›$ç“ïINTwÎlLža¢Ÿè±L˜0a„ &Ld@PÔO˜0a„ &L˜0‘e@P?a„ &L˜0aÂD”e@ý„ &L˜0aÂäÏM²ŸIlL&)dl˜ígøÃacR™<É$övê,ý„ɺ?U2ç] \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_141_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_141_0.dat deleted file mode 100644 index 8c685c8ea..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_141_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜ= -€0 н§iï9'EÑúÖDx͘%«Iö¿9+EñÇ{ˆõ$åm†ƒ^˜&µŽ§u¼³S"µÍDŒþ6ÚŸ]9ùÉè8ìU“M£“bÔÒ¾£Y¤Òù[ß2拉Ĉ#FŒ1bĈ£Ï%ôµiRNšæ½–ѳì#;›#FŒ1bĈ‘N«¯1Òií#FŒ1bĈ#FŒtZ}‘Nk1bĈ#FŒ1b¤ÓêkŒtZ;›#FŒ1bÄèõFV-ŒÂuè"IoD-Œ*£7uû×jÚ>b´MV“+ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_149_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_149_0.dat deleted file mode 100644 index d25835029..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_149_0.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÜA -€ н§Ñû_®MEQXP৞.Ý|94³°ÖeµÁ{³JL¨všŠÕ#«^Ü÷Ïn[õ ß?;µ -ZIV-ñ»ÚÄ*wï¸Ë’1*+V¬X±bÅŠ«ßX¥ü·¯g¥ÛwŒèqX}ÇJ½RÛY±bÅŠ+V¬X±beΠwfeΠ^±bÅŠ+V¬X±bÅÊœAïÌÊœA½bÅŠ+V¬X±bÅŠ•9ƒÞÙœÁœA½bÅŠ+V¬X±bÅŠÕl•ó0ÞÎ*0Tßj`?˜öÝΪ²ú¢Õð;Xë«ë=zZr* \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_153_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_153_0.dat deleted file mode 100644 index fc79e9ede..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_153_0.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜ1€ ÐÓÀý/礑h¢&F¾ú`ìÒ¼@I;Pë¼ZÀ^­•XÛÍŒÙmfÏÆ.™=Û5 [if-õœ­R+!wr»Ëœg\j̘1cÆŒ3f̘1cf–Ôo.±2¬?Š1ûž™zæ `ÆŒ3f̘1cÆŒ™¹†™¹†zÆŒ3f̘1cÆŒ3fæztfæê3f̘1cÆŒ3f̘™k˜k03×ð0cÆŒ3f̘1cö³¬Ï9;³ÐÄŽÍö›‰`vf•Ù̆ßÍšZϘ߶W9 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_157_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_157_0.dat deleted file mode 100644 index ad749f305..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_157_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜA -€ н§Ñû_®•QRù©§»Y ùkí«…ìÍ*q͵ÓîØ=j7§~ÙnNýÔ.p%Úµäs·i¯ÝÕã.½×ÈöرcÇŽ;vìر{Ù.-W¬õ2={êì¾mgÞy+رcÇŽ;vìØɳ2;yÖ¼cÇŽ;vìرcÇNž•ÉØɳæ;vìرcÇŽ;v2™<ËNžõV°cÇŽ;vìر“ge2vò¬yÇŽ;vìرcÇî¦]ÞÂ;»àæÆv¹"õÞ]e÷'»˜;[“ç»û{¾|Aµ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_161_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_161_0.dat deleted file mode 100644 index 4bdc5fdd3fd5b8d7ec11a534cb9a2cb1f58b87f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmb=p_4bYxI3`FaC~S7rJnYfY8T-%e~DHFIIc5zv^p@ZbtcP7qJ_1+9^La zKHT%7-Y-t#T{NC)k=gd2o zjNY~Ld^ftnUmGj|mU3?60jkj`HqbYoV)>#S!~tpmi%zkeFHURTr~Ks{-QatqS5&9ib(yR@{gMnQ+Lcye6Ty_ Q@^8h%UuzjeUK>3D05K(RC;$Ke diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_165_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_165_0.dat deleted file mode 100644 index 3a17a0510..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_165_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÝ; -€0À>§Iî9+ÅàDyÁIÊ4Ë ÷5Ö:¯¶W«ÄÙv«dù¢åqñߜܴ<þæd×2x%[¶žËU™%ðÝÞî2×]&K–,Y²dÉ’%Ë¡,S¿Õ—“r2ydÌ=,ÿk©_º{X²dÉ’%K–,Y²d)Û0³”mè—,Y²dÉ’%K–,Y²d)Û0³”mè—,Y²dÉ’%K–,Y²”m˜Çe,eú%K–,Y²dÉ’%K–,eæq–² ýÒÝÃ’%K–,Y²dÉ’å…eî:ËŠ<³Œš!Óÿ¡ÐYV–,ßñ:B¿dù|O¨$*# \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_169_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_169_0.dat deleted file mode 100644 index c4787d9db..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_169_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÝ1 -€0À>¯Iþÿ9EQÑ=˜¤Ls æä¶IïË{³Zt¡ã´R¦™þ}òÀôï“SÓð•n:ª|§›R[è?î¶Ô_*S¦L™2eÊ”)S¦L™™&ϦëI šê¯O˜2ÕOý£˜2eÊ”)S¦L™2e*C1ïËP˜ÊPôS¦L™2eÊ”)S¦L™ÊPÌû2¦2ý”)S¦L™2eÊ”)S¦Le(æ}¦2ý”)S¦L™2eÊ”)S¦Le(æ}¦2ý”)S¦L™2eÊ”)S¦³iöc7;Ó"…Þ™FͦÞÙ™v¦L Üý^¥Ÿ2}oOäß'r \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_173_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_173_0.dat deleted file mode 100644 index 5ef85e7ad..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_173_0.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝ1ƒ0ÀÞ¯±ÿÿ¹T ¥ˆ¬[4véæ2ŠØƽok݇ÕÊ;¦Ó²]fûôÖžýdûä½ölj°lGÒÿö0n+œß»m³GŒË–-[¶lÙ²eû"Ûêï·ûY»}o¯öíÀ–íÕVÞÊ[¶lÙ²eË–-[¶lÙ²e«ÓÕ°ÕƒÉ[Ï2¶lÙ²eË–-[¶lÙ²e«ÓÕ°ÕƒÉ[Ï2¶lÙ²eË–-[¶lÙ²e«ÓÕ°ÕƒÉ[¶lÙ²eË–-[¶lÙ²eËV¦«a«“·lÙ²eË–-[¶lÙ²ef[ÿB°“mа÷¶Eû„”;¶N¶-ÛœT¸/r’·lÿ¿?ØÔ*Ñ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_177_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_177_0.dat deleted file mode 100644 index 78a26a77b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_177_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÝ1 -…0Ð>§Iî9+?Š²Øèß—”iÖ‡ dšÌ¹¯ÕxÖˆxÝNÌø/ÆÕ§|{öظ²ÿöìÖ8d¥¯´ÿø0òhž×=öùcFf̘1cÆŒ3f̘q¼qÂ=ïw6Ê;l·»4cÆ•±<–ÇŒ3f̘1cÆŒ3fÌXï¦Ò»1Ö»ÉcÆŒ3f̘1cÆŒ3fÌXï¦b¬w“ÇŒ3f̘1cÆŒ3f̘±ÞM'ÄXï&å1cÆŒ3f̘1cÆŒ3Ö»é„ônŒõnò˜1cÆŒ3f̘1cÆŒÃ3U<‡ \7í+’Þ(<OÆŒŸ·ÎŠ™–ÇŒßÛÕä4@ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_21_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_21_0.dat deleted file mode 100644 index 368c9941fd09f695d58934eb0de062a54fd74c02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmb=pWo*#E=&aDfq?gm=vB)I2o5jQUx&ZeRqn1^Uf@;3Hn^Ft5vfXH5Z;oPEP!;?T E0GJaIuK)l5 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_25_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_25_0.dat deleted file mode 100644 index e4a5b6d8afc4516779d7d246ebfcf7ced36029d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57 zcmV-90LK4#+A}bK0YfN+0xnzV>=60G~7^dI6e8pX8D%7wG^1 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_33_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_33_0.dat deleted file mode 100644 index 2ec712a7adcd6edf1ce2c785adf00e3ca7c5b729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62 zcmV-E0Kxxw+A}bK0Yfwh1zdy_AgLHMX5awSafcxR$OTi6Q^}|q!_EwNn!%sOz-Hh| UV{|eD?iT|>N~mE50E^|%1m89on*aa+ diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_37_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_37_0.dat deleted file mode 100644 index 1588cfce1318608538dbde89fa7f04d05ff574e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65 zcmV-H0KWft+A}bK0YfYh3b=?-grsWFnuP~Y*IkB0KrWabyvjz+8Z~Q>n+4Agg!2&C XEPQ!r0L+5>(SR6b)HDkKY5W93c-0$f diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_41_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_41_0.dat deleted file mode 100644 index e369027e3831ce2d9ac858eaa2cdfa5e5498df07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmV-K0K5Nq+A}bK0Ye-R3b=?>h@^7Jm`MQ8#+`;lLN1s-f=Wlt95r*)%t2))yeuHD a3;~--s0Çæ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_53_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_53_0.dat deleted file mode 100644 index 572d279ef..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_53_0.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÖK -@!й«Ñýo®QÑϺ:(m&ܯžs-¹¬®É6õÑZ{¥m4Y†²Xâù®.FÀÙ­‹ê¦XZi·Ðùj=:έ֋bå¿‘VH 8 –#¤[—ù²¾‹ãYвç¾^XÔ÷e \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_57_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_57_0.dat deleted file mode 100644 index ea81e6dc6..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_57_0.dat +++ /dev/null @@ -1,4 +0,0 @@ -xÚíÖA -À À{^“üÿs=YLÕš ( -ou¨– j) ¬ª -Z7y„ÙëÍñv,Ô´ìwVQ ži»¤ìGiÒ¤¹ÅDfÂÛ•ÉÄwo4ùѤ¹ÐÄoÎLÿÌéLȼÁœ©·›Á³Õì}î4 hå \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_61_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_61_0.dat deleted file mode 100644 index 93d2444d8249bf3c534223bc1bb339d54f7af957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119 zcmV--0Eqv1+U?dk3IHJt1<*dHN$!6+E5(hNrI=BE>;m7%=n!PCCC1eixx=ze|IFU^ z&9=7bWCto@OXj<~I62OGT~zl9#bLvS4O_9jbFKC1I6Jle?Kb{3*sx(Qw*P@W*om-i Z8|GT{jXc==mTf+B&fNDGb^()u!gb2GK0EGW|+U?gt4!|G?1i(A5f&YK5CmXS?mE~YV7mp;Hi4u*ftt_y*5-7lK6FzHr z>I4k)=)nLMYOw4+bP*CfgX@x(2S?CA0}V9%z<}JÖž!ÅŠ+V¬å¬ª½õöí÷.Ýõ±2¯X±bÅŠ•ÿ¬Ì+V¬X±–²ê.ökBèÞz±·ÔwðƒÕ±¦Ì€gÌkë¡YZý \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_89_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_89_0.dat deleted file mode 100644 index aaa4c5267..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_89_0.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÙ1€ …ὧiï9'Œˆ€Ñ×ýËHl?Lšà^"ë&M—™?bî—qÃÜ?˸äÉ,µ9²þó!µ‰z¢]VêÈScÆŒ3æ_š•÷à¾cÓé!î`nÍô3f̘1cÆÌŒ„™ 3f̘1/fÖ>.Uæ¤ÄcóË»;ã ¨2;æ™YÒžÕÏ+™7Þý \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_93_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_93_0.dat deleted file mode 100644 index e218fa0ef..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_93_0.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÙK -À EÑyV÷¿¹Ž,ÚO¬mÞ rãPHŽ0 {’´š°ôäå2ûbö¨ìýÞc{t¦Qáƒ] -{QÞ{“Þ{弬֒¤ÇŽ;vìØ_Ú³ßÕ}ÏÂ÷ýËL€}l§ß±cÇŽ;vì̑̑̑رcÇŽû¢öüÐÎ.LÛæÕegwì3ö´žqe¿ÿѾ@i \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_0/mask_97_0.dat b/vendor/aferrandini/phpqrcode/cache/mask_0/mask_97_0.dat deleted file mode 100644 index 74ac719d06e7ba35f7b749e668c884f291daefb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmb=p_4cMC*8v3{my5N2lkfa5ijADYwQUyT?SDJYDA|}8ET~@TVG}wt#i2yK=7z!b z>XaF;OL-RsNjlZ?U*+(wbH1LOIxmNXjYq;D;XuQ~?`*DdR@K|)ymqtY`Of=>87kg* z$16{D`=-laMU02Hv7J?~OBUdlkQVwh=~Mq+LyI<1=UdT5U+wnXEMO=-^wS0a*1Ó˜ý—Kƒ€°•À}“ˆÆ:!£èiY‰™'*3§]fÛsþÛÉÓÒîm¹ºb[ÞJÂÆÆÆÆÆƶŖÝKÆ9›}ccccccÓ'u.6ûÆÆÆÆÆÆƦs±é“Þ6666¶R[ÿ^gû{/lÇØÙ·Û Þ7Í‚ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_113_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_113_1.dat deleted file mode 100644 index 1dd666d9b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_113_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÖ1€ ÀÞ×ÿÿœ -8fL(pBŽlDM™è9";ýÄ-÷ò÷;?1îpâÐ{¼\åÆú%-ŒŒŒŒŒŒ“3:@Ûad4ŒŒŒŒŒŒŒŒú*£NîÍaddddddÔÉÍ#######ã#c]75®ÓåÚã¢Æåæ1ÏxYuñ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_117_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_117_1.dat deleted file mode 100644 index 8921f6437..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_117_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÖ» À À>Ó˜ý—Kƒ€ø$ø^’ 8Y–QSV'zž8‘þjzëÌʇ¬™^]Þסµ‡¬õekXYYYYYYYjݵ#¶ -+«yeeeeeeeeµ#²²šWVVVVVVVV;"+«yeeeeeeel­'ëe;b»±&²^9¯{­/ÊJ$p \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_121_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_121_1.dat deleted file mode 100644 index 64bd8ba04..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_121_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí×1 -À н§‰÷¿\— ¥C¡PbÑ—EÁÁ$’DdÆ©ÄÊ•Y»³ÿŸtëÚ…öλ»÷ÏÕÛó0£$ìììììììììì›ì§ûù¹ÆήÞÙÙÙÙÙÙÙÙÙÙõóììêÝg–a7ÇyëØÙÙÙÙÙÙÙ¯³ç—½Y??ÿØÙ{Õ{ý¾D“ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_129_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_129_1.dat deleted file mode 100644 index 62cd1c9a18c2367d1c2c4a125b0c7bfb7647cd07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmb=p_4c+Q*8v3{)(d-=d%mmRskg|fP}}X+^rc5NZJtc#aociguIS=*E7o0PY;Hez z>gn9i&b%cXe#-fTKV)dW7BEeenT¯9ÿÿ¹4¢6)ƒ3×$`s ²¸uÊ®‰>Wdš¾ ›)›g³•'°±MÂ{3\d6u¹’bØ°aÆ 6lؼn³û]ÜNØ°9ÄFÞ°aÆ 6lØ°a£3°a#oØ°aÆ 6lØ°ÑØ°Ñ5e16lØ°aÆ ]SŸb£kÊ6lØ°aÆ ›mê—ͤÍß;CûcÃf‘¼IdsG¹ÿ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_145_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_145_1.dat deleted file mode 100644 index 6a9950f7a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_145_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜ!€0@Ïk®ÿÿ¦¡ 4a)³qæ2i.YCUO{35²UZÆFŒn]ÏfN>bd£ðwtzJF}ÁFŒ1bĈ#FŒýÆ(¡¯FŒ6r1bĈ#FŒ1ÒE1ÒiÝlFŒ1bĈ#FŒtFŒÜ#FŒ1bĈ#FŒtZ}#÷ˆ#FŒ1bĈÑl£þeôÀHÉùG£µÜ£@£Ù’î \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_149_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_149_1.dat deleted file mode 100644 index 02a3cdc6e..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_149_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíØ1€ ÐÝÓ”û_Î…ˆƒqÁHÞ_Xšòc‰èi«#Gd̘ŠÕ”Õ›á÷g…¬LUè^Ý®VR«>dKV¬X±bÅŠ+VÛXeùo¿ÎX±ÚÌJ_±bÅŠ+V¬X±bÅÊ;ƒÝ™+}ÅŠ+V¬X±bÅŠ+VöAV¬ô•ngÅŠ+V¬X±bÅŠ•}+ï úŠ+V¬X±bÅŠ«VýËjÒÊ>øhewfõ›•¾*`uTqí \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_153_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_153_1.dat deleted file mode 100644 index 2abfca20b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_153_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØ1 -€0ÀÞ×\þÿ9›Ãbt³Ešc'›ªÎHHÍ•š9³efßžmff²MïÙíª›õ #.̘1cÆŒ3f̘1cf–Ô7¯3f̘Ùg̘1cÆŒ3f̘1c¦o2cæ]Ã?€3f̘1cÆŒ3fÞ5ôMfÌì3f̘1cÆŒ3f̘1Ó7utfÌì3f̘1cÆŒ3f̘=ÌúËl¡™¾ùj¦£3ûÕÌ>ÛÈì¤ÐVü \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_157_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_157_1.dat deleted file mode 100644 index 17344b891..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_157_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí×1 -À À>¯9ÿÿ¹4S¦d/Ì5‚Õ1ÈÊVÍ)SkŽJžµ»­vßÜ7´³ÝÞÝíé…ÛÍeGä°cÇŽ;vìرc÷²]Z¯¸îÙ±c'ïرcÇŽ;vìرÓ+رÓgå;vìرcÇŽ;}V¯`ÇNÞù+رcÇŽ;vìØé:;vòŽ;vìرcÇŽ;½‚;}VÞ±cÇŽ;vìص±›'»ÍvzÅ#;Œ]Œ¼klw¯oA` \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_161_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_161_1.dat deleted file mode 100644 index 669ade1b8..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_161_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíØ1€0ÐÝÓÐû_Î…XӨš yi~…ˆ¬Q©bÖÕkvÈp±á³ê7'M u¸Ù=¼]ņÙð([ 2dÈáÏ +þÛ\' 2”‡ 2dÈ!C† 2´s0/3d(½) 2dÈ!C† 24ë1dhç 2dÈ!C† 2dhÖcÈ¡ÊS¦L™2eÊ”)S¦L™2­œMç S¦LÍS¦L™2eÊ”)S¦L™2•Må}¦LÍSS¦L™2eÊ”)S¦LeSyŸ)SóÔÅ”)S¦L™2eÊ”)S;Ù”)S;ó”)S¦L™2eÊ”)S¦v(²)S¦v(æ)S¦L™2eÊ”)S¦íLódºÍT6}a*ï3mljžmzC' \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_173_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_173_1.dat deleted file mode 100644 index 436918c0b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_173_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíØ1€ ÐÝÓ”û_Î¥''Ó@y]Xšò1?"g¬:1çŠfn˶ÌöË»ö¬­m¼·¯«»™m.?¶¶lÙ²eË–-ÛF¶«ÿß>glÙ²•·Þ2¶lÙ²eË–-[¶lÙ²e«O`Ë–­¼eË–-[¶lÙ²eË–-[¶lõ lÙ²•·lÙ²eË–-[¶lÙ²eËV¦O`Ë–­¼eË–-[¶lÙ²eË–-[¶z0}[¶z0yË–-[¶lÙ²eË–-[¶E¶ùe[h«OøÍVWö…­¼=Ìötÿ*| \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_177_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_177_1.dat deleted file mode 100644 index 12e2e522f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_177_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíØ1€ ÀÞ×ÿÿœÍE¨¬Œp0×XÐà„,a#rÚÊ}®¨6}ÇŒ§¿Ùÿ»¶‰±~Ž‡£\Ð8 •ÆŒ3f̘1cÆŒ—7®ðÎ{Ö3f,ÝyŒ3f̘1cÆŒ3fÌX_¡¯`ÌXï&3f̘1cÆŒ3f̘±ÞM_Á˜1cy̘1cÆŒ3f̘1cÆŒë+3f,ÝyŒ3f̘1cÆŒ3fÌX_¡bÌXï&3f̘1cÆŒ3fÌxãü2žd¬¯øÔX'Äx[cy|¨ñ ¸•3ë \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_21_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_21_1.dat deleted file mode 100644 index f87e0a11227bb4e1e6f46a1dbb133ca9b1cc8109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42 ycmb=pWo*#E^%B$z4|g)+XrS~G>tDQj I0gJJp;@7?u-2eap diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_33_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_33_1.dat deleted file mode 100644 index 318949df07745528a680a428ac74ea85f016c2aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53 zcmb=pWo*#E(KTk=YPW25x~DW1ZnK;yQ#k{?W*9i^mo(k2MWv7BXK JDEWV$2>`Yr5WxTd diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_37_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_37_1.dat deleted file mode 100644 index 5bd9e3aa0d08230508938e61404749c9ae72e32d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 zcmb=pWo*#Ec0ARA$6JzFue`IJvZq{C68loc~P O{VIfV)fhyX>>B}kGZlIO diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_45_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_45_1.dat deleted file mode 100644 index b35c567dca6aa84fbd8758e1fba4ba2feb397de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82 zcmV-Y0ImOc+A}bK0z+KD00FoRNC61dbTS*2PX)7SsT!xdk(^GV*-*`fM1fJW2ff*Z o(g~bDg3KOGC-gI$Q0Yx=v#FI%h$&--irG{SZ{o}b0N2uhd5F*?p8x;= diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_49_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_49_1.dat deleted file mode 100644 index d20d71710eecee1842e3fc1535a09df5a9bc8761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84 zcmV-a0IUCa+A}bK0z-Vj00FoRNCgNTbhiUtgi3bMLkC`eAbEuhJD>&_5)DS}7`1~) qJBUfUaFG#i$7s45S#}Up3)038>ZV;{>!_h=2TkIGcsl^2!^he0dm&5! diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_53_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_53_1.dat deleted file mode 100644 index a676d7dfa2092a94b7a81322980eb4def98fba74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87 zcmV-d0I2_X+A}bK0z*Q;00FoR$N>ml185hf7!~cJr!Ip2Lh>4!c0mm>Bngb#HEP!o tw~N^P1s5B&Ycw5>+BN9xBDS?bOS@>1zes5V31pqmJ6B4Gdk diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_57_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_57_1.dat deleted file mode 100644 index 896ed43575bbcdf0ad49fbfabe490f0645a69df4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92 zcmV-i0HgnS+A}bK0z+be0RnItkP8qx2Zf#3M5%1&K=cx?F0b9ifGvGnJH}m diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_61_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_61_1.dat deleted file mode 100644 index 4165a4bd2..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_61_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚ30€CbpPº™ÝØÅi`÷@ê&ÚßH^§Ðn¨a†dQ»Gíµ{ÔnF3s~{gDf@VF{6Pqb^n%N<(VOM!% z$k4$xhh-EO4838Mg8>5u3?CSjTRkcmt{T`$3>YwEH7H+JtRd!Bt3S?PhR}V`4GpQu FA{XR~DnI}L diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_69_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_69_1.dat deleted file mode 100644 index 03bba657f6d0df2a65ab63bc13715660ffc4ba1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102 zcmV-s0Ga=I+U?gd3IHGoh2g!^*!?fpBGuB6Ru=tl734z%QACqxBP~f*q;+|~GOlg3 z+|*@yF5PGrS+r?(1q&7|Sg<^6vEHLv!?NAN?qb1$1ZaPm@r{VZ}QxyUc>an#ExUago&HU9mj+T)Arjuh3Vye^8R7`ZVIqZ Kep3TS=JO^`WH?p; diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_77_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_77_1.dat deleted file mode 100644 index 0fe0b03e868a00c5cc8f97a40528a7873b189a78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110 zcmV-!0FnQA+U?je4ge4gh2h<4>i(Cr2nH6ODE>E!G+%@^VU`nTV>Q8)snssB^}WNL zdu^VpO`ltHbYfdB9wots4cnKt)&5pivAMDF7O-K%#>`?aFte~>!}hvu_4ni(Cr2nG^~hc@}&Xs9m@nlP)$C$XMn>hy{MjVt$j z{gE+3#iKqBt-N5Y8)R89V#J7X)2MhK+d4+qM(zwoj2JO8ubJ1(Ym68%VvJ~1{NnyH UdYUt;KT?e16B)r+06TKr<%ttFF8}}l diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_85_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_85_1.dat deleted file mode 100644 index b8a20c754..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_85_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÙ1 -À н§‰÷¿\©]‹‰4ðþ˜AA hÄÌØM¬\Q‘µjsë·úAk§U·ûújm‘un2RÃÊÊÊÊÚΚ5·ž:k;«»ÅÊÊÊÊjƲº[¬¬¬¬eoÅí­›[™oð¬ÿ[ÇÎk®õ¨ðZä \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_89_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_89_1.dat deleted file mode 100644 index e9d226f35..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_89_1.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÙ1€ ÐÝÓ”û_Î…‹N…h}%Àƒ@ iDOËHŒ±*cä"æûµ<öØgþâÈ)û§Ñû_.Ä4I‘ìâ‡yí‚Ž¢¸`)-5*¥ç(™é£of[Ósm€}åÑÃöý¶õÉö6YM ;;;;;ûG{ô»zÕØ·µ»«ìììììììz1vw•}œ=úwuûìýLÆ%û?û"ç=Ç~e—i \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_97_1.dat b/vendor/aferrandini/phpqrcode/cache/mask_1/mask_97_1.dat deleted file mode 100644 index 24fa60fc3..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_1/mask_97_1.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÙ1 -À0н§1÷¿\—ÐtncKÌû«ƒ‰D"‘H$ÊäD™œH$‰D"Q&—WerûH$‰D"ñ±ç*x[±(Ë?/ÚÇ÷ˆ'ŸŠnd \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_117_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_117_2.dat deleted file mode 100644 index b4dcce46f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_117_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÚ1 -À À>¯9ÿÿ¹4!m dOƒs\§0X,laÕ5#¿÷Eª¾>Z[íœÖ·ŽÉêã½ÄR©T*•J¥R?Q-œº«*¯T*•J¥R©º?U÷—W*•J¥R©TÝŸªûË+•J¥R©Ô¤Úùó~m5Õ©;ªòúSõ&+ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_121_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_121_2.dat deleted file mode 100644 index a2a0097b1fd803424ccf0a741277066f44b04dae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmb=p_4c+Q7lR@X%YlD!!vFtUN&Z3X+ Wr*l6!Q#;$o?ELu?!b)#0qyqpqZ94e? diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_125_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_125_2.dat deleted file mode 100644 index 0ea40fdae..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_125_2.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÛ!À P¿Ó”û_ƒ@ U(Ûkp@^Mú£Ú®5ÕôªúËîòâ-ú‰:ðöVF_žÌ\t:N§Óétú÷õ¼yžN×qt:N§ÓétºG—ãô;N§Óét:.ËÐå8:N§ÓétzA}ÿµ‹ôÔyžN×q¿Ñ;+nŠ& \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_129_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_129_2.dat deleted file mode 100644 index bf048394b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_129_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÛ1 -À0н§Ñû_®KÈVÚ¡¨'.Éôþ!«²¶w]A0XðÄú÷~˜ «ÚÞ  ö!›š€€€€€€à£ fK# x˜Fy€À4È vey€€€€€€€@^°+È ç º~™ž ¨Û L#ÁêveI \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_133_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_133_2.dat deleted file mode 100644 index 9e78b6de5..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_133_2.dat +++ /dev/null @@ -1,10 +0,0 @@ -xÚíÛ1 -À н§‰÷¿œ‹à&´`¢ô…Lâð”üÁˆQ-½g=Aq•bëú¹ŠÊª<‹všb½+©)((((((((ÊIën*…÷­lš ††fŽÆ„ÓÐÐÐÐÐÐÐÐÐÈš44²& ¬)OÑÈšÞY“FÖ4á444444444c4~œ9S³:3ÐЌטpšÇ®>® \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_145_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_145_2.dat deleted file mode 100644 index 9ff2bbf3f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_145_2.dat +++ /dev/null @@ -1,4 +0,0 @@ -xÚíÜ1 -À н§ùÞÿr] -Ý,tˆQ^È&ÊCˆð“§ÆÒ~ë -щ¢Éj~mɾ¢.ÕåŽFgÑüìMDDDDDDDDDDDÔST™×ˆˆêD¦ŸˆˆˆˆˆˆˆˆˆH¦•ŽˆdZï‘L+¯É´DDDDDDDDDDD2-‘é'"""""""":BÔäת½EåY„ˆ¨Ddú‰¾û† †Š \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_149_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_149_2.dat deleted file mode 100644 index d52e0484b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_149_2.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜ;€@ÀÞÓÀý/gcaGÖBXBç'“-ˆ¼Âˆ«²»ouÕ§UQ½dõRVOm¡šTƒÎ*Ç«Ê;;šŠŠŠŠŠŠŠŠŠj¨ªå»ŠªEe2PQQQQQQQQQQQɨ¨ä TTTTTTTTTTTTr»3•œÁ¼¢¢¢¢¢¢¢¢¢¢¢’3ØR©ä &ÕßTsþŒ·»ªk¤¢z_e2P=ê ïd™ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_153_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_153_2.dat deleted file mode 100644 index 3b0604101..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_153_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜ1 -€0 ÐÝÓ¤÷¿œ‹8ZP!¿úB¶ÒòèèZuÔÈ賶"û“ìbuºñö™‹ÈÒ*îÎƲé)]MFFFFFFFFFFFFö†¬%= #‹‘™ddddddddddddr ot2¹†yFFFFFFFFFFFF&× #“k‘‘‘‘‘‘‘‘‘‘‘‘É5ÈÈL 2222222222²(YÚµ½7ÉÈ"d¦ÙóÞ@H— \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_157_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_157_2.dat deleted file mode 100644 index 2baf535e2..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_157_2.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÜ1 -€0À>¯¹üÿs6‚M¹ÎqUH1¤XØ&Uç̘½fÝ/u-çûé'ñíæ.ºû[ÍKGGGGGGGGGG÷H×|NG¨“(ttttttttttú¬NF§ÏÊ;::::::::::}–ŽNŸ¥££££££££££Ózèè$ ->«“Ñé³…ŽŽŽŽŽŽŽŽn­ üAø#ºî^AG—§“(t¯ì =3{ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_161_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_161_2.dat deleted file mode 100644 index d2df7594eafccef2dacee35dfd7b2fa20d22e1dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmb=p_4bY;UxNV;Yry%;UBBb`j2ojEHvT!3{p!RC?nRON7i3-Yc;zkY`Xf0}_x!$! zFE2cT6SG?D4qx=zQRnO+ECdE-0&RD4IXDluF5^{1fQ4roCj>lm@IU~K;tl%3r)17J zJ0ZZ#=G-X(&k}A4K#T&Dr(`%dQ~6pDpuA;fz2pBjgY@glDn4Sf%vz*>v-~PkmIDA9 Cq)A-> diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_165_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_165_2.dat deleted file mode 100644 index 2e6cd7c6f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_165_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÝ1 -€0 ÐÝÓ¤÷¿œ‹Šè ?òBÆVü¥UG¼žµ%åùÐêþ¸åÙ×*“+ú_ŽfÊËs MIIIIIIIIIù–2d;£¤l¨4‰()))))))))))eöqJÙ†IDIIIIIIIIIII)Û ¤”mPRRRRRRRRRRRÊ6lº””² JJJJJJJJJJJJÙ†}œR¶aQRRRRRRRRRRNeòK?R픔͔&åW½3U \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_169_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_169_2.dat deleted file mode 100644 index 4052062b8db42699eecf910b9792afd64d0db84b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmb=p_4ckI*8v3{)(d-=cYfa=BffC9bK#GR;+rC$JQO$)A7z^D@-5td;v_x$KZRRf zZ@YKti&y>Si-EiLS+DR!2HU-y%YuV0IWJizqKN=2d5((tdS!V{oP+?U0&*@cSz;s- xgbbohG*|MpPC)`8ZBAZV&W8R7OY$eT{eSz+A@fq6m)EU$prLMGxEX}SGyvz^RrCM= diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_173_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_173_2.dat deleted file mode 100644 index 0a30ba530..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_173_2.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝ+€@ PÏiº÷¿ÚfÝtóš:>y &d U߬ÔýÍS´´[íþª»ùé¡Õ]5Z;a¼Û5VÛž™´´´´´´´´´´AÚÀï[ZÚË´Œ–––––––––––––V¦«¡ÕƒI0ZZZZZZZZZZZZZZ=-­L‚ÑÒÒÒÒÒÒÒÒÒÒÒÒÒêÁhiõ`Œ–––––––––––––VFK«“·´´´´´´´´´´´´ÉÚü?‚ݧÍìhioÒJ0Úà}³¢o \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_177_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_177_2.dat deleted file mode 100644 index d2c52f990..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_177_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÝ1 -À EÁ>§Yï¹4’V$Í~± ,CŠ…¼&UóŒÞ÷;OoŠk5b÷ÑÏ™áâ”óŽG°x9¥Û%&&&&&&&&&&&n$îöõOL|‡Øv#&&&&&&&&&&&&&ÖÝbbݘ˜˜˜˜˜˜˜˜˜˜˜˜˜Xw#&ÖÝl7bbbbbbbbbbbbbbÝM"ÖÝl7bbbbbbbbbbbbbbÝMa!&Ö݈‰‰‰‰‰‰‰‰‰‰‰‰3Ä)U0}qMK$nTp4?}1s?+4l5MclS diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_29_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_29_2.dat deleted file mode 100644 index 5112d11eff0ce0631ba1000e8823e0592ee3230e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45 zcmb=pWo*#EnW&mR* B5Pkpv diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_33_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_33_2.dat deleted file mode 100644 index 5bac0c80d2fd997d753427178c6294dd3dd9184a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47 zcmb=pWo*#E *F™>– \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_45_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_45_2.dat deleted file mode 100644 index ad44ff1885f2c4e0d2158824e4d2b5537e0e8eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmV-K0K5Nq+A}bK0z=#g4!8^kw`w#Iid7Q>h%(!dOx19XArWX)^>9~>HN_4))uS;# aNK_M3B2!g0&U7-YR1co;#)SYYI)8L$SQ+gA diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_49_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_49_2.dat deleted file mode 100644 index 6e8edff24b9344b19623318f9e10802439cf2b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70 zcmV-M0J;Bo+A}bK0zFeF c>OklqvR0#s4%}&Xxa%04@qrTo0MEO|#KK}86#xJL diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_53_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_53_2.dat deleted file mode 100644 index 682cae2aa6532baf02d2aa3e0c1dd2ab5227a34e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73 zcmV-P0Ji^l+A}bK0z*Ow32+$&77oAwesj8DyK(d{NRL}|M7?Oxab&l#B)j2eE;wiyK ib&jT?QJteYsi%|F)*Fp=5-1Z!bq=xk#E$^gB4-2t4I$0| diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_61_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_61_2.dat deleted file mode 100644 index 77d3815eb51a7feb77ebf8fa7001e8428c252db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmb=pWo*#E&42|mGA0{eU)ahq{&Zsci5AoT|sbCRL;^iky?c_QPW#8n#wmU scCwG!AOHf}SdL4%7jXKBFflomDSq>=(yS;mZJM;_nealU{J-+60Ag+8uB49o zCeM)i$;BWcAt6nrP(L9Zkl0KlBqVyA9!Ek#%9h06kgHO>pO7@^?R^TT0-T8OPY@d{ Aga7~l diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_77_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_77_2.dat deleted file mode 100644 index 903cba4a0..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_77_2.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíØ1À н§Áû_®‹CMŠØ>òGót Ñ«eó¨+Ž×FWÄZE¼­mÓ&gÞ‡F£Ñ¶h‰ùF+×t/F£ÙYvF£´õ³ïµÜì¥Õjçô[*7òÕa¶ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_81_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_81_2.dat deleted file mode 100644 index 17a9ac2a1..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_81_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØ1 -À0н§Ñû_®KÉÒ©Vi!O\"á‘Aøˆ«ò]¯:‚x»‘çÃbWµ½1ÅuȦ&‰Ä_‰µT ΋6œH$‰ÒU^‰Dâ~bׯëb=gˆ³âžûXî­ÛÙ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_85_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_85_2.dat deleted file mode 100644 index 72c74ff9a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_85_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØ1 -À0Ð=§1÷¿\—B7¡ÖÖOþ$á‘A0$â¬ý8W­ ¦ê­þwjguÞu¿­æ§Š¡R©T*u•÷SÖ§Ž¨æ•J¥R©ÞTóJ¥R©ÿRö‡ÕêÞ¢N¨æµ˜çVû \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_89_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_89_2.dat deleted file mode 100644 index 06c9a4fe3..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_89_2.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÙ± À0 À>ÓÈû/—&E*câÇQqâëÃŃ ªzf$òš«ÈËrM…ßåô„ß<ŽÈsa#d2™L&’?ïArYŸÉd2™LöG"ë3™L&“{ÊÙëRygw“;ÈúÊ ƒñÚI \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_93_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_93_2.dat deleted file mode 100644 index f5202963d69964d6d402d87515855f97fb868039..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103 zcmV-t0GR)H+U?mf3IH((1i=1YWB&iSYr?gGcm@NrSPvE!3r5V0|K`gR^esJBL=U|p zCA*J9`claZold9I>6hu5#zF6@yLURBPN&o9dL&(sq|@niI{j|F;se@4&-NL5N8P;_ J=`Rs#W7tsZG`0W$ diff --git a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_97_2.dat b/vendor/aferrandini/phpqrcode/cache/mask_2/mask_97_2.dat deleted file mode 100644 index 38842b989..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_2/mask_97_2.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÙ1 -À0н§Ñû_®Ki·vH4 ’)ë_%s×_½Õƒd3KŽO1^ša†§LŸá,†$’H"‰$’KzRP—t[I&¯ÿX’ÝÍ9‰$’H"‰$’äIò$y’sI$‘DI$É“äIò$»I$‘DÉ%eëÌsò!¹¼=—™‚äLAZ5—œ'åÌ“IVý“rîn¸»/2oÆ… \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_113_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_113_3.dat deleted file mode 100644 index 023b27304..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_113_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÚA -€0 DÑ}N“ÞÿrnDëÂFj2úK‚ÂÈCÂt?W«ÜݲîZ“iêÀ.qÕÁ‹ŒoýP ô¯ªª%SmjÕÖÂ7ËÞ¦‹:·©ª¨¢Š*ª¨N©Ê:@¤:݇·ìýÁŠ¾º•*€¹Š*ª¨¢Š*ª¨f©ÒW9dª2˜«¨¢Š*ª¨¢Šj–*}•S@ Ê`®¢Š*ª¨¢Šj½ªæ¯à§ª6ðJlº¾êÑ¿Ã}ÕÕ}ÕÕ§€•T‹¿UßaÈ24hnt \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_117_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_117_3.dat deleted file mode 100644 index 79cc04d14..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_117_3.dat +++ /dev/null @@ -1,4 +0,0 @@ -xÚíÛ1 -Ã0 Ð]§Qî¹.¡xIÚB$úŒ‡€Á?~!É<ÇQ?ß#–ç¶Ð5µ/tIÝJ8owøié{áßçâ¬}£Sø˜^ã~‡¢½q猉P„ &L˜0áJá¢î1ÊúϻݢðD×K'¬J¨Ã„ &L˜0á…õÃn -«ê0a„ &Lxgaý°Gƒ°*¡&L˜0aÂ{ -g{è¡Ÿþ2¨ë‡s¢Ή~˜ðì7\]%r¢Jôö9nZ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_121_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_121_3.dat deleted file mode 100644 index aff5a7be5dbb2ea59135b972a31de3dec3877f89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmb=p_4c+Q-(dwFh68i2Tm1hYBYs6qc7az@=PAWDkCizVq0?+t7Om4wtq;3tyIk#F zy5GK%&h#wvb64#0Vy@VU|D7&ef7h~HH9KE;>-~Ih^HVEgKLuZlO;cUwJKHSx)|O2B zFzfxyYi|AgTNeL2=}VZ;Ev?R7P^rty{%*guOnUQ^gxskvcVQYX$3@&ONuIXHIa)Pv zd*)?`uy^M1DbmmD%Zo4AT@Sf`A^-TAmugk}r7i9rS@ZJQ!dsI6-_8j2Oj_vmiRt9J G3$_65-fl?% diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_125_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_125_3.dat deleted file mode 100644 index e2febdbdd..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_125_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÛ1 -Ä Ð~N3ÞÿrÛ„]·‰BБÝ'?<Âà/̼VÛµ»Ýóþü¨ ïÒ”¿ÿ´…<–’0-_±Jä[¥ü?† +wÔÄ^;*ÃyòäÉ“'Ož<ù’/9ÏÏɯì9±<áîyÓÆœ'OžxFrjdA{$T!&?~Jee~GOn@¥ùz†Öô#EŠ)R¤H‘Z@ªbÂl-)ÌÝ¿ñ<ߧ*©OURŸ"5&•ö›š5ý*iúeÎ J]®+ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_145_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_145_3.dat deleted file mode 100644 index 338b7e7a8..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_145_3.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÜÁ -‚@Ðý|Íóÿ®”•:Œ^ñ ³JyÌ¡¤ªyM§î×j‹×-' -9¤V—SÛýÖ¦K¶©9ëÇe¬µ)PíyUûû¹£wËeÞ-m jÔ¨Q£F5jÔ¨RËiÙ«ÔF4×_wk}·0+µµjRBR£F5jÔ¨Q»ƒš¾¦eßOMBJHjÔ¨Q£F5jwPÓ×´ì˪IH I5jÔ¨Q£FͳÇúš–íÙc éw5jÔ¨Q£FíµŠ:¡œÿÑzS«Ž*2¤¯UZ_«¾CÒ×*­e_Oí´ïZ¥%dIȯûâ†b \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_149_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_149_3.dat deleted file mode 100644 index 30bc5fabc..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_149_3.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜA‚0Ð}Oó¹ÿåÜ â¦Hé ¯éÂô“'¬Z×2{oVÛ|Ι«%µ™ê>‚yû·R{‡!8îäÂI+JpI|#¶Ýfì–5κ[âP A‚ $H Á‚Q}ð)Õ&<¹÷E‚§ JQ)J A‚ $H Ás5zþ¥¨%H A‚ $Hà4A^£ÿ5A)*E $H A‚ $è½ Þ3ïMHQ‚ $H A‚ç æü3Þ§`ÞP¯©®o¢Ý>X{טÔè+±ÑWb£¿¡àìß`IÑã)5׈%dš \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_153_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_153_3.dat deleted file mode 100644 index 89cdec031..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_153_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜA -Â0Ð}Nósÿ˹)7mJ¦õ…,Å}8µêX=c¿W^G“e’ÝNóE;R(13DFEx15%o)(+gL2|3uiEv#I;;|4`apdpkS*^~xvLf_IwePW`Q`R8jLgJQhVasX}og%bb( diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_161_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_161_3.dat deleted file mode 100644 index 72a26a4fc..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_161_3.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÜA -Â0Ð}N“ÜÿrnªF±ÑTká…,„€NûðÛ ÄZ—Ñ’f7J÷:³Æ’^`WáÙ”U×á»nXÚ¤¼Ç§M-½¾‡™#V¹¥+ß¡ËÛ+9z–ÜÒ–YÒ l”)S¦L™òo•cŸ±¯Ê±O_Cå?ß©õ%Ê;*Kl‰M™2eÊ”)S¦L™2åYeý²]ÊÏÊ[bS¦L™2eÊ”)S¦LyVY¿lW„òGÊ[bS¦L™2eÊ”)S¦LÙÙ -ý²]g+$¶ßeÊ”)S¦L™2eÊ”­Ð/Ûq¶BbKlÊ”)S¦L™2eÊqÊ™ÿ‚þ¨œ]à­Â£{ÎA¿¼¦œÔ/×ô~¹¦ïŠœV9ï»\%ö÷‰[ãP¯#' \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_165_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_165_3.dat deleted file mode 100644 index 870af8f4f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_165_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÝA -Â0Ð}N3¹ÿåÜT‰ #ØZþÀ Y¥uÈí:ÆÌ›¯1–ϱE®Uæ¹TÙT|SüþÒ·Ô ñ ¿qž)òm-sG²øì ¾ ýBæÈ.C‘ĉ'Nœ8qâÄŸâáÿÕ÷âwv7û[Æç'„tgÄÿ!.Õ¥:qâĉ'Nœ8qâÄÄõãv`ˆ_+.Õ¥:qâĉ'Nœ8qâÄÄõãv`ˆ—êR8qâĉ'Nœ8qâΤèÇíÀ8“"Õ¥:qâĉ'Nœ8qâÄIÑÛq&EªKuâĉ'Nœ8qâ½Ä+¾È9:¹}kFT?^úñêпG¼Åo<0Õ«Cªg/æ_ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_169_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_169_3.dat deleted file mode 100644 index 943109526..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_169_3.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝA‚0Ð}O3Üÿrnˆ¢‰ñ·¾¦ ¨)}á'3ªæ1EÎÇh‹ßÑ]î4üP[ £_«ñÁ¥]Kvè‡<ÃË™fpý©#ýûª¶y_Êlù[œgëe£ôéÓ§OŸ>}úôéÓÿoý ªµ%uJV/µ°“{¿„þ—ô%¿ä§OŸ>}úôéÓ§OŸþ¨úê}Ýú§êK~ÉOŸ>}úôéÓ§OŸ>ýQõÕûº=ô/Ñ—ü’Ÿ>}úôéÓ§OŸ>}ú£ê«÷u{èï×—ü’Ÿ>}úôéÓ§OŸ>}ú£ê«÷u{蟪/ù%?}úôéÓ§OŸ>}ú¿×¯.N4ÿ»áƒVMm–¢R³•š¥‘ø™Òá¸t(1ï…¢| \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_177_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_177_3.dat deleted file mode 100644 index 9586979a1f9d74c4e115757feeeabb74819df45b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmb=p_4ckK*C7KDmJ79hlkfa5%Jb^v=;WB?Q=`hguxbC(hf6kRuDyQoTio}+UFQXv zzYC}H-0`hx>pHl#M}PCVx?h`vgGKGt$xx|wRV!3 zfoMp8BP)#fxJc>g$uD7oUs9|>H)gE5sHrt=^#lc>7A~z73z`r_mvKnO#w`)M&Z=su zbg*n(k1PjN^&?s|N=H{r^nS3Sqe@3D+;oUNM?Y$9iHOp<`z#Ekc_EUqAPXMxfb>qw zEAHgtRC0WyjcRYJR@RjRYnSlaR2M&;SL^DVy)i4Q+x2LaXy<=XYjqD_?+J5e|6#~G HtjGiaa;}E0 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_21_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_21_3.dat deleted file mode 100644 index bcb4eec4919b60e2c25c4e18ebb9c34423536b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 zcmb=pWo*#EQOIfiJ63sVS+xNu1fplLAA habXVvLtL={H4TR*l1wwiWg5b#xHRE54FHDyc9;xW9FqV5 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_29_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_29_3.dat deleted file mode 100644 index 6150ac1289809bad7646c662dd9cf836311f47f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75 zcmV-R0JQ&j+A}bK0z)JO16&9u7I`jwl1Q?&GZ`D8$YeOr5DVhME(}Fn_#_QSO-42g hU)nIl9)oZ$?ieJ~WF$A^k;Gv#QfT0j2LK0SpN7|C8+8Bx diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_33_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_33_3.dat deleted file mode 100644 index 6053b5e396ca957ae26193aceb85d08a43dacd9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79 zcmV-V0I>gf+A}bK0z(W00bB+MfK>sq3hWAyRM5v3T!1RJz`2Gv5EpJKDB>cdVAPhO lW(z#c;7?-^TkxkbL)`g=Dz?D=LP!BVTMUV{1pswi&V8ytAOipZ diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_37_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_37_3.dat deleted file mode 100644 index 5dea5b9cbe14fcff482e0fe9a647359aca07547b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83 zcmV-Z0IdIb+A}bK0z+&F3b+gq0H-2kRd@{JG8i};@d2vZ2XK(!(BO=uY7eM-(E6p3Zv0bsQxl5nw^V$$JC%}Bqlsj9DvDo{aE;P>E# hYO*WtyB%t`BNs_$5b6wWqgwwJ)C%Io3LZM{#-RD-KY#!L diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_53_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_53_3.dat deleted file mode 100644 index 8800beab1..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_53_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí–K -À0D÷s½ÿåº ­¥‰Ñ! -(.Bp&|ˆ"-t–&`Æq‘Q-"†ð9Ù_+)Be/H8¾ãD®¼%‘a~šÐ}spKFN˜úöœ¶Ö=,ÂÆ;‡;a^tª4÷–‰Ï\™ÞF™ÎáÂÀÊÎSNé§éâ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_57_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_57_3.dat deleted file mode 100644 index 4e1e5da386a57dacaf76f93d05473ff922574488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmV-^0D=E_+U=Gx3cxT719!hh{{QE?gyNwnmS{-_8xJAm$PtVPuqu0fSCq8`R#F2C z`Jye^+}fgNtCnh;u5A$xa)x*4$m(#xu^rp7Rcwt+;I=%SqH*TgTz7#%(6RO)$6#_BUJmZJUz-cM|kVFF3Ae8Lopr+yDRo diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_61_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_61_3.dat deleted file mode 100644 index bf1a3cc7f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_61_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí–A -À0ï¾fýÿçz‘4-%š•Ò*Ãâd°Ðpž!ÝyZÜ«‰æ‚uäõ(ù¸~ë=¹&ÉÛ“´‹)œÌR2â"/ò"ÿ<9çŠFΊ=r§þbòšó"/ò“ƒîÌíçrw¹"2®¯¹ãçÈøùBòèŸ#3-Ø0-KÀW \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_65_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_65_3.dat deleted file mode 100644 index 85892089b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_65_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí—Q -€ Dÿç4»÷¿\?R•Û …Å,û!¨OŠ²-òNv®Í1 :Âc¡Zœuï Ú"U‹MÕF ~jK¨€´…-la‹[^q^³Q\éœ=…o”-la‹ÿZpUÒÞB¬„äÿ ±@IµÖKµJzÉ¢|1â ÷¹ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_69_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_69_3.dat deleted file mode 100644 index 55318a87b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_69_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí×Á -€0 Ð{¿&ûÿŸó2¤'—®dô l†=,¹F½îéy;$§ì‡¤”WEË-R„Š¨³:¢¡%T,O2½×g…"Ä"‹,²È¢/DÍyĈ˜¹ôɧ{þO䮳È"‹,:N„vÈEñWNÎ#(&,ö,‘䕺Š®ë]æxØ… \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_73_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_73_3.dat deleted file mode 100644 index 15be77f64..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_73_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí˜Q -€0 Cÿ{šìþ—ógè;è¥JJ?dÔ¬K„=ÚRaÃsJhTJ6exÎkaºú¥§\$é‘n¯´IE,-/ÑÓXB¢è*Ñ…=ËâžíÚÒýweeé4™¢è¸tÿöÌ’tšLщî«t t”ß«œèà¯bž –gF…fž ÖáqºõoÖd¢Ðdn-ð? \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_77_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_77_3.dat deleted file mode 100644 index ec7828044..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_77_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØA -€0 Àû¾&ùÿç¼­BŠiÖRaK"té`I@³¶|¶º…fX—ö±Ôâ­yiöåólõE‘:Sza18G¾À‰if˜K*©¤?–:YÜC1쌞졘(ቷ—êöJ*©¤’¾’jÊl*Õí•TRI×KëÌîR^Ø™æœÞksûÂ)cÌ)cÌ)³JZø¦¶óí¥äãa· \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_81_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_81_3.dat deleted file mode 100644 index 47bc0f793..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_81_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØ1 -À Fá=§‰÷¿\‘,JÑGAúÄ¡‹ýhjÀÌ>ÚÙ#Ê3X™À’ø:çk÷Ô¹\ûFM JÝhuÇú½3¸¨>ƒT­ZõŸÔ{ÇãPSgøP'¹ÉkÔV¸jÕªU«¶_Û¯ý¯U«V­º•»=P Îo†O:WÒ‹ÞäÝjü[ŸWxÒÎmò Ù5 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_85_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_85_3.dat deleted file mode 100644 index 02c4f8cdbbe43a99de71a77162d811d36ad4f51b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160 zcmV;R0AK%j+U?m(3V<*SMbUXy^Sb}dIVrU|sn!>N+|q$Y2;pF8P^qqRd9N$FYg^Jj ztFhS7{Q{@rM+N5MyIOtAC{U6F+M{SU#kj+puI|W4iU0x#Ab>!sfcG@40`85I_KdmkG#TsrP@uMqv1rdge4##%ZWgv6J(FGUkB?1g^dV O%IE@ppbHjj!&bK*zf9i% diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_89_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_89_3.dat deleted file mode 100644 index 2b4cb59fc..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_89_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÙ1€ …ὧ)÷¿œ *.@àUÁü ƒÓÓ|±¶‰î¹’âeŵ6Û¢‚‹äw5*÷ô) oôi¨K®‘¢4nk>Áè1}d>œÐ@ 4ÐXYC¾oœò Û¡1<º©A§ h F„ûÆt -ß 4Ð@µ5´—ž1ÁWrÒï>7û«û†Gíµ}}¤¡x7|ÇN‘gÆîÚN \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_93_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_93_3.dat deleted file mode 100644 index b4cc8a971..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_93_3.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÙA -€0 DÑ}N“ÞÿrnJɪQš~éB¨Œú06 û£n®aá¸<<¦×‡‡ôÿe6×M—R™ýCùÅPÈ ¥LÀ±ôÌ“išØ9MŽ 2È ƒLkÅ®½dD»v*ó"a·ÔX†jBdAdªdèôZöÀTßdAd®qYø0exö÷ö¼Ÿqe§çÊN¯«Œú©ª&WV“ææQvcô \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_3/mask_97_3.dat b/vendor/aferrandini/phpqrcode/cache/mask_3/mask_97_3.dat deleted file mode 100644 index 7adc9ebaa77cfc3c6f7a54307a831fbeee0c87db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmV;g08syU+U?rG3V&G`N=*G0-MD(Ga{FCK!(&5t$)O3EWmo!5xs*ixXZ zVA@1zxl+BnrYNa(r@cz9VNyyDD4l1cxytAa-_m)8y8uckp@b4jD53OrC10xSQX0*J zF=dt7h5IPcalDsMLJ1|5P(o>6B~s-^N^~6WC6rJ?2_=+%t0e0VeE$jDlr;7Ux}BHg dPL&$iL~p8;J5{b%n)WQo-EsPG#~oB@^PHSYS7`tM diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_101_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_101_4.dat deleted file mode 100644 index 1c97dc048..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_101_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšA€ Füÿs^1 b¤‹ÆáИª]ÃØÖ4šm+Æ8Ð+˜Ve¬Ä^H­R]–\Íc‡®ŠÛ -·oõWN#¸îXáéØá+lð ž­HE³cp \à—^.Î9qñW9ø¼ïç"ò…:¸À.ŸæBßÿó÷ùBƒ \àæ0Ìa˜ÃPǨcp \ÞÍÅïO•’‹N¥qjpGÖô}“ô}¥Ê$.äË…Š§ÐŠ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_105_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_105_4.dat deleted file mode 100644 index 0211cdb3a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_105_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšK -€0 D÷=Mrÿ˹‘øA …ÎTáe‘EFóL2 #ŽÈÌé¹¢…_I!“‹•ßú­£ç딤Ѻ““Î-Õ«km¿Oñá]sS T6*ùª'8Á NŸâ$Þî'N¥Z‹Êí^œXXh%Zrr$W¹}rûäÖUë*GŽ9r|ºcÌ[Á£cNâ¬Þ[_=Æ׫5¼^ÍJ¼£ù¸ 1*ôq›v \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_117_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_117_4.dat deleted file mode 100644 index 386725918..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_117_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÚË -à н_£ÿÿs]4Ø¥©Dg¤nò¸à‰2Jj}´ÖÚÒ¾·RsSWG¶R¿ŒÉ§†žÚ)5¬»ÞE†áämá#ܯ•ã¾Õðk_"ÃzŸ”š3Â\¹råÊ•+×r ­L»k|ê/{„¹;Ž'×àÔjk^zGw=K_GJACF5KEX*@<$z}?p^YqOrD6l{pq{+`&l7JcHsOy z_GM@Ox_x?b=y>Jqe}Ao?uX%DM`IXJr{-ZaqKAvlH`*6wj&*7((AW$y+_m1`VYgIgEyrCkW+Vc diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_125_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_125_4.dat deleted file mode 100644 index b98dc813afe773cdcd71a8779391ca295c0d3a51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmb=p_4c+S-ysD7)(f`F8-K^2;|+^RST%8G)>;-rsHGtPebu=wvE(Rqud?@Jdiv-z32@0r%Fa7(4|DUhVIr-8&`h2IF>D|wlymv&u|5gc>1uLtXBe(o`B(jjL zU;pLDUo3v_shtNkChn^3Ki;iZZS8BT4}Mgedi!xzR{!b=ahL8^+0UC-$jr|$aq=Dj DA0&Li diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_129_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_129_4.dat deleted file mode 100644 index 8ecfa250845e8ef1add89a66c88fc9f31250a436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmb=p_4c+kU$cP#%Y}Q(H@>gmX_E0-a3R;c&@UP>6Fhnzw0;$t`MGk<)@^G`dv2;9 zJa>BiGETqum$vWzzWVcDA(y^F$>O^;cE3bkZ7!_If6o7~R(2)#^;-&#|1=8@FtW=O zT)5zvG5y;kg&7OBX?Mm(S)NeKczodZftUvk%zPFg;tOl7WBdj2GpxmpM2j^4FA?}L o{bhTz9Ot|H{BduueXdPB_S¢Ø/œ#\pÁ\pÁ…>¢è#ö ç\pÁ\p¡è#úˆ>âqŽpÁ\pÁÅ.º¾$¿ºÈIqü𽤠dô‘ÑG’R»°_4¦è ò€˜ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_137_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_137_4.dat deleted file mode 100644 index 0c09c487c2e85488f8caf2dcc863e260cfd077d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmb=p_4bYxEjs$#?!2-R}~*>9$YZ>m}P8_SPSlc>J(ZYVC8? zO1oo*K1q`<^UtZRwccRy_UiY^lc)4;t3SOfES@w`rW=l2^YbTRO$JKN#b*jQw`{%rV(;`b$vL{4 zXRQkQ#dOtY-ox+n-*;b@wS2d1)2vU1rN&=NV*fwfSo>q^jJZKc}*2a`@ScXA0|@PM!+Z)$&&j+uR`i+&96LlQothXU{Gd06E`pF diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_145_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_145_4.dat deleted file mode 100644 index 33fb211249fd13955f9481a5af91416b0850c79f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmb=p_4bYjXH=f@| K¯jò´oé ¾ªý|¯SªŠSWKùZmË׌ºƒÃjé¾€Ã\’Š¹çЪ2ï W\qÅW\qÅÕñ®"~·ß× ­jvÚtòê®òªŠv¥_Ùíƒ\qÅW\qÅW\q%g3Èä ú•}+®¸âŠ+®¸âŠ+®ä r9ƒœA¿²rÅW\qÅW\qÅ•œAÎ g3èWöAû W\qÅW\qÅW—«œÆ]åVµ~v{êDŸ™3ÔÈœ!¹ªƒ\éWÇô«¬Â^<ír/ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_153_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_153_4.dat deleted file mode 100644 index e827dd16f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_153_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØ1ƒ0ÀÞ¯ñýÿsi,')p!äµ4.ÜГ;±½¿WUmßçj=¿²„²ê°Ê.NO¾þ>úûšçTµÚ[÷¾S7vÜÛœg¶q•„?æ÷ÞÒ -š{pe¹o“3Î8ãŒ3Î8ãŒ3Î8{ØYXzðá,°²Û_úO¤ÓYfeñÎô3sÓÜäŒ3Î8ãŒ3Î8ãŒ3¹†\C®!×ÐÏÌMs“3Î8ãŒ3Î8ãŒ3Îär ¹†\C?379ãŒ3Î8ãŒ3Î8ãŒ3¹†\C®!×07ÍMÎ8ãŒ3Î8ãŒ3ÎÎq¶þÚé,»²ËmMrs›k¤Wvœ3ýìÀ~–WÜ €WB \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_157_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_157_4.dat deleted file mode 100644 index ad5fcf69d..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_157_4.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜ1Â0ÀÞ¯ñýÿs4˜"FPà=iRX¢XÉÛ0ç멪€u 4ftÑÖl}Òm¾øßýžéâž­»Sû|²ËÑŽëSÌ û¶ŽÄPÏ5<]öÉrÇwÜqÇwÜq÷£»È^QáéN6ÃûáéZ¸sß™³æ,wÜqÇwÜqÇ>«Ïê³ú¬ûÎœ5g¹ãŽ;î¸ãŽ;îôY}VŸÕgÝwæ,wÜqÇwÜqÇwú¬>«Ïê³æ¬9ËwÜqÇwÜq§Ïê³ú¬>ë¾3gÍYî¸ãŽ;î¸ãî[ww?P3Üå§ÛþòÑƘÝggtŸí®¡;÷]ûû.3àw4A¯ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_161_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_161_4.dat deleted file mode 100644 index 7604c4540..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_161_4.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÚA‚@ Ðýœfæþ—s!AL€Ä_|,ˆ™4òl)iï¯mŒ²ßl­×‰0'¼÷ +E¸û…£ ÷–]N\ºêüxÅ#·‡§2Ÿç/ü¼_¬{—7gÛò9ì¼Ù·ÔÀÖ}óï2‡rÈ!‡•?}-³#T—Õe9äC9äC9üÀ¡~ùöý²÷6Sʇ겺Ì!‡rÈ!‡rÈ!‡æôËÞÛ˜sÕe9äC9äC94ç _öÞÆœƒ|¨.«ËrÈ!‡rÈ!‡šsÐ/›s0ç ªËê2‡rÈ!‡rÈá8ì§}D‚ÃÎìçw£ùýrï—«DXΡ|xÃ|˜ä!à2ð \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_165_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_165_4.dat deleted file mode 100644 index d83d63165..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_165_4.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÚA -1 Ð}OÓÞÿr.ª"Ñ*?úfÑÅÌP‚óLHIï—kŒµÎ«õZQ¦…8 -Gy÷êqkñ-ž¿ÿÎn5£Œ½Ú+?ÌÒñùù¾Ýâ¿ø|ÖŽ÷Òþà·kKn®E¢¬ñŹä’K.¹ä’K.?ï2º£˜.ó£|¼EJ§{å2<Ê:.åKu\ç’K.¹ä’K.¹ä’Ë—úñ¿êÇmu)_ªãê8—\rÉ%—\rÉ%—\šÛÐ;'2·!_ªãê8—\rÉ%—\rÉ%—\šÛÐ;'2·!_ªã\rÉ%—\rÉ%—\rinC?nnÃ9‘¹ ùRç’K.¹ä’K.¹äò;.û²óHqY'ÊݽéþN·F?ÞKôã•¢,êR¾üé|™è My*3 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_169_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_169_4.dat deleted file mode 100644 index 4aac95c1e3fc9ba5257f331564b211fab568c376..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmb=p_4bw{7n30m>xEkX%lG~l?V3;+6CwFBVc+Mpz`!LezkNJB-=9zK3Cy|6dc7)c z$=5@7j?a{Q`J_AleCn>hU3Whz>;A1NtE#vC#=Q1!Zp)m1?|$5V9DCCK-|1Vc*mtaT zocL^x-SRm_r!-;2ueFy?#eVr#8L;Ge>5J}i?kE{?B4PtL69K8~&|}TJq5E>1FRHmwz3+$1r7q GdJ_PDBBetB diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_173_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_173_4.dat deleted file mode 100644 index 9df4d865d..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_173_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØK -1À}N“ÜÿrnÂa øÃ~ZY!ÎÐJÑt^ï×5Æ(¸/«õÌjk–z[pjµ§_Ø?~v:|jwúÕ–_mû£îXzòoõ–Ó6?nËÞŠ<ö°j³$pË-·ÜrË-·_p[z¾=ÞVíæ–Qí¦3ÝæTéV¿ÕoÍ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·ÜrË-·r09˜L¦ßšÌ ÜrË-·ÜrË-·Ür›æv­æ6¯Ú÷ßý?•,eå`=*K¬6Ú­~û§ý6£à ´*× \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_177_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_177_4.dat deleted file mode 100644 index 6437d2511..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_177_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíØA -!À»¯Ñÿ.1B„éMyð”![ c÷þ\cŒ²ûZ­çV\¹Üq“Š7ßâÝEó‡Oýzg~ÅkëøË¿jž;pg”Šu²Í[*7Š×½¥ºöÀŠóTpÌ1ÇsÌ1ÇsÌñqÇ!¯ÿ‹ã Šw/òr¯ÿå8«âXÇú±~l®à˜cŽ9æ˜cŽ9æ˜cŽ9–»ÉÝänr7¹›~l®0WpÌ1ÇsÌ1ÇsÌ1ÇËÝänr7¹›~l®0WpÌ1ÇsÌ1ÇsÌ1ÇËÝänr7¹›~¬›+8æ˜cŽ9æ˜cŽ9æ˜cŽånr7¹›ÜM+8æ˜cŽ9æ˜cŽ9æ˜ãtÇû§oEÇ™ŸÉN¥Xy¹[ËÝR+¾‰cýø¯ûqNÑ\,4J \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_21_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_21_4.dat deleted file mode 100644 index e006b67e4419e056f5a3fb4b7232769ee9976232..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57 zcmV-90LK4#+A}af07Dpq%K*Qqp&?w5peQNkA_J1lg(?A)hA@%~nFA+rh~hK>%^4`7 P=;q=RrH8oyopw{-jJFsR diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_25_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_25_4.dat deleted file mode 100644 index 0c7c44bbb5bb50a1f060373ea3ca14d083fe686e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmV-S0JHyi+A}af07FAV1c%Fjuna^PAxDf1Irg9fvh0EKpc;@!E_4AniAM&vX|%Qn i>NlJ|HN*%VIGY$5BJ4r(4;Eo;_F$1gmjnRDU3Su2%N^nX diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_29_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_29_4.dat deleted file mode 100644 index c28dc20e8248d196503c88e3e58b9048de750a16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmV-U0I~mg+A}af07FAVI0*(^2E@r?NRc2*iM`kWMfO73Na9E&7dAmSNkA6A$s@yF k1DFWbSimBS8G{geiIFARUKIc0kiuy%rYtrE0Gke<<${17%K!iX diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_33_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_33_4.dat deleted file mode 100644 index 5834b6fb5672ddd54227a5229ad248efb56f9931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmV-f0H*(V+A}af07FAV1PK%5G9X?BinJkI0ZA&T;SOAYD(-+P$1ng+a^aGIlSHT> vY|E%S29rDBDF$Z>!lD9ODl{aRP7U#;Q^M{*2@gEd1l)nH0+%8HgW}HuoFyU1 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_37_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_37_4.dat deleted file mode 100644 index 4bf2e26ed0238cb7f0fa88b4a2e8d9f607c6c465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmV-c0IC0Y+A}af07FAVG!hE93`kRjsRW^pR8`b;7d}8$cR_hr3_>Eg@JYf+B2^J* sQ04GUMNxbc& v?i_XJs5{AZrvXfsV99_*CH~R|;!aXkQtVEY@FYSRQSQW4Nk}mOMgc#BT0kV* diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_45_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_45_4.dat deleted file mode 100644 index 1b921f3009656cf429e67486e59237b8dd15ff5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmV-;0Ehp0+U=A<3IHJpMfaXY?|-@3gj12@{}N1#TnN<@9`Z@`Ei+qoFVPwup|*kU zpmqSgF*>cacXR`pI4*58TFBT1fxMG6XL7wac>{^GqK!9Q$bqGK7QU=)P)>BL}k8 eRu0aQtjeU@>+_-I`CuK_9H00P-1Gn#s>kM_-9E?w diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_53_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_53_4.dat deleted file mode 100644 index 7e88826dd67c8eed58a77ecc7bd6326cd996537c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmV-`0Du2@+U=H03cxT31^1pt?|->=VN(l5e9snI(1i&h1DSjzs%My4l0%60s2sV1 zUFvoM>Q$%8k$LTH-z$uZ_X`^svLKUJCMj-(<27Edc$MCl9xf#1?;NQB?uAn=uepcg i^-r(*&mns8lo?t9xVoWK-RMw{czy1?FmMC1XBA^pK|VMD diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_57_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_57_4.dat deleted file mode 100644 index 84669c7d65c97c0b040497b32d3d3037c70d826e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmV-|0Db>>+U=H04uCKSME9Hq?teKq4gQfCYGNWRShRhHSItD#wao0Xdx_S`3}%zb z)6ua+cp@ZJk!QRPPwS|R$7C*c-vtG{7f62E_H57pdBSPpo*a39C`!$ZCqdRc`@3z= k_I%kB_3cxT31n<5^|NpsON^2;!>e@qKa}XLb#Yw^v)q9v(qB=lyhR&g$ zouh+=UGEBA9-;T^egK`j*5&+4Z}?KB16>uQvCipDZ+dUw-O4os=_q+W=RtbJoA;dF m^rrXIyZXXjy>U8x$cKrH<+(z6K0*KBy}^0+esBPHn8I@q@JM_B diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_65_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_65_4.dat deleted file mode 100644 index c24343d94..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_65_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí—K€ D÷œ¦½ÿåtX£Ð™.4ÓE1^ÂãÓhv†»OæÍx„ùéW“ð0 ñ°JHÅ»‡½­ðz[ÿ^܈[vâȾ -yy‡ZÀkß=`„™êv·cíǃî…<ȃ<üÚCî/)zàÜ‘×¯× ¡ÈÃÇÎC²Œš"" \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_69_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_69_4.dat deleted file mode 100644 index a73b1144d..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_69_4.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí—;À0CwN÷¿\—ˆ~¤¨;C$3°$<)/m­ºß¥žeÎ¥T±‘2  —:¥]ÿ^VV¡%ƲzAïnÈpv…s"y‘y‘y)zöá¤dÄu6½àª½Gú¾È‹¼ÈËi^šÂ/<ÊtÓrÂrrÚ)9ͤlõrìó‚.¶‡Ö \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_73_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_73_4.dat deleted file mode 100644 index 72f89227e..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_73_4.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚí˜A -€0 ïyMòÿÏé¡´)1Ý-‚lE3š=Ô}¬ˆ(Öô°9ŸTÇdÎÒò–E/eO ZOžîãÛÅ»KíY;ÛúpS5Ð+‘ÄëNžäIžŠžà| -"©eìvúö+DÝ“æNs'Oò¤WŽkîäIž¾ð„ì†Ìž¸¤FúòrÜi9Î&óô«ÿ ‡]?ÃóA \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_77_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_77_4.dat deleted file mode 100644 index 993c48608..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_77_4.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí˜Ñ -€0Eßý÷ÿ?×ËjFe8¯0êú uØN©0Õ­µ‰lB´†6‡:«h·<½õ–§¥CÜe\,¹ †ìÔÜ—~ø & rd0 »Sz£7z+ô–êoº»ÓÜþëäÝŽVâuÊ:¥7z£·Wo¿š ËÎSÖ)ë”Þèmoù3ë O‹y;:*h¥Þ>û¿a€ïCe \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_81_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_81_4.dat deleted file mode 100644 index dd6521613..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_81_4.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚí˜A -€0 ïyMòÿÏy‘XE m7"89ä 2’Ѹ ûQ1ݳÌëˆ+¸x‰x;ÅÓt35DIY÷¶1x\:už³ýº•}î¦e/ ê§Æ#ñø¢Th< -‰ùùU¤BzÔË<²×ì5ñˆG<’×ä5{G<⢿®5Äñ<饫>¯]ž×UÄr¿xuÐ ” Üû \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_85_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_85_4.dat deleted file mode 100644 index c8d5123e26909726dbd71694e1f6697cad51529e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmV;L0A>Gp+U=P!3cw%?MR!k=-2ZZ2N*jmT*5nJN&mmxtH#~v~YIZJnPs9LfrlsbP zk*TK+4nE7TrIxLs*SC2W7zhg5zDpNC7h5Ilh$5=S0ABHmSG?ji)1NN$BI-ÜõéŸ+ÑpÓÓöH“öÈéÜ9ï¢DÞi \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_4/mask_97_4.dat b/vendor/aferrandini/phpqrcode/cache/mask_4/mask_97_4.dat deleted file mode 100644 index 5d848caade31141b6a6d238828e0513940b9aec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmb=p^>&scSAzi$%llg2U;ocnYTk;AQoMQf@D~ArLUH5VhzlL*U+;ClQn_{Ld4Rh8 z>uTAu_q(T_ELu@IVU2P7<-3>5gi15Bf~CWkN@uS0RjmncZrXE$dhO>e3gqq;cwFbMH2i4?0P>DhOaK4? diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_101_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_101_5.dat deleted file mode 100644 index c21869e83..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_101_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšÑ -€ Eßýšíÿ®+£%=ÜM¢3Cbvó¸ Ѭ›«ÍNkû¹´gqõkqq{©%ôO¿ÒòüoçžùÈû,i–¨ÅKÖeœeçÁ3[›|‰îiž¶÷‡¾õ˜ã©V¥¥h]` Æ` Æ0¦Ê•±¸zË´TÔ0Gu×ì/qŒ8F®„1ƒ±3¶:WÊò>õ˜´#ŽÇÈ•0c0öQÆ8»øE=F#Ž‘+a ÆþÄXÖÍž+cV©%9W>ßíQž]Tk©¹“Y-gL¸÷óîq¬DËè‰‹Ï \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_105_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_105_5.dat deleted file mode 100644 index bc8798c64015b6595105a07645625a572c839c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmV<603ZK&+U=S_3dA4~1n<6P`v0HHC0WDb$gbEE0yT;RFVdN!?Sm0#$x+d(-M&MH zb#RhAbEHXz@r$NR=-U3QPci-P|L%XEWG%ZUmG!BgbTK0LXu8R?&L*=*eAagQlk8Qg zsjyG52YayhPWDE5FUx?-`>CeAIbz1%-fVQSH_Cfi23+1R)r9Zid)&FO2Yavwd*nUx z9(fPn!}qvzVGs6T5BA7=v+3UUic`wTHUd>xK aP2TVA&wEd3Dq=6}&i9BW^E?1$d?(3j3x3!D diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_109_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_109_5.dat deleted file mode 100644 index 25a394402fb8b1d0ebf02b85473522a21235736d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmb=p^>&scSAzi$%lk^-Pyf$XZV2j*s`A*zF?pKO&MOlNBNgB2F4Ef5es`YjsdLA3 z1GmLzcQ4u+7wuKIGk@pLkJ~=o2#t=t|EsmEP`E4gbGg?&F(KW|<)*sao-4A2zw@dk z3W3o7Ln%e~oL=noQ``Tq@Y3g3w~o|0t6%gi0ZRhqKTiJP`A5a7)9;Xq4;a-6*>}!& z0V-}7~CRaH?+kXgI=m1Q4e>}I|^`+f56tjphW?I(xcpB?4RQpn(Z Hç=>ŒãÃ0 Ã0 Ã0 ÃOf˜z˜3Ž»=>ŒãÃ0 Ã0 Ã0ü.†3ÿ÷ïZ£$¯×·8\õp”ÔÃùw4½Çá:ã¨ÖZÀp¤:q¹ÖÄù§X 7 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_121_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_121_5.dat deleted file mode 100644 index 9bb5c4158981760f99c1831c03ccf11a664e6053..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmb=p^>%h3*AWFCm;c4Hp8T7ByMNb~P0`w->X-Iu1WibCj$>!PxYtGF(Dx08H@Bz! ziL_Mtn}1F*CX2(7=TOEDEbWKm# z7n3IwXBH>TO_bgSLC0^-+rs}kq59sv;^g0Fytmmr`w)|MuCvr_`^DT6m?EIk`)9ws z`TOnWP2bl(=@oqXJ10zcK~pjRkXgEU#Yr9g&b-C9Uzp__hM;esZ;0LBZFwcK^7XPb o>!)^ZQ#aoWuYBxxGe&=>)49shxbEDe|L3eseDs4sW73s<0HpnlZvX%Q diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_125_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_125_5.dat deleted file mode 100644 index 2161c50a4..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_125_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí›A -Ä E÷ž&¹ÿåfc;S´¶$?‹‹”ŠØQ4ëáYaßhûyJ}9ºg=×Ú=©liŸ´.;nh_ÍÔýïwzýží.÷qôƒCW”¶üÏȧyº× uëÞë’PkÏ;ÌÃ<ÌÃ<ÌÃ<ÌÃ|*óqëùÎü,‡ m“kWæqçNÊl—%ª ŸÇçñy˜‡y˜‡y˜‡y˜‡ù×Ì×^Ïæ2ä°…sX|ŸÇçaæaæaæaæ3Ï™9lH‹Ïãóø<ÌÃ<ÌÃ<ÌÃ<Ì¿›÷웿Ì[í¢õüên`ì™TíÚûqŠ¶8ó¡^—vôy©öŽ« \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_129_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_129_5.dat deleted file mode 100644 index f0c1d65020884c517fcba84b94191eaac350aaa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmb=p^>(%)-(dqD=JNe+fBrw;rBWIY;l}PP(iGgY;6uuWT>&yOg;TY((|V7;4|rHz z$aHnxR5q=ee-{;mpS}6Fjz8)5|GBsR+cqxEkvegY{WD8>{;97#wkaFeC|)-I_*?FJ zdDOO73mlv68dxKM=*5vkTKXxHkABpxay&a{NAkk7uziscPg`}IW$x!MWZc)F|A2b~ z0~9@B{lrw+xCbP5#sezq5T~F&LHq>w52k$wdRTBP%uhX7dcHJE;G5lvJnQRETQ@vs deIFa2`wqnRlbR99G23{{r2|{+4tV*M007v5c@F>p diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_133_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_133_5.dat deleted file mode 100644 index 46be8b094..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_133_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜA -Ã0 DѽOcÝÿr]4%1mCTåÉƯ„Ð÷xÎœ[DvÌ=Æá{Fúú–E¤Ïµˆäq½?Ý¿Ü9ûkeÑ­ù}±'2^ý•cœçš4G”žÛ:¶3=J£K-šôF0‚Œ`#ÿÍHÒþˆwð'#ß<{Ú~—Z4é :BG舻F0‚Œ`„áGø~„ŽÐ:‚Œ`#Á?Âð#t„ŽÐw-Œ`#Á?Âð#ü¡#t#ÁF0r·…ïÙ}Qõš}e¤üÝòR‹Ú;ø<ùçCžéV‹}Ñ—‘ìó¢ËÙY-Hž \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_137_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_137_5.dat deleted file mode 100644 index 064e7f2f3..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_137_5.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíÜÑ -ƒ0 …áû>Móþ/·ÇkÅ1mÂøªÈXº³ü=‰–ö¾µÈhýÕÚîså×áH"ãk ÇM„:îúê–3qÒOü¿W}ÿ9’Ô–¬I”‰“ýHž1ÙG;þ- Ï©sìîÚ¶ù?Ò[%M -Å v°ƒìü#;£zg^ÝÔ3Õd}Î6‹“Å9ÛÆΨޙ×@7õ”Ò„ïð¾#gÃv°ƒì`;׳£Þ©\ï$ÔÅåŸð¾ÃwälØÁv°ƒì`çvÔ;ÞÖ}7Êwøß‘³a;ØÁv°ƒkA­µ”ïð¾#gÃv°ƒì`ç=N2wúxg§WÓ¤@n?Ûëc}½SQ“:ûZd?+¨ÏÎú9vÆÎzß)£ÉæÝáP \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_141_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_141_5.dat deleted file mode 100644 index 60c1a8e81acb9a104b1003fe8c362588b053abac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmb=p_4dw1u0sYqtq*_O`hNbW|NLx;(ly@Fw~{rHnwy%g%&1?U=@uQmHZAgYPUWvV zSwa8P%uLts{p{|I6Ff?XUZ>?fOlh?Hu<*Lhj^j-g&%KHRklY zHSXJ%GR-^MUl+M`k&@0?^TfhtO`k-r;2DQRmi;?;$r6o)IJ{82> zzVP^R$E^#0m%8OX_%_jPZqDCVlYVV;i{Ag?{rvsKSBqQ(C$718!)g|LXx`R)LEA3< z-^TpyQqr?GFC*0AGYu!M2uzSo(E^bzLvI+;8@4U$WERT)%VrUu|y7`j4jj zp4qEF>;UTg{AOd_*}XaECï£*¥ú¬v¹ïsýØ]Åœ_{W!Çzﶬ/ÏÝÞõ÷ÝÅÕ)½Ë™»¹Áöä¤vÿ ›ÏV‘®×6ÜV‘•Þ»ð¹Ã,f1‹YÌb³˜Ê Ìn^o¯¿>¿þí\Oï]øÜñ,Ïò,Ïb³˜Å,f1‹YyVž•gåYžåYžåYÌb³˜Å,f1+Ïʳò¬<˳<˳¾1‹YÌb³˜Å¬<+Ïʳò,Ïò,Ïb³˜Å,f1‹YyVž•gåYžåYžåYÌb³˜Å,fÿïÝukys77—Èì}ïvçŠÉæmbž=¥wÙsw³)ï»tWÖ†Ó:® \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_161_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_161_5.dat deleted file mode 100644 index 70d5fb008..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_161_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜI -ƒ@н§éºÿå²ÑDp@ èo|m ˜¢ßrHk㨤Ñ~c˜½o³^ÝÃJz­×°‚–#5l»¿î¦S_92Ûî ©“[¯}¾ÜÃÈZÊŸ‡ó=œìTê2ìÿÆ€×P‘™2[cVì衆ÌC–Yf™å'-‡ÛìXÎ9>üv§Ë~u»“½sK5ì`Êe¹,—å2Ë,³Ì2Ë,³Ì2Ëç-ë—ßÐ//¯/o_q¾}KÇç¾ä²\–Ër™e–Yf™e–Yf™å³–õËoè—Ý+òÿ¹/¹,—å²\f™e–Yf™e–YfÙ³úe÷Šx¶B.Ëe¹Ì2Ë,³Ì2Ë,³Ì²g+ôËîñl…\–ËrÙ16Ë,³Ì2Ë,³üì<œv.×r륆Á½Þ¼‚™ýrO5ÌÿŸöÔs_ýZÎÉ”uËI¹_ÃìÞ*Ÿ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_165_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_165_5.dat deleted file mode 100644 index 94af813d90326e83dcb4898dffd47eebd3120cc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmb=p_4alkS5trh>xKGoxt!_!?`Z2*Db#6mYclucZ_V= zotdf6-&SvZv*GR8D7h;;_}1^MuiAF~^{4Rr^~KwcM;_~Y5%sO3bm!TkuUAgq{`4tJ z=-blf&CknX*3G+da{|L^pSsAbX|zx+~B?%Xj;& z;1;Iu;j^AJCF&Z`Lw*|;|Nba-v0r}8=>>Iv>dx&vf52z;Q-;T)bDuoUlH3!|5cNl~ F6aZ#Wx#j=> diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_169_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_169_5.dat deleted file mode 100644 index 921a77076..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_169_5.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÛÑj„0Ð÷|Íäÿ®/¶niµ¢K¹£'ŠÈÊ.rö:ÁT-m&¶ZÛx9¯yüq§3rÿµOgàv¼OO_zׯ§u`]ÿüÈ·¾ßitëا™ãt½Ùñil¦oc¿‚ö1ã3j9Ž%_g|ëÔ§Æ)ûì³Ï>ûì³Ï>ûÏ°¿=×teÌ&õþ_ã4¤Þÿ²¿=×t¥UŸÊ}¹/÷å>ûì³Ï>ûì³Ï>ûO´¯Þr½5/u“¹>¹/÷å¾ÜgŸ}öÙgŸ}öÙgÿ®öÕûO®÷½Ûsv®OîË}¹/÷ÙgŸ}öÙgŸ}öÙ·–G½o-w{¬å‘ûr_î{ægŸ}öÙgŸ}öÙg_½¯Þ÷nµûì³Ïþ=ì×n]˜4Nk§Öβ_Êðÿ­÷«M½¿ž¦×ûû´Ï8ím?ñÿ´SF…·<· \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_173_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_173_5.dat deleted file mode 100644 index f9a674136..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_173_5.dat +++ /dev/null @@ -1,4 +0,0 @@ -xÚíÛ[ -ƒ0Ðÿ¬&³ÿÍõG1Ðø¢gäD)[°Cz¼±÷eDÖѷц÷=R¾NÏ6²îóÚFÒíJm ÞÏJq÷Pœ}ëxÞö séîÑ_¾õ}¶éGÚF©y;žíú¿‹ -[;ý]™öé¯eÃk[®ÅQbT«m±yË&0 L`ÂÌ„Y?á¨ÇðرÝÚæ¼wØ›· ïfý„£ÃcÇÊÕVNä9Á½˜À&0 L`˜×„Zý„¤}0=F=F9ANä÷L`˜À&0 L`Bz¬Y²fIñß=F9ANä&0 L`˜À&0 ž‹´fIÑs‘r‚œ 'È L`˜À&0 L`<iÍ’£ç"å9AN˜À&0 L`˜ðVÖ­aB¯XÛ"ý„±²ù×,U­m…>Øö± -=Æw˜óZ¶gBÎœPª¶” !8 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_177_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_177_5.dat deleted file mode 100644 index b07c636b6..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_177_5.dat +++ /dev/null @@ -1,11 +0,0 @@ -xÚíÝÑŠÂ0Ð÷~ÍÌÿÿܾحˆšŠ ÎuO,"% ñô:$Xui=¹ÕѶ«×ÕƒŸïô¸g÷Ƹ?Îq­.úÕSo~æz׉¹õWï:ó™·=Žh1cÜqóøèñþ]ì”Ƕ¼îiÇÖ!÷¼ßçírß8Æó˜¬`+XÁ -V°‚ õŠµÓê»j›Ïjž;—8ÆóX®+ä -¹ÂoV°‚¬`+XÁ -V°â?[1µ^ñh-Ö³5Z;§¶©¶ùrmS®+ä -¹ÂoV°‚¬`+XÁ -V°â;¬°ËZ,µÍYµM¹B®+ä -V°‚¬`+XÁ -V°‚ö™Z‹eŸ©Ú¦}¦r…\!WȬ`+XÁ -V°‚¬`+ì3µKmÓ>S¹B®+ä -V°‚¬`+XÁ -V°¢cþò㊛Ç{g;¦^Qq5¡ZU»ÆÕÝ®ûŸQÛLã0+*&YDqÈñéô*6 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_21_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_21_5.dat deleted file mode 100644 index 04f97ea6983c85e1cf6e68150ea02bffa30a4f4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74 zcmV-Q0JZ;k+MSL;3IHGo1n<6P=l`E8qQc53Ts_3F*hoFpjJL@ppoFxt|L%<{=GéÙêŽZùyÎ:—ÜDRŸ« \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_33_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_33_5.dat deleted file mode 100644 index 726d7fd75da51d6bd7737a41e0120162ad66f42d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmV-w0G0oE+U-+G4gettyYm|Q|Ibavg*ZYTH6AU510hWtK(zoJYG1SgT>VVIrQ<*s zI~>0{7>;PQoL380wan9y;(obh5mL~qPG^u~gT@LOIlD;&&=vfsD8 MtZP z6Mwy=xtNYJP8P5*q$8GTpmRmFxG+$uUgBJr@iKnar8ktiR$tD;xa+0O#TdC4Bt{5~ JuLf_z1Mr1%Fq8lQ diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_41_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_41_5.dat deleted file mode 100644 index e07c6172a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_41_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíTA -À »÷5Íÿ?7˜«ÈXMtxÒ´x©¤ …¸?@‚˜›7@ò¾~"éN$õ‡SÖÉ°Ä{ø+C³¨ÛA'Êör\PŒpè<Þ÷-¼ ͺ:S3s¹Ô‰ùÛ»ËÞ©Îz#žóqw™ó› >þ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_45_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_45_5.dat deleted file mode 100644 index 5168a17f9..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_45_5.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíUA€ »ï5íÿ?ç„U:N&Z"†”:;4P1=ƒbNvSGÆM1¶ÜË›½n<ëv`q³¤{ìîßMg§ã¶4þå=Gó-T¹‹º?›“Ôß='kíÈu™Û­ž“õ>‘ëß'¯®çþÜ(éκŽö Jô{EßѵsÊ]È ,§sqð \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_49_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_49_5.dat deleted file mode 100644 index 9f3f3cd7d60bcba44d9223f52747c1cc9a9feb52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmV;D0B!$x+U-_B3cw%?yZ1HC|3A0G94cx|E9_(x5y8cz*3P{E3|?W)+(E}-2WX#i zfHZ}}1&-ONsSXt<99&1;WS;^gJWwdf{AS1((&~d%`->c<{A($VpSL1s{ zRx%t39rs?{9Nck;b+FN)RKeb>Q2ppQ^!)JYKLg9b6OOo!Q?K^%$i!U415hQ$TboHr A)c^nh diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_53_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_53_5.dat deleted file mode 100644 index 449807bae..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_53_5.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíVAÀ »óúÿÏíâ"Ë zYf5ƘJC ª ˜A;ÄÜáé¾Âlû\˜,†ëdòR.¯ \(åe_Ýú ³æôеaNi5†ª\żŽ†ÿÐÐë‡aLPòò(¯ÐàÒ;×ý±2שÃãå¯jÈN6O u…+é¯Ñl{y•«6odúá^ ãÚàçC[‡%® „ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_57_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_57_5.dat deleted file mode 100644 index c7dd81f39..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_57_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíVA -À »÷5Éÿ?·‹NÝlªƒZ‹HAbB‰Z0aÓ ìÎMÆÒÃd`1Ýz”'"<Õ1™æ9nvͨ.ãô )bÝ»µ~¤;˜Ÿ9ú¾ÕZ#tõBÁ~ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_65_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_65_5.dat deleted file mode 100644 index ecd9380682523494a1f5577c6e22eff92571b446..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmV;U09^lg+U-|C3IHJpy!#sG|DW4SODL(th;FD_Ol!+`ptx^N zLEU#+P+TP~hiEM?kDlMYCn2{Nokr`dh z=(A4`MyHt}6_aUUXNJM(G}onKt|Qlx8JUq8UCD^KPfsl&$;;O(L#`i%q&M<+dnDc& Vax;Tki-1v3l_b|f_yg_whE8s3Pu>6k diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_73_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_73_5.dat deleted file mode 100644 index 00001176d018bd72f9f2128f2f0bf775aab99aa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184 zcmV;p07w6L+U;0d4uBvG``>BS`(MrYR@be?`f zXg4__uzEOkK6dEjx2oLg#9{`gm`?j=wt4_|87ivOHqbF%PAmBX8kw9Db&_}T?ycUn z`rYuGA*p6w>oim|H}6{gZul*glk!e^C-3Cl6W;y1W(Io8^nRzjQ{KtDFL+1JRVtmB msmjs2lzG8{6JIm^VkS0TGiPwh(`lA>@p#INaS{u_o$71Ó/3ò4ÎØΪz÷^'ÑÔÝ[˜Fyglg•®M>•OÅTLÅ4Ï”{÷&3ëWy*ŸÊ§b*¦ï`ºÚ<3õ;´‘îÞVo0÷/s—6nÿ‘§Ï0Íya½ß[û”ªmácE \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_81_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_81_5.dat deleted file mode 100644 index 71215e952..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_81_5.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚí˜Á -À Cï~Móÿ?·Ãtz°U4½ŒÔ"£ }tšÕÀMX2|.îÉ‹¸Ë™F\œžð¸õÑÂ~mõ‘4 ÷±¿ØXu -Ù”, ÍÌw—:— E†Æ„>ŠµXÿõ̯=_Ö]g>±>óÂÆzæמ‡/ë)5ךk±k±kùµüZs­¸X‹µX¿¬Y{Ü®Ñè}ô¶áç~mt¿æîšìÃÏý:S#™µÑ&;U#)ñÚä \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_85_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_85_5.dat deleted file mode 100644 index 09cf0e28127934862f45b0f155ede22e48833cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmV;r07d_J+U=P^3V<*S1n+rG^8e3yuu_X!YO*T`o0cLu)Fn>SVBDKU)x4XXo;}Lz zW!EUrTdh$X>snv=m*blAkGsN*t+gK4zOfzOFOb9L?@mq&=-FzkwKE)0V`(MDRSbv$ zF(3xMXCUdfAl$J#15Y(!+RxHTimUQ~@_-l+17bi7s2)%~pgf>FAO^&M82AqZz<$9g ouBdLo$N>Dm_MjDe$NHpal&=TaS~+q3j)5w#tg{8Q4HYg~22k``-v9sr diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_89_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_89_5.dat deleted file mode 100644 index 5fff53069..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_89_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí™á -à „ÿû4Éû¿Üþ¸5eÆÙå®npQ¤´ Gú™cÖÍf‡µðl^^‡;;bŽ5;`¬k¶©¶U͹߮¾ßj`ÍNósÜùùO=Ú\[a6‡žÁ°¶~ÞnLÍD?‹ ±!6ÄÆ°ñuüÈF%w¿*Ȭ²ÌkÎù¦f¢Ÿ77”SĆØbƒÃ†êXodw_ùØ—mµ¨â†â†ØbClüÈNÛ™ ck&äîY¯­VoÜ¡™×·B×¢»Ø¨œAl6Æ šæJjÜx \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_93_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_93_5.dat deleted file mode 100644 index ec4240bd3..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_93_5.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí™K -Ã0 D÷>æþ—ë&©»ð¯µ& áÉÆ fP^”ÁŠ8BY5ÊÇs(imœ®¼ÙÒ®¤±®=f—µ÷3¨/wÛ§§‡E»¬y¯§ŸïYŽQ¦wf‘á[}¯å¨ ²„[»9ï0303ÏefÇÏÌ™Ùñ3'3=<òÆK{níæ¼Sg¨3ü›`f`f`æ¿Ìdø™ÞÞè®oiü£¦ÎPgø7Á ÌÀ Ì܇GµjkÞG]í}?V/æë kÒ×Þ÷ÀWi72–Js™vÃ|*"f^ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_97_5.dat b/vendor/aferrandini/phpqrcode/cache/mask_5/mask_97_5.dat deleted file mode 100644 index 509d1174f..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_5/mask_97_5.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíšA„ E÷œ¦½ÿåf!3bf5í¯Æ¼Bˆ‘ùé£|#f=<3l6<›§Ž_+xjÿ©ÁÛ) “ÙÝ©Ãy°“ïÿ¯ ‰J ¹yXiïÜ»ª5¤IzsÙžîcëuÄeQ¡¡ °K°K°K·d)â—>,ͼwx®DƒÖ·.,;ãÂsÔ%êg,Á,Á,=€¥ëýRÐóὓ¼7u‰ºÄK°K°ôT–D÷†<(n lY’þŸÞhÐùVÛ¹s÷Þ•ôy¸Œ¥´ýP±§Eñ<¸öq \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_101_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_101_6.dat deleted file mode 100644 index 13f97a0fd..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_101_6.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšk -„0 „ÿç4Éý/·Ën_.‰Ê2#ˆS‹H”6±_“PâÞZ ›Ïf˳_¡îé,ï7ØžÛà+·%×åWÇÂîd„–âÏnå}–“_&«Ok;Œ×úP¾Çfµ>³t‚yY×¾]Öns °;s·æs‚Ú,º!Lk¬ÁÔ…cbLŒ‰12cÔX9Ëó1 ÔÀZç#XÐò±En#;ÏsvŒT~L~L±RŒ‰11vsÆ.‹•”³‹1‚ò±¿ò1ù1ù1ÅJ1&ÆÄØÓÙŃó1ù1ù1ÅJ1&ƞī²gËØ KLƪjl¬¬k{g¼Úž5óKò1/ëÇù¯~,aŒ»ù‰õc««ö$“Þ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_105_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_105_6.dat deleted file mode 100644 index a58fec749..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_105_6.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚíšQ -ƒ@ Dÿsšäþ—k¡®ÙBÒZ»#o)Sd}ÌGÜ·Šå¹lú쯯Ö^‹žúú³®)G]Sñ4ÝS×ëšÞÞñ¸ó?½#BºZö:Õã+{þñÅ×s§ÁH¨KþNóiIŽÂ!¦«mþòe1 -RWe9!ÿ¡`ö`ï¶ìUy¯Ë€§uë:檞»ëÖåšU=w×-ûo•ÔºwB·}cMÞKßÃ÷è¹°{°{ä=òyßÃ÷è¹°{°{ä=òyßÃ÷è¹°{°wSö¤caoìi'Ýföºé½õyO=C•yO=C•y¯›ß[Ÿ÷Äó{SÞ»œ=—;Ÿ|v4}ϯ2‰¨¸0§ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_109_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_109_6.dat deleted file mode 100644 index be7b4749e..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_109_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíšAÂ0 ï~ýÿÏDBHÓC½HãV2‡Æ0Ùn¥uoªò£lø쯯²¯Ë»=Û¢s9[ˆŽõl'«ºÝ?™íë7ÏíR"¯ &“§Û2™ÕßÏ:7QqX_•n» §û]£$ÓÕš–EIYôÁ*¦³ÆL”üq0 “0 “0ù{LJýäз(s\ɳwœô¾‰¦X÷-Ó7^öÑIt„I˜„I˜„Iü$~?‰N¢“0 “0 “0‰ŸÄOâ'ÑIt’g7LÂ$Lþ-“›„¡€Iuzrfr M÷“^ê'}“éÍ÷“•ùÉ(ÉO~RŸé]1Y²ãLÄžuÒå9ó¡QÍÓ• \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_113_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_113_6.dat deleted file mode 100644 index 397f52741..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_113_6.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚí›Ñ Eßû5ôÿN£°¤Õ‰ëõÁÃÈbF6¨on´¶¯,m›>·gSÅ9ìñÞRWã½ðˆcŒÇ•9Œ&»%‰1ùöÏ_÷Þcx= GR^°šw-z?Ãêdzõvî=î,¹ê°}Ô¥?ǹژ³:Å9œmÓ=—ó=@U”¶ä²‰„UX…UXýVe ³ûÕÜÅ~Õby4WúÕéiæ¿:Ýe=ó‰ó¡+3}u4V%s*ZZGM&;I{^hb=04yIS((dxvZSQzT-ftM{l(nX+lN_8ODT@5*n+ z7_UD(asGDJ=LTuwGLL68OD>x%-!8VhX~z9)s_}nsM7#IRuTu5NlE1M}DE!~LqHV#? z>Qf#_+}0{yXSc>}`Oi7KFW*{qHhjb7t7W#OJ7->RxEgr--0aihQri-x!RWX2w$z_x z-{(K`{`B@#S%`O<>9f@NPe0F}o}Zti{rT€ù’õüɼ—Æú$<>¯OÑôvòÊù'ÅûËåCçÑytæaæaæaæa~›ùòõ|êžÔÙ'9li‹Î£óè<ÌÃ<ÌÃ<ÌÃ<ÌÃüóìI‘æç°è<:ÎÃ<ÌÃ<ÌÃ<ÌÃüóÙ•WæDz¸‚y¿:.z=¿ª ŒÝ“ʯ œsØVšÃ¶E=ll›_k0_#võ°³Î¯˜mÝ÷›j \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_129_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_129_6.dat deleted file mode 100644 index b4695c3ff0d8ebd6925d8af5e0b403d5974ed46b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S&+U=Xs3d1l6Mc@4z{r{iaU`b3tw}-Y`#z{*Vj)K^nc<+O%V_D@=U$Xty z&tEmqAcJ?j?v86TK^YOR_hi^6CyeFRR#Fmw^kkN5f+OzB@3mz7YhU+_46fxbXrKqJ8dEWiRRzyf{&zkpxBFVGk0 z3uq)*fCX591z5l@;1}=<_yzg`eF2RG3$OqSumB7A1^fbj0lz?Bpf8}2U;!3j0T%w4 zg_beb0}DNqzB>!qv~!(b=$i3#ztA<~>3$)bcdqjbP4mv1Uw8})+SVD`X8*k}X!oJ` I0%mGk`PF`vEdT%j diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_133_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_133_6.dat deleted file mode 100644 index 40911dc575dbbb17a4a057a46521c47b159138ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmb=p^>&UUU$X%Z%lo?CzyHr~4f5p772*@!y+W#4z-aoFvniX|)r-4>+}{b_t=?z1 za^B%Uo6C=?Bf5p+A4mDPRY%qZb+7;LH~IgZx!WufT|#LdH+*}lvf|jbWz$U;MJdj?+L60%T4~Y&jvfg5!>uf4f9dJsH`X7Hoj9}k^e4rC zS0C4C)Ev*0lXY~zAowlHfJqsIn&c1mKXCt`{DQ-(sSmClB=SSBgaxSfM)pCdp>-_w zAk_;%Y9X4Ll¾sÖª‡ìür6öö¸“6‡«ú°6ÉrÒŸ¶=ûüv¸Ú²þWy±Ú ¢¶Š-¸Ê' -ìÀìÀΟ²ãÅ;q tQE>U–϶öf‘¯•ê³­ìxñN]TcÑ(sâ®7tÝAwðÙ`v`v`v`çkvˆwfŽwtû;]«ùÞ ;躃Ï;°;°;°;çÙ!Þ™;Þaoôå]ºƒî ;øl°;°;°;°Ã· | Ê· èºƒîà³ÁìÀìÀìŒì(3}Œìl.­š?«…"Þ‰r}äÇ;Ú\}¼S¦Ù-AžœüwÚ<9;úEVœ'§×ˆôó¡ð \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_141_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_141_6.dat deleted file mode 100644 index 0340409a4..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_141_6.dat +++ /dev/null @@ -1,10 +0,0 @@ -xÚíœa Fÿ÷4íý/§‰c Òêâ¤]òزÈ…¥ª[²¬¤=Éð[E럓ÖÜósî¹m,éšÛfÒn/ß|kj\ä¿òj§?g½ÝþòÈ[qþû(NO˜Zc5ûŠ©SGGP[oM×Vá’Ö¸´éf¼¥÷vÖL<)r%zGej;*ZC7u5PHroFXT;2T zErAz-@(#{w+P}?wqtMJ3uDW8^Zp>M}^Fr0Lpp6sHMCtS0T=zSWcURlGh1q8m6XBZP z)<+zU-@Sal+U99%rKBCNUob7{wNzPiPzs9vGH3tDF8^{p;9$q2z5quaE#u5AU!HIYpjb0cSa)^E8M?_KmSO6tj)==bYa lKD}5p(yFJjBc0i__3AFOq}<9%1{c=3R{)onxM=_Y diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_149_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_149_6.dat deleted file mode 100644 index 69e988350..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_149_6.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíœÑ -ƒ0 Eßó5ÍÿÿÜÆfµƒ47ÍÝ8UD“6Ëñ’ÓÚ2¼z´mØpßž¦ªk8«»¥öŒ}åÅGì«ÉôÓ•ÅëN}?}æÄW“:ƒÈÚguàWA´ËŒ7 ~Û;­)ƒÇâãØ{̪ǿ+ÖWPþºOÛ¢¤öÍþrµEƒ\j˜wG)yË–àw©À‚A„A„A„AM%òÁá™æ2ùà`µµ2«’d”³l–¯àÚ|p}¦eqP’¢ƒè :ˆ    Âàe j想=úlïþT5™©É ƒè :ˆ    Âà© ²Gÿë{ôÔdö×dÐAtDaaaaaï&Ø£§&Ãwè :ˆ    Ö1¨ÒÙð•Á-MRb0éÖW˜f½ ëöèuzŽ5™&Y“iIѺšŒNÑ€A­—»PÑQS«ÎþL}4 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_153_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_153_6.dat deleted file mode 100644 index 3ab6130edd889298419b702ce1dcfddfda30cf2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367 zcmb=p_4ZC+-eCoSmWSnj%-{FNXq%daEZUK`+NjemCo*t?dCFURVYiCx+AY&AWaXz; z#Mw80;rtkb0d8YE*wD7uX)inq9ZVuZUFDP(T@8+N1 zd)6dxd%yYT`R@txHxIga-#%q{p=18$LjAv|)HMzi=qI9z_Q`c5T9@Wu3#VwUI?XqmF<#Ov^FVyZX znO%a=0o3e&KJ815aoXF1m16oYp6*fD?Jm?ru;I^wH)p;*n7!8a0qfl_O<0VW z=e+S-gZL9m5s=·ÇW³Ã³»—CöaïzÈ6îÝÉUü¼~Ò»·{`ný•Š¸õÙÉÝ»dvVýy~µrÒ·Z¯"çq·Ûk{>g$ÅáXK¶õÈU}m\b÷ja¤GÞx˜Å,f1‹YÌbö¿™òÙ]½z¬‘­Ìž½ƒš^¯.ë5Ó[?Ö嬜•³r³˜Å,f1‹YÌòY>Ëgù¬œ•³rVÎb³˜Å,f1‹Y>Ëgù,Ÿ•³rVÎúmŒYÌb³˜Å,fù,Ÿå³|VÎÊY9‹YÌb³˜Å,fù,Ÿå³|VÎÊY9+g1‹YÌb³˜ýŠÙ‹ ½̦M7>2{9zºÏ¶hŸm3Éçûlò|ã9ßxóÙ¼™ä#f#Ÿx•6 ÿ˜³-îvë%…N' \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_161_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_161_6.dat deleted file mode 100644 index ecec68b1ac0f7ae45685bed5d752ef54a48f0f3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmb=p_4aOH-eCm+*NgRG%)jr)tiI;gamK_~Was)*2d9a$rlzvVFd(`Vxt}K4Lw&$1iobzS93uRn)?%d|f?w*sGT%NE> z{5IRU4qg|XWXaPJc9Wm(u=|#>w)ceHw=b*9PWtu#%$j?0UgYIfVgE|yed#NsPfj0ye)_BM^UK-)PTmj)Dk+(%2Qn6>@Mqw( zr>Eaf(4VdSY0^ghT|OXlU~(X3o3@I6N-cI>vvvVU=j&u7z0uK%@n+#iZgHXOO4Lz* zS5klalWD4FYUNJv>X3bV?!C6tj6Zkhb=|q?)qi3p?yJdny>uh|S+%y9&hsv>7uDKn Qv3e2bEbSR&we7b907^~O^#A|> diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_165_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_165_6.dat deleted file mode 100644 index d641dfa3dde2565c932c7234b4521d35c4a1af0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 zcmb=p_4e+=tY!lV)(ihDXFd5FpVz$dq?^)Rf%2utrx}%SOWEwLn>i_J`_iSlTlG_a z?5xW@^>fafr_X<_`MyU#`bPG>>Gu53mUJ)QUoZ3jlYiaKTYL1ypC5hw`u4`@;aj#{ z65c&WV*jT2f7ha_kN&Vtzwen{t6%P~`!n?0+`iwtWbQAWZ<=}1xMrHJarBp;Hbut9$M7_G_mM zcbUq6j_Pl_yVJGrbfKl*aj-TBao%v9T>btkn@|5AAOFSPyYnPS{;9>|9^-RRg7etb z$M3`Xce6j+WoQnP+#v(96>7#EW6f8E-w#x%VH*A2r>p9Yt-(CciI0n7`gVuGb;wx~J!=SaTlS=q~KGûì³Ï>ûì³ûãµ¾ +õþõ'{«„Õ§_õVËŠÚx­-âJýËø<ӛܗûr_î³Ï>ûì³Ï>ûì³iûêý;×ûù÷öœr­OîË}¹/÷ÙgŸ}öÙgŸ}öÙ¿¦}õþ½ë}÷ö¼x­OîË}¹/÷ÙgŸ}öÙgŸ}öÙ·—G½o/{{ìå‘ûr_îûÎÏ>ûì³Ï>ûì³o/zß^÷öØË#÷å¾Ü÷Ÿ}öÙgŸ}öÙ¿†ý£d²ì'ŸÊ³µ|ÔQR½ßNSï·Ã3¹’êý³œËÓãÏåYÖú²ÏäÚ³ÿ‰ZÉ'Çms¿EŸÇ·j›5ø \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_173_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_173_6.dat deleted file mode 100644 index 95fa97c7b..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_173_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝaŠÂ0Ðÿ9MrÿËí¢­M SÜ*:a_-²5hh_¿)©uÛZÖ­[éþ®÷¦lïÓoûÛ’sŸmKúšíø›NÇ{òÿãHÌ?x­Ï`l‡#fï9>’ÚŸ[¯õeé·Ð„ÏŽß“­¡ ï?þ^ìóöm÷ó®­ð*û/KËm¿—ãhËy%ÞËv-nKl¥í»Âè–í¤kK¸L`˜À&&Ìê g5†¯µ•(·gºwxôY¢ÜžîÞáa¬žpVcøZ[‰Æ#O=¡ëSNä9Á½˜À&0 L`˜Ç„¥ê ¹ç't­jŒjŒ]QNä9Á½˜À&0 L`˜Ás–ÌYRcü@QNä9 L`˜À&0 L`‚ç"ÍYRcô\¤œ 'È r˜À&0 L`˜ÀÏEš³¤Æè¹H9ANä&0 L`˜À&ü²¯ 7špÜ6¯`Â|õ²¬õ„hm¸œs–ò¯ ××ëR5Ƭ™³Æ˜½È‰ k\ÌX/²Ï ‘ )÷g9È \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_177_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_177_6.dat deleted file mode 100644 index e9f0476f0..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_177_6.dat +++ /dev/null @@ -1,14 +0,0 @@ -xÚíÝÑn„ …á{žÞÿåÚ¤*4vÛ´u¦û¡1‰£²ø{f{Š¿Ð¿³_ñù,¶,K9o 4ŽÇµôù7lËñÞniJiggiår<¤-MGÆ -¬À -¬À -¬À -¬xuVÄ÷+zÌÒRøCÌr9‡+Gqç6ÞQWžñb"ø×Qe×ï"ùWLº‚® +è -ß XXXXX/ÁŠ|~Åj,ÖnŒÖmu¼MÞæÚÛ¤+è -º‚®ð ‚XXXXXñ¯Ya,–±X¼Í;¼Mº‚® +è -ß XXXXX晋ež)oÓÓ˜Þf’|¦ƒ·™–5²H“û¸ëŠší¥÷7/D \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_21_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_21_6.dat deleted file mode 100644 index 6bd505b4a..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_21_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚQÀ Cÿ9M{ÿËi]èÒýX‰1¤À Å-½ C!»É³Dìû7 W ìÙœ§Ø&rDñ)~Î]<MÎ ·3(>{ƒïA ¡«ÿíŽa²¼Sý \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_25_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_25_6.dat deleted file mode 100644 index d45083aab..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_25_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚQAÀ »÷5öÿŸÛ2)êe+Ä(XmÊZtÆ*(õÚ¹«;ÃçtJã<峂†_Ú¤‡3°oŠÜ½Ú´"Ì¢a²zh}Ñ&qv€µSGÊÖ™,ó-÷‡™J›Í4}³™¦oS[âü}w \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_29_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_29_6.dat deleted file mode 100644 index 0408e2240..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_29_6.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚÕRA -À0 ºûšäÿŸÛXcÔõ²ÓL(4E”ÔˆB -8CÖܾ޳nÃM©+lǪÃÕ†Ožé1]&•Ú¥4UëD-6-$:6ÊdZá?yæÛlôÝf£?í˜ åŽ8?žß²±<Ûlôž}ž¹g›göí * \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_33_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_33_6.dat deleted file mode 100644 index 8de4ba5c9ba9a264cf4ecdce048414a103ca9a4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmV-?0E7Q{+U-*@62Kq`+j$N7|L58(kh4fSIW}?*IZa71?g=y$Z@wV--1ieV|EfU) zZS5LeWzbl=5S@-V;-&hAT2>bTQ5IjGy*#_+5FlYF0i|O3{~#Ory&Utx49Pb}M!qqU eGB4z0Ua0$-m+;~$`<#o+3+E#9Qgs1fkI!%T**fq5 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_37_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_37_6.dat deleted file mode 100644 index b37ff0ab6..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_37_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí”AÀ &ýÿçÚT `½ôèjB{{Ok%tdtlP>c!Jq2?sR|6OyXBED_#CJGJ|{4?o|# zWi31{IkRWty7H{19EeICVF#bFBLK`Sqohq!P3c{Hxke=hL*^psZ< diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_45_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_45_6.dat deleted file mode 100644 index a7da7ee0297b6371bd3ebf57467f009712e40cd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmV;u07CzG+U-?A4#Xe`yz?6P|L3|%6(}8a+S4YxXiTkkisJyP!>lt6lk}|T(tQNG zKksqJ*w!?R9dPAm82jdF@w%LHYmk%ah`(8LQqB>(=edn(GCywV&RxRO?k3YHLkmWk z*aT+KWsqQ$<3Gg7PA4uT3C+}K0drYmWeGYb>)1(p7ta_qgP{3eCtn>q+w^_mWM3IF rC#dT5I$?6GuTnWSVh7coK6Z$@lVax;CrT-Ws>PubeR7!xL?VGyGa6i_ diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_49_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_49_6.dat deleted file mode 100644 index 64ded7093..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_49_6.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíVQÅ ûïiàþ—{K&·ÂêÇûYX¤³ØÙ0ï̦!=ÛýŠ­tÇån&ÅðfpŒWL -±`¤/¯<Ï“KVrU¢\1öbGpáê@ÄìÓ‘&fNëŒ/+ƽqÙà ¢`ðàòAWÿçêSƒÉßRGpõþ_5|Æ|zÀ×xν:¸¢ªåJ©‚+WE©m4hÛ4Ú3tÜ­ƒ.×Á©A­g`\ÉÒù¬÷ʤþ*ÙÅFÈô \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_53_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_53_6.dat deleted file mode 100644 index 9139e325901037a409a2a2d317141cbd9bb27807..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmV;!06hPA+U=In4uBvCMc?@v`Tw7*ElsG)6&_ona}B4=6R_J_H(gnqCg!_cThR(n zojZKuSh^TEmcRQQKZxaCGEO}_fJWLvh7ncHkT}m%gO65*3_i=>Wv5I&JTu%XJ;$_U zq9afxnshi?de~<88-}PKQlCVXOM8jnene{dW{CPB^@+QK_CphY=i#p94>Qav8_#g2 xe}y4d8>?E5v<_Ý`åÃî8¦Ž¹€GÁ1“œ`–B”Ý`;»ù+ØÂì}åÄÌØ&s£ÒçŒ]<§J…QF=mb3 UŒF'ÚØ6¶Æ–á„E âü€¹5õJa÷wZØÖù60¢¬ -ß[¹·ë¶9¡±ý9¶”ì{Á–SšÛ\Ýž8Õ`k&­Áœos}{â[Rß¾ý[¥+—þwðºÕO‹èd^jW \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_61_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_61_6.dat deleted file mode 100644 index f2d3f10df..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_61_6.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí—KÀ D÷s¸ÿåÚ¤µE~Ý‚ihÌÄ'™ -ÑŽÍÀòNÏ'oVWßéà£jspèÚCzÓþìÑο©¥ÃaÌÏg!«…#WD%~Ü˃Y?±JÛfŒÚåR€E¸¢ŽÁKoæͼ™Ç˜§ü|Ƀˎ*ÌOÿP7 Šž‡åÛn¾ë¼½¥™7ósã†`ž½ïÌÍÖÀõsúåçdôD¾Ÿÿ¹Ÿsé~>ý<ßiÌK'Žl'¸×9¥ûÐ%.ÆîÄ7 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_65_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_65_6.dat deleted file mode 100644 index 550fc8fe7..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_65_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíWQÅ ûïiäþ—{KžNLk?˜e$ŒQ´ikÝìÆÚ4¸çö1{˜á‰ð×`+®!úÚ®ºM Á? áû “’°È1b°8†ž £·¦.ŒÞ^ƒwÌÞò¹ìèsn²ÁFjè5¹…EaQX|‹=wä¼@°2v<òÅ‹Åž»‰–|4w»êê\ÔUXÇBQz+óÊT±ÈTǹÖcøBÓzž/4­ç8Õë,‘»5Ý`¡¥¨»ý¹È± üOV$ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_69_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_69_6.dat deleted file mode 100644 index a3e4fa0f2..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_69_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí˜KÄ @÷œî¹™dThÃðí¦ hLSSEžq eY@<ã¯+Þ*£|ß窮 %‹®‹>¥¡¨®‹¹zÃ*7ë–Åe´¤öÆ6ãQ¶½©S`šÞ.²¯>»sE Ë'¨%@[‘Ž6°@PË0Ãh £aôFÕxtpl²2§Âóý ‡Q-g1N†feo^ßøÑüë†Ñ0F¯dT>N_ÕOö’‘wË‹G3ìùªu†åœÁ»gˆå {‘3<Ê[žÔº b?Â'6ï^ºŠ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_73_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_73_6.dat deleted file mode 100644 index ab71b70ae59ccfb23e9c4185b1e919d531fb040f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmV6w!~0Dh_U!#`ksFaQ7m diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_77_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_77_6.dat deleted file mode 100644 index ad5a660e3..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_77_6.dat +++ /dev/null @@ -1 +0,0 @@ -xÚí˜Ñà EßùøÿŸÛ²i‹ÙÅVäaË.š¦±F©§pST›YÖô4q÷ú~´z…«=Ÿä:öÍ’ û6îøÍüôm8‘¾:#0PضiDy:2Å '§ùZ­s±Š&}Ïôç滜\r‘0\¥Åš•˜Xw¬Â;iP¬äàÈ”Lœ)ÒS¬±£eÔ•Ü{hˆDu9÷L‘žb½•©JÞÒS÷ŒSÆ)™’)™ÞgZš{÷þeÜøŸé)ã”qJ¦dúLw+ƒ#Ó3-V0ÅÕ·lîjƒ¹™ýÚ ×S-ÕS ê½9=ݯ÷¦5ÁPPïõq1Mõ?ågÓ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_81_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_81_6.dat deleted file mode 100644 index 28a6d0752..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_81_6.dat +++ /dev/null @@ -1,3 +0,0 @@ -xÚí™Q„0Dÿ9 Üÿr»ÉÚR³LÕvök‡šÆ`´¤¯0 º;æi6ÜûçÑÚ\|ñí_¿êccÔ1«¢h¾ýuŒ§½ioÞó#2ƒ¬}x*.YûtÃ&¸­± -Ö°¶ÀÖq/K‚;3ÌväeÐ̢Ȋ҂AÛH±ë?`]é5ÒðK¿¡Êü´†w¿!}{Zû߲žW -Œ”yâ·¾Àž^§_y­¼k±k±–^K¯•×ªáb-ÖbÝYSÚ¸'ÖœNóÈuÃ×õšÕ#M½fõHS¯Q?|]¯IýðA¯ÆÚi™Mû÷‘yíì¤yuWà \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_6/mask_85_6.dat b/vendor/aferrandini/phpqrcode/cache/mask_6/mask_85_6.dat deleted file mode 100644 index d5403e49a80cd825886b9cf067587297c22542b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmVz+U=Q93IibwME~bB$^9?aLbYnE?lu`e3KJJuW7jbno{1 z6z!*@KIP;y_0^MY?(1Uq+xo)SueFNlpSwk~3kHJTZW;Jhe~*j0f6i>Ev*&T`9<+0j zJ6S`Ia)zC1@aibjTa>+X>cWZvF(3xSz)1!u`9P<`={Ia;V3iYwbtJu->xkU@m%8GB z;(!ntduS+U=Q93dA4`ME`S|1p|)V-|IyeM8#yz&a$P<5H8u1j zJvs=^zR6hA`VPFkrR{fvn^+GR9ksLtHTXo64YENt$i~~)fawi)LW)84hWko>3Nllc zx#paEz7d+7rFOyurM|GlguB4YENtj{*X=Ev^DF}ptAKX6@RpX4vjZjklMsHWS3nR)a*F|K!unUJMmO!Vn} zoTXx;{$pvl+nqFvSzoF-QmYM8VkABAis-2UASHPxZ{Wiz40ft)3ZUf;xjbgSiRJfEh3YX28r%%+%_c*_vLo*0<$@ z23~1k)EU$n%uQeh%zzm%^YhH4w^!eo$?ptXW}>e4xt^)$QRDw9atl$NB&!*=®½1='#–`+bƒ¥l]Z±”¶­¬ýð \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_101_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_101_7.dat deleted file mode 100644 index 1f6bc5129..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_101_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíšQà Cÿ}rÿËm“Ê`éÚÊfªjòTé#±¥ÔäÞ54'tûí…îf¼aÈЇo°–$±c<ÙËêãÝÓÕñHÝ Ìh8„lÕÛûþÁëo=½Ä„ŽÅ§àHvº©;‹z€¤!ƒ|/‹FŽÐ3cfÌŒ‰S×Ê…±±ゼêñ 8©KŽ)4©9 ”Qç1ç1×J3fÆÌØÅ›S+ÅwÖcçõ˜ó˜ó˜k¥3cf캌ùîâ¾zÌyÌy̵Ҍ™±1¦{¨²bL÷¶çÍX™S+óï.to{>ô˜îmO§ÇJ2²û3cÄ<6ãXn0F´ ) \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_105_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_105_7.dat deleted file mode 100644 index 6b0cacfe9..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_105_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšA -Ä0E÷žFï¹a MÒ™˜N¾Px)¸pQ£¼è_è~ž|ñ(b¿F’„šç$.Ÿa¿o“ÝòWÿGNÚPæUÇ–·‰Mþ%{‡ëoôHQôÙUñl¯Ö´¿¬L^>+Éçm­“#{°{eo&Y2sÛoM•)gncO9s›ßZŠ³´3wÇo™„Ú+Âè{ô=f.ìÁìÁz½‡Þ£ïÑ÷˜¹°{°{è=ôz¾GßcæÂìÁÞsÙkCQÏžpÓíÊ^¶€&Ñ{^£÷¼Nï­Ê·UïÕìï ìe5°ç}¯æE‰wGûßn+o \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_109_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_109_7.dat deleted file mode 100644 index 9875cbe8c..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_109_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšA -…0 D÷9MrÿË}µÚ*˜ _x-d˜ú:Î"îÇŠ¢Ý-kÅ"Šâ¨š¢œ•dŒ{›¿Õ»ü¤·ñã¯ó³ÞÊגɬ|'ƒÒÚràQ5+ sûŒ¡)Ûc•Õê7úÕ-ÑÕó»1nní–ºqÿÉ”–ÔÍJtgô¬^îʉwÿ̘Ň-ùƒ?ÿ*š&Mmý@ee5éø^Ñ -c¢”° -«° -«ÀªÒ,¬¶ýªïbï\1¿×3ýjõ4óØT¿ZžfÅ¢·»o鯠«è*º -«° -«° -«°:›Uüêt¿*ü¿ú½¹ºŠ®¢«° -«° -«° -«“Xů²0<·BWÑUtVaVaVƒYÕl -Þ°ªÙkýf5éýª_Ö ¿ªÙkýáW5{­«µ€ä–5pnõC¬éªZ:¬Å bv \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_117_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_117_7.dat deleted file mode 100644 index cde78c10d..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_117_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí›Yà Dÿç4pÿËU•²ÈêIª>"ù%6æed ‘Ò8rðS ÍNsŽµU¯ánëk5¦Xe­øjѻު®u—Ûî¦ô¿ö±VÛXgøê,l`øøîuÝÊÀî÷£!‚h‰XZù\VãlM±ìë|[ͬÝÂ0 Ã0 Ã0 ÿÃí–#hF'ëøc]²±ž¾¦iéí>ìúŽûHÐat†a†a†a~<ÃÔÆzØyÆqkO‡£Ãè0 Ã0 Ã0 ÃðææŒãªžF‡Ña†a†aþ)†§2ÇË°éfÃ’áþ%ƒÀz8ùëátO=¼žâ€3ÿ=Ž‚áÖî3œÜ:ìÿcw‘ -ûV$¢ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_121_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_121_7.dat deleted file mode 100644 index d5d577f7e..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_121_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚí›[ -Ä Eÿ³šdÿ›ú°ŒÆi;^az,ø#6Æž^rÝׂ§h¶ŽôµÈêÐ&Ýì¨çÜ^amýËÀ•YŸ9×_Òغô5C·r–6ë®ðt^ù^ÅWlûÅÐEä˜ôز~É¿|èM®èmýÁåÛmSò}÷¶Ó( Û° Û° Û°}ŽmQ½]ŒZ§Vüq½]¼ÓvËѲ"™M¹1fÙúGÔÛÛ, q½½ÍB·Ñmt¶a¶a¶a¶ÂöÄz»eF²3»cxI¹—D·Ñmt¶a¶a¶a¶ÿŸmÎnð’ý$ºn£Û° Û° Û° Ûa[}ï¦`[yëæÀö–°¾Þ–Þ»)Ïn<¹æ4ÜKú/éó¼¤O¢»s§l¨nçlÔmŸµÝ/GëÙ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_125_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_125_7.dat deleted file mode 100644 index f9ec0887b05d63190cd6ebe1bb181252db240a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288 zcmb=p^>(%+-(dwFmiND<{`^0`b*j_CTqezxZ{^rj;wKcm=?PmSu=Glz<7VlslV=Y- zO8>Uu%kQn~TjKuaTl~3{$o%&7)#h8}=22b&;klFIREslqHa`A!?#mmI&via`Hb+0Y z@=dof=(6k43w+wj81s{h(%)-(dv-mfy8!@BX(Jcim*@*T8k(?P5abBdPTV55E<2nWM}-KktRmgh+FK z(J5XM>l-trubloFW*NMH^}mg5a-3Y>F9fC9#l&wam?F3O`BH_m{d}fVk6)~v_I&Hz zHJ=+cdHrqItm^WLCC8c$D{tL(Yf{g&%x7Q9 zubFPXVwyI0pF{it{Ra~h7{x%SagRfsg8l^Y7u;W1ZG?0VFoDnn@e|xnSU)k2i@PJtN|E!a-ww)M{dF^|hGkUkCJ!|~{M9*8VnoW7a`o8vg bU+c{{(Mi0VI}n?>ZnFz5Vih(RRyE z|8~uM{F%Y??j(=+_U|&*MxD6{EXooGIou3B+4rdIt<3u>@m`ky)yCCP{twlzB)65{ zxt83x+o|t_pyi`jZivc5?msx>A1W8Q07ZMC+7Tk}qrk>B3EF|xO$4cfDymCT`D{~t z*yCE}H)iGgttY-t-17O&+Wsls{yaWkCr)~=oXRV&$sJJi`D}ZpWzpFaOJp>)b53$^ I_LZ6o0K%<<ŸÚÎo[l -ìÀìÀΟ²Ó -©ý0û¡7Ö‰µVÆl;b¶–ëüè™7æõfM¾S´†î ;è1ìÀìÀìÀìL³C¾<ßQí[+@wÐt‡˜ v`v`v`v&Ù!ß ›ï°7ÚX+@wÐt‡˜ v`v`v`v8 ÊYP΂¢;èºCÌ;°;°;°saG{™Ä;Ú»>vRœ|ÇžåùŽö®K¾£½ë£ØMÎðHÖ -‚³#Ð(S›ËÎòúqÌçd \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_141_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_141_7.dat deleted file mode 100644 index 98dffab00..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_141_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíœA„ E÷= Üÿr“IëŒTY@¿ÉÄÅ0!µøø|1”²—št¹bG0µæԗѤ…s¡2Z/îç¿oa‚ìøÜ\ÿq¬ãzÜÛOnÒ‹MºÏñÞn™šñt„áX"Kÿ—m‘eM}çÚòCpµíÄP™L^¾µŒ„S0S0S0S£L ø)Ç”‚ŸÚ˜êYß¾%žÔbÑý,õS©l?ÕzC§Ð)tŠµLÁLÁLÁLI2…ŸzŸŠRX¶h¾£@§Ð)tŠµLÁLÁLÁLI1…Ÿz‘ŸbÏ·óŽB§Ð)Ö~0S0S0S0Å7´ø)ö|ù†B§Ð)˜‚)˜‚)˜‚©÷3Õ–«L%Ÿ tfª¬wM±Ÿ*:~ªhù©»¡Zºç«sn’cª÷$1UTtJgÆ8‹ÌÕOYºE \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_145_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_145_7.dat deleted file mode 100644 index 4aa2bac11..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_145_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíœÑ -à Eßó5úÿ?W6Zµ ¦-›^é±àƒ2‰q§×ÄbG‰Ÿ¢X6(ƉuÍ"“LbÑbÝGuû÷ŽÎ¼®··Gkø¨:HwA[¿jšÔm¯øH¢ø¬Ýžï3ïŬýîßâOðkQ{l·|ê»èT›†EmÇ JfÙLÊ?ŸÚ2"&Á¬Á¬Á¬Á¬ÁÚ¬)Äk©ÝRf¢—µÙcï“Ñ̉ÓåFŠÑ,§“z©¦=躆®±‡„5Xƒ5Xƒ5Xƒµ7±F¼¶\¼¦p–ÚUs#躆®±‡„5Xƒ5Xƒ5Xƒµ°F¼¶d¼ÆYö•Üº†®¡kì!a Ö` Ö` Ö`o‰×8ËæÛct ]C×ØC¬Á¬Á¬ gMå­‚5…[´N¬%éÄk÷h•ñZp®?›¯IÜ£•Ï²ƒ^n$ˆÑæÞY7A×ÖÆëZP[¶ fÈ“0 \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_149_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_149_7.dat deleted file mode 100644 index 809f00554..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_149_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜÑnà …á{? ¼ÿËu“Ú†­…´2»ÕG$nˆˆcççÈF¡µKëÉ×Ðb3ª÷ôþÖªt³îûªPc çÌ¥Ó7[¢?9:ñÕý['éÁë9'¾*Ó– àGæÜa°½hÖ_¿¹/«zÁ+Î6XB‡>ê˜2ôqYÀJ…0Êù黚BfaƒÄ 1ˆÁª ȇ9c7Gë ùOl©ô,Å^¥ßÅ꽓òÁ3ƒÕòA:Hé Ä 1ˆA bƒÄàÿ0X4œ%Ù«½û#ÇÔd>¢&Cé ¤ƒÄ 1ˆA bƒ<šA{ôo¿G¯&óLM†ÒA:H1ˆA bƒÄ 1è¿ {ôj2þ› ƒtbƒÄ 1ˆA &1Xç`¼_ Ö9ÛðÊ`«™®B˜¶G_çlÃ5™:g5™¶ajMæÍLÔÁŠËèƒIý <|r. \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_153_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_153_7.dat deleted file mode 100644 index c1ab27664..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_153_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜQ‚0„á÷= ½ÿ匉B5ˆ -ю惤/ͲåïØIÙiº^-àî®Zkm|»YDhë9 ›ÎêÃ\{’KÇƶ·{Ÿy—³Ç3ßv†¶Ì»œE]u`RÚÇrý"›ß}ÛY ½ëeÂ2{ÛVV8][×.n:+2_ç¶ÊÂBÃ&6±‰Mlb›ØÄ&6ß`3i¿9Y³³åΌ諡yÙúU}ÔŸ82f-vÚ–Õ6 nÒMºI7±‰Mlb›ØÄ&6±ùólæî7ãÎð‚þÕ ¢›t“nÒMlb›ØÄ&6±‰Mlþ2›ÎüÍÙ^Ð/ˆnÒMºI7±‰Mlb›ØÄ&6±é;gxA¾C¡›t“núO‹Mlb›ØÄ&6±y€Íy•ÇfP¥Õ[6Ÿ4ºßÌ«Ùk`v^Ð+Ó9Ä Ê¬OÛ±ùð}Ï攨›™+ZXíè®=:iWE \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_157_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_157_7.dat deleted file mode 100644 index 2db27f685..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_157_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíÜM -ƒ0Eáù[M²ÿÍ•‚­ü£s¡_„ ž‰ÇÛã ­}F¹†Qks½‡Ì{Ý%¶WqÛ÷×îø.ž­¬Ýþϯ­]Ü8evV½ßbvV}è®_µÜEÌ»n3W^KÃ\Ÿ`äÖV캽çZl³˜Å,f1‹YÌþ;³af±Ôkž·Þ¨×úiàè“ÁÄzÍôÖËz?urVÎÊY9‹YÌb³˜Å,fù,Ÿå³|VÎÊY9+g1‹YÌb³˜Å,Ÿå³|–ÏÊY9+gý7Æ,f1‹YÌb³|–ÏòY>+g嬜Å,f1‹YÌb³|–ÏòY>+g嬜•³˜Å,f1‹YÌþÈlâùƳi§o˜ý.\¦ÏÆo<úl;9º:Âg[®Ï¶lŸmÁÔ^œI>=gÏ™œ³-yk_TAµ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_161_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_161_7.dat deleted file mode 100644 index 35ba8ff48..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_161_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÜÑŽÂ …áûyšòþ/皨E)Æ®›î1~4áÂœý93,˵´ «+µØZT=Zeâ¶C»¹ú.~ißµ§¯ÊÞÖ&>Œ,–ÿÔï´6eù˜·í•Ö~,láW]ì ®»º2Íê꺱Ý\Ñþ;×µ2j"–±Œe,ËrXŒÝµVÓ(ícìµµZÓ–1‘™§8Þ©í§‰±/,'ÇØt™.ÓeºŒe,cËXÆ2–±Œåß±,_þŠ|ytõüç£ï|ÎÜ]¦Ët™.cËXÆ2–±Œe,cyËòå/É—­ysî‹.ÓeºL—±Œe,cËXÆ2–±lo…|ÙZ{+è2]¦Ëbl,cËXÆ2–±Œe{+äËÖŠØ[A—é2]¦ËXÆ2–±Œe,c9åÌCÐXÎ<ëþÆò’Ÿ/owsP¾œyÖý]¾œyÖ}·VdÙìæ°¹¯d9J—Ó‡ì)Ë1õ jI2ë \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_165_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_165_7.dat deleted file mode 100644 index e27fb8edf..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_165_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝQŽ‚0Ðÿ·š²ÿÍM&A,NĘ̈!—x0é‡&XZׇZ»-KØ«[êÞÉeÉj‡½Œëæx,ƒ§¼ú.ï·g}ë`;ÿþþ+k{ËÑ~1ŸŽÿ}á+k{ËØ¥ž™¾SGùWãgî}‡Ý¬@Û?_µö8í¾o+·k][·hô”Wü8~·u·ÜMÆgœqÆg|j<õ·ú¶¶Ú*ßq=<¯”Ïü¤æÛ“RwÆ“ëñÕøøÌüÄÌéŸÈq9.Çå8ãŒ3Î8ãŒ3Î8ãIÆÕãUGÿ?~µsnr\ŽËq9Î8ãŒ3Î8ãŒ3Îx€qõøÇÕã®yç979.Çå¸gœqÆgœqÆgÜ=)êq×À¸'EŽËq9.ÇgœqÆgœqÆwOŠzÜ50îI‘ãr\Žû­Î8ãŒ3Î8ãŒ_ÆøVvd}²ÇÞøü¡aõx˯ÇÛ5êñã)¹&ÿ9)ñÙÞf¼¥çxþ3øYH]ûS^*/ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_169_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_169_7.dat deleted file mode 100644 index ef1a181f2cfd4fb995864843d58efd1a33443bcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383 zcmb=p_4aOTUz33Z>xJ+6rf>h5o6qcIQd2nm=Y_6}PsM~AQyzW1wahnqx4i9#trl79 zGTt{n-#Tkq_|`@8b@BO^-&#lQzJI&bdA?QLEw|ZnT7O=OKRfSrJL~d`Aw9u`O=epcc%X?f~g1U{2P4x`u+VC z_4Xxs=ND}`cY4xm diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_173_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_173_7.dat deleted file mode 100644 index 3b5137125..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_173_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíÝÝjÃ0 Ð{=Mòþ/· RbÖH¬û«´rj\Ç=ý,ºm·coúZŽ8;»ïmÏ÷½mÛÝë±0b÷ƒ_ßšt$~Wu5ÛÇšNnÜ'?dÕf2¶í(oÁïßGÚ,Løþù÷õ6_{»zÅÑ÷Æ? Ë9úwq9Ç àS!ÆŒëÛ9Îoë€î2 L`˜˜pµŒ¬––O»Enï¶v8L˜²v8L¸º UáY×"ûd}ê K›r‚œ 'È ÖL`˜À&0 L`B'fÕ:ïO8ÛTcTc\kŒr‚œ 'È ÖL`˜À&0 L`BìY²gIñ§kŒr‚œ 'È ÖL`˜À&0 L`‚ç"íYRcô\¤œ 'È r˜À&0 L`˜ÀÏEÚ³¤Æè¹H9ANä&0 L`˜À&ü'úÿ!Ø;êÅq+¶Yõ„l*´Ü³´þ=Ø€ã9¶jŒ[2ÚÖÿ€ Ms¤Ÿ‡Ô„–ç­ë*Ø \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_177_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_177_7.dat deleted file mode 100644 index 068477c92af080afb53465a651dd7d1815d562c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmb=p_4e+?tY!lS)(hWjd_VoS4`&P8oD}qI!Lz*MP5ODNZExOG1+MwJb8D;p-LO8! z?c3h{D>>rL|Ffpgd7A6Xc6+Psn~m@D{rRxH?)O~%;+lWWo2OpY#{~EVH=u6 z*CeoNM;zn|YxyENS5&k1Xxh;g$7WrP-Y%=Xxj1^=`WtIKUTA-NKSlcq*G{K(1-ys2 zkTw0`)@J(M6-dz@>7=A*us5M&v*{}_V zikH1R`f1L}yvxPQidw;HV6KBY)F%BE(1c~reV&3`GXd;yxF5O}ivA8Q?Gyc+m*}Yd zYKdyZw)H0}-4ng5+!L?o?u!;XT{?T~wJmv{XFN90&I($0Ldf#T-Q#!vG0tQ&@c{s0 CYRvKg diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_21_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_21_7.dat deleted file mode 100644 index 4f9f1386d..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_21_7.dat +++ /dev/null @@ -1,4 +0,0 @@ -xÚQ -À0 Bÿ=Þÿr]š˜-?]Rl‡ä݃2•¦¹nc -ð[Ž¹öÝnùAÃ".–j+êi -~‹x3<úaXÚ{H†ÖC1xÉÀ)â„á¤üSå \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_25_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_25_7.dat deleted file mode 100644 index cefe1b972..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_25_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚQAÀ »÷5ôÿŸ[F@©àaƒ„ÄÔÖZ̲… >;’ÐÀQ±ÊIÖÀQH8Rÿ¼ñÒˆGÉ"èz,ù½&‡ñþ;±­Ð'oñ»97”%P8%÷6oǽ;]ÞúNWnÝ[äf7¹ÌÕvÔ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_29_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_29_7.dat deleted file mode 100644 index e3d7391b7..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_29_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚÕR9À ÛýšøÿŸ«ŠÈQpX˜$læŲf!I2pgSãªêªMZj·ºóÌÃÂ"útŠðï¡e0¾¿#Ô›`_Ë1-±ÞóŽé´câÝÍ÷òha÷~/¡Eh™4¦Åæ"ä˜~Ï \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_37_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_37_7.dat deleted file mode 100644 index 87d9a1a9d2c57b346aa4a8a2e03754a7f7668ab3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122 zcmV-=0EPc}+U-<34nQFY+c^!r|K-dh{-xmXMloTrDOS>|wt{nN$p8UIKT#gc;o<{l zE|1OO;;@B_*1sBYail&HAVaMSznZ$V?+Zst%JX#@k^|V&_%v=tL+(dx9wGsNg^L)? cH0CK`8l%kV8sp6AdyF;KJ?hQK0&cYgLugGq!2kdN diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_41_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_41_7.dat deleted file mode 100644 index 8acec04f0..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_41_7.dat +++ /dev/null @@ -1 +0,0 @@ -xÚíTAÀ »÷5ôÿŸ[fDYæ(O’^¬ÅbR3/~t/L"¹Ä7SQQ5…jÔ\S—šiíñÎb£ß#Õ†ÈÂ×+Ç£¤w#æzõx?Þ㽧A-ëšw•u曑Y7$b.%AËÇ;•w«Rµ÷ñï•œoxG}?ƒ \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_45_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_45_7.dat deleted file mode 100644 index dbba31d0bfddcbed98ea5d7a9f6ee59f976e0421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173 zcmV;e08;;W+U-@*3cw%;e7~=;|Npr$DAUrsy$v=4K{1olOOYWhIYuypTZ?rVorcG` ziBe#%j*Q*dv)kOh(x@276Nxd&JP9U=2L~+ngMKq>jn}9{jK*jHRSM|5x5n%q5&j`e zsyWelhq7a3OJw7iYkdjosJYWIS!tZw|D3#JI49hv+1NkUa3?Dz bQL;xvA(=V?*)bSkL5FpXakG_S`^qkH-^P*%H1XEuNsLnfvAu` z`*BEI8A_NDBQX*qG5P?bYCW1Y9JBiGIs;FK@Oe8gF(1@>hQVmp28DF`j`Xh+BQX-A zPcoX-fMZmg?C*@cp*&oVxZ$(2Gpy+uA|bgw1Aot87`^rkIYy2Bj`)lr?t+Z`0Y=4# E+IH1p%m4rY diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_73_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_73_7.dat deleted file mode 100644 index f414e4a5877861bd45e439125a47c52b70a0ca12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmV<303!c*+U;1;4#OY_e7~=O|NpsVOKWw-svJ$a1xQMLKjmF z$Fo{kZk}5~sTj*XCvO!sEAx=sT{$)7Ae9TQEOc4^f@wQ)ea)wu7H%}{#MK=l@)ASD zb^%LDMOj|2h)%FTj!en)$C=J-W^O$fr&vx@-|THnt7dOwYNfBvQ>ukv oÌ40Ý÷ãT±%9¯‘Ô6²ü÷ªU5‹*sI{`¹ªÿ™_²>S?ç}(:yâTïlï{G&E\”Ö6¨õ}"A’¤X‹õ XϬ«²³Ç<Âmwx°fÜá‘G”QSkr0$!s zmX(et@ z$j}>#8;TpsDPluxhz+rk$AtTL3lG`X3UJ4`446UdL}WW&@+vhnbfN!;F1qj9*+b^XNIk3 z`ZsZ(ai8(tWM<5anK3hF=1a_o^~_APRcC!GK5O7o1G~?-&v25BNzV0+I1 diff --git a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_97_7.dat b/vendor/aferrandini/phpqrcode/cache/mask_7/mask_97_7.dat deleted file mode 100644 index b277368bd..000000000 --- a/vendor/aferrandini/phpqrcode/cache/mask_7/mask_97_7.dat +++ /dev/null @@ -1,2 +0,0 @@ -xÚíšáƒ0„ÿßÓÀû¿Ü²D[ÌÚâV.K¶«Iÿ`…â'ž³sxáº÷Âyäå”$ùxãxÃ"Îéª×= O^&pêb¶ÊÈYʬž$êKŸÝ£àÁÉŽ8KŸ…Ë ÎeÃŒó¡¥ ÔøŸ3:$bI,‰%±$–ÄÒYb襶 -M)¯TôŽ %q®¬Èô綦EÿœX}jlØT—T—ôŽKbI,‰%±ô,ñõã_e[%íýŽöV]R]Ò;N,‰%±$–þ’%VŸ@`‰Ñ%pa©m€§—(}ñ_¥%í%ÚÛ¸ÚÛøÚÛÈ4¥='u)ai¿.;M¾ù> \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/composer.json b/vendor/aferrandini/phpqrcode/composer.json deleted file mode 100644 index ff7935671..000000000 --- a/vendor/aferrandini/phpqrcode/composer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "aferrandini/phpqrcode", - "description": "PHPQRCode porting and changed for PHP 5.3 compatibility", - "keywords": ["php", "qrcode", "barcode"], - "homepage": "https://github.com/aferrandini/PHPQRCode", - "type": "library", - "license": "MIT", - "authors": [ - { - "name": "Ariel Ferrandini", - "email": "arielferrandini@gmail.com", - "homepage": "http://www.ferrandini.com/" - } - ], - "require": { - "php": ">=5.3.0" - }, - "autoload": { - "psr-0": { "PHPQRCode": "lib/" } - } -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode.php deleted file mode 100644 index e96c5e3df..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode.php +++ /dev/null @@ -1,42 +0,0 @@ -width = $width; - $this->frame = $frame; - $this->x = $width - 1; - $this->y = $width - 1; - $this->dir = -1; - $this->bit = -1; - } - - //---------------------------------------------------------------------- - public function setFrameAt($at, $val) - { - $this->frame[$at['y']][$at['x']] = chr($val); - } - - //---------------------------------------------------------------------- - public function getFrameAt($at) - { - return ord($this->frame[$at['y']][$at['x']]); - } - - //---------------------------------------------------------------------- - public function next() - { - do { - - if($this->bit == -1) { - $this->bit = 0; - return array('x'=>$this->x, 'y'=>$this->y); - } - - $x = $this->x; - $y = $this->y; - $w = $this->width; - - if($this->bit == 0) { - $x--; - $this->bit++; - } else { - $x++; - $y += $this->dir; - $this->bit--; - } - - if($this->dir < 0) { - if($y < 0) { - $y = 0; - $x -= 2; - $this->dir = 1; - if($x == 6) { - $x--; - $y = 9; - } - } - } else { - if($y == $w) { - $y = $w - 1; - $x -= 2; - $this->dir = -1; - if($x == 6) { - $x--; - $y -= 8; - } - } - } - if($x < 0 || $y < 0) return null; - - $this->x = $x; - $this->y = $y; - - } while(ord($this->frame[$y][$x]) & 0x80); - - return array('x'=>$x, 'y'=>$y); - } - -} ; \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRbitstream.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRbitstream.php deleted file mode 100644 index 93606f13f..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRbitstream.php +++ /dev/null @@ -1,182 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 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 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 - */ - -namespace PHPQRCode; - -class QRbitstream { - - public $data = array(); - - //---------------------------------------------------------------------- - public function size() - { - return count($this->data); - } - - //---------------------------------------------------------------------- - public function allocate($setLength) - { - $this->data = array_fill(0, $setLength, 0); - return 0; - } - - //---------------------------------------------------------------------- - public static function newFromNum($bits, $num) - { - $bstream = new QRbitstream(); - $bstream->allocate($bits); - - $mask = 1 << ($bits - 1); - for($i=0; $i<$bits; $i++) { - if($num & $mask) { - $bstream->data[$i] = 1; - } else { - $bstream->data[$i] = 0; - } - $mask = $mask >> 1; - } - - return $bstream; - } - - //---------------------------------------------------------------------- - public static function newFromBytes($size, $data) - { - $bstream = new QRbitstream(); - $bstream->allocate($size * 8); - $p=0; - - for($i=0; $i<$size; $i++) { - $mask = 0x80; - for($j=0; $j<8; $j++) { - if($data[$i] & $mask) { - $bstream->data[$p] = 1; - } else { - $bstream->data[$p] = 0; - } - $p++; - $mask = $mask >> 1; - } - } - - return $bstream; - } - - //---------------------------------------------------------------------- - public function append(QRbitstream $arg) - { - if (is_null($arg)) { - return -1; - } - - if($arg->size() == 0) { - return 0; - } - - if($this->size() == 0) { - $this->data = $arg->data; - return 0; - } - - $this->data = array_values(array_merge($this->data, $arg->data)); - - return 0; - } - - //---------------------------------------------------------------------- - public function appendNum($bits, $num) - { - if ($bits == 0) - return 0; - - $b = QRbitstream::newFromNum($bits, $num); - - if(is_null($b)) - return -1; - - $ret = $this->append($b); - unset($b); - - return $ret; - } - - //---------------------------------------------------------------------- - public function appendBytes($size, $data) - { - if ($size == 0) - return 0; - - $b = QRbitstream::newFromBytes($size, $data); - - if(is_null($b)) - return -1; - - $ret = $this->append($b); - unset($b); - - return $ret; - } - - //---------------------------------------------------------------------- - public function toByte() - { - - $size = $this->size(); - - if($size == 0) { - return array(); - } - - $data = array_fill(0, (int)(($size + 7) / 8), 0); - $bytes = (int)($size / 8); - - $p = 0; - - for($i=0; $i<$bytes; $i++) { - $v = 0; - for($j=0; $j<8; $j++) { - $v = $v << 1; - $v |= $this->data[$p]; - $p++; - } - $data[$i] = $v; - } - - if($size & 7) { - $v = 0; - for($j=0; $j<($size & 7); $j++) { - $v = $v << 1; - $v |= $this->data[$p]; - $p++; - } - $data[$bytes] = $v; - } - - return $data; - } - -} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRcode.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRcode.php deleted file mode 100644 index 08b602435..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRcode.php +++ /dev/null @@ -1,158 +0,0 @@ -getVersion() < 0 || $input->getVersion() > Constants::QRSPEC_VERSION_MAX) { - throw new Exception('wrong version'); - } - if($input->getErrorCorrectionLevel() > Constants::QR_ECLEVEL_H) { - throw new Exception('wrong level'); - } - - $raw = new QRrawcode($input); - - QRtools::markTime('after_raw'); - - $version = $raw->version; - $width = QRspec::getWidth($version); - $frame = QRspec::newFrame($version); - - $filler = new FrameFiller($width, $frame); - if(is_null($filler)) { - return NULL; - } - - // inteleaved data and ecc codes - for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) { - $code = $raw->getCode(); - $bit = 0x80; - for($j=0; $j<8; $j++) { - $addr = $filler->next(); - $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0)); - $bit = $bit >> 1; - } - } - - QRtools::markTime('after_filler'); - - unset($raw); - - // remainder bits - $j = QRspec::getRemainder($version); - for($i=0; $i<$j; $i++) { - $addr = $filler->next(); - $filler->setFrameAt($addr, 0x02); - } - - $frame = $filler->frame; - unset($filler); - - - // masking - $maskObj = new QRmask(); - if($mask < 0) { - - if (Constants::QR_FIND_BEST_MASK) { - $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel()); - } else { - $masked = $maskObj->makeMask($width, $frame, (intval(Constants::QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel()); - } - } else { - $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel()); - } - - if($masked == NULL) { - return NULL; - } - - QRtools::markTime('after_mask'); - - $this->version = $version; - $this->width = $width; - $this->data = $masked; - - return $this; - } - - //---------------------------------------------------------------------- - public function encodeInput(QRinput $input) - { - return $this->encodeMask($input, -1); - } - - //---------------------------------------------------------------------- - public function encodeString8bit($string, $version, $level) - { - if(string == NULL) { - throw new Exception('empty string!'); - return NULL; - } - - $input = new QRinput($version, $level); - if($input == NULL) return NULL; - - $ret = $input->append($input, Constants::QR_MODE_8, strlen($string), str_split($string)); - if($ret < 0) { - unset($input); - return NULL; - } - return $this->encodeInput($input); - } - - //---------------------------------------------------------------------- - public function encodeString($string, $version, $level, $hint, $casesensitive) - { - - if($hint != Constants::QR_MODE_8 && $hint != Constants::QR_MODE_KANJI) { - throw new Exception('bad hint'); - return NULL; - } - - $input = new QRinput($version, $level); - if($input == NULL) return NULL; - - $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive); - if($ret < 0) { - return NULL; - } - - return $this->encodeInput($input); - } - - //---------------------------------------------------------------------- - public static function png($text, $outfile = false, $level = Constants::QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) - { - $enc = QRencode::factory($level, $size, $margin); - return $enc->encodePNG($text, $outfile, $saveandprint=false); - } - - //---------------------------------------------------------------------- - public static function text($text, $outfile = false, $level = Constants::QR_ECLEVEL_L, $size = 3, $margin = 4) - { - $enc = QRencode::factory($level, $size, $margin); - return $enc->encode($text, $outfile); - } - - //---------------------------------------------------------------------- - public static function raw($text, $outfile = false, $level = Constants::QR_ECLEVEL_L, $size = 3, $margin = 4) - { - $enc = QRencode::factory($level, $size, $margin); - return $enc->encodeRAW($text, $outfile); - } -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRencode.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRencode.php deleted file mode 100644 index d05ab6b7b..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRencode.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 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 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 - */ - -namespace PHPQRCode; - -use Exception; - -class QRencode { - - public $casesensitive = true; - public $eightbit = false; - - public $version = 0; - public $size = 3; - public $margin = 4; - - public $structured = 0; // not supported yet - - public $level = Constants::QR_ECLEVEL_L; - public $hint = Constants::QR_MODE_8; - - //---------------------------------------------------------------------- - public static function factory($level = Constants::QR_ECLEVEL_L, $size = 3, $margin = 4) - { - $enc = new QRencode(); - $enc->size = $size; - $enc->margin = $margin; - - switch ($level.'') { - case '0': - case '1': - case '2': - case '3': - $enc->level = $level; - break; - case 'l': - case 'L': - $enc->level = Constants::QR_ECLEVEL_L; - break; - case 'm': - case 'M': - $enc->level = Constants::QR_ECLEVEL_M; - break; - case 'q': - case 'Q': - $enc->level = Constants::QR_ECLEVEL_Q; - break; - case 'h': - case 'H': - $enc->level = Constants::QR_ECLEVEL_H; - break; - } - - return $enc; - } - - //---------------------------------------------------------------------- - public function encodeRAW($intext, $outfile = false) - { - $code = new QRcode(); - - if($this->eightbit) { - $code->encodeString8bit($intext, $this->version, $this->level); - } else { - $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive); - } - - return $code->data; - } - - //---------------------------------------------------------------------- - public function encode($intext, $outfile = false) - { - $code = new QRcode(); - - if($this->eightbit) { - $code->encodeString8bit($intext, $this->version, $this->level); - } else { - $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive); - } - - QRtools::markTime('after_encode'); - - if ($outfile!== false) { - file_put_contents($outfile, join("\n", QRtools::binarize($code->data))); - } else { - return QRtools::binarize($code->data); - } - } - - //---------------------------------------------------------------------- - public function encodePNG($intext, $outfile = false,$saveandprint=false) - { - try { - ob_start(); - $tab = $this->encode($intext); - $err = ob_get_contents(); - ob_end_clean(); - - if ($err != '') - QRtools::log($outfile, "ERROR: " . $err); - - $maxSize = (int)(Constants::QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin)); - - QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint); - } catch (Exception $e) { - echo $e->getMessage(); - die(); - - QRtools::log($outfile, $e->getMessage()); - } - } -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRimage.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRimage.php deleted file mode 100644 index 430a16f84..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRimage.php +++ /dev/null @@ -1,95 +0,0 @@ - - * - * 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 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 - */ - -namespace PHPQRCode; - -class QRimage { - - //---------------------------------------------------------------------- - public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) - { - $image = self::image($frame, $pixelPerPoint, $outerFrame); - - if ($filename === false) { - Header("Content-type: image/png"); - ImagePng($image); - } else { - if($saveandprint===TRUE){ - ImagePng($image, $filename); - header("Content-type: image/png"); - ImagePng($image); - }else{ - ImagePng($image, $filename); - } - } - - ImageDestroy($image); - } - - //---------------------------------------------------------------------- - public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85) - { - $image = self::image($frame, $pixelPerPoint, $outerFrame); - - if ($filename === false) { - Header("Content-type: image/jpeg"); - ImageJpeg($image, null, $q); - } else { - ImageJpeg($image, $filename, $q); - } - - ImageDestroy($image); - } - - //---------------------------------------------------------------------- - private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4) - { - $h = count($frame); - $w = strlen($frame[0]); - - $imgW = $w + 2*$outerFrame; - $imgH = $h + 2*$outerFrame; - - $base_image =ImageCreate($imgW, $imgH); - - $col[0] = ImageColorAllocate($base_image,255,255,255); - $col[1] = ImageColorAllocate($base_image,0,0,0); - - imagefill($base_image, 0, 0, $col[0]); - - for($y=0; $y<$h; $y++) { - for($x=0; $x<$w; $x++) { - if ($frame[$y][$x] == '1') { - ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]); - } - } - } - - $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint); - ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH); - ImageDestroy($base_image); - - return $target_image; - } -} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinput.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinput.php deleted file mode 100644 index 8bdd21e71..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinput.php +++ /dev/null @@ -1,486 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 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 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 - */ - -namespace PHPQRCode; - -use Exception; - -class QRinput { - - public $items; - - private $version; - private $level; - - //---------------------------------------------------------------------- - public function __construct($version = 0, $level = Constants::QR_ECLEVEL_L) - { - if ($version < 0 || $version > Constants::QRSPEC_VERSION_MAX || $level > Constants::QR_ECLEVEL_H) { - throw new Exception('Invalid version no'); - return NULL; - } - - $this->version = $version; - $this->level = $level; - } - - //---------------------------------------------------------------------- - public function getVersion() - { - return $this->version; - } - - //---------------------------------------------------------------------- - public function setVersion($version) - { - if($version < 0 || $version > Constants::QRSPEC_VERSION_MAX) { - throw new Exception('Invalid version no'); - return -1; - } - - $this->version = $version; - - return 0; - } - - //---------------------------------------------------------------------- - public function getErrorCorrectionLevel() - { - return $this->level; - } - - //---------------------------------------------------------------------- - public function setErrorCorrectionLevel($level) - { - if($level > Constants::QR_ECLEVEL_H) { - throw new Exception('Invalid ECLEVEL'); - return -1; - } - - $this->level = $level; - - return 0; - } - - //---------------------------------------------------------------------- - public function appendEntry(QRinputItem $entry) - { - $this->items[] = $entry; - } - - //---------------------------------------------------------------------- - public function append($mode, $size, $data) - { - try { - $entry = new QRinputItem($mode, $size, $data); - $this->items[] = $entry; - return 0; - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - - public function insertStructuredAppendHeader($size, $index, $parity) - { - if( $size > Constants::MAX_STRUCTURED_SYMBOLS ) { - throw new Exception('insertStructuredAppendHeader wrong size'); - } - - if( $index <= 0 || $index > Constants::MAX_STRUCTURED_SYMBOLS ) { - throw new Exception('insertStructuredAppendHeader wrong index'); - } - - $buf = array($size, $index, $parity); - - try { - $entry = new QRinputItem(Constants::QR_MODE_STRUCTURE, 3, buf); - array_unshift($this->items, $entry); - return 0; - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - public function calcParity() - { - $parity = 0; - - foreach($this->items as $item) { - if($item->mode != Constants::QR_MODE_STRUCTURE) { - for($i=$item->size-1; $i>=0; $i--) { - $parity ^= $item->data[$i]; - } - } - } - - return $parity; - } - - //---------------------------------------------------------------------- - public static function checkModeNum($size, $data) - { - for($i=0; $i<$size; $i++) { - if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){ - return false; - } - } - - return true; - } - - //---------------------------------------------------------------------- - public static function estimateBitsModeNum($size) - { - $w = (int)$size / 3; - $bits = $w * 10; - - switch($size - $w * 3) { - case 1: - $bits += 4; - break; - case 2: - $bits += 7; - break; - default: - break; - } - - return $bits; - } - - //---------------------------------------------------------------------- - public static $anTable = array( - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 - ); - - //---------------------------------------------------------------------- - public static function lookAnTable($c) - { - return (($c > 127)?-1:self::$anTable[$c]); - } - - //---------------------------------------------------------------------- - public static function checkModeAn($size, $data) - { - for($i=0; $i<$size; $i++) { - if (self::lookAnTable(ord($data[$i])) == -1) { - return false; - } - } - - return true; - } - - //---------------------------------------------------------------------- - public static function estimateBitsModeAn($size) - { - $w = (int)($size / 2); - $bits = $w * 11; - - if($size & 1) { - $bits += 6; - } - - return $bits; - } - - //---------------------------------------------------------------------- - public static function estimateBitsMode8($size) - { - return $size * 8; - } - - //---------------------------------------------------------------------- - public function estimateBitsModeKanji($size) - { - return (int)(($size / 2) * 13); - } - - //---------------------------------------------------------------------- - public static function checkModeKanji($size, $data) - { - if($size & 1) - return false; - - for($i=0; $i<$size; $i+=2) { - $val = (ord($data[$i]) << 8) | ord($data[$i+1]); - if( $val < 0x8140 - || ($val > 0x9ffc && $val < 0xe040) - || $val > 0xebbf) { - return false; - } - } - - return true; - } - - /*********************************************************************** - * Validation - **********************************************************************/ - - public static function check($mode, $size, $data) - { - if($size <= 0) - return false; - - switch($mode) { - case Constants::QR_MODE_NUM: return self::checkModeNum($size, $data); break; - case Constants::QR_MODE_AN: return self::checkModeAn($size, $data); break; - case Constants::QR_MODE_KANJI: return self::checkModeKanji($size, $data); break; - case Constants::QR_MODE_8: return true; break; - case Constants::QR_MODE_STRUCTURE: return true; break; - - default: - break; - } - - return false; - } - - - //---------------------------------------------------------------------- - public function estimateBitStreamSize($version) - { - $bits = 0; - - foreach($this->items as $item) { - $bits += $item->estimateBitStreamSizeOfEntry($version); - } - - return $bits; - } - - //---------------------------------------------------------------------- - public function estimateVersion() - { - $version = 0; - $prev = 0; - do { - $prev = $version; - $bits = $this->estimateBitStreamSize($prev); - $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level); - if ($version < 0) { - return -1; - } - } while ($version > $prev); - - return $version; - } - - //---------------------------------------------------------------------- - public static function lengthOfCode($mode, $version, $bits) - { - $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version); - switch($mode) { - case Constants::QR_MODE_NUM: - $chunks = (int)($payload / 10); - $remain = $payload - $chunks * 10; - $size = $chunks * 3; - if($remain >= 7) { - $size += 2; - } else if($remain >= 4) { - $size += 1; - } - break; - case Constants::QR_MODE_AN: - $chunks = (int)($payload / 11); - $remain = $payload - $chunks * 11; - $size = $chunks * 2; - if($remain >= 6) - $size++; - break; - case Constants::QR_MODE_8: - $size = (int)($payload / 8); - break; - case Constants::QR_MODE_KANJI: - $size = (int)(($payload / 13) * 2); - break; - case Constants::QR_MODE_STRUCTURE: - $size = (int)($payload / 8); - break; - default: - $size = 0; - break; - } - - $maxsize = QRspec::maximumWords($mode, $version); - if($size < 0) $size = 0; - if($size > $maxsize) $size = $maxsize; - - return $size; - } - - //---------------------------------------------------------------------- - public function createBitStream() - { - $total = 0; - - foreach($this->items as $item) { - $bits = $item->encodeBitStream($this->version); - - if($bits < 0) - return -1; - - $total += $bits; - } - - return $total; - } - - //---------------------------------------------------------------------- - public function convertData() - { - $ver = $this->estimateVersion(); - if($ver > $this->getVersion()) { - $this->setVersion($ver); - } - - for(;;) { - $bits = $this->createBitStream(); - - if($bits < 0) - return -1; - - $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level); - if($ver < 0) { - throw new Exception('WRONG VERSION'); - return -1; - } else if($ver > $this->getVersion()) { - $this->setVersion($ver); - } else { - break; - } - } - - return 0; - } - - //---------------------------------------------------------------------- - public function appendPaddingBit(&$bstream) - { - $bits = $bstream->size(); - $maxwords = QRspec::getDataLength($this->version, $this->level); - $maxbits = $maxwords * 8; - - if ($maxbits == $bits) { - return 0; - } - - if ($maxbits - $bits < 5) { - return $bstream->appendNum($maxbits - $bits, 0); - } - - $bits += 4; - $words = (int)(($bits + 7) / 8); - - $padding = new QRbitstream(); - $ret = $padding->appendNum($words * 8 - $bits + 4, 0); - - if($ret < 0) - return $ret; - - $padlen = $maxwords - $words; - - if($padlen > 0) { - - $padbuf = array(); - for($i=0; $i<$padlen; $i++) { - $padbuf[$i] = ($i&1)?0x11:0xec; - } - - $ret = $padding->appendBytes($padlen, $padbuf); - - if($ret < 0) - return $ret; - - } - - $ret = $bstream->append($padding); - - return $ret; - } - - //---------------------------------------------------------------------- - public function mergeBitStream() - { - if($this->convertData() < 0) { - return null; - } - - $bstream = new QRbitstream(); - - foreach($this->items as $item) { - $ret = $bstream->append($item->bstream); - if($ret < 0) { - return null; - } - } - - return $bstream; - } - - //---------------------------------------------------------------------- - public function getBitStream() - { - - $bstream = $this->mergeBitStream(); - - if($bstream == null) { - return null; - } - - $ret = $this->appendPaddingBit($bstream); - if($ret < 0) { - return null; - } - - return $bstream; - } - - //---------------------------------------------------------------------- - public function getByteStream() - { - $bstream = $this->getBitStream(); - if($bstream == null) { - return null; - } - - return $bstream->toByte(); - } -} - - diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinputItem.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinputItem.php deleted file mode 100644 index 1e5eb18de..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRinputItem.php +++ /dev/null @@ -1,246 +0,0 @@ -mode = $mode; - $this->size = $size; - $this->data = $setData; - $this->bstream = $bstream; - } - - //---------------------------------------------------------------------- - public function encodeModeNum($version) - { - try { - - $words = (int)($this->size / 3); - $bs = new QRbitstream(); - - $val = 0x1; - $bs->appendNum(4, $val); - $bs->appendNum(QRspec::lengthIndicator(Constants::QR_MODE_NUM, $version), $this->size); - - for($i=0; $i<$words; $i++) { - $val = (ord($this->data[$i*3 ]) - ord('0')) * 100; - $val += (ord($this->data[$i*3+1]) - ord('0')) * 10; - $val += (ord($this->data[$i*3+2]) - ord('0')); - $bs->appendNum(10, $val); - } - - if($this->size - $words * 3 == 1) { - $val = ord($this->data[$words*3]) - ord('0'); - $bs->appendNum(4, $val); - } else if($this->size - $words * 3 == 2) { - $val = (ord($this->data[$words*3 ]) - ord('0')) * 10; - $val += (ord($this->data[$words*3+1]) - ord('0')); - $bs->appendNum(7, $val); - } - - $this->bstream = $bs; - return 0; - - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - public function encodeModeAn($version) - { - try { - $words = (int)($this->size / 2); - $bs = new QRbitstream(); - - $bs->appendNum(4, 0x02); - $bs->appendNum(QRspec::lengthIndicator(Constants::QR_MODE_AN, $version), $this->size); - - for($i=0; $i<$words; $i++) { - $val = (int)QRinput::lookAnTable(ord($this->data[$i*2 ])) * 45; - $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1])); - - $bs->appendNum(11, $val); - } - - if($this->size & 1) { - $val = QRinput::lookAnTable(ord($this->data[$words * 2])); - $bs->appendNum(6, $val); - } - - $this->bstream = $bs; - return 0; - - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - public function encodeMode8($version) - { - try { - $bs = new QRbitstream(); - - $bs->appendNum(4, 0x4); - $bs->appendNum(QRspec::lengthIndicator(Constants::QR_MODE_8, $version), $this->size); - - for($i=0; $i<$this->size; $i++) { - $bs->appendNum(8, ord($this->data[$i])); - } - - $this->bstream = $bs; - return 0; - - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - public function encodeModeKanji($version) - { - try { - - $bs = new QRbitstream(); - - $bs->appendNum(4, 0x8); - $bs->appendNum(QRspec::lengthIndicator(Constants::QR_MODE_KANJI, $version), (int)($this->size / 2)); - - for($i=0; $i<$this->size; $i+=2) { - $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]); - if($val <= 0x9ffc) { - $val -= 0x8140; - } else { - $val -= 0xc140; - } - - $h = ($val >> 8) * 0xc0; - $val = ($val & 0xff) + $h; - - $bs->appendNum(13, $val); - } - - $this->bstream = $bs; - return 0; - - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - public function encodeModeStructure() - { - try { - $bs = new QRbitstream(); - - $bs->appendNum(4, 0x03); - $bs->appendNum(4, ord($this->data[1]) - 1); - $bs->appendNum(4, ord($this->data[0]) - 1); - $bs->appendNum(8, ord($this->data[2])); - - $this->bstream = $bs; - return 0; - - } catch (Exception $e) { - return -1; - } - } - - //---------------------------------------------------------------------- - public function estimateBitStreamSizeOfEntry($version) - { - $bits = 0; - - if($version == 0) - $version = 1; - - switch($this->mode) { - case Constants::QR_MODE_NUM: $bits = QRinput::estimateBitsModeNum($this->size); break; - case Constants::QR_MODE_AN: $bits = QRinput::estimateBitsModeAn($this->size); break; - case Constants::QR_MODE_8: $bits = QRinput::estimateBitsMode8($this->size); break; - case Constants::QR_MODE_KANJI: $bits = QRinput::estimateBitsModeKanji($this->size);break; - case Constants::QR_MODE_STRUCTURE: return Constants::STRUCTURE_HEADER_BITS; - default: - return 0; - } - - $l = QRspec::lengthIndicator($this->mode, $version); - $m = 1 << $l; - $num = (int)(($this->size + $m - 1) / $m); - - $bits += $num * (4 + $l); - - return $bits; - } - - //---------------------------------------------------------------------- - public function encodeBitStream($version) - { - try { - - unset($this->bstream); - $words = QRspec::maximumWords($this->mode, $version); - - if($this->size > $words) { - - $st1 = new QRinputItem($this->mode, $words, $this->data); - $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words)); - - $st1->encodeBitStream($version); - $st2->encodeBitStream($version); - - $this->bstream = new QRbitstream(); - $this->bstream->append($st1->bstream); - $this->bstream->append($st2->bstream); - - unset($st1); - unset($st2); - - } else { - - $ret = 0; - - switch($this->mode) { - case Constants::QR_MODE_NUM: $ret = $this->encodeModeNum($version); break; - case Constants::QR_MODE_AN: $ret = $this->encodeModeAn($version); break; - case Constants::QR_MODE_8: $ret = $this->encodeMode8($version); break; - case Constants::QR_MODE_KANJI: $ret = $this->encodeModeKanji($version);break; - case Constants::QR_MODE_STRUCTURE: $ret = $this->encodeModeStructure(); break; - - default: - break; - } - - if($ret < 0) - return -1; - } - - return $this->bstream->size(); - - } catch (Exception $e) { - return -1; - } - } -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRmask.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRmask.php deleted file mode 100644 index 2be76f471..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRmask.php +++ /dev/null @@ -1,325 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 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 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 - */ - -namespace PHPQRCode; - -class QRmask { - - public $runLength = array(); - - //---------------------------------------------------------------------- - public function __construct() - { - $this->runLength = array_fill(0, Constants::QRSPEC_WIDTH_MAX + 1, 0); - } - - //---------------------------------------------------------------------- - public function writeFormatInformation($width, &$frame, $mask, $level) - { - $blacks = 0; - $format = QRspec::getFormatInfo($mask, $level); - - for($i=0; $i<8; $i++) { - if($format & 1) { - $blacks += 2; - $v = 0x85; - } else { - $v = 0x84; - } - - $frame[8][$width - 1 - $i] = chr($v); - if($i < 6) { - $frame[$i][8] = chr($v); - } else { - $frame[$i + 1][8] = chr($v); - } - $format = $format >> 1; - } - - for($i=0; $i<7; $i++) { - if($format & 1) { - $blacks += 2; - $v = 0x85; - } else { - $v = 0x84; - } - - $frame[$width - 7 + $i][8] = chr($v); - if($i == 0) { - $frame[8][7] = chr($v); - } else { - $frame[8][6 - $i] = chr($v); - } - - $format = $format >> 1; - } - - return $blacks; - } - - //---------------------------------------------------------------------- - public function mask0($x, $y) { return ($x+$y)&1; } - public function mask1($x, $y) { return ($y&1); } - public function mask2($x, $y) { return ($x%3); } - public function mask3($x, $y) { return ($x+$y)%3; } - public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; } - public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3; } - public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1; } - public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1; } - - //---------------------------------------------------------------------- - private function generateMaskNo($maskNo, $width, $frame) - { - $bitMask = array_fill(0, $width, array_fill(0, $width, 0)); - - for($y=0; $y<$width; $y++) { - for($x=0; $x<$width; $x++) { - if(ord($frame[$y][$x]) & 0x80) { - $bitMask[$y][$x] = 0; - } else { - $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y); - $bitMask[$y][$x] = ($maskFunc == 0)?1:0; - } - - } - } - - return $bitMask; - } - - //---------------------------------------------------------------------- - public static function serial($bitFrame) - { - $codeArr = array(); - - foreach ($bitFrame as $line) - $codeArr[] = join('', $line); - - return gzcompress(join("\n", $codeArr), 9); - } - - //---------------------------------------------------------------------- - public static function unserial($code) - { - $codeArr = array(); - - $codeLines = explode("\n", gzuncompress($code)); - foreach ($codeLines as $line) - $codeArr[] = str_split($line); - - return $codeArr; - } - - //---------------------------------------------------------------------- - public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false) - { - $b = 0; - $bitMask = array(); - - $fileName = Constants::QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat'; - - if (Constants::QR_CACHEABLE) { - if (file_exists($fileName)) { - $bitMask = self::unserial(file_get_contents($fileName)); - } else { - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); - if (!file_exists(Constants::QR_CACHE_DIR.'mask_'.$maskNo)) - mkdir(Constants::QR_CACHE_DIR.'mask_'.$maskNo); - file_put_contents($fileName, self::serial($bitMask)); - } - } else { - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); - } - - if ($maskGenOnly) - return; - - $d = $s; - - for($y=0; $y<$width; $y++) { - for($x=0; $x<$width; $x++) { - if($bitMask[$y][$x] == 1) { - $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]); - } - $b += (int)(ord($d[$y][$x]) & 1); - } - } - - return $b; - } - - //---------------------------------------------------------------------- - public function makeMask($width, $frame, $maskNo, $level) - { - $masked = array_fill(0, $width, str_repeat("\0", $width)); - $this->makeMaskNo($maskNo, $width, $frame, $masked); - $this->writeFormatInformation($width, $masked, $maskNo, $level); - - return $masked; - } - - //---------------------------------------------------------------------- - public function calcN1N3($length) - { - $demerit = 0; - - for($i=0; $i<$length; $i++) { - - if($this->runLength[$i] >= 5) { - $demerit += (Constants::N1 + ($this->runLength[$i] - 5)); - } - if($i & 1) { - if(($i >= 3) && ($i < ($length-2)) && ($this->runLength[$i] % 3 == 0)) { - $fact = (int)($this->runLength[$i] / 3); - if(($this->runLength[$i-2] == $fact) && - ($this->runLength[$i-1] == $fact) && - ($this->runLength[$i+1] == $fact) && - ($this->runLength[$i+2] == $fact)) { - if(($this->runLength[$i-3] < 0) || ($this->runLength[$i-3] >= (4 * $fact))) { - $demerit += Constants::N3; - } else if((($i+3) >= $length) || ($this->runLength[$i+3] >= (4 * $fact))) { - $demerit += Constants::N3; - } - } - } - } - } - return $demerit; - } - - //---------------------------------------------------------------------- - public function evaluateSymbol($width, $frame) - { - $head = 0; - $demerit = 0; - - for($y=0; $y<$width; $y++) { - $head = 0; - $this->runLength[0] = 1; - - $frameY = $frame[$y]; - - if ($y>0) - $frameYM = $frame[$y-1]; - - for($x=0; $x<$width; $x++) { - if(($x > 0) && ($y > 0)) { - $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]); - $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]); - - if(($b22 | ($w22 ^ 1))&1) { - $demerit += Constants::N2; - } - } - if(($x == 0) && (ord($frameY[$x]) & 1)) { - $this->runLength[0] = -1; - $head = 1; - $this->runLength[$head] = 1; - } else if($x > 0) { - if((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) { - $head++; - $this->runLength[$head] = 1; - } else { - $this->runLength[$head]++; - } - } - } - - $demerit += $this->calcN1N3($head+1); - } - - for($x=0; $x<$width; $x++) { - $head = 0; - $this->runLength[0] = 1; - - for($y=0; $y<$width; $y++) { - if($y == 0 && (ord($frame[$y][$x]) & 1)) { - $this->runLength[0] = -1; - $head = 1; - $this->runLength[$head] = 1; - } else if($y > 0) { - if((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) { - $head++; - $this->runLength[$head] = 1; - } else { - $this->runLength[$head]++; - } - } - } - - $demerit += $this->calcN1N3($head+1); - } - - return $demerit; - } - - - //---------------------------------------------------------------------- - public function mask($width, $frame, $level) - { - $minDemerit = PHP_INT_MAX; - $bestMaskNum = 0; - $bestMask = array(); - - $checked_masks = array(0,1,2,3,4,5,6,7); - - if (Constants::QR_FIND_FROM_RANDOM !== false) { - - $howManuOut = 8-(Constants::QR_FIND_FROM_RANDOM % 9); - for ($i = 0; $i < $howManuOut; $i++) { - $remPos = rand (0, count($checked_masks)-1); - unset($checked_masks[$remPos]); - $checked_masks = array_values($checked_masks); - } - - } - - $bestMask = $frame; - - foreach($checked_masks as $i) { - $mask = array_fill(0, $width, str_repeat("\0", $width)); - - $demerit = 0; - $blacks = 0; - $blacks = $this->makeMaskNo($i, $width, $frame, $mask); - $blacks += $this->writeFormatInformation($width, $mask, $i, $level); - $blacks = (int)(100 * $blacks / ($width * $width)); - $demerit = (int)((int)(abs($blacks - 50) / 5) * Constants::N4); - $demerit += $this->evaluateSymbol($width, $mask); - - if($demerit < $minDemerit) { - $minDemerit = $demerit; - $bestMask = $mask; - $bestMaskNum = $i; - } - } - - return $bestMask; - } - - //---------------------------------------------------------------------- -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrawcode.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrawcode.php deleted file mode 100644 index 25eae7c8d..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrawcode.php +++ /dev/null @@ -1,117 +0,0 @@ -datacode = $input->getByteStream(); - if(is_null($this->datacode)) { - throw new Exception('null input string'); - } - - QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec); - - $this->version = $input->getVersion(); - $this->b1 = QRspec::rsBlockNum1($spec); - $this->dataLength = QRspec::rsDataLength($spec); - $this->eccLength = QRspec::rsEccLength($spec); - $this->ecccode = array_fill(0, $this->eccLength, 0); - $this->blocks = QRspec::rsBlockNum($spec); - - $ret = $this->init($spec); - if($ret < 0) { - throw new Exception('block alloc error'); - return null; - } - - $this->count = 0; - } - - //---------------------------------------------------------------------- - public function init(array $spec) - { - $dl = QRspec::rsDataCodes1($spec); - $el = QRspec::rsEccCodes1($spec); - $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el); - - - $blockNo = 0; - $dataPos = 0; - $eccPos = 0; - for($i=0; $iecccode,$eccPos); - $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs); - $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc); - - $dataPos += $dl; - $eccPos += $el; - $blockNo++; - } - - if(QRspec::rsBlockNum2($spec) == 0) - return 0; - - $dl = QRspec::rsDataCodes2($spec); - $el = QRspec::rsEccCodes2($spec); - $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el); - - if($rs == NULL) return -1; - - for($i=0; $iecccode,$eccPos); - $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs); - $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc); - - $dataPos += $dl; - $eccPos += $el; - $blockNo++; - } - - return 0; - } - - //---------------------------------------------------------------------- - public function getCode() - { - $ret = null; - - if($this->count < $this->dataLength) { - $row = $this->count % $this->blocks; - $col = $this->count / $this->blocks; - if($col >= $this->rsblocks[0]->dataLength) { - $row += $this->b1; - } - $ret = $this->rsblocks[$row]->data[$col]; - } else if($this->count < $this->dataLength + $this->eccLength) { - $row = ($this->count - $this->dataLength) % $this->blocks; - $col = ($this->count - $this->dataLength) / $this->blocks; - $ret = $this->rsblocks[$row]->ecc[$col]; - } else { - return 0; - } - $this->count++; - - return $ret; - } -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrs.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrs.php deleted file mode 100644 index 66f0d5e77..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrs.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 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 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 - */ - -namespace PHPQRCode; - -class QRrs { - - public static $items = array(); - - //---------------------------------------------------------------------- - public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) - { - foreach(self::$items as $rs) { - if($rs->pad != $pad) continue; - if($rs->nroots != $nroots) continue; - if($rs->mm != $symsize) continue; - if($rs->gfpoly != $gfpoly) continue; - if($rs->fcr != $fcr) continue; - if($rs->prim != $prim) continue; - - return $rs; - } - - $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad); - array_unshift(self::$items, $rs); - - return $rs; - } -} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsItem.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsItem.php deleted file mode 100644 index ce63a8c35..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsItem.php +++ /dev/null @@ -1,162 +0,0 @@ -= $this->nn) { - $x -= $this->nn; - $x = ($x >> $this->mm) + ($x & $this->nn); - } - - return $x; - } - - //---------------------------------------------------------------------- - public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad) - { - // Common code for intializing a Reed-Solomon control block (char or int symbols) - // Copyright 2004 Phil Karn, KA9Q - // May be used under the terms of the GNU Lesser General Public License (LGPL) - - $rs = null; - - // Check parameter ranges - if($symsize < 0 || $symsize > 8) return $rs; - if($fcr < 0 || $fcr >= (1<<$symsize)) return $rs; - if($prim <= 0 || $prim >= (1<<$symsize)) return $rs; - if($nroots < 0 || $nroots >= (1<<$symsize)) return $rs; // Can't have more roots than symbol values! - if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding - - $rs = new QRrsItem(); - $rs->mm = $symsize; - $rs->nn = (1<<$symsize)-1; - $rs->pad = $pad; - - $rs->alpha_to = array_fill(0, $rs->nn+1, 0); - $rs->index_of = array_fill(0, $rs->nn+1, 0); - - // PHP style macro replacement ;) - $NN =& $rs->nn; - $A0 =& $NN; - - // Generate Galois field lookup tables - $rs->index_of[0] = $A0; // log(zero) = -inf - $rs->alpha_to[$A0] = 0; // alpha**-inf = 0 - $sr = 1; - - for($i=0; $i<$rs->nn; $i++) { - $rs->index_of[$sr] = $i; - $rs->alpha_to[$i] = $sr; - $sr <<= 1; - if($sr & (1<<$symsize)) { - $sr ^= $gfpoly; - } - $sr &= $rs->nn; - } - - if($sr != 1){ - // field generator polynomial is not primitive! - $rs = NULL; - return $rs; - } - - /* Form RS code generator polynomial from its roots */ - $rs->genpoly = array_fill(0, $nroots+1, 0); - - $rs->fcr = $fcr; - $rs->prim = $prim; - $rs->nroots = $nroots; - $rs->gfpoly = $gfpoly; - - /* Find prim-th root of 1, used in decoding */ - for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn) - ; // intentional empty-body loop! - - $rs->iprim = (int)($iprim / $prim); - $rs->genpoly[0] = 1; - - for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) { - $rs->genpoly[$i+1] = 1; - - // Multiply rs->genpoly[] by @**(root + x) - for ($j = $i; $j > 0; $j--) { - if ($rs->genpoly[$j] != 0) { - $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)]; - } else { - $rs->genpoly[$j] = $rs->genpoly[$j-1]; - } - } - // rs->genpoly[0] can never be zero - $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)]; - } - - // convert rs->genpoly[] to index form for quicker encoding - for ($i = 0; $i <= $nroots; $i++) - $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]]; - - return $rs; - } - - //---------------------------------------------------------------------- - public function encode_rs_char($data, &$parity) - { - $MM =& $this->mm; - $NN =& $this->nn; - $ALPHA_TO =& $this->alpha_to; - $INDEX_OF =& $this->index_of; - $GENPOLY =& $this->genpoly; - $NROOTS =& $this->nroots; - $FCR =& $this->fcr; - $PRIM =& $this->prim; - $IPRIM =& $this->iprim; - $PAD =& $this->pad; - $A0 =& $NN; - - $parity = array_fill(0, $NROOTS, 0); - - for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) { - - $feedback = $INDEX_OF[$data[$i] ^ $parity[0]]; - if($feedback != $A0) { - // feedback term is non-zero - - // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must - // always be for the polynomials constructed by init_rs() - $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback); - - for($j=1;$j<$NROOTS;$j++) { - $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])]; - } - } - - // Shift - array_shift($parity); - if($feedback != $A0) { - array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]); - } else { - array_push($parity, 0); - } - } - } -} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsblock.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsblock.php deleted file mode 100644 index c1d01f22e..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRrsblock.php +++ /dev/null @@ -1,25 +0,0 @@ -encode_rs_char($data, $ecc); - - $this->dataLength = $dl; - $this->data = $data; - $this->eccLength = $el; - $this->ecc = $ecc; - } -}; \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRspec.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRspec.php deleted file mode 100644 index d68432604..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRspec.php +++ /dev/null @@ -1,586 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 Dominik Dzienia - * - * The following data / specifications are taken from - * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004) - * or - * "Automatic identification and data capture techniques -- - * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006) - * - * 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 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 - */ - -namespace PHPQRCode; - -class QRspec { - - public static $capacity = array( - array( 0, 0, 0, array( 0, 0, 0, 0)), - array( 21, 26, 0, array( 7, 10, 13, 17)), // 1 - array( 25, 44, 7, array( 10, 16, 22, 28)), - array( 29, 70, 7, array( 15, 26, 36, 44)), - array( 33, 100, 7, array( 20, 36, 52, 64)), - array( 37, 134, 7, array( 26, 48, 72, 88)), // 5 - array( 41, 172, 7, array( 36, 64, 96, 112)), - array( 45, 196, 0, array( 40, 72, 108, 130)), - array( 49, 242, 0, array( 48, 88, 132, 156)), - array( 53, 292, 0, array( 60, 110, 160, 192)), - array( 57, 346, 0, array( 72, 130, 192, 224)), //10 - array( 61, 404, 0, array( 80, 150, 224, 264)), - array( 65, 466, 0, array( 96, 176, 260, 308)), - array( 69, 532, 0, array( 104, 198, 288, 352)), - array( 73, 581, 3, array( 120, 216, 320, 384)), - array( 77, 655, 3, array( 132, 240, 360, 432)), //15 - array( 81, 733, 3, array( 144, 280, 408, 480)), - array( 85, 815, 3, array( 168, 308, 448, 532)), - array( 89, 901, 3, array( 180, 338, 504, 588)), - array( 93, 991, 3, array( 196, 364, 546, 650)), - array( 97, 1085, 3, array( 224, 416, 600, 700)), //20 - array(101, 1156, 4, array( 224, 442, 644, 750)), - array(105, 1258, 4, array( 252, 476, 690, 816)), - array(109, 1364, 4, array( 270, 504, 750, 900)), - array(113, 1474, 4, array( 300, 560, 810, 960)), - array(117, 1588, 4, array( 312, 588, 870, 1050)), //25 - array(121, 1706, 4, array( 336, 644, 952, 1110)), - array(125, 1828, 4, array( 360, 700, 1020, 1200)), - array(129, 1921, 3, array( 390, 728, 1050, 1260)), - array(133, 2051, 3, array( 420, 784, 1140, 1350)), - array(137, 2185, 3, array( 450, 812, 1200, 1440)), //30 - array(141, 2323, 3, array( 480, 868, 1290, 1530)), - array(145, 2465, 3, array( 510, 924, 1350, 1620)), - array(149, 2611, 3, array( 540, 980, 1440, 1710)), - array(153, 2761, 3, array( 570, 1036, 1530, 1800)), - array(157, 2876, 0, array( 570, 1064, 1590, 1890)), //35 - array(161, 3034, 0, array( 600, 1120, 1680, 1980)), - array(165, 3196, 0, array( 630, 1204, 1770, 2100)), - array(169, 3362, 0, array( 660, 1260, 1860, 2220)), - array(173, 3532, 0, array( 720, 1316, 1950, 2310)), - array(177, 3706, 0, array( 750, 1372, 2040, 2430)) //40 - ); - - //---------------------------------------------------------------------- - public static function getDataLength($version, $level) - { - return self::$capacity[$version][Constants::QRCAP_WORDS] - self::$capacity[$version][Constants::QRCAP_EC][$level]; - } - - //---------------------------------------------------------------------- - public static function getECCLength($version, $level) - { - return self::$capacity[$version][Constants::QRCAP_EC][$level]; - } - - //---------------------------------------------------------------------- - public static function getWidth($version) - { - return self::$capacity[$version][Constants::QRCAP_WIDTH]; - } - - //---------------------------------------------------------------------- - public static function getRemainder($version) - { - return self::$capacity[$version][Constants::QRCAP_REMINDER]; - } - - //---------------------------------------------------------------------- - public static function getMinimumVersion($size, $level) - { - - for($i=1; $i<= Constants::QRSPEC_VERSION_MAX; $i++) { - $words = self::$capacity[$i][Constants::QRCAP_WORDS] - self::$capacity[$i][Constants::QRCAP_EC][$level]; - if($words >= $size) - return $i; - } - - return -1; - } - - //###################################################################### - - public static $lengthTableBits = array( - array(10, 12, 14), - array( 9, 11, 13), - array( 8, 16, 16), - array( 8, 10, 12) - ); - - //---------------------------------------------------------------------- - public static function lengthIndicator($mode, $version) - { - if ($mode == Constants::QR_MODE_STRUCTURE) - return 0; - - if ($version <= 9) { - $l = 0; - } else if ($version <= 26) { - $l = 1; - } else { - $l = 2; - } - - return self::$lengthTableBits[$mode][$l]; - } - - //---------------------------------------------------------------------- - public static function maximumWords($mode, $version) - { - if($mode == Constants::QR_MODE_STRUCTURE) - return 3; - - if($version <= 9) { - $l = 0; - } else if($version <= 26) { - $l = 1; - } else { - $l = 2; - } - - $bits = self::$lengthTableBits[$mode][$l]; - $words = (1 << $bits) - 1; - - if($mode == Constants::QR_MODE_KANJI) { - $words *= 2; // the number of bytes is required - } - - return $words; - } - - // Error correction code ----------------------------------------------- - // Table of the error correction code (Reed-Solomon block) - // See Table 12-16 (pp.30-36), JIS X0510:2004. - - public static $eccTable = array( - array(array( 0, 0), array( 0, 0), array( 0, 0), array( 0, 0)), - array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), // 1 - array(array( 1, 0), array( 1, 0), array( 1, 0), array( 1, 0)), - array(array( 1, 0), array( 1, 0), array( 2, 0), array( 2, 0)), - array(array( 1, 0), array( 2, 0), array( 2, 0), array( 4, 0)), - array(array( 1, 0), array( 2, 0), array( 2, 2), array( 2, 2)), // 5 - array(array( 2, 0), array( 4, 0), array( 4, 0), array( 4, 0)), - array(array( 2, 0), array( 4, 0), array( 2, 4), array( 4, 1)), - array(array( 2, 0), array( 2, 2), array( 4, 2), array( 4, 2)), - array(array( 2, 0), array( 3, 2), array( 4, 4), array( 4, 4)), - array(array( 2, 2), array( 4, 1), array( 6, 2), array( 6, 2)), //10 - array(array( 4, 0), array( 1, 4), array( 4, 4), array( 3, 8)), - array(array( 2, 2), array( 6, 2), array( 4, 6), array( 7, 4)), - array(array( 4, 0), array( 8, 1), array( 8, 4), array(12, 4)), - array(array( 3, 1), array( 4, 5), array(11, 5), array(11, 5)), - array(array( 5, 1), array( 5, 5), array( 5, 7), array(11, 7)), //15 - array(array( 5, 1), array( 7, 3), array(15, 2), array( 3, 13)), - array(array( 1, 5), array(10, 1), array( 1, 15), array( 2, 17)), - array(array( 5, 1), array( 9, 4), array(17, 1), array( 2, 19)), - array(array( 3, 4), array( 3, 11), array(17, 4), array( 9, 16)), - array(array( 3, 5), array( 3, 13), array(15, 5), array(15, 10)), //20 - array(array( 4, 4), array(17, 0), array(17, 6), array(19, 6)), - array(array( 2, 7), array(17, 0), array( 7, 16), array(34, 0)), - array(array( 4, 5), array( 4, 14), array(11, 14), array(16, 14)), - array(array( 6, 4), array( 6, 14), array(11, 16), array(30, 2)), - array(array( 8, 4), array( 8, 13), array( 7, 22), array(22, 13)), //25 - array(array(10, 2), array(19, 4), array(28, 6), array(33, 4)), - array(array( 8, 4), array(22, 3), array( 8, 26), array(12, 28)), - array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)), - array(array( 7, 7), array(21, 7), array( 1, 37), array(19, 26)), - array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), //30 - array(array(13, 3), array( 2, 29), array(42, 1), array(23, 28)), - array(array(17, 0), array(10, 23), array(10, 35), array(19, 35)), - array(array(17, 1), array(14, 21), array(29, 19), array(11, 46)), - array(array(13, 6), array(14, 23), array(44, 7), array(59, 1)), - array(array(12, 7), array(12, 26), array(39, 14), array(22, 41)), //35 - array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)), - array(array(17, 4), array(29, 14), array(49, 10), array(24, 46)), - array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)), - array(array(20, 4), array(40, 7), array(43, 22), array(10, 67)), - array(array(19, 6), array(18, 31), array(34, 34), array(20, 61)),//40 - ); - - //---------------------------------------------------------------------- - // CACHEABLE!!! - - public static function getEccSpec($version, $level, array &$spec) - { - if (count($spec) < 5) { - $spec = array(0,0,0,0,0); - } - - $b1 = self::$eccTable[$version][$level][0]; - $b2 = self::$eccTable[$version][$level][1]; - $data = self::getDataLength($version, $level); - $ecc = self::getECCLength($version, $level); - - if($b2 == 0) { - $spec[0] = $b1; - $spec[1] = (int)($data / $b1); - $spec[2] = (int)($ecc / $b1); - $spec[3] = 0; - $spec[4] = 0; - } else { - $spec[0] = $b1; - $spec[1] = (int)($data / ($b1 + $b2)); - $spec[2] = (int)($ecc / ($b1 + $b2)); - $spec[3] = $b2; - $spec[4] = $spec[1] + 1; - } - } - - // Alignment pattern --------------------------------------------------- - - // Positions of alignment patterns. - // This array includes only the second and the third position of the - // alignment patterns. Rest of them can be calculated from the distance - // between them. - - // See Table 1 in Appendix E (pp.71) of JIS X0510:2004. - - public static $alignmentPattern = array( - array( 0, 0), - array( 0, 0), array(18, 0), array(22, 0), array(26, 0), array(30, 0), // 1- 5 - array(34, 0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10 - array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), //11-15 - array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), //16-20 - array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), //21-25 - array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), //26-30 - array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), //31-35 - array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58), //35-40 - ); - - - /** -------------------------------------------------------------------- - * Put an alignment marker. - * @param frame - * @param width - * @param ox,oy center coordinate of the pattern - */ - public static function putAlignmentMarker(array &$frame, $ox, $oy) - { - $finder = array( - "\xa1\xa1\xa1\xa1\xa1", - "\xa1\xa0\xa0\xa0\xa1", - "\xa1\xa0\xa1\xa0\xa1", - "\xa1\xa0\xa0\xa0\xa1", - "\xa1\xa1\xa1\xa1\xa1" - ); - - $yStart = $oy-2; - $xStart = $ox-2; - - for($y=0; $y<5; $y++) { - QRstr::set($frame, $xStart, $yStart+$y, $finder[$y]); - } - } - - //---------------------------------------------------------------------- - public static function putAlignmentPattern($version, &$frame, $width) - { - if($version < 2) - return; - - $d = self::$alignmentPattern[$version][1] - self::$alignmentPattern[$version][0]; - if($d < 0) { - $w = 2; - } else { - $w = (int)(($width - self::$alignmentPattern[$version][0]) / $d + 2); - } - - if($w * $w - 3 == 1) { - $x = self::$alignmentPattern[$version][0]; - $y = self::$alignmentPattern[$version][0]; - self::putAlignmentMarker($frame, $x, $y); - return; - } - - $cx = self::$alignmentPattern[$version][0]; - for($x=1; $x<$w - 1; $x++) { - self::putAlignmentMarker($frame, 6, $cx); - self::putAlignmentMarker($frame, $cx, 6); - $cx += $d; - } - - $cy = self::$alignmentPattern[$version][0]; - for($y=0; $y<$w-1; $y++) { - $cx = self::$alignmentPattern[$version][0]; - for($x=0; $x<$w-1; $x++) { - self::putAlignmentMarker($frame, $cx, $cy); - $cx += $d; - } - $cy += $d; - } - } - - // Version information pattern ----------------------------------------- - - // Version information pattern (BCH coded). - // See Table 1 in Appendix D (pp.68) of JIS X0510:2004. - - // size: [Constants::QRSPEC_VERSION_MAX - 6] - - public static $versionPattern = array( - 0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d, - 0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, - 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, - 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64, - 0x27541, 0x28c69 - ); - - //---------------------------------------------------------------------- - public static function getVersionPattern($version) - { - if($version < 7 || $version > Constants::QRSPEC_VERSION_MAX) - return 0; - - return self::$versionPattern[$version -7]; - } - - // Format information -------------------------------------------------- - // See calcFormatInfo in tests/test_qrspec.c (orginal qrencode c lib) - - public static $formatInfo = array( - array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976), - array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0), - array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed), - array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b) - ); - - public static function getFormatInfo($mask, $level) - { - if($mask < 0 || $mask > 7) - return 0; - - if($level < 0 || $level > 3) - return 0; - - return self::$formatInfo[$level][$mask]; - } - - // Frame --------------------------------------------------------------- - // Cache of initial frames. - - public static $frames = array(); - - /** -------------------------------------------------------------------- - * Put a finder pattern. - * @param frame - * @param width - * @param ox,oy upper-left coordinate of the pattern - */ - public static function putFinderPattern(&$frame, $ox, $oy) - { - $finder = array( - "\xc1\xc1\xc1\xc1\xc1\xc1\xc1", - "\xc1\xc0\xc0\xc0\xc0\xc0\xc1", - "\xc1\xc0\xc1\xc1\xc1\xc0\xc1", - "\xc1\xc0\xc1\xc1\xc1\xc0\xc1", - "\xc1\xc0\xc1\xc1\xc1\xc0\xc1", - "\xc1\xc0\xc0\xc0\xc0\xc0\xc1", - "\xc1\xc1\xc1\xc1\xc1\xc1\xc1" - ); - - for($y=0; $y<7; $y++) { - QRstr::set($frame, $ox, $oy+$y, $finder[$y]); - } - } - - //---------------------------------------------------------------------- - public static function createFrame($version) - { - $width = self::$capacity[$version][Constants::QRCAP_WIDTH]; - $frameLine = str_repeat ("\0", $width); - $frame = array_fill(0, $width, $frameLine); - - // Finder pattern - self::putFinderPattern($frame, 0, 0); - self::putFinderPattern($frame, $width - 7, 0); - self::putFinderPattern($frame, 0, $width - 7); - - // Separator - $yOffset = $width - 7; - - for($y=0; $y<7; $y++) { - $frame[$y][7] = "\xc0"; - $frame[$y][$width - 8] = "\xc0"; - $frame[$yOffset][7] = "\xc0"; - $yOffset++; - } - - $setPattern = str_repeat("\xc0", 8); - - QRstr::set($frame, 0, 7, $setPattern); - QRstr::set($frame, $width-8, 7, $setPattern); - QRstr::set($frame, 0, $width - 8, $setPattern); - - // Format info - $setPattern = str_repeat("\x84", 9); - QRstr::set($frame, 0, 8, $setPattern); - QRstr::set($frame, $width - 8, 8, $setPattern, 8); - - $yOffset = $width - 8; - - for($y=0; $y<8; $y++,$yOffset++) { - $frame[$y][8] = "\x84"; - $frame[$yOffset][8] = "\x84"; - } - - // Timing pattern - - for($i=1; $i<$width-15; $i++) { - $frame[6][7+$i] = chr(0x90 | ($i & 1)); - $frame[7+$i][6] = chr(0x90 | ($i & 1)); - } - - // Alignment pattern - self::putAlignmentPattern($version, $frame, $width); - - // Version information - if($version >= 7) { - $vinf = self::getVersionPattern($version); - - $v = $vinf; - - for($x=0; $x<6; $x++) { - for($y=0; $y<3; $y++) { - $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1)); - $v = $v >> 1; - } - } - - $v = $vinf; - for($y=0; $y<6; $y++) { - for($x=0; $x<3; $x++) { - $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1)); - $v = $v >> 1; - } - } - } - - // and a little bit... - $frame[$width - 8][8] = "\x81"; - - return $frame; - } - - //---------------------------------------------------------------------- - public static function debug($frame, $binary_mode = false) - { - if ($binary_mode) { - - foreach ($frame as &$frameLine) { - $frameLine = join('  ', explode('0', $frameLine)); - $frameLine = join('██', explode('1', $frameLine)); - } - - ?> - -


        '; - echo join("
        ", $frame); - echo '






'; - - } else { - - foreach ($frame as &$frameLine) { - $frameLine = join(' ', explode("\xc0", $frameLine)); - $frameLine = join('', explode("\xc1", $frameLine)); - $frameLine = join(' ', explode("\xa0", $frameLine)); - $frameLine = join('', explode("\xa1", $frameLine)); - $frameLine = join('', explode("\x84", $frameLine)); //format 0 - $frameLine = join('', explode("\x85", $frameLine)); //format 1 - $frameLine = join('', explode("\x81", $frameLine)); //special bit - $frameLine = join(' ', explode("\x90", $frameLine)); //clock 0 - $frameLine = join('', explode("\x91", $frameLine)); //clock 1 - $frameLine = join(' ', explode("\x88", $frameLine)); //version - $frameLine = join('', explode("\x89", $frameLine)); //version - $frameLine = join('♦', explode("\x01", $frameLine)); - $frameLine = join('⋅', explode("\0", $frameLine)); - } - - ?> - - "; - echo join("
", $frame); - echo "
"; - - } - } - - //---------------------------------------------------------------------- - public static function serial($frame) - { - return gzcompress(join("\n", $frame), 9); - } - - //---------------------------------------------------------------------- - public static function unserial($code) - { - return explode("\n", gzuncompress($code)); - } - - //---------------------------------------------------------------------- - public static function newFrame($version) - { - if($version < 1 || $version > Constants::QRSPEC_VERSION_MAX) - return null; - - if(!isset(self::$frames[$version])) { - - $fileName = Constants::QR_CACHE_DIR.'frame_'.$version.'.dat'; - - if (Constants::QR_CACHEABLE) { - if (file_exists($fileName)) { - self::$frames[$version] = self::unserial(file_get_contents($fileName)); - } else { - self::$frames[$version] = self::createFrame($version); - file_put_contents($fileName, self::serial(self::$frames[$version])); - } - } else { - self::$frames[$version] = self::createFrame($version); - } - } - - if(is_null(self::$frames[$version])) - return null; - - return self::$frames[$version]; - } - - //---------------------------------------------------------------------- - public static function rsBlockNum($spec) { return $spec[0] + $spec[3]; } - public static function rsBlockNum1($spec) { return $spec[0]; } - public static function rsDataCodes1($spec) { return $spec[1]; } - public static function rsEccCodes1($spec) { return $spec[2]; } - public static function rsBlockNum2($spec) { return $spec[3]; } - public static function rsDataCodes2($spec) { return $spec[4]; } - public static function rsEccCodes2($spec) { return $spec[2]; } - public static function rsDataLength($spec) { return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]); } - public static function rsEccLength($spec) { return ($spec[0] + $spec[3]) * $spec[2]; } - -} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRsplit.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRsplit.php deleted file mode 100644 index 805140a97..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRsplit.php +++ /dev/null @@ -1,316 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 Dominik Dzienia - * - * The following data / specifications are taken from - * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004) - * or - * "Automatic identification and data capture techniques -- - * QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006) - * - * 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 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 - */ - -namespace PHPQRCode; - -use Exception; - -class QRsplit { - - public $dataStr = ''; - public $input; - public $modeHint; - - //---------------------------------------------------------------------- - public function __construct($dataStr, $input, $modeHint) - { - $this->dataStr = $dataStr; - $this->input = $input; - $this->modeHint = $modeHint; - } - - //---------------------------------------------------------------------- - public static function isdigitat($str, $pos) - { - if ($pos >= strlen($str)) - return false; - - return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9'))); - } - - //---------------------------------------------------------------------- - public static function isalnumat($str, $pos) - { - if ($pos >= strlen($str)) - return false; - - return (QRinput::lookAnTable(ord($str[$pos])) >= 0); - } - - //---------------------------------------------------------------------- - public function identifyMode($pos) - { - if ($pos >= strlen($this->dataStr)) - return Constants::QR_MODE_NUL; - - $c = $this->dataStr[$pos]; - - if(self::isdigitat($this->dataStr, $pos)) { - return Constants::QR_MODE_NUM; - } else if(self::isalnumat($this->dataStr, $pos)) { - return Constants::QR_MODE_AN; - } else if($this->modeHint == Constants::QR_MODE_KANJI) { - - if ($pos+1 < strlen($this->dataStr)) - { - $d = $this->dataStr[$pos+1]; - $word = (ord($c) << 8) | ord($d); - if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) { - return Constants::QR_MODE_KANJI; - } - } - } - - return Constants::QR_MODE_8; - } - - //---------------------------------------------------------------------- - public function eatNum() - { - $ln = QRspec::lengthIndicator(Constants::QR_MODE_NUM, $this->input->getVersion()); - - $p = 0; - while(self::isdigitat($this->dataStr, $p)) { - $p++; - } - - $run = $p; - $mode = $this->identifyMode($p); - - if($mode == Constants::QR_MODE_8) { - $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln - + QRinput::estimateBitsMode8(1) // + 4 + l8 - - QRinput::estimateBitsMode8($run + 1); // - 4 - l8 - if($dif > 0) { - return $this->eat8(); - } - } - if($mode == Constants::QR_MODE_AN) { - $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln - + QRinput::estimateBitsModeAn(1) // + 4 + la - - QRinput::estimateBitsModeAn($run + 1);// - 4 - la - if($dif > 0) { - return $this->eatAn(); - } - } - - $ret = $this->input->append(Constants::QR_MODE_NUM, $run, str_split($this->dataStr)); - if($ret < 0) - return -1; - - return $run; - } - - //---------------------------------------------------------------------- - public function eatAn() - { - $la = QRspec::lengthIndicator(Constants::QR_MODE_AN, $this->input->getVersion()); - $ln = QRspec::lengthIndicator(Constants::QR_MODE_NUM, $this->input->getVersion()); - - $p = 0; - - while(self::isalnumat($this->dataStr, $p)) { - if(self::isdigitat($this->dataStr, $p)) { - $q = $p; - while(self::isdigitat($this->dataStr, $q)) { - $q++; - } - - $dif = QRinput::estimateBitsModeAn($p) // + 4 + la - + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln - - QRinput::estimateBitsModeAn($q); // - 4 - la - - if($dif < 0) { - break; - } else { - $p = $q; - } - } else { - $p++; - } - } - - $run = $p; - - if(!self::isalnumat($this->dataStr, $p)) { - $dif = QRinput::estimateBitsModeAn($run) + 4 + $la - + QRinput::estimateBitsMode8(1) // + 4 + l8 - - QRinput::estimateBitsMode8($run + 1); // - 4 - l8 - if($dif > 0) { - return $this->eat8(); - } - } - - $ret = $this->input->append(Constants::QR_MODE_AN, $run, str_split($this->dataStr)); - if($ret < 0) - return -1; - - return $run; - } - - //---------------------------------------------------------------------- - public function eatKanji() - { - $p = 0; - - while($this->identifyMode($p) == Constants::QR_MODE_KANJI) { - $p += 2; - } - - $ret = $this->input->append(Constants::QR_MODE_KANJI, $p, str_split($this->dataStr)); - if($ret < 0) - return -1; - - return $ret; - } - - //---------------------------------------------------------------------- - public function eat8() - { - $la = QRspec::lengthIndicator(Constants::QR_MODE_AN, $this->input->getVersion()); - $ln = QRspec::lengthIndicator(Constants::QR_MODE_NUM, $this->input->getVersion()); - - $p = 1; - $dataStrLen = strlen($this->dataStr); - - while($p < $dataStrLen) { - - $mode = $this->identifyMode($p); - if($mode == Constants::QR_MODE_KANJI) { - break; - } - if($mode == Constants::QR_MODE_NUM) { - $q = $p; - while(self::isdigitat($this->dataStr, $q)) { - $q++; - } - $dif = QRinput::estimateBitsMode8($p) // + 4 + l8 - + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln - - QRinput::estimateBitsMode8($q); // - 4 - l8 - if($dif < 0) { - break; - } else { - $p = $q; - } - } else if($mode == Constants::QR_MODE_AN) { - $q = $p; - while(self::isalnumat($this->dataStr, $q)) { - $q++; - } - $dif = QRinput::estimateBitsMode8($p) // + 4 + l8 - + QRinput::estimateBitsModeAn($q - $p) + 4 + $la - - QRinput::estimateBitsMode8($q); // - 4 - l8 - if($dif < 0) { - break; - } else { - $p = $q; - } - } else { - $p++; - } - } - - $run = $p; - $ret = $this->input->append(Constants::QR_MODE_8, $run, str_split($this->dataStr)); - - if($ret < 0) - return -1; - - return $run; - } - - //---------------------------------------------------------------------- - public function splitString() - { - while (strlen($this->dataStr) > 0) - { - if($this->dataStr == '') - return 0; - - $mode = $this->identifyMode(0); - - switch ($mode) { - case Constants::QR_MODE_NUM: $length = $this->eatNum(); break; - case Constants::QR_MODE_AN: $length = $this->eatAn(); break; - case Constants::QR_MODE_KANJI: - if ($hint == Constants::QR_MODE_KANJI) - $length = $this->eatKanji(); - else $length = $this->eat8(); - break; - default: $length = $this->eat8(); break; - - } - - if($length == 0) return 0; - if($length < 0) return -1; - - $this->dataStr = substr($this->dataStr, $length); - } - } - - //---------------------------------------------------------------------- - public function toUpper() - { - $stringLen = strlen($this->dataStr); - $p = 0; - - while ($p<$stringLen) { - $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint); - if($mode == Constants::QR_MODE_KANJI) { - $p += 2; - } else { - if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) { - $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32); - } - $p++; - } - } - - return $this->dataStr; - } - - //---------------------------------------------------------------------- - public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true) - { - if(is_null($string) || $string == '\0' || $string == '') { - throw new Exception('empty string!!!'); - } - - $split = new QRsplit($string, $input, $modeHint); - - if(!$casesensitive) - $split->toUpper(); - - return $split->splitString(); - } -} diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRstr.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRstr.php deleted file mode 100644 index 64c4bd5c6..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRstr.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * PHP QR Code is distributed under LGPL 3 - * Copyright (C) 2010 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 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 - */ - -namespace PHPQRCode; - -class QRstr { - public static function set(&$srctab, $x, $y, $repl, $replLen = false) { - $srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl)); - } -} \ No newline at end of file diff --git a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRtools.php b/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRtools.php deleted file mode 100644 index 7c75a6e2a..000000000 --- a/vendor/aferrandini/phpqrcode/lib/PHPQRCode/QRtools.php +++ /dev/null @@ -1,171 +0,0 @@ - - * - * 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 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 - */ - -namespace PHPQRCode; - -class QRtools { - - //---------------------------------------------------------------------- - public static function binarize($frame) - { - $len = count($frame); - foreach ($frame as &$frameLine) { - - for($i=0; $i<$len; $i++) { - $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0'; - } - } - - return $frame; - } - - //---------------------------------------------------------------------- - public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037') - { - $barcode_array = array(); - - if (!is_array($mode)) - $mode = explode(',', $mode); - - $eccLevel = 'L'; - - if (count($mode) > 1) { - $eccLevel = $mode[1]; - } - - $qrTab = QRcode::text($code, false, $eccLevel); - $size = count($qrTab); - - $barcode_array['num_rows'] = $size; - $barcode_array['num_cols'] = $size; - $barcode_array['bcode'] = array(); - - foreach ($qrTab as $line) { - $arrAdd = array(); - foreach(str_split($line) as $char) - $arrAdd[] = ($char=='1')?1:0; - $barcode_array['bcode'][] = $arrAdd; - } - - return $barcode_array; - } - - //---------------------------------------------------------------------- - public static function clearCache() - { - self::$frames = array(); - } - - //---------------------------------------------------------------------- - public static function buildCache() - { - QRtools::markTime('before_build_cache'); - - $mask = new QRmask(); - for ($a=1; $a <= Constants::QRSPEC_VERSION_MAX; $a++) { - $frame = QRspec::newFrame($a); - if (Constants::QR_IMAGE) { - $fileName = Constants::QR_CACHE_DIR.'frame_'.$a.'.png'; - QRimage::png(self::binarize($frame), $fileName, 1, 0); - } - - $width = count($frame); - $bitMask = array_fill(0, $width, array_fill(0, $width, 0)); - for ($maskNo=0; $maskNo<8; $maskNo++) - $mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true); - } - - QRtools::markTime('after_build_cache'); - } - - //---------------------------------------------------------------------- - public static function log($outfile, $err) - { - if (Constants::QR_LOG_DIR !== false) { - if ($err != '') { - if ($outfile !== false) { - file_put_contents(Constants::QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND); - } else { - file_put_contents(Constants::QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND); - } - } - } - } - - //---------------------------------------------------------------------- - public static function dumpMask($frame) - { - $width = count($frame); - for($y=0;$y<$width;$y++) { - for($x=0;$x<$width;$x++) { - echo ord($frame[$y][$x]).','; - } - } - } - - //---------------------------------------------------------------------- - public static function markTime($markerId) - { - list($usec, $sec) = explode(" ", microtime()); - $time = ((float)$usec + (float)$sec); - - if (!isset($GLOBALS['qr_time_bench'])) - $GLOBALS['qr_time_bench'] = array(); - - $GLOBALS['qr_time_bench'][$markerId] = $time; - } - - //---------------------------------------------------------------------- - public static function timeBenchmark() - { - self::markTime('finish'); - - $lastTime = 0; - $startTime = 0; - $p = 0; - - echo ' - - '; - - foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) { - if ($p > 0) { - echo ''; - } else { - $startTime = $thisTime; - } - - $p++; - $lastTime = $thisTime; - } - - echo ' - - -
BENCHMARK
till '.$markerId.': '.number_format($thisTime-$lastTime, 6).'s
TOTAL: '.number_format($lastTime-$startTime, 6).'s
'; - } - -} - -QRtools::markTime('start'); diff --git a/vendor/aferrandini/phpqrcode/readme.md b/vendor/aferrandini/phpqrcode/readme.md deleted file mode 100644 index e8f2f5ab3..000000000 --- a/vendor/aferrandini/phpqrcode/readme.md +++ /dev/null @@ -1,37 +0,0 @@ -# PHP QRCode Library - -To install this library please follow the next steps: - -## Install the library using `composer`: - -Add the required module to your `composer.json` file: - - { - "require": { - ... - "aferrandini/phpqrcode": "1.0.1" - ... - } - } - -Then run the command `composer update`. - - -## Usage - -Sample code: - - \PHPQRCode\QRcode::png("Test", "/tmp/qrcode.png", 'L', 4, 2); - -This code will generate a PNG file on '/tmp/qrcode.png' with a QRCode that contains the word 'Test'. - -## Acknowledgements - -This library is an import of PHP QR Code by Dominik Dzienia that you can find at http://phpqrcode.sourceforge.net - -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 diff --git a/vendor/autoload.php b/vendor/autoload.php index c2b7d220b..54ecedf96 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit5a34d2cf88418439a1e7fb45047b8e5a::getLoader(); +return ComposerAutoloaderInitbe5fdc6ce25a854de4cbf5279dee37ce::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 4caa0fb2e..7b914e575 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6,25 +6,6 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'PHPQRCode' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode.php', - 'PHPQRCode\\Autoloader' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/Autoloader.php', - 'PHPQRCode\\Constants' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/Constants.php', - 'PHPQRCode\\FrameFiller' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/FrameFiller.php', - 'PHPQRCode\\QRbitstream' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRbitstream.php', - 'PHPQRCode\\QRcode' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRcode.php', - 'PHPQRCode\\QRencode' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRencode.php', - 'PHPQRCode\\QRimage' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRimage.php', - 'PHPQRCode\\QRinput' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRinput.php', - 'PHPQRCode\\QRinputItem' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRinputItem.php', - 'PHPQRCode\\QRmask' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRmask.php', - 'PHPQRCode\\QRrawcode' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrawcode.php', - 'PHPQRCode\\QRrs' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrs.php', - 'PHPQRCode\\QRrsItem' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrsItem.php', - 'PHPQRCode\\QRrsblock' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrsblock.php', - 'PHPQRCode\\QRspec' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRspec.php', - 'PHPQRCode\\QRsplit' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRsplit.php', - 'PHPQRCode\\QRstr' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRstr.php', - 'PHPQRCode\\QRtools' => $vendorDir . '/aferrandini/phpqrcode/lib/PHPQRCode/QRtools.php', 'PclZip' => $vendorDir . '/pclzip/pclzip/pclzip.lib.php', 'Qiniu\\Auth' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Auth.php', 'Qiniu\\Config' => $vendorDir . '/qiniu/php-sdk/src/Qiniu/Config.php', @@ -58,30 +39,6 @@ return array( 'Wechat\\WechatScript' => $vendorDir . '/zoujingli/wechat-php-sdk/Wechat/WechatScript.php', 'Wechat\\WechatService' => $vendorDir . '/zoujingli/wechat-php-sdk/Wechat/WechatService.php', 'Wechat\\WechatUser' => $vendorDir . '/zoujingli/wechat-php-sdk/Wechat/WechatUser.php', - 'Workerman\\Autoloader' => $vendorDir . '/workerman/workerman/Autoloader.php', - 'Workerman\\Connection\\AsyncTcpConnection' => $vendorDir . '/workerman/workerman/Connection/AsyncTcpConnection.php', - 'Workerman\\Connection\\ConnectionInterface' => $vendorDir . '/workerman/workerman/Connection/ConnectionInterface.php', - 'Workerman\\Connection\\TcpConnection' => $vendorDir . '/workerman/workerman/Connection/TcpConnection.php', - 'Workerman\\Connection\\UdpConnection' => $vendorDir . '/workerman/workerman/Connection/UdpConnection.php', - 'Workerman\\Events\\Ev' => $vendorDir . '/workerman/workerman/Events/Ev.php', - 'Workerman\\Events\\Event' => $vendorDir . '/workerman/workerman/Events/Event.php', - 'Workerman\\Events\\EventInterface' => $vendorDir . '/workerman/workerman/Events/EventInterface.php', - 'Workerman\\Events\\Libevent' => $vendorDir . '/workerman/workerman/Events/Libevent.php', - 'Workerman\\Events\\React' => $vendorDir . '/workerman/workerman/Events/React.php', - 'Workerman\\Events\\React\\ExtEventLoop' => $vendorDir . '/workerman/workerman/Events/React/ExtEventLoop.php', - 'Workerman\\Events\\React\\LibEventLoop' => $vendorDir . '/workerman/workerman/Events/React/LibEventLoop.php', - 'Workerman\\Events\\React\\StreamSelectLoop' => $vendorDir . '/workerman/workerman/Events/React/StreamSelectLoop.php', - 'Workerman\\Events\\Select' => $vendorDir . '/workerman/workerman/Events/Select.php', - 'Workerman\\Lib\\Timer' => $vendorDir . '/workerman/workerman/Lib/Timer.php', - 'Workerman\\Protocols\\Frame' => $vendorDir . '/workerman/workerman/Protocols/Frame.php', - 'Workerman\\Protocols\\Http' => $vendorDir . '/workerman/workerman/Protocols/Http.php', - 'Workerman\\Protocols\\HttpCache' => $vendorDir . '/workerman/workerman/Protocols/Http.php', - 'Workerman\\Protocols\\ProtocolInterface' => $vendorDir . '/workerman/workerman/Protocols/ProtocolInterface.php', - 'Workerman\\Protocols\\Text' => $vendorDir . '/workerman/workerman/Protocols/Text.php', - 'Workerman\\Protocols\\Websocket' => $vendorDir . '/workerman/workerman/Protocols/Websocket.php', - 'Workerman\\Protocols\\Ws' => $vendorDir . '/workerman/workerman/Protocols/Ws.php', - 'Workerman\\WebServer' => $vendorDir . '/workerman/workerman/WebServer.php', - 'Workerman\\Worker' => $vendorDir . '/workerman/workerman/Worker.php', 'think\\App' => $baseDir . '/thinkphp/library/think/App.php', 'think\\Build' => $baseDir . '/thinkphp/library/think/Build.php', 'think\\Cache' => $baseDir . '/thinkphp/library/think/Cache.php', @@ -252,5 +209,4 @@ return array( 'think\\template\\taglib\\Cx' => $baseDir . '/thinkphp/library/think/template/taglib/Cx.php', 'think\\view\\driver\\Php' => $baseDir . '/thinkphp/library/think/view/driver/Php.php', 'think\\view\\driver\\Think' => $baseDir . '/thinkphp/library/think/view/driver/Think.php', - 'think\\worker\\Server' => $vendorDir . '/topthink/think-worker/src/Server.php', ); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index ba7e24cd7..b7fc0125d 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -6,5 +6,4 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'PHPQRCode' => array($vendorDir . '/aferrandini/phpqrcode/lib'), ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 1dc897235..8c0a54385 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,13 +6,11 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'think\\worker\\' => array($vendorDir . '/topthink/think-worker/src'), 'think\\mongo\\' => array($vendorDir . '/topthink/think-mongo/src'), 'think\\helper\\' => array($vendorDir . '/topthink/think-helper/src'), 'think\\composer\\' => array($vendorDir . '/topthink/think-installer/src'), 'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), 'think\\' => array($baseDir . '/thinkphp/library/think', $vendorDir . '/topthink/think-queue/src'), - 'Workerman\\' => array($vendorDir . '/workerman/workerman'), 'Wechat\\' => array($vendorDir . '/zoujingli/wechat-php-sdk/Wechat'), 'Qiniu\\' => array($vendorDir . '/qiniu/php-sdk/src/Qiniu'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 0f506dd2e..8d0d33814 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit5a34d2cf88418439a1e7fb45047b8e5a +class ComposerAutoloaderInitbe5fdc6ce25a854de4cbf5279dee37ce { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit5a34d2cf88418439a1e7fb45047b8e5a return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit5a34d2cf88418439a1e7fb45047b8e5a', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitbe5fdc6ce25a854de4cbf5279dee37ce', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit5a34d2cf88418439a1e7fb45047b8e5a', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitbe5fdc6ce25a854de4cbf5279dee37ce', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitbe5fdc6ce25a854de4cbf5279dee37ce::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit5a34d2cf88418439a1e7fb45047b8e5a $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitbe5fdc6ce25a854de4cbf5279dee37ce::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire5a34d2cf88418439a1e7fb45047b8e5a($fileIdentifier, $file); + composerRequirebe5fdc6ce25a854de4cbf5279dee37ce($fileIdentifier, $file); } return $loader; } } -function composerRequire5a34d2cf88418439a1e7fb45047b8e5a($fileIdentifier, $file) +function composerRequirebe5fdc6ce25a854de4cbf5279dee37ce($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 7694e4ffa..bd8785175 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a +class ComposerStaticInitbe5fdc6ce25a854de4cbf5279dee37ce { public static $files = array ( '9b552a3cc426e3287cc811caefa3cf53' => __DIR__ . '/..' . '/topthink/think-helper/src/helper.php', @@ -16,7 +16,6 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a public static $prefixLengthsPsr4 = array ( 't' => array ( - 'think\\worker\\' => 13, 'think\\mongo\\' => 12, 'think\\helper\\' => 13, 'think\\composer\\' => 15, @@ -25,7 +24,6 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a ), 'W' => array ( - 'Workerman\\' => 10, 'Wechat\\' => 7, ), 'Q' => @@ -35,10 +33,6 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a ); public static $prefixDirsPsr4 = array ( - 'think\\worker\\' => - array ( - 0 => __DIR__ . '/..' . '/topthink/think-worker/src', - ), 'think\\mongo\\' => array ( 0 => __DIR__ . '/..' . '/topthink/think-mongo/src', @@ -60,10 +54,6 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a 0 => __DIR__ . '/../..' . '/thinkphp/library/think', 1 => __DIR__ . '/..' . '/topthink/think-queue/src', ), - 'Workerman\\' => - array ( - 0 => __DIR__ . '/..' . '/workerman/workerman', - ), 'Wechat\\' => array ( 0 => __DIR__ . '/..' . '/zoujingli/wechat-php-sdk/Wechat', @@ -74,36 +64,7 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a ), ); - public static $prefixesPsr0 = array ( - 'P' => - array ( - 'PHPQRCode' => - array ( - 0 => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib', - ), - ), - ); - public static $classMap = array ( - 'PHPQRCode' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode.php', - 'PHPQRCode\\Autoloader' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/Autoloader.php', - 'PHPQRCode\\Constants' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/Constants.php', - 'PHPQRCode\\FrameFiller' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/FrameFiller.php', - 'PHPQRCode\\QRbitstream' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRbitstream.php', - 'PHPQRCode\\QRcode' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRcode.php', - 'PHPQRCode\\QRencode' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRencode.php', - 'PHPQRCode\\QRimage' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRimage.php', - 'PHPQRCode\\QRinput' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRinput.php', - 'PHPQRCode\\QRinputItem' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRinputItem.php', - 'PHPQRCode\\QRmask' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRmask.php', - 'PHPQRCode\\QRrawcode' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrawcode.php', - 'PHPQRCode\\QRrs' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrs.php', - 'PHPQRCode\\QRrsItem' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrsItem.php', - 'PHPQRCode\\QRrsblock' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRrsblock.php', - 'PHPQRCode\\QRspec' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRspec.php', - 'PHPQRCode\\QRsplit' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRsplit.php', - 'PHPQRCode\\QRstr' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRstr.php', - 'PHPQRCode\\QRtools' => __DIR__ . '/..' . '/aferrandini/phpqrcode/lib/PHPQRCode/QRtools.php', 'PclZip' => __DIR__ . '/..' . '/pclzip/pclzip/pclzip.lib.php', 'Qiniu\\Auth' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Auth.php', 'Qiniu\\Config' => __DIR__ . '/..' . '/qiniu/php-sdk/src/Qiniu/Config.php', @@ -137,30 +98,6 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a 'Wechat\\WechatScript' => __DIR__ . '/..' . '/zoujingli/wechat-php-sdk/Wechat/WechatScript.php', 'Wechat\\WechatService' => __DIR__ . '/..' . '/zoujingli/wechat-php-sdk/Wechat/WechatService.php', 'Wechat\\WechatUser' => __DIR__ . '/..' . '/zoujingli/wechat-php-sdk/Wechat/WechatUser.php', - 'Workerman\\Autoloader' => __DIR__ . '/..' . '/workerman/workerman/Autoloader.php', - 'Workerman\\Connection\\AsyncTcpConnection' => __DIR__ . '/..' . '/workerman/workerman/Connection/AsyncTcpConnection.php', - 'Workerman\\Connection\\ConnectionInterface' => __DIR__ . '/..' . '/workerman/workerman/Connection/ConnectionInterface.php', - 'Workerman\\Connection\\TcpConnection' => __DIR__ . '/..' . '/workerman/workerman/Connection/TcpConnection.php', - 'Workerman\\Connection\\UdpConnection' => __DIR__ . '/..' . '/workerman/workerman/Connection/UdpConnection.php', - 'Workerman\\Events\\Ev' => __DIR__ . '/..' . '/workerman/workerman/Events/Ev.php', - 'Workerman\\Events\\Event' => __DIR__ . '/..' . '/workerman/workerman/Events/Event.php', - 'Workerman\\Events\\EventInterface' => __DIR__ . '/..' . '/workerman/workerman/Events/EventInterface.php', - 'Workerman\\Events\\Libevent' => __DIR__ . '/..' . '/workerman/workerman/Events/Libevent.php', - 'Workerman\\Events\\React' => __DIR__ . '/..' . '/workerman/workerman/Events/React.php', - 'Workerman\\Events\\React\\ExtEventLoop' => __DIR__ . '/..' . '/workerman/workerman/Events/React/ExtEventLoop.php', - 'Workerman\\Events\\React\\LibEventLoop' => __DIR__ . '/..' . '/workerman/workerman/Events/React/LibEventLoop.php', - 'Workerman\\Events\\React\\StreamSelectLoop' => __DIR__ . '/..' . '/workerman/workerman/Events/React/StreamSelectLoop.php', - 'Workerman\\Events\\Select' => __DIR__ . '/..' . '/workerman/workerman/Events/Select.php', - 'Workerman\\Lib\\Timer' => __DIR__ . '/..' . '/workerman/workerman/Lib/Timer.php', - 'Workerman\\Protocols\\Frame' => __DIR__ . '/..' . '/workerman/workerman/Protocols/Frame.php', - 'Workerman\\Protocols\\Http' => __DIR__ . '/..' . '/workerman/workerman/Protocols/Http.php', - 'Workerman\\Protocols\\HttpCache' => __DIR__ . '/..' . '/workerman/workerman/Protocols/Http.php', - 'Workerman\\Protocols\\ProtocolInterface' => __DIR__ . '/..' . '/workerman/workerman/Protocols/ProtocolInterface.php', - 'Workerman\\Protocols\\Text' => __DIR__ . '/..' . '/workerman/workerman/Protocols/Text.php', - 'Workerman\\Protocols\\Websocket' => __DIR__ . '/..' . '/workerman/workerman/Protocols/Websocket.php', - 'Workerman\\Protocols\\Ws' => __DIR__ . '/..' . '/workerman/workerman/Protocols/Ws.php', - 'Workerman\\WebServer' => __DIR__ . '/..' . '/workerman/workerman/WebServer.php', - 'Workerman\\Worker' => __DIR__ . '/..' . '/workerman/workerman/Worker.php', 'think\\App' => __DIR__ . '/../..' . '/thinkphp/library/think/App.php', 'think\\Build' => __DIR__ . '/../..' . '/thinkphp/library/think/Build.php', 'think\\Cache' => __DIR__ . '/../..' . '/thinkphp/library/think/Cache.php', @@ -331,16 +268,14 @@ class ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a 'think\\template\\taglib\\Cx' => __DIR__ . '/../..' . '/thinkphp/library/think/template/taglib/Cx.php', 'think\\view\\driver\\Php' => __DIR__ . '/../..' . '/thinkphp/library/think/view/driver/Php.php', 'think\\view\\driver\\Think' => __DIR__ . '/../..' . '/thinkphp/library/think/view/driver/Think.php', - 'think\\worker\\Server' => __DIR__ . '/..' . '/topthink/think-worker/src/Server.php', ); public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a::$prefixesPsr0; - $loader->classMap = ComposerStaticInit5a34d2cf88418439a1e7fb45047b8e5a::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitbe5fdc6ce25a854de4cbf5279dee37ce::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitbe5fdc6ce25a854de4cbf5279dee37ce::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitbe5fdc6ce25a854de4cbf5279dee37ce::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index f34be4848..0d0403aff 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -170,52 +170,6 @@ "storage" ] }, - { - "name": "aferrandini/phpqrcode", - "version": "1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/aferrandini/PHPQRCode.git", - "reference": "3c1c0454d43710ab5bbe19a51ad4cb41c22e3d46" - }, - "dist": { - "type": "zip", - "url": "https://packagist.phpcomposer.com/files/aferrandini/PHPQRCode/3c1c0454d43710ab5bbe19a51ad4cb41c22e3d46.zip", - "reference": "3c1c0454d43710ab5bbe19a51ad4cb41c22e3d46", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "time": "2013-07-08 09:39:08", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "PHPQRCode": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ariel Ferrandini", - "email": "arielferrandini@gmail.com", - "homepage": "http://www.ferrandini.com/", - "role": "Developer" - } - ], - "description": "PHPQRCode porting and changed for PHP 5.3 compatibility", - "homepage": "https://github.com/aferrandini/PHPQRCode", - "keywords": [ - "barcode", - "php", - "qrcode" - ] - }, { "name": "topthink/framework", "version": "v5.0.6", @@ -343,93 +297,6 @@ ], "description": "mongodb driver for thinkphp5" }, - { - "name": "workerman/workerman", - "version": "v3.3.8", - "version_normalized": "3.3.8.0", - "source": { - "type": "git", - "url": "https://github.com/walkor/Workerman.git", - "reference": "bbcfd9169cf6acd9d9866e17ed2f2189ee6d7f91" - }, - "dist": { - "type": "zip", - "url": "https://packagist.phpcomposer.com/files/walkor/Workerman/bbcfd9169cf6acd9d9866e17ed2f2189ee6d7f91.zip", - "reference": "bbcfd9169cf6acd9d9866e17ed2f2189ee6d7f91", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "suggest": { - "ext-event": "For better performance." - }, - "time": "2017-02-09 08:07:55", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Workerman\\": "./" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "walkor", - "email": "walkor@workerman.net", - "homepage": "http://www.workerman.net", - "role": "Developer" - } - ], - "description": "An asynchronous event driven PHP framework for easily building fast, scalable network applications.", - "homepage": "http://www.workerman.net", - "keywords": [ - "asynchronous", - "event-loop" - ] - }, - { - "name": "topthink/think-worker", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", - "source": { - "type": "git", - "url": "https://github.com/top-think/think-worker.git", - "reference": "b609ff5e38dbb7194aab027d2b2c6b31a7ed1bd1" - }, - "dist": { - "type": "zip", - "url": "https://packagist.phpcomposer.com/files/top-think/think-worker/b609ff5e38dbb7194aab027d2b2c6b31a7ed1bd1.zip", - "reference": "b609ff5e38dbb7194aab027d2b2c6b31a7ed1bd1", - "shasum": "" - }, - "require": { - "workerman/workerman": "^3.3.0" - }, - "time": "2016-10-08 06:07:03", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "think\\worker\\": "src" - }, - "files": [] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "liu21st", - "email": "liu21st@gmail.com" - } - ], - "description": "workerman extend for thinkphp5" - }, { "name": "topthink/think-helper", "version": "v1.0.5", diff --git a/vendor/topthink/think-worker/LICENSE b/vendor/topthink/think-worker/LICENSE deleted file mode 100644 index 8dada3eda..000000000 --- a/vendor/topthink/think-worker/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/topthink/think-worker/README.md b/vendor/topthink/think-worker/README.md deleted file mode 100644 index 4ac581604..000000000 --- a/vendor/topthink/think-worker/README.md +++ /dev/null @@ -1,53 +0,0 @@ -ThinkPHP 5.0 Workerman 扩展 -=============== - -## 安装 -composer require topthink/think-worker - -## 使用方法 -首先创建控制器类并继承 think\worker\Server,然åŽè®¾ç½®å±žæ€§å’Œæ·»åŠ å›žè°ƒæ–¹æ³• - -~~~ -namespace app\index\controller; - -use think\worker\Server; - -class Worker extends Server -{ - protected $socket = 'http://0.0.0.0:2346'; - - public function onMessage($connection,$data) - { - $connection->send(json_encode($data)); - } -} -~~~ -支æŒworkerman所有的回调方法定义(回调方法必须是public类型) - - -在应用根目录增加入å£æ–‡ä»¶ server.php - -~~~ -#!/usr/bin/env php - -// +---------------------------------------------------------------------- - -namespace think\worker; - -use Workerman\Worker; - -/** - * Worker控制器扩展类 - */ -abstract class Server -{ - protected $worker; - protected $socket = ''; - protected $protocol = 'http'; - protected $host = '0.0.0.0'; - protected $port = '2346'; - protected $processes = 4; - - /** - * 架构函数 - * @access public - */ - public function __construct() - { - // 实例化 Websocket æœåŠ¡ - $this->worker = new Worker($this->socket ?: $this->protocol . '://' . $this->host . ':' . $this->port); - // 设置进程数 - $this->worker->count = $this->processes; - // åˆå§‹åŒ– - $this->init(); - - // 设置回调 - foreach (['onWorkerStart', 'onConnect', 'onMessage', 'onClose', 'onError', 'onBufferFull', 'onBufferDrain', 'onWorkerStop', 'onWorkerReload'] as $event) { - if (method_exists($this, $event)) { - $this->worker->$event = [$this, $event]; - } - } - // Run worker - Worker::runAll(); - } - - protected function init() - { - } - -} diff --git a/vendor/workerman/workerman/.gitignore b/vendor/workerman/workerman/.gitignore deleted file mode 100644 index 9b668caef..000000000 --- a/vendor/workerman/workerman/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -logs -.buildpath -.project -.settings -.idea \ No newline at end of file diff --git a/vendor/workerman/workerman/Autoloader.php b/vendor/workerman/workerman/Autoloader.php deleted file mode 100644 index 45773c914..000000000 --- a/vendor/workerman/workerman/Autoloader.php +++ /dev/null @@ -1,69 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman; - -/** - * Autoload. - */ -class Autoloader -{ - /** - * Autoload root path. - * - * @var string - */ - protected static $_autoloadRootPath = ''; - - /** - * Set autoload root path. - * - * @param string $root_path - * @return void - */ - public static function setRootPath($root_path) - { - self::$_autoloadRootPath = $root_path; - } - - /** - * Load files by namespace. - * - * @param string $name - * @return boolean - */ - public static function loadByNamespace($name) - { - $class_path = str_replace('\\', DIRECTORY_SEPARATOR, $name); - if (strpos($name, 'Workerman\\') === 0) { - $class_file = __DIR__ . substr($class_path, strlen('Workerman')) . '.php'; - } else { - if (self::$_autoloadRootPath) { - $class_file = self::$_autoloadRootPath . DIRECTORY_SEPARATOR . $class_path . '.php'; - } - if (empty($class_file) || !is_file($class_file)) { - $class_file = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . "$class_path.php"; - } - } - - if (is_file($class_file)) { - require_once($class_file); - if (class_exists($name, false)) { - return true; - } - } - return false; - } -} - -spl_autoload_register('\Workerman\Autoloader::loadByNamespace'); \ No newline at end of file diff --git a/vendor/workerman/workerman/Connection/AsyncTcpConnection.php b/vendor/workerman/workerman/Connection/AsyncTcpConnection.php deleted file mode 100644 index 116aa6924..000000000 --- a/vendor/workerman/workerman/Connection/AsyncTcpConnection.php +++ /dev/null @@ -1,316 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Connection; - -use Workerman\Events\EventInterface; -use Workerman\Lib\Timer; -use Workerman\Worker; -use Exception; - -/** - * AsyncTcpConnection. - */ -class AsyncTcpConnection extends TcpConnection -{ - /** - * Emitted when socket connection is successfully established. - * - * @var callback - */ - public $onConnect = null; - - /** - * Transport layer protocol. - * - * @var string - */ - public $transport = 'tcp'; - - /** - * Status. - * - * @var int - */ - protected $_status = self::STATUS_INITIAL; - - /** - * Remote host. - * - * @var string - */ - protected $_remoteHost = ''; - - /** - * Connect start time. - * - * @var string - */ - protected $_connectStartTime = 0; - - /** - * Remote URI. - * - * @var string - */ - protected $_remoteURI = ''; - - /** - * Context option. - * - * @var resource - */ - protected $_contextOption = null; - - /** - * Reconnect timer. - * - * @var int - */ - protected $_reconnectTimer = null; - - - /** - * PHP built-in protocols. - * - * @var array - */ - protected static $_builtinTransports = array( - 'tcp' => 'tcp', - 'udp' => 'udp', - 'unix' => 'unix', - 'ssl' => 'ssl', - 'sslv2' => 'sslv2', - 'sslv3' => 'sslv3', - 'tls' => 'tls' - ); - - /** - * Construct. - * - * @param string $remote_address - * @param array $context_option - * @throws Exception - */ - public function __construct($remote_address, $context_option = null) - { - $address_info = parse_url($remote_address); - if (!$address_info) { - echo new \Exception('bad remote_address'); - $this->_remoteAddress = $remote_address; - } else { - if (!isset($address_info['port'])) { - $address_info['port'] = 80; - } - if (!isset($address_info['path'])) { - $address_info['path'] = '/'; - } - if (!isset($address_info['query'])) { - $address_info['query'] = ''; - } else { - $address_info['query'] = '?' . $address_info['query']; - } - $this->_remoteAddress = "{$address_info['host']}:{$address_info['port']}"; - $this->_remoteHost = $address_info['host']; - $this->_remoteURI = "{$address_info['path']}{$address_info['query']}"; - $scheme = isset($address_info['scheme']) ? $address_info['scheme'] : 'tcp'; - } - - $this->id = self::$_idRecorder++; - // Check application layer protocol class. - if (!isset(self::$_builtinTransports[$scheme])) { - $scheme = ucfirst($scheme); - $this->protocol = '\\Protocols\\' . $scheme; - if (!class_exists($this->protocol)) { - $this->protocol = "\\Workerman\\Protocols\\$scheme"; - if (!class_exists($this->protocol)) { - throw new Exception("class \\Protocols\\$scheme not exist"); - } - } - } else { - $this->transport = self::$_builtinTransports[$scheme]; - } - - // For statistics. - self::$statistics['connection_count']++; - $this->maxSendBufferSize = self::$defaultMaxSendBufferSize; - $this->_contextOption = $context_option; - } - - /** - * Do connect. - * - * @return void - */ - public function connect() - { - if ($this->_status !== self::STATUS_INITIAL && $this->_status !== self::STATUS_CLOSING && - $this->_status !== self::STATUS_CLOSED) { - return; - } - $this->_status = self::STATUS_CONNECTING; - $this->_connectStartTime = microtime(true); - // Open socket connection asynchronously. - if ($this->_contextOption) { - $context = stream_context_create($this->_contextOption); - $this->_socket = stream_socket_client("{$this->transport}://{$this->_remoteAddress}", $errno, $errstr, 0, - STREAM_CLIENT_ASYNC_CONNECT, $context); - } else { - $this->_socket = stream_socket_client("{$this->transport}://{$this->_remoteAddress}", $errno, $errstr, 0, - STREAM_CLIENT_ASYNC_CONNECT); - } - // If failed attempt to emit onError callback. - if (!$this->_socket) { - $this->emitError(WORKERMAN_CONNECT_FAIL, $errstr); - if ($this->_status === self::STATUS_CLOSING) { - $this->destroy(); - } - if ($this->_status === self::STATUS_CLOSED) { - $this->onConnect = null; - } - return; - } - // Add socket to global event loop waiting connection is successfully established or faild. - Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'checkConnection')); - } - - /** - * Reconnect. - * - * @param int $after - * @return void - */ - public function reConnect($after = 0) { - $this->_status = self::STATUS_INITIAL; - if ($this->_reconnectTimer) { - Timer::del($this->_reconnectTimer); - } - if ($after > 0) { - $this->_reconnectTimer = Timer::add($after, array($this, 'connect'), null, false); - return; - } - return $this->connect(); - } - - /** - * Get remote address. - * - * @return string - */ - public function getRemoteHost() - { - return $this->_remoteHost; - } - - /** - * Get remote URI. - * - * @return string - */ - public function getRemoteURI() - { - return $this->_remoteURI; - } - - /** - * Try to emit onError callback. - * - * @param int $code - * @param string $msg - * @return void - */ - protected function emitError($code, $msg) - { - $this->_status = self::STATUS_CLOSING; - if ($this->onError) { - try { - call_user_func($this->onError, $this, $code, $msg); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - } - - /** - * Check connection is successfully established or faild. - * - * @param resource $socket - * @return void - */ - public function checkConnection($socket) - { - // Check socket state. - if ($address = stream_socket_get_name($socket, true)) { - // Remove write listener. - Worker::$globalEvent->del($socket, EventInterface::EV_WRITE); - // Nonblocking. - stream_set_blocking($socket, 0); - // Compatible with hhvm - if (function_exists('stream_set_read_buffer')) { - stream_set_read_buffer($socket, 0); - } - // Try to open keepalive for tcp and disable Nagle algorithm. - if (function_exists('socket_import_stream') && $this->transport === 'tcp') { - $raw_socket = socket_import_stream($socket); - socket_set_option($raw_socket, SOL_SOCKET, SO_KEEPALIVE, 1); - socket_set_option($raw_socket, SOL_TCP, TCP_NODELAY, 1); - } - // Register a listener waiting read event. - Worker::$globalEvent->add($socket, EventInterface::EV_READ, array($this, 'baseRead')); - // There are some data waiting to send. - if ($this->_sendBuffer) { - Worker::$globalEvent->add($socket, EventInterface::EV_WRITE, array($this, 'baseWrite')); - } - $this->_status = self::STATUS_ESTABLISH; - $this->_remoteAddress = $address; - - // Try to emit onConnect callback. - if ($this->onConnect) { - try { - call_user_func($this->onConnect, $this); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - // Try to emit protocol::onConnect - if (method_exists($this->protocol, 'onConnect')) { - try { - call_user_func(array($this->protocol, 'onConnect'), $this); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - } else { - // Connection failed. - $this->emitError(WORKERMAN_CONNECT_FAIL, 'connect ' . $this->_remoteAddress . ' fail after ' . round(microtime(true) - $this->_connectStartTime, 4) . ' seconds'); - if ($this->_status === self::STATUS_CLOSING) { - $this->destroy(); - } - if ($this->_status === self::STATUS_CLOSED) { - $this->onConnect = null; - } - } - } -} diff --git a/vendor/workerman/workerman/Connection/ConnectionInterface.php b/vendor/workerman/workerman/Connection/ConnectionInterface.php deleted file mode 100644 index b39e5ae9b..000000000 --- a/vendor/workerman/workerman/Connection/ConnectionInterface.php +++ /dev/null @@ -1,83 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Connection; - -/** - * ConnectionInterface. - */ -abstract class ConnectionInterface -{ - /** - * Statistics for status command. - * - * @var array - */ - public static $statistics = array( - 'connection_count' => 0, - 'total_request' => 0, - 'throw_exception' => 0, - 'send_fail' => 0, - ); - - /** - * Emitted when data is received. - * - * @var callback - */ - public $onMessage = null; - - /** - * Emitted when the other end of the socket sends a FIN packet. - * - * @var callback - */ - public $onClose = null; - - /** - * Emitted when an error occurs with connection. - * - * @var callback - */ - public $onError = null; - - /** - * Sends data on the connection. - * - * @param string $send_buffer - * @return void|boolean - */ - abstract public function send($send_buffer); - - /** - * Get remote IP. - * - * @return string - */ - abstract public function getRemoteIp(); - - /** - * Get remote port. - * - * @return int - */ - abstract public function getRemotePort(); - - /** - * Close connection. - * - * @param $data - * @return void - */ - abstract public function close($data = null); -} diff --git a/vendor/workerman/workerman/Connection/TcpConnection.php b/vendor/workerman/workerman/Connection/TcpConnection.php deleted file mode 100644 index 0083e4690..000000000 --- a/vendor/workerman/workerman/Connection/TcpConnection.php +++ /dev/null @@ -1,719 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Connection; - -use Workerman\Events\EventInterface; -use Workerman\Worker; -use Exception; - -/** - * TcpConnection. - */ -class TcpConnection extends ConnectionInterface -{ - /** - * Read buffer size. - * - * @var int - */ - const READ_BUFFER_SIZE = 65535; - - /** - * Status initial. - * - * @var int - */ - const STATUS_INITIAL = 0; - - /** - * Status connecting. - * - * @var int - */ - const STATUS_CONNECTING = 1; - - /** - * Status connection established. - * - * @var int - */ - const STATUS_ESTABLISH = 2; - - /** - * Status closing. - * - * @var int - */ - const STATUS_CLOSING = 4; - - /** - * Status closed. - * - * @var int - */ - const STATUS_CLOSED = 8; - - /** - * Emitted when data is received. - * - * @var callback - */ - public $onMessage = null; - - /** - * Emitted when the other end of the socket sends a FIN packet. - * - * @var callback - */ - public $onClose = null; - - /** - * Emitted when an error occurs with connection. - * - * @var callback - */ - public $onError = null; - - /** - * Emitted when the send buffer becomes full. - * - * @var callback - */ - public $onBufferFull = null; - - /** - * Emitted when the send buffer becomes empty. - * - * @var callback - */ - public $onBufferDrain = null; - - /** - * Application layer protocol. - * The format is like this Workerman\\Protocols\\Http. - * - * @var \Workerman\Protocols\ProtocolInterface - */ - public $protocol = null; - - /** - * Transport (tcp/udp/unix/ssl). - * - * @var string - */ - public $transport = 'tcp'; - - /** - * Which worker belong to. - * - * @var Worker - */ - public $worker = null; - - /** - * Connection->id. - * - * @var int - */ - public $id = 0; - - /** - * A copy of $worker->id which used to clean up the connection in worker->connections - * - * @var int - */ - protected $_id = 0; - - /** - * Sets the maximum send buffer size for the current connection. - * OnBufferFull callback will be emited When the send buffer is full. - * - * @var int - */ - public $maxSendBufferSize = 1048576; - - /** - * Default send buffer size. - * - * @var int - */ - public static $defaultMaxSendBufferSize = 1048576; - - /** - * Maximum acceptable packet size. - * - * @var int - */ - public static $maxPackageSize = 10485760; - - /** - * Id recorder. - * - * @var int - */ - protected static $_idRecorder = 1; - - /** - * Socket - * - * @var resource - */ - protected $_socket = null; - - /** - * Send buffer. - * - * @var string - */ - protected $_sendBuffer = ''; - - /** - * Receive buffer. - * - * @var string - */ - protected $_recvBuffer = ''; - - /** - * Current package length. - * - * @var int - */ - protected $_currentPackageLength = 0; - - /** - * Connection status. - * - * @var int - */ - protected $_status = self::STATUS_ESTABLISH; - - /** - * Remote address. - * - * @var string - */ - protected $_remoteAddress = ''; - - /** - * Is paused. - * - * @var bool - */ - protected $_isPaused = false; - - /** - * SSL handshake completed or not - * - * @var bool - */ - protected $_sslHandshakeCompleted = false; - - /** - * Construct. - * - * @param resource $socket - * @param string $remote_address - */ - public function __construct($socket, $remote_address = '') - { - self::$statistics['connection_count']++; - $this->id = $this->_id = self::$_idRecorder++; - $this->_socket = $socket; - stream_set_blocking($this->_socket, 0); - // Compatible with hhvm - if (function_exists('stream_set_read_buffer')) { - stream_set_read_buffer($this->_socket, 0); - } - Worker::$globalEvent->add($this->_socket, EventInterface::EV_READ, array($this, 'baseRead')); - $this->maxSendBufferSize = self::$defaultMaxSendBufferSize; - $this->_remoteAddress = $remote_address; - } - - /** - * Sends data on the connection. - * - * @param string $send_buffer - * @param bool $raw - * @return void|bool|null - */ - public function send($send_buffer, $raw = false) - { - if ($this->_status === self::STATUS_CLOSING || $this->_status === self::STATUS_CLOSED) { - return false; - } - - // Try to call protocol::encode($send_buffer) before sending. - if (false === $raw && $this->protocol) { - $parser = $this->protocol; - $send_buffer = $parser::encode($send_buffer, $this); - if ($send_buffer === '') { - return null; - } - } - - if ($this->_status !== self::STATUS_ESTABLISH || - ($this->transport === 'ssl' && $this->_sslHandshakeCompleted !== true) - ) { - if ($this->_sendBuffer) { - if ($this->bufferIsFull()) { - self::$statistics['send_fail']++; - return false; - } - } - $this->_sendBuffer .= $send_buffer; - $this->checkBufferWillFull(); - return null; - } - - - // Attempt to send data directly. - if ($this->_sendBuffer === '') { - $len = @fwrite($this->_socket, $send_buffer); - // send successful. - if ($len === strlen($send_buffer)) { - return true; - } - // Send only part of the data. - if ($len > 0) { - $this->_sendBuffer = substr($send_buffer, $len); - } else { - // Connection closed? - if (!is_resource($this->_socket) || feof($this->_socket)) { - self::$statistics['send_fail']++; - if ($this->onError) { - try { - call_user_func($this->onError, $this, WORKERMAN_SEND_FAIL, 'client closed'); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - $this->destroy(); - return false; - } - $this->_sendBuffer = $send_buffer; - } - Worker::$globalEvent->add($this->_socket, EventInterface::EV_WRITE, array($this, 'baseWrite')); - // Check if the send buffer will be full. - $this->checkBufferWillFull(); - return null; - } else { - if ($this->bufferIsFull()) { - self::$statistics['send_fail']++; - return false; - } - - $this->_sendBuffer .= $send_buffer; - // Check if the send buffer is full. - $this->checkBufferWillFull(); - } - } - - /** - * Get remote IP. - * - * @return string - */ - public function getRemoteIp() - { - $pos = strrpos($this->_remoteAddress, ':'); - if ($pos) { - return trim(substr($this->_remoteAddress, 0, $pos), '[]'); - } - return ''; - } - - /** - * Get remote port. - * - * @return int - */ - public function getRemotePort() - { - if ($this->_remoteAddress) { - return (int)substr(strrchr($this->_remoteAddress, ':'), 1); - } - return 0; - } - - /** - * Pauses the reading of data. That is onMessage will not be emitted. Useful to throttle back an upload. - * - * @return void - */ - public function pauseRecv() - { - Worker::$globalEvent->del($this->_socket, EventInterface::EV_READ); - $this->_isPaused = true; - } - - /** - * Resumes reading after a call to pauseRecv. - * - * @return void - */ - public function resumeRecv() - { - if ($this->_isPaused === true) { - Worker::$globalEvent->add($this->_socket, EventInterface::EV_READ, array($this, 'baseRead')); - $this->_isPaused = false; - $this->baseRead($this->_socket, false); - } - } - - /** - * Base read handler. - * - * @param resource $socket - * @param bool $check_eof - * @return void - */ - public function baseRead($socket, $check_eof = true) - { - // SSL handshake. - if ($this->transport === 'ssl' && $this->_sslHandshakeCompleted !== true) { - stream_set_blocking($socket, true); - stream_set_timeout($socket, 1); - $ret = stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_SSLv23_SERVER); - if(!$ret) { - echo new \Exception('ssl handshake fail, stream_socket_enable_crypto return ' . var_export($ret, true)); - return $this->destroy(); - } - if (isset($this->onSslHandshake)) { - try { - call_user_func($this->onSslHandshake, $this); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - $this->_sslHandshakeCompleted = true; - if ($this->_sendBuffer) { - Worker::$globalEvent->add($socket, EventInterface::EV_WRITE, array($this, 'baseWrite')); - } - return; - } - - $buffer = fread($socket, self::READ_BUFFER_SIZE); - - // Check connection closed. - if ($buffer === '' || $buffer === false) { - if ($check_eof && (feof($socket) || !is_resource($socket) || $buffer === false)) { - $this->destroy(); - return; - } - } else { - $this->_recvBuffer .= $buffer; - } - - // If the application layer protocol has been set up. - if ($this->protocol) { - $parser = $this->protocol; - while ($this->_recvBuffer !== '' && !$this->_isPaused) { - // The current packet length is known. - if ($this->_currentPackageLength) { - // Data is not enough for a package. - if ($this->_currentPackageLength > strlen($this->_recvBuffer)) { - break; - } - } else { - // Get current package length. - $this->_currentPackageLength = $parser::input($this->_recvBuffer, $this); - // The packet length is unknown. - if ($this->_currentPackageLength === 0) { - break; - } elseif ($this->_currentPackageLength > 0 && $this->_currentPackageLength <= self::$maxPackageSize) { - // Data is not enough for a package. - if ($this->_currentPackageLength > strlen($this->_recvBuffer)) { - break; - } - } // Wrong package. - else { - echo 'error package. package_length=' . var_export($this->_currentPackageLength, true); - $this->destroy(); - return; - } - } - - // The data is enough for a packet. - self::$statistics['total_request']++; - // The current packet length is equal to the length of the buffer. - if (strlen($this->_recvBuffer) === $this->_currentPackageLength) { - $one_request_buffer = $this->_recvBuffer; - $this->_recvBuffer = ''; - } else { - // Get a full package from the buffer. - $one_request_buffer = substr($this->_recvBuffer, 0, $this->_currentPackageLength); - // Remove the current package from the receive buffer. - $this->_recvBuffer = substr($this->_recvBuffer, $this->_currentPackageLength); - } - // Reset the current packet length to 0. - $this->_currentPackageLength = 0; - if (!$this->onMessage) { - continue; - } - try { - // Decode request buffer before Emitting onMessage callback. - call_user_func($this->onMessage, $this, $parser::decode($one_request_buffer, $this)); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - return; - } - - if ($this->_recvBuffer === '' || $this->_isPaused) { - return; - } - - // Applications protocol is not set. - self::$statistics['total_request']++; - if (!$this->onMessage) { - $this->_recvBuffer = ''; - return; - } - try { - call_user_func($this->onMessage, $this, $this->_recvBuffer); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - // Clean receive buffer. - $this->_recvBuffer = ''; - } - - /** - * Base write handler. - * - * @return void|bool - */ - public function baseWrite() - { - $len = @fwrite($this->_socket, $this->_sendBuffer); - if ($len === strlen($this->_sendBuffer)) { - Worker::$globalEvent->del($this->_socket, EventInterface::EV_WRITE); - $this->_sendBuffer = ''; - // Try to emit onBufferDrain callback when the send buffer becomes empty. - if ($this->onBufferDrain) { - try { - call_user_func($this->onBufferDrain, $this); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - if ($this->_status === self::STATUS_CLOSING) { - $this->destroy(); - } - return true; - } - if ($len > 0) { - $this->_sendBuffer = substr($this->_sendBuffer, $len); - } else { - self::$statistics['send_fail']++; - $this->destroy(); - } - } - - /** - * This method pulls all the data out of a readable stream, and writes it to the supplied destination. - * - * @param TcpConnection $dest - * @return void - */ - public function pipe($dest) - { - $source = $this; - $this->onMessage = function ($source, $data) use ($dest) { - $dest->send($data); - }; - $this->onClose = function ($source) use ($dest) { - $dest->destroy(); - }; - $dest->onBufferFull = function ($dest) use ($source) { - $source->pauseRecv(); - }; - $dest->onBufferDrain = function ($dest) use ($source) { - $source->resumeRecv(); - }; - } - - /** - * Remove $length of data from receive buffer. - * - * @param int $length - * @return void - */ - public function consumeRecvBuffer($length) - { - $this->_recvBuffer = substr($this->_recvBuffer, $length); - } - - /** - * Close connection. - * - * @param mixed $data - * @param bool $raw - * @return void - */ - public function close($data = null, $raw = false) - { - if ($this->_status === self::STATUS_CLOSING || $this->_status === self::STATUS_CLOSED) { - return; - } else { - if ($data !== null) { - $this->send($data, $raw); - } - $this->_status = self::STATUS_CLOSING; - } - if ($this->_sendBuffer === '') { - $this->destroy(); - } - } - - /** - * Get the real socket. - * - * @return resource - */ - public function getSocket() - { - return $this->_socket; - } - - /** - * Check whether the send buffer will be full. - * - * @return void - */ - protected function checkBufferWillFull() - { - if ($this->maxSendBufferSize <= strlen($this->_sendBuffer)) { - if ($this->onBufferFull) { - try { - call_user_func($this->onBufferFull, $this); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - } - } - - /** - * Whether send buffer is full. - * - * @return bool - */ - protected function bufferIsFull() - { - // Buffer has been marked as full but still has data to send then the packet is discarded. - if ($this->maxSendBufferSize <= strlen($this->_sendBuffer)) { - if ($this->onError) { - try { - call_user_func($this->onError, $this, WORKERMAN_SEND_FAIL, 'send buffer full and drop package'); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - return true; - } - return false; - } - - /** - * Destroy connection. - * - * @return void - */ - public function destroy() - { - // Avoid repeated calls. - if ($this->_status === self::STATUS_CLOSED) { - return; - } - // Remove event listener. - Worker::$globalEvent->del($this->_socket, EventInterface::EV_READ); - Worker::$globalEvent->del($this->_socket, EventInterface::EV_WRITE); - // Close socket. - @fclose($this->_socket); - // Remove from worker->connections. - if ($this->worker) { - unset($this->worker->connections[$this->_id]); - } - $this->_status = self::STATUS_CLOSED; - // Try to emit onClose callback. - if ($this->onClose) { - try { - call_user_func($this->onClose, $this); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - // Try to emit protocol::onClose - if (method_exists($this->protocol, 'onClose')) { - try { - call_user_func(array($this->protocol, 'onClose'), $this); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - if ($this->_status === self::STATUS_CLOSED) { - // Cleaning up the callback to avoid memory leaks. - $this->onMessage = $this->onClose = $this->onError = $this->onBufferFull = $this->onBufferDrain = null; - } - } - - /** - * Destruct. - * - * @return void - */ - public function __destruct() - { - self::$statistics['connection_count']--; - } -} diff --git a/vendor/workerman/workerman/Connection/UdpConnection.php b/vendor/workerman/workerman/Connection/UdpConnection.php deleted file mode 100644 index e4cd2fee4..000000000 --- a/vendor/workerman/workerman/Connection/UdpConnection.php +++ /dev/null @@ -1,115 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Connection; - -/** - * UdpConnection. - */ -class UdpConnection extends ConnectionInterface -{ - /** - * Application layer protocol. - * The format is like this Workerman\\Protocols\\Http. - * - * @var \Workerman\Protocols\ProtocolInterface - */ - public $protocol = null; - - /** - * Udp socket. - * - * @var resource - */ - protected $_socket = null; - - /** - * Remote address. - * - * @var string - */ - protected $_remoteAddress = ''; - - /** - * Construct. - * - * @param resource $socket - * @param string $remote_address - */ - public function __construct($socket, $remote_address) - { - $this->_socket = $socket; - $this->_remoteAddress = $remote_address; - } - - /** - * Sends data on the connection. - * - * @param string $send_buffer - * @param bool $raw - * @return void|boolean - */ - public function send($send_buffer, $raw = false) - { - if (false === $raw && $this->protocol) { - $parser = $this->protocol; - $send_buffer = $parser::encode($send_buffer, $this); - if ($send_buffer === '') { - return null; - } - } - return strlen($send_buffer) === stream_socket_sendto($this->_socket, $send_buffer, 0, $this->_remoteAddress); - } - - /** - * Get remote IP. - * - * @return string - */ - public function getRemoteIp() - { - $pos = strrpos($this->_remoteAddress, ':'); - if ($pos) { - return trim(substr($this->_remoteAddress, 0, $pos), '[]'); - } - return ''; - } - - /** - * Get remote port. - * - * @return int - */ - public function getRemotePort() - { - if ($this->_remoteAddress) { - return (int)substr(strrchr($this->_remoteAddress, ':'), 1); - } - return 0; - } - - /** - * Close connection. - * - * @param mixed $data - * @param bool $raw - * @return bool - */ - public function close($data = null, $raw = false) - { - if ($data !== null) { - $this->send($data, $raw); - } - return true; - } -} diff --git a/vendor/workerman/workerman/Events/Ev.php b/vendor/workerman/workerman/Events/Ev.php deleted file mode 100644 index acc1a3613..000000000 --- a/vendor/workerman/workerman/Events/Ev.php +++ /dev/null @@ -1,173 +0,0 @@ - - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events; - -use Workerman\Worker; - -/** - * ev eventloop - */ -class Ev implements EventInterface -{ - /** - * All listeners for read/write event. - * - * @var array - */ - protected $_allEvents = array(); - - /** - * Event listeners of signal. - * - * @var array - */ - protected $_eventSignal = array(); - - /** - * All timer event listeners. - * [func, args, event, flag, time_interval] - * - * @var array - */ - protected $_eventTimer = array(); - - /** - * Timer id. - * - * @var int - */ - protected static $_timerId = 1; - - /** - * Add a timer. - * {@inheritdoc} - */ - public function add($fd, $flag, $func, $args = null) - { - $callback = function ($event, $socket) use ($fd, $func) { - try { - call_user_func($func, $fd); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - }; - - switch ($flag) { - case self::EV_SIGNAL: - $event = new \EvSignal($fd, $callback); - $this->_eventSignal[$fd] = $event; - return true; - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - $repeat = $flag == self::EV_TIMER_ONCE ? 0 : $fd; - $param = array($func, (array)$args, $flag, $fd, self::$_timerId); - $event = new \EvTimer($fd, $repeat, array($this, 'timerCallback'), $param); - $this->_eventTimer[self::$_timerId] = $event; - return self::$_timerId++; - default : - $fd_key = (int)$fd; - $real_flag = $flag === self::EV_READ ? \Ev::READ : \Ev::WRITE; - $event = new \EvIo($fd, $real_flag, $callback); - $this->_allEvents[$fd_key][$flag] = $event; - return true; - } - - } - - /** - * Remove a timer. - * {@inheritdoc} - */ - public function del($fd, $flag) - { - switch ($flag) { - case self::EV_READ: - case self::EV_WRITE: - $fd_key = (int)$fd; - if (isset($this->_allEvents[$fd_key][$flag])) { - $this->_allEvents[$fd_key][$flag]->stop(); - unset($this->_allEvents[$fd_key][$flag]); - } - if (empty($this->_allEvents[$fd_key])) { - unset($this->_allEvents[$fd_key]); - } - break; - case self::EV_SIGNAL: - $fd_key = (int)$fd; - if (isset($this->_eventSignal[$fd_key])) { - $this->_allEvents[$fd_key][$flag]->stop(); - unset($this->_eventSignal[$fd_key]); - } - break; - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - if (isset($this->_eventTimer[$fd])) { - $this->_eventTimer[$fd]->stop(); - unset($this->_eventTimer[$fd]); - } - break; - } - return true; - } - - /** - * Timer callback. - * - * @param \EvWatcher $event - */ - public function timerCallback($event) - { - $param = $event->data; - $timer_id = $param[4]; - if ($param[2] === self::EV_TIMER_ONCE) { - $this->_eventTimer[$timer_id]->stop(); - unset($this->_eventTimer[$timer_id]); - } - try { - call_user_func_array($param[0], $param[1]); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - - /** - * Remove all timers. - * - * @return void - */ - public function clearAllTimer() - { - foreach ($this->_eventTimer as $event) { - $event->stop(); - } - $this->_eventTimer = array(); - } - - /** - * Main loop. - * - * @see EventInterface::loop() - */ - public function loop() - { - \Ev::run(); - } -} diff --git a/vendor/workerman/workerman/Events/Event.php b/vendor/workerman/workerman/Events/Event.php deleted file mode 100644 index 2d85aafee..000000000 --- a/vendor/workerman/workerman/Events/Event.php +++ /dev/null @@ -1,188 +0,0 @@ - - * @copyright 有个鬼<42765633@qq.com> - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events; - -use Workerman\Worker; - -/** - * libevent eventloop - */ -class Event implements EventInterface -{ - /** - * Event base. - * @var object - */ - protected $_eventBase = null; - - /** - * All listeners for read/write event. - * @var array - */ - protected $_allEvents = array(); - - /** - * Event listeners of signal. - * @var array - */ - protected $_eventSignal = array(); - - /** - * All timer event listeners. - * [func, args, event, flag, time_interval] - * @var array - */ - protected $_eventTimer = array(); - - /** - * Timer id. - * @var int - */ - protected static $_timerId = 1; - - /** - * construct - * @return void - */ - public function __construct() - { - $this->_eventBase = new \EventBase(); - } - - /** - * @see EventInterface::add() - */ - public function add($fd, $flag, $func, $args=array()) - { - switch ($flag) { - case self::EV_SIGNAL: - - $fd_key = (int)$fd; - $event = \Event::signal($this->_eventBase, $fd, $func); - if (!$event||!$event->add()) { - return false; - } - $this->_eventSignal[$fd_key] = $event; - return true; - - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - - $param = array($func, (array)$args, $flag, $fd, self::$_timerId); - $event = new \Event($this->_eventBase, -1, \Event::TIMEOUT|\Event::PERSIST, array($this, "timerCallback"), $param); - if (!$event||!$event->addTimer($fd)) { - return false; - } - $this->_eventTimer[self::$_timerId] = $event; - return self::$_timerId++; - - default : - $fd_key = (int)$fd; - $real_flag = $flag === self::EV_READ ? \Event::READ | \Event::PERSIST : \Event::WRITE | \Event::PERSIST; - $event = new \Event($this->_eventBase, $fd, $real_flag, $func, $fd); - if (!$event||!$event->add()) { - return false; - } - $this->_allEvents[$fd_key][$flag] = $event; - return true; - } - } - - /** - * @see Events\EventInterface::del() - */ - public function del($fd, $flag) - { - switch ($flag) { - - case self::EV_READ: - case self::EV_WRITE: - - $fd_key = (int)$fd; - if (isset($this->_allEvents[$fd_key][$flag])) { - $this->_allEvents[$fd_key][$flag]->del(); - unset($this->_allEvents[$fd_key][$flag]); - } - if (empty($this->_allEvents[$fd_key])) { - unset($this->_allEvents[$fd_key]); - } - break; - - case self::EV_SIGNAL: - - $fd_key = (int)$fd; - if (isset($this->_eventSignal[$fd_key])) { - $this->_allEvents[$fd_key][$flag]->del(); - unset($this->_eventSignal[$fd_key]); - } - break; - - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - if (isset($this->_eventTimer[$fd])) { - $this->_eventTimer[$fd]->del(); - unset($this->_eventTimer[$fd]); - } - break; - } - return true; - } - - /** - * Timer callback. - * @param null $fd - * @param int $what - * @param int $timer_id - */ - public function timerCallback($fd, $what, $param) - { - $timer_id = $param[4]; - - if ($param[2] === self::EV_TIMER_ONCE) { - $this->_eventTimer[$timer_id]->del(); - unset($this->_eventTimer[$timer_id]); - } - - try { - call_user_func_array($param[0], $param[1]); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - - /** - * @see Events\EventInterface::clearAllTimer() - * @return void - */ - public function clearAllTimer() - { - foreach ($this->_eventTimer as $event) { - $event->del(); - } - $this->_eventTimer = array(); - } - - - /** - * @see EventInterface::loop() - */ - public function loop() - { - $this->_eventBase->loop(); - } -} diff --git a/vendor/workerman/workerman/Events/EventInterface.php b/vendor/workerman/workerman/Events/EventInterface.php deleted file mode 100644 index d71b5d438..000000000 --- a/vendor/workerman/workerman/Events/EventInterface.php +++ /dev/null @@ -1,86 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events; - -interface EventInterface -{ - /** - * Read event. - * - * @var int - */ - const EV_READ = 1; - - /** - * Write event. - * - * @var int - */ - const EV_WRITE = 2; - - /** - * Signal event. - * - * @var int - */ - const EV_SIGNAL = 4; - - /** - * Timer event. - * - * @var int - */ - const EV_TIMER = 8; - - /** - * Timer once event. - * - * @var int - */ - const EV_TIMER_ONCE = 16; - - /** - * Add event listener to event loop. - * - * @param mixed $fd - * @param int $flag - * @param callable $func - * @param mixed $args - * @return bool - */ - public function add($fd, $flag, $func, $args = null); - - /** - * Remove event listener from event loop. - * - * @param mixed $fd - * @param int $flag - * @return bool - */ - public function del($fd, $flag); - - /** - * Remove all timers. - * - * @return void - */ - public function clearAllTimer(); - - /** - * Main loop. - * - * @return void - */ - public function loop(); -} diff --git a/vendor/workerman/workerman/Events/Libevent.php b/vendor/workerman/workerman/Events/Libevent.php deleted file mode 100644 index 5644bf1e7..000000000 --- a/vendor/workerman/workerman/Events/Libevent.php +++ /dev/null @@ -1,205 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events; - -use Workerman\Worker; - -/** - * libevent eventloop - */ -class Libevent implements EventInterface -{ - /** - * Event base. - * - * @var resource - */ - protected $_eventBase = null; - - /** - * All listeners for read/write event. - * - * @var array - */ - protected $_allEvents = array(); - - /** - * Event listeners of signal. - * - * @var array - */ - protected $_eventSignal = array(); - - /** - * All timer event listeners. - * [func, args, event, flag, time_interval] - * - * @var array - */ - protected $_eventTimer = array(); - - /** - * construct - */ - public function __construct() - { - $this->_eventBase = event_base_new(); - } - - /** - * {@inheritdoc} - */ - public function add($fd, $flag, $func, $args = array()) - { - switch ($flag) { - case self::EV_SIGNAL: - $fd_key = (int)$fd; - $real_flag = EV_SIGNAL | EV_PERSIST; - $this->_eventSignal[$fd_key] = event_new(); - if (!event_set($this->_eventSignal[$fd_key], $fd, $real_flag, $func, null)) { - return false; - } - if (!event_base_set($this->_eventSignal[$fd_key], $this->_eventBase)) { - return false; - } - if (!event_add($this->_eventSignal[$fd_key])) { - return false; - } - return true; - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - $event = event_new(); - $timer_id = (int)$event; - if (!event_set($event, 0, EV_TIMEOUT, array($this, 'timerCallback'), $timer_id)) { - return false; - } - - if (!event_base_set($event, $this->_eventBase)) { - return false; - } - - $time_interval = $fd * 1000000; - if (!event_add($event, $time_interval)) { - return false; - } - $this->_eventTimer[$timer_id] = array($func, (array)$args, $event, $flag, $time_interval); - return $timer_id; - - default : - $fd_key = (int)$fd; - $real_flag = $flag === self::EV_READ ? EV_READ | EV_PERSIST : EV_WRITE | EV_PERSIST; - - $event = event_new(); - - if (!event_set($event, $fd, $real_flag, $func, null)) { - return false; - } - - if (!event_base_set($event, $this->_eventBase)) { - return false; - } - - if (!event_add($event)) { - return false; - } - - $this->_allEvents[$fd_key][$flag] = $event; - - return true; - } - - } - - /** - * {@inheritdoc} - */ - public function del($fd, $flag) - { - switch ($flag) { - case self::EV_READ: - case self::EV_WRITE: - $fd_key = (int)$fd; - if (isset($this->_allEvents[$fd_key][$flag])) { - event_del($this->_allEvents[$fd_key][$flag]); - unset($this->_allEvents[$fd_key][$flag]); - } - if (empty($this->_allEvents[$fd_key])) { - unset($this->_allEvents[$fd_key]); - } - break; - case self::EV_SIGNAL: - $fd_key = (int)$fd; - if (isset($this->_eventSignal[$fd_key])) { - event_del($this->_eventSignal[$fd_key]); - unset($this->_eventSignal[$fd_key]); - } - break; - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - // 这里 fd 为timerid - if (isset($this->_eventTimer[$fd])) { - event_del($this->_eventTimer[$fd][2]); - unset($this->_eventTimer[$fd]); - } - break; - } - return true; - } - - /** - * Timer callback. - * - * @param mixed $_null1 - * @param int $_null2 - * @param mixed $timer_id - */ - protected function timerCallback($_null1, $_null2, $timer_id) - { - if ($this->_eventTimer[$timer_id][3] === self::EV_TIMER) { - event_add($this->_eventTimer[$timer_id][2], $this->_eventTimer[$timer_id][4]); - } - try { - call_user_func_array($this->_eventTimer[$timer_id][0], $this->_eventTimer[$timer_id][1]); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - if (isset($this->_eventTimer[$timer_id]) && $this->_eventTimer[$timer_id][3] === self::EV_TIMER_ONCE) { - $this->del($timer_id, self::EV_TIMER_ONCE); - } - } - - /** - * {@inheritdoc} - */ - public function clearAllTimer() - { - foreach ($this->_eventTimer as $task_data) { - event_del($task_data[2]); - } - $this->_eventTimer = array(); - } - - /** - * {@inheritdoc} - */ - public function loop() - { - event_base_loop($this->_eventBase); - } -} - diff --git a/vendor/workerman/workerman/Events/React.php b/vendor/workerman/workerman/Events/React.php deleted file mode 100644 index 79e6f96e4..000000000 --- a/vendor/workerman/workerman/Events/React.php +++ /dev/null @@ -1,265 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events; -use React\EventLoop\LoopInterface; -use React\EventLoop\Timer\TimerInterface; - -/** - * select eventloop - */ -class React implements LoopInterface -{ - /** - * @var React\EventLoop\LoopInterface - */ - protected $_loop = null; - - /** - * @var array - */ - protected $_timerIdMap = array(); - - /** - * @var int - */ - protected $_timerIdIndex = 0; - - /** - * React constructor. - */ - public function __construct() { - if (function_exists('event_base_new')) { - $this->_loop = new \Workerman\Events\React\LibEventLoop(); - } elseif (class_exists('EventBase', false)) { - $this->_loop = new \Workerman\Events\React\ExtEventLoop(); - } else { - $this->_loop = new \Workerman\Events\React\StreamSelectLoop(); - } - } - - /** - * Add event listener to event loop. - * - * @param $fd - * @param $flag - * @param $func - * @param array $args - * @return bool - */ - public function add($fd, $flag, $func, $args = array()) - { - $args = (array)$args; - switch ($flag) { - case EventInterface::EV_READ: - return $this->_loop->addReadStream($fd, $func); - case EventInterface::EV_WRITE: - return $this->_loop->addWriteStream($fd, $func); - case EventInterface::EV_SIGNAL: - return $this->_loop->addSignal($fd, $func); - case EventInterface::EV_TIMER: - $timer_obj = $this->_loop->addPeriodicTimer($fd, function() use ($func, $args) { - call_user_func_array($func, $args); - }); - $this->_timerIdMap[++$this->_timerIdIndex] = $timer_obj; - return $this->_timerIdIndex; - case EventInterface::EV_TIMER_ONCE: - $timer_obj = $this->_loop->addTimer($fd, function() use ($func, $args) { - call_user_func_array($func, $args); - }); - $this->_timerIdMap[++$this->_timerIdIndex] = $timer_obj; - return $this->_timerIdIndex; - } - return false; - } - - /** - * Remove event listener from event loop. - * - * @param mixed $fd - * @param int $flag - * @return bool - */ - public function del($fd, $flag) - { - switch ($flag) { - case EventInterface::EV_READ: - return $this->_loop->removeReadStream($fd); - case EventInterface::EV_WRITE: - return $this->_loop->removeWriteStream($fd); - case EventInterface::EV_SIGNAL: - return $this->_loop->removeSignal($fd); - case EventInterface::EV_TIMER: - case EventInterface::EV_TIMER_ONCE; - if (isset($this->_timerIdMap[$fd])){ - $timer_obj = $this->_timerIdMap[$fd]; - unset($this->_timerIdMap[$fd]); - $this->_loop->cancelTimer($timer_obj); - return true; - } - } - return false; - } - - - /** - * Main loop. - * - * @return void - */ - public function loop() - { - $this->_loop->run(); - } - - /** - * Register a listener to be notified when a stream is ready to read. - * - * @param resource $stream The PHP stream resource to check. - * @param callable $listener Invoked when the stream is ready. - */ - public function addReadStream($stream, callable $listener) { - return call_user_func(array($this->_loop, 'addReadStream'), $stream, $listener); - } - - /** - * Register a listener to be notified when a stream is ready to write. - * - * @param resource $stream The PHP stream resource to check. - * @param callable $listener Invoked when the stream is ready. - */ - public function addWriteStream($stream, callable $listener) { - return call_user_func(array($this->_loop, 'addWriteStream'), $stream, $listener); - } - - /** - * Remove the read event listener for the given stream. - * - * @param resource $stream The PHP stream resource. - */ - public function removeReadStream($stream) { - return call_user_func(array($this->_loop, 'removeReadStream'), $stream); - } - - /** - * Remove the write event listener for the given stream. - * - * @param resource $stream The PHP stream resource. - */ - public function removeWriteStream($stream) { - return call_user_func(array($this->_loop, 'removeWriteStream'), $stream); - } - - /** - * Remove all listeners for the given stream. - * - * @param resource $stream The PHP stream resource. - */ - public function removeStream($stream) { - return call_user_func(array($this->_loop, 'removeStream'), $stream); - } - - /** - * Enqueue a callback to be invoked once after the given interval. - * - * The execution order of timers scheduled to execute at the same time is - * not guaranteed. - * - * @param int|float $interval The number of seconds to wait before execution. - * @param callable $callback The callback to invoke. - * - * @return TimerInterface - */ - public function addTimer($interval, callable $callback) { - return call_user_func(array($this->_loop, 'addTimer'), $interval, $callback); - } - - /** - * Enqueue a callback to be invoked repeatedly after the given interval. - * - * The execution order of timers scheduled to execute at the same time is - * not guaranteed. - * - * @param int|float $interval The number of seconds to wait before execution. - * @param callable $callback The callback to invoke. - * - * @return TimerInterface - */ - public function addPeriodicTimer($interval, callable $callback) { - return call_user_func(array($this->_loop, 'addPeriodicTimer'), $interval, $callback); - } - - /** - * Cancel a pending timer. - * - * @param TimerInterface $timer The timer to cancel. - */ - public function cancelTimer(TimerInterface $timer) { - return call_user_func(array($this->_loop, 'cancelTimer'), $timer); - } - - /** - * Check if a given timer is active. - * - * @param TimerInterface $timer The timer to check. - * - * @return boolean True if the timer is still enqueued for execution. - */ - public function isTimerActive(TimerInterface $timer) { - return call_user_func(array($this->_loop, 'isTimerActive'), $timer); - } - - /** - * Schedule a callback to be invoked on the next tick of the event loop. - * - * Callbacks are guaranteed to be executed in the order they are enqueued, - * before any timer or stream events. - * - * @param callable $listener The callback to invoke. - */ - public function nextTick(callable $listener) { - return call_user_func(array($this->_loop, 'nextTick'), $listener); - } - - /** - * Schedule a callback to be invoked on a future tick of the event loop. - * - * Callbacks are guaranteed to be executed in the order they are enqueued. - * - * @param callable $listener The callback to invoke. - */ - public function futureTick(callable $listener) { - return call_user_func(array($this->_loop, 'futureTick'), $listener); - } - - /** - * Perform a single iteration of the event loop. - */ - public function tick() { - return call_user_func(array($this->_loop, 'tick')); - } - - /** - * Run the event loop until there are no more tasks to perform. - */ - public function run() { - return call_user_func(array($this->_loop, 'run')); - } - - /** - * Instruct a running event loop to stop. - */ - public function stop() { - return call_user_func(array($this->_loop, 'stop')); - } -} diff --git a/vendor/workerman/workerman/Events/React/ExtEventLoop.php b/vendor/workerman/workerman/Events/React/ExtEventLoop.php deleted file mode 100644 index ccb504182..000000000 --- a/vendor/workerman/workerman/Events/React/ExtEventLoop.php +++ /dev/null @@ -1,76 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events\React; - -/** - * Class ExtEventLoop - * @package Workerman\Events\React - */ -class ExtEventLoop extends \React\EventLoop\ExtEventLoop -{ - /** - * Event base. - * - * @var EventBase - */ - protected $_eventBase = null; - - /** - * All signal Event instances. - * - * @var array - */ - protected $_signalEvents = array(); - - /** - * Construct - */ - public function __construct() - { - parent::__construct(); - $class = new \ReflectionClass('\React\EventLoop\ExtEventLoop'); - $property = $class->getProperty('eventBase'); - $property->setAccessible(true); - $this->_eventBase = $property->getValue($this); - } - - /** - * Add signal handler. - * - * @param $signal - * @param $callback - * @return bool - */ - public function addSignal($signal, $callback) - { - $event = \Event::signal($this->_eventBase, $signal, $callback); - if (!$event||!$event->add()) { - return false; - } - $this->_signalEvents[$signal] = $event; - } - - /** - * Remove signal handler. - * - * @param $signal - */ - public function removeSignal($signal) - { - if (isset($this->_signalEvents[$signal])) { - $this->_signalEvents[$signal]->del(); - unset($this->_signalEvents[$signal]); - } - } -} diff --git a/vendor/workerman/workerman/Events/React/LibEventLoop.php b/vendor/workerman/workerman/Events/React/LibEventLoop.php deleted file mode 100644 index 1dbf3900d..000000000 --- a/vendor/workerman/workerman/Events/React/LibEventLoop.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events\React; - -/** - * Class LibEventLoop - * @package Workerman\Events\React - */ -class LibEventLoop extends \React\EventLoop\LibEventLoop -{ - /** - * Event base. - * - * @var event_base resource - */ - protected $_eventBase = null; - - /** - * All signal Event instances. - * - * @var array - */ - protected $_signalEvents = array(); - - /** - * Construct. - */ - public function __construct() - { - parent::__construct(); - $class = new \ReflectionClass('\React\EventLoop\LibEventLoop'); - $property = $class->getProperty('eventBase'); - $property->setAccessible(true); - $this->_eventBase = $property->getValue($this); - } - - /** - * Add signal handler. - * - * @param $signal - * @param $callback - * @return bool - */ - public function addSignal($signal, $callback) - { - $event = event_new(); - $this->_signalEvents[$signal] = $event; - event_set($event, $signal, EV_SIGNAL | EV_PERSIST, $callback); - event_base_set($event, $this->_eventBase); - event_add($event); - } - - /** - * Remove signal handler. - * - * @param $signal - */ - public function removeSignal($signal) - { - if (isset($this->_signalEvents[$signal])) { - $event = $this->_signalEvents[$signal]; - event_del($event); - unset($this->_signalEvents[$signal]); - } - } -} diff --git a/vendor/workerman/workerman/Events/React/StreamSelectLoop.php b/vendor/workerman/workerman/Events/React/StreamSelectLoop.php deleted file mode 100644 index 5ab8bc7e8..000000000 --- a/vendor/workerman/workerman/Events/React/StreamSelectLoop.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events\React; - -/** - * Class StreamSelectLoop - * @package Workerman\Events\React - */ -class StreamSelectLoop extends \React\EventLoop\StreamSelectLoop -{ - /** - * Add signal handler. - * - * @param $signal - * @param $callback - * @return bool - */ - public function addSignal($signal, $callback) - { - if(PHP_EOL !== "\r\n") { - pcntl_signal($signal, $callback); - } - } - - /** - * Remove signal handler. - * - * @param $signal - */ - public function removeSignal($signal) - { - if(PHP_EOL !== "\r\n") { - pcntl_signal($signal, SIG_IGN); - } - } - - /** - * Emulate a stream_select() implementation that does not break when passed - * empty stream arrays. - * - * @param array &$read An array of read streams to select upon. - * @param array &$write An array of write streams to select upon. - * @param integer|null $timeout Activity timeout in microseconds, or null to wait forever. - * - * @return integer|false The total number of streams that are ready for read/write. - * Can return false if stream_select() is interrupted by a signal. - */ - protected function streamSelect(array &$read, array &$write, $timeout) - { - if ($read || $write) { - $except = null; - // Calls signal handlers for pending signals - pcntl_signal_dispatch(); - // suppress warnings that occur, when stream_select is interrupted by a signal - return @stream_select($read, $write, $except, $timeout === null ? null : 0, $timeout); - } - - // Calls signal handlers for pending signals - if(PHP_EOL !== "\r\n") { - pcntl_signal_dispatch(); - } - $timeout && usleep($timeout); - - return 0; - } -} diff --git a/vendor/workerman/workerman/Events/Select.php b/vendor/workerman/workerman/Events/Select.php deleted file mode 100644 index 1b9d16f16..000000000 --- a/vendor/workerman/workerman/Events/Select.php +++ /dev/null @@ -1,263 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Events; - -/** - * select eventloop - */ -class Select implements EventInterface -{ - /** - * All listeners for read/write event. - * - * @var array - */ - public $_allEvents = array(); - - /** - * Event listeners of signal. - * - * @var array - */ - public $_signalEvents = array(); - - /** - * Fds waiting for read event. - * - * @var array - */ - protected $_readFds = array(); - - /** - * Fds waiting for write event. - * - * @var array - */ - protected $_writeFds = array(); - - /** - * Timer scheduler. - * {['data':timer_id, 'priority':run_timestamp], ..} - * - * @var \SplPriorityQueue - */ - protected $_scheduler = null; - - /** - * All timer event listeners. - * [[func, args, flag, timer_interval], ..] - * - * @var array - */ - protected $_task = array(); - - /** - * Timer id. - * - * @var int - */ - protected $_timerId = 1; - - /** - * Select timeout. - * - * @var int - */ - protected $_selectTimeout = 100000000; - - /** - * Paired socket channels - * - * @var array - */ - protected $channel = array(); - - /** - * Construct. - */ - public function __construct() - { - // Create a pipeline and put into the collection of the read to read the descriptor to avoid empty polling. - $this->channel = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP); - if ($this->channel) { - stream_set_blocking($this->channel[0], 0); - $this->_readFds[0] = $this->channel[0]; - } - // Init SplPriorityQueue. - $this->_scheduler = new \SplPriorityQueue(); - $this->_scheduler->setExtractFlags(\SplPriorityQueue::EXTR_BOTH); - } - - /** - * {@inheritdoc} - */ - public function add($fd, $flag, $func, $args = array()) - { - switch ($flag) { - case self::EV_READ: - $fd_key = (int)$fd; - $this->_allEvents[$fd_key][$flag] = array($func, $fd); - $this->_readFds[$fd_key] = $fd; - break; - case self::EV_WRITE: - $fd_key = (int)$fd; - $this->_allEvents[$fd_key][$flag] = array($func, $fd); - $this->_writeFds[$fd_key] = $fd; - break; - case self::EV_SIGNAL: - $fd_key = (int)$fd; - $this->_signalEvents[$fd_key][$flag] = array($func, $fd); - pcntl_signal($fd, array($this, 'signalHandler')); - break; - case self::EV_TIMER: - case self::EV_TIMER_ONCE: - $run_time = microtime(true) + $fd; - $this->_scheduler->insert($this->_timerId, -$run_time); - $this->_task[$this->_timerId] = array($func, (array)$args, $flag, $fd); - $this->tick(); - return $this->_timerId++; - } - - return true; - } - - /** - * Signal handler. - * - * @param int $signal - */ - public function signalHandler($signal) - { - call_user_func_array($this->_signalEvents[$signal][self::EV_SIGNAL][0], array($signal)); - } - - /** - * {@inheritdoc} - */ - public function del($fd, $flag) - { - $fd_key = (int)$fd; - switch ($flag) { - case self::EV_READ: - unset($this->_allEvents[$fd_key][$flag], $this->_readFds[$fd_key]); - if (empty($this->_allEvents[$fd_key])) { - unset($this->_allEvents[$fd_key]); - } - return true; - case self::EV_WRITE: - unset($this->_allEvents[$fd_key][$flag], $this->_writeFds[$fd_key]); - if (empty($this->_allEvents[$fd_key])) { - unset($this->_allEvents[$fd_key]); - } - return true; - case self::EV_SIGNAL: - unset($this->_signalEvents[$fd_key]); - pcntl_signal($fd, SIG_IGN); - break; - case self::EV_TIMER: - case self::EV_TIMER_ONCE; - unset($this->_task[$fd_key]); - return true; - } - return false; - } - - /** - * Tick for timer. - * - * @return void - */ - protected function tick() - { - while (!$this->_scheduler->isEmpty()) { - $scheduler_data = $this->_scheduler->top(); - $timer_id = $scheduler_data['data']; - $next_run_time = -$scheduler_data['priority']; - $time_now = microtime(true); - $this->_selectTimeout = ($next_run_time - $time_now) * 1000000; - if ($this->_selectTimeout <= 0) { - $this->_scheduler->extract(); - - if (!isset($this->_task[$timer_id])) { - continue; - } - - // [func, args, flag, timer_interval] - $task_data = $this->_task[$timer_id]; - if ($task_data[2] === self::EV_TIMER) { - $next_run_time = $time_now + $task_data[3]; - $this->_scheduler->insert($timer_id, -$next_run_time); - } - call_user_func_array($task_data[0], $task_data[1]); - if (isset($this->_task[$timer_id]) && $task_data[2] === self::EV_TIMER_ONCE) { - $this->del($timer_id, self::EV_TIMER_ONCE); - } - continue; - } - return; - } - $this->_selectTimeout = 100000000; - } - - /** - * {@inheritdoc} - */ - public function clearAllTimer() - { - $this->_scheduler = new \SplPriorityQueue(); - $this->_scheduler->setExtractFlags(\SplPriorityQueue::EXTR_BOTH); - $this->_task = array(); - } - - /** - * {@inheritdoc} - */ - public function loop() - { - $e = null; - while (1) { - // Calls signal handlers for pending signals - pcntl_signal_dispatch(); - - $read = $this->_readFds; - $write = $this->_writeFds; - // Waiting read/write/signal/timeout events. - $ret = @stream_select($read, $write, $e, 0, $this->_selectTimeout); - - if (!$this->_scheduler->isEmpty()) { - $this->tick(); - } - - if (!$ret) { - continue; - } - - foreach ($read as $fd) { - $fd_key = (int)$fd; - if (isset($this->_allEvents[$fd_key][self::EV_READ])) { - call_user_func_array($this->_allEvents[$fd_key][self::EV_READ][0], - array($this->_allEvents[$fd_key][self::EV_READ][1])); - } - } - - foreach ($write as $fd) { - $fd_key = (int)$fd; - if (isset($this->_allEvents[$fd_key][self::EV_WRITE])) { - call_user_func_array($this->_allEvents[$fd_key][self::EV_WRITE][0], - array($this->_allEvents[$fd_key][self::EV_WRITE][1])); - } - } - } - } -} diff --git a/vendor/workerman/workerman/Lib/Constants.php b/vendor/workerman/workerman/Lib/Constants.php deleted file mode 100644 index 81440747a..000000000 --- a/vendor/workerman/workerman/Lib/Constants.php +++ /dev/null @@ -1,35 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ - -// Date.timezone -if (!ini_get('date.timezone')) { - date_default_timezone_set('Asia/Shanghai'); -} -// Display errors. -ini_set('display_errors', 'on'); -// Reporting all. -error_reporting(E_ALL); - -// For onError callback. -define('WORKERMAN_CONNECT_FAIL', 1); -// For onError callback. -define('WORKERMAN_SEND_FAIL', 2); - -// Compatible with php7 -if(!class_exists('Error')) -{ - class Error extends Exception - { - } -} \ No newline at end of file diff --git a/vendor/workerman/workerman/Lib/Timer.php b/vendor/workerman/workerman/Lib/Timer.php deleted file mode 100644 index 4bd4ac5af..000000000 --- a/vendor/workerman/workerman/Lib/Timer.php +++ /dev/null @@ -1,176 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Lib; - -use Workerman\Events\EventInterface; -use Exception; - -/** - * Timer. - * - * example: - * Workerman\Lib\Timer::add($time_interval, callback, array($arg1, $arg2..)); - */ -class Timer -{ - /** - * Tasks that based on ALARM signal. - * [ - * run_time => [[$func, $args, $persistent, time_interval],[$func, $args, $persistent, time_interval],..]], - * run_time => [[$func, $args, $persistent, time_interval],[$func, $args, $persistent, time_interval],..]], - * .. - * ] - * - * @var array - */ - protected static $_tasks = array(); - - /** - * event - * - * @var \Workerman\Events\EventInterface - */ - protected static $_event = null; - - /** - * Init. - * - * @param \Workerman\Events\EventInterface $event - * @return void - */ - public static function init($event = null) - { - if ($event) { - self::$_event = $event; - } else { - pcntl_signal(SIGALRM, array('\Workerman\Lib\Timer', 'signalHandle'), false); - } - } - - /** - * ALARM signal handler. - * - * @return void - */ - public static function signalHandle() - { - if (!self::$_event) { - pcntl_alarm(1); - self::tick(); - } - } - - /** - * Add a timer. - * - * @param int $time_interval - * @param callback $func - * @param mixed $args - * @param bool $persistent - * @return int/false - */ - public static function add($time_interval, $func, $args = array(), $persistent = true) - { - if ($time_interval <= 0) { - echo new Exception("bad time_interval"); - return false; - } - - if (self::$_event) { - return self::$_event->add($time_interval, - $persistent ? EventInterface::EV_TIMER : EventInterface::EV_TIMER_ONCE, $func, $args); - } - - if (!is_callable($func)) { - echo new Exception("not callable"); - return false; - } - - if (empty(self::$_tasks)) { - pcntl_alarm(1); - } - - $time_now = time(); - $run_time = $time_now + $time_interval; - if (!isset(self::$_tasks[$run_time])) { - self::$_tasks[$run_time] = array(); - } - self::$_tasks[$run_time][] = array($func, (array)$args, $persistent, $time_interval); - return 1; - } - - - /** - * Tick. - * - * @return void - */ - public static function tick() - { - if (empty(self::$_tasks)) { - pcntl_alarm(0); - return; - } - - $time_now = time(); - foreach (self::$_tasks as $run_time => $task_data) { - if ($time_now >= $run_time) { - foreach ($task_data as $index => $one_task) { - $task_func = $one_task[0]; - $task_args = $one_task[1]; - $persistent = $one_task[2]; - $time_interval = $one_task[3]; - try { - call_user_func_array($task_func, $task_args); - } catch (\Exception $e) { - echo $e; - } - if ($persistent) { - self::add($time_interval, $task_func, $task_args); - } - } - unset(self::$_tasks[$run_time]); - } - } - } - - /** - * Remove a timer. - * - * @param mixed $timer_id - * @return bool - */ - public static function del($timer_id) - { - if (self::$_event) { - return self::$_event->del($timer_id, EventInterface::EV_TIMER); - } - - return false; - } - - /** - * Remove all timers. - * - * @return void - */ - public static function delAll() - { - self::$_tasks = array(); - pcntl_alarm(0); - if (self::$_event) { - self::$_event->clearAllTimer(); - } - } -} diff --git a/vendor/workerman/workerman/MIT-LICENSE.txt b/vendor/workerman/workerman/MIT-LICENSE.txt deleted file mode 100644 index fd6b1c83f..000000000 --- a/vendor/workerman/workerman/MIT-LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2009-2015 walkor and contributors (see https://github.com/walkor/workerman/contributors) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/workerman/workerman/Protocols/Frame.php b/vendor/workerman/workerman/Protocols/Frame.php deleted file mode 100644 index 4a6b13ecb..000000000 --- a/vendor/workerman/workerman/Protocols/Frame.php +++ /dev/null @@ -1,61 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Protocols; - -use Workerman\Connection\TcpConnection; - -/** - * Frame Protocol. - */ -class Frame -{ - /** - * Check the integrity of the package. - * - * @param string $buffer - * @param TcpConnection $connection - * @return int - */ - public static function input($buffer, TcpConnection $connection) - { - if (strlen($buffer) < 4) { - return 0; - } - $unpack_data = unpack('Ntotal_length', $buffer); - return $unpack_data['total_length']; - } - - /** - * Decode. - * - * @param string $buffer - * @return string - */ - public static function decode($buffer) - { - return substr($buffer, 4); - } - - /** - * Encode. - * - * @param string $buffer - * @return string - */ - public static function encode($buffer) - { - $total_length = 4 + strlen($buffer); - return pack('N', $total_length) . $buffer; - } -} diff --git a/vendor/workerman/workerman/Protocols/Http.php b/vendor/workerman/workerman/Protocols/Http.php deleted file mode 100644 index 30c3ba918..000000000 --- a/vendor/workerman/workerman/Protocols/Http.php +++ /dev/null @@ -1,577 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Protocols; - -use Workerman\Connection\TcpConnection; -use Workerman\Worker; - -/** - * http protocol - */ -class Http -{ - /** - * The supported HTTP methods - * @var array - */ - public static $methods = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS'); - - /** - * Check the integrity of the package. - * - * @param string $recv_buffer - * @param TcpConnection $connection - * @return int - */ - public static function input($recv_buffer, TcpConnection $connection) - { - if (!strpos($recv_buffer, "\r\n\r\n")) { - // Judge whether the package length exceeds the limit. - if (strlen($recv_buffer) >= TcpConnection::$maxPackageSize) { - $connection->close(); - return 0; - } - return 0; - } - - list($header,) = explode("\r\n\r\n", $recv_buffer, 2); - $method = substr($header, 0, strpos($header, ' ')); - - if(in_array($method, static::$methods)) { - return static::getRequestSize($header, $method); - }else{ - $connection->send("HTTP/1.1 400 Bad Request\r\n\r\n", true); - return 0; - } - } - - /** - * Get whole size of the request - * includes the request headers and request body. - * @param string $header The request headers - * @param string $method The request method - * @return integer - */ - protected static function getRequestSize($header, $method) - { - if($method=='GET') { - return strlen($header) + 4; - } - $match = array(); - if (preg_match("/\r\nContent-Length: ?(\d+)/i", $header, $match)) { - $content_length = isset($match[1]) ? $match[1] : 0; - return $content_length + strlen($header) + 4; - } - return 0; - } - - /** - * Parse $_POSTã€$_GETã€$_COOKIE. - * - * @param string $recv_buffer - * @param TcpConnection $connection - * @return array - */ - public static function decode($recv_buffer, TcpConnection $connection) - { - // Init. - $_POST = $_GET = $_COOKIE = $_REQUEST = $_SESSION = $_FILES = array(); - $GLOBALS['HTTP_RAW_POST_DATA'] = ''; - // Clear cache. - HttpCache::$header = array('Connection' => 'Connection: keep-alive'); - HttpCache::$instance = new HttpCache(); - // $_SERVER - $_SERVER = array( - 'QUERY_STRING' => '', - 'REQUEST_METHOD' => '', - 'REQUEST_URI' => '', - 'SERVER_PROTOCOL' => '', - 'SERVER_SOFTWARE' => 'workerman/'.Worker::VERSION, - 'SERVER_NAME' => '', - 'HTTP_HOST' => '', - 'HTTP_USER_AGENT' => '', - 'HTTP_ACCEPT' => '', - 'HTTP_ACCEPT_LANGUAGE' => '', - 'HTTP_ACCEPT_ENCODING' => '', - 'HTTP_COOKIE' => '', - 'HTTP_CONNECTION' => '', - 'REMOTE_ADDR' => '', - 'REMOTE_PORT' => '0', - ); - - // Parse headers. - list($http_header, $http_body) = explode("\r\n\r\n", $recv_buffer, 2); - $header_data = explode("\r\n", $http_header); - - list($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI'], $_SERVER['SERVER_PROTOCOL']) = explode(' ', - $header_data[0]); - - $http_post_boundary = ''; - unset($header_data[0]); - foreach ($header_data as $content) { - // \r\n\r\n - if (empty($content)) { - continue; - } - list($key, $value) = explode(':', $content, 2); - $key = str_replace('-', '_', strtoupper($key)); - $value = trim($value); - $_SERVER['HTTP_' . $key] = $value; - switch ($key) { - // HTTP_HOST - case 'HOST': - $tmp = explode(':', $value); - $_SERVER['SERVER_NAME'] = $tmp[0]; - if (isset($tmp[1])) { - $_SERVER['SERVER_PORT'] = $tmp[1]; - } - break; - // cookie - case 'COOKIE': - parse_str(str_replace('; ', '&', $_SERVER['HTTP_COOKIE']), $_COOKIE); - break; - // content-type - case 'CONTENT_TYPE': - if (!preg_match('/boundary="?(\S+)"?/', $value, $match)) { - $_SERVER['CONTENT_TYPE'] = $value; - } else { - $_SERVER['CONTENT_TYPE'] = 'multipart/form-data'; - $http_post_boundary = '--' . $match[1]; - } - break; - case 'CONTENT_LENGTH': - $_SERVER['CONTENT_LENGTH'] = $value; - break; - } - } - - // Parse $_POST. - if ($_SERVER['REQUEST_METHOD'] === 'POST') { - if (isset($_SERVER['CONTENT_TYPE']) && $_SERVER['CONTENT_TYPE'] === 'multipart/form-data') { - self::parseUploadFiles($http_body, $http_post_boundary); - } else { - parse_str($http_body, $_POST); - // $GLOBALS['HTTP_RAW_POST_DATA'] - $GLOBALS['HTTP_RAW_REQUEST_DATA'] = $GLOBALS['HTTP_RAW_POST_DATA'] = $http_body; - } - } - - if ($_SERVER['REQUEST_METHOD'] === 'PUT') { - $GLOBALS['HTTP_RAW_REQUEST_DATA'] = $http_body; - } - - if ($_SERVER['REQUEST_METHOD'] === 'DELETE') { - $GLOBALS['HTTP_RAW_REQUEST_DATA'] = $http_body; - } - - // QUERY_STRING - $_SERVER['QUERY_STRING'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); - if ($_SERVER['QUERY_STRING']) { - // $GET - parse_str($_SERVER['QUERY_STRING'], $_GET); - } else { - $_SERVER['QUERY_STRING'] = ''; - } - - // REQUEST - $_REQUEST = array_merge($_GET, $_POST); - - // REMOTE_ADDR REMOTE_PORT - $_SERVER['REMOTE_ADDR'] = $connection->getRemoteIp(); - $_SERVER['REMOTE_PORT'] = $connection->getRemotePort(); - - return array('get' => $_GET, 'post' => $_POST, 'cookie' => $_COOKIE, 'server' => $_SERVER, 'files' => $_FILES); - } - - /** - * Http encode. - * - * @param string $content - * @param TcpConnection $connection - * @return string - */ - public static function encode($content, TcpConnection $connection) - { - // Default http-code. - if (!isset(HttpCache::$header['Http-Code'])) { - $header = "HTTP/1.1 200 OK\r\n"; - } else { - $header = HttpCache::$header['Http-Code'] . "\r\n"; - unset(HttpCache::$header['Http-Code']); - } - - // Content-Type - if (!isset(HttpCache::$header['Content-Type'])) { - $header .= "Content-Type: text/html;charset=utf-8\r\n"; - } - - // other headers - foreach (HttpCache::$header as $key => $item) { - if ('Set-Cookie' === $key && is_array($item)) { - foreach ($item as $it) { - $header .= $it . "\r\n"; - } - } else { - $header .= $item . "\r\n"; - } - } - - // header - $header .= "Server: workerman/" . Worker::VERSION . "\r\nContent-Length: " . strlen($content) . "\r\n\r\n"; - - // save session - self::sessionWriteClose(); - - // the whole http package - return $header . $content; - } - - /** - * 设置http头 - * - * @return bool|void - */ - public static function header($content, $replace = true, $http_response_code = 0) - { - if (PHP_SAPI != 'cli') { - return $http_response_code ? header($content, $replace, $http_response_code) : header($content, $replace); - } - if (strpos($content, 'HTTP') === 0) { - $key = 'Http-Code'; - } else { - $key = strstr($content, ":", true); - if (empty($key)) { - return false; - } - } - - if ('location' === strtolower($key) && !$http_response_code) { - return self::header($content, true, 302); - } - - if (isset(HttpCache::$codes[$http_response_code])) { - HttpCache::$header['Http-Code'] = "HTTP/1.1 $http_response_code " . HttpCache::$codes[$http_response_code]; - if ($key === 'Http-Code') { - return true; - } - } - - if ($key === 'Set-Cookie') { - HttpCache::$header[$key][] = $content; - } else { - HttpCache::$header[$key] = $content; - } - - return true; - } - - /** - * Remove header. - * - * @param string $name - * @return void - */ - public static function headerRemove($name) - { - if (PHP_SAPI != 'cli') { - header_remove($name); - return; - } - unset(HttpCache::$header[$name]); - } - - /** - * Set cookie. - * - * @param string $name - * @param string $value - * @param integer $maxage - * @param string $path - * @param string $domain - * @param bool $secure - * @param bool $HTTPOnly - * @return bool|void - */ - public static function setcookie( - $name, - $value = '', - $maxage = 0, - $path = '', - $domain = '', - $secure = false, - $HTTPOnly = false - ) { - if (PHP_SAPI != 'cli') { - return setcookie($name, $value, $maxage, $path, $domain, $secure, $HTTPOnly); - } - return self::header( - 'Set-Cookie: ' . $name . '=' . rawurlencode($value) - . (empty($domain) ? '' : '; Domain=' . $domain) - . (empty($maxage) ? '' : '; Max-Age=' . $maxage) - . (empty($path) ? '' : '; Path=' . $path) - . (!$secure ? '' : '; Secure') - . (!$HTTPOnly ? '' : '; HttpOnly'), false); - } - - /** - * sessionStart - * - * @return bool - */ - public static function sessionStart() - { - if (PHP_SAPI != 'cli') { - return session_start(); - } - - self::tryGcSessions(); - - if (HttpCache::$instance->sessionStarted) { - echo "already sessionStarted\n"; - return true; - } - HttpCache::$instance->sessionStarted = true; - // Generate a SID. - if (!isset($_COOKIE[HttpCache::$sessionName]) || !is_file(HttpCache::$sessionPath . '/ses' . $_COOKIE[HttpCache::$sessionName])) { - $file_name = tempnam(HttpCache::$sessionPath, 'ses'); - if (!$file_name) { - return false; - } - HttpCache::$instance->sessionFile = $file_name; - $session_id = substr(basename($file_name), strlen('ses')); - return self::setcookie( - HttpCache::$sessionName - , $session_id - , ini_get('session.cookie_lifetime') - , ini_get('session.cookie_path') - , ini_get('session.cookie_domain') - , ini_get('session.cookie_secure') - , ini_get('session.cookie_httponly') - ); - } - if (!HttpCache::$instance->sessionFile) { - HttpCache::$instance->sessionFile = HttpCache::$sessionPath . '/ses' . $_COOKIE[HttpCache::$sessionName]; - } - // Read session from session file. - if (HttpCache::$instance->sessionFile) { - $raw = file_get_contents(HttpCache::$instance->sessionFile); - if ($raw) { - session_decode($raw); - } - } - return true; - } - - /** - * Save session. - * - * @return bool - */ - public static function sessionWriteClose() - { - if (PHP_SAPI != 'cli') { - return session_write_close(); - } - if (!empty(HttpCache::$instance->sessionStarted) && !empty($_SESSION)) { - $session_str = session_encode(); - if ($session_str && HttpCache::$instance->sessionFile) { - return file_put_contents(HttpCache::$instance->sessionFile, $session_str); - } - } - return empty($_SESSION); - } - - /** - * End, like call exit in php-fpm. - * - * @param string $msg - * @throws \Exception - */ - public static function end($msg = '') - { - if (PHP_SAPI != 'cli') { - exit($msg); - } - if ($msg) { - echo $msg; - } - throw new \Exception('jump_exit'); - } - - /** - * Get mime types. - * - * @return string - */ - public static function getMimeTypesFile() - { - return __DIR__ . '/Http/mime.types'; - } - - /** - * Parse $_FILES. - * - * @param string $http_body - * @param string $http_post_boundary - * @return void - */ - protected static function parseUploadFiles($http_body, $http_post_boundary) - { - $http_body = substr($http_body, 0, strlen($http_body) - (strlen($http_post_boundary) + 4)); - $boundary_data_array = explode($http_post_boundary . "\r\n", $http_body); - if ($boundary_data_array[0] === '') { - unset($boundary_data_array[0]); - } - foreach ($boundary_data_array as $boundary_data_buffer) { - list($boundary_header_buffer, $boundary_value) = explode("\r\n\r\n", $boundary_data_buffer, 2); - // Remove \r\n from the end of buffer. - $boundary_value = substr($boundary_value, 0, -2); - foreach (explode("\r\n", $boundary_header_buffer) as $item) { - list($header_key, $header_value) = explode(": ", $item); - $header_key = strtolower($header_key); - switch ($header_key) { - case "content-disposition": - // Is file data. - if (preg_match('/name=".*?"; filename="(.*?)"$/', $header_value, $match)) { - // Parse $_FILES. - $_FILES[] = array( - 'file_name' => $match[1], - 'file_data' => $boundary_value, - 'file_size' => strlen($boundary_value), - ); - continue; - } // Is post field. - else { - // Parse $_POST. - if (preg_match('/name="(.*?)"$/', $header_value, $match)) { - $_POST[$match[1]] = $boundary_value; - } - } - break; - } - } - } - } - - /** - * Try GC sessions. - * - * @return void - */ - public static function tryGcSessions() - { - if (HttpCache::$sessionGcProbability <= 0 || - HttpCache::$sessionGcDivisor <= 0 || - rand(1, HttpCache::$sessionGcDivisor) > HttpCache::$sessionGcProbability) { - return; - } - - $time_now = time(); - foreach(glob(HttpCache::$sessionPath.'/ses*') as $file) { - if(is_file($file) && $time_now - filemtime($file) > HttpCache::$sessionGcMaxLifeTime) { - unlink($file); - } - } - } -} - -/** - * Http cache for the current http response. - */ -class HttpCache -{ - public static $codes = array( - 100 => 'Continue', - 101 => 'Switching Protocols', - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 306 => '(Unused)', - 307 => 'Temporary Redirect', - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Long', - 415 => 'Unsupported Media Type', - 416 => 'Requested Range Not Satisfiable', - 417 => 'Expectation Failed', - 422 => 'Unprocessable Entity', - 423 => 'Locked', - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported', - ); - - /** - * @var HttpCache - */ - public static $instance = null; - public static $header = array(); - public static $sessionPath = ''; - public static $sessionName = ''; - public static $sessionGcProbability = 1; - public static $sessionGcDivisor = 1000; - public static $sessionGcMaxLifeTime = 1440; - public $sessionStarted = false; - public $sessionFile = ''; - - public static function init() - { - self::$sessionName = ini_get('session.name'); - self::$sessionPath = session_save_path(); - if (!self::$sessionPath || strpos(self::$sessionPath, 'tcp://') === 0) { - self::$sessionPath = sys_get_temp_dir(); - } - - if ($gc_probability = ini_get('session.gc_probability')) { - self::$sessionGcProbability = $gc_probability; - } - - if ($gc_divisor = ini_get('session.gc_divisor')) { - self::$sessionGcDivisor = $gc_divisor; - } - - if ($gc_max_life_time = ini_get('session.gc_maxlifetime')) { - self::$sessionGcMaxLifeTime = $gc_max_life_time; - } - - @\session_start(); - } -} - -HttpCache::init(); diff --git a/vendor/workerman/workerman/Protocols/Http/mime.types b/vendor/workerman/workerman/Protocols/Http/mime.types deleted file mode 100644 index 8a218b22a..000000000 --- a/vendor/workerman/workerman/Protocols/Http/mime.types +++ /dev/null @@ -1,80 +0,0 @@ - -types { - text/html html htm shtml; - text/css css; - text/xml xml; - image/gif gif; - image/jpeg jpeg jpg; - application/x-javascript js; - application/atom+xml atom; - application/rss+xml rss; - - text/mathml mml; - text/plain txt; - text/vnd.sun.j2me.app-descriptor jad; - text/vnd.wap.wml wml; - text/x-component htc; - - image/png png; - image/tiff tif tiff; - image/vnd.wap.wbmp wbmp; - image/x-icon ico; - image/x-jng jng; - image/x-ms-bmp bmp; - image/svg+xml svg svgz; - image/webp webp; - - application/java-archive jar war ear; - application/mac-binhex40 hqx; - application/msword doc; - application/pdf pdf; - application/postscript ps eps ai; - application/rtf rtf; - application/vnd.ms-excel xls; - application/vnd.ms-powerpoint ppt; - application/vnd.wap.wmlc wmlc; - application/vnd.google-earth.kml+xml kml; - application/vnd.google-earth.kmz kmz; - application/x-7z-compressed 7z; - application/x-cocoa cco; - application/x-java-archive-diff jardiff; - application/x-java-jnlp-file jnlp; - application/x-makeself run; - application/x-perl pl pm; - application/x-pilot prc pdb; - application/x-rar-compressed rar; - application/x-redhat-package-manager rpm; - application/x-sea sea; - application/x-shockwave-flash swf; - application/x-stuffit sit; - application/x-tcl tcl tk; - application/x-x509-ca-cert der pem crt; - application/x-xpinstall xpi; - application/xhtml+xml xhtml; - application/zip zip; - - application/octet-stream bin exe dll; - application/octet-stream deb; - application/octet-stream dmg; - application/octet-stream eot; - application/octet-stream iso img; - application/octet-stream msi msp msm; - - audio/midi mid midi kar; - audio/mpeg mp3; - audio/ogg ogg; - audio/x-m4a m4a; - audio/x-realaudio ra; - - video/3gpp 3gpp 3gp; - video/mp4 mp4; - video/mpeg mpeg mpg; - video/quicktime mov; - video/webm webm; - video/x-flv flv; - video/x-m4v m4v; - video/x-mng mng; - video/x-ms-asf asx asf; - video/x-ms-wmv wmv; - video/x-msvideo avi; -} diff --git a/vendor/workerman/workerman/Protocols/ProtocolInterface.php b/vendor/workerman/workerman/Protocols/ProtocolInterface.php deleted file mode 100644 index 9afe98498..000000000 --- a/vendor/workerman/workerman/Protocols/ProtocolInterface.php +++ /dev/null @@ -1,52 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Protocols; - -use Workerman\Connection\ConnectionInterface; - -/** - * Protocol interface - */ -interface ProtocolInterface -{ - /** - * Check the integrity of the package. - * Please return the length of package. - * If length is unknow please return 0 that mean wating more data. - * If the package has something wrong please return false the connection will be closed. - * - * @param ConnectionInterface $connection - * @param string $recv_buffer - * @return int|false - */ - public static function input($recv_buffer, ConnectionInterface $connection); - - /** - * Decode package and emit onMessage($message) callback, $message is the result that decode returned. - * - * @param ConnectionInterface $connection - * @param string $recv_buffer - * @return mixed - */ - public static function decode($recv_buffer, ConnectionInterface $connection); - - /** - * Encode package brefore sending to client. - * - * @param ConnectionInterface $connection - * @param mixed $data - * @return string - */ - public static function encode($data, ConnectionInterface $connection); -} diff --git a/vendor/workerman/workerman/Protocols/Text.php b/vendor/workerman/workerman/Protocols/Text.php deleted file mode 100644 index 189baf416..000000000 --- a/vendor/workerman/workerman/Protocols/Text.php +++ /dev/null @@ -1,70 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Protocols; - -use Workerman\Connection\TcpConnection; - -/** - * Text Protocol. - */ -class Text -{ - /** - * Check the integrity of the package. - * - * @param string $buffer - * @param TcpConnection $connection - * @return int - */ - public static function input($buffer, TcpConnection $connection) - { - // Judge whether the package length exceeds the limit. - if (strlen($buffer) >= TcpConnection::$maxPackageSize) { - $connection->close(); - return 0; - } - // Find the position of "\n". - $pos = strpos($buffer, "\n"); - // No "\n", packet length is unknown, continue to wait for the data so return 0. - if ($pos === false) { - return 0; - } - // Return the current package length. - return $pos + 1; - } - - /** - * Encode. - * - * @param string $buffer - * @return string - */ - public static function encode($buffer) - { - // Add "\n" - return $buffer . "\n"; - } - - /** - * Decode. - * - * @param string $buffer - * @return string - */ - public static function decode($buffer) - { - // Remove "\n" - return trim($buffer); - } -} diff --git a/vendor/workerman/workerman/Protocols/Websocket.php b/vendor/workerman/workerman/Protocols/Websocket.php deleted file mode 100644 index 2ab5635da..000000000 --- a/vendor/workerman/workerman/Protocols/Websocket.php +++ /dev/null @@ -1,473 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Protocols; - -use Workerman\Connection\ConnectionInterface; -use Workerman\Connection\TcpConnection; -use Workerman\Worker; - -/** - * WebSocket protocol. - */ -class Websocket implements \Workerman\Protocols\ProtocolInterface -{ - /** - * Websocket blob type. - * - * @var string - */ - const BINARY_TYPE_BLOB = "\x81"; - - /** - * Websocket arraybuffer type. - * - * @var string - */ - const BINARY_TYPE_ARRAYBUFFER = "\x82"; - - /** - * Check the integrity of the package. - * - * @param string $buffer - * @param ConnectionInterface $connection - * @return int - */ - public static function input($buffer, ConnectionInterface $connection) - { - // Receive length. - $recv_len = strlen($buffer); - // We need more data. - if ($recv_len < 2) { - return 0; - } - - // Has not yet completed the handshake. - if (empty($connection->websocketHandshake)) { - return static::dealHandshake($buffer, $connection); - } - - // Buffer websocket frame data. - if ($connection->websocketCurrentFrameLength) { - // We need more frame data. - if ($connection->websocketCurrentFrameLength > $recv_len) { - // Return 0, because it is not clear the full packet length, waiting for the frame of fin=1. - return 0; - } - } else { - $firstbyte = ord($buffer[0]); - $secondbyte = ord($buffer[1]); - $data_len = $secondbyte & 127; - $is_fin_frame = $firstbyte >> 7; - $masked = $secondbyte >> 7; - $opcode = $firstbyte & 0xf; - switch ($opcode) { - case 0x0: - break; - // Blob type. - case 0x1: - break; - // Arraybuffer type. - case 0x2: - break; - // Close package. - case 0x8: - // Try to emit onWebSocketClose callback. - if (isset($connection->onWebSocketClose)) { - try { - call_user_func($connection->onWebSocketClose, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } // Close connection. - else { - $connection->close(); - } - return 0; - // Ping package. - case 0x9: - // Try to emit onWebSocketPing callback. - if (isset($connection->onWebSocketPing)) { - try { - call_user_func($connection->onWebSocketPing, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } // Send pong package to client. - else { - $connection->send(pack('H*', '8a00'), true); - } - - // Consume data from receive buffer. - if (!$data_len) { - $head_len = $masked ? 6 : 2; - $connection->consumeRecvBuffer($head_len); - if ($recv_len > $head_len) { - return static::input(substr($buffer, $head_len), $connection); - } - return 0; - } - break; - // Pong package. - case 0xa: - // Try to emit onWebSocketPong callback. - if (isset($connection->onWebSocketPong)) { - try { - call_user_func($connection->onWebSocketPong, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - // Consume data from receive buffer. - if (!$data_len) { - $head_len = $masked ? 6 : 2; - $connection->consumeRecvBuffer($head_len); - if ($recv_len > $head_len) { - return static::input(substr($buffer, $head_len), $connection); - } - return 0; - } - break; - // Wrong opcode. - default : - echo "error opcode $opcode and close websocket connection. Buffer:" . bin2hex($buffer) . "\n"; - $connection->close(); - return 0; - } - - // Calculate packet length. - $head_len = 6; - if ($data_len === 126) { - $head_len = 8; - if ($head_len > $recv_len) { - return 0; - } - $pack = unpack('nn/ntotal_len', $buffer); - $data_len = $pack['total_len']; - } else { - if ($data_len === 127) { - $head_len = 14; - if ($head_len > $recv_len) { - return 0; - } - $arr = unpack('n/N2c', $buffer); - $data_len = $arr['c1']*4294967296 + $arr['c2']; - } - } - $current_frame_length = $head_len + $data_len; - - $total_package_size = strlen($connection->websocketDataBuffer) + $current_frame_length; - if ($total_package_size > TcpConnection::$maxPackageSize) { - echo "error package. package_length=$total_package_size\n"; - $connection->close(); - return 0; - } - - if ($is_fin_frame) { - return $current_frame_length; - } else { - $connection->websocketCurrentFrameLength = $current_frame_length; - } - } - - // Received just a frame length data. - if ($connection->websocketCurrentFrameLength === $recv_len) { - static::decode($buffer, $connection); - $connection->consumeRecvBuffer($connection->websocketCurrentFrameLength); - $connection->websocketCurrentFrameLength = 0; - return 0; - } // The length of the received data is greater than the length of a frame. - elseif ($connection->websocketCurrentFrameLength < $recv_len) { - static::decode(substr($buffer, 0, $connection->websocketCurrentFrameLength), $connection); - $connection->consumeRecvBuffer($connection->websocketCurrentFrameLength); - $current_frame_length = $connection->websocketCurrentFrameLength; - $connection->websocketCurrentFrameLength = 0; - // Continue to read next frame. - return static::input(substr($buffer, $current_frame_length), $connection); - } // The length of the received data is less than the length of a frame. - else { - return 0; - } - } - - /** - * Websocket encode. - * - * @param string $buffer - * @param ConnectionInterface $connection - * @return string - */ - public static function encode($buffer, ConnectionInterface $connection) - { - if (!is_scalar($buffer)) { - throw new \Exception("You can't send(" . gettype($buffer) . ") to client, you need to convert it to a string. "); - } - $len = strlen($buffer); - if (empty($connection->websocketType)) { - $connection->websocketType = static::BINARY_TYPE_BLOB; - } - - $first_byte = $connection->websocketType; - - if ($len <= 125) { - $encode_buffer = $first_byte . chr($len) . $buffer; - } else { - if ($len <= 65535) { - $encode_buffer = $first_byte . chr(126) . pack("n", $len) . $buffer; - } else { - $encode_buffer = $first_byte . chr(127) . pack("xxxxN", $len) . $buffer; - } - } - - // Handshake not completed so temporary buffer websocket data waiting for send. - if (empty($connection->websocketHandshake)) { - if (empty($connection->tmpWebsocketData)) { - $connection->tmpWebsocketData = ''; - } - // If buffer has already full then discard the current package. - if (strlen($connection->tmpWebsocketData) > $connection->maxSendBufferSize) { - if ($connection->onError) { - try { - call_user_func($connection->onError, $connection, WORKERMAN_SEND_FAIL, 'send buffer full and drop package'); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - return ''; - } - $connection->tmpWebsocketData .= $encode_buffer; - // Check buffer is full. - if ($connection->maxSendBufferSize <= strlen($connection->tmpWebsocketData)) { - if ($connection->onBufferFull) { - try { - call_user_func($connection->onBufferFull, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - } - - // Return empty string. - return ''; - } - - return $encode_buffer; - } - - /** - * Websocket decode. - * - * @param string $buffer - * @param ConnectionInterface $connection - * @return string - */ - public static function decode($buffer, ConnectionInterface $connection) - { - $masks = $data = $decoded = null; - $len = ord($buffer[1]) & 127; - if ($len === 126) { - $masks = substr($buffer, 4, 4); - $data = substr($buffer, 8); - } else { - if ($len === 127) { - $masks = substr($buffer, 10, 4); - $data = substr($buffer, 14); - } else { - $masks = substr($buffer, 2, 4); - $data = substr($buffer, 6); - } - } - for ($index = 0; $index < strlen($data); $index++) { - $decoded .= $data[$index] ^ $masks[$index % 4]; - } - if ($connection->websocketCurrentFrameLength) { - $connection->websocketDataBuffer .= $decoded; - return $connection->websocketDataBuffer; - } else { - if ($connection->websocketDataBuffer !== '') { - $decoded = $connection->websocketDataBuffer . $decoded; - $connection->websocketDataBuffer = ''; - } - return $decoded; - } - } - - /** - * Websocket handshake. - * - * @param string $buffer - * @param \Workerman\Connection\TcpConnection $connection - * @return int - */ - protected static function dealHandshake($buffer, $connection) - { - // HTTP protocol. - if (0 === strpos($buffer, 'GET')) { - // Find \r\n\r\n. - $heder_end_pos = strpos($buffer, "\r\n\r\n"); - if (!$heder_end_pos) { - return 0; - } - $header_length = $heder_end_pos + 4; - - // Get Sec-WebSocket-Key. - $Sec_WebSocket_Key = ''; - if (preg_match("/Sec-WebSocket-Key: *(.*?)\r\n/i", $buffer, $match)) { - $Sec_WebSocket_Key = $match[1]; - } else { - $connection->send("HTTP/1.1 400 Bad Request\r\n\r\n400 Bad Request
Sec-WebSocket-Key not found.
This is a WebSocket service and can not be accessed via HTTP.
See http://wiki.workerman.net/Error1 for detail.", - true); - $connection->close(); - return 0; - } - // Calculation websocket key. - $new_key = base64_encode(sha1($Sec_WebSocket_Key . "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", true)); - // Handshake response data. - $handshake_message = "HTTP/1.1 101 Switching Protocols\r\n"; - $handshake_message .= "Upgrade: websocket\r\n"; - $handshake_message .= "Sec-WebSocket-Version: 13\r\n"; - $handshake_message .= "Connection: Upgrade\r\n"; - $handshake_message .= "Server: workerman/".Worker::VERSION."\r\n"; - $handshake_message .= "Sec-WebSocket-Accept: " . $new_key . "\r\n\r\n"; - // Mark handshake complete.. - $connection->websocketHandshake = true; - // Websocket data buffer. - $connection->websocketDataBuffer = ''; - // Current websocket frame length. - $connection->websocketCurrentFrameLength = 0; - // Current websocket frame data. - $connection->websocketCurrentFrameBuffer = ''; - // Consume handshake data. - $connection->consumeRecvBuffer($header_length); - // Send handshake response. - $connection->send($handshake_message, true); - - // There are data waiting to be sent. - if (!empty($connection->tmpWebsocketData)) { - $connection->send($connection->tmpWebsocketData, true); - $connection->tmpWebsocketData = ''; - } - // blob or arraybuffer - if (empty($connection->websocketType)) { - $connection->websocketType = static::BINARY_TYPE_BLOB; - } - // Try to emit onWebSocketConnect callback. - if (isset($connection->onWebSocketConnect)) { - static::parseHttpHeader($buffer); - try { - call_user_func($connection->onWebSocketConnect, $connection, $buffer); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - if (!empty($_SESSION) && class_exists('\GatewayWorker\Lib\Context')) { - $connection->session = \GatewayWorker\Lib\Context::sessionEncode($_SESSION); - } - $_GET = $_SERVER = $_SESSION = $_COOKIE = array(); - } - if (strlen($buffer) > $header_length) { - return static::input(substr($buffer, $header_length), $connection); - } - return 0; - } // Is flash policy-file-request. - elseif (0 === strpos($buffer, 'send($policy_xml, true); - $connection->consumeRecvBuffer(strlen($buffer)); - return 0; - } - // Bad websocket handshake request. - $connection->send("HTTP/1.1 400 Bad Request\r\n\r\n400 Bad Request
Invalid handshake data for websocket.
See http://wiki.workerman.net/Error1 for detail.", - true); - $connection->close(); - return 0; - } - - /** - * Parse http header. - * - * @param string $buffer - * @return void - */ - protected static function parseHttpHeader($buffer) - { - // Parse headers. - list($http_header, ) = explode("\r\n\r\n", $buffer, 2); - $header_data = explode("\r\n", $http_header); - - if ($_SERVER) { - $_SERVER = array(); - } - - list($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI'], $_SERVER['SERVER_PROTOCOL']) = explode(' ', - $header_data[0]); - - unset($header_data[0]); - foreach ($header_data as $content) { - // \r\n\r\n - if (empty($content)) { - continue; - } - list($key, $value) = explode(':', $content, 2); - $key = str_replace('-', '_', strtoupper($key)); - $value = trim($value); - $_SERVER['HTTP_' . $key] = $value; - switch ($key) { - // HTTP_HOST - case 'HOST': - $tmp = explode(':', $value); - $_SERVER['SERVER_NAME'] = $tmp[0]; - if (isset($tmp[1])) { - $_SERVER['SERVER_PORT'] = $tmp[1]; - } - break; - // cookie - case 'COOKIE': - parse_str(str_replace('; ', '&', $_SERVER['HTTP_COOKIE']), $_COOKIE); - break; - } - } - - // QUERY_STRING - $_SERVER['QUERY_STRING'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); - if ($_SERVER['QUERY_STRING']) { - // $GET - parse_str($_SERVER['QUERY_STRING'], $_GET); - } else { - $_SERVER['QUERY_STRING'] = ''; - } - } -} diff --git a/vendor/workerman/workerman/Protocols/Ws.php b/vendor/workerman/workerman/Protocols/Ws.php deleted file mode 100644 index da1451f40..000000000 --- a/vendor/workerman/workerman/Protocols/Ws.php +++ /dev/null @@ -1,433 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman\Protocols; - -use Workerman\Worker; -use Workerman\Lib\Timer; -use Workerman\Connection\TcpConnection; - -/** - * Websocket protocol for client. - */ -class Ws -{ - /** - * Websocket blob type. - * - * @var string - */ - const BINARY_TYPE_BLOB = "\x81"; - - /** - * Websocket arraybuffer type. - * - * @var string - */ - const BINARY_TYPE_ARRAYBUFFER = "\x82"; - - /** - * Check the integrity of the package. - * - * @param string $buffer - * @param ConnectionInterface $connection - * @return int - */ - public static function input($buffer, $connection) - { - if (empty($connection->handshakeStep)) { - echo "recv data before handshake. Buffer:" . bin2hex($buffer) . "\n"; - return false; - } - // Recv handshake response - if ($connection->handshakeStep === 1) { - return self::dealHandshake($buffer, $connection); - } - $recv_len = strlen($buffer); - if ($recv_len < 2) { - return 0; - } - // Buffer websocket frame data. - if ($connection->websocketCurrentFrameLength) { - // We need more frame data. - if ($connection->websocketCurrentFrameLength > $recv_len) { - // Return 0, because it is not clear the full packet length, waiting for the frame of fin=1. - return 0; - } - } else { - - $firstbyte = ord($buffer[0]); - $secondbyte = ord($buffer[1]); - $data_len = $secondbyte & 127; - $is_fin_frame = $firstbyte >> 7; - $masked = $secondbyte >> 7; - $opcode = $firstbyte & 0xf; - - switch ($opcode) { - case 0x0: - break; - // Blob type. - case 0x1: - break; - // Arraybuffer type. - case 0x2: - break; - // Close package. - case 0x8: - // Try to emit onWebSocketClose callback. - if (isset($connection->onWebSocketClose)) { - try { - call_user_func($connection->onWebSocketClose, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } // Close connection. - else { - $connection->close(); - } - return 0; - // Ping package. - case 0x9: - // Try to emit onWebSocketPing callback. - if (isset($connection->onWebSocketPing)) { - try { - call_user_func($connection->onWebSocketPing, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } // Send pong package to client. - else { - $connection->send(pack('H*', '8a00'), true); - } - // Consume data from receive buffer. - if (!$data_len) { - $head_len = $masked ? 6 : 2; - $connection->consumeRecvBuffer($head_len); - if ($recv_len > $head_len) { - return self::input(substr($buffer, $head_len), $connection); - } - return 0; - } - break; - // Pong package. - case 0xa: - // Try to emit onWebSocketPong callback. - if (isset($connection->onWebSocketPong)) { - try { - call_user_func($connection->onWebSocketPong, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - // Consume data from receive buffer. - if (!$data_len) { - $head_len = $masked ? 6 : 2; - $connection->consumeRecvBuffer($head_len); - if ($recv_len > $head_len) { - return self::input(substr($buffer, $head_len), $connection); - } - return 0; - } - break; - // Wrong opcode. - default : - echo "error opcode $opcode and close websocket connection. Buffer:" . $buffer . "\n"; - $connection->close(); - return 0; - } - // Calculate packet length. - if ($data_len === 126) { - if (strlen($buffer) < 6) { - return 0; - } - $pack = unpack('nn/ntotal_len', $buffer); - $current_frame_length = $pack['total_len'] + 4; - } else if ($data_len === 127) { - if (strlen($buffer) < 10) { - return 0; - } - $arr = unpack('n/N2c', $buffer); - $current_frame_length = $arr['c1']*4294967296 + $arr['c2'] + 10; - } else { - $current_frame_length = $data_len + 2; - } - - $total_package_size = strlen($connection->websocketDataBuffer) + $current_frame_length; - if ($total_package_size > TcpConnection::$maxPackageSize) { - echo "error package. package_length=$total_package_size\n"; - $connection->close(); - return 0; - } - - if ($is_fin_frame) { - return $current_frame_length; - } else { - $connection->websocketCurrentFrameLength = $current_frame_length; - } - } - // Received just a frame length data. - if ($connection->websocketCurrentFrameLength === $recv_len) { - self::decode($buffer, $connection); - $connection->consumeRecvBuffer($connection->websocketCurrentFrameLength); - $connection->websocketCurrentFrameLength = 0; - return 0; - } // The length of the received data is greater than the length of a frame. - elseif ($connection->websocketCurrentFrameLength < $recv_len) { - self::decode(substr($buffer, 0, $connection->websocketCurrentFrameLength), $connection); - $connection->consumeRecvBuffer($connection->websocketCurrentFrameLength); - $current_frame_length = $connection->websocketCurrentFrameLength; - $connection->websocketCurrentFrameLength = 0; - // Continue to read next frame. - return self::input(substr($buffer, $current_frame_length), $connection); - } // The length of the received data is less than the length of a frame. - else { - return 0; - } - } - - /** - * Websocket encode. - * - * @param string $buffer - * @param ConnectionInterface $connection - * @return string - */ - public static function encode($payload, $connection) - { - if (empty($connection->websocketType)) { - $connection->websocketType = self::BINARY_TYPE_BLOB; - } - $payload = (string)$payload; - if (empty($connection->handshakeStep)) { - self::sendHandshake($connection); - } - $mask = 1; - $mask_key = "\x00\x00\x00\x00"; - - $pack = ''; - $length = $length_flag = strlen($payload); - if (65535 < $length) { - $pack = pack('NN', ($length & 0xFFFFFFFF00000000) >> 32, $length & 0x00000000FFFFFFFF); - $length_flag = 127; - } else if (125 < $length) { - $pack = pack('n*', $length); - $length_flag = 126; - } - - $head = ($mask << 7) | $length_flag; - $head = $connection->websocketType . chr($head) . $pack; - - $frame = $head . $mask_key; - // append payload to frame: - for ($i = 0; $i < $length; $i++) { - $frame .= $payload[$i] ^ $mask_key[$i % 4]; - } - if ($connection->handshakeStep === 1) { - // If buffer has already full then discard the current package. - if (strlen($connection->tmpWebsocketData) > $connection->maxSendBufferSize) { - if ($connection->onError) { - try { - call_user_func($connection->onError, $connection, WORKERMAN_SEND_FAIL, 'send buffer full and drop package'); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - return ''; - } - $connection->tmpWebsocketData = $connection->tmpWebsocketData . $frame; - // Check buffer is full. - if ($connection->maxSendBufferSize <= strlen($connection->tmpWebsocketData)) { - if ($connection->onBufferFull) { - try { - call_user_func($connection->onBufferFull, $connection); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - } - return ''; - } - return $frame; - } - - /** - * Websocket decode. - * - * @param string $buffer - * @param ConnectionInterface $connection - * @return string - */ - public static function decode($bytes, $connection) - { - $masked = $bytes[1] >> 7; - $data_length = $masked ? ord($bytes[1]) & 127 : ord($bytes[1]); - $decoded_data = ''; - if ($masked === true) { - if ($data_length === 126) { - $mask = substr($bytes, 4, 4); - $coded_data = substr($bytes, 8); - } else if ($data_length === 127) { - $mask = substr($bytes, 10, 4); - $coded_data = substr($bytes, 14); - } else { - $mask = substr($bytes, 2, 4); - $coded_data = substr($bytes, 6); - } - for ($i = 0; $i < strlen($coded_data); $i++) { - $decoded_data .= $coded_data[$i] ^ $mask[$i % 4]; - } - } else { - if ($data_length === 126) { - $decoded_data = substr($bytes, 4); - } else if ($data_length === 127) { - $decoded_data = substr($bytes, 10); - } else { - $decoded_data = substr($bytes, 2); - } - } - if ($connection->websocketCurrentFrameLength) { - $connection->websocketDataBuffer .= $decoded_data; - return $connection->websocketDataBuffer; - } else { - if ($connection->websocketDataBuffer !== '') { - $decoded_data = $connection->websocketDataBuffer . $decoded_data; - $connection->websocketDataBuffer = ''; - } - return $decoded_data; - } - } - - /** - * Send websocket handshake data. - * - * @return void - */ - public static function onConnect($connection) - { - self::sendHandshake($connection); - } - - /** - * Clean - * - * @param $connection - */ - public static function onClose($connection) - { - $connection->handshakeStep = null; - $connection->websocketCurrentFrameLength = 0; - $connection->tmpWebsocketData = ''; - $connection->websocketDataBuffer = ''; - if (!empty($connection->websocketPingTimer)) { - Timer::del($connection->websocketPingTimer); - $connection->websocketPingTimer = null; - } - } - - /** - * Send websocket handshake. - * - * @param \Workerman\Connection\TcpConnection $connection - * @return void - */ - public static function sendHandshake($connection) - { - if (!empty($connection->handshakeStep)) { - return; - } - // Get Host. - $port = $connection->getRemotePort(); - $host = $port === 80 ? $connection->getRemoteHost() : $connection->getRemoteHost() . ':' . $port; - // Handshake header. - $header = 'GET ' . $connection->getRemoteURI() . " HTTP/1.1\r\n". - "Host: $host\r\n". - "Connection: Upgrade\r\n". - "Upgrade: websocket\r\n". - "Origin: ". (isset($connection->websocketOrigin) ? $connection->websocketOrigin : '*') ."\r\n". - "Sec-WebSocket-Version: 13\r\n". - "Sec-WebSocket-Key: ".base64_encode(sha1(uniqid(mt_rand(), true), true))."\r\n\r\n"; - $connection->send($header, true); - $connection->handshakeStep = 1; - $connection->websocketCurrentFrameLength = 0; - $connection->websocketDataBuffer = ''; - $connection->tmpWebsocketData = ''; - } - - /** - * Websocket handshake. - * - * @param string $buffer - * @param \Workerman\Connection\TcpConnection $connection - * @return int - */ - public static function dealHandshake($buffer, $connection) - { - $pos = strpos($buffer, "\r\n\r\n"); - if ($pos) { - // handshake complete - $connection->handshakeStep = 2; - $handshake_response_length = $pos + 4; - // Try to emit onWebSocketConnect callback. - if (isset($connection->onWebSocketConnect)) { - try { - call_user_func($connection->onWebSocketConnect, $connection, substr($buffer, 0, $handshake_response_length)); - } catch (\Exception $e) { - Worker::log($e); - exit(250); - } catch (\Error $e) { - Worker::log($e); - exit(250); - } - } - // Headbeat. - if (!empty($connection->websocketPingInterval)) { - $connection->websocketPingTimer = Timer::add($connection->websocketPingInterval, function() use ($connection){ - if (false === $connection->send(pack('H*', '8900'), true)) { - Timer::del($connection->websocketPingTimer); - $connection->websocketPingTimer = null; - } - }); - } - - $connection->consumeRecvBuffer($handshake_response_length); - if (!empty($connection->tmpWebsocketData)) { - $connection->send($connection->tmpWebsocketData, true); - $connection->tmpWebsocketData = ''; - } - if (strlen($buffer) > $handshake_response_length) { - return self::input(substr($buffer, $handshake_response_length), $connection); - } - } - return 0; - } -} diff --git a/vendor/workerman/workerman/README.md b/vendor/workerman/workerman/README.md deleted file mode 100644 index 17b687dec..000000000 --- a/vendor/workerman/workerman/README.md +++ /dev/null @@ -1,636 +0,0 @@ -# Workerman -[![Gitter](https://badges.gitter.im/walkor/Workerman.svg)](https://gitter.im/walkor/Workerman?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge) - -## What is it -Workerman is an asynchronous event driven PHP framework with high performance for easily building fast, scalable network applications.Supports HTTP, Websocket and other custom protocols. Supports libevent, HHVM, [ReactPHP](https://github.com/reactphp/react). - -## Requires - -PHP 5.3 or Higher -A POSIX compatible operating system (Linux, OSX, BSD) -POSIX and PCNTL extensions for PHP - -## Installation - -``` -composer require workerman/workerman -``` - -## Basic Usage - -### A websocket server -```php -count = 4; - -// Emitted when new connection come -$ws_worker->onConnect = function($connection) -{ - echo "New connection\n"; - }; - -// Emitted when data received -$ws_worker->onMessage = function($connection, $data) -{ - // Send hello $data - $connection->send('hello ' . $data); -}; - -// Emitted when connection closed -$ws_worker->onClose = function($connection) -{ - echo "Connection closed\n"; -}; - -// Run worker -Worker::runAll(); -``` - -### An http server -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\Worker; - -// #### http worker #### -$http_worker = new Worker("http://0.0.0.0:2345"); - -// 4 processes -$http_worker->count = 4; - -// Emitted when data received -$http_worker->onMessage = function($connection, $data) -{ - // $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, $_FILES are available - var_dump($_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, $_FILES); - // send data to client - $connection->send("hello world \n"); -}; - -// run all workers -Worker::runAll(); -``` - -### A WebServer -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\WebServer; -use Workerman\Worker; - -// WebServer -$web = new WebServer("http://0.0.0.0:80"); - -// 4 processes -$web->count = 4; - -// Set the root of domains -$web->addRoot('www.your_domain.com', '/your/path/Web'); -$web->addRoot('www.another_domain.com', '/another/path/Web'); -// run all workers -Worker::runAll(); -``` - -### A tcp server -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\Worker; - -// #### create socket and listen 1234 port #### -$tcp_worker = new Worker("tcp://0.0.0.0:1234"); - -// 4 processes -$tcp_worker->count = 4; - -// Emitted when new connection come -$tcp_worker->onConnect = function($connection) -{ - echo "New Connection\n"; -}; - -// Emitted when data received -$tcp_worker->onMessage = function($connection, $data) -{ - // send data to client - $connection->send("hello $data \n"); -}; - -// Emitted when new connection come -$tcp_worker->onClose = function($connection) -{ - echo "Connection closed\n"; -}; - -Worker::runAll(); -``` - -### Custom protocol -Protocols/MyTextProtocol.php -```php -namespace Protocols; -/** - * User defined protocol - * Format Text+"\n" - */ -class MyTextProtocol -{ - public static function input($recv_buffer) - { - // Find the position of the first occurrence of "\n" - $pos = strpos($recv_buffer, "\n"); - // Not a complete package. Return 0 because the length of package can not be calculated - if($pos === false) - { - return 0; - } - // Return length of the package - return $pos+1; - } - - public static function decode($recv_buffer) - { - return trim($recv_buffer); - } - - public static function encode($data) - { - return $data."\n"; - } -} -``` - -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\Worker; - -// #### MyTextProtocol worker #### -$text_worker = new Worker("MyTextProtocol://0.0.0.0:5678"); - -$text_worker->onConnect = function($connection) -{ - echo "New connection\n"; -}; - -$text_worker->onMessage = function($connection, $data) -{ - // send data to client - $connection->send("hello world \n"); -}; - -$text_worker->onClose = function($connection) -{ - echo "Connection closed\n"; -}; - -// run all workers -Worker::runAll(); -``` - -### Timer -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\Worker; -use Workerman\Lib\Timer; - -$task = new Worker(); -$task->onWorkerStart = function($task) -{ - // 2.5 seconds - $time_interval = 2.5; - $timer_id = Timer::add($time_interval, - function() - { - echo "Timer run\n"; - } - ); -}; - -// run all workers -Worker::runAll(); -``` - -### AsyncTcpConnection (tcp/ws/text/frame etc...) -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\Worker; -use Workerman\Connection\AsyncTcpConnection; - -$worker = new Worker(); -$worker->onWorkerStart = function() -{ - // Websocket protocol for client. - $ws_connection = new AsyncTcpConnection("ws://echo.websocket.org:80"); - $ws_connection->onConnect = function($connection){ - $connection->send('hello'); - }; - $ws_connection->onMessage = function($connection, $data){ - echo "recv: $data\n"; - }; - $ws_connection->onError = function($connection, $code, $msg){ - echo "error: $msg\n"; - }; - $ws_connection->onClose = function($connection){ - echo "connection closed\n"; - }; - $ws_connection->connect(); -}; -Worker::runAll(); -``` - -### Async Mysql of ReactPHP -``` -composer require react/mysql -``` - -```php -onWorkerStart = function() { - global $mysql; - $loop = Worker::getEventLoop(); - $mysql = new React\MySQL\Connection($loop, array( - 'host' => '127.0.0.1', - 'dbname' => 'dbname', - 'user' => 'user', - 'passwd' => 'passwd', - )); - $mysql->on('error', function($e){ - echo $e; - }); - $mysql->connect(function ($e) { - if($e) { - echo $e; - } else { - echo "connect success\n"; - } - }); -}; -$worker->onMessage = function($connection, $data) { - global $mysql; - $mysql->query('show databases' /*trim($data)*/, function ($command, $mysql) use ($connection) { - if ($command->hasError()) { - $error = $command->getError(); - } else { - $results = $command->resultRows; - $fields = $command->resultFields; - $connection->send(json_encode($results)); - } - }); -}; -Worker::runAll(); -``` - -### Async Redis of ReactPHP -``` -composer require clue/redis-react -``` - -```php -onWorkerStart = function() { - global $factory; - $loop = Worker::getEventLoop(); - $factory = new Factory($loop); -}; - -$worker->onMessage = function($connection, $data) { - global $factory; - $factory->createClient('localhost:6379')->then(function (Client $client) use ($connection) { - $client->set('greeting', 'Hello world'); - $client->append('greeting', '!'); - - $client->get('greeting')->then(function ($greeting) use ($connection){ - // Hello world! - echo $greeting . PHP_EOL; - $connection->send($greeting); - }); - - $client->incr('invocation')->then(function ($n) use ($connection){ - echo 'This is invocation #' . $n . PHP_EOL; - $connection->send($n); - }); - }); -}; - -Worker::runAll(); -``` - -### Aysnc dns of ReactPHP -``` -composer require react/dns -``` - -```php -require_once __DIR__ . '/vendor/autoload.php'; -use Workerman\Worker; -$worker = new Worker('tcp://0.0.0.0:6161'); -$worker->onWorkerStart = function() { - global $dns; - // Get event-loop. - $loop = Worker::getEventLoop(); - $factory = new React\Dns\Resolver\Factory(); - $dns = $factory->create('8.8.8.8', $loop); -}; -$worker->onMessage = function($connection, $host) { - global $dns; - $host = trim($host); - $dns->resolve($host)->then(function($ip) use($host, $connection) { - $connection->send("$host: $ip"); - },function($e) use($host, $connection){ - $connection->send("$host: {$e->getMessage()}"); - }); -}; - -Worker::runAll(); -``` - -### Http client of ReactPHP -``` -composer require react/http-client -``` - -```php -onWorkerStart = function() { - global $client; - $loop = Worker::getEventLoop(); - $factory = new React\Dns\Resolver\Factory(); - $dns = $factory->createCached('8.8.8.8', $loop); - $factory = new React\HttpClient\Factory(); - $client = $factory->create($loop, $dns); -}; - -$worker->onMessage = function($connection, $host) { - global $client; - $request = $client->request('GET', trim($host)); - $request->on('error', function(Exception $e) use ($connection) { - $connection->send($e); - }); - $request->on('response', function ($response) use ($connection) { - $response->on('data', function ($data, $response) use ($connection) { - $connection->send($data); - }); - }); - $request->end(); -}; - -Worker::runAll(); -``` - -### ZMQ of ReactPHP -``` -composer require react/zmq -``` - -```php -onWorkerStart = function() { - global $pull; - $loop = Worker::getEventLoop(); - $context = new React\ZMQ\Context($loop); - $pull = $context->getSocket(ZMQ::SOCKET_PULL); - $pull->bind('tcp://127.0.0.1:5555'); - - $pull->on('error', function ($e) { - var_dump($e->getMessage()); - }); - - $pull->on('message', function ($msg) { - echo "Received: $msg\n"; - }); -}; - -Worker::runAll(); -``` - -### STOMP of ReactPHP -``` -composer require react/stomp -``` - -```php -onWorkerStart = function() { - global $client; - $loop = Worker::getEventLoop(); - $factory = new React\Stomp\Factory($loop); - $client = $factory->createClient(array('vhost' => '/', 'login' => 'guest', 'passcode' => 'guest')); - - $client - ->connect() - ->then(function ($client) use ($loop) { - $client->subscribe('/topic/foo', function ($frame) { - echo "Message received: {$frame->body}\n"; - }); - }); -}; - -Worker::runAll(); -``` - - - -## Available commands -```php test.php start ``` -```php test.php start -d ``` -![workerman start](http://www.workerman.net/img/workerman-start.png) -```php test.php status ``` -![workerman satus](http://www.workerman.net/img/workerman-status.png?a=123) -```php test.php stop ``` -```php test.php restart ``` -```php test.php reload ``` - -## Documentation - -中文主页:[http://www.workerman.net](http://www.workerman.net) - -中文文档: [http://doc3.workerman.net](http://doc3.workerman.net) - -Documentation:[https://github.com/walkor/workerman-manual](https://github.com/walkor/workerman-manual/blob/master/english/src/SUMMARY.md) - -# Benchmarks -``` -CPU: Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz and 4 processors totally -Memory: 8G -OS: Ubuntu 14.04 LTS -Software: ab -PHP: 5.5.9 -``` - -**Codes** -```php -count=3; -$worker->onMessage = function($connection, $data) -{ - $connection->send("HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nServer: workerman\r\nContent-Length: 5\r\n\r\nhello"); -}; -Worker::runAll(); -``` -**Result** - -```shell -ab -n1000000 -c100 -k http://127.0.0.1:1234/ -This is ApacheBench, Version 2.3 <$Revision: 1528965 $> -Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ -Licensed to The Apache Software Foundation, http://www.apache.org/ - -Benchmarking 127.0.0.1 (be patient) -Completed 100000 requests -Completed 200000 requests -Completed 300000 requests -Completed 400000 requests -Completed 500000 requests -Completed 600000 requests -Completed 700000 requests -Completed 800000 requests -Completed 900000 requests -Completed 1000000 requests -Finished 1000000 requests - - -Server Software: workerman/3.1.4 -Server Hostname: 127.0.0.1 -Server Port: 1234 - -Document Path: / -Document Length: 5 bytes - -Concurrency Level: 100 -Time taken for tests: 7.240 seconds -Complete requests: 1000000 -Failed requests: 0 -Keep-Alive requests: 1000000 -Total transferred: 73000000 bytes -HTML transferred: 5000000 bytes -Requests per second: 138124.14 [#/sec] (mean) -Time per request: 0.724 [ms] (mean) -Time per request: 0.007 [ms] (mean, across all concurrent requests) -Transfer rate: 9846.74 [Kbytes/sec] received - -Connection Times (ms) - min mean[+/-sd] median max -Connect: 0 0 0.0 0 5 -Processing: 0 1 0.2 1 9 -Waiting: 0 1 0.2 1 9 -Total: 0 1 0.2 1 9 - -Percentage of the requests served within a certain time (ms) - 50% 1 - 66% 1 - 75% 1 - 80% 1 - 90% 1 - 95% 1 - 98% 1 - 99% 1 - 100% 9 (longest request) - -``` - - -## Other links with workerman - -## [PHPSocket.IO](https://github.com/walkor/phpsocket.io) -[Live demo](http://www.workerman.net/demos/phpsocketio-chat/) -[Source code](https://github.com/walkor/phpsocket.io) -![phpsocket.io](http://www.workerman.net/img/socket.io.png) - -## [tadpole](http://kedou.workerman.net/) -[Live demo](http://kedou.workerman.net/) -[Source code](https://github.com/walkor/workerman) -![workerman todpole](http://www.workerman.net/img/workerman-todpole.png) - -## [BrowserQuest](http://www.workerman.net/demos/browserquest/) -[Live demo](http://www.workerman.net/demos/browserquest/) -[Source code](https://github.com/walkor/BrowserQuest-PHP) -![BrowserQuest width workerman](http://www.workerman.net/img/browserquest.jpg) - -## [web vmstat](http://www.workerman.net/demos/vmstat/) -[Live demo](http://www.workerman.net/demos/vmstat/) -[Source code](https://github.com/walkor/workerman-vmstat) -![web vmstat](http://www.workerman.net/img/workerman-vmstat.png) - -## [live-ascii-camera](https://github.com/walkor/live-ascii-camera) -[Live demo camera page](http://www.workerman.net/demos/live-ascii-camera/camera.html) -[Live demo receive page](http://www.workerman.net/demos/live-ascii-camera/) -[Source code](https://github.com/walkor/live-ascii-camera) -![live-ascii-camera](http://www.workerman.net/img/live-ascii-camera.png) - -## [live-camera](https://github.com/walkor/live-camera) -[Live demo camera page](http://www.workerman.net/demos/live-camera/camera.html) -[Live demo receive page](http://www.workerman.net/demos/live-camera/) -[Source code](https://github.com/walkor/live-camera) -![live-camera](http://www.workerman.net/img/live-camera.jpg) - -## [chat room](http://chat.workerman.net/) -[Live demo](http://chat.workerman.net/) -[Source code](https://github.com/walkor/workerman-chat) -![workerman-chat](http://www.workerman.net/img/workerman-chat.png) - -## [statistics](http://www.workerman.net:55757/) -[Live demo](http://www.workerman.net:55757/) -[Source code](https://github.com/walkor/workerman-statistics) -![workerman-statistics](http://www.workerman.net/img/workerman-statistics.png) - -## [flappybird](http://workerman.net/demos/flappy-bird/) -[Live demo](http://workerman.net/demos/flappy-bird/) -[Source code](https://github.com/walkor/workerman-flappy-bird) -![workerman-statistics](http://www.workerman.net/img/workerman-flappy-bird.png) - -## [jsonRpc](https://github.com/walkor/workerman-JsonRpc) -[Source code](https://github.com/walkor/workerman-JsonRpc) -![workerman-jsonRpc](http://www.workerman.net/img/workerman-json-rpc.png) - -## [thriftRpc](https://github.com/walkor/workerman-thrift) -[Source code](https://github.com/walkor/workerman-thrift) -![workerman-thriftRpc](http://www.workerman.net/img/workerman-thrift.png) - -## [web-msg-sender](https://github.com/walkor/web-msg-sender) -[Live demo send page](http://workerman.net:3333/) -[Live demo receive page](http://workerman.net/web-msg-sender.html) -[Source code](https://github.com/walkor/web-msg-sender) -![web-msg-sender](http://www.workerman.net/img/web-msg-sender.png) - -## [shadowsocks-php](https://github.com/walkor/shadowsocks-php) -[Source code](https://github.com/walkor/shadowsocks-php) -![shadowsocks-php](http://www.workerman.net/img/shadowsocks-php.png) - -## [queue](https://github.com/walkor/workerman-queue) -[Source code](https://github.com/walkor/workerman-queue) - -## LICENSE - -Workerman is released under the [MIT license](https://github.com/walkor/workerman/blob/master/MIT-LICENSE.txt). diff --git a/vendor/workerman/workerman/WebServer.php b/vendor/workerman/workerman/WebServer.php deleted file mode 100644 index 235246d96..000000000 --- a/vendor/workerman/workerman/WebServer.php +++ /dev/null @@ -1,301 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman; - -use Workerman\Protocols\Http; -use Workerman\Protocols\HttpCache; - -/** - * WebServer. - */ -class WebServer extends Worker -{ - /** - * Virtual host to path mapping. - * - * @var array ['workerman.net'=>'/home', 'www.workerman.net'=>'home/www'] - */ - protected $serverRoot = array(); - - /** - * Mime mapping. - * - * @var array - */ - protected static $mimeTypeMap = array(); - - - /** - * Used to save user OnWorkerStart callback settings. - * - * @var callback - */ - protected $_onWorkerStart = null; - - /** - * Add virtual host. - * - * @param string $domain - * @param string $root_path - * @return void - */ - public function addRoot($domain, $root_path) - { - $this->serverRoot[$domain] = $root_path; - } - - /** - * Construct. - * - * @param string $socket_name - * @param array $context_option - */ - public function __construct($socket_name, $context_option = array()) - { - list(, $address) = explode(':', $socket_name, 2); - parent::__construct('http:' . $address, $context_option); - $this->name = 'WebServer'; - } - - /** - * Run webserver instance. - * - * @see Workerman.Worker::run() - */ - public function run() - { - $this->_onWorkerStart = $this->onWorkerStart; - $this->onWorkerStart = array($this, 'onWorkerStart'); - $this->onMessage = array($this, 'onMessage'); - parent::run(); - } - - /** - * Emit when process start. - * - * @throws \Exception - */ - public function onWorkerStart() - { - if (empty($this->serverRoot)) { - echo new \Exception('server root not set, please use WebServer::addRoot($domain, $root_path) to set server root path'); - exit(250); - } - - // Init mimeMap. - $this->initMimeTypeMap(); - - // Try to emit onWorkerStart callback. - if ($this->_onWorkerStart) { - try { - call_user_func($this->_onWorkerStart, $this); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - } - - /** - * Init mime map. - * - * @return void - */ - public function initMimeTypeMap() - { - $mime_file = Http::getMimeTypesFile(); - if (!is_file($mime_file)) { - $this->log("$mime_file mime.type file not fond"); - return; - } - $items = file($mime_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - if (!is_array($items)) { - $this->log("get $mime_file mime.type content fail"); - return; - } - foreach ($items as $content) { - if (preg_match("/\s*(\S+)\s+(\S.+)/", $content, $match)) { - $mime_type = $match[1]; - $workerman_file_extension_var = $match[2]; - $workerman_file_extension_array = explode(' ', substr($workerman_file_extension_var, 0, -1)); - foreach ($workerman_file_extension_array as $workerman_file_extension) { - self::$mimeTypeMap[$workerman_file_extension] = $mime_type; - } - } - } - } - - /** - * Emit when http message coming. - * - * @param Connection\TcpConnection $connection - * @return void - */ - public function onMessage($connection) - { - // REQUEST_URI. - $workerman_url_info = parse_url($_SERVER['REQUEST_URI']); - if (!$workerman_url_info) { - Http::header('HTTP/1.1 400 Bad Request'); - $connection->close('

400 Bad Request

'); - return; - } - - $workerman_path = isset($workerman_url_info['path']) ? $workerman_url_info['path'] : '/'; - - $workerman_path_info = pathinfo($workerman_path); - $workerman_file_extension = isset($workerman_path_info['extension']) ? $workerman_path_info['extension'] : ''; - if ($workerman_file_extension === '') { - $workerman_path = ($len = strlen($workerman_path)) && $workerman_path[$len - 1] === '/' ? $workerman_path . 'index.php' : $workerman_path . '/index.php'; - $workerman_file_extension = 'php'; - } - - $workerman_root_dir = isset($this->serverRoot[$_SERVER['SERVER_NAME']]) ? $this->serverRoot[$_SERVER['SERVER_NAME']] : current($this->serverRoot); - - $workerman_file = "$workerman_root_dir/$workerman_path"; - - if ($workerman_file_extension === 'php' && !is_file($workerman_file)) { - $workerman_file = "$workerman_root_dir/index.php"; - if (!is_file($workerman_file)) { - $workerman_file = "$workerman_root_dir/index.html"; - $workerman_file_extension = 'html'; - } - } - - // File exsits. - if (is_file($workerman_file)) { - // Security check. - if ((!($workerman_request_realpath = realpath($workerman_file)) || !($workerman_root_dir_realpath = realpath($workerman_root_dir))) || 0 !== strpos($workerman_request_realpath, - $workerman_root_dir_realpath) - ) { - Http::header('HTTP/1.1 400 Bad Request'); - $connection->close('

400 Bad Request

'); - return; - } - - $workerman_file = realpath($workerman_file); - - // Request php file. - if ($workerman_file_extension === 'php') { - $workerman_cwd = getcwd(); - chdir($workerman_root_dir); - ini_set('display_errors', 'off'); - ob_start(); - // Try to include php file. - try { - // $_SERVER. - $_SERVER['REMOTE_ADDR'] = $connection->getRemoteIp(); - $_SERVER['REMOTE_PORT'] = $connection->getRemotePort(); - include $workerman_file; - } catch (\Exception $e) { - // Jump_exit? - if ($e->getMessage() != 'jump_exit') { - echo $e; - } - } - $content = ob_get_clean(); - ini_set('display_errors', 'on'); - if (strtolower($_SERVER['HTTP_CONNECTION']) === "keep-alive") { - $connection->send($content); - } else { - $connection->close($content); - } - chdir($workerman_cwd); - return; - } - - // Send file to client. - return self::sendFile($connection, $workerman_file); - } else { - // 404 - Http::header("HTTP/1.1 404 Not Found"); - $connection->close('404 File not found

404 Not Found

'); - return; - } - } - - public static function sendFile($connection, $file_path) - { - // Check 304. - $info = stat($file_path); - $modified_time = $info ? date('D, d M Y H:i:s', $info['mtime']) . ' GMT' : ''; - if (!empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) && $info) { - // Http 304. - if ($modified_time === $_SERVER['HTTP_IF_MODIFIED_SINCE']) { - // 304 - Http::header('HTTP/1.1 304 Not Modified'); - // Send nothing but http headers.. - $connection->close(''); - return; - } - } - - // Http header. - if ($modified_time) { - $modified_time = "Last-Modified: $modified_time\r\n"; - } - $file_size = filesize($file_path); - $file_info = pathinfo($file_path); - $extension = isset($file_info['extension']) ? $file_info['extension'] : ''; - $file_name = isset($file_info['filename']) ? $file_info['filename'] : ''; - $header = "HTTP/1.1 200 OK\r\n"; - if (isset(self::$mimeTypeMap[$extension])) { - $header .= "Content-Type: " . self::$mimeTypeMap[$extension] . "\r\n"; - } else { - $header .= "Content-Type: application/octet-stream\r\n"; - $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n"; - } - $header .= "Connection: keep-alive\r\n"; - $header .= $modified_time; - $header .= "Content-Length: $file_size\r\n\r\n"; - $trunk_limit_size = 1024*1024; - if ($file_size < $trunk_limit_size) { - return $connection->send($header.file_get_contents($file_path), true); - } - $connection->send($header, true); - - // Read file content from disk piece by piece and send to client. - $connection->fileHandler = fopen($file_path, 'r'); - $do_write = function()use($connection) - { - // Send buffer not full. - while(empty($connection->bufferFull)) - { - // Read from disk. - $buffer = fread($connection->fileHandler, 8192); - // Read eof. - if($buffer === '' || $buffer === false) - { - return; - } - $connection->send($buffer, true); - } - }; - // Send buffer full. - $connection->onBufferFull = function($connection) - { - $connection->bufferFull = true; - }; - // Send buffer drain. - $connection->onBufferDrain = function($connection)use($do_write) - { - $connection->bufferFull = false; - $do_write(); - }; - $do_write(); - } -} diff --git a/vendor/workerman/workerman/Worker.php b/vendor/workerman/workerman/Worker.php deleted file mode 100644 index c09bd33b3..000000000 --- a/vendor/workerman/workerman/Worker.php +++ /dev/null @@ -1,1641 +0,0 @@ - - * @copyright walkor - * @link http://www.workerman.net/ - * @license http://www.opensource.org/licenses/mit-license.php MIT License - */ -namespace Workerman; - -require_once __DIR__ . '/Lib/Constants.php'; - -use Workerman\Events\EventInterface; -use Workerman\Connection\ConnectionInterface; -use Workerman\Connection\TcpConnection; -use Workerman\Connection\UdpConnection; -use Workerman\Lib\Timer; -use Exception; - -/** - * Worker class - * A container for listening ports - */ -class Worker -{ - /** - * Version. - * - * @var string - */ - const VERSION = '3.3.8'; - - /** - * Status starting. - * - * @var int - */ - const STATUS_STARTING = 1; - - /** - * Status running. - * - * @var int - */ - const STATUS_RUNNING = 2; - - /** - * Status shutdown. - * - * @var int - */ - const STATUS_SHUTDOWN = 4; - - /** - * Status reloading. - * - * @var int - */ - const STATUS_RELOADING = 8; - - /** - * After sending the restart command to the child process KILL_WORKER_TIMER_TIME seconds, - * if the process is still living then forced to kill. - * - * @var int - */ - const KILL_WORKER_TIMER_TIME = 2; - - /** - * Default backlog. Backlog is the maximum length of the queue of pending connections. - * - * @var int - */ - const DEFAULT_BACKLOG = 102400; - /** - * Max udp package size. - * - * @var int - */ - const MAX_UDP_PACKAGE_SIZE = 65535; - - /** - * Worker id. - * - * @var int - */ - public $id = 0; - - /** - * Name of the worker processes. - * - * @var string - */ - public $name = 'none'; - - /** - * Number of worker processes. - * - * @var int - */ - public $count = 1; - - /** - * Unix user of processes, needs appropriate privileges (usually root). - * - * @var string - */ - public $user = ''; - - /** - * Unix group of processes, needs appropriate privileges (usually root). - * - * @var string - */ - public $group = ''; - - /** - * reloadable. - * - * @var bool - */ - public $reloadable = true; - - /** - * reuse port. - * - * @var bool - */ - public $reusePort = false; - - /** - * Emitted when worker processes start. - * - * @var callback - */ - public $onWorkerStart = null; - - /** - * Emitted when a socket connection is successfully established. - * - * @var callback - */ - public $onConnect = null; - - /** - * Emitted when data is received. - * - * @var callback - */ - public $onMessage = null; - - /** - * Emitted when the other end of the socket sends a FIN packet. - * - * @var callback - */ - public $onClose = null; - - /** - * Emitted when an error occurs with connection. - * - * @var callback - */ - public $onError = null; - - /** - * Emitted when the send buffer becomes full. - * - * @var callback - */ - public $onBufferFull = null; - - /** - * Emitted when the send buffer becomes empty. - * - * @var callback - */ - public $onBufferDrain = null; - - /** - * Emitted when worker processes stoped. - * - * @var callback - */ - public $onWorkerStop = null; - - /** - * Emitted when worker processes get reload signal. - * - * @var callback - */ - public $onWorkerReload = null; - - /** - * Transport layer protocol. - * - * @var string - */ - public $transport = 'tcp'; - - /** - * Store all connections of clients. - * - * @var array - */ - public $connections = array(); - - /** - * Application layer protocol. - * - * @var Protocols\ProtocolInterface - */ - public $protocol = ''; - - /** - * Root path for autoload. - * - * @var string - */ - protected $_autoloadRootPath = ''; - - /** - * Daemonize. - * - * @var bool - */ - public static $daemonize = false; - - /** - * Stdout file. - * - * @var string - */ - public static $stdoutFile = '/dev/null'; - - /** - * The file to store master process PID. - * - * @var string - */ - public static $pidFile = ''; - - /** - * Log file. - * - * @var mixed - */ - public static $logFile = ''; - - /** - * Global event loop. - * - * @var Events\EventInterface - */ - public static $globalEvent = null; - - /** - * Emitted when the master process get reload signal. - * - * @var callback - */ - public static $onMasterReload = null; - - /** - * Emitted when the master process terminated. - * - * @var callback - */ - public static $onMasterStop = null; - - /** - * The PID of master process. - * - * @var int - */ - protected static $_masterPid = 0; - - /** - * Listening socket. - * - * @var resource - */ - protected $_mainSocket = null; - - /** - * Socket name. The format is like this http://0.0.0.0:80 . - * - * @var string - */ - protected $_socketName = ''; - - /** - * Context of socket. - * - * @var resource - */ - protected $_context = null; - - /** - * All worker instances. - * - * @var array - */ - protected static $_workers = array(); - - /** - * All worker porcesses pid. - * The format is like this [worker_id=>[pid=>pid, pid=>pid, ..], ..] - * - * @var array - */ - protected static $_pidMap = array(); - - /** - * All worker processes waiting for restart. - * The format is like this [pid=>pid, pid=>pid]. - * - * @var array - */ - protected static $_pidsToRestart = array(); - - /** - * Mapping from PID to worker process ID. - * The format is like this [worker_id=>[0=>$pid, 1=>$pid, ..], ..]. - * - * @var array - */ - protected static $_idMap = array(); - - /** - * Current status. - * - * @var int - */ - protected static $_status = self::STATUS_STARTING; - - /** - * Maximum length of the worker names. - * - * @var int - */ - protected static $_maxWorkerNameLength = 12; - - /** - * Maximum length of the socket names. - * - * @var int - */ - protected static $_maxSocketNameLength = 12; - - /** - * Maximum length of the process user names. - * - * @var int - */ - protected static $_maxUserNameLength = 12; - - /** - * The file to store status info of current worker process. - * - * @var string - */ - protected static $_statisticsFile = ''; - - /** - * Start file. - * - * @var string - */ - protected static $_startFile = ''; - - /** - * Status info of current worker process. - * - * @var array - */ - protected static $_globalStatistics = array( - 'start_timestamp' => 0, - 'worker_exit_info' => array() - ); - - /** - * Available event loops. - * - * @var array - */ - protected static $_availableEventLoops = array( - 'libevent', - 'event', - 'ev' - ); - - /** - * Current eventLoop name. - * - * @var string - */ - protected static $_eventLoopName = 'select'; - - /** - * PHP built-in protocols. - * - * @var array - */ - protected static $_builtinTransports = array( - 'tcp' => 'tcp', - 'udp' => 'udp', - 'unix' => 'unix', - 'ssl' => 'tcp' - ); - - /** - * Run all worker instances. - * - * @return void - */ - public static function runAll() - { - self::checkSapiEnv(); - self::init(); - self::parseCommand(); - self::daemonize(); - self::initWorkers(); - self::installSignal(); - self::saveMasterPid(); - self::forkWorkers(); - self::displayUI(); - self::resetStd(); - self::monitorWorkers(); - } - - /** - * Check sapi. - * - * @return void - */ - protected static function checkSapiEnv() - { - // Only for cli. - if (php_sapi_name() != "cli") { - exit("only run in command line mode \n"); - } - } - - /** - * Init. - * - * @return void - */ - protected static function init() - { - // Start file. - $backtrace = debug_backtrace(); - self::$_startFile = $backtrace[count($backtrace) - 1]['file']; - - // Pid file. - if (empty(self::$pidFile)) { - self::$pidFile = __DIR__ . "/../" . str_replace('/', '_', self::$_startFile) . ".pid"; - } - - // Log file. - if (empty(self::$logFile)) { - self::$logFile = __DIR__ . '/../workerman.log'; - } - $log_file = (string)self::$logFile; - touch($log_file); - chmod($log_file, 0622); - - // State. - self::$_status = self::STATUS_STARTING; - - // For statistics. - self::$_globalStatistics['start_timestamp'] = time(); - self::$_statisticsFile = sys_get_temp_dir() . '/workerman.status'; - - // Process title. - self::setProcessTitle('WorkerMan: master process start_file=' . self::$_startFile); - - // Init data for worker id. - self::initId(); - - // Timer init. - Timer::init(); - } - - /** - * Init All worker instances. - * - * @return void - */ - protected static function initWorkers() - { - foreach (self::$_workers as $worker) { - // Worker name. - if (empty($worker->name)) { - $worker->name = 'none'; - } - - // Get maximum length of worker name. - $worker_name_length = strlen($worker->name); - if (self::$_maxWorkerNameLength < $worker_name_length) { - self::$_maxWorkerNameLength = $worker_name_length; - } - - // Get maximum length of socket name. - $socket_name_length = strlen($worker->getSocketName()); - if (self::$_maxSocketNameLength < $socket_name_length) { - self::$_maxSocketNameLength = $socket_name_length; - } - - // Get unix user of the worker process. - if (empty($worker->user)) { - $worker->user = self::getCurrentUser(); - } else { - if (posix_getuid() !== 0 && $worker->user != self::getCurrentUser()) { - self::log('Warning: You must have the root privileges to change uid and gid.'); - } - } - - // Get maximum length of unix user name. - $user_name_length = strlen($worker->user); - if (self::$_maxUserNameLength < $user_name_length) { - self::$_maxUserNameLength = $user_name_length; - } - - // Listen. - if (!$worker->reusePort) { - $worker->listen(); - } - } - } - - /** - * Get all worker instances. - * - * @return array - */ - public static function getAllWorkers() - { - return self::$_workers; - } - - /** - * Get global event-loop instance. - * - * @return EventInterface - */ - public static function getEventLoop() - { - return self::$globalEvent; - } - - /** - * Init idMap. - * return void - */ - protected static function initId() - { - foreach (self::$_workers as $worker_id => $worker) { - $new_id_map = array(); - for($key = 0; $key < $worker->count; $key++) { - $new_id_map[$key] = isset(self::$_idMap[$worker_id][$key]) ? self::$_idMap[$worker_id][$key] : 0; - } - self::$_idMap[$worker_id] = $new_id_map; - } - } - - /** - * Get unix user of current porcess. - * - * @return string - */ - protected static function getCurrentUser() - { - $user_info = posix_getpwuid(posix_getuid()); - return $user_info['name']; - } - - /** - * Display staring UI. - * - * @return void - */ - protected static function displayUI() - { - self::safeEcho("\033[1A\n\033[K-----------------------\033[47;30m WORKERMAN \033[0m-----------------------------\n\033[0m"); - self::safeEcho('Workerman version:'. Worker::VERSION. " PHP version:". PHP_VERSION. "\n"); - self::safeEcho("------------------------\033[47;30m WORKERS \033[0m-------------------------------\n"); - self::safeEcho("\033[47;30muser\033[0m". str_pad('', - self::$_maxUserNameLength + 2 - strlen('user')). "\033[47;30mworker\033[0m". str_pad('', - self::$_maxWorkerNameLength + 2 - strlen('worker')). "\033[47;30mlisten\033[0m". str_pad('', - self::$_maxSocketNameLength + 2 - strlen('listen')). "\033[47;30mprocesses\033[0m \033[47;30m". "status\033[0m\n"); - - foreach (self::$_workers as $worker) { - self::safeEcho(str_pad($worker->user, self::$_maxUserNameLength + 2). str_pad($worker->name, - self::$_maxWorkerNameLength + 2). str_pad($worker->getSocketName(), - self::$_maxSocketNameLength + 2). str_pad(' ' . $worker->count, 9). " \033[32;40m [OK] \033[0m\n"); - } - self::safeEcho("----------------------------------------------------------------\n"); - if (self::$daemonize) { - global $argv; - $start_file = $argv[0]; - self::safeEcho("Input \"php $start_file stop\" to quit. Start success.\n"); - } else { - self::safeEcho("Press Ctrl-C to quit. Start success.\n"); - } - } - - /** - * Parse command. - * php yourfile.php start | stop | restart | reload | status - * - * @return void - */ - protected static function parseCommand() - { - global $argv; - // Check argv; - $start_file = $argv[0]; - if (!isset($argv[1])) { - exit("Usage: php yourfile.php {start|stop|restart|reload|status}\n"); - } - - // Get command. - $command = trim($argv[1]); - $command2 = isset($argv[2]) ? $argv[2] : ''; - - // Start command. - $mode = ''; - if ($command === 'start') { - if ($command2 === '-d' || Worker::$daemonize) { - $mode = 'in DAEMON mode'; - } else { - $mode = 'in DEBUG mode'; - } - } - self::log("Workerman[$start_file] $command $mode"); - - // Get master process PID. - $master_pid = @file_get_contents(self::$pidFile); - $master_is_alive = $master_pid && @posix_kill($master_pid, 0); - // Master is still alive? - if ($master_is_alive) { - if ($command === 'start' && posix_getpid() != $master_pid) { - self::log("Workerman[$start_file] already running"); - exit; - } - } elseif ($command !== 'start' && $command !== 'restart') { - self::log("Workerman[$start_file] not run"); - exit; - } - - // execute command. - switch ($command) { - case 'start': - if ($command2 === '-d') { - Worker::$daemonize = true; - } - break; - case 'status': - if (is_file(self::$_statisticsFile)) { - @unlink(self::$_statisticsFile); - } - // Master process will send status signal to all child processes. - posix_kill($master_pid, SIGUSR2); - // Waiting amoment. - usleep(500000); - // Display statisitcs data from a disk file. - @readfile(self::$_statisticsFile); - exit(0); - case 'restart': - case 'stop': - self::log("Workerman[$start_file] is stoping ..."); - // Send stop signal to master process. - $master_pid && posix_kill($master_pid, SIGINT); - // Timeout. - $timeout = 5; - $start_time = time(); - // Check master process is still alive? - while (1) { - $master_is_alive = $master_pid && posix_kill($master_pid, 0); - if ($master_is_alive) { - // Timeout? - if (time() - $start_time >= $timeout) { - self::log("Workerman[$start_file] stop fail"); - exit; - } - // Waiting amoment. - usleep(10000); - continue; - } - // Stop success. - self::log("Workerman[$start_file] stop success"); - if ($command === 'stop') { - exit(0); - } - if ($command2 === '-d') { - Worker::$daemonize = true; - } - break; - } - break; - case 'reload': - posix_kill($master_pid, SIGUSR1); - self::log("Workerman[$start_file] reload"); - exit; - default : - exit("Usage: php yourfile.php {start|stop|restart|reload|status}\n"); - } - } - - /** - * Install signal handler. - * - * @return void - */ - protected static function installSignal() - { - // stop - pcntl_signal(SIGINT, array('\Workerman\Worker', 'signalHandler'), false); - // reload - pcntl_signal(SIGUSR1, array('\Workerman\Worker', 'signalHandler'), false); - // status - pcntl_signal(SIGUSR2, array('\Workerman\Worker', 'signalHandler'), false); - // ignore - pcntl_signal(SIGPIPE, SIG_IGN, false); - } - - /** - * Reinstall signal handler. - * - * @return void - */ - protected static function reinstallSignal() - { - // uninstall stop signal handler - pcntl_signal(SIGINT, SIG_IGN, false); - // uninstall reload signal handler - pcntl_signal(SIGUSR1, SIG_IGN, false); - // uninstall status signal handler - pcntl_signal(SIGUSR2, SIG_IGN, false); - // reinstall stop signal handler - self::$globalEvent->add(SIGINT, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler')); - // reinstall reload signal handler - self::$globalEvent->add(SIGUSR1, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler')); - // reinstall status signal handler - self::$globalEvent->add(SIGUSR2, EventInterface::EV_SIGNAL, array('\Workerman\Worker', 'signalHandler')); - } - - /** - * Signal handler. - * - * @param int $signal - */ - public static function signalHandler($signal) - { - switch ($signal) { - // Stop. - case SIGINT: - self::stopAll(); - break; - // Reload. - case SIGUSR1: - self::$_pidsToRestart = self::getAllWorkerPids(); - self::reload(); - break; - // Show status. - case SIGUSR2: - self::writeStatisticsToStatusFile(); - break; - } - } - - /** - * Run as deamon mode. - * - * @throws Exception - */ - protected static function daemonize() - { - if (!self::$daemonize) { - return; - } - umask(0); - $pid = pcntl_fork(); - if (-1 === $pid) { - throw new Exception('fork fail'); - } elseif ($pid > 0) { - exit(0); - } - if (-1 === posix_setsid()) { - throw new Exception("setsid fail"); - } - // Fork again avoid SVR4 system regain the control of terminal. - $pid = pcntl_fork(); - if (-1 === $pid) { - throw new Exception("fork fail"); - } elseif (0 !== $pid) { - exit(0); - } - } - - /** - * Redirect standard input and output. - * - * @throws Exception - */ - protected static function resetStd() - { - if (!self::$daemonize) { - return; - } - global $STDOUT, $STDERR; - $handle = fopen(self::$stdoutFile, "a"); - if ($handle) { - unset($handle); - @fclose(STDOUT); - @fclose(STDERR); - $STDOUT = fopen(self::$stdoutFile, "a"); - $STDERR = fopen(self::$stdoutFile, "a"); - } else { - throw new Exception('can not open stdoutFile ' . self::$stdoutFile); - } - } - - /** - * Save pid. - * - * @throws Exception - */ - protected static function saveMasterPid() - { - self::$_masterPid = posix_getpid(); - if (false === @file_put_contents(self::$pidFile, self::$_masterPid)) { - throw new Exception('can not save pid to ' . self::$pidFile); - } - } - - /** - * Get event loop name. - * - * @return string - */ - protected static function getEventLoopName() - { - if (interface_exists('\React\EventLoop\LoopInterface')) { - return 'React'; - } - foreach (self::$_availableEventLoops as $name) { - if (extension_loaded($name)) { - self::$_eventLoopName = $name; - break; - } - } - return self::$_eventLoopName; - } - - /** - * Get all pids of worker processes. - * - * @return array - */ - protected static function getAllWorkerPids() - { - $pid_array = array(); - foreach (self::$_pidMap as $worker_pid_array) { - foreach ($worker_pid_array as $worker_pid) { - $pid_array[$worker_pid] = $worker_pid; - } - } - return $pid_array; - } - - /** - * Fork some worker processes. - * - * @return void - */ - protected static function forkWorkers() - { - foreach (self::$_workers as $worker) { - if (self::$_status === self::STATUS_STARTING) { - if (empty($worker->name)) { - $worker->name = $worker->getSocketName(); - } - $worker_name_length = strlen($worker->name); - if (self::$_maxWorkerNameLength < $worker_name_length) { - self::$_maxWorkerNameLength = $worker_name_length; - } - } - - $worker->count = $worker->count <= 0 ? 1 : $worker->count; - while (count(self::$_pidMap[$worker->workerId]) < $worker->count) { - static::forkOneWorker($worker); - } - } - } - - /** - * Fork one worker process. - * - * @param Worker $worker - * @throws Exception - */ - protected static function forkOneWorker($worker) - { - // Get available worker id. - $id = self::getId($worker->workerId, 0); - if ($id === false) { - return; - } - $pid = pcntl_fork(); - // For master process. - if ($pid > 0) { - self::$_pidMap[$worker->workerId][$pid] = $pid; - self::$_idMap[$worker->workerId][$id] = $pid; - } // For child processes. - elseif (0 === $pid) { - if ($worker->reusePort) { - $worker->listen(); - } - if (self::$_status === self::STATUS_STARTING) { - self::resetStd(); - } - self::$_pidMap = array(); - self::$_workers = array($worker->workerId => $worker); - Timer::delAll(); - self::setProcessTitle('WorkerMan: worker process ' . $worker->name . ' ' . $worker->getSocketName()); - $worker->setUserAndGroup(); - $worker->id = $id; - $worker->run(); - $err = new Exception('event-loop exited'); - self::log($err); - exit(250); - } else { - throw new Exception("forkOneWorker fail"); - } - } - - /** - * Get worker id. - * - * @param int $worker_id - * @param int $pid - */ - protected static function getId($worker_id, $pid) - { - return array_search($pid, self::$_idMap[$worker_id]); - } - - /** - * Set unix user and group for current process. - * - * @return void - */ - public function setUserAndGroup() - { - // Get uid. - $user_info = posix_getpwnam($this->user); - if (!$user_info) { - self::log("Warning: User {$this->user} not exsits"); - return; - } - $uid = $user_info['uid']; - // Get gid. - if ($this->group) { - $group_info = posix_getgrnam($this->group); - if (!$group_info) { - self::log("Warning: Group {$this->group} not exsits"); - return; - } - $gid = $group_info['gid']; - } else { - $gid = $user_info['gid']; - } - - // Set uid and gid. - if ($uid != posix_getuid() || $gid != posix_getgid()) { - if (!posix_setgid($gid) || !posix_initgroups($user_info['name'], $gid) || !posix_setuid($uid)) { - self::log("Warning: change gid or uid fail."); - } - } - } - - /** - * Set process name. - * - * @param string $title - * @return void - */ - protected static function setProcessTitle($title) - { - // >=php 5.5 - if (function_exists('cli_set_process_title')) { - @cli_set_process_title($title); - } // Need proctitle when php<=5.5 . - elseif (extension_loaded('proctitle') && function_exists('setproctitle')) { - @setproctitle($title); - } - } - - /** - * Monitor all child processes. - * - * @return void - */ - protected static function monitorWorkers() - { - self::$_status = self::STATUS_RUNNING; - while (1) { - // Calls signal handlers for pending signals. - pcntl_signal_dispatch(); - // Suspends execution of the current process until a child has exited, or until a signal is delivered - $status = 0; - $pid = pcntl_wait($status, WUNTRACED); - // Calls signal handlers for pending signals again. - pcntl_signal_dispatch(); - // If a child has already exited. - if ($pid > 0) { - // Find out witch worker process exited. - foreach (self::$_pidMap as $worker_id => $worker_pid_array) { - if (isset($worker_pid_array[$pid])) { - $worker = self::$_workers[$worker_id]; - // Exit status. - if ($status !== 0) { - self::log("worker[" . $worker->name . ":$pid] exit with status $status"); - } - - // For Statistics. - if (!isset(self::$_globalStatistics['worker_exit_info'][$worker_id][$status])) { - self::$_globalStatistics['worker_exit_info'][$worker_id][$status] = 0; - } - self::$_globalStatistics['worker_exit_info'][$worker_id][$status]++; - - // Clear process data. - unset(self::$_pidMap[$worker_id][$pid]); - - // Mark id is available. - $id = self::getId($worker_id, $pid); - self::$_idMap[$worker_id][$id] = 0; - - break; - } - } - // Is still running state then fork a new worker process. - if (self::$_status !== self::STATUS_SHUTDOWN) { - self::forkWorkers(); - // If reloading continue. - if (isset(self::$_pidsToRestart[$pid])) { - unset(self::$_pidsToRestart[$pid]); - self::reload(); - } - } else { - // If shutdown state and all child processes exited then master process exit. - if (!self::getAllWorkerPids()) { - self::exitAndClearAll(); - } - } - } else { - // If shutdown state and all child processes exited then master process exit. - if (self::$_status === self::STATUS_SHUTDOWN && !self::getAllWorkerPids()) { - self::exitAndClearAll(); - } - } - } - } - - /** - * Exit current process. - * - * @return void - */ - protected static function exitAndClearAll() - { - foreach (self::$_workers as $worker) { - $socket_name = $worker->getSocketName(); - if ($worker->transport === 'unix' && $socket_name) { - list(, $address) = explode(':', $socket_name, 2); - @unlink($address); - } - } - @unlink(self::$pidFile); - self::log("Workerman[" . basename(self::$_startFile) . "] has been stopped"); - if (self::$onMasterStop) { - call_user_func(self::$onMasterStop); - } - exit(0); - } - - /** - * Execute reload. - * - * @return void - */ - protected static function reload() - { - // For master process. - if (self::$_masterPid === posix_getpid()) { - // Set reloading state. - if (self::$_status !== self::STATUS_RELOADING && self::$_status !== self::STATUS_SHUTDOWN) { - self::log("Workerman[" . basename(self::$_startFile) . "] reloading"); - self::$_status = self::STATUS_RELOADING; - // Try to emit onMasterReload callback. - if (self::$onMasterReload) { - try { - call_user_func(self::$onMasterReload); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - self::initId(); - } - } - - // Send reload signal to all child processes. - $reloadable_pid_array = array(); - foreach (self::$_pidMap as $worker_id => $worker_pid_array) { - $worker = self::$_workers[$worker_id]; - if ($worker->reloadable) { - foreach ($worker_pid_array as $pid) { - $reloadable_pid_array[$pid] = $pid; - } - } else { - foreach ($worker_pid_array as $pid) { - // Send reload signal to a worker process which reloadable is false. - posix_kill($pid, SIGUSR1); - } - } - } - - // Get all pids that are waiting reload. - self::$_pidsToRestart = array_intersect(self::$_pidsToRestart, $reloadable_pid_array); - - // Reload complete. - if (empty(self::$_pidsToRestart)) { - if (self::$_status !== self::STATUS_SHUTDOWN) { - self::$_status = self::STATUS_RUNNING; - } - return; - } - // Continue reload. - $one_worker_pid = current(self::$_pidsToRestart); - // Send reload signal to a worker process. - posix_kill($one_worker_pid, SIGUSR1); - // If the process does not exit after self::KILL_WORKER_TIMER_TIME seconds try to kill it. - Timer::add(self::KILL_WORKER_TIMER_TIME, 'posix_kill', array($one_worker_pid, SIGKILL), false); - } // For child processes. - else { - $worker = current(self::$_workers); - // Try to emit onWorkerReload callback. - if ($worker->onWorkerReload) { - try { - call_user_func($worker->onWorkerReload, $worker); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - - if ($worker->reloadable) { - self::stopAll(); - } - } - } - - /** - * Stop. - * - * @return void - */ - public static function stopAll() - { - self::$_status = self::STATUS_SHUTDOWN; - // For master process. - if (self::$_masterPid === posix_getpid()) { - self::log("Workerman[" . basename(self::$_startFile) . "] Stopping ..."); - $worker_pid_array = self::getAllWorkerPids(); - // Send stop signal to all child processes. - foreach ($worker_pid_array as $worker_pid) { - posix_kill($worker_pid, SIGINT); - Timer::add(self::KILL_WORKER_TIMER_TIME, 'posix_kill', array($worker_pid, SIGKILL), false); - } - } // For child processes. - else { - // Execute exit. - foreach (self::$_workers as $worker) { - $worker->stop(); - } - exit(0); - } - } - - /** - * Write statistics data to disk. - * - * @return void - */ - protected static function writeStatisticsToStatusFile() - { - // For master process. - if (self::$_masterPid === posix_getpid()) { - $loadavg = sys_getloadavg(); - file_put_contents(self::$_statisticsFile, - "---------------------------------------GLOBAL STATUS--------------------------------------------\n"); - file_put_contents(self::$_statisticsFile, - 'Workerman version:' . Worker::VERSION . " PHP version:" . PHP_VERSION . "\n", FILE_APPEND); - file_put_contents(self::$_statisticsFile, 'start time:' . date('Y-m-d H:i:s', - self::$_globalStatistics['start_timestamp']) . ' run ' . floor((time() - self::$_globalStatistics['start_timestamp']) / (24 * 60 * 60)) . ' days ' . floor(((time() - self::$_globalStatistics['start_timestamp']) % (24 * 60 * 60)) / (60 * 60)) . " hours \n", - FILE_APPEND); - $load_str = 'load average: ' . implode(", ", $loadavg); - file_put_contents(self::$_statisticsFile, - str_pad($load_str, 33) . 'event-loop:' . self::getEventLoopName() . "\n", FILE_APPEND); - file_put_contents(self::$_statisticsFile, - count(self::$_pidMap) . ' workers ' . count(self::getAllWorkerPids()) . " processes\n", - FILE_APPEND); - file_put_contents(self::$_statisticsFile, - str_pad('worker_name', self::$_maxWorkerNameLength) . " exit_status exit_count\n", FILE_APPEND); - foreach (self::$_pidMap as $worker_id => $worker_pid_array) { - $worker = self::$_workers[$worker_id]; - if (isset(self::$_globalStatistics['worker_exit_info'][$worker_id])) { - foreach (self::$_globalStatistics['worker_exit_info'][$worker_id] as $worker_exit_status => $worker_exit_count) { - file_put_contents(self::$_statisticsFile, - str_pad($worker->name, self::$_maxWorkerNameLength) . " " . str_pad($worker_exit_status, - 16) . " $worker_exit_count\n", FILE_APPEND); - } - } else { - file_put_contents(self::$_statisticsFile, - str_pad($worker->name, self::$_maxWorkerNameLength) . " " . str_pad(0, 16) . " 0\n", - FILE_APPEND); - } - } - file_put_contents(self::$_statisticsFile, - "---------------------------------------PROCESS STATUS-------------------------------------------\n", - FILE_APPEND); - file_put_contents(self::$_statisticsFile, - "pid\tmemory " . str_pad('listening', self::$_maxSocketNameLength) . " " . str_pad('worker_name', - self::$_maxWorkerNameLength) . " connections " . str_pad('total_request', - 13) . " " . str_pad('send_fail', 9) . " " . str_pad('throw_exception', 15) . "\n", FILE_APPEND); - - chmod(self::$_statisticsFile, 0722); - - foreach (self::getAllWorkerPids() as $worker_pid) { - posix_kill($worker_pid, SIGUSR2); - } - return; - } - - // For child processes. - /** @var Worker $worker */ - $worker = current(self::$_workers); - $worker_status_str = posix_getpid() . "\t" . str_pad(round(memory_get_usage(true) / (1024 * 1024), 2) . "M", - 7) . " " . str_pad($worker->getSocketName(), - self::$_maxSocketNameLength) . " " . str_pad(($worker->name === $worker->getSocketName() ? 'none' : $worker->name), - self::$_maxWorkerNameLength) . " "; - $worker_status_str .= str_pad(ConnectionInterface::$statistics['connection_count'], - 11) . " " . str_pad(ConnectionInterface::$statistics['total_request'], - 14) . " " . str_pad(ConnectionInterface::$statistics['send_fail'], - 9) . " " . str_pad(ConnectionInterface::$statistics['throw_exception'], 15) . "\n"; - file_put_contents(self::$_statisticsFile, $worker_status_str, FILE_APPEND); - } - - /** - * Check errors when current process exited. - * - * @return void - */ - public static function checkErrors() - { - if (self::STATUS_SHUTDOWN != self::$_status) { - $error_msg = "WORKER EXIT UNEXPECTED "; - $errors = error_get_last(); - if ($errors && ($errors['type'] === E_ERROR || - $errors['type'] === E_PARSE || - $errors['type'] === E_CORE_ERROR || - $errors['type'] === E_COMPILE_ERROR || - $errors['type'] === E_RECOVERABLE_ERROR) - ) { - $error_msg .= self::getErrorType($errors['type']) . " {$errors['message']} in {$errors['file']} on line {$errors['line']}"; - } - self::log($error_msg); - } - } - - /** - * Get error message by error code. - * - * @param integer $type - * @return string - */ - protected static function getErrorType($type) - { - switch ($type) { - case E_ERROR: // 1 // - return 'E_ERROR'; - case E_WARNING: // 2 // - return 'E_WARNING'; - case E_PARSE: // 4 // - return 'E_PARSE'; - case E_NOTICE: // 8 // - return 'E_NOTICE'; - case E_CORE_ERROR: // 16 // - return 'E_CORE_ERROR'; - case E_CORE_WARNING: // 32 // - return 'E_CORE_WARNING'; - case E_COMPILE_ERROR: // 64 // - return 'E_COMPILE_ERROR'; - case E_COMPILE_WARNING: // 128 // - return 'E_COMPILE_WARNING'; - case E_USER_ERROR: // 256 // - return 'E_USER_ERROR'; - case E_USER_WARNING: // 512 // - return 'E_USER_WARNING'; - case E_USER_NOTICE: // 1024 // - return 'E_USER_NOTICE'; - case E_STRICT: // 2048 // - return 'E_STRICT'; - case E_RECOVERABLE_ERROR: // 4096 // - return 'E_RECOVERABLE_ERROR'; - case E_DEPRECATED: // 8192 // - return 'E_DEPRECATED'; - case E_USER_DEPRECATED: // 16384 // - return 'E_USER_DEPRECATED'; - } - return ""; - } - - /** - * Log. - * - * @param string $msg - * @return void - */ - public static function log($msg) - { - $msg = $msg . "\n"; - if (!self::$daemonize) { - self::safeEcho($msg); - } - file_put_contents((string)self::$logFile, date('Y-m-d H:i:s') . ' ' . 'pid:'. posix_getpid() . ' ' . $msg, FILE_APPEND | LOCK_EX); - } - - /** - * Safe Echo. - * - * @param $msg - */ - public static function safeEcho($msg) - { - if (!function_exists('posix_isatty') || posix_isatty(STDOUT)) { - echo $msg; - } - } - - /** - * Construct. - * - * @param string $socket_name - * @param array $context_option - */ - public function __construct($socket_name = '', $context_option = array()) - { - // Save all worker instances. - $this->workerId = spl_object_hash($this); - self::$_workers[$this->workerId] = $this; - self::$_pidMap[$this->workerId] = array(); - - // Get autoload root path. - $backtrace = debug_backtrace(); - $this->_autoloadRootPath = dirname($backtrace[0]['file']); - - // Context for socket. - if ($socket_name) { - $this->_socketName = $socket_name; - if (!isset($context_option['socket']['backlog'])) { - $context_option['socket']['backlog'] = self::DEFAULT_BACKLOG; - } - $this->_context = stream_context_create($context_option); - } - - // Set an empty onMessage callback. - $this->onMessage = function () { - }; - } - - /** - * Listen port. - * - * @throws Exception - */ - public function listen() - { - if (!$this->_socketName || $this->_mainSocket) { - return; - } - - // Autoload. - Autoloader::setRootPath($this->_autoloadRootPath); - - // Get the application layer communication protocol and listening address. - list($scheme, $address) = explode(':', $this->_socketName, 2); - // Check application layer protocol class. - if (!isset(self::$_builtinTransports[$scheme])) { - if(class_exists($scheme)){ - $this->protocol = $scheme; - } else { - $scheme = ucfirst($scheme); - $this->protocol = '\\Protocols\\' . $scheme; - if (!class_exists($this->protocol)) { - $this->protocol = "\\Workerman\\Protocols\\$scheme"; - if (!class_exists($this->protocol)) { - throw new Exception("class \\Protocols\\$scheme not exist"); - } - } - } - if (!isset(self::$_builtinTransports[$this->transport])) { - throw new \Exception('Bad worker->transport ' . var_export($this->transport, true)); - } - } else { - $this->transport = $scheme; - } - - $local_socket = self::$_builtinTransports[$this->transport] . ":" . $address; - - // Flag. - $flags = $this->transport === 'udp' ? STREAM_SERVER_BIND : STREAM_SERVER_BIND | STREAM_SERVER_LISTEN; - $errno = 0; - $errmsg = ''; - // SO_REUSEPORT. - if ($this->reusePort) { - stream_context_set_option($this->_context, 'socket', 'so_reuseport', 1); - } - - // Create an Internet or Unix domain server socket. - $this->_mainSocket = stream_socket_server($local_socket, $errno, $errmsg, $flags, $this->_context); - if (!$this->_mainSocket) { - throw new Exception($errmsg); - } - - if ($this->transport === 'ssl') { - stream_socket_enable_crypto($this->_mainSocket, false); - } - - // Try to open keepalive for tcp and disable Nagle algorithm. - if (function_exists('socket_import_stream') && self::$_builtinTransports[$this->transport] === 'tcp') { - $socket = socket_import_stream($this->_mainSocket); - @socket_set_option($socket, SOL_SOCKET, SO_KEEPALIVE, 1); - @socket_set_option($socket, SOL_TCP, TCP_NODELAY, 1); - } - - // Non blocking. - stream_set_blocking($this->_mainSocket, 0); - - // Register a listener to be notified when server socket is ready to read. - if (self::$globalEvent) { - if ($this->transport !== 'udp') { - self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, array($this, 'acceptConnection')); - } else { - self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, - array($this, 'acceptUdpConnection')); - } - } - } - - /** - * Get socket name. - * - * @return string - */ - public function getSocketName() - { - return $this->_socketName ? lcfirst($this->_socketName) : 'none'; - } - - /** - * Run worker instance. - * - * @return void - */ - public function run() - { - //Update process state. - self::$_status = self::STATUS_RUNNING; - - // Register shutdown function for checking errors. - register_shutdown_function(array("\\Workerman\\Worker", 'checkErrors')); - - // Set autoload root path. - Autoloader::setRootPath($this->_autoloadRootPath); - - // Create a global event loop. - if (!self::$globalEvent) { - $eventLoopClass = "\\Workerman\\Events\\" . ucfirst(self::getEventLoopName()); - self::$globalEvent = new $eventLoopClass; - // Register a listener to be notified when server socket is ready to read. - if ($this->_socketName) { - if ($this->transport !== 'udp') { - self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, - array($this, 'acceptConnection')); - } else { - self::$globalEvent->add($this->_mainSocket, EventInterface::EV_READ, - array($this, 'acceptUdpConnection')); - } - } - } - - // Reinstall signal. - self::reinstallSignal(); - - // Init Timer. - Timer::init(self::$globalEvent); - - // Try to emit onWorkerStart callback. - if ($this->onWorkerStart) { - try { - call_user_func($this->onWorkerStart, $this); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - - // Main loop. - self::$globalEvent->loop(); - } - - /** - * Stop current worker instance. - * - * @return void - */ - public function stop() - { - // Try to emit onWorkerStop callback. - if ($this->onWorkerStop) { - try { - call_user_func($this->onWorkerStop, $this); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - // Remove listener for server socket. - self::$globalEvent->del($this->_mainSocket, EventInterface::EV_READ); - @fclose($this->_mainSocket); - } - - /** - * Accept a connection. - * - * @param resource $socket - * @return void - */ - public function acceptConnection($socket) - { - // Accept a connection on server socket. - $new_socket = @stream_socket_accept($socket, 0, $remote_address); - // Thundering herd. - if (!$new_socket) { - return; - } - - // TcpConnection. - $connection = new TcpConnection($new_socket, $remote_address); - $this->connections[$connection->id] = $connection; - $connection->worker = $this; - $connection->protocol = $this->protocol; - $connection->transport = $this->transport; - $connection->onMessage = $this->onMessage; - $connection->onClose = $this->onClose; - $connection->onError = $this->onError; - $connection->onBufferDrain = $this->onBufferDrain; - $connection->onBufferFull = $this->onBufferFull; - - // Try to emit onConnect callback. - if ($this->onConnect) { - try { - call_user_func($this->onConnect, $connection); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - } - - /** - * For udp package. - * - * @param resource $socket - * @return bool - */ - public function acceptUdpConnection($socket) - { - $recv_buffer = stream_socket_recvfrom($socket, self::MAX_UDP_PACKAGE_SIZE, 0, $remote_address); - if (false === $recv_buffer || empty($remote_address)) { - return false; - } - // UdpConnection. - $connection = new UdpConnection($socket, $remote_address); - $connection->protocol = $this->protocol; - if ($this->onMessage) { - if ($this->protocol) { - $parser = $this->protocol; - $recv_buffer = $parser::decode($recv_buffer, $connection); - // Discard bad packets. - if ($recv_buffer === false) - return true; - } - ConnectionInterface::$statistics['total_request']++; - try { - call_user_func($this->onMessage, $connection, $recv_buffer); - } catch (\Exception $e) { - self::log($e); - exit(250); - } catch (\Error $e) { - self::log($e); - exit(250); - } - } - return true; - } -} diff --git a/vendor/workerman/workerman/composer.json b/vendor/workerman/workerman/composer.json deleted file mode 100644 index 733ab8a6c..000000000 --- a/vendor/workerman/workerman/composer.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name" : "workerman/workerman", - "type" : "library", - "keywords": ["event-loop", "asynchronous"], - "homepage": "http://www.workerman.net", - "license" : "MIT", - "description": "An asynchronous event driven PHP framework for easily building fast, scalable network applications.", - "authors" : [ - { - "name" : "walkor", - "email" : "walkor@workerman.net", - "homepage" : "http://www.workerman.net", - "role": "Developer" - } - ], - "support" : { - "email" : "walkor@workerman.net", - "issues": "https://github.com/walkor/workerman/issues", - "forum" : "http://wenda.workerman.net/", - "wiki" : "http://doc3.workerman.net/index.html", - "source": "https://github.com/walkor/workerman" - }, - "require": { - "php": ">=5.3" - }, - "suggest": { - "ext-event": "For better performance." - }, - "autoload": { - "psr-4": {"Workerman\\": "./"} - }, - "minimum-stability":"dev" -}