??????????????
PK       ! ðø¸®œ  œ    Payment.phpnu &1i„        <?php

namespace Faker\Provider\pt_PT;

class Payment extends \Faker\Provider\Payment
{
    /**
     * International Bank Account Number (IBAN)
     * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
     * @param  string  $prefix      for generating bank account number of a specific bank
     * @param  string  $countryCode ISO 3166-1 alpha-2 country code
     * @param  integer $length      total length without country code and 2 check digits
     * @return string
     */
    public static function bankAccountNumber($prefix = '', $countryCode = 'PT', $length = null)
    {
        return static::iban($countryCode, $prefix, $length);
    }
}
PK       ! ‡i  i    PhoneNumber.phpnu &1i„        <?php

namespace Faker\Provider\pt_PT;

class PhoneNumber extends \Faker\Provider\PhoneNumber
{
     /*
     * @link http://en.wikipedia.org/wiki/Telephone_numbers_in_Portugal
     */
    protected static $formats = array(
        '+351 91#######',
        '+351 92#######',
        '+351 93#######',
        '+351 96#######',
        '+351 21#######',
        '+351 22#######',
        '+351 23#######',
        '+351 24#######',
        '+351 25#######',
        '+351 26#######',
        '+351 27#######',
        '+351 28#######',
        '+351 29#######',
        '91#######',
        '92#######',
        '93#######',
        '96#######',
        '21#######',
        '22#######',
        '23#######',
        '24#######',
        '25#######',
        '26#######',
        '27#######',
        '28#######',
        '29#######',
    );

    protected static $mobileNumberPrefixes = array(
        '91#######',
        '92#######',
        '93#######',
        '96#######',
    );

    public static function mobileNumber()
    {
        return static::numerify(static::randomElement(static::$mobileNumberPrefixes));
    }
}
PK       ! ñ|Q    
  Person.phpnu &1i„        <?php

namespace Faker\Provider\pt_PT;

class Person extends \Faker\Provider\Person
{
    protected static $maleNameFormats = array(
        '{{firstNameMale}} {{lastName}}',
        '{{firstNameMale}} {{lastName}} {{lastName}}',
        '{{firstNameMale}} {{lastName}} de {{lastName}}',
        '{{firstNameMale}} {{firstNameMale}} {{lastName}}',
        '{{firstNameMale}} {{firstNameMale}} de {{lastName}}',
        '{{firstNameMale}} {{firstNameMale}} {{lastName}} {{lastName}}',
        '{{firstNameMale}} {{firstNameMale}} {{lastName}} de {{lastName}}',
        '{{firstNameMale}} {{firstNameMale}} {{lastName}} {{lastName}} {{lastName}}',
    );

    protected static $femaleNameFormats = array(
        '{{firstNameFemale}} {{lastName}}',
        '{{firstNameFemale}} {{lastName}} {{lastName}}',
        '{{firstNameFemale}} {{lastName}} de {{lastName}}',
        '{{firstNameFemale}} {{firstNameFemale}} {{lastName}}',
        '{{firstNameFemale}} {{firstNameFemale}} de {{lastName}}',
        '{{firstNameFemale}} {{firstNameFemale}} {{lastName}} {{lastName}}',
        '{{firstNameFemale}} {{firstNameFemale}} {{lastName}} de {{lastName}}',
        '{{firstNameFemale}} {{firstNameFemale}} {{lastName}} {{lastName}} {{lastName}}',
    );

    /** @link http://goo.gl/v6bScG document with all pt abreviations **/
    protected static $titleMale = array('Sr.', 'Dr.', 'Exmo.', 'Eng.', 'Eng.Âº', 'Ex.', 'ExÂº');
    protected static $titleFemale = array('Sra.', 'Dra.', 'Exma', 'Eng.Âª', 'ExÂª');

    protected static $firstEightDigitsFormat = array(
      '1#######',
      '2#######',
      '3#######',
      '45######',
      '5#######',
      '6#######',
      '70######',
      '71######',
      '72######',
      '77######',
      '79######',
      '8#######' ,
      '90######',
      '98######',
      '99######'
    );

    /**
     * Taxpayer Identification Number (NIF in Portugal)
     *
     * @link http://pt.wikipedia.org/wiki/N%C3%BAmero_de_identifica%C3%A7%C3%A3o_fiscal
     *
     * @return string 9 digit number
     */
    public static function taxpayerIdentificationNumber()
    {
        $firstEightDigits = static::numerify(static::randomElement(static::$firstEightDigitsFormat));
        $lastDigit = static::dvCalcMod11($firstEightDigits);

        return $firstEightDigits.$lastDigit;
    }

