# Copyright (C) 2013 The Libphonenumber Authors

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

# http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

4850|Orange
4851|Orange
48530|Play
48531|Play
48532|T-Mobile
48533|Play
48535|Play
48600|T-Mobile
48601|Plus
48602|T-Mobile
48603|Plus
48604|T-Mobile
48605|Plus
48606|T-Mobile
48607|Plus
48608|T-Mobile
48609|Plus
48660|T-Mobile
48661|Plus
48662|T-Mobile
48663|Plus
48664|T-Mobile
48665|Plus
486666|Play
48667|Plus
48668|T-Mobile
48669|Plus
486901|Orange
486902|Orange
486903|Orange
486904|Orange
486905|Orange
486906|Orange
486907|CenterNet
48691|Plus
48692|T-Mobile
48693|Plus
48694|T-Mobile
48695|Plus
48696|T-Mobile
48697|Plus
48698|T-Mobile
4869902|Cyfrowy Polsat
4869903|Cyfrowy Polsat
4869904|Cyfrowy Polsat
4869905|Cyfrowy Polsat
4869906|Cyfrowy Polsat
4869907|Cyfrowy Polsat
4869908|Cyfrowy Polsat
4869909|Cyfrowy Polsat
4869920|Cyfrowy Polsat
4869921|Cyfrowy Polsat
4869923|Cyfrowy Polsat
4869924|Cyfrowy Polsat
4869925|Cyfrowy Polsat
4869926|Cyfrowy Polsat
4869927|Cyfrowy Polsat
4869928|Cyfrowy Polsat
4869929|Cyfrowy Polsat
4869961|Cyfrowy Polsat
4869962|Cyfrowy Polsat
4869963|Cyfrowy Polsat
4869964|Cyfrowy Polsat
4869965|Cyfrowy Polsat
4869966|Cyfrowy Polsat
4869967|Plus
4869968|Cyfrowy Polsat
4869969|Plus
486998|Plus
486999|Plus
487200|CenterNet
487201|CenterNet
487202|CenterNet
487203|CenterNet
487204|CenterNet
487205|CenterNet
487206|CenterNet
487207|CenterNet
487209|CenterNet
48721|Plus
48722|Plus
48723|Plus
48724|Plus
48725|Plus
48726|Plus
487270|Plus
487272|T-Mobile
487273|T-Mobile
487274|Plus
487275|Plus
487276|Plus
487277|Plus
487278|Plus
487279|Plus
487280|Mobyland
487281|T-Mobile
487282|T-Mobile
487283|T-Mobile
487284|T-Mobile
487285|T-Mobile
487286|T-Mobile
487287|T-Mobile
487288|T-Mobile
