prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Add method to generate a cell phone number to pt-BR
  Faker doesn't have a function to generate a cellphone to Brazilian.
  
  Steps to reproduce
  Create fake instance using localization "pt_BR"
  Call fake.msisdn() or fake.phone_number()
  Expected behavior
  It should generate a cell phone number.
  
  Actual behavior
  Sometimes these methods return a "residential" numbers.
  
  Reference difference between cell phones and residential numbers:
  
  http://www.teleco.com.br/num.asp
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `faker/providers/phone_number/pt_BR/__init__.py`
  Content:
  ```
  1 from __future__ import unicode_literals
  2 from .. import Provider as PhoneNumberProvider
  3 
  4 
  5 class Provider(PhoneNumberProvider):
  6     formats = (
  7         '+55 (011) #### ####',
  8         '+55 (021) #### ####',
  9         '+55 (031) #### ####',
  10         '+55 (041) #### ####',
  11         '+55 (051) #### ####',
  12         '+55 (061) #### ####',
  13         '+55 (071) #### ####',
  14         '+55 (081) #### ####',
  15         '+55 11 #### ####',
  16         '+55 21 #### ####',
  17         '+55 31 #### ####',
  18         '+55 41 #### ####',
  19         '+55 51 ### ####',
  20         '+55 61 #### ####',
  21         '+55 71 #### ####',
  22         '+55 81 #### ####',
  23         '+55 (011) ####-####',
  24         '+55 (021) ####-####',
  25         '+55 (031) ####-####',
  26         '+55 (041) ####-####',
  27         '+55 (051) ####-####',
  28         '+55 (061) ####-####',
  29         '+55 (071) ####-####',
  30         '+55 (081) ####-####',
  31         '+55 11 ####-####',
  32         '+55 21 ####-####',
  33         '+55 31 ####-####',
  34         '+55 41 ####-####',
  35         '+55 51 ### ####',
  36         '+55 61 ####-####',
  37         '+55 71 ####-####',
  38         '+55 81 ####-####',
  39         '(011) #### ####',
  40         '(021) #### ####',
  41         '(031) #### ####',
  42         '(041) #### ####',
  43         '(051) #### ####',
  44         '(061) #### ####',
  45         '(071) #### ####',
  46         '(081) #### ####',
  47         '11 #### ####',
  48         '21 #### ####',
  49         '31 #### ####',
  50         '41 #### ####',
  51         '51 ### ####',
  52         '61 #### ####',
  53         '71 #### ####',
  54         '81 #### ####',
  55         '(011) ####-####',
  56         '(021) ####-####',
  57         '(031) ####-####',
  58         '(041) ####-####',
  59         '(051) ####-####',
  60         '(061) ####-####',
  61         '(071) ####-####',
  62         '(081) ####-####',
  63         '11 ####-####',
  64         '21 ####-####',
  65         '31 ####-####',
  66         '41 ####-####',
  67         '51 ### ####',
  68         '61 ####-####',
  69         '71 ####-####',
  70         '81 ####-####',
  71         '#### ####',
  72         '####-####',
  73     )
  74     msisdn_formats = (
  75         '5511#########',
  76         '5521#########',
  77         '5531#########',
  78         '5541#########',
  79         '5551#########',
  80         '5561#########',
  81         '5571#########',
  82         '5581#########',
  83     )
  84
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/faker/providers/phone_number/pt_BR/__init__.py b/faker/providers/phone_number/pt_BR/__init__.py
  --- a/faker/providers/phone_number/pt_BR/__init__.py
  +++ b/faker/providers/phone_number/pt_BR/__init__.py
  @@ -71,6 +71,7 @@
           '#### ####',
           '####-####',
       )
  +
       msisdn_formats = (
           '5511#########',
           '5521#########',
  @@ -81,3 +82,11 @@
           '5571#########',
           '5581#########',
       )
  +
  +    cellphone_formats = (
  +        '+55 9#### ####',
  +    )
  +
  +    def cellphone_number(self):
  +        pattern = self.random_element(self.cellphone_formats)
  +        return self.numerify(self.generator.parse(pattern))
  
verification_info: {"golden_diff": "diff --git a/faker/providers/phone_number/pt_BR/__init__.py b/faker/providers/phone_number/pt_BR/__init__.py\n--- a/faker/providers/phone_number/pt_BR/__init__.py\n+++ b/faker/providers/phone_number/pt_BR/__init__.py\n@@ -71,6 +71,7 @@\n         '#### ####',\n         '####-####',\n     )\n+\n     msisdn_formats = (\n         '5511#########',\n         '5521#########',\n@@ -81,3 +82,11 @@\n         '5571#########',\n         '5581#########',\n     )\n+\n+    cellphone_formats = (\n+        '+55 9#### ####',\n+    )\n+\n+    def cellphone_number(self):\n+        pattern = self.random_element(self.cellphone_formats)\n+        return self.numerify(self.generator.parse(pattern))\n", "issue": "Add method to generate a cell phone number to pt-BR\nFaker doesn't have a function to generate a cellphone to Brazilian.\r\n\r\nSteps to reproduce\r\nCreate fake instance using localization \"pt_BR\"\r\nCall fake.msisdn() or fake.phone_number()\r\nExpected behavior\r\nIt should generate a cell phone number.\r\n\r\nActual behavior\r\nSometimes these methods return a \"residential\" numbers.\r\n\r\nReference difference between cell phones and residential numbers:\r\n\r\nhttp://www.teleco.com.br/num.asp\n", "before_files": [{"content": "from __future__ import unicode_literals\nfrom .. import Provider as PhoneNumberProvider\n\n\nclass Provider(PhoneNumberProvider):\n    formats = (\n        '+55 (011) #### ####',\n        '+55 (021) #### ####',\n        '+55 (031) #### ####',\n        '+55 (041) #### ####',\n        '+55 (051) #### ####',\n        '+55 (061) #### ####',\n        '+55 (071) #### ####',\n        '+55 (081) #### ####',\n        '+55 11 #### ####',\n        '+55 21 #### ####',\n        '+55 31 #### ####',\n        '+55 41 #### ####',\n        '+55 51 ### ####',\n        '+55 61 #### ####',\n        '+55 71 #### ####',\n        '+55 81 #### ####',\n        '+55 (011) ####-####',\n        '+55 (021) ####-####',\n        '+55 (031) ####-####',\n        '+55 (041) ####-####',\n        '+55 (051) ####-####',\n        '+55 (061) ####-####',\n        '+55 (071) ####-####',\n        '+55 (081) ####-####',\n        '+55 11 ####-####',\n        '+55 21 ####-####',\n        '+55 31 ####-####',\n        '+55 41 ####-####',\n        '+55 51 ### ####',\n        '+55 61 ####-####',\n        '+55 71 ####-####',\n        '+55 81 ####-####',\n        '(011) #### ####',\n        '(021) #### ####',\n        '(031) #### ####',\n        '(041) #### ####',\n        '(051) #### ####',\n        '(061) #### ####',\n        '(071) #### ####',\n        '(081) #### ####',\n        '11 #### ####',\n        '21 #### ####',\n        '31 #### ####',\n        '41 #### ####',\n        '51 ### ####',\n        '61 #### ####',\n        '71 #### ####',\n        '81 #### ####',\n        '(011) ####-####',\n        '(021) ####-####',\n        '(031) ####-####',\n        '(041) ####-####',\n        '(051) ####-####',\n        '(061) ####-####',\n        '(071) ####-####',\n        '(081) ####-####',\n        '11 ####-####',\n        '21 ####-####',\n        '31 ####-####',\n        '41 ####-####',\n        '51 ### ####',\n        '61 ####-####',\n        '71 ####-####',\n        '81 ####-####',\n        '#### ####',\n        '####-####',\n    )\n    msisdn_formats = (\n        '5511#########',\n        '5521#########',\n        '5531#########',\n        '5541#########',\n        '5551#########',\n        '5561#########',\n        '5571#########',\n        '5581#########',\n    )\n", "path": "faker/providers/phone_number/pt_BR/__init__.py"}], "after_files": [{"content": "from __future__ import unicode_literals\nfrom .. import Provider as PhoneNumberProvider\n\n\nclass Provider(PhoneNumberProvider):\n    formats = (\n        '+55 (011) #### ####',\n        '+55 (021) #### ####',\n        '+55 (031) #### ####',\n        '+55 (041) #### ####',\n        '+55 (051) #### ####',\n        '+55 (061) #### ####',\n        '+55 (071) #### ####',\n        '+55 (081) #### ####',\n        '+55 11 #### ####',\n        '+55 21 #### ####',\n        '+55 31 #### ####',\n        '+55 41 #### ####',\n        '+55 51 ### ####',\n        '+55 61 #### ####',\n        '+55 71 #### ####',\n        '+55 81 #### ####',\n        '+55 (011) ####-####',\n        '+55 (021) ####-####',\n        '+55 (031) ####-####',\n        '+55 (041) ####-####',\n        '+55 (051) ####-####',\n        '+55 (061) ####-####',\n        '+55 (071) ####-####',\n        '+55 (081) ####-####',\n        '+55 11 ####-####',\n        '+55 21 ####-####',\n        '+55 31 ####-####',\n        '+55 41 ####-####',\n        '+55 51 ### ####',\n        '+55 61 ####-####',\n        '+55 71 ####-####',\n        '+55 81 ####-####',\n        '(011) #### ####',\n        '(021) #### ####',\n        '(031) #### ####',\n        '(041) #### ####',\n        '(051) #### ####',\n        '(061) #### ####',\n        '(071) #### ####',\n        '(081) #### ####',\n        '11 #### ####',\n        '21 #### ####',\n        '31 #### ####',\n        '41 #### ####',\n        '51 ### ####',\n        '61 #### ####',\n        '71 #### ####',\n        '81 #### ####',\n        '(011) ####-####',\n        '(021) ####-####',\n        '(031) ####-####',\n        '(041) ####-####',\n        '(051) ####-####',\n        '(061) ####-####',\n        '(071) ####-####',\n        '(081) ####-####',\n        '11 ####-####',\n        '21 ####-####',\n        '31 ####-####',\n        '41 ####-####',\n        '51 ### ####',\n        '61 ####-####',\n        '71 ####-####',\n        '81 ####-####',\n        '#### ####',\n        '####-####',\n    )\n\n    msisdn_formats = (\n        '5511#########',\n        '5521#########',\n        '5531#########',\n        '5541#########',\n        '5551#########',\n        '5561#########',\n        '5571#########',\n        '5581#########',\n    )\n\n    cellphone_formats = (\n        '+55 9#### ####',\n    )\n\n    def cellphone_number(self):\n        pattern = self.random_element(self.cellphone_formats)\n        return self.numerify(self.generator.parse(pattern))\n", "path": "faker/providers/phone_number/pt_BR/__init__.py"}]}