    /**
     * Generate module
     *
     * @link http://pt.wikipedia.org/wiki/D%C3%ADgito_verificador
     *
     * @param string $number number
     *
     * @return int
     */
    public static function dvCalcMod11($number)
    {
        $base = 9;
        $sum = 0;
        $factor = 2;

        for ($i = strlen($number); $i > 0; $i--) {
            $numbers[$i] = substr($number, $i - 1, 1);
            $partial[$i] = $numbers[$i] * $factor;
            $sum += $partial[$i];
            if ($factor == $base) {
                $factor = 1;
            }
            $factor++;
        }
        $res = $sum % 11;

        if ($res == 0 || $res == 1) {
            $digit = 0;
        } else {
            $digit = 11 - $res;
        }

        return $digit;
    }

    /**
     *
     * @link http://nomesportugueses.blogspot.pt/2012/01/lista-dos-cem-nomes-mais-usados-em.html
     */

    protected static $firstNameMale = array(
        'Rodrigo', 'JoÃ£o', 'Martim', 'Afonso', 'TomÃ¡s', 'GonÃ§alo', 'Francisco', 'Tiago',
        'Diogo', 'Guilherme', 'Pedro', 'Miguel', 'Rafael', 'Gabriel', 'Santiago', 'Dinis',
        'David', 'Duarte', 'JosÃ©', 'SimÃ£o', 'Daniel', 'Lucas', 'Gustavo', 'AndrÃ©', 'Denis',
        'Salvador', 'AntÃ³nio', 'Vasco', 'Henrique', 'LourenÃ§o', 'Manuel', 'Eduardo', 'Bernardo',
        'Leandro', 'LuÃ­s', 'Diego', 'Leonardo', 'Alexandre', 'RÃºben', 'Mateus', 'Ricardo',
        'Vicente', 'Filipe', 'Bruno', 'Nuno', 'Carlos', 'Rui', 'Hugo', 'Samuel', 'Ãlvaro',
        'Matias', 'FÃ¡bio', 'Ivo', 'Paulo', 'Jorge', 'Xavier', 'Marco', 'Isaac', 'RaÃºl','Benjamim',
        'Renato', 'Artur', 'MÃ¡rio', 'Frederico', 'Cristiano', 'Ivan', 'SÃ©rgio', 'Micael',
        'VÃ­tor', 'Edgar', 'Kevin', 'Joaquim', 'Igor', 'Ã‚ngelo', 'Enzo', 'Valentim', 'FlÃ¡vio',
        'Joel', 'Fernando', 'SebastiÃ£o', 'TomÃ©', 'CÃ©sar', 'ClÃ¡udio', 'Nelson', 'Lisandro', 'Jaime',
        'Gil', 'Mauro', 'Sandro', 'HÃ©lder', 'Matheus', 'William', 'Gaspar', 'MÃ¡rcio',
        'Martinho', 'Emanuel', 'Marcos', 'Telmo', 'Davi', 'Wilson'
    );

    protected static $firstNameFemale = array(
        'Maria', 'Leonor', 'Matilde', 'Mariana', 'Ana', 'Beatriz', 'InÃªs', 'Lara', 'Carolina', 'Margarida',
        'Joana', 'Sofia', 'Diana', 'Francisca', 'Laura', 'Sara', 'Madalena', 'Rita', 'Mafalda', 'Catarina',
        'Luana', 'Marta', 'Ãris', 'Alice', 'Bianca', 'ConstanÃ§a', 'Gabriela', 'Eva', 'Clara', 'Bruna', 'Daniela',
        'Iara', 'Filipa', 'VitÃ³ria', 'Ariana', 'LetÃ­cia', 'BÃ¡rbara', 'Camila', 'Rafaela', 'Carlota', 'Yara',
        'NÃºria', 'Raquel', 'Ema', 'Helena', 'Benedita', 'Ã‰rica', 'Isabel', 'Nicole', 'Lia', 'AlÃ­cia', 'Mara',
        'JÃ©ssica', 'Soraia', 'JÃºlia', 'Luna', 'VictÃ³ria', 'LuÃ­sa', 'Teresa', 'Miriam', 'Adriana', 'Melissa',
        'Andreia', 'Juliana', 'Alexandra', 'Yasmin', 'Tatiana', 'Leticia', 'Luciana', 'Eduarda', 'ClÃ¡udia',
        'DÃ©bora', 'Fabiana', 'Renata', 'Kyara', 'Kelly', 'Irina', 'MÃ©lanie', 'NÃ¡dia', 'Cristiana', 'Liliana',
        'PatrÃ­cia', 'Vera', 'Doriana', 'Ã‚ngela', 'Mia', 'Erica', 'MÃ³nica', 'Isabela', 'SalomÃ©', 'CÃ¡tia',
        'VerÃ³nica', 'Violeta', 'Lorena', 'Ã‰rika', 'Vanessa', 'Iris', 'Anna', 'Viviane', 'Rebeca', 'Neuza',
    );

