{@inhericDoc}
@see \MyArtJaub\Webtrees\Module\Certificates\Model\CertificateProviderInterface::getCertificatesListBeginWith()
357848
public function getCertificatesListBeginWith($city, $contains, $limit= 9999){
        $tabFiles= array();
        $dirPath= $this->getRealCertificatesDirectory() . Functions::encodeUtf8ToFileSystem($city).'/';
        $contains = utf8_decode($contains);
        $nbCert = 0;
    
        if(is_dir($dirPath)){
            $dir=opendir($dirPath);
            while(($entry = readdir($dir)) && $nbCert < $limit){
                if($entry!='.' && $entry!='..' && $entry!='Thumbs.db' &&!is_dir($dirPath.$entry.'/') && stripos($entry, $contains)!== false){
                    $tabFiles[]= Functions::encodeFileSystemToUtf8($entry);
                    $nbCert++;
                }
            }
        }
        sort($tabFiles);
        return $tabFiles;
    }
231714
protected function initPublicCertificate()
    {
        if (!empty($this->publicCertificateFile)) {
            if (!file_exists($this->publicCertificateFile)) {
                throw new InvalidConfigException("Public certificate file '{$this->publicCertificateFile}' does not exist!");
            }
            return file_get_contents($this->publicCertificateFile);
        }
        return '';
    }
178936
public function with($with)
    {
        if (is_string($with)) {
            if (strpos($with, ',') === false) {
                $with = [$with];
            } else {
                $with = (array)preg_split('#[\s,]+#', $with, -1, PREG_SPLIT_NO_EMPTY);
            }
        }

        $with = $this->_with ? array_merge($this->_with, $with) : $with;

        foreach ($with as $k => $v) {
            $name = is_string($k) ? $k : $v;
            if (($pos = strpos($name, '.')) === false) {
                continue;
            }
            $parent_name = substr($name, 0, $pos);
            $child_name = substr($name, $pos + 1);
            if (!isset($with[$parent_name])) {
                continue;
            }

            $parent_value = $with[$parent_name];
            if (!$parent_value instanceof QueryInterface) {
                $with[$parent_name] = $this->relationsManager->getQuery($this->_model, $parent_name, $parent_value);
            }

            $with[$parent_name]->with(is_int($k) ? [$child_name] : [$child_name => $v]);
            unset($with[$k]);
        }

        $this->_with = $with;

        return $this;
    }
