O:60:"SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult":7:{s:72:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult interfaces";a:0:{}s:69:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult classes";a:1:{s:40:"BuyerKiosk\Demo\Services\DemoRateLimiter";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Class_":10:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ name";s:15:"DemoRateLimiter";s:68:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ namespacedName";s:40:"BuyerKiosk\Demo\Services\DemoRateLimiter";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ namespace";s:24:"BuyerKiosk\Demo\Services";s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ file";s:102:"/Users/rvanvuren/Projects/buyerkiosk-web/userfrosting/src/BuyerKiosk/Demo/Services/DemoRateLimiter.php";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ startLine";i:19;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ endLine";i:233;s:65:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ parentClass";N;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ interfaces";a:0:{}s:60:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ traits";a:0:{}s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Class_ methods";a:10:{s:11:"__construct";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:11:"__construct";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:46;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:54;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";E:63:"SebastianBergmann\CodeCoverage\StaticAnalysis\Visibility:Public";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:57:"__construct($redis, int $maxAttempts, int $windowSeconds)";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:9:"isAllowed";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:9:"isAllowed";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:64;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:74;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:27:"isAllowed(string $ip): bool";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:2;}s:18:"isAllowedWithEmail";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:18:"isAllowedWithEmail";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:85;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:107;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:51:"isAllowedWithEmail(string $ip, string $email): bool";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:4;}s:20:"getRemainingAttempts";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:20:"getRemainingAttempts";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:115;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:121;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:37:"getRemainingAttempts(string $ip): int";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:13:"getRetryAfter";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:13:"getRetryAfter";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:129;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:151;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:46:"getRetryAfter(string $ip, ?string $email): int";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:5;}s:6:"record";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:6:"record";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:158;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:165;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:24:"record(string $ip): void";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:2;}s:5:"reset";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:5:"reset";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:172;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:176;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:23:"reset(string $ip): void";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:10:"resetEmail";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:10:"resetEmail";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:183;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:187;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:19;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:31:"resetEmail(string $email): void";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:1;}s:6:"getKey";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:6:"getKey";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:196;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:204;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";E:64:"SebastianBergmann\CodeCoverage\StaticAnalysis\Visibility:Private";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:48:"getKey(string $identifier, string $type): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:2;}s:11:"normalizeIp";O:52:"SebastianBergmann\CodeCoverage\StaticAnalysis\Method":6:{s:58:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method name";s:11:"normalizeIp";s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method startLine";i:214;s:61:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method endLine";i:232;s:64:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method visibility";r:75;s:63:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method signature";s:31:"normalizeIp(string $ip): string";s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\Method cyclomaticComplexity";i:4;}}}}s:68:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult traits";a:0:{}s:71:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult functions";a:0:{}s:73:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult linesOfCode";O:57:"SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode":3:{s:70:" SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode linesOfCode";i:234;s:77:" SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode commentLinesOfCode";i:88;s:80:" SebastianBergmann\CodeCoverage\StaticAnalysis\LinesOfCode nonCommentLinesOfCode";i:146;}s:77:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult executableLines";a:56:{i:51;i:9;i:52;i:10;i:53;i:11;i:66;i:12;i:67;i:13;i:69;i:14;i:70;i:15;i:73;i:16;i:87;i:17;i:88;i:18;i:90;i:19;i:91;i:20;i:92;i:21;i:93;i:22;i:95;i:23;i:96;i:24;i:99;i:25;i:100;i:26;i:102;i:27;i:103;i:28;i:106;i:29;i:117;i:30;i:118;i:31;i:120;i:32;i:131;i:33;i:132;i:34;i:133;i:35;i:136;i:36;i:137;i:37;i:138;i:38;i:139;i:39;i:140;i:40;i:143;i:41;i:144;i:42;i:145;i:43;i:147;i:44;i:150;i:45;i:160;i:46;i:161;i:47;i:162;i:48;i:163;i:49;i:174;i:50;i:175;i:51;i:185;i:52;i:186;i:53;i:199;i:54;i:200;i:55;i:203;i:56;i:217;i:57;i:218;i:58;i:222;i:59;i:224;i:60;i:225;i:61;i:226;i:62;i:227;i:63;i:231;i:64;}s:74:" SebastianBergmann\CodeCoverage\StaticAnalysis\AnalysisResult ignoredLines";a:1:{i:0;i:19;}}