    protected static $lastName = array(
        'Abreu',  'Almeida',  'Alves', 'Amaral', 'Amorim', 'Andrade', 'Anjos', 'Antunes', 'AraÃºjo', 'AssunÃ§Ã£o',
        'Azevedo', 'Baptista', 'Barbosa', 'Barros', 'Batista', 'Borges', 'Branco', 'Brito', 'Campos', 'Cardoso',
        'Carneiro', 'Carvalho', 'Castro', 'Coelho', 'Correia', 'Costa', 'Cruz', 'Cunha', 'Domingues', 'Esteves',
        'Faria', 'Fernandes', 'Ferreira', 'Figueiredo', 'Fonseca', 'Freitas', 'Garcia', 'Gaspar', 'Gomes',
        'GonÃ§alves', 'Guerreiro', 'Henriques', 'Jesus', 'Leal', 'Leite', 'Lima', 'Lopes', 'Loureiro', 'LourenÃ§o',
        'Macedo', 'Machado', 'MagalhÃ£es', 'Maia', 'Marques', 'Martins', 'Matias', 'Matos', 'Melo', 'Mendes',
        'Miranda', 'Monteiro', 'Morais', 'Moreira', 'Mota', 'Moura', 'Nascimento', 'Neto', 'Neves', 'Nogueira',
        'Nunes', 'Oliveira', 'Pacheco', 'Paiva', 'Pereira', 'Pinheiro', 'Pinho', 'Pinto', 'Pires', 'Ramos',
        'Reis', 'Ribeiro', 'Rocha', 'Rodrigues', 'Santos', 'Silva', 'SimÃµes', 'Soares', 'Sousa',
        'SÃ¡', 'Tavares', 'Teixeira', 'Torres', 'Valente', 'Vaz', 'Vicente', 'Vieira',
    );
}
PK       ! )UuKw  w    Address.phpnu &1i„        <?php

namespace Faker\Provider\pt_PT;

class Address extends \Faker\Provider\Address
{
    protected static $streetPrefix = array('Av.', 'Avenida', 'R.', 'Rua', 'Travessa', 'Largo');

    protected static $streetNameFormats = array(
        '{{streetPrefix}} {{lastName}}',
        '{{streetPrefix}} {{firstName}} {{lastName}}',
        '{{streetPrefix}} St. {{firstName}} {{lastName}}',
        '{{streetPrefix}} SÃ£o. {{firstName}}',
        '{{streetPrefix}} de {{lastName}}',
    );

    protected static $streetAddressFormats = array(
        '{{streetName}}',
        '{{streetName}}, {{buildingNumber}}',
        '{{streetName}}, {{buildingNumber}}, {{secondaryAddress}}',
    );

    /** @link http://www.univ-ab.pt/PINTAC/carta_normas.htm address example in letters **/
    protected static $addressFormats = array(
        "{{streetAddress}} {{postcode}} {{city}}",
    );