694563
private function getRegistrantElement()
    {
        if (isset($this->isbnSplit[0]) === true) {
            $soFar = implode('-', $this->isbnSplit);
        } else {
            $soFar = '978-'.$this->isbnSplit[1];
        }

        switch ($soFar) {
            case '978-0':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "2279999", 3, 2);
                $this->range("2280000", "2289999", 4, 2);
                $this->range("2290000", "6389999", 3, 2);
                $this->range("6390000", "6398999", 4, 2);
                $this->range("6399000", "6399999", 7, 2);
                $this->range("6400000", "6479999", 3, 2);
                $this->range("6480000", "6489999", 7, 2);
                $this->range("6490000", "6549999", 3, 2);
                $this->range("6550000", "6559999", 4, 2);
                $this->range("6560000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9499999", 6, 2);
                $this->range("9500000", "9999999", 7, 2);
                break;
            case '978-1':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "3999999", 3, 2);
                $this->range("4000000", "5499999", 4, 2);
                $this->range("5500000", "7319999", 5, 2);
                $this->range("7320000", "7399999", 7, 2);
                $this->range("7400000", "7749999", 5, 2);
                $this->range("7750000", "7753999", 7, 2);
                $this->range("7754000", "8697999", 5, 2);
                $this->range("8698000", "9729999", 6, 2);
                $this->range("9730000", "9877999", 4, 2);
                $this->range("9878000", "9989999", 6, 2);
                $this->range("9990000", "9999999", 7, 2);
                break;
            case '978-2':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "3499999", 3, 2);
                $this->range("3500000", "3999999", 5, 2);
                $this->range("4000000", "4899999", 3, 2);
                $this->range("4900000", "4949999", 6, 2);
                $this->range("4950000", "6999999", 3, 2);
                $this->range("7000000", "8399999", 4, 2);
                $this->range("8400000", "8999999", 5, 2);
                $this->range("9000000", "9197999", 6, 2);
                $this->range("9198000", "9198099", 5, 2);
                $this->range("9198100", "9199429", 6, 2);
                $this->range("9199430", "9199689", 7, 2);
                $this->range("9199690", "9499999", 6, 2);
                $this->range("9500000", "9999999", 7, 2);
                break;
            case '978-3':
                $this->range("0000000", "0299999", 2, 2);
                $this->range("0300000", "0339999", 3, 2);
                $this->range("0340000", "0369999", 4, 2);
                $this->range("0370000", "0399999", 5, 2);
                $this->range("0400000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9499999", 6, 2);
                $this->range("9500000", "9539999", 7, 2);
                $this->range("9540000", "9699999", 5, 2);
                $this->range("9700000", "9899999", 7, 2);
                $this->range("9900000", "9949999", 5, 2);
                $this->range("9950000", "9999999", 5, 2);
                break;
            case '978-4':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9499999", 6, 2);
                $this->range("9500000", "9999999", 7, 2);
                break;
            case '978-5':
                $this->range("0000000", "0049999", 5, 2);
                $this->range("0050000", "0099999", 4, 2);
                $this->range("0100000", "1999999", 2, 2);
                $this->range("2000000", "4209999", 3, 2);
                $this->range("4210000", "4299999", 4, 2);
                $this->range("4300000", "4309999", 3, 2);
                $this->range("4310000", "4399999", 4, 2);
                $this->range("4400000", "4409999", 3, 2);
                $this->range("4410000", "4499999", 4, 2);
                $this->range("4500000", "6039999", 3, 2);
                $this->range("6040000", "6049999", 7, 2);
                $this->range("6050000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9099999", 6, 2);
                $this->range("9100000", "9199999", 5, 2);
                $this->range("9200000", "9299999", 4, 2);
                $this->range("9300000", "9499999", 5, 2);
                $this->range("9500000", "9500999", 7, 2);
                $this->range("9501000", "9799999", 4, 2);
                $this->range("9800000", "9899999", 5, 2);
                $this->range("9900000", "9909999", 7, 2);
                $this->range("9910000", "9999999", 4, 2);
                break;
            case '978-600':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "4999999", 3, 2);
                $this->range("5000000", "8999999", 4, 2);
                $this->range("9000000", "9867999", 5, 2);
                $this->range("9868000", "9929999", 4, 2);
                $this->range("9930000", "9959999", 3, 2);
                $this->range("9960000", "9999999", 5, 2);
                break;
            case '978-601':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "7999999", 4, 2);
                $this->range("8000000", "8499999", 5, 2);
                $this->range("8500000", "9999999", 2, 2);
                break;
            case '978-602':
                $this->range("0000000", "0799999", 2, 2);
                $this->range("0800000", "0899999", 4, 2);
                $this->range("0900000", "1099999", 4, 2);
                $this->range("1100000", "1199999", 4, 2);
                $this->range("1200000", "1399999", 4, 2);
                $this->range("1400000", "1499999", 5, 2);
                $this->range("1500000", "1699999", 4, 2);
                $this->range("1700000", "1799999", 5, 2);
                $this->range("1800000", "1899999", 5, 2);
                $this->range("1900000", "1999999", 5, 2);
                $this->range("2000000", "4999999", 3, 2);
                $this->range("5000000", "5399999", 5, 2);
                $this->range("5400000", "5999999", 4, 2);
                $this->range("6000000", "6199999", 5, 2);
                $this->range("6200000", "6749999", 4, 2);
                $this->range("6750000", "6999999", 4, 2);
                $this->range("7000000", "7499999", 5, 2);
                $this->range("7500000", "7999999", 4, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-603':
                $this->range("0000000", "0499999", 2, 2);
                $this->range("0500000", "4999999", 2, 2);
                $this->range("5000000", "7999999", 3, 2);
                $this->range("8000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-604':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "8999999", 2, 2);
                $this->range("9000000", "9799999", 3, 2);
                $this->range("9800000", "9999999", 4, 2);
                break;
            case '978-605':
                $this->range("0000000", "0099999", 0, 2);
                $this->range("0100000", "0299999", 2, 2);
                $this->range("0300000", "0399999", 3, 2);
                $this->range("0400000", "0999999", 2, 2);
                $this->range("1000000", "1999999", 3, 2);
                $this->range("2000000", "2399999", 4, 2);
                $this->range("2400000", "3999999", 3, 2);
                $this->range("4000000", "5999999", 4, 2);
                $this->range("6000000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-606':
                $this->range("0000000", "0999999", 3, 2);
                $this->range("1000000", "4999999", 2, 2);
                $this->range("5000000", "7999999", 3, 2);
                $this->range("8000000", "9099999", 4, 2);
                $this->range("9100000", "9199999", 3, 2);
                $this->range("9200000", "9749999", 5, 2);
                $this->range("9750000", "9999999", 3, 2);
                break;
            case '978-607':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "7499999", 3, 2);
                $this->range("7500000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-608':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "1999999", 2, 2);
                $this->range("2000000", "4499999", 3, 2);
                $this->range("4500000", "6499999", 4, 2);
                $this->range("6500000", "6999999", 5, 2);
                $this->range("7000000", "9999999", 1, 2);
                break;
            case '978-609':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-611':
                $this->range("0000000", "9999999", 0, 2);
                break;
            case '978-612':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "3999999", 3, 2);
                $this->range("4000000", "4499999", 4, 2);
                $this->range("4500000", "4999999", 5, 2);
                $this->range("5000000", "9999999", 2, 2);
                break;
            case '978-613':
                $this->range("0000000", "9999999", 1, 2);
                break;
            case '978-614':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-615':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "4999999", 3, 2);
                $this->range("5000000", "7999999", 4, 2);
                $this->range("8000000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 0, 2);
                break;
            case '978-616':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-617':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-618':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "4999999", 3, 2);
                $this->range("5000000", "7999999", 4, 2);
                $this->range("8000000", "9999999", 5, 2);
                break;
            case '978-619':
                $this->range("0000000", "1499999", 2, 2);
                $this->range("1500000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-620':
                $this->range("0000000", "9999999", 1, 2);
                break;
            case '978-621':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "3999999", 0, 2);
                $this->range("4000000", "5999999", 3, 2);
                $this->range("6000000", "7999999", 0, 2);
                $this->range("8000000", "8999999", 4, 2);
                $this->range("9000000", "9499999", 0, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-7':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "4999999", 3, 2);
                $this->range("5000000", "7999999", 4, 2);
                $this->range("8000000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 6, 2);
                break;
            case '978-80':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 6, 2);
                break;
            case '978-81':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 6, 2);
                break;
            case '978-82':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6899999", 3, 2);
                $this->range("6900000", "6999999", 6, 2);
                $this->range("7000000", "8999999", 4, 2);
                $this->range("9000000", "9899999", 5, 2);
                $this->range("9900000", "9999999", 6, 2);
                break;
            case '978-83':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "5999999", 3, 2);
                $this->range("6000000", "6999999", 5, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 6, 2);
                break;
            case '978-84':
                $this->range("0000000", "1299999", 2, 2);
                $this->range("1300000", "1399999", 4, 2);
                $this->range("1400000", "1499999", 3, 2);
                $this->range("1500000", "1999999", 5, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9199999", 4, 2);
                $this->range("9200000", "9239999", 6, 2);
                $this->range("9240000", "9299999", 5, 2);
                $this->range("9300000", "9499999", 6, 2);
                $this->range("9500000", "9699999", 5, 2);
                $this->range("9700000", "9999999", 4, 2);
                break;
            case '978-85':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "5439999", 3, 2);
                $this->range("5440000", "5479999", 4, 2);
                $this->range("5480000", "5499999", 5, 2);
                $this->range("5500000", "5999999", 4, 2);
                $this->range("6000000", "6999999", 5, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9249999", 6, 2);
                $this->range("9250000", "9449999", 5, 2);
                $this->range("9450000", "9599999", 4, 2);
                $this->range("9600000", "9799999", 2, 2);
                $this->range("9800000", "9999999", 5, 2);
                break;
            case '978-86':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "5999999", 3, 2);
                $this->range("6000000", "7999999", 4, 2);
                $this->range("8000000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 6, 2);
                break;
            case '978-87':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "3999999", 0, 2);
                $this->range("4000000", "6499999", 3, 2);
                $this->range("6500000", "6999999", 0, 2);
                $this->range("7000000", "7999999", 4, 2);
                $this->range("8000000", "8499999", 0, 2);
                $this->range("8500000", "9499999", 5, 2);
                $this->range("9500000", "9699999", 0, 2);
                $this->range("9700000", "9999999", 6, 2);
                break;
            case '978-88':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "3269999", 3, 2);
                $this->range("3270000", "3389999", 4, 2);
                $this->range("3390000", "5999999", 3, 2);
                $this->range("6000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9099999", 6, 2);
                $this->range("9100000", "9299999", 3, 2);
                $this->range("9300000", "9399999", 4, 2);
                $this->range("9400000", "9479999", 6, 2);
                $this->range("9480000", "9499999", 5, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-89':
                $this->range("0000000", "2499999", 2, 2);
                $this->range("2500000", "5499999", 3, 2);
                $this->range("5500000", "8499999", 4, 2);
                $this->range("8500000", "9499999", 5, 2);
                $this->range("9500000", "9699999", 6, 2);
                $this->range("9700000", "9899999", 5, 2);
                $this->range("9900000", "9999999", 3, 2);
                break;
            case '978-90':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "4999999", 3, 2);
                $this->range("5000000", "6999999", 4, 2);
                $this->range("7000000", "7999999", 5, 2);
                $this->range("8000000", "8499999", 6, 2);
                $this->range("8500000", "8999999", 4, 2);
                $this->range("9000000", "9099999", 2, 2);
                $this->range("9100000", "9399999", 0, 2);
                $this->range("9400000", "9499999", 2, 2);
                $this->range("9500000", "9999999", 0, 2);
                break;
            case '978-91':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "4999999", 2, 2);
                $this->range("5000000", "6499999", 3, 2);
                $this->range("6500000", "6999999", 0, 2);
                $this->range("7000000", "7999999", 4, 2);
                $this->range("8000000", "8499999", 0, 2);
                $this->range("8500000", "9499999", 5, 2);
                $this->range("9500000", "9699999", 0, 2);
                $this->range("9700000", "9999999", 6, 2);
                break;
            case '978-92':
                $this->range("0000000", "5999999", 1, 2);
                $this->range("6000000", "7999999", 2, 2);
                $this->range("8000000", "8999999", 3, 2);
                $this->range("9000000", "9499999", 4, 2);
                $this->range("9500000", "9899999", 5, 2);
                $this->range("9900000", "9999999", 6, 2);
                break;
            case '978-93':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "4999999", 3, 2);
                $this->range("5000000", "7999999", 4, 2);
                $this->range("8000000", "9499999", 5, 2);
                $this->range("9500000", "9999999", 6, 2);
                break;
            case '978-94':
                $this->range("0000000", "5999999", 3, 2);
                $this->range("6000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-950':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "8999999", 3, 2);
                $this->range("9000000", "9899999", 4, 2);
                $this->range("9900000", "9999999", 5, 2);
                break;
            case '978-951':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5499999", 2, 2);
                $this->range("5500000", "8899999", 3, 2);
                $this->range("8900000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-952':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "4999999", 3, 2);
                $this->range("5000000", "5999999", 4, 2);
                $this->range("6000000", "6599999", 2, 2);
                $this->range("6600000", "6699999", 4, 2);
                $this->range("6700000", "6999999", 5, 2);
                $this->range("7000000", "7999999", 4, 2);
                $this->range("8000000", "9499999", 2, 2);
                $this->range("9500000", "9899999", 4, 2);
                $this->range("9900000", "9999999", 5, 2);
                break;
            case '978-953':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "1499999", 2, 2);
                $this->range("1500000", "5099999", 3, 2);
                $this->range("5100000", "5499999", 2, 2);
                $this->range("5500000", "5999999", 5, 2);
                $this->range("6000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-954':
                $this->range("0000000", "2899999", 2, 2);
                $this->range("2900000", "2999999", 4, 2);
                $this->range("3000000", "7999999", 3, 2);
                $this->range("8000000", "8999999", 4, 2);
                $this->range("9000000", "9299999", 5, 2);
                $this->range("9300000", "9999999", 4, 2);
                break;
            case '978-955':
                $this->range("0000000", "1999999", 4, 2);
                $this->range("2000000", "3599999", 2, 2);
                $this->range("3600000", "3799999", 4, 2);
                $this->range("3800000", "3899999", 5, 2);
                $this->range("3900000", "4099999", 4, 2);
                $this->range("4100000", "4499999", 5, 2);
                $this->range("4500000", "4999999", 4, 2);
                $this->range("5000000", "5499999", 5, 2);
                $this->range("5500000", "7199999", 3, 2);
                $this->range("7200000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-956':
                $this->range("0000000", "0899999", 2, 2);
                $this->range("0900000", "0999999", 5, 2);
                $this->range("1000000", "1999999", 2, 2);
                $this->range("2000000", "5999999", 3, 2);
                $this->range("6000000", "6999999", 4, 2);
                $this->range("7000000", "9999999", 4, 2);
                break;
            case '978-957':
                $this->range("0000000", "0299999", 2, 2);
                $this->range("0300000", "0499999", 4, 2);
                $this->range("0500000", "1999999", 2, 2);
                $this->range("2000000", "2099999", 4, 2);
                $this->range("2100000", "2799999", 2, 2);
                $this->range("2800000", "3099999", 5, 2);
                $this->range("3100000", "4399999", 2, 2);
                $this->range("4400000", "8199999", 3, 2);
                $this->range("8200000", "9699999", 4, 2);
                $this->range("9700000", "9999999", 5, 2);
                break;
            case '978-958':
                $this->range("0000000", "5399999", 2, 2);
                $this->range("5400000", "5599999", 4, 2);
                $this->range("5600000", "5699999", 5, 2);
                $this->range("5700000", "5999999", 5, 2);
                $this->range("6000000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-959':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "9999999", 5, 2);
                break;
            case '978-960':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6599999", 3, 2);
                $this->range("6600000", "6899999", 4, 2);
                $this->range("6900000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "9299999", 5, 2);
                $this->range("9300000", "9399999", 2, 2);
                $this->range("9400000", "9799999", 4, 2);
                $this->range("9800000", "9999999", 5, 2);
                break;
            case '978-961':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "5999999", 3, 2);
                $this->range("6000000", "8999999", 4, 2);
                $this->range("9000000", "9499999", 5, 2);
                $this->range("9500000", "9999999", 0, 2);
                break;
            case '978-962':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8699999", 5, 2);
                $this->range("8700000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-963':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-964':
                $this->range("0000000", "1499999", 2, 2);
                $this->range("1500000", "2499999", 3, 2);
                $this->range("2500000", "2999999", 4, 2);
                $this->range("3000000", "5499999", 3, 2);
                $this->range("5500000", "8999999", 4, 2);
                $this->range("9000000", "9699999", 5, 2);
                $this->range("9700000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-965':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "5999999", 3, 2);
                $this->range("6000000", "6999999", 0, 2);
                $this->range("7000000", "7999999", 4, 2);
                $this->range("8000000", "8999999", 0, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-966':
                $this->range("0000000", "1299999", 2, 2);
                $this->range("1300000", "1399999", 3, 2);
                $this->range("1400000", "1499999", 2, 2);
                $this->range("1500000", "1699999", 4, 2);
                $this->range("1700000", "1999999", 3, 2);
                $this->range("2000000", "2789999", 4, 2);
                $this->range("2790000", "2899999", 3, 2);
                $this->range("2900000", "2999999", 4, 2);
                $this->range("3000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 4, 2);
                $this->range("9000000", "9099999", 5, 2);
                $this->range("9100000", "9499999", 3, 2);
                $this->range("9500000", "9799999", 5, 2);
                $this->range("9800000", "9999999", 3, 2);
                break;
            case '978-967':
                $this->range("0000000", "0099999", 2, 2);
                $this->range("0100000", "0999999", 4, 2);
                $this->range("1000000", "1999999", 5, 2);
                $this->range("2000000", "2499999", 4, 2);
                $this->range("2500000", "2999999", 0, 2);
                $this->range("3000000", "4999999", 3, 2);
                $this->range("5000000", "5999999", 4, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9899999", 3, 2);
                $this->range("9900000", "9989999", 4, 2);
                $this->range("9990000", "9999999", 5, 2);
                break;
            case '978-968':
                $this->range("0100000", "3999999", 2, 2);
                $this->range("4000000", "4999999", 3, 2);
                $this->range("5000000", "7999999", 4, 2);
                $this->range("8000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-969':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "2299999", 2, 2);
                $this->range("2300000", "2399999", 5, 2);
                $this->range("2400000", "3999999", 2, 2);
                $this->range("4000000", "7499999", 3, 2);
                $this->range("7500000", "9999999", 4, 2);
                break;
            case '978-970':
                $this->range("0100000", "5999999", 2, 2);
                $this->range("6000000", "8999999", 3, 2);
                $this->range("9000000", "9099999", 4, 2);
                $this->range("9100000", "9699999", 5, 2);
                $this->range("9700000", "9999999", 4, 2);
                break;
            case '978-971':
                $this->range("0000000", "0159999", 3, 2);
                $this->range("0160000", "0199999", 4, 2);
                $this->range("0200000", "0299999", 2, 2);
                $this->range("0300000", "0599999", 4, 2);
                $this->range("0600000", "4999999", 2, 2);
                $this->range("5000000", "8499999", 3, 2);
                $this->range("8500000", "9099999", 4, 2);
                $this->range("9100000", "9599999", 5, 2);
                $this->range("9600000", "9699999", 4, 2);
                $this->range("9700000", "9899999", 2, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-972':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5499999", 2, 2);
                $this->range("5500000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-973':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "1699999", 3, 2);
                $this->range("1700000", "1999999", 4, 2);
                $this->range("2000000", "5499999", 2, 2);
                $this->range("5500000", "7599999", 3, 2);
                $this->range("7600000", "8499999", 4, 2);
                $this->range("8500000", "8899999", 5, 2);
                $this->range("8900000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-974':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 4, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9499999", 5, 2);
                $this->range("9500000", "9999999", 4, 2);
                break;
            case '978-975':
                $this->range("0000000", "0199999", 5, 2);
                $this->range("0200000", "2399999", 2, 2);
                $this->range("2400000", "2499999", 4, 2);
                $this->range("2500000", "5999999", 3, 2);
                $this->range("6000000", "9199999", 4, 2);
                $this->range("9200000", "9899999", 5, 2);
                $this->range("9900000", "9999999", 3, 2);
                break;
            case '978-976':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "5999999", 2, 2);
                $this->range("6000000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-977':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "4999999", 3, 2);
                $this->range("5000000", "6999999", 4, 2);
                $this->range("7000000", "8499999", 3, 2);
                $this->range("8500000", "8999999", 5, 2);
                $this->range("9000000", "9999999", 2, 2);
                break;
            case '978-978':
                $this->range("0000000", "1999999", 3, 2);
                $this->range("2000000", "2999999", 4, 2);
                $this->range("3000000", "7999999", 5, 2);
                $this->range("8000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-979':
                $this->range("0000000", "0999999", 3, 2);
                $this->range("1000000", "1499999", 4, 2);
                $this->range("1500000", "1999999", 5, 2);
                $this->range("2000000", "2999999", 2, 2);
                $this->range("3000000", "3999999", 4, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-980':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "5999999", 3, 2);
                $this->range("6000000", "9999999", 4, 2);
                break;
            case '978-981':
                $this->range("0000000", "1699999", 2, 2);
                $this->range("1700000", "1999999", 5, 2);
                $this->range("2000000", "2999999", 3, 2);
                $this->range("3000000", "3099999", 4, 2);
                $this->range("3100000", "3999999", 3, 2);
                $this->range("4000000", "9999999", 4, 2);
                break;
            case '978-982':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 2, 2);
                $this->range("9000000", "9799999", 4, 2);
                $this->range("9800000", "9999999", 5, 2);
                break;
            case '978-983':
                $this->range("0000000", "0199999", 2, 2);
                $this->range("0200000", "1999999", 3, 2);
                $this->range("2000000", "3999999", 4, 2);
                $this->range("4000000", "4499999", 5, 2);
                $this->range("4500000", "4999999", 2, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "8999999", 3, 2);
                $this->range("9000000", "9899999", 4, 2);
                $this->range("9900000", "9999999", 5, 2);
                break;
            case '978-984':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-985':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "5999999", 3, 2);
                $this->range("6000000", "8999999", 4, 2);
                $this->range("9000000", "9999999", 5, 2);
                break;
            case '978-986':
                $this->range("0000000", "1199999", 2, 2);
                $this->range("1200000", "5599999", 3, 2);
                $this->range("5600000", "7999999", 4, 2);
                $this->range("8000000", "9999999", 5, 2);
                break;
            case '978-987':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "1999999", 4, 2);
                $this->range("2000000", "2999999", 5, 2);
                $this->range("3000000", "3599999", 2, 2);
                $this->range("3600000", "3999999", 4, 2);
                $this->range("4000000", "4199999", 4, 2);
                $this->range("4200000", "4399999", 2, 2);
                $this->range("4400000", "4499999", 4, 2);
                $this->range("4500000", "4899999", 5, 2);
                $this->range("4900000", "4999999", 4, 2);
                $this->range("5000000", "8999999", 3, 2);
                $this->range("9000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-988':
                $this->range("0000000", "1199999", 2, 2);
                $this->range("1200000", "1499999", 5, 2);
                $this->range("1500000", "1699999", 5, 2);
                $this->range("1700000", "1999999", 5, 2);
                $this->range("2000000", "7699999", 3, 2);
                $this->range("7700000", "7999999", 5, 2);
                $this->range("8000000", "9699999", 4, 2);
                $this->range("9700000", "9999999", 5, 2);
                break;
            case '978-989':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5399999", 2, 2);
                $this->range("5400000", "5499999", 5, 2);
                $this->range("5500000", "7999999", 3, 2);
                $this->range("8000000", "9499999", 4, 2);
                $this->range("9500000", "9999999", 5, 2);
                break;
            case '978-9921':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "2999999", 0, 2);
                $this->range("3000000", "3999999", 2, 2);
                $this->range("4000000", "6999999", 0, 2);
                $this->range("7000000", "8999999", 3, 2);
                $this->range("9000000", "9699999", 0, 2);
                $this->range("9700000", "9999999", 4, 2);
                break;
            case '978-9922':
                $this->range("0000000", "1999999", 0, 2);
                $this->range("2000000", "2999999", 2, 2);
                $this->range("3000000", "5999999", 0, 2);
                $this->range("6000000", "7999999", 3, 2);
                $this->range("8000000", "8999999", 0, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9923':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "4999999", 2, 2);
                $this->range("5000000", "6999999", 0, 2);
                $this->range("7000000", "8999999", 3, 2);
                $this->range("9000000", "9699999", 0, 2);
                $this->range("9700000", "9999999", 4, 2);
                break;
            case '978-9924':
                $this->range("0000000", "2999999", 0, 2);
                $this->range("3000000", "3999999", 2, 2);
                $this->range("4000000", "4999999", 0, 2);
                $this->range("5000000", "6499999", 3, 2);
                $this->range("6500000", "8999999", 0, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9925':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5499999", 2, 2);
                $this->range("5500000", "7349999", 3, 2);
                $this->range("7350000", "9999999", 4, 2);
                break;
            case '978-9926':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 4, 2);
                break;
            case '978-9927':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "3999999", 3, 2);
                $this->range("4000000", "4999999", 4, 2);
                $this->range("5000000", "9999999", 0, 2);
                break;
            case '978-9928':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "3999999", 3, 2);
                $this->range("4000000", "4999999", 4, 2);
                $this->range("5000000", "9999999", 0, 2);
                break;
            case '978-9929':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "5499999", 2, 2);
                $this->range("5500000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 4, 2);
                break;
            case '978-9930':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "9399999", 3, 2);
                $this->range("9400000", "9999999", 4, 2);
                break;
            case '978-9931':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9932':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8499999", 3, 2);
                $this->range("8500000", "9999999", 4, 2);
                break;
            case '978-9933':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9934':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "4999999", 2, 2);
                $this->range("5000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 4, 2);
                break;
            case '978-9935':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9936':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 4, 2);
                break;
            case '978-9937':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "4999999", 2, 2);
                $this->range("5000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 4, 2);
                break;
            case '978-9938':
                $this->range("0000000", "7999999", 2, 2);
                $this->range("8000000", "9499999", 3, 2);
                $this->range("9500000", "9999999", 4, 2);
                break;
            case '978-9939':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9940':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "4999999", 2, 2);
                $this->range("5000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9941':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9942':
                $this->range("0000000", "7499999", 2, 2);
                $this->range("7500000", "8499999", 3, 2);
                $this->range("8500000", "8999999", 4, 2);
                $this->range("9000000", "9849999", 3, 2);
                $this->range("9850000", "9999999", 4, 2);
                break;
            case '978-9943':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "3999999", 3, 2);
                $this->range("4000000", "9749999", 4, 2);
                $this->range("9750000", "9999999", 3, 2);
                break;
            case '978-9944':
                $this->range("0000000", "0999999", 4, 2);
                $this->range("1000000", "4999999", 3, 2);
                $this->range("5000000", "5999999", 4, 2);
                $this->range("6000000", "6999999", 2, 2);
                $this->range("7000000", "7999999", 3, 2);
                $this->range("8000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-9945':
                $this->range("0000000", "0099999", 2, 2);
                $this->range("0100000", "0799999", 3, 2);
                $this->range("0800000", "3999999", 2, 2);
                $this->range("4000000", "5699999", 3, 2);
                $this->range("5700000", "5799999", 2, 2);
                $this->range("5800000", "8499999", 3, 2);
                $this->range("8500000", "9999999", 4, 2);
                break;
            case '978-9946':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9947':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-9948':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8499999", 3, 2);
                $this->range("8500000", "9999999", 4, 2);
                break;
            case '978-9949':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "3999999", 2, 2);
                $this->range("4000000", "6999999", 3, 2);
                $this->range("7000000", "7199999", 2, 2);
                $this->range("7200000", "7499999", 4, 2);
                $this->range("7500000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9950':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "8499999", 3, 2);
                $this->range("8500000", "9999999", 4, 2);
                break;
            case '978-9951':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8499999", 3, 2);
                $this->range("8500000", "9999999", 4, 2);
                break;
            case '978-9952':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 4, 2);
                break;
            case '978-9953':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "3999999", 2, 2);
                $this->range("4000000", "5999999", 3, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9299999", 4, 2);
                $this->range("9300000", "9699999", 2, 2);
                $this->range("9700000", "9999999", 3, 2);
                break;
            case '978-9954':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "3999999", 2, 2);
                $this->range("4000000", "7999999", 3, 2);
                $this->range("8000000", "9899999", 4, 2);
                $this->range("9900000", "9999999", 2, 2);
                break;
            case '978-9955':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "9299999", 3, 2);
                $this->range("9300000", "9999999", 4, 2);
                break;
            case '978-9956':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9957':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "6499999", 3, 2);
                $this->range("6500000", "6799999", 2, 2);
                $this->range("6800000", "6999999", 3, 2);
                $this->range("7000000", "8499999", 2, 2);
                $this->range("8500000", "8799999", 4, 2);
                $this->range("8800000", "9999999", 2, 2);
                break;
            case '978-9958':
                $this->range("0000000", "0199999", 2, 2);
                $this->range("0200000", "0299999", 3, 2);
                $this->range("0300000", "0399999", 4, 2);
                $this->range("0400000", "0899999", 3, 2);
                $this->range("0900000", "0999999", 4, 2);
                $this->range("1000000", "1899999", 2, 2);
                $this->range("1900000", "1999999", 4, 2);
                $this->range("2000000", "4999999", 2, 2);
                $this->range("5000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9959':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9499999", 3, 2);
                $this->range("9500000", "9699999", 4, 2);
                $this->range("9700000", "9799999", 3, 2);
                $this->range("9800000", "9999999", 2, 2);
                break;
            case '978-9960':
                $this->range("0000000", "5999999", 2, 2);
                $this->range("6000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9961':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "6999999", 2, 2);
                $this->range("7000000", "9499999", 3, 2);
                $this->range("9500000", "9999999", 4, 2);
                break;
            case '978-9962':
                $this->range("0000000", "5499999", 2, 2);
                $this->range("5500000", "5599999", 4, 2);
                $this->range("5600000", "5999999", 2, 2);
                $this->range("6000000", "8499999", 3, 2);
                $this->range("8500000", "9999999", 4, 2);
                break;
            case '978-9963':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "2499999", 4, 2);
                $this->range("2500000", "2799999", 3, 2);
                $this->range("2800000", "2999999", 4, 2);
                $this->range("3000000", "5499999", 2, 2);
                $this->range("5500000", "7349999", 3, 2);
                $this->range("7350000", "7499999", 4, 2);
                $this->range("7500000", "9999999", 4, 2);
                break;
            case '978-9964':
                $this->range("0000000", "6999999", 1, 2);
                $this->range("7000000", "9499999", 2, 2);
                $this->range("9500000", "9999999", 3, 2);
                break;
            case '978-9965':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9966':
                $this->range("0000000", "1499999", 3, 2);
                $this->range("1500000", "1999999", 4, 2);
                $this->range("2000000", "6999999", 2, 2);
                $this->range("7000000", "7499999", 4, 2);
                $this->range("7500000", "9599999", 3, 2);
                $this->range("9600000", "9999999", 4, 2);
                break;
            case '978-9967':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9968':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "9399999", 3, 2);
                $this->range("9400000", "9999999", 4, 2);
                break;
            case '978-9970':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9971':
                $this->range("0000000", "5999999", 1, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9972':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "1999999", 1, 2);
                $this->range("2000000", "2499999", 3, 2);
                $this->range("2500000", "2999999", 4, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9973':
                $this->range("0000000", "0599999", 2, 2);
                $this->range("0600000", "0899999", 3, 2);
                $this->range("0900000", "0999999", 4, 2);
                $this->range("1000000", "6999999", 2, 2);
                $this->range("7000000", "9699999", 3, 2);
                $this->range("9700000", "9999999", 4, 2);
                break;
            case '978-9974':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5499999", 2, 2);
                $this->range("5500000", "7499999", 3, 2);
                $this->range("7500000", "8799999", 4, 2);
                $this->range("8800000", "9099999", 3, 2);
                $this->range("9100000", "9499999", 2, 2);
                $this->range("9500000", "9999999", 2, 2);
                break;
            case '978-9975':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "2999999", 3, 2);
                $this->range("3000000", "3999999", 4, 2);
                $this->range("4000000", "4499999", 4, 2);
                $this->range("4500000", "8999999", 2, 2);
                $this->range("9000000", "9499999", 3, 2);
                $this->range("9500000", "9999999", 4, 2);
                break;
            case '978-9976':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "5999999", 4, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9977':
                $this->range("0000000", "8999999", 2, 2);
                $this->range("9000000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9978':
                $this->range("0000000", "2999999", 2, 2);
                $this->range("3000000", "3999999", 3, 2);
                $this->range("4000000", "9499999", 2, 2);
                $this->range("9500000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9979':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "6499999", 2, 2);
                $this->range("6500000", "6599999", 3, 2);
                $this->range("6600000", "7599999", 2, 2);
                $this->range("7600000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9980':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "8999999", 2, 2);
                $this->range("9000000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9981':
                $this->range("0000000", "0999999", 2, 2);
                $this->range("1000000", "1599999", 3, 2);
                $this->range("1600000", "1999999", 4, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9499999", 3, 2);
                $this->range("9500000", "9999999", 4, 2);
                break;
            case '978-9982':
                $this->range("0000000", "7999999", 2, 2);
                $this->range("8000000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9983':
                $this->range("0000000", "7999999", 0, 2);
                $this->range("8000000", "9499999", 2, 2);
                $this->range("9500000", "9899999", 3, 2);
                $this->range("9900000", "9999999", 4, 2);
                break;
            case '978-9984':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9985':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 4, 2);
                break;
            case '978-9986':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8999999", 3, 2);
                $this->range("9000000", "9399999", 4, 2);
                $this->range("9400000", "9699999", 3, 2);
                $this->range("9700000", "9999999", 2, 2);
                break;
            case '978-9987':
                $this->range("0000000", "3999999", 2, 2);
                $this->range("4000000", "8799999", 3, 2);
                $this->range("8800000", "9999999", 4, 2);
                break;
            case '978-9988':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5499999", 2, 2);
                $this->range("5500000", "7499999", 3, 2);
                $this->range("7500000", "9999999", 4, 2);
                break;
            case '978-9989':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "1999999", 3, 2);
                $this->range("2000000", "2999999", 4, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "9499999", 3, 2);
                $this->range("9500000", "9999999", 4, 2);
                break;
            case '978-99901':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 2, 2);
                break;
            case '978-99902':
                $this->range("0000000", "9999999", 0, 2);
                break;
            case '978-99903':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99904':
                $this->range("0000000", "5999999", 1, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99905':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99906':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 2, 2);
                $this->range("9000000", "9499999", 2, 2);
                $this->range("9500000", "9999999", 3, 2);
                break;
            case '978-99908':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99909':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "9499999", 2, 2);
                $this->range("9500000", "9999999", 3, 2);
                break;
            case '978-99910':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99911':
                $this->range("0000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99912':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "5999999", 3, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99913':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "3599999", 2, 2);
                $this->range("3600000", "5999999", 0, 2);
                $this->range("6000000", "6049999", 3, 2);
                $this->range("6050000", "9999999", 0, 2);
                break;
            case '978-99914':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "6999999", 2, 2);
                $this->range("7000000", "7999999", 1, 2);
                $this->range("8000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99915':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99916':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "6999999", 2, 2);
                $this->range("7000000", "9999999", 3, 2);
                break;
            case '978-99917':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99918':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99919':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "3999999", 3, 2);
                $this->range("4000000", "6999999", 2, 2);
                $this->range("7000000", "7999999", 2, 2);
                $this->range("8000000", "8499999", 3, 2);
                $this->range("8500000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99920':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99921':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "6999999", 2, 2);
                $this->range("7000000", "7999999", 3, 2);
                $this->range("8000000", "8999999", 1, 2);
                $this->range("9000000", "9999999", 2, 2);
                break;
            case '978-99922':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "6999999", 2, 2);
                $this->range("7000000", "9999999", 3, 2);
                break;
            case '978-99923':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99924':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99925':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99926':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "5999999", 2, 2);
                $this->range("6000000", "8699999", 3, 2);
                $this->range("8700000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 2, 2);
                break;
            case '978-99927':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99928':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99929':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99930':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99931':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99932':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "5999999", 2, 2);
                $this->range("6000000", "6999999", 3, 2);
                $this->range("7000000", "7999999", 1, 2);
                $this->range("8000000", "9999999", 2, 2);
                break;
            case '978-99933':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99934':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99935':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 1, 2);
                $this->range("9000000", "9999999", 2, 2);
                break;
            case '978-99936':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99937':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99938':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5999999", 2, 2);
                $this->range("6000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 2, 2);
                break;
            case '978-99939':
                $this->range("0000000", "5999999", 1, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99940':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "6999999", 2, 2);
                $this->range("7000000", "9999999", 3, 2);
                break;
            case '978-99941':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99942':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99943':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99944':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99945':
                $this->range("0000000", "5999999", 1, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99946':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99947':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "6999999", 2, 2);
                $this->range("7000000", "9999999", 3, 2);
                break;
            case '978-99948':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99949':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99950':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99951':
                $this->range("0000000", "9999999", 0, 2);
                break;
            case '978-99952':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99953':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "7999999", 2, 2);
                $this->range("8000000", "9399999", 3, 2);
                $this->range("9400000", "9999999", 2, 2);
                break;
            case '978-99954':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "6999999", 2, 2);
                $this->range("7000000", "8799999", 3, 2);
                $this->range("8800000", "9999999", 2, 2);
                break;
            case '978-99955':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5999999", 2, 2);
                $this->range("6000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 2, 2);
                break;
            case '978-99956':
                $this->range("0000000", "5999999", 2, 2);
                $this->range("6000000", "8599999", 3, 2);
                $this->range("8600000", "9999999", 2, 2);
                break;
            case '978-99957':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9399999", 3, 2);
                $this->range("9400000", "9999999", 2, 2);
                break;
            case '978-99958':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "9399999", 2, 2);
                $this->range("9400000", "9499999", 3, 2);
                $this->range("9500000", "9999999", 3, 2);
                break;
            case '978-99959':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "5999999", 2, 2);
                $this->range("6000000", "9999999", 3, 2);
                break;
            case '978-99960':
                $this->range("0000000", "0999999", 1, 2);
                $this->range("1000000", "9499999", 2, 2);
                $this->range("9500000", "9999999", 3, 2);
                break;
            case '978-99961':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "3999999", 3, 2);
                $this->range("4000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99962':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99963':
                $this->range("0000000", "4999999", 2, 2);
                $this->range("5000000", "9199999", 3, 2);
                $this->range("9200000", "9999999", 2, 2);
                break;
            case '978-99964':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99965':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "3599999", 3, 2);
                $this->range("3600000", "6299999", 2, 2);
                $this->range("6300000", "9999999", 3, 2);
                break;
            case '978-99966':
                $this->range("0000000", "2999999", 1, 2);
                $this->range("3000000", "6999999", 2, 2);
                $this->range("7000000", "7999999", 3, 2);
                $this->range("8000000", "9699999", 2, 2);
                $this->range("9700000", "9999999", 3, 2);
                break;
            case '978-99967':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5999999", 2, 2);
                $this->range("6000000", "8999999", 3, 2);
                $this->range("9000000", "9999999", 0, 2);
                break;
            case '978-99968':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "5999999", 3, 2);
                $this->range("6000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99969':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99970':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99971':
                $this->range("0000000", "5999999", 1, 2);
                $this->range("6000000", "8499999", 2, 2);
                $this->range("8500000", "9999999", 3, 2);
                break;
            case '978-99972':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "8999999", 2, 2);
                $this->range("9000000", "9999999", 3, 2);
                break;
            case '978-99973':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99974':
                $this->range("0000000", "3999999", 0, 2);
                $this->range("4000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99975':
                $this->range("0000000", "3999999", 1, 2);
                $this->range("4000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99976':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "5999999", 2, 2);
                $this->range("6000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 0, 2);
                break;
            case '978-99977':
                $this->range("0000000", "1999999", 1, 2);
                $this->range("2000000", "3999999", 0, 2);
                $this->range("4000000", "6999999", 2, 2);
                $this->range("7000000", "7999999", 3, 2);
                $this->range("8000000", "9999999", 0, 2);
                break;
            case '978-99978':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '978-99979':
                $this->range("0000000", "4999999", 1, 2);
                $this->range("5000000", "7999999", 2, 2);
                $this->range("8000000", "9999999", 3, 2);
                break;
            case '979-10':
                $this->range("0000000", "1999999", 2, 2);
                $this->range("2000000", "6999999", 3, 2);
                $this->range("7000000", "8999999", 4, 2);
                $this->range("9000000", "9759999", 5, 2);
                $this->range("9760000", "9999999", 6, 2);
                break;
            case '979-11':
                $this->range("0000000", "2499999", 2, 2);
                $this->range("2500000", "5499999", 3, 2);
                $this->range("5500000", "8499999", 4, 2);
                $this->range("8500000", "9499999", 5, 2);
                $this->range("9500000", "9999999", 6, 2);
                break;
            case '979-12':
                $this->range("0000000", "1999999", 0, 2);
                $this->range("2000000", "2009999", 3, 2);
                $this->range("2010000", "9999999", 0, 2);
                break;
        }
    }
676533
function getCertificates($path)
    {
        return collect($this->files->scandir($path))->filter(function ($value, $key) {
            return ends_with($value, '.crt');
        })->map(function ($cert) {
            $certWithoutSuffix = substr($cert, 0, -4);
            return substr($certWithoutSuffix, 0, strrpos($certWithoutSuffix, '.'));
        })->flip();
    }
653718
private function getIdentifier()
    {
        // grab the first bit of the identifier
        if ($this->lexer->isNextTokenAny(self::$classIdentifiers)) {
            $this->lexer->moveNext();

            $name = $this->lexer->token['value'];
        } else {
            throw SyntaxException::expectedToken(
                'namespace separator or identifier',
                null,
                $this->lexer
            );
        }

        // grab the remaining bits
        $position = $this->lexer->token['position']
                  + strlen($this->lexer->token['value']);

        while (($this->lexer->lookahead['position'] === $position)
            && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) {
            $this->match(DocLexer::T_NAMESPACE_SEPARATOR);
            $this->matchAny(self::$classIdentifiers);

            $name .= '\\' . $this->lexer->token['value'];
        }

        return $name;
    }
930662
public function getSPcert()
    {
        $cert = null;

        if (isset($this->_sp['x509cert']) && !empty($this->_sp['x509cert'])) {
            $cert = $this->_sp['x509cert'];
        } else {
            $certFile = $this->_paths['cert'].'sp.crt';

            if (file_exists($certFile)) {
                $cert = file_get_contents($certFile);
            }
        }
        return $cert;
    }
49584
protected function printLicenses(CompletePackageInterface $package)
    {
        $spdxLicense = new SpdxLicense;

        $licenses = $package->getLicense();

        foreach ($licenses as $licenseId) {
            $license = $spdxLicense->getLicenseByIdentifier($licenseId); // keys: 0 fullname, 1 osi, 2 url

            if (!$license) {
                $out = $licenseId;
            } else {
                // is license OSI approved?
                if ($license[1] === true) {
                    $out = sprintf('%s (%s) (OSI approved) %s', $license[0], $licenseId, $license[2]);
                } else {
                    $out = sprintf('%s (%s) %s', $license[0], $licenseId, $license[2]);
                }
            }

            $this->getIO()->write('<info>license</info>  : ' . $out);
        }
    }
849693
public CertificateBundle getCertificate(String certificateIdentifier) {
        CertificateIdentifier id = new CertificateIdentifier(certificateIdentifier);
        return getCertificate(id.vault(), id.name(), id.version() == null ? "" : id.version());
    }
1082023
public static function get(int $certificatePinnedId, array $customHeaders = []): BunqResponseCertificatePinned
    {
        $apiClient = new ApiClient(static::getApiContext());
        $responseRaw = $apiClient->get(
            vsprintf(
                self::ENDPOINT_URL_READ,
                [static::determineUserId(), $certificatePinnedId]
            ),
            [],
            $customHeaders
        );

        return BunqResponseCertificatePinned::castFromBunqResponse(
            static::fromJson($responseRaw, self::OBJECT_TYPE_GET)
        );
    }
837600
public synchronized PrivateKey getPrivateKeyForLocalCert(final X509Certificate cert)
	throws CertificateEncodingException, KeyStoreException, UnrecoverableKeyException,
	NoSuchAlgorithmException
	{
		String thumbprint = ThumbprintUtil.getThumbprint(cert);

		return (PrivateKey)_ks.getKey(thumbprint, _keypassword);
	}
721768
public function getInternalSignature(ClassMethod $method, CompilationContext $context)
    {
        if ($method->isInitializer() && !$method->isStatic()) {
            return 'zend_object_value '.$method->getName().'(zend_class_entry *class_type TSRMLS_DC)';
        }

        if ($method->isInitializer() && $method->isStatic()) {
            return 'void '.$method->getName().'(TSRMLS_D)';
        }

        $signatureParameters = [];
        $parameters = $method->getParameters();
        if (\is_object($parameters)) {
            foreach ($parameters->getParameters() as $parameter) {
                switch ($parameter['data-type']) {
                    case 'int':
                    case 'uint':
                    case 'long':
                    case 'double':
                    case 'bool':
                    case 'char':
                    case 'uchar':
                    case 'string':
                    case 'array':
                        $signatureParameters[] = 'zval *'.$parameter['name'].'_param_ext';
                        break;

                    default:
                        $signatureParameters[] = 'zval *'.$parameter['name'].'_ext';
                        break;
                }
            }
        }

        if (\count($signatureParameters)) {
            return 'void '.$method->getInternalName().'(int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used, '.implode(', ', $signatureParameters).' TSRMLS_DC)';
        }

        return 'void '.$method->getInternalName().'(int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC)';
    }
211964
public function getColumnCollection($withoutIdentifier = false)
    {
        if ($withoutIdentifier === true) {
            $tmpColumnCollection = new MetaDataColumnCollection();

            foreach ($this->columnCollection as $column) {
                $isPk = $column->isPrimaryKey();
                if ($isPk === false) {
                    $tmpColumnCollection->append($column);
                }
            }

            return $tmpColumnCollection;
        } else {
            return $this->columnCollection;
        }
    }
830644
@Override
  public X509Certificate getClientCertificate()
    throws java.security.cert.CertificateException
  {
    TempBuffer tb = TempBuffer.create();
    byte []buffer = tb.buffer();
    int len = getClientCertificate(_socketFd, buffer, 0, buffer.length);
    X509Certificate cert = null;

    if (len > 0 && len < buffer.length) {
      try {
        CertificateFactory cf = CertificateFactory.getInstance("X.509");
        InputStream is = new ByteArrayInputStream(buffer, 0, len);
        cert = (X509Certificate) cf.generateCertificate(is);
        is.close();
      } catch (IOException e) {
        return null;
      }
    }

    TempBuffer.free(tb);
    tb = null;

    return cert;
  }
946988
public function getLicense() : ?string 
    {
        if ( ! $this->hasLicense()) {
            $this->setLicense($this->getDefaultLicense());
        }
        return $this->license;
    }
800543
private function getCertificate($certificatePath)
    {
        $httpCurlRequest  = new HttpCurl($this->ipnConfig);

    $response = $httpCurlRequest->httpGet($certificatePath);

        return $response;
    }
215542
public static function getRsaFromCert($x509) {
    $rsa = $x509->getPublicKey();
    if (!$rsa) {
      throw new InvalidMessageException("Invalid message: certificate missing or does not have public key");
    }
    $rsa->setEncryptionMode(Constants::RSA_ENC_MODE);
    $rsa->setSignatureMode(Constants::RSA_SIG_MODE);
    $rsa->setHash(Constants::RSA_HASH);
    return $rsa;
  }