    /** @link http://www.mapadeportugal.net/indicecidades.asp **/
    private static $cities = array(
        'Abrantes', 'Agualva-CacÃ©m', 'Ãgueda', 'Albufeira', 'AlcÃ¡cer do Sal', 'AlcobaÃ§a', 'Almada', 'Almeirim', 'Alverca do Ribatejo', 'Amadora', 'Amarante', 'Amora', 'Anadia', 'Angra do HeroÃ­smo', 'Aveiro', 'Barcelos', 'Barreiro',
        'Beja', 'Braga', 'BraganÃ§a', 'Caldas da Rainha', 'Camara de Lobos', 'Cantanhede', 'Cartaxo', 'Castelo Branco', 'Chaves', 'Coimbra', 'CovilhÃ£', 'Elvas', 'Entroncamento', 'Ermesinde', 'Esmoriz', 'Espinho', 'Esposende', 'Estarreja',
        'Estremoz', 'Ã‰vora', 'Fafe', 'Faro', 'FÃ¡tima', 'Felgueiras', 'FiÃ£es', 'Figueira da Foz', 'Freamunde', 'Funchal', 'FundÃ£o', 'Gafanha da NazarÃ©', 'Gondomar', 'Gouveia', 'Guarda', 'GuimarÃ£es', 'Horta', 'Ãlhavo', 'Lagoa', 'Lagos', 'Lamego',
        'Leiria', 'Lisboa', 'Lixa', 'LoulÃ©', 'Loures', 'Lourosa', 'Macedo de Cavaleiros', 'Machico', 'Maia', 'Mangualde', 'Marco de Canaveses', 'Marinha Grande',
        'Matosinhos', 'Mealhada', 'Miranda do Douro', 'Mirandela', 'Montemor-o-Novo', 'Montijo', 'Moura', 'Odivelas', 'OlhÃ£o da RestauraÃ§Ã£o', 'Oliveira de AzemÃ©is', 'Oliveira do Hospital', 'OurÃ©m', 'Ovar', 'PaÃ§os de Ferreira',
        'Paredes', 'Penafiel', 'Peniche', 'Peso da RÃ©gua', 'Pinhel', 'Pombal', 'Ponta Delgada', 'Ponte de Sor', 'Portalegre', 'PortimÃ£o', 'Porto', 'Porto Santo', 'PÃ³voa de Santa Iria', 'PÃ³voa de Varzim', 'Quarteira', 'Queluz', 'Ribeira Grande', 'Rio Maior',
        'Rio Tinto', 'SacavÃ©m', 'Santa Comba DÃ£o', 'Santa Cruz', 'Santa Maria da Feira', 'Santana', 'SantarÃ©m', 'Santiago do CacÃ©m', 'Santo Tirso',
        'SÃ£o JoÃ£o da Madeira', 'SÃ£o Mamede de Infesta', 'Seia', 'Seixal', 'SetÃºbal', 'Silves', 'Sines', 'Tarouca', 'Tavira', 'Tomar', 'Tondela', 'Torres Novas', 'Torres Vedras', 'Valbom', 'Vale de Cambra', 'Valongo', 'ValpaÃ§os', 'Vendas Novas',
        'Viana do Castelo', 'Vila do Conde', 'Vila Franca de Xira', 'Vila Nova de FamalicÃ£o', 'Vila Nova de Foz CÃ´a', 'Vila Nova de Gaia', 'Vila Praia da VitÃ³ria', 'Vila Real', 'Vila Real de Santo AntÃ³nio', 'Viseu', 'Vizela'
    );

    protected static $postcode = array(
        '%##0-###', '%##0',
        '%##1-###', '%##1',
        '%##4-###', '%##4',
        '%##5-###', '%##5',
        '%##9-###', '%##9',
        );

    protected static $buildingNumber = array('nÂº %', 'nÂº %%','nÂº %%%', '%', '%#', '%##');

    protected static $secondaryAddressFormats = array(
        'Bloco %', 'Bl. %',
        '%Âº Dir.', '%#Âº Dir.', '%Âº Dr.', '%#Âº Dr.',
        '%Âº Esq.', '%#Âº Esq.', '%Âº Eq.', '%#Âº Eq.',
    );

    /**
     * @example '6Âº Dir.'
     */
    public static function secondaryAddress()
    {
        return static::numerify(static::randomElement(static::$secondaryAddressFormats));
    }

    /** @link http://www.indexmundi.com/pt/ **/
    protected static $country = array(
        'AfeganistÃ£o', 'Ãfrica do Sul', 'AlbÃ¢nia', 'Alemanha', 'Andorra',
        'Angola', 'Antigua e Barbuda', 'Arabia Saudita', 'ArgÃ©lia',
        'Argentina', 'ArmÃªnia', 'AustrÃ¡lia', 'Ãustria', 'AzerbaijÃ£o',
        'Bahamas', 'Bangladesh', 'Barbados', 'Barein', 'Belize', 'Benin',
        'BielorrÃºssia', 'BirmÃ¢nia', 'BolÃ­via', 'BÃ³snia e Herzegovina',
        'Botsuana', 'Brasil', 'Brunei', 'BulgÃ¡ria', 'Burkina Faso',
        'Burundi', 'ButÃ£o', 'BÃ©lgica', 'Cabo Verde', 'Camboja', 'CamarÃµes',
        'CanadÃ¡', 'CazaquistÃ£o', 'Chad', 'Chile', 'China', 'Chipre',
        'ColÃ´mbia', 'Comoras', 'Congo', 'CorÃ©ia do Norte', 'CorÃ©ia do Sul',
        'Costa Rica', 'Costa do Marfim', 'CroÃ¡cia', 'Cuba', 'Dinamarca',
        'Djibouti', 'DomÃªnica', 'Equador', 'Egito', 'El Salvador',
        'Emirados Ãrabes Unidos', 'Eritrea', 'EslovÃ¡quia', 'EslovÃªnia',
        'Espanha', 'Estados Unidos da AmÃ©rica', 'EstÃ³nia', 'EtiÃ³pia',
        'Filipinas', 'FinlÃ¢ndia', 'Fiji','FranÃ§a', 'GabÃ£o', 'GÃ¢mbia',
        'Georgia', 'Gana', 'Granada', 'GrÃ©cia', 'Guatemala',
        'GuinÃ© Equatorial', 'GuinÃ© Bissau', 'Guiana', 'Haiti', 'Honduras',
        'Hungria', 'Ãndia', 'IndonÃ©sia', 'Iraque', 'Irlanda', 'IrÃ£',
        'IslÃ¢ndia', 'Ilhas Marshall', 'Ilhas MaurÃ­cio', 'Ilhas SalomÃ£o',
        'Ilhas Samoa', 'Israel', 'ItÃ¡lia', 'Jamaica', 'JapÃ£o', 'JordÃ¢nia',
        'Kiribati', 'Kwait', 'Laos', 'Lesoto', 'LetÃ³nia', 'LibÃ©ria', 'LÃ­bia',
        'Liechtenstein', 'LituÃ¢nia', 'Luxemburgo', 'LÃ­bano', 'MacedÃ³nia',
        'Madagascar', 'MalÃ¡sia', 'MalauÃ­', 'Maldivas', 'Mali', 'Malta',
        'Marrocos', 'MauritÃ¢nia', 'MicronÃ©sia', 'MoldÃ¡via', 'MongÃ³lia',
        'Montenegro', 'MoÃ§ambique', 'MÃ©xico', 'MÃ³naco', 'NamÃ­bia', 'Nauru',
        'Nepal', 'NicarÃ¡gua', 'NigÃ©ria', 'Noruega', 'Nova GuinÃ©',
        'Nova ZelÃ¢ndia', 'NÃ­ger', 'OmÃ£', 'Qatar', 'QuÃªnia','QuirguistÃ£o',
        'PaquistÃ£o', 'Palaos', 'PanamÃ¡', 'Papua Nova GuinÃ©', 'Paraguai',
        'PaÃ­ses Baixos', 'Peru', 'PolÃ³nia', 'Portugal', 'Reino Unido',
        'Reino Unido da GrÃ£ Bretanha e Irlanda do Norte',
        'RepÃºblica Centroafricana', 'RepÃºblica Checa',
        'RepÃºblica DemocrÃ¡tica do Congo', 'RepÃºblica Dominicana', 'Ruanda',
        'RomÃªnia', 'RÃºssia', 'SÃ£o CristovÃ£o e Neves', 'San Marino',
        'SÃ£o Vicente e as Granadinas', 'Santa Luzia', 'SÃ£o TomÃ© e PrÃ­ncipe',
        'Senegal', 'SÃ©rvia', 'Seychelles', 'Serra Leoa', 'Singapura', 'SÃ­ria',
        'SomÃ¡lia', 'Sri Lanka', 'SuazilÃ¢ndia', 'SudÃ£o', 'SuÃ©cia', 'SuiÃ§a',
        'Suriname', 'TailÃ¢ndia', 'TanzÃ¢nia', 'TajiquistÃ£o', 'Timor Leste',
        'Togo', 'Tonga', 'Trinidad e Tobago', 'TurcomenistÃ£o', 'Turquia',
        'Tuvalu', 'TunÃ­sia', 'UcrÃ¢nia', 'Uganda', 'Uruguai', 'UzbequistÃ£o',
        'Vaticano', 'Vanuatu', 'Venezuela', 'VietnÃ£', 'Yemen', 'ZÃ¢mbia',
        'ZimbÃ¡bue'
    );

    /**
     * @example 'Avenida' ' Rua'
     */
    public static function streetPrefix()
    {
        return static::randomElement(static::$streetPrefix);
    }

    /**
     * @example 'Aveiro' 'Oliveira de AzemÃ©is'
     */
    public function city()
    {
        return static::randomElement(static::$cities);
    }
}
PK         ! ðø¸®œ  œ                  Payment.phpnu &1i„        PK         ! ‡i  i              ×  PhoneNumber.phpnu &1i„        PK         ! ñ|Q    
              Person.phpnu &1i„        PK         ! )UuKw  w              Ö!  Address.phpnu &1i„        PK  