diff --git a/.bazelrc b/.bazelrc index 75023ba..0bc5249 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,7 +1,16 @@ +startup --host_jvm_args=-Xmx2g + common --enable_bzlmod +common --repo_env=AR +common --repo_env=CBINDGEN +common --repo_env=CC +common --repo_env=PATH +build --jobs=2 +build --local_resources=memory=4096 test --test_output=errors test --test_env=HOME test --test_env=USER +build --action_env=AR build --action_env=CC build --action_env=PATH diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..41128c4 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +bindings/ffi-c/include/stdbr.h linguist-generated=true +bindings/nodejs/index.js linguist-generated=true +bindings/nodejs/index.d.ts linguist-generated=true +bindings/python/python/stdbr/stdbr.pyi linguist-generated=true +core/src/municipio/generated.rs linguist-generated=true +tools/municipio_gen/ibge_municipios.json linguist-generated=true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3cc6f6e..4a619d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,23 +12,219 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + +env: + CARGO_BUILD_JOBS: 2 + CARGO_INCREMENTAL: 0 + jobs: + flake: + name: Nix flake check + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + + - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15 + with: + name: nix-community + skipPush: true + + - name: Check flake and static quality rules + run: nix flake check --no-update-lock-file --max-jobs 2 --cores 2 + bazel: - name: Build & Test + name: Bazel test suite runs-on: ubuntu-latest + timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 - - uses: cachix/install-nix-action@v27 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 with: - nix_path: nixpkgs=channel:nixos-unstable extra_nix_config: | experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 - - uses: cachix/cachix-action@v15 + - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15 with: name: nix-community skipPush: true - - name: Build & Test - run: nix develop --command bazel test //... + - name: Run authoritative tests + run: nix develop --command bazel test //:all_tests + + rust: + name: Cargo fmt, Clippy and rustdoc + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Run Rust quality gates + run: nix develop --command tools/quality/quality.sh rust + + node-generated: + name: Node.js generated files + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Regenerate the NAPI-RS loader and declarations + working-directory: bindings/nodejs + run: nix develop ../.. --command npm ci + - name: Check generated files for drift + working-directory: bindings/nodejs + run: | + nix develop ../.. --command npm run build + git diff --exit-code -- index.js index.d.ts + + coverage: + name: stdbr-core coverage + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Enforce stdbr-core line coverage + run: nix develop --command tools/quality/quality.sh coverage + + fuzz-build: + name: Compile fuzz targets + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Compile fuzz targets with nightly Rust + run: nix develop --command tools/quality/quality.sh fuzz-build + + compatibility: + name: MSRV 1.85 and no_std + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Check minimum supported Rust version + run: nix develop --command tools/quality/quality.sh msrv + - name: Check no_std facade and core + run: nix develop --command tools/quality/quality.sh no-std + + audit: + name: Dependency audit + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Audit locked dependencies + run: nix develop --command tools/quality/quality.sh audit + + semver: + name: Semver compatibility + if: github.event_name != 'push' + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + - uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27 + with: + extra_nix_config: | + experimental-features = nix-command flakes + max-jobs = 2 + cores = 2 + - name: Check published Rust API compatibility + run: nix develop --command tools/quality/quality.sh semver + + required: + name: Build & Test + if: always() + needs: + - flake + - bazel + - rust + - node-generated + - coverage + - fuzz-build + - compatibility + - audit + - semver + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: Require every quality gate + env: + EVENT_NAME: ${{ github.event_name }} + FLAKE_RESULT: ${{ needs.flake.result }} + BAZEL_RESULT: ${{ needs.bazel.result }} + RUST_RESULT: ${{ needs.rust.result }} + NODE_GENERATED_RESULT: ${{ needs['node-generated'].result }} + COVERAGE_RESULT: ${{ needs.coverage.result }} + FUZZ_RESULT: ${{ needs['fuzz-build'].result }} + COMPATIBILITY_RESULT: ${{ needs.compatibility.result }} + AUDIT_RESULT: ${{ needs.audit.result }} + SEMVER_RESULT: ${{ needs.semver.result }} + run: | + set -euo pipefail + for result in \ + "$FLAKE_RESULT" \ + "$BAZEL_RESULT" \ + "$RUST_RESULT" \ + "$NODE_GENERATED_RESULT" \ + "$COVERAGE_RESULT" \ + "$FUZZ_RESULT" \ + "$COMPATIBILITY_RESULT" \ + "$AUDIT_RESULT"; do + if [[ "$result" != success ]]; then + echo "required quality gate finished with: $result" >&2 + exit 1 + fi + done + + if [[ "$SEMVER_RESULT" != success ]] && \ + [[ ! ("$EVENT_NAME" == push && "$SEMVER_RESULT" == skipped) ]]; then + echo "semver gate finished with: $SEMVER_RESULT" >&2 + exit 1 + fi diff --git a/.github/workflows/ibge-sync.yml b/.github/workflows/ibge-sync.yml index e1db86d..ad697a5 100644 --- a/.github/workflows/ibge-sync.yml +++ b/.github/workflows/ibge-sync.yml @@ -1,4 +1,4 @@ -name: IBGE Sync Check +name: IBGE Municipality Sync on: schedule: @@ -12,33 +12,76 @@ permissions: jobs: ibge-sync: runs-on: ubuntu-latest + timeout-minutes: 20 + concurrency: + group: ibge-municipality-sync + cancel-in-progress: false steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 - - uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/nix-installer-action@b074b4ad5f255f9c8a6a2414a2f07e7f4f2925a3 # main - - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: DeterminateSystems/magic-nix-cache-action@4119f6e7cfd06aaeee21273b2792c1fcb5d66ba1 # main - - name: IBGE sync test - id: sync_test + - name: Check generated data offline + run: nix develop --command bazel test //tools/municipio_gen:drift_test + + - name: Fetch live IBGE municipalities + id: fetch + if: github.event_name == 'schedule' continue-on-error: true - run: nix develop --command bazel test //tests/parity:parity_rust + env: + IBGE_URL: https://servicodados.ibge.gov.br/api/v1/localidades/municipios + run: | + curl --fail --silent --show-error --location \ + --retry 3 --retry-all-errors --connect-timeout 15 --max-time 120 \ + "$IBGE_URL" --output "$RUNNER_TEMP/ibge-municipios.json" + + - name: Report IBGE network failure + if: always() && github.event_name == 'schedule' && steps.fetch.outcome == 'failure' + run: | + echo "::error title=IBGE network failure::The live API could not be downloaded; no files or PR were created." + exit 1 + + - name: Regenerate from live response + if: github.event_name == 'schedule' && steps.fetch.outcome == 'success' + run: | + nix develop --command bazel run //tools/municipio_gen -- \ + generate --input "$RUNNER_TEMP/ibge-municipios.json" --update-source + + - name: Validate regenerated data + if: github.event_name == 'schedule' && steps.fetch.outcome == 'success' + run: | + nix develop --command bazel test \ + //tools/municipio_gen:drift_test //core:stdbr-core-test - - name: Regenerate municipality data - if: steps.sync_test.outcome == 'failure' - run: nix develop --command cargo run -p parity-gen > /tmp/municipio.rs + - name: Detect municipality drift + id: drift + if: github.event_name == 'schedule' && steps.fetch.outcome == 'success' + run: | + if git diff --quiet -- core/src/municipio/generated.rs tools/municipio_gen/ibge_municipios.json; then + echo "changed=false" >> "$GITHUB_OUTPUT" + else + status=$? + if [ "$status" -ne 1 ]; then + exit "$status" + fi + echo "changed=true" >> "$GITHUB_OUTPUT" + fi - - name: Create Pull Request if out of sync - if: steps.sync_test.outcome == 'failure' - uses: peter-evans/create-pull-request@v6 + - name: Create pull request for municipality drift + if: steps.drift.outputs.changed == 'true' + uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: "chore(ibge): sync municipalities" title: "chore(ibge): sync municipalities" body: | - Automated IBGE sync detected differences between `core/src/municipio.rs` and the live IBGE API. + The scheduled sync detected municipality drift against the live IBGE API. - This PR regenerates the municipality data. Please review and merge to include it in the next release. + This PR updates the normalized source snapshot and `core/src/municipio/generated.rs`. branch: chore/ibge-sync labels: ibge-sync - add-paths: core/src/municipio.rs + add-paths: | + core/src/municipio/generated.rs + tools/municipio_gen/ibge_municipios.json diff --git a/.github/workflows/publish-test.yml b/.github/workflows/publish-test.yml index 10a9ee0..72ad5bd 100644 --- a/.github/workflows/publish-test.yml +++ b/.github/workflows/publish-test.yml @@ -1,7 +1,34 @@ -name: Publish Test (Dry-Run + Test Registries) +name: Package Smoke Tests on: + workflow_call: + inputs: + checkout-ref: + description: Optional git ref used by every build and smoke checkout + required: false + default: '' + type: string + expected-version: + description: Version that every package must contain + required: false + default: '' + type: string workflow_dispatch: + inputs: + checkout-ref: + description: Optional git ref; defaults to the ref selected for this run + required: false + default: '' + type: string + expected-version: + description: Optional version that every package must contain + required: false + default: '' + type: string + +concurrency: + group: package-smoke-${{ github.workflow }}-${{ inputs['checkout-ref'] || github.ref }} + cancel-in-progress: true permissions: contents: read @@ -9,69 +36,399 @@ permissions: env: CARGO_INCREMENTAL: 0 CARGO_NET_RETRY: 10 + PACKAGE_CHECKOUT_REF: ${{ inputs['checkout-ref'] || github.ref }} jobs: - test-crates: + build-crates: runs-on: ubuntu-latest + timeout-minutes: 15 steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo publish -p stdbr-core --dry-run + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - name: Install Rust + run: rustup toolchain install stable --profile minimal + - name: Build crate archives without publishing + env: + RUSTC_BOOTSTRAP: 1 + run: | + cargo -Z package-workspace package --locked --no-verify \ + -p stdbr-core -p stdbr + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: release-crates + path: target/package/*.crate + if-no-files-found: error + retention-days: 7 + + smoke-crates: + needs: build-crates + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-crates + path: artifacts/crates + - name: Install Rust + run: rustup toolchain install stable --profile minimal + - name: Consume the exact crate archives in a clean project + run: tests/package/crates/smoke.sh artifacts/crates "${{ inputs['expected-version'] }}" - test-nodejs: + build-node-native: runs-on: ${{ matrix.os }} + timeout-minutes: 25 strategy: fail-fast: false matrix: include: - os: ubuntu-latest target: x86_64-unknown-linux-gnu - - os: macos-latest + - os: ubuntu-latest + target: x86_64-unknown-linux-musl + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + - os: macos-15-intel target: x86_64-apple-darwin + - os: macos-15 + target: aarch64-apple-darwin - os: windows-latest target: x86_64-pc-windows-msvc steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 20 - - uses: dtolnay/rust-toolchain@stable + - name: Install Rust target + shell: bash + run: | + rustup toolchain install stable --profile minimal --target "${{ matrix.target }}" + rustup default stable + - name: Install Zig + if: matrix.target == 'aarch64-unknown-linux-gnu' || contains(matrix.target, 'musl') + uses: goto-bus-stop/setup-zig@abea47f85e598557f500fa1fd2ab7464fcb39406 # v2.2.1 with: - targets: ${{ matrix.target }} + version: 0.13.0 + - name: Install musl tools + if: contains(matrix.target, 'musl') + run: sudo apt-get update && sudo apt-get install -y musl-tools musl-dev - run: npm ci working-directory: bindings/nodejs - - run: npx napi build --platform --release --target ${{ matrix.target }} + - name: Build native package payload + run: npx napi build --platform --release --target "${{ matrix.target }}" working-directory: bindings/nodejs - - run: npm publish --dry-run + - name: Check generated Node.js loader and declarations + if: matrix.target == 'x86_64-unknown-linux-gnu' + run: git diff --exit-code -- index.js index.d.ts working-directory: bindings/nodejs + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: node-native-${{ matrix.target }} + path: bindings/nodejs/*.node + if-no-files-found: error + retention-days: 7 - test-wasm: + package-node: + needs: build-node-native runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 20 + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + path: artifacts/node-native + pattern: node-native-* + merge-multiple: true + - run: npm ci + working-directory: bindings/nodejs + - name: Create the main and all platform tgz files + run: tools/release/package-node.sh artifacts/node-native artifacts/node + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: release-node-packages + path: artifacts/node/*.tgz + if-no-files-found: error + retention-days: 7 + + smoke-node: + needs: package-node + runs-on: ${{ matrix.os }} + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + platform: linux-x64-gnu + - os: ubuntu-24.04-arm + platform: linux-arm64-gnu + - os: macos-15-intel + platform: darwin-x64 + - os: macos-15 + platform: darwin-arm64 + - os: windows-latest + platform: win32-x64-msvc steps: - - uses: actions/checkout@v4 - - uses: rustwasm/wasm-pack-action@v0.0.4 - - run: wasm-pack build --release --target web + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 20 + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-node-packages + path: artifacts/node + - name: Install every exact tgz in a clean project and load the host binary + run: node tests/package/node/smoke.mjs artifacts/node "${{ matrix.platform }}" "${{ inputs['expected-version'] }}" + + smoke-node-musl: + needs: package-node + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-node-packages + path: artifacts/node + - name: Install the exact tgz files and load the musl binary in a clean container + env: + EXPECTED_VERSION: ${{ inputs['expected-version'] }} + run: >- + docker run --rm + --volume "$PWD:/workspace:ro" + node:20-alpine + node /workspace/tests/package/node/smoke.mjs + /workspace/artifacts/node linux-x64-musl "$EXPECTED_VERSION" + + build-wasm: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 20 + - uses: cargo-bins/cargo-binstall@b874e25ea559687bec77e281e9b271aa1367b624 # main + - name: Install wasm-pack + run: cargo binstall wasm-pack@0.13.1 --no-confirm + - name: Build the web target + run: wasm-pack build --release --target web --out-dir pkg working-directory: bindings/wasm - - run: npm publish --dry-run - working-directory: bindings/wasm/pkg + - name: Create the scoped npm tgz + run: node tools/release/package-wasm.mjs bindings/wasm/pkg bindings/wasm/package.json artifacts/wasm + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: release-wasm-package + path: artifacts/wasm/*.tgz + if-no-files-found: error + retention-days: 7 - test-python: + smoke-wasm: + needs: build-wasm runs-on: ubuntu-latest + timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: PyO3/maturin-action@v1 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + with: + node-version: 20 + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-wasm-package + path: artifacts/wasm + - name: Install and instantiate the exact web tgz in a clean project + run: node tests/package/wasm/smoke.mjs artifacts/wasm "${{ inputs['expected-version'] }}" + + build-python-wheels: + runs-on: ${{ matrix.os }} + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + artifact: Linux-x64 + - os: macos-15-intel + artifact: macOS-x64 + - os: macos-15 + artifact: macOS-arm64 + - os: windows-latest + artifact: Windows-x64 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1 with: command: build - args: --release + maturin-version: v1.9.4 + args: --release --out dist + manylinux: auto working-directory: bindings/python + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: release-python-wheel-${{ matrix.artifact }} + path: bindings/python/dist/*.whl + if-no-files-found: error + retention-days: 7 - test-ffi: + build-python-sdist: runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1 + with: + command: sdist + maturin-version: v1.9.4 + args: --out dist + working-directory: bindings/python + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: release-python-sdist + path: bindings/python/dist/*.tar.gz + if-no-files-found: error + retention-days: 7 + + smoke-python-wheels: + needs: build-python-wheels + runs-on: ${{ matrix.os }} + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + artifact: Linux-x64 + - os: macos-15-intel + artifact: macOS-x64 + - os: macos-15 + artifact: macOS-arm64 + - os: windows-latest + artifact: Windows-x64 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + with: + python-version: '3.12' + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-python-wheel-${{ matrix.artifact }} + path: artifacts/python + - name: Install the exact wheel in a clean virtual environment + run: python tests/package/python/smoke.py wheel artifacts/python "${{ inputs['expected-version'] }}" + + smoke-python-sdist: + needs: build-python-sdist + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 + with: + python-version: '3.12' + - name: Install Rust for the isolated sdist build + run: rustup toolchain install stable --profile minimal + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-python-sdist + path: artifacts/python + - name: Build and install the exact sdist in a clean virtual environment + run: python tests/package/python/smoke.py sdist artifacts/python "${{ inputs['expected-version'] }}" + + build-ffi: + runs-on: ${{ matrix.os }} + timeout-minutes: 25 + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + - os: macos-15-intel + target: x86_64-apple-darwin + - os: macos-15 + target: aarch64-apple-darwin + - os: windows-latest + target: x86_64-pc-windows-msvc steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - uses: cargo-bins/cargo-binstall@main - - run: cargo binstall cbindgen -y - - run: cargo build --release -p stdbr-ffi - - run: cbindgen --crate stdbr-ffi --output stdbr.h - - run: tar czf stdbr-ffi-test.tar.gz target/release/libstdbr.* stdbr.h + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - name: Install Rust target + shell: bash + run: | + rustup toolchain install stable --profile minimal --target "${{ matrix.target }}" + rustup default stable + - name: Build both FFI library kinds + run: cargo build --locked --release -p stdbr-ffi --target "${{ matrix.target }}" + - name: Create an archive with every required library and the ABI snapshot + shell: bash + run: tools/release/package-ffi.sh "${{ matrix.target }}" bindings/ffi-c/include/stdbr.h artifacts/ffi + - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: release-ffi-${{ matrix.target }} + path: artifacts/ffi/*.tar.gz + if-no-files-found: error + retention-days: 7 + + smoke-ffi: + needs: build-ffi + runs-on: ${{ matrix.os }} + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + shell: bash + - os: macos-15-intel + target: x86_64-apple-darwin + shell: bash + - os: macos-15 + target: aarch64-apple-darwin + shell: bash + - os: windows-latest + target: x86_64-pc-windows-msvc + shell: pwsh + steps: + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ env.PACKAGE_CHECKOUT_REF }} + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-ffi-${{ matrix.target }} + path: artifacts/ffi + - name: Link and call the exact FFI archive on Unix + if: matrix.shell == 'bash' + shell: bash + run: tests/package/ffi/smoke.sh artifacts/ffi "${{ matrix.target }}" + - name: Load and call the exact FFI archive on Windows + if: matrix.shell == 'pwsh' + shell: pwsh + run: tests/package/ffi/smoke.ps1 artifacts/ffi "${{ matrix.target }}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ed8f28e..8944c65 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,226 +2,241 @@ name: Release on: push: - branches: - - main + branches: [main] + workflow_dispatch: + inputs: + tag: + description: Existing GitHub Release tag to resume (for example, v0.4.0-beta.1) + required: true + type: string + version: + description: Exact package version contained in the tag + required: true + type: string + npm-dist-tag: + description: Explicit npm channel (latest for stable, or next/beta/etc. for prereleases) + required: true + type: string + +concurrency: + group: release-${{ inputs.tag || github.ref }} + cancel-in-progress: false permissions: - contents: write - pull-requests: write + contents: read jobs: release-please: runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: write + pull-requests: write outputs: release_created: ${{ steps.release.outputs.release_created }} tag_name: ${{ steps.release.outputs.tag_name }} version: ${{ steps.release.outputs.version }} steps: - - uses: googleapis/release-please-action@v4 + - uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4 + if: github.event_name == 'push' id: release with: token: ${{ secrets.GITHUB_TOKEN }} config-file: release-please-config.json manifest-file: .release-please-manifest.json - target-branch: ${{ github.ref_name }} + target-branch: main - publish-crates: + release-context: needs: release-please - if: needs.release-please.outputs.release_created runs-on: ubuntu-latest + timeout-minutes: 5 + outputs: + should-publish: ${{ steps.validate.outputs.should-publish }} + tag-name: ${{ steps.validate.outputs.tag-name }} + version: ${{ steps.validate.outputs.version }} + npm-dist-tag: ${{ steps.validate.outputs.npm-dist-tag }} steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - - run: cargo publish -p stdbr-core --token ${{ secrets.CARGO_REGISTRY_TOKEN }} - - name: Publish stdbr (retry until crates.io index updates) + - name: Validate the release to publish + id: validate + env: + EVENT_NAME: ${{ github.event_name }} + AUTO_RELEASE_CREATED: ${{ needs.release-please.outputs.release_created }} + AUTO_TAG_NAME: ${{ needs.release-please.outputs.tag_name }} + AUTO_VERSION: ${{ needs.release-please.outputs.version }} + INPUT_TAG_NAME: ${{ inputs.tag }} + INPUT_VERSION: ${{ inputs.version }} + INPUT_NPM_DIST_TAG: ${{ inputs['npm-dist-tag'] }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} shell: bash run: | - for i in $(seq 1 10); do - cargo publish -p stdbr --token ${{ secrets.CARGO_REGISTRY_TOKEN }} && exit 0 - sleep 15 - done - exit 1 + set -euo pipefail - build-nodejs: - needs: release-please - if: needs.release-please.outputs.release_created - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - target: x86_64-unknown-linux-gnu - - os: ubuntu-latest - target: x86_64-unknown-linux-musl - - os: ubuntu-latest - target: aarch64-unknown-linux-gnu - - os: macos-latest - target: x86_64-apple-darwin - - os: macos-latest - target: aarch64-apple-darwin - - os: windows-latest - target: x86_64-pc-windows-msvc + if [[ "$EVENT_NAME" == push ]]; then + if [[ "$AUTO_RELEASE_CREATED" != true ]]; then + echo "should-publish=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + tag_name=$AUTO_TAG_NAME + version=$AUTO_VERSION + npm_dist_tag=latest + version_pattern='^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$' + else + tag_name=$INPUT_TAG_NAME + version=$INPUT_VERSION + npm_dist_tag=$INPUT_NPM_DIST_TAG + prerelease_identifier='(0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)' + build_identifier='[0-9A-Za-z-]+' + version_pattern="^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-$prerelease_identifier(\.$prerelease_identifier)*)?(\+$build_identifier(\.$build_identifier)*)?$" + fi + + if [[ ! "$version" =~ $version_pattern ]]; then + echo "version is not allowed for this release mode: $version" >&2 + exit 1 + fi + if [[ "$tag_name" != "v$version" ]]; then + echo "tag must exactly match v: tag=$tag_name version=$version" >&2 + exit 1 + fi + + if [[ "$EVENT_NAME" == workflow_dispatch ]]; then + if [[ ! "$npm_dist_tag" =~ ^[a-z][a-z0-9._-]*$ ]]; then + echo "npm-dist-tag must be an explicit lowercase channel, got: $npm_dist_tag" >&2 + exit 1 + fi + if [[ "${version%%+*}" == *-* && "$npm_dist_tag" == latest ]]; then + echo "prereleases must use an explicit npm channel other than latest" >&2 + exit 1 + fi + release_tag=$(gh release view "$tag_name" --repo "$GH_REPO" --json tagName --jq '.tagName') + if [[ "$release_tag" != "$tag_name" ]]; then + echo "GitHub Release tag mismatch: expected $tag_name, got $release_tag" >&2 + exit 1 + fi + gh api --silent "repos/$GH_REPO/git/ref/tags/$tag_name" + fi + + { + echo "should-publish=true" + echo "tag-name=$tag_name" + echo "version=$version" + echo "npm-dist-tag=$npm_dist_tag" + } >> "$GITHUB_OUTPUT" + + package-smoke: + needs: release-context + if: needs.release-context.outputs.should-publish == 'true' + permissions: + contents: read + uses: ./.github/workflows/publish-test.yml + with: + checkout-ref: ${{ needs.release-context.outputs.tag-name }} + expected-version: ${{ needs.release-context.outputs.version }} + + publish-crates: + needs: [release-context, package-smoke] + if: needs.package-smoke.result == 'success' + runs-on: ubuntu-latest + timeout-minutes: 20 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 with: - node-version: 20 - - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - - name: Install Rust target - run: rustup target add ${{ matrix.target }} - - name: Install Zig - if: matrix.target == 'aarch64-unknown-linux-gnu' || contains(matrix.target, 'musl') - uses: goto-bus-stop/setup-zig@v2 + ref: ${{ needs.release-context.outputs.tag-name }} + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 with: - version: 0.13.0 - - name: Install musl tools - if: contains(matrix.target, 'musl') - run: sudo apt-get update && sudo apt-get install -y musl-tools musl-dev - - run: npm ci - working-directory: bindings/nodejs - - run: npx napi build --platform --release --target ${{ matrix.target }} - working-directory: bindings/nodejs - - uses: actions/upload-artifact@v4 - with: - name: napi-${{ matrix.target }} - path: bindings/nodejs/*.node - if-no-files-found: error + name: release-crates + path: artifacts/crates + - name: Install Rust + run: rustup toolchain install stable --profile minimal + - name: Publish packaged crates if absent + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + RELEASE_VERSION: ${{ needs.release-context.outputs.version }} + run: tools/release/publish-crates.sh artifacts/crates "$RELEASE_VERSION" publish-nodejs: - needs: build-nodejs + needs: [release-context, package-smoke] + if: needs.package-smoke.result == 'success' runs-on: ubuntu-latest + timeout-minutes: 15 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ needs.release-context.outputs.tag-name }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 20 - registry-url: 'https://registry.npmjs.org' - - run: npm ci - working-directory: bindings/nodejs - - uses: actions/download-artifact@v4 + registry-url: https://registry.npmjs.org + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 with: - path: bindings/nodejs/artifacts - pattern: napi-* - merge-multiple: true - - name: Move artifacts into npm packages - working-directory: bindings/nodejs - shell: bash - run: | - for f in artifacts/*.node; do - [ -e "$f" ] || continue - target=$(basename "$f" | sed 's/^stdbr\.//' | sed 's/\.node$//') - case "$target" in - linux-x64-gnu) dest=npm/linux-x64-gnu/stdbr.linux-x64-gnu.node ;; - linux-x64-musl) dest=npm/linux-x64-musl/stdbr.linux-x64-musl.node ;; - linux-arm64-gnu) dest=npm/linux-arm64-gnu/stdbr.linux-arm64-gnu.node ;; - darwin-x64) dest=npm/darwin-x64/stdbr.darwin-x64.node ;; - darwin-arm64) dest=npm/darwin-arm64/stdbr.darwin-arm64.node ;; - win32-x64-msvc) dest=npm/win32-x64-msvc/stdbr.win32-x64-msvc.node ;; - *) echo "Unknown target: $target"; exit 1 ;; - esac - cp "$f" "$dest" - done - - name: Publish main package (publishes platform packages via napi prepublish) - working-directory: bindings/nodejs - run: npm publish --access public + name: release-node-packages + path: artifacts/node + - name: Publish platform packages, then the main package env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_DIST_TAG: ${{ needs.release-context.outputs.npm-dist-tag }} + run: tools/release/publish-npm.sh artifacts/node "$NPM_DIST_TAG" publish-wasm: - needs: release-please - if: needs.release-please.outputs.release_created + needs: [release-context, package-smoke] + if: needs.package-smoke.result == 'success' runs-on: ubuntu-latest + timeout-minutes: 10 steps: - - uses: actions/checkout@v4 - - uses: jetli/wasm-pack-action@v0.4.0 - - run: wasm-pack build --release --target web - working-directory: bindings/wasm - - uses: actions/setup-node@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 + with: + ref: ${{ needs.release-context.outputs.tag-name }} + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 20 - registry-url: 'https://registry.npmjs.org' - - run: npm publish --access public - working-directory: bindings/wasm/pkg + registry-url: https://registry.npmjs.org + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: release-wasm-package + path: artifacts/wasm + - name: Publish the tested web package env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_DIST_TAG: ${{ needs.release-context.outputs.npm-dist-tag }} + run: tools/release/publish-npm.sh artifacts/wasm "$NPM_DIST_TAG" publish-python: - needs: release-please - if: needs.release-please.outputs.release_created - runs-on: ${{ matrix.os }} + needs: [release-context, package-smoke] + if: needs.package-smoke.result == 'success' + runs-on: ubuntu-latest + timeout-minutes: 15 environment: pypi permissions: + contents: read id-token: write - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] steps: - - uses: actions/checkout@v4 - - uses: PyO3/maturin-action@v1 + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 with: - command: publish - args: --non-interactive --skip-existing - working-directory: bindings/python - - build-ffi: - needs: release-please - if: needs.release-please.outputs.release_created - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - target: x86_64-unknown-linux-gnu - - os: macos-latest - target: x86_64-apple-darwin - - os: macos-latest - target: aarch64-apple-darwin - - os: windows-latest - target: x86_64-pc-windows-msvc - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - targets: ${{ matrix.target }} - - name: Install Rust target - run: rustup target add ${{ matrix.target }} - - uses: cargo-bins/cargo-binstall@main - - run: cargo binstall cbindgen -y - - run: cargo build --release -p stdbr-ffi --target ${{ matrix.target }} - - run: cbindgen --crate stdbr-ffi --output stdbr.h - - shell: bash - run: | - mkdir -p "stdbr-ffi-${{ matrix.target }}" - cp stdbr.h "stdbr-ffi-${{ matrix.target }}/" - cp "target/${{ matrix.target }}/release/libstdbr.a" "stdbr-ffi-${{ matrix.target }}/" 2>/dev/null || true - cp "target/${{ matrix.target }}/release/libstdbr.so" "stdbr-ffi-${{ matrix.target }}/" 2>/dev/null || true - cp "target/${{ matrix.target }}/release/stdbr.dll" "stdbr-ffi-${{ matrix.target }}/" 2>/dev/null || true - tar czf "stdbr-ffi-${{ matrix.target }}.tar.gz" "stdbr-ffi-${{ matrix.target }}" - - uses: actions/upload-artifact@v4 + path: artifacts/python + pattern: release-python-* + merge-multiple: true + - uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1 with: - name: ffi-${{ matrix.target }} - path: stdbr-ffi-*.tar.gz - if-no-files-found: error + command: upload + maturin-version: v1.9.4 + args: --non-interactive --skip-existing artifacts/python/* publish-ffi: - needs: - - release-please - - build-ffi - if: needs.release-please.outputs.release_created + needs: [release-context, package-smoke] + if: needs.package-smoke.result == 'success' runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: write steps: - - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 with: - path: ffi-artifacts - pattern: ffi-* + path: artifacts/ffi + pattern: release-ffi-* merge-multiple: true - - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ needs.release-please.outputs.tag_name }} - files: ffi-artifacts/*.tar.gz + - name: Attach the tested archives to the GitHub release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + TAG_NAME: ${{ needs.release-context.outputs.tag-name }} + run: gh release upload "$TAG_NAME" artifacts/ffi/*.tar.gz --clobber --repo "$GH_REPO" diff --git a/BUILD.bazel b/BUILD.bazel index 9c9b363..3666de5 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1 +1,23 @@ -exports_files(["Cargo.toml", "Cargo.lock", "src/lib.rs"]) +exports_files([ + "Cargo.toml", + "Cargo.lock", + "src/lib.rs", +]) + +test_suite( + name = "all_tests", + tests = [ + "//bindings/ffi-c:stdbr-header-diff-test", + "//core:cep-boundaries-test", + "//core:features-test", + "//core:properties-test", + "//core:rng-test", + "//core:stdbr-core-test", + "//tests/parity:parity_ffi_c", + "//tests/parity:parity_nodejs", + "//tests/parity:parity_python", + "//tests/parity:parity_rust", + "//tests/parity:parity_wasm", + "//tools/municipio_gen:drift_test", + ], +) diff --git a/Cargo.lock b/Cargo.lock index e5a173e..071b12d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,12 +17,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "autocfg" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - [[package]] name = "base64" version = "0.22.1" @@ -140,15 +134,6 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" -[[package]] -name = "indoc" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" -dependencies = [ - "rustversion", -] - [[package]] name = "itoa" version = "1.0.18" @@ -183,15 +168,6 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" -[[package]] -name = "memoffset" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" -dependencies = [ - "autocfg", -] - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -297,37 +273,32 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.24.2" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219" +checksum = "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b" dependencies = [ - "cfg-if", - "indoc", "libc", - "memoffset", "once_cell", "portable-atomic", "pyo3-build-config", "pyo3-ffi", "pyo3-macros", - "unindent", ] [[package]] name = "pyo3-build-config" -version = "0.24.2" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999" +checksum = "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9" dependencies = [ - "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.24.2" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33" +checksum = "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327" dependencies = [ "libc", "pyo3-build-config", @@ -335,9 +306,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.24.2" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9" +checksum = "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -347,13 +318,12 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.24.2" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a" +checksum = "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952" dependencies = [ "heck", "proc-macro2", - "pyo3-build-config", "quote", "syn", ] @@ -593,12 +563,6 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" -[[package]] -name = "unindent" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" - [[package]] name = "untrusted" version = "0.9.0" diff --git a/Cargo.toml b/Cargo.toml index 25df2c7..aee4798 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,9 +10,15 @@ homepage.workspace = true readme.workspace = true keywords.workspace = true categories.workspace = true +include = ["/src/**", "/Cargo.toml", "/README.md", "/LICENSE"] [dependencies] -stdbr-core = { path = "core", version = "0.3.1" } +stdbr-core = { path = "core", version = "0.3.1", default-features = false } + +[features] +default = ["std", "municipio"] +municipio = ["stdbr-core/municipio"] +std = ["stdbr-core/std"] [workspace] resolver = "2" @@ -20,10 +26,10 @@ members = ["core", "bindings/ffi-c", "bindings/nodejs", "bindings/python", "bind exclude = ["plugins/polars"] [workspace.package] -version = "0.0.1" +version = "0.3.1" edition = "2024" rust-version = "1.85.0" -license = "MIT OR Apache-2.0" +license = "Apache-2.0" description = "Standard library for Brazil" repository = "https://github.com/fullzer4/stdbr" homepage = "https://github.com/fullzer4/stdbr" diff --git a/MODULE.bazel b/MODULE.bazel index 8b70acf..744e82d 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,4 +1,7 @@ -module(name = "stdbr", version = "0.0.1") +module( + name = "stdbr", + version = "0.3.1", +) bazel_dep(name = "rules_rust", version = "0.70.0") bazel_dep(name = "rules_rust_wasm_bindgen", version = "0.70.0") @@ -7,8 +10,12 @@ bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "platforms", version = "1.0.0") rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") -rust.toolchain(edition = "2024", versions = ["1.87.0"]) +rust.toolchain( + edition = "2024", + versions = ["1.87.0"], +) use_repo(rust, "rust_toolchains") + register_toolchains("@rust_toolchains//:all") crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate") @@ -27,5 +34,9 @@ crate.from_cargo( ) use_repo(crate, "crates") +cbindgen_repository = use_repo_rule("//tools:nix_tools.bzl", "cbindgen_repository") + +cbindgen_repository(name = "nix_cbindgen") + cjson = use_extension("//tools:cjson_ext.bzl", "cjson") use_repo(cjson, "cjson") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index dc6db7f..bb8ae37 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -149,7 +149,7 @@ "//tools:cjson_ext.bzl%cjson": { "general": { "bzlTransitiveDigest": "RvLwjXRLvX9P21F0bpk77lUcFxA1ulKHn13c+9uMbsk=", - "usagesDigest": "Q32XAxi6IReKTMrs3jJikgjm1q2oDC15j/SpIYkmIyM=", + "usagesDigest": "H0CsiXprrLxc8Jv7Kc2DrZHWOpwLed7IxnVkoMoszxY=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -175,6 +175,133 @@ ] } }, + "@@pybind11_bazel~//:python_configure.bzl%extension": { + "general": { + "bzlTransitiveDigest": "whINYge95GgPtysKDbNHQ0ZlWYdtKybHs5y2tLF+x7Q=", + "usagesDigest": "gNvOHVcAlwgDsNXD0amkv2CC96mnaCThPQoE44y8K+w=", + "recordedFileInputs": { + "@@pybind11_bazel~//MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "local_config_python": { + "bzlFile": "@@pybind11_bazel~//:python_configure.bzl", + "ruleClassName": "python_configure", + "attributes": {} + }, + "pybind11": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "build_file": "@@pybind11_bazel~//:pybind11.BUILD", + "strip_prefix": "pybind11-2.11.1", + "urls": [ + "https://github.com/pybind/pybind11/archive/v2.11.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "pybind11_bazel~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_fuzzing~//fuzzing/private:extensions.bzl%non_module_dependencies": { + "general": { + "bzlTransitiveDigest": "hVgJRQ3Er45/UUAgNn1Yp2Khcp/Y8WyafA2kXIYmQ5M=", + "usagesDigest": "YnIrdgwnf3iCLfChsltBdZ7yOJh706lpa2vww/i2pDI=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "platforms": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz", + "https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz" + ], + "sha256": "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74" + } + }, + "rules_python": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "d70cd72a7a4880f0000a6346253414825c19cdd40a28289bdf67b8e6480edff8", + "strip_prefix": "rules_python-0.28.0", + "url": "https://github.com/bazelbuild/rules_python/releases/download/0.28.0/rules_python-0.28.0.tar.gz" + } + }, + "bazel_skylib": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94", + "urls": [ + "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz", + "https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz" + ] + } + }, + "com_google_absl": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "urls": [ + "https://github.com/abseil/abseil-cpp/archive/refs/tags/20240116.1.zip" + ], + "strip_prefix": "abseil-cpp-20240116.1", + "integrity": "sha256-7capMWOvWyoYbUaHF/b+I2U6XLMaHmky8KugWvfXYuk=" + } + }, + "rules_fuzzing_oss_fuzz": { + "bzlFile": "@@rules_fuzzing~//fuzzing/private/oss_fuzz:repository.bzl", + "ruleClassName": "oss_fuzz_repository", + "attributes": {} + }, + "honggfuzz": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "build_file": "@@rules_fuzzing~//:honggfuzz.BUILD", + "sha256": "6b18ba13bc1f36b7b950c72d80f19ea67fbadc0ac0bb297ec89ad91f2eaa423e", + "url": "https://github.com/google/honggfuzz/archive/2.5.zip", + "strip_prefix": "honggfuzz-2.5" + } + }, + "rules_fuzzing_jazzer": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_jar", + "attributes": { + "sha256": "ee6feb569d88962d59cb59e8a31eb9d007c82683f3ebc64955fd5b96f277eec2", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer/0.20.1/jazzer-0.20.1.jar" + } + }, + "rules_fuzzing_jazzer_api": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_jar", + "attributes": { + "sha256": "f5a60242bc408f7fa20fccf10d6c5c5ea1fcb3c6f44642fec5af88373ae7aa1b", + "url": "https://repo1.maven.org/maven2/com/code-intelligence/jazzer-api/0.20.1/jazzer-api-0.20.1.jar" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_fuzzing~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@rules_java~//java:rules_java_deps.bzl%compatibility_proxy": { "general": { "bzlTransitiveDigest": "KIX40nDfygEWbU+rq3nYpt3tVgTK/iO8PKh5VMBlN7M=", @@ -312,18 +439,18 @@ "@@rules_rust~//crate_universe:extensions.bzl%crate": { "general": { "bzlTransitiveDigest": "HvAavFwnoBqVWNSBW5qp9+0FLfB5jpZMqP/bqVGcNYg=", - "usagesDigest": "N/y417hcQKWtmwZClwRIUl85BRJMkDg86j+m1l/OT/8=", + "usagesDigest": "s/ypQCGyX8Fe6a3h/xffVAF7S/gvHB+LcpyBMyT4naw=", "recordedFileInputs": { - "@@//Cargo.toml": "6d78b2d262f687f9fa8d8d6e2b545d902958bb8e5499d5ac48f77d81fd998eac", - "@@//core/Cargo.toml": "ee9c1bb6312899cc3fd1219138250577d1debc32ac0eeab7d052e77bed57cc2e", - "@@//bindings/nodejs/Cargo.toml": "b5c380879e6506a6f6541a590f2e98f8f3cfa9e57e270dfd0f1b48f8a567bb5d", - "@@//tools/parity_gen/Cargo.toml": "a0ba8af89cc39821031f2266fe8f3dfcd3055bcdb4214def44607a6ba7e51ee2", - "@@//bindings/python/Cargo.toml": "e4b5edbbc0bd0ac1b0d32929c1563f8a80a5c5cad0862681675051e0aacefc4d", - "@@//Cargo.lock": "02c33ad8689367e3a936ce47634b98d471a839e89c91aaa016a4a241400e96b0", - "@@//MODULE.bazel": "88fbc29bd85a833c4f79de1650d28a801581339de8dc7d7039f8b7f4896acdcb", + "@@//Cargo.toml": "04b049b26094a577045b089215f912773fa71f1a1bc1f8efd46b0c97c2c50b40", + "@@//core/Cargo.toml": "aba378f78bb83eea24a7a0c6eaf297e16721bf5c502aa8eaafc2876e0647dbad", + "@@//bindings/nodejs/Cargo.toml": "17f256e2e407d71f215dda48ea528f442639bb9883c5e1282f9c8b43665f20cc", + "@@//tools/parity_gen/Cargo.toml": "756124d8ab09eb96ba1665daa6b84abaadf154b5c30c07fd25f186903b6a41a9", + "@@//bindings/python/Cargo.toml": "96b21ec417945770f66c8ea2ed217992a5bf72a7d9dbd3fc533c290d3bd7ac58", + "@@//Cargo.lock": "84c082937012630e37c336ce1db8f178d7f47ddcb5ebecac3d6bb3f36a08b63b", + "@@//MODULE.bazel": "88fce50f880c6f6d6ae137e3bc7085999b2221395bfb914fa9ea175594ccc063", "@@rules_rust~~rust_host_tools~rust_host_tools//rust_host_tools": "ENOENT", - "@@//bindings/ffi-c/Cargo.toml": "c9e0671d77ddb16addb2f88385c20982597e8c774a71fdc8873f1784701f4aad", - "@@//bindings/wasm/Cargo.toml": "ed7936dad66631ef6d9a8aa7b9640e0b26ad703cca63f8f9f4c3860041ba3fc1" + "@@//bindings/ffi-c/Cargo.toml": "784acbc18d792d98c005eccb092e00a21f0a36b7296c0d0bdb0a048416a52069", + "@@//bindings/wasm/Cargo.toml": "e7ce96379b412dc81834c71f8778d5e7e5048001aff3d7e2103f0952ace5457b" }, "recordedDirentsInputs": {}, "envVariables": { @@ -342,9 +469,9 @@ "ruleClassName": "_generate_repo", "attributes": { "contents": { - "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n [\n \"cargo-bazel.json\",\n \"crates.bzl\",\n \"defs.bzl\",\n ] + glob(\n allow_empty = True,\n include = [\"*.bazel\"],\n ),\n)\n\nfilegroup(\n name = \"srcs\",\n srcs = glob(\n allow_empty = True,\n include = [\n \"*.bazel\",\n \"*.bzl\",\n ],\n ),\n)\n\n# Workspace Member Dependencies\nalias(\n name = \"napi-2.16.17\",\n actual = \"@crates__napi-2.16.17//:napi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi\",\n actual = \"@crates__napi-2.16.17//:napi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-build-2.1.3\",\n actual = \"@crates__napi-build-2.1.3//:napi_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-build\",\n actual = \"@crates__napi-build-2.1.3//:napi_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-derive-2.16.13\",\n actual = \"@crates__napi-derive-2.16.13//:napi_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-derive\",\n actual = \"@crates__napi-derive-2.16.13//:napi_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pyo3-0.24.2\",\n actual = \"@crates__pyo3-0.24.2//:pyo3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pyo3\",\n actual = \"@crates__pyo3-0.24.2//:pyo3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.149\",\n actual = \"@crates__serde_json-1.0.149//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@crates__serde_json-1.0.149//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ureq-3.3.0\",\n actual = \"@crates__ureq-3.3.0//:ureq\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ureq\",\n actual = \"@crates__ureq-3.3.0//:ureq\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen-0.2.105\",\n actual = \"@crates__wasm-bindgen-0.2.105//:wasm_bindgen\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen\",\n actual = \"@crates__wasm-bindgen-0.2.105//:wasm_bindgen\",\n tags = [\"manual\"],\n)\n", + "BUILD.bazel": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files(\n [\n \"cargo-bazel.json\",\n \"crates.bzl\",\n \"defs.bzl\",\n ] + glob(\n allow_empty = True,\n include = [\"*.bazel\"],\n ),\n)\n\nfilegroup(\n name = \"srcs\",\n srcs = glob(\n allow_empty = True,\n include = [\n \"*.bazel\",\n \"*.bzl\",\n ],\n ),\n)\n\n# Workspace Member Dependencies\nalias(\n name = \"napi-2.16.17\",\n actual = \"@crates__napi-2.16.17//:napi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi\",\n actual = \"@crates__napi-2.16.17//:napi\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-build-2.1.3\",\n actual = \"@crates__napi-build-2.1.3//:napi_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-build\",\n actual = \"@crates__napi-build-2.1.3//:napi_build\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-derive-2.16.13\",\n actual = \"@crates__napi-derive-2.16.13//:napi_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"napi-derive\",\n actual = \"@crates__napi-derive-2.16.13//:napi_derive\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pyo3-0.29.2\",\n actual = \"@crates__pyo3-0.29.2//:pyo3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"pyo3\",\n actual = \"@crates__pyo3-0.29.2//:pyo3\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json-1.0.149\",\n actual = \"@crates__serde_json-1.0.149//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"serde_json\",\n actual = \"@crates__serde_json-1.0.149//:serde_json\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ureq-3.3.0\",\n actual = \"@crates__ureq-3.3.0//:ureq\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"ureq\",\n actual = \"@crates__ureq-3.3.0//:ureq\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen-0.2.105\",\n actual = \"@crates__wasm-bindgen-0.2.105//:wasm_bindgen\",\n tags = [\"manual\"],\n)\n\nalias(\n name = \"wasm-bindgen\",\n actual = \"@crates__wasm-bindgen-0.2.105//:wasm_bindgen\",\n tags = [\"manual\"],\n)\n", "alias_rules.bzl": "\"\"\"Alias that transitions its target to `compilation_mode=opt`. Use `transition_alias=\"opt\"` to enable.\"\"\"\n\nload(\"@rules_cc//cc:defs.bzl\", \"CcInfo\")\nload(\"@rules_rust//rust:rust_common.bzl\", \"COMMON_PROVIDERS\")\n\ndef _transition_alias_impl(ctx):\n # `ctx.attr.actual` is a list of 1 item due to the transition\n providers = [ctx.attr.actual[0][provider] for provider in COMMON_PROVIDERS]\n if CcInfo in ctx.attr.actual[0]:\n providers.append(ctx.attr.actual[0][CcInfo])\n return providers\n\ndef _change_compilation_mode(compilation_mode):\n def _change_compilation_mode_impl(_settings, _attr):\n return {\n \"//command_line_option:compilation_mode\": compilation_mode,\n }\n\n return transition(\n implementation = _change_compilation_mode_impl,\n inputs = [],\n outputs = [\n \"//command_line_option:compilation_mode\",\n ],\n )\n\ndef _transition_alias_rule(compilation_mode):\n return rule(\n implementation = _transition_alias_impl,\n provides = COMMON_PROVIDERS,\n attrs = {\n \"actual\": attr.label(\n mandatory = True,\n doc = \"`rust_library()` target to transition to `compilation_mode=opt`.\",\n providers = COMMON_PROVIDERS,\n cfg = _change_compilation_mode(compilation_mode),\n ),\n \"_allowlist_function_transition\": attr.label(\n default = \"@bazel_tools//tools/allowlists/function_transition_allowlist\",\n ),\n },\n doc = \"Transitions a Rust library crate to the `compilation_mode=opt`.\",\n )\n\ntransition_alias_dbg = _transition_alias_rule(\"dbg\")\ntransition_alias_fastbuild = _transition_alias_rule(\"fastbuild\")\ntransition_alias_opt = _transition_alias_rule(\"opt\")\n", - "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list.\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"tools/parity_gen\": {\n _COMMON_CONDITION: {\n \"serde_json\": Label(\"@crates//:serde_json-1.0.149\"),\n \"ureq\": Label(\"@crates//:ureq-3.3.0\"),\n },\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n \"napi\": Label(\"@crates//:napi-2.16.17\"),\n },\n },\n \"bindings/python\": {\n _COMMON_CONDITION: {\n \"pyo3\": Label(\"@crates//:pyo3-0.24.2\"),\n },\n },\n \"bindings/wasm\": {\n _COMMON_CONDITION: {\n \"wasm-bindgen\": Label(\"@crates//:wasm-bindgen-0.2.105\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"tools/parity_gen\": {\n _COMMON_CONDITION: {\n },\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/python\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/wasm\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n _COMMON_CONDITION: {\n \"serde_json\": Label(\"@crates//:serde_json-1.0.149\"),\n },\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n \"napi-derive\": Label(\"@crates//:napi-derive-2.16.13\"),\n },\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n \"napi-build\": Label(\"@crates//:napi-build-2.1.3\"),\n },\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_os = \\\"windows\\\"))\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_vendor = \\\"apple\\\", any(target_os = \\\"ios\\\", target_os = \\\"macos\\\", target_os = \\\"tvos\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"cfg(all(any(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), all(target_arch = \\\"arm\\\", target_endian = \\\"little\\\")), any(target_os = \\\"android\\\", target_os = \\\"linux\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any())\": [],\n \"cfg(not(target_has_atomic = \\\"64\\\"))\": [],\n \"cfg(target_family = \\\"wasm\\\")\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(target_os = \\\"wasi\\\")\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(windows)\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"i686-pc-windows-gnullvm\": [],\n \"wasm32-unknown-unknown\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"wasm32-wasip1\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-msvc\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crates__adler2-2.0.1\",\n sha256 = \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler2/2.0.1/download\"],\n strip_prefix = \"adler2-2.0.1\",\n build_file = Label(\"@crates//crates:BUILD.adler2-2.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aho-corasick-1.1.4\",\n sha256 = \"ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.4/download\"],\n strip_prefix = \"aho-corasick-1.1.4\",\n build_file = Label(\"@crates//crates:BUILD.aho-corasick-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__autocfg-1.5.0\",\n sha256 = \"c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/autocfg/1.5.0/download\"],\n strip_prefix = \"autocfg-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.autocfg-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@crates//crates:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bitflags-2.11.1\",\n sha256 = \"c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.11.1/download\"],\n strip_prefix = \"bitflags-2.11.1\",\n build_file = Label(\"@crates//crates:BUILD.bitflags-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bumpalo-3.20.2\",\n sha256 = \"5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.20.2/download\"],\n strip_prefix = \"bumpalo-3.20.2\",\n build_file = Label(\"@crates//crates:BUILD.bumpalo-3.20.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytes-1.11.1\",\n sha256 = \"1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.11.1/download\"],\n strip_prefix = \"bytes-1.11.1\",\n build_file = Label(\"@crates//crates:BUILD.bytes-1.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cc-1.2.61\",\n sha256 = \"d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.2.61/download\"],\n strip_prefix = \"cc-1.2.61\",\n build_file = Label(\"@crates//crates:BUILD.cc-1.2.61.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cfg-if-1.0.4\",\n sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n strip_prefix = \"cfg-if-1.0.4\",\n build_file = Label(\"@crates//crates:BUILD.cfg-if-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__convert_case-0.6.0\",\n sha256 = \"ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/convert_case/0.6.0/download\"],\n strip_prefix = \"convert_case-0.6.0\",\n build_file = Label(\"@crates//crates:BUILD.convert_case-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crc32fast-1.5.0\",\n sha256 = \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32fast/1.5.0/download\"],\n strip_prefix = \"crc32fast-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.crc32fast-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ctor-0.2.9\",\n sha256 = \"32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ctor/0.2.9/download\"],\n strip_prefix = \"ctor-0.2.9\",\n build_file = Label(\"@crates//crates:BUILD.ctor-0.2.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__find-msvc-tools-0.1.9\",\n sha256 = \"5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/find-msvc-tools/0.1.9/download\"],\n strip_prefix = \"find-msvc-tools-0.1.9\",\n build_file = Label(\"@crates//crates:BUILD.find-msvc-tools-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__flate2-1.1.9\",\n sha256 = \"843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flate2/1.1.9/download\"],\n strip_prefix = \"flate2-1.1.9\",\n build_file = Label(\"@crates//crates:BUILD.flate2-1.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getrandom-0.2.17\",\n sha256 = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.17/download\"],\n strip_prefix = \"getrandom-0.2.17\",\n build_file = Label(\"@crates//crates:BUILD.getrandom-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__heck-0.5.0\",\n sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n strip_prefix = \"heck-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-1.4.0\",\n sha256 = \"e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.4.0/download\"],\n strip_prefix = \"http-1.4.0\",\n build_file = Label(\"@crates//crates:BUILD.http-1.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@crates//crates:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__indoc-2.0.7\",\n sha256 = \"79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/indoc/2.0.7/download\"],\n strip_prefix = \"indoc-2.0.7\",\n build_file = Label(\"@crates//crates:BUILD.indoc-2.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__itoa-1.0.18\",\n sha256 = \"8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.18/download\"],\n strip_prefix = \"itoa-1.0.18\",\n build_file = Label(\"@crates//crates:BUILD.itoa-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libc-0.2.186\",\n sha256 = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.186/download\"],\n strip_prefix = \"libc-0.2.186\",\n build_file = Label(\"@crates//crates:BUILD.libc-0.2.186.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libloading-0.8.9\",\n sha256 = \"d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libloading/0.8.9/download\"],\n strip_prefix = \"libloading-0.8.9\",\n build_file = Label(\"@crates//crates:BUILD.libloading-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__log-0.4.29\",\n sha256 = \"5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.29/download\"],\n strip_prefix = \"log-0.4.29\",\n build_file = Label(\"@crates//crates:BUILD.log-0.4.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memchr-2.8.0\",\n sha256 = \"f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.0/download\"],\n strip_prefix = \"memchr-2.8.0\",\n build_file = Label(\"@crates//crates:BUILD.memchr-2.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memoffset-0.9.1\",\n sha256 = \"488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memoffset/0.9.1/download\"],\n strip_prefix = \"memoffset-0.9.1\",\n build_file = Label(\"@crates//crates:BUILD.memoffset-0.9.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__miniz_oxide-0.8.9\",\n sha256 = \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.9/download\"],\n strip_prefix = \"miniz_oxide-0.8.9\",\n build_file = Label(\"@crates//crates:BUILD.miniz_oxide-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-2.16.17\",\n sha256 = \"55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi/2.16.17/download\"],\n strip_prefix = \"napi-2.16.17\",\n build_file = Label(\"@crates//crates:BUILD.napi-2.16.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-build-2.1.3\",\n sha256 = \"e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-build/2.1.3/download\"],\n strip_prefix = \"napi-build-2.1.3\",\n build_file = Label(\"@crates//crates:BUILD.napi-build-2.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-derive-2.16.13\",\n sha256 = \"7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-derive/2.16.13/download\"],\n strip_prefix = \"napi-derive-2.16.13\",\n build_file = Label(\"@crates//crates:BUILD.napi-derive-2.16.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-derive-backend-1.0.75\",\n sha256 = \"1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-derive-backend/1.0.75/download\"],\n strip_prefix = \"napi-derive-backend-1.0.75\",\n build_file = Label(\"@crates//crates:BUILD.napi-derive-backend-1.0.75.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-sys-2.4.0\",\n sha256 = \"427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-sys/2.4.0/download\"],\n strip_prefix = \"napi-sys-2.4.0\",\n build_file = Label(\"@crates//crates:BUILD.napi-sys-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__once_cell-1.21.4\",\n sha256 = \"9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.4/download\"],\n strip_prefix = \"once_cell-1.21.4\",\n build_file = Label(\"@crates//crates:BUILD.once_cell-1.21.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@crates//crates:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__portable-atomic-1.13.1\",\n sha256 = \"c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.13.1/download\"],\n strip_prefix = \"portable-atomic-1.13.1\",\n build_file = Label(\"@crates//crates:BUILD.portable-atomic-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__proc-macro2-1.0.106\",\n sha256 = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.106/download\"],\n strip_prefix = \"proc-macro2-1.0.106\",\n build_file = Label(\"@crates//crates:BUILD.proc-macro2-1.0.106.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-0.24.2\",\n sha256 = \"e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3/0.24.2/download\"],\n strip_prefix = \"pyo3-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-build-config-0.24.2\",\n sha256 = \"99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-build-config/0.24.2/download\"],\n strip_prefix = \"pyo3-build-config-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-build-config-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-ffi-0.24.2\",\n sha256 = \"78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-ffi/0.24.2/download\"],\n strip_prefix = \"pyo3-ffi-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-ffi-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-macros-0.24.2\",\n sha256 = \"0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-macros/0.24.2/download\"],\n strip_prefix = \"pyo3-macros-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-macros-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-macros-backend-0.24.2\",\n sha256 = \"822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-macros-backend/0.24.2/download\"],\n strip_prefix = \"pyo3-macros-backend-0.24.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-macros-backend-0.24.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__quote-1.0.45\",\n sha256 = \"41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.45/download\"],\n strip_prefix = \"quote-1.0.45\",\n build_file = Label(\"@crates//crates:BUILD.quote-1.0.45.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-1.12.3\",\n sha256 = \"e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.12.3/download\"],\n strip_prefix = \"regex-1.12.3\",\n build_file = Label(\"@crates//crates:BUILD.regex-1.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.4.14\",\n sha256 = \"6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.14/download\"],\n strip_prefix = \"regex-automata-0.4.14\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.8.10\",\n sha256 = \"dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.10/download\"],\n strip_prefix = \"regex-syntax-0.8.10\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.8.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ring-0.17.14\",\n sha256 = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.14/download\"],\n strip_prefix = \"ring-0.17.14\",\n build_file = Label(\"@crates//crates:BUILD.ring-0.17.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-0.23.40\",\n sha256 = \"ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.23.40/download\"],\n strip_prefix = \"rustls-0.23.40\",\n build_file = Label(\"@crates//crates:BUILD.rustls-0.23.40.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-pki-types-1.14.1\",\n sha256 = \"30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pki-types/1.14.1/download\"],\n strip_prefix = \"rustls-pki-types-1.14.1\",\n build_file = Label(\"@crates//crates:BUILD.rustls-pki-types-1.14.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-webpki-0.103.13\",\n sha256 = \"61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.103.13/download\"],\n strip_prefix = \"rustls-webpki-0.103.13\",\n build_file = Label(\"@crates//crates:BUILD.rustls-webpki-0.103.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustversion-1.0.22\",\n sha256 = \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.22/download\"],\n strip_prefix = \"rustversion-1.0.22\",\n build_file = Label(\"@crates//crates:BUILD.rustversion-1.0.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__semver-1.0.28\",\n sha256 = \"8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.28/download\"],\n strip_prefix = \"semver-1.0.28\",\n build_file = Label(\"@crates//crates:BUILD.semver-1.0.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde-1.0.228\",\n sha256 = \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.228/download\"],\n strip_prefix = \"serde-1.0.228\",\n build_file = Label(\"@crates//crates:BUILD.serde-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_core-1.0.228\",\n sha256 = \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_core/1.0.228/download\"],\n strip_prefix = \"serde_core-1.0.228\",\n build_file = Label(\"@crates//crates:BUILD.serde_core-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_derive-1.0.228\",\n sha256 = \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.228/download\"],\n strip_prefix = \"serde_derive-1.0.228\",\n build_file = Label(\"@crates//crates:BUILD.serde_derive-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_json-1.0.149\",\n sha256 = \"83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.149/download\"],\n strip_prefix = \"serde_json-1.0.149\",\n build_file = Label(\"@crates//crates:BUILD.serde_json-1.0.149.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__simd-adler32-0.3.9\",\n sha256 = \"703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/simd-adler32/0.3.9/download\"],\n strip_prefix = \"simd-adler32-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.simd-adler32-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__subtle-2.6.1\",\n sha256 = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/subtle/2.6.1/download\"],\n strip_prefix = \"subtle-2.6.1\",\n build_file = Label(\"@crates//crates:BUILD.subtle-2.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-2.0.117\",\n sha256 = \"e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.117/download\"],\n strip_prefix = \"syn-2.0.117\",\n build_file = Label(\"@crates//crates:BUILD.syn-2.0.117.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__target-lexicon-0.13.5\",\n sha256 = \"adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/target-lexicon/0.13.5/download\"],\n strip_prefix = \"target-lexicon-0.13.5\",\n build_file = Label(\"@crates//crates:BUILD.target-lexicon-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-ident-1.0.24\",\n sha256 = \"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.24/download\"],\n strip_prefix = \"unicode-ident-1.0.24\",\n build_file = Label(\"@crates//crates:BUILD.unicode-ident-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-segmentation-1.13.2\",\n sha256 = \"9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-segmentation/1.13.2/download\"],\n strip_prefix = \"unicode-segmentation-1.13.2\",\n build_file = Label(\"@crates//crates:BUILD.unicode-segmentation-1.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unindent-0.2.4\",\n sha256 = \"7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unindent/0.2.4/download\"],\n strip_prefix = \"unindent-0.2.4\",\n build_file = Label(\"@crates//crates:BUILD.unindent-0.2.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@crates//crates:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ureq-3.3.0\",\n sha256 = \"dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ureq/3.3.0/download\"],\n strip_prefix = \"ureq-3.3.0\",\n build_file = Label(\"@crates//crates:BUILD.ureq-3.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ureq-proto-0.6.0\",\n sha256 = \"e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ureq-proto/0.6.0/download\"],\n strip_prefix = \"ureq-proto-0.6.0\",\n build_file = Label(\"@crates//crates:BUILD.ureq-proto-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__utf8-zero-0.8.1\",\n sha256 = \"b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8-zero/0.8.1/download\"],\n strip_prefix = \"utf8-zero-0.8.1\",\n build_file = Label(\"@crates//crates:BUILD.utf8-zero-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@crates//crates:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-0.2.105\",\n sha256 = \"da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-0.2.105\",\n sha256 = \"04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-support-0.2.105\",\n sha256 = \"420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-support-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-shared-0.2.105\",\n sha256 = \"76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-shared-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__webpki-roots-1.0.7\",\n sha256 = \"52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-roots/1.0.7/download\"],\n strip_prefix = \"webpki-roots-1.0.7\",\n build_file = Label(\"@crates//crates:BUILD.webpki-roots-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-link-0.2.1\",\n sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n strip_prefix = \"windows-link-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zeroize-1.8.2\",\n sha256 = \"b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.8.2/download\"],\n strip_prefix = \"zeroize-1.8.2\",\n build_file = Label(\"@crates//crates:BUILD.zeroize-1.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zmij-1.0.21\",\n sha256 = \"b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zmij/1.0.21/download\"],\n strip_prefix = \"zmij-1.0.21\",\n build_file = Label(\"@crates//crates:BUILD.zmij-1.0.21.bazel\"),\n )\n\n return [\n struct(repo=\"crates__napi-2.16.17\", is_dev_dep = False),\n struct(repo=\"crates__napi-build-2.1.3\", is_dev_dep = False),\n struct(repo=\"crates__napi-derive-2.16.13\", is_dev_dep = False),\n struct(repo=\"crates__pyo3-0.24.2\", is_dev_dep = False),\n struct(repo=\"crates__serde_json-1.0.149\", is_dev_dep = False),\n struct(repo=\"crates__ureq-3.3.0\", is_dev_dep = False),\n struct(repo=\"crates__wasm-bindgen-0.2.105\", is_dev_dep = False),\n ]\n" + "defs.bzl": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\"\"\"\n# `crates_repository` API\n\n- [aliases](#aliases)\n- [crate_deps](#crate_deps)\n- [all_crate_deps](#all_crate_deps)\n- [crate_repositories](#crate_repositories)\n\n\"\"\"\n\nload(\"@bazel_tools//tools/build_defs/repo:git.bzl\", \"git_repository\")\nload(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"@bazel_tools//tools/build_defs/repo:utils.bzl\", \"maybe\")\nload(\"@bazel_skylib//lib:selects.bzl\", \"selects\")\nload(\"@rules_rust//crate_universe/private:local_crate_mirror.bzl\", \"local_crate_mirror\")\n\n###############################################################################\n# MACROS API\n###############################################################################\n\n# An identifier that represent common dependencies (unconditional).\n_COMMON_CONDITION = \"\"\n\ndef _flatten_dependency_maps(all_dependency_maps):\n \"\"\"Flatten a list of dependency maps into one dictionary.\n\n Dependency maps have the following structure:\n\n ```python\n DEPENDENCIES_MAP = {\n # The first key in the map is a Bazel package\n # name of the workspace this file is defined in.\n \"workspace_member_package\": {\n\n # Not all dependencies are supported for all platforms.\n # the condition key is the condition required to be true\n # on the host platform.\n \"condition\": {\n\n # An alias to a crate target. # The label of the crate target the\n # Aliases are only crate names. # package name refers to.\n \"package_name\": \"@full//:label\",\n }\n }\n }\n ```\n\n Args:\n all_dependency_maps (list): A list of dicts as described above\n\n Returns:\n dict: A dictionary as described above\n \"\"\"\n dependencies = {}\n\n for workspace_deps_map in all_dependency_maps:\n for pkg_name, conditional_deps_map in workspace_deps_map.items():\n if pkg_name not in dependencies:\n non_frozen_map = dict()\n for key, values in conditional_deps_map.items():\n non_frozen_map.update({key: dict(values.items())})\n dependencies.setdefault(pkg_name, non_frozen_map)\n continue\n\n for condition, deps_map in conditional_deps_map.items():\n # If the condition has not been recorded, do so and continue\n if condition not in dependencies[pkg_name]:\n dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))\n continue\n\n # Alert on any miss-matched dependencies\n inconsistent_entries = []\n for crate_name, crate_label in deps_map.items():\n existing = dependencies[pkg_name][condition].get(crate_name)\n if existing and existing != crate_label:\n inconsistent_entries.append((crate_name, existing, crate_label))\n dependencies[pkg_name][condition].update({crate_name: crate_label})\n\n return dependencies\n\ndef crate_deps(deps, package_name = None):\n \"\"\"Finds the fully qualified label of the requested crates for the package where this macro is called.\n\n Args:\n deps (list): The desired list of crate targets.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()`.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if not deps:\n return []\n\n if package_name == None:\n package_name = native.package_name()\n\n # Join both sets of dependencies\n dependencies = _flatten_dependency_maps([\n _NORMAL_DEPENDENCIES,\n _NORMAL_DEV_DEPENDENCIES,\n _PROC_MACRO_DEPENDENCIES,\n _PROC_MACRO_DEV_DEPENDENCIES,\n _BUILD_DEPENDENCIES,\n _BUILD_PROC_MACRO_DEPENDENCIES,\n ]).pop(package_name, {})\n\n # Combine all conditional packages so we can easily index over a flat list\n # TODO: Perhaps this should actually return select statements and maintain\n # the conditionals of the dependencies\n flat_deps = {}\n for deps_set in dependencies.values():\n for crate_name, crate_label in deps_set.items():\n flat_deps.update({crate_name: crate_label})\n\n missing_crates = []\n crate_targets = []\n for crate_target in deps:\n if crate_target not in flat_deps:\n missing_crates.append(crate_target)\n else:\n crate_targets.append(flat_deps[crate_target])\n\n if missing_crates:\n fail(\"Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`\".format(\n missing_crates,\n package_name,\n dependencies,\n ))\n\n return crate_targets\n\ndef all_crate_deps(\n normal = False, \n normal_dev = False, \n proc_macro = False, \n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Finds the fully qualified label of all requested direct crate dependencies \\\n for the package where this macro is called.\n\n If no parameters are set, all normal dependencies are returned. Setting any one flag will\n otherwise impact the contents of the returned list.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list.\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n list: A list of labels to generated rust targets (str)\n \"\"\"\n\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_dependency_maps = []\n if normal:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n if normal_dev:\n all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)\n if proc_macro:\n all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)\n if proc_macro_dev:\n all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)\n if build:\n all_dependency_maps.append(_BUILD_DEPENDENCIES)\n if build_proc_macro:\n all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)\n\n # Default to always using normal dependencies\n if not all_dependency_maps:\n all_dependency_maps.append(_NORMAL_DEPENDENCIES)\n\n dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)\n\n if not dependencies:\n if dependencies == None:\n fail(\"Tried to get all_crate_deps for package \" + package_name + \" but that package had no Cargo.toml file\")\n else:\n return []\n\n crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())\n for condition, deps in dependencies.items():\n crate_deps += selects.with_or({\n tuple(_CONDITIONS[condition]): deps.values(),\n \"//conditions:default\": [],\n })\n\n return crate_deps\n\ndef aliases(\n normal = False,\n normal_dev = False,\n proc_macro = False,\n proc_macro_dev = False,\n build = False,\n build_proc_macro = False,\n package_name = None):\n \"\"\"Produces a map of Crate alias names to their original label\n\n If no dependency kinds are specified, `normal` and `proc_macro` are used by default.\n Setting any one flag will otherwise determine the contents of the returned dict.\n\n Args:\n normal (bool, optional): If True, normal dependencies are included in the\n output list.\n normal_dev (bool, optional): If True, normal dev dependencies will be\n included in the output list..\n proc_macro (bool, optional): If True, proc_macro dependencies are included\n in the output list.\n proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are\n included in the output list.\n build (bool, optional): If True, build dependencies are included\n in the output list.\n build_proc_macro (bool, optional): If True, build proc_macro dependencies are\n included in the output list.\n package_name (str, optional): The package name of the set of dependencies to look up.\n Defaults to `native.package_name()` when unset.\n\n Returns:\n dict: The aliases of all associated packages\n \"\"\"\n if package_name == None:\n package_name = native.package_name()\n\n # Determine the relevant maps to use\n all_aliases_maps = []\n if normal:\n all_aliases_maps.append(_NORMAL_ALIASES)\n if normal_dev:\n all_aliases_maps.append(_NORMAL_DEV_ALIASES)\n if proc_macro:\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n if proc_macro_dev:\n all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)\n if build:\n all_aliases_maps.append(_BUILD_ALIASES)\n if build_proc_macro:\n all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)\n\n # Default to always using normal aliases\n if not all_aliases_maps:\n all_aliases_maps.append(_NORMAL_ALIASES)\n all_aliases_maps.append(_PROC_MACRO_ALIASES)\n\n aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)\n\n if not aliases:\n return dict()\n\n common_items = aliases.pop(_COMMON_CONDITION, {}).items()\n\n # If there are only common items in the dictionary, immediately return them\n if not len(aliases.keys()) == 1:\n return dict(common_items)\n\n # Build a single select statement where each conditional has accounted for the\n # common set of aliases.\n crate_aliases = {\"//conditions:default\": dict(common_items)}\n for condition, deps in aliases.items():\n condition_triples = _CONDITIONS[condition]\n for triple in condition_triples:\n if triple in crate_aliases:\n crate_aliases[triple].update(deps)\n else:\n crate_aliases.update({triple: dict(deps.items() + common_items)})\n\n return select(crate_aliases)\n\n###############################################################################\n# WORKSPACE MEMBER DEPS AND ALIASES\n###############################################################################\n\n_NORMAL_DEPENDENCIES = {\n \"tools/parity_gen\": {\n _COMMON_CONDITION: {\n \"serde_json\": Label(\"@crates//:serde_json-1.0.149\"),\n \"ureq\": Label(\"@crates//:ureq-3.3.0\"),\n },\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n \"napi\": Label(\"@crates//:napi-2.16.17\"),\n },\n },\n \"bindings/python\": {\n _COMMON_CONDITION: {\n \"pyo3\": Label(\"@crates//:pyo3-0.29.2\"),\n },\n },\n \"bindings/wasm\": {\n _COMMON_CONDITION: {\n \"wasm-bindgen\": Label(\"@crates//:wasm-bindgen-0.2.105\"),\n },\n },\n}\n\n\n_NORMAL_ALIASES = {\n \"tools/parity_gen\": {\n _COMMON_CONDITION: {\n },\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/python\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/wasm\": {\n _COMMON_CONDITION: {\n },\n },\n}\n\n\n_NORMAL_DEV_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n _COMMON_CONDITION: {\n \"serde_json\": Label(\"@crates//:serde_json-1.0.149\"),\n },\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_NORMAL_DEV_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n \"napi-derive\": Label(\"@crates//:napi-derive-2.16.13\"),\n },\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_DEV_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_PROC_MACRO_DEV_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n \"napi-build\": Label(\"@crates//:napi-build-2.1.3\"),\n },\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n _COMMON_CONDITION: {\n },\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_DEPENDENCIES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_BUILD_PROC_MACRO_ALIASES = {\n \"tools/parity_gen\": {\n },\n \"\": {\n },\n \"core\": {\n },\n \"bindings/ffi-c\": {\n },\n \"bindings/nodejs\": {\n },\n \"bindings/python\": {\n },\n \"bindings/wasm\": {\n },\n}\n\n\n_CONDITIONS = {\n \"aarch64-apple-darwin\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"aarch64-pc-windows-gnullvm\": [],\n \"aarch64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_os = \\\"windows\\\"))\": [],\n \"cfg(all(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), target_vendor = \\\"apple\\\", any(target_os = \\\"ios\\\", target_os = \\\"macos\\\", target_os = \\\"tvos\\\", target_os = \\\"visionos\\\", target_os = \\\"watchos\\\")))\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\"],\n \"cfg(all(any(all(target_arch = \\\"aarch64\\\", target_endian = \\\"little\\\"), all(target_arch = \\\"arm\\\", target_endian = \\\"little\\\")), any(target_os = \\\"android\\\", target_os = \\\"linux\\\")))\": [\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\"],\n \"cfg(all(any(target_arch = \\\"x86_64\\\", target_arch = \\\"arm64ec\\\"), target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"cfg(all(target_arch = \\\"aarch64\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86\\\", target_env = \\\"msvc\\\", not(windows_raw_dylib)))\": [],\n \"cfg(all(target_arch = \\\"x86_64\\\", target_env = \\\"gnu\\\", not(target_abi = \\\"llvm\\\"), not(windows_raw_dylib)))\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(any())\": [],\n \"cfg(not(target_has_atomic = \\\"64\\\"))\": [],\n \"cfg(target_family = \\\"wasm\\\")\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\",\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(target_os = \\\"wasi\\\")\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"cfg(unix)\": [\"@rules_rust//rust/platform:aarch64-apple-darwin\",\"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\",\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n \"cfg(windows)\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"i686-pc-windows-gnullvm\": [],\n \"wasm32-unknown-unknown\": [\"@rules_rust//rust/platform:wasm32-unknown-unknown\"],\n \"wasm32-wasip1\": [\"@rules_rust//rust/platform:wasm32-wasip1\"],\n \"x86_64-pc-windows-gnullvm\": [],\n \"x86_64-pc-windows-msvc\": [\"@rules_rust//rust/platform:x86_64-pc-windows-msvc\"],\n \"x86_64-unknown-linux-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\"],\n \"x86_64-unknown-nixos-gnu\": [\"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\"],\n}\n\n###############################################################################\n\ndef crate_repositories():\n \"\"\"A macro for defining repositories for all generated crates.\n\n Returns:\n A list of repos visible to the module through the module extension.\n \"\"\"\n maybe(\n http_archive,\n name = \"crates__adler2-2.0.1\",\n sha256 = \"320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/adler2/2.0.1/download\"],\n strip_prefix = \"adler2-2.0.1\",\n build_file = Label(\"@crates//crates:BUILD.adler2-2.0.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__aho-corasick-1.1.4\",\n sha256 = \"ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/aho-corasick/1.1.4/download\"],\n strip_prefix = \"aho-corasick-1.1.4\",\n build_file = Label(\"@crates//crates:BUILD.aho-corasick-1.1.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__base64-0.22.1\",\n sha256 = \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/base64/0.22.1/download\"],\n strip_prefix = \"base64-0.22.1\",\n build_file = Label(\"@crates//crates:BUILD.base64-0.22.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bitflags-2.11.1\",\n sha256 = \"c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bitflags/2.11.1/download\"],\n strip_prefix = \"bitflags-2.11.1\",\n build_file = Label(\"@crates//crates:BUILD.bitflags-2.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bumpalo-3.20.2\",\n sha256 = \"5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bumpalo/3.20.2/download\"],\n strip_prefix = \"bumpalo-3.20.2\",\n build_file = Label(\"@crates//crates:BUILD.bumpalo-3.20.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__bytes-1.11.1\",\n sha256 = \"1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/bytes/1.11.1/download\"],\n strip_prefix = \"bytes-1.11.1\",\n build_file = Label(\"@crates//crates:BUILD.bytes-1.11.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cc-1.2.61\",\n sha256 = \"d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cc/1.2.61/download\"],\n strip_prefix = \"cc-1.2.61\",\n build_file = Label(\"@crates//crates:BUILD.cc-1.2.61.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__cfg-if-1.0.4\",\n sha256 = \"9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/cfg-if/1.0.4/download\"],\n strip_prefix = \"cfg-if-1.0.4\",\n build_file = Label(\"@crates//crates:BUILD.cfg-if-1.0.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__convert_case-0.6.0\",\n sha256 = \"ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/convert_case/0.6.0/download\"],\n strip_prefix = \"convert_case-0.6.0\",\n build_file = Label(\"@crates//crates:BUILD.convert_case-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__crc32fast-1.5.0\",\n sha256 = \"9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/crc32fast/1.5.0/download\"],\n strip_prefix = \"crc32fast-1.5.0\",\n build_file = Label(\"@crates//crates:BUILD.crc32fast-1.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ctor-0.2.9\",\n sha256 = \"32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ctor/0.2.9/download\"],\n strip_prefix = \"ctor-0.2.9\",\n build_file = Label(\"@crates//crates:BUILD.ctor-0.2.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__find-msvc-tools-0.1.9\",\n sha256 = \"5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/find-msvc-tools/0.1.9/download\"],\n strip_prefix = \"find-msvc-tools-0.1.9\",\n build_file = Label(\"@crates//crates:BUILD.find-msvc-tools-0.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__flate2-1.1.9\",\n sha256 = \"843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/flate2/1.1.9/download\"],\n strip_prefix = \"flate2-1.1.9\",\n build_file = Label(\"@crates//crates:BUILD.flate2-1.1.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__getrandom-0.2.17\",\n sha256 = \"ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/getrandom/0.2.17/download\"],\n strip_prefix = \"getrandom-0.2.17\",\n build_file = Label(\"@crates//crates:BUILD.getrandom-0.2.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__heck-0.5.0\",\n sha256 = \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/heck/0.5.0/download\"],\n strip_prefix = \"heck-0.5.0\",\n build_file = Label(\"@crates//crates:BUILD.heck-0.5.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__http-1.4.0\",\n sha256 = \"e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/http/1.4.0/download\"],\n strip_prefix = \"http-1.4.0\",\n build_file = Label(\"@crates//crates:BUILD.http-1.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__httparse-1.10.1\",\n sha256 = \"6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/httparse/1.10.1/download\"],\n strip_prefix = \"httparse-1.10.1\",\n build_file = Label(\"@crates//crates:BUILD.httparse-1.10.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__itoa-1.0.18\",\n sha256 = \"8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/itoa/1.0.18/download\"],\n strip_prefix = \"itoa-1.0.18\",\n build_file = Label(\"@crates//crates:BUILD.itoa-1.0.18.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libc-0.2.186\",\n sha256 = \"68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libc/0.2.186/download\"],\n strip_prefix = \"libc-0.2.186\",\n build_file = Label(\"@crates//crates:BUILD.libc-0.2.186.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__libloading-0.8.9\",\n sha256 = \"d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/libloading/0.8.9/download\"],\n strip_prefix = \"libloading-0.8.9\",\n build_file = Label(\"@crates//crates:BUILD.libloading-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__log-0.4.29\",\n sha256 = \"5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/log/0.4.29/download\"],\n strip_prefix = \"log-0.4.29\",\n build_file = Label(\"@crates//crates:BUILD.log-0.4.29.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__memchr-2.8.0\",\n sha256 = \"f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/memchr/2.8.0/download\"],\n strip_prefix = \"memchr-2.8.0\",\n build_file = Label(\"@crates//crates:BUILD.memchr-2.8.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__miniz_oxide-0.8.9\",\n sha256 = \"1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/miniz_oxide/0.8.9/download\"],\n strip_prefix = \"miniz_oxide-0.8.9\",\n build_file = Label(\"@crates//crates:BUILD.miniz_oxide-0.8.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-2.16.17\",\n sha256 = \"55740c4ae1d8696773c78fdafd5d0e5fe9bc9f1b071c7ba493ba5c413a9184f3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi/2.16.17/download\"],\n strip_prefix = \"napi-2.16.17\",\n build_file = Label(\"@crates//crates:BUILD.napi-2.16.17.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-build-2.1.3\",\n sha256 = \"e1c0f5d67ee408a4685b61f5ab7e58605c8ae3f2b4189f0127d804ff13d5560a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-build/2.1.3/download\"],\n strip_prefix = \"napi-build-2.1.3\",\n build_file = Label(\"@crates//crates:BUILD.napi-build-2.1.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-derive-2.16.13\",\n sha256 = \"7cbe2585d8ac223f7d34f13701434b9d5f4eb9c332cccce8dee57ea18ab8ab0c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-derive/2.16.13/download\"],\n strip_prefix = \"napi-derive-2.16.13\",\n build_file = Label(\"@crates//crates:BUILD.napi-derive-2.16.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-derive-backend-1.0.75\",\n sha256 = \"1639aaa9eeb76e91c6ae66da8ce3e89e921cd3885e99ec85f4abacae72fc91bf\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-derive-backend/1.0.75/download\"],\n strip_prefix = \"napi-derive-backend-1.0.75\",\n build_file = Label(\"@crates//crates:BUILD.napi-derive-backend-1.0.75.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__napi-sys-2.4.0\",\n sha256 = \"427802e8ec3a734331fec1035594a210ce1ff4dc5bc1950530920ab717964ea3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/napi-sys/2.4.0/download\"],\n strip_prefix = \"napi-sys-2.4.0\",\n build_file = Label(\"@crates//crates:BUILD.napi-sys-2.4.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__once_cell-1.21.4\",\n sha256 = \"9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/once_cell/1.21.4/download\"],\n strip_prefix = \"once_cell-1.21.4\",\n build_file = Label(\"@crates//crates:BUILD.once_cell-1.21.4.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__percent-encoding-2.3.2\",\n sha256 = \"9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/percent-encoding/2.3.2/download\"],\n strip_prefix = \"percent-encoding-2.3.2\",\n build_file = Label(\"@crates//crates:BUILD.percent-encoding-2.3.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__portable-atomic-1.13.1\",\n sha256 = \"c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/portable-atomic/1.13.1/download\"],\n strip_prefix = \"portable-atomic-1.13.1\",\n build_file = Label(\"@crates//crates:BUILD.portable-atomic-1.13.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__proc-macro2-1.0.106\",\n sha256 = \"8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/proc-macro2/1.0.106/download\"],\n strip_prefix = \"proc-macro2-1.0.106\",\n build_file = Label(\"@crates//crates:BUILD.proc-macro2-1.0.106.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-0.29.2\",\n sha256 = \"4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3/0.29.2/download\"],\n strip_prefix = \"pyo3-0.29.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-0.29.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-build-config-0.29.2\",\n sha256 = \"f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-build-config/0.29.2/download\"],\n strip_prefix = \"pyo3-build-config-0.29.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-build-config-0.29.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-ffi-0.29.2\",\n sha256 = \"e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-ffi/0.29.2/download\"],\n strip_prefix = \"pyo3-ffi-0.29.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-ffi-0.29.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-macros-0.29.2\",\n sha256 = \"73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-macros/0.29.2/download\"],\n strip_prefix = \"pyo3-macros-0.29.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-macros-0.29.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__pyo3-macros-backend-0.29.2\",\n sha256 = \"571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/pyo3-macros-backend/0.29.2/download\"],\n strip_prefix = \"pyo3-macros-backend-0.29.2\",\n build_file = Label(\"@crates//crates:BUILD.pyo3-macros-backend-0.29.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__quote-1.0.45\",\n sha256 = \"41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/quote/1.0.45/download\"],\n strip_prefix = \"quote-1.0.45\",\n build_file = Label(\"@crates//crates:BUILD.quote-1.0.45.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-1.12.3\",\n sha256 = \"e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex/1.12.3/download\"],\n strip_prefix = \"regex-1.12.3\",\n build_file = Label(\"@crates//crates:BUILD.regex-1.12.3.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-automata-0.4.14\",\n sha256 = \"6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-automata/0.4.14/download\"],\n strip_prefix = \"regex-automata-0.4.14\",\n build_file = Label(\"@crates//crates:BUILD.regex-automata-0.4.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__regex-syntax-0.8.10\",\n sha256 = \"dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/regex-syntax/0.8.10/download\"],\n strip_prefix = \"regex-syntax-0.8.10\",\n build_file = Label(\"@crates//crates:BUILD.regex-syntax-0.8.10.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ring-0.17.14\",\n sha256 = \"a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ring/0.17.14/download\"],\n strip_prefix = \"ring-0.17.14\",\n build_file = Label(\"@crates//crates:BUILD.ring-0.17.14.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-0.23.40\",\n sha256 = \"ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls/0.23.40/download\"],\n strip_prefix = \"rustls-0.23.40\",\n build_file = Label(\"@crates//crates:BUILD.rustls-0.23.40.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-pki-types-1.14.1\",\n sha256 = \"30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-pki-types/1.14.1/download\"],\n strip_prefix = \"rustls-pki-types-1.14.1\",\n build_file = Label(\"@crates//crates:BUILD.rustls-pki-types-1.14.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustls-webpki-0.103.13\",\n sha256 = \"61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustls-webpki/0.103.13/download\"],\n strip_prefix = \"rustls-webpki-0.103.13\",\n build_file = Label(\"@crates//crates:BUILD.rustls-webpki-0.103.13.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__rustversion-1.0.22\",\n sha256 = \"b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/rustversion/1.0.22/download\"],\n strip_prefix = \"rustversion-1.0.22\",\n build_file = Label(\"@crates//crates:BUILD.rustversion-1.0.22.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__semver-1.0.28\",\n sha256 = \"8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/semver/1.0.28/download\"],\n strip_prefix = \"semver-1.0.28\",\n build_file = Label(\"@crates//crates:BUILD.semver-1.0.28.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde-1.0.228\",\n sha256 = \"9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde/1.0.228/download\"],\n strip_prefix = \"serde-1.0.228\",\n build_file = Label(\"@crates//crates:BUILD.serde-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_core-1.0.228\",\n sha256 = \"41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_core/1.0.228/download\"],\n strip_prefix = \"serde_core-1.0.228\",\n build_file = Label(\"@crates//crates:BUILD.serde_core-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_derive-1.0.228\",\n sha256 = \"d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_derive/1.0.228/download\"],\n strip_prefix = \"serde_derive-1.0.228\",\n build_file = Label(\"@crates//crates:BUILD.serde_derive-1.0.228.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__serde_json-1.0.149\",\n sha256 = \"83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/serde_json/1.0.149/download\"],\n strip_prefix = \"serde_json-1.0.149\",\n build_file = Label(\"@crates//crates:BUILD.serde_json-1.0.149.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__shlex-1.3.0\",\n sha256 = \"0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/shlex/1.3.0/download\"],\n strip_prefix = \"shlex-1.3.0\",\n build_file = Label(\"@crates//crates:BUILD.shlex-1.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__simd-adler32-0.3.9\",\n sha256 = \"703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/simd-adler32/0.3.9/download\"],\n strip_prefix = \"simd-adler32-0.3.9\",\n build_file = Label(\"@crates//crates:BUILD.simd-adler32-0.3.9.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__subtle-2.6.1\",\n sha256 = \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/subtle/2.6.1/download\"],\n strip_prefix = \"subtle-2.6.1\",\n build_file = Label(\"@crates//crates:BUILD.subtle-2.6.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__syn-2.0.117\",\n sha256 = \"e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/syn/2.0.117/download\"],\n strip_prefix = \"syn-2.0.117\",\n build_file = Label(\"@crates//crates:BUILD.syn-2.0.117.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__target-lexicon-0.13.5\",\n sha256 = \"adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/target-lexicon/0.13.5/download\"],\n strip_prefix = \"target-lexicon-0.13.5\",\n build_file = Label(\"@crates//crates:BUILD.target-lexicon-0.13.5.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-ident-1.0.24\",\n sha256 = \"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-ident/1.0.24/download\"],\n strip_prefix = \"unicode-ident-1.0.24\",\n build_file = Label(\"@crates//crates:BUILD.unicode-ident-1.0.24.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__unicode-segmentation-1.13.2\",\n sha256 = \"9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/unicode-segmentation/1.13.2/download\"],\n strip_prefix = \"unicode-segmentation-1.13.2\",\n build_file = Label(\"@crates//crates:BUILD.unicode-segmentation-1.13.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__untrusted-0.9.0\",\n sha256 = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/untrusted/0.9.0/download\"],\n strip_prefix = \"untrusted-0.9.0\",\n build_file = Label(\"@crates//crates:BUILD.untrusted-0.9.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ureq-3.3.0\",\n sha256 = \"dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ureq/3.3.0/download\"],\n strip_prefix = \"ureq-3.3.0\",\n build_file = Label(\"@crates//crates:BUILD.ureq-3.3.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__ureq-proto-0.6.0\",\n sha256 = \"e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/ureq-proto/0.6.0/download\"],\n strip_prefix = \"ureq-proto-0.6.0\",\n build_file = Label(\"@crates//crates:BUILD.ureq-proto-0.6.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__utf8-zero-0.8.1\",\n sha256 = \"b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/utf8-zero/0.8.1/download\"],\n strip_prefix = \"utf8-zero-0.8.1\",\n build_file = Label(\"@crates//crates:BUILD.utf8-zero-0.8.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasi-0.11.1-wasi-snapshot-preview1\",\n sha256 = \"ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasi/0.11.1+wasi-snapshot-preview1/download\"],\n strip_prefix = \"wasi-0.11.1+wasi-snapshot-preview1\",\n build_file = Label(\"@crates//crates:BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-0.2.105\",\n sha256 = \"da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-0.2.105\",\n sha256 = \"04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-macro-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-macro-support-0.2.105\",\n sha256 = \"420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-macro-support/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-macro-support-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-macro-support-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__wasm-bindgen-shared-0.2.105\",\n sha256 = \"76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/wasm-bindgen-shared/0.2.105/download\"],\n strip_prefix = \"wasm-bindgen-shared-0.2.105\",\n build_file = Label(\"@crates//crates:BUILD.wasm-bindgen-shared-0.2.105.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__webpki-roots-1.0.7\",\n sha256 = \"52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/webpki-roots/1.0.7/download\"],\n strip_prefix = \"webpki-roots-1.0.7\",\n build_file = Label(\"@crates//crates:BUILD.webpki-roots-1.0.7.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-link-0.2.1\",\n sha256 = \"f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-link/0.2.1/download\"],\n strip_prefix = \"windows-link-0.2.1\",\n build_file = Label(\"@crates//crates:BUILD.windows-link-0.2.1.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-sys-0.52.0\",\n sha256 = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-sys/0.52.0/download\"],\n strip_prefix = \"windows-sys-0.52.0\",\n build_file = Label(\"@crates//crates:BUILD.windows-sys-0.52.0.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows-targets-0.52.6\",\n sha256 = \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows-targets/0.52.6/download\"],\n strip_prefix = \"windows-targets-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows-targets-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_gnullvm-0.52.6\",\n sha256 = \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_aarch64_msvc-0.52.6\",\n sha256 = \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_aarch64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_aarch64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_aarch64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnu-0.52.6\",\n sha256 = \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnu/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_gnullvm-0.52.6\",\n sha256 = \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_i686_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_i686_msvc-0.52.6\",\n sha256 = \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_i686_msvc/0.52.6/download\"],\n strip_prefix = \"windows_i686_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_i686_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnu-0.52.6\",\n sha256 = \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnu/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnu-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnu-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_gnullvm-0.52.6\",\n sha256 = \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_gnullvm/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_gnullvm-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_gnullvm-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__windows_x86_64_msvc-0.52.6\",\n sha256 = \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/windows_x86_64_msvc/0.52.6/download\"],\n strip_prefix = \"windows_x86_64_msvc-0.52.6\",\n build_file = Label(\"@crates//crates:BUILD.windows_x86_64_msvc-0.52.6.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zeroize-1.8.2\",\n sha256 = \"b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zeroize/1.8.2/download\"],\n strip_prefix = \"zeroize-1.8.2\",\n build_file = Label(\"@crates//crates:BUILD.zeroize-1.8.2.bazel\"),\n )\n\n maybe(\n http_archive,\n name = \"crates__zmij-1.0.21\",\n sha256 = \"b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa\",\n type = \"tar.gz\",\n urls = [\"https://static.crates.io/crates/zmij/1.0.21/download\"],\n strip_prefix = \"zmij-1.0.21\",\n build_file = Label(\"@crates//crates:BUILD.zmij-1.0.21.bazel\"),\n )\n\n return [\n struct(repo=\"crates__napi-2.16.17\", is_dev_dep = False),\n struct(repo=\"crates__napi-build-2.1.3\", is_dev_dep = False),\n struct(repo=\"crates__napi-derive-2.16.13\", is_dev_dep = False),\n struct(repo=\"crates__pyo3-0.29.2\", is_dev_dep = False),\n struct(repo=\"crates__serde_json-1.0.149\", is_dev_dep = False),\n struct(repo=\"crates__ureq-3.3.0\", is_dev_dep = False),\n struct(repo=\"crates__wasm-bindgen-0.2.105\", is_dev_dep = False),\n ]\n" } } }, @@ -386,25 +513,6 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"aho_corasick\",\n deps = [\n \"@crates__memchr-2.8.0//:memchr\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"perf-literal\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=aho-corasick\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.1.4\",\n)\n" } }, - "crates__autocfg-1.5.0": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "patch_args": [ - "-p0" - ], - "patch_tool": "", - "patches": [], - "remote_patch_strip": 1, - "sha256": "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8", - "type": "tar.gz", - "urls": [ - "https://static.crates.io/crates/autocfg/1.5.0/download" - ], - "strip_prefix": "autocfg-1.5.0", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"autocfg\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=autocfg\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.5.0\",\n)\n" - } - }, "crates__base64-0.22.1": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", @@ -690,25 +798,6 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"httparse\",\n deps = [\n \"@crates__httparse-1.10.1//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=httparse\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.10.1\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2018\",\n pkg_name = \"httparse\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=httparse\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.10.1\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, - "crates__indoc-2.0.7": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "patch_args": [ - "-p0" - ], - "patch_tool": "", - "patches": [], - "remote_patch_strip": 1, - "sha256": "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706", - "type": "tar.gz", - "urls": [ - "https://static.crates.io/crates/indoc/2.0.7/download" - ], - "strip_prefix": "indoc-2.0.7", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"indoc\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=indoc\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.0.7\",\n)\n" - } - }, "crates__itoa-1.0.18": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", @@ -804,25 +893,6 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"memchr\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"alloc\",\n \"std\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=memchr\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"2.8.0\",\n)\n" } }, - "crates__memoffset-0.9.1": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "patch_args": [ - "-p0" - ], - "patch_tool": "", - "patches": [], - "remote_patch_strip": 1, - "sha256": "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a", - "type": "tar.gz", - "urls": [ - "https://static.crates.io/crates/memoffset/0.9.1/download" - ], - "strip_prefix": "memoffset-0.9.1", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"memoffset\",\n deps = [\n \"@crates__memoffset-0.9.1//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2015\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=memoffset\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.9.1\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__autocfg-1.5.0//:autocfg\",\n ],\n edition = \"2015\",\n pkg_name = \"memoffset\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=memoffset\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.9.1\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" - } - }, "crates__miniz_oxide-0.8.9": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", @@ -1013,7 +1083,7 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"proc_macro2\",\n deps = [\n \"@crates__proc-macro2-1.0.106//:build_script_build\",\n \"@crates__unicode-ident-1.0.24//:unicode_ident\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"proc-macro\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=proc-macro2\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.0.106\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n \"proc-macro\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n edition = \"2021\",\n pkg_name = \"proc-macro2\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=proc-macro2\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"1.0.106\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, - "crates__pyo3-0.24.2": { + "crates__pyo3-0.29.2": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -1023,16 +1093,16 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219", + "sha256": "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/pyo3/0.24.2/download" + "https://static.crates.io/crates/pyo3/0.29.2/download" ], - "strip_prefix": "pyo3-0.24.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3\",\n deps = [\n \"@crates__cfg-if-1.0.4//:cfg_if\",\n \"@crates__libc-0.2.186//:libc\",\n \"@crates__memoffset-0.9.1//:memoffset\",\n \"@crates__once_cell-1.21.4//:once_cell\",\n \"@crates__pyo3-0.24.2//:build_script_build\",\n \"@crates__pyo3-ffi-0.24.2//:pyo3_ffi\",\n \"@crates__unindent-0.2.4//:unindent\",\n ],\n proc_macro_deps = [\n \"@crates__indoc-2.0.7//:indoc\",\n \"@crates__pyo3-macros-0.24.2//:pyo3_macros\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py39\",\n \"default\",\n \"extension-module\",\n \"indoc\",\n \"macros\",\n \"pyo3-macros\",\n \"unindent\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.24.2\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py39\",\n \"default\",\n \"extension-module\",\n \"indoc\",\n \"macros\",\n \"pyo3-macros\",\n \"unindent\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__pyo3-build-config-0.24.2//:pyo3_build_config\",\n ],\n link_deps = [\n \"@crates__pyo3-ffi-0.24.2//:pyo3_ffi\",\n ],\n edition = \"2021\",\n pkg_name = \"pyo3\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.24.2\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "pyo3-0.29.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3\",\n deps = [\n \"@crates__libc-0.2.186//:libc\",\n \"@crates__once_cell-1.21.4//:once_cell\",\n \"@crates__pyo3-0.29.2//:build_script_build\",\n \"@crates__pyo3-ffi-0.29.2//:pyo3_ffi\",\n ],\n proc_macro_deps = [\n \"@crates__pyo3-macros-0.29.2//:pyo3_macros\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py314\",\n \"abi3-py315\",\n \"abi3-py39\",\n \"default\",\n \"macros\",\n \"pyo3-macros\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.29.2\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py314\",\n \"abi3-py315\",\n \"abi3-py39\",\n \"default\",\n \"macros\",\n \"pyo3-macros\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__pyo3-build-config-0.29.2//:pyo3_build_config\",\n ],\n link_deps = [\n \"@crates__pyo3-ffi-0.29.2//:pyo3_ffi\",\n ],\n edition = \"2021\",\n links = \"pyo3-python\",\n pkg_name = \"pyo3\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.29.2\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, - "crates__pyo3-build-config-0.24.2": { + "crates__pyo3-build-config-0.29.2": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -1042,16 +1112,16 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999", + "sha256": "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/pyo3-build-config/0.24.2/download" + "https://static.crates.io/crates/pyo3-build-config/0.29.2/download" ], - "strip_prefix": "pyo3-build-config-0.24.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3_build_config\",\n deps = [\n \"@crates__once_cell-1.21.4//:once_cell\",\n \"@crates__pyo3-build-config-0.24.2//:build_script_build\",\n \"@crates__target-lexicon-0.13.5//:target_lexicon\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py39\",\n \"default\",\n \"extension-module\",\n \"resolve-config\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-build-config\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.24.2\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py39\",\n \"default\",\n \"extension-module\",\n \"resolve-config\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__target-lexicon-0.13.5//:target_lexicon\",\n ],\n edition = \"2021\",\n pkg_name = \"pyo3-build-config\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-build-config\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.24.2\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "pyo3-build-config-0.29.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3_build_config\",\n deps = [\n \"@crates__target-lexicon-0.13.5//:target_lexicon\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-build-config\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.29.2\",\n)\n" } }, - "crates__pyo3-ffi-0.24.2": { + "crates__pyo3-ffi-0.29.2": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -1061,16 +1131,16 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33", + "sha256": "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/pyo3-ffi/0.24.2/download" + "https://static.crates.io/crates/pyo3-ffi/0.29.2/download" ], - "strip_prefix": "pyo3-ffi-0.24.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3_ffi\",\n deps = [\n \"@crates__libc-0.2.186//:libc\",\n \"@crates__pyo3-ffi-0.24.2//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py39\",\n \"default\",\n \"extension-module\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-ffi\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.24.2\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py39\",\n \"default\",\n \"extension-module\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__pyo3-build-config-0.24.2//:pyo3_build_config\",\n ],\n edition = \"2021\",\n links = \"python\",\n pkg_name = \"pyo3-ffi\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-ffi\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.24.2\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "pyo3-ffi-0.29.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3_ffi\",\n deps = [\n \"@crates__libc-0.2.186//:libc\",\n \"@crates__pyo3-ffi-0.29.2//:build_script_build\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py314\",\n \"abi3-py315\",\n \"abi3-py39\",\n \"default\",\n ],\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-ffi\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.29.2\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_features = [\n \"abi3\",\n \"abi3-py310\",\n \"abi3-py311\",\n \"abi3-py312\",\n \"abi3-py313\",\n \"abi3-py314\",\n \"abi3-py315\",\n \"abi3-py39\",\n \"default\",\n ],\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__pyo3-build-config-0.29.2//:pyo3_build_config\",\n ],\n edition = \"2021\",\n links = \"python\",\n pkg_name = \"pyo3-ffi\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-ffi\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.29.2\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" } }, - "crates__pyo3-macros-0.24.2": { + "crates__pyo3-macros-0.29.2": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -1080,16 +1150,16 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9", + "sha256": "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/pyo3-macros/0.24.2/download" + "https://static.crates.io/crates/pyo3-macros/0.29.2/download" ], - "strip_prefix": "pyo3-macros-0.24.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"pyo3_macros\",\n deps = [\n \"@crates__proc-macro2-1.0.106//:proc_macro2\",\n \"@crates__pyo3-macros-backend-0.24.2//:pyo3_macros_backend\",\n \"@crates__quote-1.0.45//:quote\",\n \"@crates__syn-2.0.117//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-macros\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.24.2\",\n)\n" + "strip_prefix": "pyo3-macros-0.29.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_proc_macro\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_proc_macro(\n name = \"pyo3_macros\",\n deps = [\n \"@crates__proc-macro2-1.0.106//:proc_macro2\",\n \"@crates__pyo3-macros-backend-0.29.2//:pyo3_macros_backend\",\n \"@crates__quote-1.0.45//:quote\",\n \"@crates__syn-2.0.117//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-macros\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.29.2\",\n)\n" } }, - "crates__pyo3-macros-backend-0.24.2": { + "crates__pyo3-macros-backend-0.29.2": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", "attributes": { @@ -1099,13 +1169,13 @@ "patch_tool": "", "patches": [], "remote_patch_strip": 1, - "sha256": "822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a", + "sha256": "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952", "type": "tar.gz", "urls": [ - "https://static.crates.io/crates/pyo3-macros-backend/0.24.2/download" + "https://static.crates.io/crates/pyo3-macros-backend/0.29.2/download" ], - "strip_prefix": "pyo3-macros-backend-0.24.2", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\n \"@rules_rust//cargo:defs.bzl\",\n \"cargo_build_script\",\n \"cargo_toml_env_vars\",\n)\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3_macros_backend\",\n deps = [\n \"@crates__heck-0.5.0//:heck\",\n \"@crates__proc-macro2-1.0.106//:proc_macro2\",\n \"@crates__pyo3-build-config-0.24.2//:pyo3_build_config\",\n \"@crates__pyo3-macros-backend-0.24.2//:build_script_build\",\n \"@crates__quote-1.0.45//:quote\",\n \"@crates__syn-2.0.117//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-macros-backend\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.24.2\",\n)\n\ncargo_build_script(\n name = \"_bs\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \"**/*.rs\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_name = \"build_script_build\",\n crate_root = \"build.rs\",\n data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n deps = [\n \"@crates__pyo3-build-config-0.24.2//:pyo3_build_config\",\n ],\n edition = \"2021\",\n pkg_name = \"pyo3-macros-backend\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-macros-backend\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n version = \"0.24.2\",\n visibility = [\"//visibility:private\"],\n)\n\nalias(\n name = \"build_script_build\",\n actual = \":_bs\",\n tags = [\"manual\"],\n)\n" + "strip_prefix": "pyo3-macros-backend-0.29.2", + "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"pyo3_macros_backend\",\n deps = [\n \"@crates__heck-0.5.0//:heck\",\n \"@crates__proc-macro2-1.0.106//:proc_macro2\",\n \"@crates__quote-1.0.45//:quote\",\n \"@crates__syn-2.0.117//:syn\",\n ],\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=pyo3-macros-backend\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.29.2\",\n)\n" } }, "crates__quote-1.0.45": { @@ -1507,25 +1577,6 @@ "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"unicode_segmentation\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2018\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=unicode-segmentation\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"1.13.2\",\n)\n" } }, - "crates__unindent-0.2.4": { - "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", - "ruleClassName": "http_archive", - "attributes": { - "patch_args": [ - "-p0" - ], - "patch_tool": "", - "patches": [], - "remote_patch_strip": 1, - "sha256": "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3", - "type": "tar.gz", - "urls": [ - "https://static.crates.io/crates/unindent/0.2.4/download" - ], - "strip_prefix": "unindent-0.2.4", - "build_file_content": "###############################################################################\n# @generated\n# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To \n# regenerate this file, run the following:\n#\n# bazel mod show_repo 'stdbr'\n###############################################################################\n\nload(\"@rules_rust//cargo:defs.bzl\", \"cargo_toml_env_vars\")\n\nload(\"@rules_rust//rust:defs.bzl\", \"rust_library\")\n\n# buildifier: disable=bzl-visibility\nload(\"@rules_rust//crate_universe/private:selects.bzl\", \"selects\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ncargo_toml_env_vars(\n name = \"cargo_toml_env_vars\",\n src = \"Cargo.toml\",\n)\n\nrust_library(\n name = \"unindent\",\n compile_data = glob(\n allow_empty = True,\n include = [\"**\"],\n exclude = [\n \"**/* *\",\n \".tmp_git_root/**/*\",\n \"BUILD\",\n \"BUILD.bazel\",\n \"WORKSPACE\",\n \"WORKSPACE.bazel\",\n ],\n ),\n crate_root = \"src/lib.rs\",\n edition = \"2021\",\n rustc_env_files = [\n \":cargo_toml_env_vars\",\n ],\n rustc_flags = [\n \"--cap-lints=allow\",\n ],\n srcs = glob(\n allow_empty = True,\n include = [\"**/*.rs\"],\n ),\n tags = [\n \"cargo-bazel\",\n \"crate-name=unindent\",\n \"manual\",\n \"noclippy\",\n \"norustfmt\",\n ],\n target_compatible_with = select({\n \"@rules_rust//rust/platform:aarch64-apple-darwin\": [],\n \"@rules_rust//rust/platform:aarch64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:wasm32-unknown-unknown\": [],\n \"@rules_rust//rust/platform:wasm32-wasip1\": [],\n \"@rules_rust//rust/platform:x86_64-pc-windows-msvc\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-linux-gnu\": [],\n \"@rules_rust//rust/platform:x86_64-unknown-nixos-gnu\": [],\n \"//conditions:default\": [\"@platforms//:incompatible\"],\n }),\n version = \"0.2.4\",\n)\n" - } - }, "crates__untrusted-0.9.0": { "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", "ruleClassName": "http_archive", @@ -2016,6 +2067,149 @@ ] ] } + }, + "@@rules_rust~//crate_universe/private:internal_extensions.bzl%cu_nr": { + "general": { + "bzlTransitiveDigest": "AoGCAHUsaWnW5WFu7igmmbiez1YuRan7o9vN7ba5Rn4=", + "usagesDigest": "Ikl9ckx+b0AjkEg4zuuJI+qNjyhJ4Axk7IybBDcX5UQ=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "cargo_bazel_bootstrap": { + "bzlFile": "@@rules_rust~//cargo/private:cargo_bootstrap.bzl", + "ruleClassName": "cargo_bootstrap_repository", + "attributes": { + "srcs": [ + "@@rules_rust~//crate_universe:src/api.rs", + "@@rules_rust~//crate_universe:src/api/lockfile.rs", + "@@rules_rust~//crate_universe:src/cli.rs", + "@@rules_rust~//crate_universe:src/cli/generate.rs", + "@@rules_rust~//crate_universe:src/cli/query.rs", + "@@rules_rust~//crate_universe:src/cli/render.rs", + "@@rules_rust~//crate_universe:src/cli/splice.rs", + "@@rules_rust~//crate_universe:src/cli/vendor.rs", + "@@rules_rust~//crate_universe:src/config.rs", + "@@rules_rust~//crate_universe:src/context.rs", + "@@rules_rust~//crate_universe:src/context/crate_context.rs", + "@@rules_rust~//crate_universe:src/context/platforms.rs", + "@@rules_rust~//crate_universe:src/lib.rs", + "@@rules_rust~//crate_universe:src/lockfile.rs", + "@@rules_rust~//crate_universe:src/main.rs", + "@@rules_rust~//crate_universe:src/metadata.rs", + "@@rules_rust~//crate_universe:src/metadata/cargo_bin.rs", + "@@rules_rust~//crate_universe:src/metadata/cargo_tree_resolver.rs", + "@@rules_rust~//crate_universe:src/metadata/cargo_tree_rustc_wrapper.bat", + "@@rules_rust~//crate_universe:src/metadata/cargo_tree_rustc_wrapper.sh", + "@@rules_rust~//crate_universe:src/metadata/dependency.rs", + "@@rules_rust~//crate_universe:src/metadata/metadata_annotation.rs", + "@@rules_rust~//crate_universe:src/rendering.rs", + "@@rules_rust~//crate_universe:src/rendering/template_engine.rs", + "@@rules_rust~//crate_universe:src/rendering/templates/module_bzl.j2", + "@@rules_rust~//crate_universe:src/rendering/templates/partials/header.j2", + "@@rules_rust~//crate_universe:src/rendering/templates/partials/module/aliases_map.j2", + "@@rules_rust~//crate_universe:src/rendering/templates/partials/module/deps_map.j2", + "@@rules_rust~//crate_universe:src/rendering/templates/partials/module/repo_git.j2", + "@@rules_rust~//crate_universe:src/rendering/templates/partials/module/repo_http.j2", + "@@rules_rust~//crate_universe:src/rendering/templates/vendor_module.j2", + "@@rules_rust~//crate_universe:src/rendering/verbatim/alias_rules.bzl", + "@@rules_rust~//crate_universe:src/select.rs", + "@@rules_rust~//crate_universe:src/splicing.rs", + "@@rules_rust~//crate_universe:src/splicing/cargo_config.rs", + "@@rules_rust~//crate_universe:src/splicing/crate_index_lookup.rs", + "@@rules_rust~//crate_universe:src/splicing/splicer.rs", + "@@rules_rust~//crate_universe:src/test.rs", + "@@rules_rust~//crate_universe:src/utils.rs", + "@@rules_rust~//crate_universe:src/utils/starlark.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/glob.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/label.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/select.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/select_dict.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/select_list.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/select_scalar.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/select_set.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/serialize.rs", + "@@rules_rust~//crate_universe:src/utils/starlark/target_compatible_with.rs", + "@@rules_rust~//crate_universe:src/utils/symlink.rs", + "@@rules_rust~//crate_universe:src/utils/target_triple.rs" + ], + "binary": "cargo-bazel", + "cargo_lockfile": "@@rules_rust~//crate_universe:Cargo.lock", + "cargo_toml": "@@rules_rust~//crate_universe:Cargo.toml", + "version": "1.95.0", + "timeout": 900, + "rust_toolchain_cargo_template": "@rust_host_tools//:bin/{tool}", + "rust_toolchain_rustc_template": "@rust_host_tools//:bin/{tool}", + "compressed_windows_toolchain_names": false + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "cargo_bazel_bootstrap" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "bazel_features~", + "bazel_features_globals", + "bazel_features~~version_extension~bazel_features_globals" + ], + [ + "bazel_features~", + "bazel_features_version", + "bazel_features~~version_extension~bazel_features_version" + ], + [ + "rules_cc~", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_cc~", + "rules_cc", + "rules_cc~" + ], + [ + "rules_rust~", + "bazel_features", + "bazel_features~" + ], + [ + "rules_rust~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "rules_rust~", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_rust~", + "cui", + "rules_rust~~cu~cui" + ], + [ + "rules_rust~", + "rrc", + "rules_rust~~i2~rrc" + ], + [ + "rules_rust~", + "rules_cc", + "rules_cc~" + ], + [ + "rules_rust~", + "rules_rust", + "rules_rust~" + ] + ] + } } } } diff --git a/bindings/ffi-c/BUILD.bazel b/bindings/ffi-c/BUILD.bazel index 62a0216..995a9d5 100644 --- a/bindings/ffi-c/BUILD.bazel +++ b/bindings/ffi-c/BUILD.bazel @@ -1,53 +1,46 @@ +load("@bazel_skylib//rules:diff_test.bzl", "diff_test") load("@rules_rust//rust:defs.bzl", "rust_shared_library", "rust_static_library") load("//tools/rules_rust_extras:cbindgen.bzl", "cbindgen") -exports_files(["Cargo.toml", "test_parity.c"]) +exports_files([ + "Cargo.toml", + "include/stdbr.h", + "test_parity.c", +]) rust_shared_library( name = "stdbr-ffi-shared", srcs = glob(["src/**/*.rs"]), crate_root = "src/lib.rs", - deps = ["//core:stdbr-core"], visibility = ["//visibility:public"], + deps = ["//core:stdbr-core"], ) rust_static_library( name = "stdbr-ffi-static", srcs = glob(["src/**/*.rs"]), crate_root = "src/lib.rs", - deps = ["//core:stdbr-core"], visibility = ["//visibility:public"], + deps = ["//core:stdbr-core"], ) cbindgen( - name = "stdbr-header", + name = "stdbr-header-generated", srcs = glob(["src/**/*.rs"]), config = "cbindgen.toml", - crate_name = "stdbr-ffi", + crate_root = "src/lib.rs", header_name = "stdbr.h", - lockfile = "//:Cargo.lock", - manifest = "//:Cargo.toml", - workspace_srcs = [ - "//:Cargo.toml", - "//:src/lib.rs", - "//core:Cargo.toml", - ":Cargo.toml", - "//bindings/nodejs:Cargo.toml", - "//bindings/python:Cargo.toml", - "//bindings/wasm:Cargo.toml", - "//tools/parity_gen:Cargo.toml", - "//core:src/lib.rs", - "//core:src/cpf.rs", - "//core:src/cnpj.rs", - "//core:src/cep.rs", - "//core:src/uf.rs", - "//core:src/municipio.rs", - "//core:src/rand.rs", - "//core:src/util.rs", - "//bindings/nodejs:src/lib.rs", - "//bindings/python:src/lib.rs", - "//bindings/wasm:src/lib.rs", - "//tools/parity_gen:src/main.rs", - ] + glob(["src/**/*.rs"]), +) + +cc_library( + name = "stdbr-header", + hdrs = ["include/stdbr.h"], + includes = ["include"], visibility = ["//visibility:public"], ) + +diff_test( + name = "stdbr-header-diff-test", + file1 = "include/stdbr.h", + file2 = ":stdbr-header-generated", +) diff --git a/bindings/ffi-c/cbindgen.toml b/bindings/ffi-c/cbindgen.toml index f646cdd..925daa7 100644 --- a/bindings/ffi-c/cbindgen.toml +++ b/bindings/ffi-c/cbindgen.toml @@ -15,6 +15,9 @@ header = """ * * All strings returned by stdbr functions are heap-allocated * and must be freed with stdbr_free(). + * Enum-like input parameters use uint8_t so invalid values can be rejected + * safely. Pass the corresponding STDBR_* constants; outputs use explicit + * *_INVALID sentinels where NULL would otherwise be ambiguous. */""" [enum] diff --git a/bindings/ffi-c/include/stdbr.h b/bindings/ffi-c/include/stdbr.h new file mode 100644 index 0000000..3d7bb2e --- /dev/null +++ b/bindings/ffi-c/include/stdbr.h @@ -0,0 +1,682 @@ +/** + * @file stdbr.h + * @brief stdbr — standard library for Brazil. + * + * All strings returned by stdbr functions are heap-allocated + * and must be freed with stdbr_free(). + * Enum-like input parameters use uint8_t so invalid values can be rejected + * safely. Pass the corresponding STDBR_* constants; outputs use explicit + * *_INVALID sentinels where NULL would otherwise be ambiguous. + */ + +#ifndef STDBR_H +#define STDBR_H + +/* Generated by cbindgen — do not edit. */ + +#include +#include +#include +#include + +/** + * Error codes for CEP validation. + */ +enum StdbrCepError +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_CEP_ERROR_OK = 0, + STDBR_CEP_ERROR_INVALID_LENGTH = 1, + STDBR_CEP_ERROR_INVALID_CHARACTER = 2, + STDBR_CEP_ERROR_INVALID_FORMAT = 3, +}; +#ifndef __cplusplus +typedef uint8_t StdbrCepError; +#endif // __cplusplus + +/** + * Postal region mapped by the first digit of a CEP. + */ +enum StdbrPostalRegion +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_POSTAL_REGION_GRAN_SAO_PAULO = 0, + STDBR_POSTAL_REGION_INTERIOR_SAO_PAULO = 1, + STDBR_POSTAL_REGION_RJ_ES = 2, + STDBR_POSTAL_REGION_MG = 3, + STDBR_POSTAL_REGION_BA_SE = 4, + STDBR_POSTAL_REGION_PE_AL_PB_RN = 5, + STDBR_POSTAL_REGION_CE_PI_MA_PA_AM_AC_AP_RR = 6, + STDBR_POSTAL_REGION_DF_GO_TO_MT_MS_RO = 7, + STDBR_POSTAL_REGION_PR_SC = 8, + STDBR_POSTAL_REGION_RS = 9, + /** + * Sentinel returned when a postal region cannot be read. + */ + STDBR_POSTAL_REGION_INVALID = 255, +}; +#ifndef __cplusplus +typedef uint8_t StdbrPostalRegion; +#endif // __cplusplus + +/** + * Brazilian state. + */ +enum StdbrState +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_STATE_AC = 0, + STDBR_STATE_AL = 1, + STDBR_STATE_AM = 2, + STDBR_STATE_AP = 3, + STDBR_STATE_BA = 4, + STDBR_STATE_CE = 5, + STDBR_STATE_DF = 6, + STDBR_STATE_ES = 7, + STDBR_STATE_GO = 8, + STDBR_STATE_MA = 9, + STDBR_STATE_MG = 10, + STDBR_STATE_MS = 11, + STDBR_STATE_MT = 12, + STDBR_STATE_PA = 13, + STDBR_STATE_PB = 14, + STDBR_STATE_PE = 15, + STDBR_STATE_PI = 16, + STDBR_STATE_PR = 17, + STDBR_STATE_RJ = 18, + STDBR_STATE_RN = 19, + STDBR_STATE_RO = 20, + STDBR_STATE_RR = 21, + STDBR_STATE_RS = 22, + STDBR_STATE_SC = 23, + STDBR_STATE_SE = 24, + STDBR_STATE_SP = 25, + STDBR_STATE_TO = 26, + /** + * Sentinel returned when a state cannot be read. + */ + STDBR_STATE_INVALID = 255, +}; +#ifndef __cplusplus +typedef uint8_t StdbrState; +#endif // __cplusplus + +/** + * Error codes for CNPJ validation. `STDBR_CNPJ_ERROR_OK` (0) = success. + */ +enum StdbrCnpjError +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_CNPJ_ERROR_OK = 0, + STDBR_CNPJ_ERROR_INVALID_LENGTH = 1, + STDBR_CNPJ_ERROR_INVALID_CHARACTER = 2, + STDBR_CNPJ_ERROR_INVALID_FORMAT = 3, + STDBR_CNPJ_ERROR_ALL_CHARS_EQUAL = 4, + STDBR_CNPJ_ERROR_INVALID_CHECK_DIGITS = 5, +}; +#ifndef __cplusplus +typedef uint8_t StdbrCnpjError; +#endif // __cplusplus + +/** + * Whether the CNPJ uses only digits or also contains letters. + */ +enum StdbrCnpjKind +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_CNPJ_KIND_NUMERIC = 0, + STDBR_CNPJ_KIND_ALPHANUMERIC = 1, + /** + * Sentinel returned when a CNPJ kind cannot be read. + */ + STDBR_CNPJ_KIND_INVALID = 255, +}; +#ifndef __cplusplus +typedef uint8_t StdbrCnpjKind; +#endif // __cplusplus + +/** + * Whether the establishment is Matriz or Filial. + */ +enum StdbrEstablishmentType +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_ESTABLISHMENT_TYPE_MATRIZ = 0, + STDBR_ESTABLISHMENT_TYPE_FILIAL = 1, + /** + * Sentinel returned when an establishment type cannot be read. + */ + STDBR_ESTABLISHMENT_TYPE_INVALID = 255, +}; +#ifndef __cplusplus +typedef uint8_t StdbrEstablishmentType; +#endif // __cplusplus + +/** + * Error codes for CPF validation. `STDBR_CPF_ERROR_OK` (0) = success. + */ +enum StdbrCpfError +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_CPF_ERROR_OK = 0, + STDBR_CPF_ERROR_INVALID_LENGTH = 1, + STDBR_CPF_ERROR_INVALID_CHARACTER = 2, + STDBR_CPF_ERROR_INVALID_FORMAT = 3, + STDBR_CPF_ERROR_ALL_DIGITS_EQUAL = 4, + STDBR_CPF_ERROR_INVALID_CHECK_DIGITS = 5, +}; +#ifndef __cplusplus +typedef uint8_t StdbrCpfError; +#endif // __cplusplus + +/** + * Fiscal region mapped by the 9th digit of a CPF. + */ +enum StdbrFiscalRegion +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_FISCAL_REGION_RS = 0, + STDBR_FISCAL_REGION_DF_GO_MS_MT_TO = 1, + STDBR_FISCAL_REGION_AC_AM_AP_PA_RO_RR = 2, + STDBR_FISCAL_REGION_CE_MA_PI = 3, + STDBR_FISCAL_REGION_AL_PB_PE_RN = 4, + STDBR_FISCAL_REGION_BA_SE = 5, + STDBR_FISCAL_REGION_MG = 6, + STDBR_FISCAL_REGION_ES_RJ = 7, + STDBR_FISCAL_REGION_SP = 8, + STDBR_FISCAL_REGION_PR_SC = 9, + /** + * Sentinel returned when a fiscal region cannot be read. + */ + STDBR_FISCAL_REGION_INVALID = 255, +}; +#ifndef __cplusplus +typedef uint8_t StdbrFiscalRegion; +#endif // __cplusplus + +/** + * Error codes for RG validation. `STDBR_RG_ERROR_OK` (0) = success. + */ +enum StdbrRgError +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_RG_ERROR_OK = 0, + STDBR_RG_ERROR_INVALID_LENGTH = 1, + STDBR_RG_ERROR_INVALID_CHARACTER = 2, + STDBR_RG_ERROR_INVALID_FORMAT = 3, + STDBR_RG_ERROR_INVALID_CHECK_DIGIT = 4, + STDBR_RG_ERROR_UNSUPPORTED_UF_FOR_GENERATION = 5, + STDBR_RG_ERROR_INVALID_UF = 6, +}; +#ifndef __cplusplus +typedef uint8_t StdbrRgError; +#endif // __cplusplus + +/** + * Geographic region. + */ +enum StdbrRegion +#ifdef __cplusplus + : uint8_t +#endif // __cplusplus + { + STDBR_REGION_NORTE = 0, + STDBR_REGION_NORDESTE = 1, + STDBR_REGION_CENTRO_OESTE = 2, + STDBR_REGION_SUDESTE = 3, + STDBR_REGION_SUL = 4, + /** + * Sentinel returned for an invalid state. + */ + STDBR_REGION_INVALID = 255, +}; +#ifndef __cplusplus +typedef uint8_t StdbrRegion; +#endif // __cplusplus + +typedef struct StdbrCep StdbrCep; + +typedef struct StdbrCnpj StdbrCnpj; + +typedef struct StdbrCpf StdbrCpf; + +typedef struct StdbrMunicipio StdbrMunicipio; + +/** + * Opaque list of municipalities. + */ +typedef struct StdbrMunicipioList StdbrMunicipioList; + +typedef struct StdbrRg StdbrRg; + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/** + * Frees a string previously returned by stdbr functions. + */ +void stdbr_free(char *ptr); + +/** + * Parses a CEP string (strict). Returns `NULL` on failure. + */ +struct StdbrCep *stdbr_cep_parse(const char *raw, StdbrCepError *err); + +/** + * Generates a random valid CEP. + */ +struct StdbrCep *stdbr_cep_create(void); + +/** + * Generates a random CEP for a postal region, or `NULL` if `region` is invalid. + */ +struct StdbrCep *stdbr_cep_create_for_region(uint8_t region); + +/** + * Generates a CEP for a state, or `NULL` if `state` is invalid. + */ +struct StdbrCep *stdbr_cep_create_for_state(uint8_t state); + +/** + * Destroys a CEP handle. `NULL`-safe. + */ +void stdbr_cep_destroy(struct StdbrCep *cep); + +/** + * Unformatted 8-digit string. Caller frees with `stdbr_free`. + */ +char *stdbr_cep_as_str(const struct StdbrCep *cep); + +/** + * Formatted `#####-###`. Caller frees with `stdbr_free`. + */ +char *stdbr_cep_formatted(const struct StdbrCep *cep); + +/** + * Masked `#####-***`. Caller frees with `stdbr_free`. + */ +char *stdbr_cep_masked(const struct StdbrCep *cep); + +/** + * Returns the postal region, or `STDBR_POSTAL_REGION_INVALID` when `cep` is `NULL`. + */ +StdbrPostalRegion stdbr_cep_postal_region(const struct StdbrCep *cep); + +/** + * Returns the state. Writes the result to `*out` and returns `true`. + */ +bool stdbr_cep_state(const struct StdbrCep *cep, StdbrState *out); + +/** + * Lenient validation strips non-digits before checking. + */ +bool stdbr_cep_is_valid(const char *raw); + +/** + * Strict validation. Returns a `StdbrCepError` code. + */ +StdbrCepError stdbr_cep_is_valid_strict(const char *raw); + +/** + * Random valid CEP as 8-digit string. Caller frees with `stdbr_free`. + */ +char *stdbr_cep_generate(void); + +/** + * Formats as `#####-###`, or `NULL` if invalid. Caller frees with `stdbr_free`. + */ +char *stdbr_cep_format(const char *raw); + +/** + * Strips non-digit characters. Caller frees with `stdbr_free`. + */ +char *stdbr_cep_remove_symbols(const char *raw); + +/** + * Parses a CNPJ string (strict). Returns `NULL` on failure. + */ +struct StdbrCnpj *stdbr_cnpj_parse(const char *raw, StdbrCnpjError *err); + +/** + * Generates a random valid CNPJ, or `NULL` if `kind` is invalid. + */ +struct StdbrCnpj *stdbr_cnpj_create(uint8_t kind); + +/** + * Generates a Matriz CNPJ, or `NULL` if `kind` is invalid. + */ +struct StdbrCnpj *stdbr_cnpj_create_matriz(uint8_t kind); + +/** + * Destroys a CNPJ handle. `NULL`-safe. + */ +void stdbr_cnpj_destroy(struct StdbrCnpj *cnpj); + +/** + * Unformatted 14-character string. Caller frees with `stdbr_free`. + */ +char *stdbr_cnpj_as_str(const struct StdbrCnpj *cnpj); + +/** + * Formatted `XX.XXX.XXX/XXXX-DD`. Caller frees with `stdbr_free`. + */ +char *stdbr_cnpj_formatted(const struct StdbrCnpj *cnpj); + +/** + * Masked `XX.XXX.XXX/****-**`. Caller frees with `stdbr_free`. + */ +char *stdbr_cnpj_masked(const struct StdbrCnpj *cnpj); + +/** + * Returns the CNPJ kind, or `STDBR_CNPJ_KIND_INVALID` when `cnpj` is `NULL`. + */ +StdbrCnpjKind stdbr_cnpj_kind(const struct StdbrCnpj *cnpj); + +/** + * Returns the establishment type, or `STDBR_ESTABLISHMENT_TYPE_INVALID` when `cnpj` is `NULL`. + */ +StdbrEstablishmentType stdbr_cnpj_establishment_type(const struct StdbrCnpj *cnpj); + +/** + * Writes both check digits and returns `true`; returns `false` for any `NULL` pointer. + */ +bool stdbr_cnpj_check_digits(const struct StdbrCnpj *cnpj, uint8_t *d1, uint8_t *d2); + +/** + * Lenient validation strips non-alphanumeric chars before checking. + */ +bool stdbr_cnpj_is_valid(const char *raw); + +/** + * Strict validation. Returns a `StdbrCnpjError` code. + */ +StdbrCnpjError stdbr_cnpj_is_valid_strict(const char *raw); + +/** + * Returns a random CNPJ string, or `NULL` if `kind` is invalid. Caller frees with `stdbr_free`. + */ +char *stdbr_cnpj_generate(uint8_t kind); + +/** + * Formats as `XX.XXX.XXX/XXXX-DD`, or `NULL` if invalid. Caller frees with `stdbr_free`. + */ +char *stdbr_cnpj_format(const char *raw); + +/** + * Strips non-alphanumeric characters, uppercases. Caller frees with `stdbr_free`. + */ +char *stdbr_cnpj_remove_symbols(const char *raw); + +/** + * Computes check digits for a 12-character base. Returns `false` if invalid. + */ +bool stdbr_cnpj_compute_check_digits(const char *base, uint8_t *d1, uint8_t *d2); + +/** + * Parses a CPF string (strict). Returns `NULL` on failure. + */ +struct StdbrCpf *stdbr_cpf_parse(const char *raw, StdbrCpfError *err); + +/** + * Generates a random valid CPF. + */ +struct StdbrCpf *stdbr_cpf_create(void); + +/** + * Generates a random valid CPF for a fiscal region, or `NULL` if `region` is invalid. + */ +struct StdbrCpf *stdbr_cpf_create_for_region(uint8_t region); + +/** + * Destroys a CPF handle. `NULL`-safe. + */ +void stdbr_cpf_destroy(struct StdbrCpf *cpf); + +/** + * Unformatted 11-digit string. Caller frees with `stdbr_free`. + */ +char *stdbr_cpf_as_str(const struct StdbrCpf *cpf); + +/** + * Formatted `###.###.###-##`. Caller frees with `stdbr_free`. + */ +char *stdbr_cpf_formatted(const struct StdbrCpf *cpf); + +/** + * Masked `XXX.***.***-XX`. Caller frees with `stdbr_free`. + */ +char *stdbr_cpf_masked(const struct StdbrCpf *cpf); + +/** + * Returns the fiscal region, or `STDBR_FISCAL_REGION_INVALID` when `cpf` is `NULL`. + */ +StdbrFiscalRegion stdbr_cpf_fiscal_region(const struct StdbrCpf *cpf); + +/** + * Writes both check digits and returns `true`; returns `false` for any `NULL` pointer. + */ +bool stdbr_cpf_check_digits(const struct StdbrCpf *cpf, uint8_t *d1, uint8_t *d2); + +/** + * Lenient validation strips non-digits before checking. + */ +bool stdbr_cpf_is_valid(const char *raw); + +/** + * Strict validation. Returns a `StdbrCpfError` code. + */ +StdbrCpfError stdbr_cpf_is_valid_strict(const char *raw); + +/** + * Random valid CPF as 11-digit string. Caller frees with `stdbr_free`. + */ +char *stdbr_cpf_generate(void); + +/** + * Formats as `###.###.###-##`, or `NULL` if invalid. Caller frees with `stdbr_free`. + */ +char *stdbr_cpf_format(const char *raw); + +/** + * Strips non-digit characters. Caller frees with `stdbr_free`. + */ +char *stdbr_cpf_remove_symbols(const char *raw); + +/** + * Computes check digits for a 9-digit base. Returns `false` if invalid. + */ +bool stdbr_cpf_compute_check_digits(const char *base, uint8_t *d1, uint8_t *d2); + +/** + * Finds a municipio, or `NULL` if absent. Caller destroys it with `stdbr_municipio_destroy`. + */ +struct StdbrMunicipio *stdbr_municipio_from_ibge_code(uint32_t code); + +/** + * Gets a capital, or `NULL` for an invalid state. Caller destroys it with `stdbr_municipio_destroy`. + */ +struct StdbrMunicipio *stdbr_municipio_capital_of(uint8_t state); + +/** + * Destroys a municipio handle. `NULL`-safe. + */ +void stdbr_municipio_destroy(struct StdbrMunicipio *m); + +/** + * Returns the IBGE code, or the invalid code 0 when `m` is `NULL`. + */ +uint32_t stdbr_municipio_ibge_code(const struct StdbrMunicipio *m); + +/** + * Returns the name of a municipio. Caller frees with `stdbr_free`. + */ +char *stdbr_municipio_name(const struct StdbrMunicipio *m); + +/** + * Returns the state, or `STDBR_STATE_INVALID` when `m` is `NULL`. + */ +StdbrState stdbr_municipio_state(const struct StdbrMunicipio *m); + +/** + * Returns whether a municipio is a capital; returns `false` when `m` is `NULL`. + */ +bool stdbr_municipio_is_capital(const struct StdbrMunicipio *m); + +/** + * Total number of municipalities in the database. + */ +uint32_t stdbr_municipio_count(void); + +/** + * Returns a state list, or `NULL` for invalid state. Caller uses `stdbr_municipio_list_destroy`. + */ +struct StdbrMunicipioList *stdbr_municipio_by_state(uint8_t state); + +/** + * Searches by name, or returns `NULL` for a null/invalid query. Caller destroys the list with `stdbr_municipio_list_destroy`. + */ +struct StdbrMunicipioList *stdbr_municipio_search_by_name(const char *query); + +/** + * Returns the item count, or `UINT32_MAX` when `list` is `NULL`. + */ +uint32_t stdbr_municipio_list_count(const struct StdbrMunicipioList *list); + +/** + * Returns an independently owned municipio, or `NULL` for a null list/out-of-range index; destroy it with `stdbr_municipio_destroy`. + */ +struct StdbrMunicipio *stdbr_municipio_list_get(const struct StdbrMunicipioList *list, + uint32_t index); + +/** + * Destroys a municipio list. `NULL`-safe. + */ +void stdbr_municipio_list_destroy(struct StdbrMunicipioList *list); + +/** + * Parses an RG; invalid `uf` returns `NULL` and `STDBR_RG_ERROR_INVALID_UF`. + */ +struct StdbrRg *stdbr_rg_parse(const char *raw, uint8_t uf, StdbrRgError *err); + +/** + * Creates an RG (currently SP only); invalid `uf` returns `NULL` and `STDBR_RG_ERROR_INVALID_UF`. + */ +struct StdbrRg *stdbr_rg_create_for_uf(uint8_t uf, StdbrRgError *err); + +/** + * Destroys an RG handle. `NULL`-safe. + */ +void stdbr_rg_destroy(struct StdbrRg *rg); + +/** + * Unformatted body. Caller frees with `stdbr_free`. + */ +char *stdbr_rg_as_str(const struct StdbrRg *rg); + +/** + * Formatted per the UF mask. Caller frees with `stdbr_free`. + */ +char *stdbr_rg_formatted(const struct StdbrRg *rg); + +/** + * Returns the issuing UF, or `STDBR_STATE_INVALID` when `rg` is `NULL`. + */ +StdbrState stdbr_rg_uf(const struct StdbrRg *rg); + +/** + * Writes the check digit to `*out`. Returns `true` if a digit exists + */ +bool stdbr_rg_check_digit(const struct StdbrRg *rg, uint8_t *out); + +/** + * Lenient validation strips separators; returns `false` for an invalid `uf`. + */ +bool stdbr_rg_is_valid(const char *raw, uint8_t uf); + +/** + * Strict validation; returns `STDBR_RG_ERROR_INVALID_UF` for an invalid `uf`. + */ +StdbrRgError stdbr_rg_is_valid_strict(const char *raw, uint8_t uf); + +/** + * Formats per the UF mask; returns `NULL` for invalid input or `uf`. + */ +char *stdbr_rg_format(const char *raw, uint8_t uf); + +/** + * Strips separators, or returns `NULL` for invalid input/`uf`. Caller frees with `stdbr_free`. + */ +char *stdbr_rg_remove_symbols(const char *raw, uint8_t uf); + +/** + * SP-only: writes the check digit and returns `true`; returns `false` for invalid input, pointer, or `uf`. + */ +bool stdbr_rg_compute_check_digit(const char *base, + uint8_t uf, + uint8_t *out); + +/** + * Generates an RG string; invalid `uf` returns `NULL` and `STDBR_RG_ERROR_INVALID_UF`. Caller frees with `stdbr_free`. + */ +char *stdbr_rg_generate(uint8_t uf, + StdbrRgError *err); + +/** + * Masked representation. Caller frees with `stdbr_free`. Returns `NULL` if + */ +char *stdbr_rg_masked(const struct StdbrRg *rg); + +/** + * Body without check digit. Caller frees with `stdbr_free`. Returns `NULL` + */ +char *stdbr_rg_body(const struct StdbrRg *rg); + +/** + * Returns the two-letter abbreviation, or `NULL` for an invalid state. Caller frees with `stdbr_free`. + */ +char *stdbr_state_abbreviation(uint8_t state); + +/** + * Returns the full name, or `NULL` for an invalid state. Caller frees with `stdbr_free`. + */ +char *stdbr_state_name(uint8_t state); + +/** + * Returns the geographic region, or `STDBR_REGION_INVALID` for an invalid state. + */ +StdbrRegion stdbr_state_region(uint8_t state); + +/** + * Parse a state from its two-letter abbreviation (case-insensitive). + */ +bool stdbr_state_from_abbreviation(const char *abbr, StdbrState *out); + +/** + * Writes all 27 states to `buf`; returns 27 on success or 0 when `buf` is `NULL`. + */ +uint32_t stdbr_all_states(StdbrState *buf); + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus + +#endif /* STDBR_H */ diff --git a/bindings/ffi-c/src/cep.rs b/bindings/ffi-c/src/cep.rs index d2da6dd..98f8a28 100644 --- a/bindings/ffi-c/src/cep.rs +++ b/bindings/ffi-c/src/cep.rs @@ -20,17 +20,40 @@ pub enum StdbrPostalRegion { DfGoToMtMsRo = 7, PrSc = 8, Rs = 9, + /// Sentinel returned when a postal region cannot be read. + Invalid = 255, } impl StdbrPostalRegion { fn from_core(r: cep::PostalRegion) -> Self { - // SAFETY: both enums are repr(u8) 0..=9 with same variant order. - unsafe { core::mem::transmute(r as u8) } + match r { + cep::PostalRegion::GranSaoPaulo => Self::GranSaoPaulo, + cep::PostalRegion::InteriorSaoPaulo => Self::InteriorSaoPaulo, + cep::PostalRegion::RjEs => Self::RjEs, + cep::PostalRegion::Mg => Self::Mg, + cep::PostalRegion::BaSe => Self::BaSe, + cep::PostalRegion::PeAlPbRn => Self::PeAlPbRn, + cep::PostalRegion::CePiMaPaAmAcApRr => Self::CePiMaPaAmAcApRr, + cep::PostalRegion::DfGoToMtMsRo => Self::DfGoToMtMsRo, + cep::PostalRegion::PrSc => Self::PrSc, + cep::PostalRegion::Rs => Self::Rs, + } } - fn into_core(self) -> cep::PostalRegion { - // SAFETY: both enums are repr(u8) 0..=9 with same variant order. - unsafe { core::mem::transmute(self as u8) } + fn core_from_raw(value: u8) -> Option { + match value { + 0 => Some(cep::PostalRegion::GranSaoPaulo), + 1 => Some(cep::PostalRegion::InteriorSaoPaulo), + 2 => Some(cep::PostalRegion::RjEs), + 3 => Some(cep::PostalRegion::Mg), + 4 => Some(cep::PostalRegion::BaSe), + 5 => Some(cep::PostalRegion::PeAlPbRn), + 6 => Some(cep::PostalRegion::CePiMaPaAmAcApRr), + 7 => Some(cep::PostalRegion::DfGoToMtMsRo), + 8 => Some(cep::PostalRegion::PrSc), + 9 => Some(cep::PostalRegion::Rs), + _ => None, + } } } @@ -94,20 +117,22 @@ pub extern "C" fn stdbr_cep_create() -> *mut StdbrCep { Box::into_raw(Box::new(StdbrCep(cep::generate_cep()))) } -/// Generates a random CEP for a postal region. +/// Generates a random CEP for a postal region, or `NULL` if `region` is invalid. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_cep_create_for_region(region: StdbrPostalRegion) -> *mut StdbrCep { - Box::into_raw(Box::new(StdbrCep(cep::generate_for_region( - region.into_core(), - )))) +pub extern "C" fn stdbr_cep_create_for_region(region: u8) -> *mut StdbrCep { + let Some(region) = StdbrPostalRegion::core_from_raw(region) else { + return ptr::null_mut(); + }; + Box::into_raw(Box::new(StdbrCep(cep::generate_for_region(region)))) } -/// Generates a random CEP within the range of a given state. +/// Generates a CEP for a state, or `NULL` if `state` is invalid. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_cep_create_for_state(state: StdbrState) -> *mut StdbrCep { - Box::into_raw(Box::new(StdbrCep(cep::generate_for_state( - state.into_core(), - )))) +pub extern "C" fn stdbr_cep_create_for_state(state: u8) -> *mut StdbrCep { + let Some(state) = StdbrState::core_from_raw(state) else { + return ptr::null_mut(); + }; + Box::into_raw(Box::new(StdbrCep(cep::generate_for_state(state)))) } /// Destroys a CEP handle. `NULL`-safe. @@ -145,11 +170,11 @@ pub unsafe extern "C" fn stdbr_cep_masked(cep: *const StdbrCep) -> *mut c_char { to_c_string(unsafe { &*cep }.0.masked()) } -/// Returns the postal region. +/// Returns the postal region, or `STDBR_POSTAL_REGION_INVALID` when `cep` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_cep_postal_region(cep: *const StdbrCep) -> StdbrPostalRegion { if cep.is_null() { - return StdbrPostalRegion::GranSaoPaulo; + return StdbrPostalRegion::Invalid; } StdbrPostalRegion::from_core(unsafe { &*cep }.0.postal_region()) } diff --git a/bindings/ffi-c/src/cnpj.rs b/bindings/ffi-c/src/cnpj.rs index d6e9c75..9adca61 100644 --- a/bindings/ffi-c/src/cnpj.rs +++ b/bindings/ffi-c/src/cnpj.rs @@ -11,13 +11,16 @@ use crate::{cstr_to_str, to_c_string}; pub enum StdbrCnpjKind { Numeric = 0, Alphanumeric = 1, + /// Sentinel returned when a CNPJ kind cannot be read. + Invalid = 255, } impl StdbrCnpjKind { - fn into_core(self) -> cnpj::CnpjKind { - match self as u8 { - 0 => cnpj::CnpjKind::Numeric, - _ => cnpj::CnpjKind::Alphanumeric, + fn core_from_raw(value: u8) -> Option { + match value { + 0 => Some(cnpj::CnpjKind::Numeric), + 1 => Some(cnpj::CnpjKind::Alphanumeric), + _ => None, } } @@ -35,6 +38,8 @@ impl StdbrCnpjKind { pub enum StdbrEstablishmentType { Matriz = 0, Filial = 1, + /// Sentinel returned when an establishment type cannot be read. + Invalid = 255, } impl StdbrEstablishmentType { @@ -104,16 +109,22 @@ pub unsafe extern "C" fn stdbr_cnpj_parse( } } -/// Generates a random valid CNPJ. +/// Generates a random valid CNPJ, or `NULL` if `kind` is invalid. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_cnpj_create(kind: StdbrCnpjKind) -> *mut StdbrCnpj { - Box::into_raw(Box::new(StdbrCnpj(cnpj::generate_cnpj(kind.into_core())))) +pub extern "C" fn stdbr_cnpj_create(kind: u8) -> *mut StdbrCnpj { + let Some(kind) = StdbrCnpjKind::core_from_raw(kind) else { + return ptr::null_mut(); + }; + Box::into_raw(Box::new(StdbrCnpj(cnpj::generate_cnpj(kind)))) } -/// Generates a random valid CNPJ with ordem "0001" (Matriz). +/// Generates a Matriz CNPJ, or `NULL` if `kind` is invalid. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_cnpj_create_matriz(kind: StdbrCnpjKind) -> *mut StdbrCnpj { - Box::into_raw(Box::new(StdbrCnpj(cnpj::generate_matriz(kind.into_core())))) +pub extern "C" fn stdbr_cnpj_create_matriz(kind: u8) -> *mut StdbrCnpj { + let Some(kind) = StdbrCnpjKind::core_from_raw(kind) else { + return ptr::null_mut(); + }; + Box::into_raw(Box::new(StdbrCnpj(cnpj::generate_matriz(kind)))) } /// Destroys a CNPJ handle. `NULL`-safe. @@ -151,37 +162,42 @@ pub unsafe extern "C" fn stdbr_cnpj_masked(cnpj: *const StdbrCnpj) -> *mut c_cha to_c_string(unsafe { &*cnpj }.0.masked()) } -/// Returns the CNPJ kind (numeric or alphanumeric). +/// Returns the CNPJ kind, or `STDBR_CNPJ_KIND_INVALID` when `cnpj` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_cnpj_kind(cnpj: *const StdbrCnpj) -> StdbrCnpjKind { if cnpj.is_null() { - return StdbrCnpjKind::Numeric; + return StdbrCnpjKind::Invalid; } StdbrCnpjKind::from_core(unsafe { &*cnpj }.0.kind()) } -/// Returns the establishment type (Matriz or Filial). +/// Returns the establishment type, or `STDBR_ESTABLISHMENT_TYPE_INVALID` when `cnpj` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_cnpj_establishment_type( cnpj: *const StdbrCnpj, ) -> StdbrEstablishmentType { if cnpj.is_null() { - return StdbrEstablishmentType::Matriz; + return StdbrEstablishmentType::Invalid; } StdbrEstablishmentType::from_core(unsafe { &*cnpj }.0.establishment_type()) } -/// Writes the two check digits to `*d1` and `*d2`. +/// Writes both check digits and returns `true`; returns `false` for any `NULL` pointer. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_cnpj_check_digits(cnpj: *const StdbrCnpj, d1: *mut u8, d2: *mut u8) { +pub unsafe extern "C" fn stdbr_cnpj_check_digits( + cnpj: *const StdbrCnpj, + d1: *mut u8, + d2: *mut u8, +) -> bool { if cnpj.is_null() || d1.is_null() || d2.is_null() { - return; + return false; } let (a, b) = unsafe { &*cnpj }.0.check_digits(); unsafe { *d1 = a; *d2 = b; } + true } /// Lenient validation strips non-alphanumeric chars before checking. @@ -202,10 +218,12 @@ pub unsafe extern "C" fn stdbr_cnpj_is_valid_strict(raw: *const c_char) -> Stdbr } } -/// Random valid CNPJ as 14-character string. Caller frees with `stdbr_free`. +/// Returns a random CNPJ string, or `NULL` if `kind` is invalid. Caller frees with `stdbr_free`. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_cnpj_generate(kind: StdbrCnpjKind) -> *mut c_char { - to_c_string(cnpj::generate(kind.into_core())) +pub extern "C" fn stdbr_cnpj_generate(kind: u8) -> *mut c_char { + StdbrCnpjKind::core_from_raw(kind) + .map(cnpj::generate) + .map_or(ptr::null_mut(), to_c_string) } /// Formats as `XX.XXX.XXX/XXXX-DD`, or `NULL` if invalid. Caller frees with `stdbr_free`. diff --git a/bindings/ffi-c/src/cpf.rs b/bindings/ffi-c/src/cpf.rs index e36dadd..ca43946 100644 --- a/bindings/ffi-c/src/cpf.rs +++ b/bindings/ffi-c/src/cpf.rs @@ -19,6 +19,8 @@ pub enum StdbrFiscalRegion { EsRj = 7, Sp = 8, PrSc = 9, + /// Sentinel returned when a fiscal region cannot be read. + Invalid = 255, } impl StdbrFiscalRegion { @@ -27,8 +29,13 @@ impl StdbrFiscalRegion { unsafe { core::mem::transmute::(r as u8) } } - fn into_core(self) -> FiscalRegion { - unsafe { core::mem::transmute::(self as u8) } + fn core_from_raw(value: u8) -> Option { + if value <= 9 { + // SAFETY: FiscalRegion has exactly the discriminants 0..=9. + Some(unsafe { core::mem::transmute::(value) }) + } else { + None + } } } @@ -96,12 +103,13 @@ pub extern "C" fn stdbr_cpf_create() -> *mut StdbrCpf { Box::into_raw(Box::new(StdbrCpf(cpf::generate_cpf()))) } -/// Generates a random valid CPF for a fiscal region. +/// Generates a random valid CPF for a fiscal region, or `NULL` if `region` is invalid. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_cpf_create_for_region(region: StdbrFiscalRegion) -> *mut StdbrCpf { - Box::into_raw(Box::new(StdbrCpf(cpf::generate_for_region( - region.into_core(), - )))) +pub extern "C" fn stdbr_cpf_create_for_region(region: u8) -> *mut StdbrCpf { + let Some(region) = StdbrFiscalRegion::core_from_raw(region) else { + return ptr::null_mut(); + }; + Box::into_raw(Box::new(StdbrCpf(cpf::generate_for_region(region)))) } /// Destroys a CPF handle. `NULL`-safe. @@ -139,26 +147,31 @@ pub unsafe extern "C" fn stdbr_cpf_masked(cpf: *const StdbrCpf) -> *mut c_char { to_c_string(unsafe { &*cpf }.0.masked()) } -/// Returns the fiscal region. +/// Returns the fiscal region, or `STDBR_FISCAL_REGION_INVALID` when `cpf` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_cpf_fiscal_region(cpf: *const StdbrCpf) -> StdbrFiscalRegion { if cpf.is_null() { - return StdbrFiscalRegion::Rs; + return StdbrFiscalRegion::Invalid; } StdbrFiscalRegion::from_core(unsafe { &*cpf }.0.fiscal_region()) } -/// Writes the two check digits to `*d1` and `*d2`. +/// Writes both check digits and returns `true`; returns `false` for any `NULL` pointer. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_cpf_check_digits(cpf: *const StdbrCpf, d1: *mut u8, d2: *mut u8) { +pub unsafe extern "C" fn stdbr_cpf_check_digits( + cpf: *const StdbrCpf, + d1: *mut u8, + d2: *mut u8, +) -> bool { if cpf.is_null() || d1.is_null() || d2.is_null() { - return; + return false; } let (a, b) = unsafe { &*cpf }.0.check_digits(); unsafe { *d1 = a; *d2 = b; } + true } /// Lenient validation strips non-digits before checking. diff --git a/bindings/ffi-c/src/municipio.rs b/bindings/ffi-c/src/municipio.rs index 8e7efeb..265d165 100644 --- a/bindings/ffi-c/src/municipio.rs +++ b/bindings/ffi-c/src/municipio.rs @@ -13,8 +13,7 @@ pub struct StdbrMunicipioList { items: Vec<&'static core_mun::Municipio>, } -/// Find a municipality by its IBGE code. Returns `NULL` if not found. -/// Caller frees with `stdbr_municipio_destroy`. +/// Finds a municipio, or `NULL` if absent. Caller destroys it with `stdbr_municipio_destroy`. #[unsafe(no_mangle)] pub extern "C" fn stdbr_municipio_from_ibge_code(code: u32) -> *mut StdbrMunicipio { core_mun::Municipio::from_ibge_code(code).map_or(ptr::null_mut(), |m| { @@ -22,12 +21,14 @@ pub extern "C" fn stdbr_municipio_from_ibge_code(code: u32) -> *mut StdbrMunicip }) } -/// Get the capital of a given state. -/// Caller frees with `stdbr_municipio_destroy`. +/// Gets a capital, or `NULL` for an invalid state. Caller destroys it with `stdbr_municipio_destroy`. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_municipio_capital_of(state: StdbrState) -> *mut StdbrMunicipio { +pub extern "C" fn stdbr_municipio_capital_of(state: u8) -> *mut StdbrMunicipio { + let Some(state) = StdbrState::core_from_raw(state) else { + return ptr::null_mut(); + }; Box::into_raw(Box::new(StdbrMunicipio(core_mun::Municipio::capital_of( - state.into_core(), + state, )))) } @@ -39,7 +40,7 @@ pub unsafe extern "C" fn stdbr_municipio_destroy(m: *mut StdbrMunicipio) { } } -/// Returns the IBGE code of a municipio. +/// Returns the IBGE code, or the invalid code 0 when `m` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_municipio_ibge_code(m: *const StdbrMunicipio) -> u32 { if m.is_null() { @@ -57,16 +58,16 @@ pub unsafe extern "C" fn stdbr_municipio_name(m: *const StdbrMunicipio) -> *mut to_c_string(unsafe { &*m }.0.name.into()) } -/// Returns the state of a municipio. +/// Returns the state, or `STDBR_STATE_INVALID` when `m` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_municipio_state(m: *const StdbrMunicipio) -> StdbrState { if m.is_null() { - return StdbrState::AC; + return StdbrState::Invalid; } StdbrState::from_core(unsafe { &*m }.0.state) } -/// Returns whether a municipio is a state capital. +/// Returns whether a municipio is a capital; returns `false` when `m` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_municipio_is_capital(m: *const StdbrMunicipio) -> bool { if m.is_null() { @@ -84,18 +85,17 @@ pub extern "C" fn stdbr_municipio_count() -> u32 { // --- List API --- -/// Returns all municipalities in a given state as a list. -/// Caller frees with `stdbr_municipio_list_destroy`. +/// Returns a state list, or `NULL` for invalid state. Caller uses `stdbr_municipio_list_destroy`. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_municipio_by_state(state: StdbrState) -> *mut StdbrMunicipioList { - let items = core_mun::Municipio::by_state(state.into_core()) - .iter() - .collect(); +pub extern "C" fn stdbr_municipio_by_state(state: u8) -> *mut StdbrMunicipioList { + let Some(state) = StdbrState::core_from_raw(state) else { + return ptr::null_mut(); + }; + let items = core_mun::Municipio::by_state(state).iter().collect(); Box::into_raw(Box::new(StdbrMunicipioList { items })) } -/// Searches municipalities by name (case-insensitive substring match). -/// Caller frees with `stdbr_municipio_list_destroy`. +/// Searches by name, or returns `NULL` for a null/invalid query. Caller destroys the list with `stdbr_municipio_list_destroy`. /// /// # Safety /// `query` must be a valid null-terminated UTF-8 string. @@ -110,11 +110,11 @@ pub unsafe extern "C" fn stdbr_municipio_search_by_name( Box::into_raw(Box::new(StdbrMunicipioList { items })) } -/// Returns the number of items in a municipio list. +/// Returns the item count, or `UINT32_MAX` when `list` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_municipio_list_count(list: *const StdbrMunicipioList) -> u32 { if list.is_null() { - return 0; + return u32::MAX; } #[allow(clippy::cast_possible_truncation)] { @@ -122,9 +122,7 @@ pub unsafe extern "C" fn stdbr_municipio_list_count(list: *const StdbrMunicipioL } } -/// Returns a municipio from the list at the given index. -/// The returned pointer is valid as long as the list is alive. Do NOT free it. -/// Returns `NULL` if out of bounds. +/// Returns an independently owned municipio, or `NULL` for a null list/out-of-range index; destroy it with `stdbr_municipio_destroy`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_municipio_list_get( list: *const StdbrMunicipioList, diff --git a/bindings/ffi-c/src/rg.rs b/bindings/ffi-c/src/rg.rs index 23fcf75..83ca00e 100644 --- a/bindings/ffi-c/src/rg.rs +++ b/bindings/ffi-c/src/rg.rs @@ -15,6 +15,7 @@ pub enum StdbrRgError { InvalidFormat = 3, InvalidCheckDigit = 4, UnsupportedUfForGeneration = 5, + InvalidUf = 6, } impl StdbrRgError { @@ -31,16 +32,22 @@ impl StdbrRgError { pub struct StdbrRg(rg::Rg); -/// Parses an RG string for the given UF. Returns `NULL` on failure. +/// Parses an RG; invalid `uf` returns `NULL` and `STDBR_RG_ERROR_INVALID_UF`. /// /// # Safety /// `raw` must be a valid null-terminated UTF-8 string. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_rg_parse( raw: *const c_char, - uf: StdbrState, + uf: u8, err: *mut StdbrRgError, ) -> *mut StdbrRg { + let Some(uf) = StdbrState::core_from_raw(uf) else { + if !err.is_null() { + unsafe { *err = StdbrRgError::InvalidUf }; + } + return ptr::null_mut(); + }; let Some(s) = (unsafe { cstr_to_str(raw) }) else { if !err.is_null() { unsafe { *err = StdbrRgError::InvalidLength }; @@ -48,7 +55,7 @@ pub unsafe extern "C" fn stdbr_rg_parse( return ptr::null_mut(); }; - match rg::parse_strict(s, uf.into_core()) { + match rg::parse_strict(s, uf) { Result::Ok(r) => { if !err.is_null() { unsafe { *err = StdbrRgError::Ok }; @@ -64,13 +71,16 @@ pub unsafe extern "C" fn stdbr_rg_parse( } } -/// Generates a random valid RG for the given UF (currently SP only). +/// Creates an RG (currently SP only); invalid `uf` returns `NULL` and `STDBR_RG_ERROR_INVALID_UF`. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_rg_create_for_uf( - uf: StdbrState, - err: *mut StdbrRgError, -) -> *mut StdbrRg { - match rg::generate(uf.into_core()) { +pub unsafe extern "C" fn stdbr_rg_create_for_uf(uf: u8, err: *mut StdbrRgError) -> *mut StdbrRg { + let Some(uf) = StdbrState::core_from_raw(uf) else { + if !err.is_null() { + unsafe { *err = StdbrRgError::InvalidUf }; + } + return ptr::null_mut(); + }; + match rg::generate(uf) { Result::Ok(r) => { if !err.is_null() { unsafe { *err = StdbrRgError::Ok }; @@ -112,11 +122,11 @@ pub unsafe extern "C" fn stdbr_rg_formatted(rg: *const StdbrRg) -> *mut c_char { to_c_string(unsafe { &*rg }.0.formatted()) } -/// Returns the issuing UF. +/// Returns the issuing UF, or `STDBR_STATE_INVALID` when `rg` is `NULL`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_rg_uf(rg: *const StdbrRg) -> StdbrState { if rg.is_null() { - return StdbrState::AC; + return StdbrState::Invalid; } StdbrState::from_core(unsafe { &*rg }.0.uf()) } @@ -137,66 +147,74 @@ pub unsafe extern "C" fn stdbr_rg_check_digit(rg: *const StdbrRg, out: *mut u8) } } -/// Lenient validation strips separators before checking. +/// Lenient validation strips separators; returns `false` for an invalid `uf`. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_rg_is_valid(raw: *const c_char, uf: StdbrState) -> bool { +pub unsafe extern "C" fn stdbr_rg_is_valid(raw: *const c_char, uf: u8) -> bool { + let Some(uf) = StdbrState::core_from_raw(uf) else { + return false; + }; let Some(s) = (unsafe { cstr_to_str(raw) }) else { return false; }; - rg::is_valid(s, uf.into_core()) + rg::is_valid(s, uf) } -/// Strict validation. Returns a `StdbrRgError` code. +/// Strict validation; returns `STDBR_RG_ERROR_INVALID_UF` for an invalid `uf`. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_rg_is_valid_strict( - raw: *const c_char, - uf: StdbrState, -) -> StdbrRgError { +pub unsafe extern "C" fn stdbr_rg_is_valid_strict(raw: *const c_char, uf: u8) -> StdbrRgError { + let Some(uf) = StdbrState::core_from_raw(uf) else { + return StdbrRgError::InvalidUf; + }; let Some(s) = (unsafe { cstr_to_str(raw) }) else { return StdbrRgError::InvalidLength; }; - match rg::is_valid_strict(s, uf.into_core()) { + match rg::is_valid_strict(s, uf) { Result::Ok(()) => StdbrRgError::Ok, Err(ref e) => StdbrRgError::from_core(e), } } -/// Formats per the UF mask. Returns `NULL` if length is wrong. +/// Formats per the UF mask; returns `NULL` for invalid input or `uf`. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_rg_format(raw: *const c_char, uf: StdbrState) -> *mut c_char { +pub unsafe extern "C" fn stdbr_rg_format(raw: *const c_char, uf: u8) -> *mut c_char { + let Some(uf) = StdbrState::core_from_raw(uf) else { + return ptr::null_mut(); + }; let Some(s) = (unsafe { cstr_to_str(raw) }) else { return ptr::null_mut(); }; - rg::format_rg(s, uf.into_core()).map_or(ptr::null_mut(), to_c_string) + rg::format_rg(s, uf).map_or(ptr::null_mut(), to_c_string) } -/// Strips separators per UF rules. Caller frees with `stdbr_free`. +/// Strips separators, or returns `NULL` for invalid input/`uf`. Caller frees with `stdbr_free`. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_rg_remove_symbols( - raw: *const c_char, - uf: StdbrState, -) -> *mut c_char { +pub unsafe extern "C" fn stdbr_rg_remove_symbols(raw: *const c_char, uf: u8) -> *mut c_char { + let Some(uf) = StdbrState::core_from_raw(uf) else { + return ptr::null_mut(); + }; let Some(s) = (unsafe { cstr_to_str(raw) }) else { return ptr::null_mut(); }; - to_c_string(rg::remove_symbols(s, uf.into_core())) + to_c_string(rg::remove_symbols(s, uf)) } -/// SP-only: compute the check digit. Returns `true` and writes to `*out` -/// (10 = `'X'` terminator). Returns `false` for non-SP or wrong length. +/// SP-only: writes the check digit and returns `true`; returns `false` for invalid input, pointer, or `uf`. #[unsafe(no_mangle)] pub unsafe extern "C" fn stdbr_rg_compute_check_digit( base: *const c_char, - uf: StdbrState, + uf: u8, out: *mut u8, ) -> bool { if out.is_null() { return false; } + let Some(uf) = StdbrState::core_from_raw(uf) else { + return false; + }; let Some(s) = (unsafe { cstr_to_str(base) }) else { return false; }; - match rg::compute_check_digit(s, uf.into_core()) { + match rg::compute_check_digit(s, uf) { Some(d) => { unsafe { *out = d }; true @@ -205,11 +223,16 @@ pub unsafe extern "C" fn stdbr_rg_compute_check_digit( } } -/// Random valid RG for the given UF. Returns `NULL` on unsupported UF. -/// Caller frees with `stdbr_free`. +/// Generates an RG string; invalid `uf` returns `NULL` and `STDBR_RG_ERROR_INVALID_UF`. Caller frees with `stdbr_free`. #[unsafe(no_mangle)] -pub unsafe extern "C" fn stdbr_rg_generate(uf: StdbrState, err: *mut StdbrRgError) -> *mut c_char { - match rg::generate(uf.into_core()) { +pub unsafe extern "C" fn stdbr_rg_generate(uf: u8, err: *mut StdbrRgError) -> *mut c_char { + let Some(uf) = StdbrState::core_from_raw(uf) else { + if !err.is_null() { + unsafe { *err = StdbrRgError::InvalidUf }; + } + return ptr::null_mut(); + }; + match rg::generate(uf) { Result::Ok(r) => { if !err.is_null() { unsafe { *err = StdbrRgError::Ok }; diff --git a/bindings/ffi-c/src/uf.rs b/bindings/ffi-c/src/uf.rs index 5a69dbc..aaf944e 100644 --- a/bindings/ffi-c/src/uf.rs +++ b/bindings/ffi-c/src/uf.rs @@ -36,12 +36,13 @@ pub enum StdbrState { SE = 24, SP = 25, TO = 26, + /// Sentinel returned when a state cannot be read. + Invalid = 255, } impl StdbrState { - pub(crate) fn into_core(self) -> core_uf::State { - // SAFETY: both enums are repr(u8) 0..=26 with same variant order. - unsafe { core::mem::transmute(self as u8) } + pub(crate) fn core_from_raw(value: u8) -> Option { + core_uf::ALL.get(value as usize).copied() } pub(crate) fn from_core(s: core_uf::State) -> Self { @@ -59,6 +60,8 @@ pub enum StdbrRegion { CentroOeste = 2, Sudeste = 3, Sul = 4, + /// Sentinel returned for an invalid state. + Invalid = 255, } impl StdbrRegion { @@ -68,22 +71,27 @@ impl StdbrRegion { } } -/// Returns the two-letter abbreviation of a state. Caller frees with `stdbr_free`. +/// Returns the two-letter abbreviation, or `NULL` for an invalid state. Caller frees with `stdbr_free`. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_state_abbreviation(state: StdbrState) -> *mut c_char { - to_c_string(state.into_core().abbreviation().into()) +pub extern "C" fn stdbr_state_abbreviation(state: u8) -> *mut c_char { + StdbrState::core_from_raw(state).map_or(ptr::null_mut(), |state| { + to_c_string(state.abbreviation().into()) + }) } -/// Returns the full name of a state. Caller frees with `stdbr_free`. +/// Returns the full name, or `NULL` for an invalid state. Caller frees with `stdbr_free`. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_state_name(state: StdbrState) -> *mut c_char { - to_c_string(state.into_core().name().into()) +pub extern "C" fn stdbr_state_name(state: u8) -> *mut c_char { + StdbrState::core_from_raw(state) + .map_or(ptr::null_mut(), |state| to_c_string(state.name().into())) } -/// Returns the geographic region of a state. +/// Returns the geographic region, or `STDBR_REGION_INVALID` for an invalid state. #[unsafe(no_mangle)] -pub extern "C" fn stdbr_state_region(state: StdbrState) -> StdbrRegion { - StdbrRegion::from_core(state.into_core().region()) +pub extern "C" fn stdbr_state_region(state: u8) -> StdbrRegion { + StdbrState::core_from_raw(state).map_or(StdbrRegion::Invalid, |state| { + StdbrRegion::from_core(state.region()) + }) } /// Parse a state from its two-letter abbreviation (case-insensitive). @@ -112,8 +120,7 @@ pub unsafe extern "C" fn stdbr_state_from_abbreviation( } } -/// Writes all 27 states to `buf`. `buf` must point to an array of at least 27 elements. -/// Returns the number of states written (always 27). +/// Writes all 27 states to `buf`; returns 27 on success or 0 when `buf` is `NULL`. /// /// # Safety /// `buf` must point to a valid array of at least 27 `StdbrState` elements. diff --git a/bindings/ffi-c/test_parity.c b/bindings/ffi-c/test_parity.c index a56e6ee..68fcdb9 100644 --- a/bindings/ffi-c/test_parity.c +++ b/bindings/ffi-c/test_parity.c @@ -121,7 +121,7 @@ static void test_cpf(cJSON *cpf_json) { ASSERT_INT_EQ(stdbr_cpf_fiscal_region(cpf), fiscal_region, "cpf fiscal_region"); uint8_t d1, d2; - stdbr_cpf_check_digits(cpf, &d1, &d2); + ASSERT_BOOL_EQ(stdbr_cpf_check_digits(cpf, &d1, &d2), true, "cpf check_digits status"); ASSERT_INT_EQ(d1, cd0, "cpf check_digit[0]"); ASSERT_INT_EQ(d2, cd1, "cpf check_digit[1]"); @@ -232,7 +232,7 @@ static void test_cnpj(cJSON *cnpj_json) { ASSERT_INT_EQ(stdbr_cnpj_establishment_type(cnpj), est_type, "cnpj establishment_type"); uint8_t d1, d2; - stdbr_cnpj_check_digits(cnpj, &d1, &d2); + ASSERT_BOOL_EQ(stdbr_cnpj_check_digits(cnpj, &d1, &d2), true, "cnpj check_digits status"); ASSERT_INT_EQ(d1, cd0, "cnpj check_digit[0]"); ASSERT_INT_EQ(d2, cd1, "cnpj check_digit[1]"); @@ -732,6 +732,87 @@ static void test_municipio(cJSON *mun_json) { } } +static void test_ffi_hardening(void) { + printf(" FFI hardening...\n"); + + const uint8_t invalid = UINT8_MAX - 1; + ASSERT_NULL(stdbr_state_abbreviation(invalid), "invalid state abbreviation"); + ASSERT_NULL(stdbr_state_name(invalid), "invalid state name"); + ASSERT_INT_EQ(stdbr_state_region(invalid), STDBR_REGION_INVALID, "invalid state region"); + + ASSERT_NULL(stdbr_cpf_create_for_region(invalid), "invalid CPF region"); + ASSERT_NULL(stdbr_cnpj_create(invalid), "invalid CNPJ kind create"); + ASSERT_NULL(stdbr_cnpj_create_matriz(invalid), "invalid CNPJ kind matriz"); + ASSERT_NULL(stdbr_cnpj_generate(invalid), "invalid CNPJ kind generate"); + ASSERT_NULL(stdbr_cep_create_for_region(invalid), "invalid CEP region"); + ASSERT_NULL(stdbr_cep_create_for_state(invalid), "invalid CEP state"); + ASSERT_NULL(stdbr_municipio_capital_of(invalid), "invalid capital state"); + ASSERT_NULL(stdbr_municipio_by_state(invalid), "invalid municipio state"); + + StdbrRgError rg_err = STDBR_RG_ERROR_OK; + ASSERT_NULL(stdbr_rg_parse("12", invalid, &rg_err), "invalid RG parse state"); + ASSERT_INT_EQ(rg_err, STDBR_RG_ERROR_INVALID_UF, "invalid RG parse error"); + ASSERT_NULL(stdbr_rg_create_for_uf(invalid, &rg_err), "invalid RG create state"); + ASSERT_INT_EQ(rg_err, STDBR_RG_ERROR_INVALID_UF, "invalid RG create error"); + ASSERT_BOOL_EQ(stdbr_rg_is_valid("12", invalid), false, "invalid RG validation state"); + ASSERT_INT_EQ(stdbr_rg_is_valid_strict("12", invalid), STDBR_RG_ERROR_INVALID_UF, + "invalid RG strict state"); + ASSERT_NULL(stdbr_rg_format("12", invalid), "invalid RG format state"); + ASSERT_NULL(stdbr_rg_remove_symbols("12", invalid), "invalid RG remove state"); + ASSERT_BOOL_EQ(stdbr_rg_compute_check_digit("12", invalid, &(uint8_t){0}), false, + "invalid RG check digit state"); + ASSERT_NULL(stdbr_rg_generate(invalid, &rg_err), "invalid RG generate state"); + ASSERT_INT_EQ(rg_err, STDBR_RG_ERROR_INVALID_UF, "invalid RG generate error"); + + ASSERT_NULL(stdbr_cpf_as_str(NULL), "NULL CPF string"); + ASSERT_INT_EQ(stdbr_cpf_fiscal_region(NULL), STDBR_FISCAL_REGION_INVALID, + "NULL CPF fiscal region"); + ASSERT_BOOL_EQ(stdbr_cpf_check_digits(NULL, &(uint8_t){0}, &(uint8_t){0}), false, + "NULL CPF check digits"); + ASSERT_INT_EQ(stdbr_cnpj_kind(NULL), STDBR_CNPJ_KIND_INVALID, "NULL CNPJ kind"); + ASSERT_INT_EQ(stdbr_cnpj_establishment_type(NULL), STDBR_ESTABLISHMENT_TYPE_INVALID, + "NULL CNPJ establishment type"); + ASSERT_BOOL_EQ(stdbr_cnpj_check_digits(NULL, &(uint8_t){0}, &(uint8_t){0}), false, + "NULL CNPJ check digits"); + ASSERT_INT_EQ(stdbr_cep_postal_region(NULL), STDBR_POSTAL_REGION_INVALID, + "NULL CEP postal region"); + ASSERT_BOOL_EQ(stdbr_cep_state(NULL, &(StdbrState){0}), false, "NULL CEP state"); + ASSERT_INT_EQ(stdbr_rg_uf(NULL), STDBR_STATE_INVALID, "NULL RG state"); + ASSERT_BOOL_EQ(stdbr_rg_check_digit(NULL, &(uint8_t){0}), false, "NULL RG check digit"); + ASSERT_INT_EQ(stdbr_municipio_ibge_code(NULL), 0, "NULL municipio IBGE code"); + ASSERT_INT_EQ(stdbr_municipio_state(NULL), STDBR_STATE_INVALID, "NULL municipio state"); + ASSERT_INT_EQ(stdbr_municipio_list_count(NULL), UINT32_MAX, "NULL municipio list count"); + ASSERT_NULL(stdbr_municipio_list_get(NULL, 0), "NULL municipio list get"); + ASSERT_NULL(stdbr_municipio_search_by_name(NULL), "NULL municipio search"); + ASSERT_BOOL_EQ(stdbr_state_from_abbreviation(NULL, &(StdbrState){0}), false, + "NULL state abbreviation input"); + ASSERT_BOOL_EQ(stdbr_state_from_abbreviation("SP", NULL), false, "NULL state output"); + ASSERT_INT_EQ(stdbr_all_states(NULL), 0, "NULL all states output"); + + StdbrMunicipioList *list = stdbr_municipio_by_state(STDBR_STATE_SP); + ASSERT_NOT_NULL(list, "ownership municipio list"); + if (list) { + uint32_t count = stdbr_municipio_list_count(list); + ASSERT_NULL(stdbr_municipio_list_get(list, count), "municipio list out of range"); + StdbrMunicipio *owned = stdbr_municipio_list_get(list, 0); + ASSERT_NOT_NULL(owned, "owned municipio from list"); + stdbr_municipio_list_destroy(list); + if (owned) { + ASSERT_BOOL_EQ(stdbr_municipio_ibge_code(owned) != 0, true, + "owned municipio survives list"); + stdbr_municipio_destroy(owned); + } + } + + stdbr_free(NULL); + stdbr_cpf_destroy(NULL); + stdbr_cnpj_destroy(NULL); + stdbr_cep_destroy(NULL); + stdbr_rg_destroy(NULL); + stdbr_municipio_destroy(NULL); + stdbr_municipio_list_destroy(NULL); +} + int main(void) { const char *golden_path = getenv("GOLDEN_JSON"); if (!golden_path) { @@ -773,6 +854,7 @@ int main(void) { test_rg(cJSON_GetObjectItem(golden, "rg")); test_uf(cJSON_GetObjectItem(golden, "uf")); test_municipio(cJSON_GetObjectItem(golden, "municipio")); + test_ffi_hardening(); cJSON_Delete(golden); diff --git a/bindings/nodejs/.gitignore b/bindings/nodejs/.gitignore new file mode 100644 index 0000000..587fb8e --- /dev/null +++ b/bindings/nodejs/.gitignore @@ -0,0 +1 @@ +!index.d.ts diff --git a/bindings/nodejs/BUILD.bazel b/bindings/nodejs/BUILD.bazel index 72f225a..fcb67f8 100644 --- a/bindings/nodejs/BUILD.bazel +++ b/bindings/nodejs/BUILD.bazel @@ -1,7 +1,10 @@ -load("@rules_rust//rust:defs.bzl", "rust_shared_library") load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_shared_library") -exports_files(["Cargo.toml", "test_parity.js"] + glob(["src/**/*.rs"])) +exports_files([ + "Cargo.toml", + "tests/parity.mjs", +] + glob(["src/**/*.rs"])) cargo_build_script( name = "napi_build_script", @@ -13,13 +16,13 @@ rust_shared_library( name = "stdbr-napi", srcs = glob(["src/**/*.rs"]), crate_root = "src/lib.rs", + proc_macro_deps = ["@crates//:napi-derive"], + visibility = ["//visibility:public"], deps = [ + ":napi_build_script", "//core:stdbr-core", "@crates//:napi", - ":napi_build_script", ], - proc_macro_deps = ["@crates//:napi-derive"], - visibility = ["//visibility:public"], ) genrule( diff --git a/bindings/nodejs/index.d.ts b/bindings/nodejs/index.d.ts new file mode 100644 index 0000000..0829310 --- /dev/null +++ b/bindings/nodejs/index.d.ts @@ -0,0 +1,257 @@ +/* tslint:disable */ +/* eslint-disable */ + +/* auto-generated by NAPI-RS */ + +export const enum PostalRegion { + GranSaoPaulo = 0, + InteriorSaoPaulo = 1, + RjEs = 2, + Mg = 3, + BaSe = 4, + PeAlPbRn = 5, + CePiMaPaAmAcApRr = 6, + DfGoToMtMsRo = 7, + PrSc = 8, + Rs = 9 +} +/** Lenient CEP validation (strips non-digit characters first). */ +export declare function cepIsValid(cep: string): boolean +/** Strict CEP validation (accepts only `#####-###` or `########`). */ +export declare function cepIsValidStrict(cep: string): void +/** + * Format a CEP string as `#####-###`. + * Returns `null` if the input doesn't contain exactly 8 digits. + */ +export declare function cepFormat(cep: string): string | null +/** Remove all non-digit characters from a CEP string. */ +export declare function cepRemoveSymbols(cep: string): string +/** Generate a random valid CEP as an 8-digit string. */ +export declare function cepGenerate(): string +/** Generate a random CEP for a given postal region. */ +export declare function cepGenerateForRegion(region: PostalRegion): string +/** Generate a random CEP within the range of a given state. */ +export declare function cepGenerateForState(state: State): string +export const enum CnpjKind { + Numeric = 0, + Alphanumeric = 1 +} +export const enum EstablishmentType { + Matriz = 0, + Filial = 1 +} +/** Lenient CNPJ validation (strips non-alphanumeric characters first). */ +export declare function cnpjIsValid(cnpj: string): boolean +/** Strict CNPJ validation (accepts only `XX.XXX.XXX/XXXX-DD` or 14 raw characters). */ +export declare function cnpjIsValidStrict(cnpj: string): void +/** + * Format a CNPJ string as `XX.XXX.XXX/XXXX-DD`. + * Returns `null` if the input is not a valid 14-character CNPJ. + */ +export declare function cnpjFormat(cnpj: string): string | null +/** Remove all non-alphanumeric characters from a CNPJ string, uppercase. */ +export declare function cnpjRemoveSymbols(cnpj: string): string +/** Generate a random valid CNPJ as a 14-character string. */ +export declare function cnpjGenerate(kind: CnpjKind): string +/** + * Compute check digits for a 12-character CNPJ base. + * Returns `null` if the input is invalid. + */ +export declare function cnpjComputeCheckDigits(base: string): Array | null +export const enum FiscalRegion { + Rs = 0, + DfGoMsMtTo = 1, + AcAmApPaRoRr = 2, + CeMaPi = 3, + AlPbPeRn = 4, + BaSe = 5, + Mg = 6, + EsRj = 7, + Sp = 8, + PrSc = 9 +} +/** Lenient CPF validation (strips non-digit characters first). */ +export declare function cpfIsValid(cpf: string): boolean +/** Strict CPF validation (accepts only `###.###.###-##` or `###########`). */ +export declare function cpfIsValidStrict(cpf: string): void +/** + * Format a CPF string as `###.###.###-##`. + * Returns `null` if the input doesn't contain exactly 11 digits. + */ +export declare function cpfFormat(cpf: string): string | null +/** Remove all non-digit characters from a CPF string. */ +export declare function cpfRemoveSymbols(cpf: string): string +/** Generate a random valid CPF as an 11-digit string. */ +export declare function cpfGenerate(): string +/** + * Compute check digits for a 9-digit CPF base. + * Returns `null` if the input is invalid. + */ +export declare function cpfComputeCheckDigits(base: string): Array | null +/** Find a municipality by its IBGE code. */ +export declare function municipioFromIbgeCode(code: number): Municipio | null +/** Get the capital of a given state. */ +export declare function municipioCapitalOf(state: State): Municipio +/** Returns all municipalities in a given state. */ +export declare function municipiosByState(state: State): Array +/** Find municipalities whose name contains the given substring (case-insensitive). */ +export declare function municipioSearchByName(query: string): Array +/** Total number of municipalities. */ +export declare function municipioCount(): number +/** Lenient RG validation (strips symbols first). */ +export declare function rgIsValid(rg: string, uf: State): boolean +/** Strict RG validation (canonical mask or unformatted body only). */ +export declare function rgIsValidStrict(rg: string, uf: State): void +/** Format an RG with the per-UF mask. Returns `null` if length is wrong. */ +export declare function rgFormat(rg: string, uf: State): string | null +/** Strip separators. For SP, preserves a trailing 'X'. */ +export declare function rgRemoveSymbols(rg: string, uf: State): string +/** + * SP-only: compute the check digit for an 8-digit base. Returns 10 for the + * `'X'` terminator. `null` for non-SP UFs or wrong length. + */ +export declare function rgComputeCheckDigit(base: string, uf: State): number | null +/** Generate a random valid RG (unformatted body). Currently SP only. */ +export declare function rgGenerate(uf: State): string +export const enum Region { + Norte = 0, + Nordeste = 1, + CentroOeste = 2, + Sudeste = 3, + Sul = 4 +} +export const enum State { + AC = 0, + AL = 1, + AM = 2, + AP = 3, + BA = 4, + CE = 5, + DF = 6, + ES = 7, + GO = 8, + MA = 9, + MG = 10, + MS = 11, + MT = 12, + PA = 13, + PB = 14, + PE = 15, + PI = 16, + PR = 17, + RJ = 18, + RN = 19, + RO = 20, + RR = 21, + RS = 22, + SC = 23, + SE = 24, + SP = 25, + TO = 26 +} +/** Get the abbreviation of a state (e.g. "SP"). */ +export declare function stateAbbreviation(state: State): string +/** Get the full name of a state (e.g. "São Paulo"). */ +export declare function stateName(state: State): string +/** Get the geographic region of a state. */ +export declare function stateRegion(state: State): Region +/** Parse a state from its two-letter abbreviation (case-insensitive). */ +export declare function stateFromAbbreviation(abbr: string): State | null +/** Returns all 27 Brazilian states. */ +export declare function allStates(): Array +export declare class Cep { + /** Parse a CEP string (accepts `#####-###` or `########`). */ + static parse(raw: string): Cep + /** Generate a random valid CEP. */ + static generate(): Cep + /** Generate a random CEP for a given postal region. */ + static generateForRegion(region: PostalRegion): Cep + /** Generate a random CEP within the range of a given state. */ + static generateForState(state: State): Cep + /** Unformatted 8-digit string. */ + asStr(): string + /** Formatted as `#####-###`. */ + formatted(): string + /** Masked as `#####-***`. */ + masked(): string + /** Postal region derived from the 1st digit. */ + get postalRegion(): PostalRegion + /** State lookup by CEP range. */ + get state(): State | null +} +export declare class Cnpj { + /** Parse a CNPJ string (accepts `XX.XXX.XXX/XXXX-DD` or 14 raw characters). */ + static parse(raw: string): Cnpj + /** Generate a random valid CNPJ. */ + static generate(kind: CnpjKind): Cnpj + /** Generate a random valid CNPJ with ordem "0001" (Matriz). */ + static generateMatriz(kind: CnpjKind): Cnpj + /** Unformatted 14-character string. */ + asStr(): string + /** Formatted as `XX.XXX.XXX/XXXX-DD`. */ + formatted(): string + /** Masked as `XX.XXX.XXX/****-**`. */ + masked(): string + /** Root (positions 1-8): identifies the company. */ + raiz(): string + /** Order (positions 9-12): identifies the establishment. */ + ordem(): string + /** Whether the CNPJ is numeric or alphanumeric. */ + get kind(): CnpjKind + /** Whether this is Matriz or Filial. */ + get establishmentType(): EstablishmentType + /** The two check digits as `[d1, d2]`. */ + get checkDigits(): Array +} +export declare class Cpf { + /** Parse a CPF string (accepts `###.###.###-##` or `###########`). */ + static parse(raw: string): Cpf + /** Generate a random valid CPF. */ + static generate(): Cpf + /** Generate a random valid CPF for a specific fiscal region. */ + static generateForRegion(region: FiscalRegion): Cpf + /** Unformatted 11-digit string. */ + asStr(): string + /** Formatted as `###.###.###-##`. */ + formatted(): string + /** Masked as `XXX.***.***-XX`. */ + masked(): string + /** Fiscal region derived from the 9th digit. */ + get fiscalRegion(): FiscalRegion + /** The two check digits as `[d1, d2]`. */ + get checkDigits(): Array +} +export declare class Municipio { + /** IBGE 7-digit code. */ + get ibgeCode(): number + /** Municipality name. */ + get name(): string + /** State this municipality belongs to. */ + get state(): State + /** Whether this municipality is a state capital. */ + get isCapital(): boolean +} +export declare class Rg { + /** + * Parse an RG string for the given UF (accepts the canonical mask or + * unformatted body). + */ + static parse(raw: string, uf: State): Rg + /** Generate a random valid RG. Currently SP only; other UFs return an error. */ + static generate(uf: State): Rg + /** Unformatted body (digits, with optional trailing 'X' for SP). */ + asStr(): string + /** Formatted per the UF mask (or raw body if no mask is defined). */ + formatted(): string + /** Masked representation — first 2 digits visible, rest masked. */ + masked(): string + /** Body without check digit (SP: 8-digit base; others: full string). */ + body(): string + /** Issuing UF. */ + get uf(): State + /** + * Check digit (`Some(0..=9)` for digits, `Some(10)` for SP `'X'`, + * `null` for UFs without a verified algorithm). + */ + get checkDigit(): number | null +} diff --git a/bindings/nodejs/index.js b/bindings/nodejs/index.js new file mode 100644 index 0000000..777c9ea --- /dev/null +++ b/bindings/nodejs/index.js @@ -0,0 +1,360 @@ +/* tslint:disable */ +/* eslint-disable */ +/* prettier-ignore */ + +/* auto-generated by NAPI-RS */ + +const { existsSync, readFileSync } = require('fs') +const { join } = require('path') + +const { platform, arch } = process + +let nativeBinding = null +let localFileExisted = false +let loadError = null + +function isMusl() { + // For Node 10 + if (!process.report || typeof process.report.getReport !== 'function') { + try { + const lddPath = require('child_process').execSync('which ldd').toString().trim() + return readFileSync(lddPath, 'utf8').includes('musl') + } catch (e) { + return true + } + } else { + const { glibcVersionRuntime } = process.report.getReport().header + return !glibcVersionRuntime + } +} + +switch (platform) { + case 'android': + switch (arch) { + case 'arm64': + localFileExisted = existsSync(join(__dirname, 'stdbr.android-arm64.node')) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.android-arm64.node') + } else { + nativeBinding = require('@stdbr/stdbr-android-arm64') + } + } catch (e) { + loadError = e + } + break + case 'arm': + localFileExisted = existsSync(join(__dirname, 'stdbr.android-arm-eabi.node')) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.android-arm-eabi.node') + } else { + nativeBinding = require('@stdbr/stdbr-android-arm-eabi') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on Android ${arch}`) + } + break + case 'win32': + switch (arch) { + case 'x64': + localFileExisted = existsSync( + join(__dirname, 'stdbr.win32-x64-msvc.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.win32-x64-msvc.node') + } else { + nativeBinding = require('@stdbr/stdbr-win32-x64-msvc') + } + } catch (e) { + loadError = e + } + break + case 'ia32': + localFileExisted = existsSync( + join(__dirname, 'stdbr.win32-ia32-msvc.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.win32-ia32-msvc.node') + } else { + nativeBinding = require('@stdbr/stdbr-win32-ia32-msvc') + } + } catch (e) { + loadError = e + } + break + case 'arm64': + localFileExisted = existsSync( + join(__dirname, 'stdbr.win32-arm64-msvc.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.win32-arm64-msvc.node') + } else { + nativeBinding = require('@stdbr/stdbr-win32-arm64-msvc') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on Windows: ${arch}`) + } + break + case 'darwin': + localFileExisted = existsSync(join(__dirname, 'stdbr.darwin-universal.node')) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.darwin-universal.node') + } else { + nativeBinding = require('@stdbr/stdbr-darwin-universal') + } + break + } catch {} + switch (arch) { + case 'x64': + localFileExisted = existsSync(join(__dirname, 'stdbr.darwin-x64.node')) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.darwin-x64.node') + } else { + nativeBinding = require('@stdbr/stdbr-darwin-x64') + } + } catch (e) { + loadError = e + } + break + case 'arm64': + localFileExisted = existsSync( + join(__dirname, 'stdbr.darwin-arm64.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.darwin-arm64.node') + } else { + nativeBinding = require('@stdbr/stdbr-darwin-arm64') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on macOS: ${arch}`) + } + break + case 'freebsd': + if (arch !== 'x64') { + throw new Error(`Unsupported architecture on FreeBSD: ${arch}`) + } + localFileExisted = existsSync(join(__dirname, 'stdbr.freebsd-x64.node')) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.freebsd-x64.node') + } else { + nativeBinding = require('@stdbr/stdbr-freebsd-x64') + } + } catch (e) { + loadError = e + } + break + case 'linux': + switch (arch) { + case 'x64': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-x64-musl.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-x64-musl.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-x64-musl') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-x64-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-x64-gnu.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-x64-gnu') + } + } catch (e) { + loadError = e + } + } + break + case 'arm64': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-arm64-musl.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-arm64-musl.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-arm64-musl') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-arm64-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-arm64-gnu.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-arm64-gnu') + } + } catch (e) { + loadError = e + } + } + break + case 'arm': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-arm-musleabihf.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-arm-musleabihf.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-arm-musleabihf') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-arm-gnueabihf.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-arm-gnueabihf.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-arm-gnueabihf') + } + } catch (e) { + loadError = e + } + } + break + case 'riscv64': + if (isMusl()) { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-riscv64-musl.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-riscv64-musl.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-riscv64-musl') + } + } catch (e) { + loadError = e + } + } else { + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-riscv64-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-riscv64-gnu.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-riscv64-gnu') + } + } catch (e) { + loadError = e + } + } + break + case 's390x': + localFileExisted = existsSync( + join(__dirname, 'stdbr.linux-s390x-gnu.node') + ) + try { + if (localFileExisted) { + nativeBinding = require('./stdbr.linux-s390x-gnu.node') + } else { + nativeBinding = require('@stdbr/stdbr-linux-s390x-gnu') + } + } catch (e) { + loadError = e + } + break + default: + throw new Error(`Unsupported architecture on Linux: ${arch}`) + } + break + default: + throw new Error(`Unsupported OS: ${platform}, architecture: ${arch}`) +} + +if (!nativeBinding) { + if (loadError) { + throw loadError + } + throw new Error(`Failed to load native binding`) +} + +const { PostalRegion, Cep, cepIsValid, cepIsValidStrict, cepFormat, cepRemoveSymbols, cepGenerate, cepGenerateForRegion, cepGenerateForState, CnpjKind, EstablishmentType, Cnpj, cnpjIsValid, cnpjIsValidStrict, cnpjFormat, cnpjRemoveSymbols, cnpjGenerate, cnpjComputeCheckDigits, FiscalRegion, Cpf, cpfIsValid, cpfIsValidStrict, cpfFormat, cpfRemoveSymbols, cpfGenerate, cpfComputeCheckDigits, Municipio, municipioFromIbgeCode, municipioCapitalOf, municipiosByState, municipioSearchByName, municipioCount, Rg, rgIsValid, rgIsValidStrict, rgFormat, rgRemoveSymbols, rgComputeCheckDigit, rgGenerate, Region, State, stateAbbreviation, stateName, stateRegion, stateFromAbbreviation, allStates } = nativeBinding + +module.exports.PostalRegion = PostalRegion +module.exports.Cep = Cep +module.exports.cepIsValid = cepIsValid +module.exports.cepIsValidStrict = cepIsValidStrict +module.exports.cepFormat = cepFormat +module.exports.cepRemoveSymbols = cepRemoveSymbols +module.exports.cepGenerate = cepGenerate +module.exports.cepGenerateForRegion = cepGenerateForRegion +module.exports.cepGenerateForState = cepGenerateForState +module.exports.CnpjKind = CnpjKind +module.exports.EstablishmentType = EstablishmentType +module.exports.Cnpj = Cnpj +module.exports.cnpjIsValid = cnpjIsValid +module.exports.cnpjIsValidStrict = cnpjIsValidStrict +module.exports.cnpjFormat = cnpjFormat +module.exports.cnpjRemoveSymbols = cnpjRemoveSymbols +module.exports.cnpjGenerate = cnpjGenerate +module.exports.cnpjComputeCheckDigits = cnpjComputeCheckDigits +module.exports.FiscalRegion = FiscalRegion +module.exports.Cpf = Cpf +module.exports.cpfIsValid = cpfIsValid +module.exports.cpfIsValidStrict = cpfIsValidStrict +module.exports.cpfFormat = cpfFormat +module.exports.cpfRemoveSymbols = cpfRemoveSymbols +module.exports.cpfGenerate = cpfGenerate +module.exports.cpfComputeCheckDigits = cpfComputeCheckDigits +module.exports.Municipio = Municipio +module.exports.municipioFromIbgeCode = municipioFromIbgeCode +module.exports.municipioCapitalOf = municipioCapitalOf +module.exports.municipiosByState = municipiosByState +module.exports.municipioSearchByName = municipioSearchByName +module.exports.municipioCount = municipioCount +module.exports.Rg = Rg +module.exports.rgIsValid = rgIsValid +module.exports.rgIsValidStrict = rgIsValidStrict +module.exports.rgFormat = rgFormat +module.exports.rgRemoveSymbols = rgRemoveSymbols +module.exports.rgComputeCheckDigit = rgComputeCheckDigit +module.exports.rgGenerate = rgGenerate +module.exports.Region = Region +module.exports.State = State +module.exports.stateAbbreviation = stateAbbreviation +module.exports.stateName = stateName +module.exports.stateRegion = stateRegion +module.exports.stateFromAbbreviation = stateFromAbbreviation +module.exports.allStates = allStates diff --git a/bindings/nodejs/npm/darwin-arm64/package.json b/bindings/nodejs/npm/darwin-arm64/package.json index bda455d..36242e8 100644 --- a/bindings/nodejs/npm/darwin-arm64/package.json +++ b/bindings/nodejs/npm/darwin-arm64/package.json @@ -8,9 +8,9 @@ "arm64" ], "main": "stdbr.darwin-arm64.node", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=18.17.0" }, "publishConfig": { "access": "public" diff --git a/bindings/nodejs/npm/darwin-x64/package.json b/bindings/nodejs/npm/darwin-x64/package.json index 12919b8..b66ed4d 100644 --- a/bindings/nodejs/npm/darwin-x64/package.json +++ b/bindings/nodejs/npm/darwin-x64/package.json @@ -8,9 +8,9 @@ "x64" ], "main": "stdbr.darwin-x64.node", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=18.17.0" }, "publishConfig": { "access": "public" diff --git a/bindings/nodejs/npm/linux-arm64-gnu/package.json b/bindings/nodejs/npm/linux-arm64-gnu/package.json index a5b3646..c94163f 100644 --- a/bindings/nodejs/npm/linux-arm64-gnu/package.json +++ b/bindings/nodejs/npm/linux-arm64-gnu/package.json @@ -11,9 +11,9 @@ "glibc" ], "main": "stdbr.linux-arm64-gnu.node", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=18.17.0" }, "publishConfig": { "access": "public" diff --git a/bindings/nodejs/npm/linux-x64-gnu/package.json b/bindings/nodejs/npm/linux-x64-gnu/package.json index c173482..eb63b44 100644 --- a/bindings/nodejs/npm/linux-x64-gnu/package.json +++ b/bindings/nodejs/npm/linux-x64-gnu/package.json @@ -11,9 +11,9 @@ "glibc" ], "main": "stdbr.linux-x64-gnu.node", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=18.17.0" }, "publishConfig": { "access": "public" diff --git a/bindings/nodejs/npm/linux-x64-musl/package.json b/bindings/nodejs/npm/linux-x64-musl/package.json index e625913..1615f10 100644 --- a/bindings/nodejs/npm/linux-x64-musl/package.json +++ b/bindings/nodejs/npm/linux-x64-musl/package.json @@ -11,9 +11,9 @@ "musl" ], "main": "stdbr.linux-x64-musl.node", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=18.17.0" }, "publishConfig": { "access": "public" diff --git a/bindings/nodejs/npm/win32-x64-msvc/package.json b/bindings/nodejs/npm/win32-x64-msvc/package.json index 5c83fc7..b056937 100644 --- a/bindings/nodejs/npm/win32-x64-msvc/package.json +++ b/bindings/nodejs/npm/win32-x64-msvc/package.json @@ -8,9 +8,9 @@ "x64" ], "main": "stdbr.win32-x64-msvc.node", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "engines": { - "node": ">= 10" + "node": ">=18.17.0" }, "publishConfig": { "access": "public" diff --git a/bindings/nodejs/package-lock.json b/bindings/nodejs/package-lock.json index 364efa4..bb7d026 100644 --- a/bindings/nodejs/package-lock.json +++ b/bindings/nodejs/package-lock.json @@ -1,23 +1,26 @@ { "name": "@stdbr/stdbr", - "version": "0.1.0", + "version": "0.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@stdbr/stdbr", - "version": "0.1.0", - "license": "MIT OR Apache-2.0", + "version": "0.3.1", + "license": "Apache-2.0", "devDependencies": { - "@napi-rs/cli": "^2" + "@napi-rs/cli": "2.18.4" + }, + "engines": { + "node": ">=18.17.0" }, "optionalDependencies": { - "@stdbr/stdbr-darwin-arm64": "0.0.2", - "@stdbr/stdbr-darwin-x64": "0.0.2", - "@stdbr/stdbr-linux-arm64-gnu": "0.0.2", - "@stdbr/stdbr-linux-x64-gnu": "0.0.2", - "@stdbr/stdbr-linux-x64-musl": "0.0.2", - "@stdbr/stdbr-win32-x64-msvc": "0.0.2" + "@stdbr/stdbr-darwin-arm64": "0.3.1", + "@stdbr/stdbr-darwin-x64": "0.3.1", + "@stdbr/stdbr-linux-arm64-gnu": "0.3.1", + "@stdbr/stdbr-linux-x64-gnu": "0.3.1", + "@stdbr/stdbr-linux-x64-musl": "0.3.1", + "@stdbr/stdbr-win32-x64-msvc": "0.3.1" } }, "node_modules/@napi-rs/cli": { @@ -36,6 +39,111 @@ "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" } + }, + "node_modules/@stdbr/stdbr-darwin-arm64": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@stdbr/stdbr-darwin-arm64/-/stdbr-darwin-arm64-0.3.1.tgz", + "integrity": "sha512-jTrTcVxefeyMjkIZJ6j2KL8g7F+wtg9xbKSGbuRJepb07FNOO/WUgDhT3CluRhAxyGb1ePKGcMAkyZLcJN+57g==", + "cpu": [ + "arm64" + ], + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@stdbr/stdbr-darwin-x64": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@stdbr/stdbr-darwin-x64/-/stdbr-darwin-x64-0.3.1.tgz", + "integrity": "sha512-zF904HGuk/nUFk/cSUyLc8O0xB8EbyHIXCU6fB2g66Egh2gptDj8sxY4clbUqthHfTQ6UpUe+Hu59qXR3suvmg==", + "cpu": [ + "x64" + ], + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@stdbr/stdbr-linux-arm64-gnu": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@stdbr/stdbr-linux-arm64-gnu/-/stdbr-linux-arm64-gnu-0.3.1.tgz", + "integrity": "sha512-Qwq5lKYr/t5USkZfcP2MsT+Da2GX3lbYk7OOlQCqiSJEDbJ45/0FYO8CFH5Q5ir49lgZvY8yJM1pDXtt/fFueg==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@stdbr/stdbr-linux-x64-gnu": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@stdbr/stdbr-linux-x64-gnu/-/stdbr-linux-x64-gnu-0.3.1.tgz", + "integrity": "sha512-l55RH42p+An5flP3ms0wVZvMFqC9HAzPCrRAkCsIaAUKedZ02A6PnDmu0rwGRiIODnMeZpoN2iKElvcUB1CjSQ==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@stdbr/stdbr-linux-x64-musl": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@stdbr/stdbr-linux-x64-musl/-/stdbr-linux-x64-musl-0.3.1.tgz", + "integrity": "sha512-pCRkTk1qLkFant97U193DYAcrWxd4ztyGUc2kxsMCAJEMdwsqaEhbcDOsmuBSQOjltRxekQreiaM9FokRJ5YIA==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@stdbr/stdbr-win32-x64-msvc": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@stdbr/stdbr-win32-x64-msvc/-/stdbr-win32-x64-msvc-0.3.1.tgz", + "integrity": "sha512-fEv4NNUcF31YFS5i/BaUhmZNVhNp1dKfARipYkycbdJ+TmWPPdzY7iFmWzPB3xT2xwIC7Ghu4Px6yZcxgBWlXg==", + "cpu": [ + "x64" + ], + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } } diff --git a/bindings/nodejs/package.json b/bindings/nodejs/package.json index cf40f75..4186bc6 100644 --- a/bindings/nodejs/package.json +++ b/bindings/nodejs/package.json @@ -1,9 +1,23 @@ { "name": "@stdbr/stdbr", "version": "0.3.1", - "type": "module", + "description": "Standard library for Brazil", + "type": "commonjs", "main": "index.js", "types": "index.d.ts", + "exports": { + ".": { + "types": "./index.d.ts", + "import": "./index.js", + "require": "./index.js", + "default": "./index.js" + } + }, + "files": [ + "index.js", + "index.d.ts", + "LICENSE" + ], "napi": { "name": "stdbr", "triples": { @@ -15,24 +29,44 @@ ] } }, - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "git+https://github.com/fullzer4/stdbr.git", + "directory": "bindings/nodejs" + }, + "homepage": "https://github.com/fullzer4/stdbr", + "bugs": { + "url": "https://github.com/fullzer4/stdbr/issues" + }, + "keywords": [ + "brazil", + "cpf", + "cnpj", + "cep", + "validation" + ], + "engines": { + "node": ">=18.17.0" + }, "publishConfig": { "access": "public" }, "scripts": { "build": "napi build --platform --release", "artifacts": "napi artifacts", - "prepublishOnly": "napi prepublish --tagstyle npm --skip-gh-release" + "prepublishOnly": "napi prepublish --tagstyle npm --skip-gh-release", + "test:pack": "node tests/package.cjs" }, "optionalDependencies": { - "@stdbr/stdbr-linux-x64-gnu": "0.0.2", - "@stdbr/stdbr-linux-x64-musl": "0.0.2", - "@stdbr/stdbr-linux-arm64-gnu": "0.0.2", - "@stdbr/stdbr-darwin-x64": "0.0.2", - "@stdbr/stdbr-darwin-arm64": "0.0.2", - "@stdbr/stdbr-win32-x64-msvc": "0.0.2" + "@stdbr/stdbr-linux-x64-gnu": "0.3.1", + "@stdbr/stdbr-linux-x64-musl": "0.3.1", + "@stdbr/stdbr-linux-arm64-gnu": "0.3.1", + "@stdbr/stdbr-darwin-x64": "0.3.1", + "@stdbr/stdbr-darwin-arm64": "0.3.1", + "@stdbr/stdbr-win32-x64-msvc": "0.3.1" }, "devDependencies": { - "@napi-rs/cli": "^2" + "@napi-rs/cli": "2.18.4" } } diff --git a/bindings/nodejs/tests/package.cjs b/bindings/nodejs/tests/package.cjs new file mode 100644 index 0000000..5032b3f --- /dev/null +++ b/bindings/nodejs/tests/package.cjs @@ -0,0 +1,68 @@ +const assert = require("node:assert/strict"); +const { mkdtempSync, rmSync, writeFileSync } = require("node:fs"); +const { tmpdir } = require("node:os"); +const { join } = require("node:path"); +const { spawnSync } = require("node:child_process"); + +const packageDirectory = join(__dirname, ".."); +const packageName = require("../package.json").name; +const npmCommand = process.platform === "win32" ? "npm.cmd" : "npm"; +const temporaryDirectory = mkdtempSync(join(tmpdir(), "stdbr-nodejs-smoke-")); + +function run(command, args, options = {}) { + const result = spawnSync(command, args, { + cwd: temporaryDirectory, + encoding: "utf8", + env: { ...process.env, npm_config_maxsockets: "4" }, + stdio: ["ignore", "pipe", "pipe"], + ...options, + }); + + if (result.status !== 0) { + throw new Error( + `${command} ${args.join(" ")} failed\n${result.stdout}${result.stderr}`, + ); + } + + return result.stdout; +} + +try { + const packOutput = run( + npmCommand, + ["pack", "--json", "--pack-destination", temporaryDirectory], + { cwd: packageDirectory }, + ); + const [{ filename, files }] = JSON.parse(packOutput); + const packedPaths = new Set(files.map(({ path }) => path)); + + assert(packedPaths.has("index.js"), "npm pack must include index.js"); + assert(packedPaths.has("index.d.ts"), "npm pack must include index.d.ts"); + + writeFileSync( + join(temporaryDirectory, "package.json"), + JSON.stringify({ private: true }), + ); + run(npmCommand, [ + "install", + "--ignore-scripts", + "--no-audit", + "--no-fund", + join(temporaryDirectory, filename), + ]); + + const commonJsOutput = run("node", [ + "--eval", + `const stdbr = require(${JSON.stringify(packageName)}); process.stdout.write(String(stdbr.cpfIsValid("52998224725")))`, + ]); + assert.equal(commonJsOutput, "true"); + + const esmOutput = run("node", [ + "--input-type=module", + "--eval", + `import stdbr, { cpfIsValid } from ${JSON.stringify(packageName)}; process.stdout.write(String(stdbr.cpfIsValid("52998224725") && cpfIsValid("52998224725")))`, + ]); + assert.equal(esmOutput, "true"); +} finally { + rmSync(temporaryDirectory, { recursive: true, force: true }); +} diff --git a/bindings/nodejs/test_parity.js b/bindings/nodejs/tests/parity.mjs similarity index 99% rename from bindings/nodejs/test_parity.js rename to bindings/nodejs/tests/parity.mjs index 176ea7d..03194c4 100644 --- a/bindings/nodejs/test_parity.js +++ b/bindings/nodejs/tests/parity.mjs @@ -6,11 +6,11 @@ import { describe, it } from "node:test"; import { strictEqual, ok } from "node:assert"; const __dirname = dirname(fileURLToPath(import.meta.url)); -const goldenPath = process.env.GOLDEN_JSON || join(__dirname, "../../tests/parity/golden.json"); +const goldenPath = process.env.GOLDEN_JSON || join(__dirname, "../../../tests/parity/golden.json"); const golden = JSON.parse(readFileSync(goldenPath, "utf8")); const require = createRequire(import.meta.url); -const stdbr = require(process.env.STDBR_NODE || join(__dirname, "stdbr.node")); +const stdbr = require(process.env.STDBR_NODE || join(__dirname, "../stdbr.node")); const { Cpf, cpfIsValid, cpfIsValidStrict, cpfFormat, cpfRemoveSymbols, cpfGenerate, cpfComputeCheckDigits, diff --git a/bindings/python/BUILD.bazel b/bindings/python/BUILD.bazel index 01befcb..73ba3ce 100644 --- a/bindings/python/BUILD.bazel +++ b/bindings/python/BUILD.bazel @@ -1,13 +1,19 @@ load("@rules_rust//rust:defs.bzl", "rust_shared_library") -exports_files(["Cargo.toml", "test_parity.py"] + glob(["src/**/*.rs"])) +exports_files([ + "Cargo.toml", + "tests/parity.py", +] + glob(["src/**/*.rs"])) rust_shared_library( name = "stdbr-python", srcs = glob(["src/**/*.rs"]), crate_root = "src/lib.rs", - deps = ["//core:stdbr-core", "@crates//:pyo3"], visibility = ["//visibility:public"], + deps = [ + "//core:stdbr-core", + "@crates//:pyo3", + ], ) genrule( diff --git a/bindings/python/Cargo.toml b/bindings/python/Cargo.toml index 015bd0f..1210b22 100644 --- a/bindings/python/Cargo.toml +++ b/bindings/python/Cargo.toml @@ -17,7 +17,7 @@ crate-type = ["cdylib"] [dependencies] stdbr-core = { path = "../../core" } -pyo3 = { version = "0.24", features = ["extension-module", "abi3-py39"] } +pyo3 = { version = "0.29", features = ["abi3-py39"] } [lints] workspace = true diff --git a/bindings/python/LICENSE b/bindings/python/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/bindings/python/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/bindings/python/pyproject.toml b/bindings/python/pyproject.toml index e884200..396ca65 100644 --- a/bindings/python/pyproject.toml +++ b/bindings/python/pyproject.toml @@ -7,15 +7,26 @@ name = "stdbr" version = "0.3.1" description = "Standard library for Brazil" readme = "README.md" -license = "MIT OR Apache-2.0" +license = "Apache-2.0" +license-files = ["LICENSE"] +authors = [{ name = "stdbr contributors" }] requires-python = ">=3.9" +keywords = ["brazil", "cep", "cnpj", "cpf", "validation"] classifiers = [ "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", "License :: OSI Approved :: Apache Software License", - "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Typing :: Typed", ] +[project.urls] +Homepage = "https://github.com/fullzer4/stdbr" +Repository = "https://github.com/fullzer4/stdbr" +Issues = "https://github.com/fullzer4/stdbr/issues" + [tool.maturin] -features = ["pyo3/extension-module"] +module-name = "stdbr.stdbr" +python-source = "python" diff --git a/bindings/python/python/stdbr/__init__.py b/bindings/python/python/stdbr/__init__.py new file mode 100644 index 0000000..8bbfcb0 --- /dev/null +++ b/bindings/python/python/stdbr/__init__.py @@ -0,0 +1,6 @@ +from . import stdbr as _native +from .stdbr import * + +__doc__ = _native.__doc__ +if hasattr(_native, "__all__"): + __all__ = _native.__all__ diff --git a/bindings/python/python/stdbr/__init__.pyi b/bindings/python/python/stdbr/__init__.pyi new file mode 100644 index 0000000..f7d351d --- /dev/null +++ b/bindings/python/python/stdbr/__init__.pyi @@ -0,0 +1 @@ +from .stdbr import * diff --git a/bindings/python/python/stdbr/py.typed b/bindings/python/python/stdbr/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/bindings/python/stdbr.pyi b/bindings/python/python/stdbr/stdbr.pyi similarity index 99% rename from bindings/python/stdbr.pyi rename to bindings/python/python/stdbr/stdbr.pyi index 461f856..adfa3fc 100644 --- a/bindings/python/stdbr.pyi +++ b/bindings/python/python/stdbr/stdbr.pyi @@ -513,4 +513,3 @@ def state_region(state:State) -> Region: Get the geographic region of a state. """ ... - diff --git a/bindings/python/src/cep.rs b/bindings/python/src/cep.rs index 4e90e12..66ed1ba 100644 --- a/bindings/python/src/cep.rs +++ b/bindings/python/src/cep.rs @@ -7,7 +7,7 @@ fn cep_err(e: &core_cep::CepError) -> PyErr { pyo3::exceptions::PyValueError::new_err(e.to_string()) } -#[pyclass(eq, eq_int)] +#[pyclass(eq, eq_int, from_py_object)] #[derive(Clone, Copy, PartialEq, Eq)] pub enum PostalRegion { GranSaoPaulo = 0, diff --git a/bindings/python/src/cnpj.rs b/bindings/python/src/cnpj.rs index d574e9e..64e2bdb 100644 --- a/bindings/python/src/cnpj.rs +++ b/bindings/python/src/cnpj.rs @@ -5,7 +5,7 @@ fn cnpj_err(e: &core_cnpj::CnpjError) -> PyErr { pyo3::exceptions::PyValueError::new_err(e.to_string()) } -#[pyclass(eq, eq_int)] +#[pyclass(eq, eq_int, from_py_object)] #[derive(Clone, Copy, PartialEq, Eq)] pub enum CnpjKind { Numeric = 0, @@ -30,7 +30,7 @@ impl From for CnpjKind { } } -#[pyclass(eq, eq_int)] +#[pyclass(eq, eq_int, from_py_object)] #[derive(Clone, Copy, PartialEq, Eq)] pub enum EstablishmentType { Matriz = 0, diff --git a/bindings/python/src/cpf.rs b/bindings/python/src/cpf.rs index f9d4d70..1904ee9 100644 --- a/bindings/python/src/cpf.rs +++ b/bindings/python/src/cpf.rs @@ -5,7 +5,7 @@ fn cpf_err(e: &core_cpf::CpfError) -> PyErr { pyo3::exceptions::PyValueError::new_err(e.to_string()) } -#[pyclass(eq, eq_int)] +#[pyclass(eq, eq_int, from_py_object)] #[derive(Clone, Copy, PartialEq, Eq)] pub enum FiscalRegion { Rs = 0, diff --git a/bindings/python/src/lib.rs b/bindings/python/src/lib.rs index 594af86..ef0c6e3 100644 --- a/bindings/python/src/lib.rs +++ b/bindings/python/src/lib.rs @@ -5,14 +5,21 @@ mod municipio; mod rg; pub(crate) mod uf; -use pyo3::prelude::*; +use pyo3::pymodule; #[pymodule] -fn stdbr(m: &Bound<'_, PyModule>) -> PyResult<()> { - uf::register(m)?; - cpf::register(m)?; - cnpj::register(m)?; - cep::register(m)?; - rg::register(m)?; - municipio::register(m) +mod stdbr { + use pyo3::prelude::*; + + use super::{cep, cnpj, cpf, municipio, rg, uf}; + + #[pymodule_init] + fn init(m: &Bound<'_, PyModule>) -> PyResult<()> { + uf::register(m)?; + cpf::register(m)?; + cnpj::register(m)?; + cep::register(m)?; + rg::register(m)?; + municipio::register(m) + } } diff --git a/bindings/python/src/uf.rs b/bindings/python/src/uf.rs index 6f970d0..c4151d8 100644 --- a/bindings/python/src/uf.rs +++ b/bindings/python/src/uf.rs @@ -1,7 +1,7 @@ use pyo3::prelude::*; use stdbr_core::uf as core_uf; -#[pyclass(eq, eq_int)] +#[pyclass(eq, eq_int, from_py_object)] #[derive(Clone, Copy, PartialEq, Eq)] pub enum Region { Norte = 0, @@ -25,7 +25,7 @@ impl From for Region { } } -#[pyclass(eq, eq_int)] +#[pyclass(eq, eq_int, from_py_object)] #[derive(Clone, Copy, PartialEq, Eq)] pub enum State { AC = 0, diff --git a/bindings/python/test_parity.py b/bindings/python/tests/parity.py similarity index 99% rename from bindings/python/test_parity.py rename to bindings/python/tests/parity.py index 1269226..648a1d3 100644 --- a/bindings/python/test_parity.py +++ b/bindings/python/tests/parity.py @@ -11,7 +11,7 @@ import stdbr GOLDEN_PATH = os.environ.get("GOLDEN_JSON") or str( - Path(__file__).resolve().parent.parent.parent / "tests" / "parity" / "golden.json" + Path(__file__).resolve().parents[3] / "tests" / "parity" / "golden.json" ) GOLDEN = json.loads(Path(GOLDEN_PATH).read_text()) diff --git a/bindings/python/tests/typing_smoke.py b/bindings/python/tests/typing_smoke.py new file mode 100644 index 0000000..f363163 --- /dev/null +++ b/bindings/python/tests/typing_smoke.py @@ -0,0 +1,8 @@ +from typing import Optional + +import stdbr + +cpf: stdbr.Cpf = stdbr.Cpf.parse("529.982.247-25") +formatted: str = cpf.formatted() +valid: bool = stdbr.cpf_is_valid(formatted) +state: Optional[stdbr.State] = stdbr.state_from_abbreviation("SP") diff --git a/bindings/python/tests/wheel.py b/bindings/python/tests/wheel.py new file mode 100644 index 0000000..ff6825b --- /dev/null +++ b/bindings/python/tests/wheel.py @@ -0,0 +1,20 @@ +import importlib.metadata +import unittest + +import stdbr + + +class TestInstalledWheel(unittest.TestCase): + def test_typing_files_are_installed(self): + files = {str(path) for path in importlib.metadata.files("stdbr") or ()} + self.assertIn("stdbr/stdbr.pyi", files) + self.assertIn("stdbr/py.typed", files) + + def test_native_api(self): + cpf = stdbr.Cpf.parse("529.982.247-25") + self.assertEqual(cpf.as_str(), "52998224725") + self.assertTrue(stdbr.cpf_is_valid(cpf.as_str())) + + +if __name__ == "__main__": + unittest.main() diff --git a/bindings/wasm/BUILD.bazel b/bindings/wasm/BUILD.bazel index 79c1dbc..3cc2436 100644 --- a/bindings/wasm/BUILD.bazel +++ b/bindings/wasm/BUILD.bazel @@ -1,20 +1,26 @@ load("@rules_rust//rust:defs.bzl", "rust_shared_library") load("@rules_rust_wasm_bindgen//:defs.bzl", "rust_wasm_bindgen") -exports_files(["Cargo.toml", "test_parity.js"] + glob(["src/**/*.rs"])) +exports_files([ + "Cargo.toml", + "tests/parity.mjs", +] + glob(["src/**/*.rs"])) rust_shared_library( name = "stdbr-wasm-cdylib", srcs = glob(["src/**/*.rs"]), crate_root = "src/lib.rs", - deps = ["//core:stdbr-core", "@crates//:wasm-bindgen"], platform = "@rules_rust//rust/platform:wasm", visibility = ["//visibility:public"], + deps = [ + "//core:stdbr-core", + "@crates//:wasm-bindgen", + ], ) rust_wasm_bindgen( name = "stdbr-wasm", - wasm_file = ":stdbr-wasm-cdylib", target = "nodejs", visibility = ["//visibility:public"], + wasm_file = ":stdbr-wasm-cdylib", ) diff --git a/bindings/wasm/package.json b/bindings/wasm/package.json index 3935deb..163add0 100644 --- a/bindings/wasm/package.json +++ b/bindings/wasm/package.json @@ -3,7 +3,7 @@ "version": "0.3.1", "main": "stdbr_wasm.js", "types": "stdbr_wasm.d.ts", - "license": "MIT OR Apache-2.0", + "license": "Apache-2.0", "publishConfig": { "access": "public" }, diff --git a/bindings/wasm/test_parity.js b/bindings/wasm/tests/parity.mjs similarity index 99% rename from bindings/wasm/test_parity.js rename to bindings/wasm/tests/parity.mjs index 930696f..b7f4e50 100644 --- a/bindings/wasm/test_parity.js +++ b/bindings/wasm/tests/parity.mjs @@ -5,10 +5,10 @@ import { describe, it } from "node:test"; import { strictEqual, ok } from "node:assert"; const __dirname = dirname(fileURLToPath(import.meta.url)); -const goldenPath = process.env.GOLDEN_JSON || join(__dirname, "../../tests/parity/golden.json"); +const goldenPath = process.env.GOLDEN_JSON || join(__dirname, "../../../tests/parity/golden.json"); const golden = JSON.parse(readFileSync(goldenPath, "utf8")); -const wasm = await import(process.env.WASM_PKG || join(__dirname, "pkg/stdbr_wasm.js")); +const wasm = await import(process.env.WASM_PKG || join(__dirname, "../pkg/stdbr_wasm.js")); const { Cpf, cpfIsValid, cpfIsValidStrict, cpfFormat, cpfRemoveSymbols, cpfGenerate, cpfComputeCheckDigits, diff --git a/core/BUILD.bazel b/core/BUILD.bazel index dcbdd91..5bdff4e 100644 --- a/core/BUILD.bazel +++ b/core/BUILD.bazel @@ -2,13 +2,19 @@ load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test") exports_files([ "Cargo.toml", + "tests/features.rs", "tests/parity.rs", + "tests/properties.rs", + "tests/rng.rs", ] + glob(["src/**/*.rs"])) rust_library( name = "stdbr-core", srcs = glob(["src/**/*.rs"]), - crate_features = ["std"], + crate_features = [ + "municipio", + "std", + ], crate_root = "src/lib.rs", visibility = ["//visibility:public"], ) @@ -17,3 +23,33 @@ rust_test( name = "stdbr-core-test", crate = ":stdbr-core", ) + +rust_test( + name = "cep-boundaries-test", + size = "small", + srcs = ["tests/cep_boundaries.rs"], + compile_data = ["//tests/fixtures:cep_ranges.csv"], + deps = [":stdbr-core"], +) + +rust_test( + name = "features-test", + size = "small", + srcs = ["tests/features.rs"], + crate_features = ["municipio"], + deps = [":stdbr-core"], +) + +rust_test( + name = "rng-test", + size = "small", + srcs = ["tests/rng.rs"], + deps = [":stdbr-core"], +) + +rust_test( + name = "properties-test", + size = "small", + srcs = ["tests/properties.rs"], + deps = [":stdbr-core"], +) diff --git a/core/Cargo.toml b/core/Cargo.toml index f350a94..5608c24 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -4,6 +4,7 @@ version = "0.3.1" edition.workspace = true rust-version.workspace = true license.workspace = true +license-file = "../LICENSE" description.workspace = true repository.workspace = true homepage.workspace = true @@ -12,7 +13,8 @@ keywords.workspace = true categories.workspace = true [features] -default = ["std"] +default = ["std", "municipio"] +municipio = [] std = [] [dev-dependencies] diff --git a/core/src/cep.rs b/core/src/cep.rs index 98fd8c9..d70bd4c 100644 --- a/core/src/cep.rs +++ b/core/src/cep.rs @@ -7,7 +7,7 @@ use alloc::string::String; use core::fmt; -use crate::rand::{simple_seed, xorshift64}; +use crate::rand::{RandomSource, SeededRng, below_u32, simple_seed}; use crate::uf::State; use crate::util::impl_document_traits; @@ -38,48 +38,77 @@ impl PostalRegion { } } -/// CEP range `(start, end)` inclusive for a given state. -fn cep_range(state: State) -> (u32, u32) { - match state { - State::SP => (1_000_000, 19_999_999), - State::RJ => (20_000_000, 28_999_999), - State::ES => (29_000_000, 29_999_999), - State::MG => (30_000_000, 39_999_999), - State::BA => (40_000_000, 48_999_999), - State::SE => (49_000_000, 49_999_999), - State::PE => (50_000_000, 56_999_999), - State::AL => (57_000_000, 57_999_999), - State::PB => (58_000_000, 58_999_999), - State::RN => (59_000_000, 59_999_999), - State::CE => (60_000_000, 63_999_999), - State::PI => (64_000_000, 64_999_999), - State::MA => (65_000_000, 65_999_999), - State::PA => (66_000_000, 68_899_999), - State::AM => (69_000_000, 69_299_999), - State::AC => (69_900_000, 69_999_999), - State::AP => (68_900_000, 68_999_999), - State::RR => (69_300_000, 69_399_999), - State::DF => (70_000_000, 72_799_999), - State::GO => (72_800_000, 76_799_999), - State::TO => (77_000_000, 77_999_999), - State::MT => (78_000_000, 78_899_999), - State::MS => (79_000_000, 79_999_999), - State::RO => (76_800_000, 76_999_999), - State::PR => (80_000_000, 87_999_999), - State::SC => (88_000_000, 89_999_999), - State::RS => (90_000_000, 99_999_999), +#[derive(Clone, Copy)] +struct CepRange { + start: u32, + end: u32, +} + +impl CepRange { + const fn new(start: u32, end: u32) -> Self { + Self { start, end } + } + + const fn len(self) -> u32 { + self.end - self.start + 1 + } + + const fn contains(self, value: u32) -> bool { + value >= self.start && value <= self.end } } +/// Official inclusive CEP segments for a state. Some UFs are interleaved and +/// therefore cannot be represented by a single minimum/maximum pair. +static CEP_RANGES: [&[CepRange]; 27] = [ + &[CepRange::new(69_900_000, 69_999_999)], // AC + &[CepRange::new(57_000_000, 57_999_999)], // AL + &[ + CepRange::new(69_000_000, 69_299_999), + CepRange::new(69_400_000, 69_899_999), + ], // AM + &[CepRange::new(68_900_000, 68_999_999)], // AP + &[CepRange::new(40_000_000, 48_999_999)], // BA + &[CepRange::new(60_000_000, 63_999_999)], // CE + &[ + CepRange::new(70_000_000, 72_799_999), + CepRange::new(73_000_000, 73_699_999), + ], // DF + &[CepRange::new(29_000_000, 29_999_999)], // ES + &[ + CepRange::new(72_800_000, 72_999_999), + CepRange::new(73_700_000, 76_799_999), + ], // GO + &[CepRange::new(65_000_000, 65_999_999)], // MA + &[CepRange::new(30_000_000, 39_999_999)], // MG + &[CepRange::new(79_000_000, 79_999_999)], // MS + &[CepRange::new(78_000_000, 78_899_999)], // MT + &[CepRange::new(66_000_000, 68_899_999)], // PA + &[CepRange::new(58_000_000, 58_999_999)], // PB + &[CepRange::new(50_000_000, 56_999_999)], // PE + &[CepRange::new(64_000_000, 64_999_999)], // PI + &[CepRange::new(80_000_000, 87_999_999)], // PR + &[CepRange::new(20_000_000, 28_999_999)], // RJ + &[CepRange::new(59_000_000, 59_999_999)], // RN + &[CepRange::new(76_800_000, 76_999_999)], // RO + &[CepRange::new(69_300_000, 69_399_999)], // RR + &[CepRange::new(90_000_000, 99_999_999)], // RS + &[CepRange::new(88_000_000, 89_999_999)], // SC + &[CepRange::new(49_000_000, 49_999_999)], // SE + &[CepRange::new(1_000_000, 19_999_999)], // SP + &[CepRange::new(77_000_000, 77_999_999)], // TO +]; + +fn cep_ranges(state: State) -> &'static [CepRange] { + CEP_RANGES[state as usize] +} + /// Determines the state from a CEP numeric value by range lookup. fn state_from_cep_value(value: u32) -> Option { - for &state in &crate::uf::ALL { - let (start, end) = cep_range(state); - if value >= start && value <= end { - return Some(state); - } - } - None + crate::uf::ALL + .iter() + .find(|&&state| cep_ranges(state).iter().any(|range| range.contains(value))) + .copied() } #[derive(Debug, Clone, PartialEq, Eq)] @@ -99,6 +128,8 @@ impl fmt::Display for CepError { } } +impl core::error::Error for CepError {} + /// A validated CEP stored as 8 ASCII bytes. /// /// ``` @@ -179,13 +210,26 @@ impl fmt::Display for Cep { impl_document_traits!(Cep, CepError); -pub fn remove_symbols(cep: &str) -> String { +/// Normalizes a permissive CEP input by retaining only ASCII digits. +pub fn normalize(cep: &str) -> String { cep.chars().filter(char::is_ascii_digit).collect() } +/// Compatibility alias for [`normalize`]. +pub fn remove_symbols(cep: &str) -> String { + normalize(cep) +} + +/// Lenient validation that ignores every non-ASCII-digit character. +pub fn is_valid_lenient(cep: &str) -> bool { + normalize(cep).len() == CEP_LEN +} + +/// Compatibility alias for [`is_valid_lenient`]. +/// +/// Use [`is_valid_strict`] when punctuation and whitespace must be rejected. pub fn is_valid(cep: &str) -> bool { - let raw = remove_symbols(cep); - raw.len() == CEP_LEN + is_valid_lenient(cep) } /// Strict validation - accepts `#####-###` or `########` only. @@ -200,47 +244,106 @@ pub fn format_cep(cep: &str) -> Option { } /// Generates a random valid CEP as an 8-digit string. +/// +/// This generation is not cryptographically secure. pub fn generate() -> String { generate_cep().as_str().into() } /// Generates a random valid [`Cep`]. +/// +/// This generation is not cryptographically secure. pub fn generate_cep() -> Cep { - let mut seed = simple_seed(); - let mut digits = [0u8; CEP_LEN]; - for d in &mut digits { - seed = xorshift64(seed); - *d = (seed % 10) as u8; - } - Cep::from_numeric(digits) + let mut rng = SeededRng::new(simple_seed()); + generate_cep_with_rng(&mut rng) +} + +/// Generates a deterministic [`Cep`] from a seed. +/// +/// This generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_cep_with_seed(seed: u64) -> Cep { + let mut rng = SeededRng::new(seed); + generate_cep_with_rng(&mut rng) +} + +/// Generates a [`Cep`] using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_cep_with_rng(rng: &mut R) -> Cep { + cep_from_value(below_u32(rng, 100_000_000)) } /// Generates a random [`Cep`] for a given postal region (1st digit fixed). +/// +/// This generation is not cryptographically secure. pub fn generate_for_region(region: PostalRegion) -> Cep { - let mut seed = simple_seed(); - let mut digits = [0u8; CEP_LEN]; - digits[0] = region as u8; - for d in &mut digits[1..] { - seed = xorshift64(seed); - *d = (seed % 10) as u8; - } - Cep::from_numeric(digits) + let mut rng = SeededRng::new(simple_seed()); + generate_for_region_with_rng(&mut rng, region) +} + +/// Generates a deterministic [`Cep`] for a postal region from a seed. +/// +/// This generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_for_region_with_seed(seed: u64, region: PostalRegion) -> Cep { + let mut rng = SeededRng::new(seed); + generate_for_region_with_rng(&mut rng, region) +} + +/// Generates a [`Cep`] for a postal region using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_for_region_with_rng( + rng: &mut R, + region: PostalRegion, +) -> Cep { + let value = u32::from(region as u8) * 10_000_000 + below_u32(rng, 10_000_000); + cep_from_value(value) } /// Generates a random [`Cep`] within the range of a given state. +/// +/// Each official segment is selected proportionally to its number of CEPs. +/// This generation is not cryptographically secure. pub fn generate_for_state(state: State) -> Cep { - let (start, end) = cep_range(state); - let mut seed = simple_seed(); - seed = xorshift64(seed); - let range = end - start + 1; - #[allow(clippy::cast_possible_truncation)] - let value = start + (seed as u32 % range); + let mut rng = SeededRng::new(simple_seed()); + generate_for_state_with_rng(&mut rng, state) +} + +/// Generates a deterministic [`Cep`] within a state's official segments. +/// +/// Each segment is weighted by its inclusive size. This generation is not +/// cryptographically secure. Seed zero is accepted. +pub fn generate_for_state_with_seed(seed: u64, state: State) -> Cep { + let mut rng = SeededRng::new(seed); + generate_for_state_with_rng(&mut rng, state) +} + +/// Generates a [`Cep`] within a state's official segments using an injected +/// random source. +/// +/// Each segment is weighted by its inclusive size. This generation is not +/// cryptographically secure. +pub fn generate_for_state_with_rng(rng: &mut R, state: State) -> Cep { + let ranges = cep_ranges(state); + let total: u32 = ranges.iter().map(|range| range.len()).sum(); + let mut offset = below_u32(rng, total); + + for range in ranges { + let len = range.len(); + if offset < len { + return cep_from_value(range.start + offset); + } + offset -= len; + } + + unreachable!("CEP range offset must select a segment") +} +fn cep_from_value(mut value: u32) -> Cep { let mut digits = [0u8; CEP_LEN]; - let mut v = value; for i in (0..CEP_LEN).rev() { - digits[i] = (v % 10) as u8; - v /= 10; + digits[i] = (value % 10) as u8; + value /= 10; } Cep::from_numeric(digits) } diff --git a/core/src/cnpj.rs b/core/src/cnpj.rs index 57d79d2..c42f6f1 100644 --- a/core/src/cnpj.rs +++ b/core/src/cnpj.rs @@ -7,7 +7,7 @@ use alloc::string::String; use alloc::vec::Vec; use core::fmt; -use crate::rand::{simple_seed, xorshift64}; +use crate::rand::{RandomSource, SeededRng, below_u8, simple_seed}; use crate::util::{self, impl_document_traits}; const CNPJ_LEN: usize = 14; @@ -52,6 +52,8 @@ impl fmt::Display for CnpjError { } } +impl core::error::Error for CnpjError {} + /// A validated CNPJ stored as 14 ASCII bytes. /// /// Positions 0-11 may contain `0-9` or `A-Z` (alphanumeric CNPJ). @@ -136,8 +138,9 @@ impl fmt::Display for Cnpj { impl_document_traits!(Cnpj, CnpjError); -/// Strips punctuation, preserves letters and digits, uppercases letters. -pub fn remove_symbols(cnpj: &str) -> String { +/// Normalizes a permissive CNPJ input by retaining ASCII alphanumeric +/// characters and uppercasing letters. +pub fn normalize(cnpj: &str) -> String { cnpj.chars() .filter(char::is_ascii_alphanumeric) .map(|c| c.to_ascii_uppercase()) @@ -145,8 +148,8 @@ pub fn remove_symbols(cnpj: &str) -> String { } /// Lenient validation: strips punctuation, uppercases, then validates. -pub fn is_valid(cnpj: &str) -> bool { - let raw = remove_symbols(cnpj); +pub fn is_valid_lenient(cnpj: &str) -> bool { + let raw = normalize(cnpj); if raw.len() != CNPJ_LEN { return false; } @@ -164,6 +167,19 @@ pub fn is_valid(cnpj: &str) -> bool { validate(bytes) } +/// Compatibility alias for [`normalize`]. +pub fn remove_symbols(cnpj: &str) -> String { + normalize(cnpj) +} + +/// Compatibility alias for [`is_valid_lenient`]. +/// +/// Use [`is_valid_strict`] when case, punctuation, and whitespace must be +/// checked. +pub fn is_valid(cnpj: &str) -> bool { + is_valid_lenient(cnpj) +} + /// Strict validation - accepts `XX.XXX.XXX/XXXX-DD` or `XXXXXXXXXXXXXXDD` only. pub fn is_valid_strict(cnpj: &str) -> Result<(), CnpjError> { parse_strict(cnpj).map(|_| ()) @@ -196,18 +212,56 @@ pub fn format_cnpj(cnpj: &str) -> Option { } /// Generates a random valid CNPJ as a 14-character string. +/// +/// This generation is not cryptographically secure. pub fn generate(kind: CnpjKind) -> String { generate_cnpj(kind).as_str().into() } /// Generates a random valid [`Cnpj`]. +/// +/// This generation is not cryptographically secure. pub fn generate_cnpj(kind: CnpjKind) -> Cnpj { - generate_with_seed(simple_seed(), kind) + let mut rng = SeededRng::new(simple_seed()); + generate_cnpj_with_rng(&mut rng, kind) +} + +/// Generates a valid [`Cnpj`] using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_cnpj_with_rng(rng: &mut R, kind: CnpjKind) -> Cnpj { + generate_with_rng(rng, kind) } /// Generates a random valid [`Cnpj`] with ordem "0001" (Matriz). +/// +/// This generation is not cryptographically secure. pub fn generate_matriz(kind: CnpjKind) -> Cnpj { - generate_with_ordem(simple_seed(), kind, *b"0001") + let mut rng = SeededRng::new(simple_seed()); + generate_matriz_with_rng(&mut rng, kind) +} + +/// Generates a deterministic valid [`Cnpj`] from a seed. +/// +/// This generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_with_seed(seed: u64, kind: CnpjKind) -> Cnpj { + let mut rng = SeededRng::new(seed); + generate_with_rng(&mut rng, kind) +} + +/// Generates a deterministic valid Matriz [`Cnpj`] from a seed. +/// +/// This generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_matriz_with_seed(seed: u64, kind: CnpjKind) -> Cnpj { + let mut rng = SeededRng::new(seed); + generate_matriz_with_rng(&mut rng, kind) +} + +/// Generates a valid Matriz [`Cnpj`] using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_matriz_with_rng(rng: &mut R, kind: CnpjKind) -> Cnpj { + generate_with_ordem(rng, kind, *b"0001") } /// Computes check digits for a 12-character CNPJ base. @@ -251,7 +305,7 @@ fn all_equal(bytes: &[u8]) -> bool { } fn validate(bytes: &[u8]) -> bool { - if all_equal(bytes) { + if all_equal(&bytes[..12]) { return false; } let values: Vec = bytes[..12].iter().map(|&b| char_value(b)).collect(); @@ -319,7 +373,7 @@ fn parse_strict(s: &str) -> Result { _ => return Err(CnpjError::InvalidLength), }; - if all_equal(&chars) { + if all_equal(&chars[..12]) { return Err(CnpjError::AllCharsEqual); } @@ -341,18 +395,20 @@ fn parse_strict(s: &str) -> Result { const ALPHANUMERIC_CHARS: &[u8; 36] = b"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; -fn generate_with_seed(mut seed: u64, kind: CnpjKind) -> Cnpj { +/// Generates a valid [`Cnpj`] using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_with_rng(rng: &mut R, kind: CnpjKind) -> Cnpj { let mut bytes = [0u8; CNPJ_LEN]; loop { for b in &mut bytes[..12] { - seed = xorshift64(seed); *b = match kind { - CnpjKind::Numeric => b'0' + (seed % 10) as u8, - CnpjKind::Alphanumeric => ALPHANUMERIC_CHARS[(seed % 36) as usize], + CnpjKind::Numeric => b'0' + below_u8(rng, 10), + CnpjKind::Alphanumeric => ALPHANUMERIC_CHARS[usize::from(below_u8(rng, 36))], }; } - if !all_equal(&bytes[..12]) { + if generated_base_is_valid(&bytes[..12], kind) { break; } } @@ -361,19 +417,22 @@ fn generate_with_seed(mut seed: u64, kind: CnpjKind) -> Cnpj { Cnpj { bytes } } -fn generate_with_ordem(mut seed: u64, kind: CnpjKind, ordem: [u8; 4]) -> Cnpj { +fn generate_with_ordem( + rng: &mut R, + kind: CnpjKind, + ordem: [u8; 4], +) -> Cnpj { let mut bytes = [0u8; CNPJ_LEN]; bytes[8..12].copy_from_slice(&ordem); loop { for b in &mut bytes[..8] { - seed = xorshift64(seed); *b = match kind { - CnpjKind::Numeric => b'0' + (seed % 10) as u8, - CnpjKind::Alphanumeric => ALPHANUMERIC_CHARS[(seed % 36) as usize], + CnpjKind::Numeric => b'0' + below_u8(rng, 10), + CnpjKind::Alphanumeric => ALPHANUMERIC_CHARS[usize::from(below_u8(rng, 36))], }; } - if !all_equal(&bytes[..12]) { + if generated_base_is_valid(&bytes[..12], kind) { break; } } @@ -382,6 +441,10 @@ fn generate_with_ordem(mut seed: u64, kind: CnpjKind, ordem: [u8; 4]) -> Cnpj { Cnpj { bytes } } +fn generated_base_is_valid(base: &[u8], kind: CnpjKind) -> bool { + !all_equal(base) && (kind == CnpjKind::Numeric || base.iter().any(u8::is_ascii_uppercase)) +} + #[cfg(test)] mod tests { use super::*; @@ -476,6 +539,17 @@ mod tests { assert!(!is_valid("AAAAAAAAAAAAAA")); } + #[test] + fn all_equal_rule_applies_to_the_registration_base() { + let repeated_base = make_cnpj(b"111111111111"); + assert!(!is_valid(repeated_base.as_str())); + assert_eq!( + is_valid_strict(repeated_base.as_str()), + Err(CnpjError::AllCharsEqual) + ); + assert_eq!(compute_check_digits("111111111111"), None); + } + #[test] fn is_valid_rejects_wrong_length() { assert!(!is_valid("")); @@ -666,6 +740,19 @@ mod tests { let cnpj = generate(CnpjKind::Alphanumeric); assert_eq!(cnpj.len(), 14); assert!(is_valid(&cnpj), "generated invalid CNPJ: {cnpj}"); + assert!(cnpj[..12].bytes().any(|b| b.is_ascii_uppercase())); + } + } + + #[test] + fn seeded_alphanumeric_generation_always_contains_a_letter() { + for seed in 0..1_000 { + let cnpj = generate_with_seed(seed, CnpjKind::Alphanumeric); + assert_eq!(cnpj.kind(), CnpjKind::Alphanumeric, "seed {seed}"); + + let matriz = generate_matriz_with_seed(seed, CnpjKind::Alphanumeric); + assert_eq!(matriz.kind(), CnpjKind::Alphanumeric, "seed {seed}"); + assert_eq!(matriz.ordem(), "0001"); } } diff --git a/core/src/cpf.rs b/core/src/cpf.rs index 4c3ee86..2d12f1e 100644 --- a/core/src/cpf.rs +++ b/core/src/cpf.rs @@ -6,7 +6,7 @@ use alloc::string::String; use alloc::vec::Vec; use core::fmt; -use crate::rand::{simple_seed, xorshift64}; +use crate::rand::{RandomSource, SeededRng, below_u8, simple_seed}; use crate::util::{self, impl_document_traits}; const CPF_LEN: usize = 11; @@ -59,6 +59,8 @@ impl fmt::Display for CpfError { } } +impl core::error::Error for CpfError {} + /// A validated CPF stored as 11 ASCII bytes. /// /// ``` @@ -120,12 +122,19 @@ impl fmt::Display for Cpf { impl_document_traits!(Cpf, CpfError); -pub fn remove_symbols(cpf: &str) -> String { +/// Normalizes a permissive CPF input by retaining only ASCII digits. +pub fn normalize(cpf: &str) -> String { cpf.chars().filter(char::is_ascii_digit).collect() } -pub fn is_valid(cpf: &str) -> bool { - let raw = remove_symbols(cpf); +/// Compatibility alias for [`normalize`]. +pub fn remove_symbols(cpf: &str) -> String { + normalize(cpf) +} + +/// Lenient validation that ignores every non-ASCII-digit character. +pub fn is_valid_lenient(cpf: &str) -> bool { + let raw = normalize(cpf); if raw.len() != CPF_LEN { return false; } @@ -133,6 +142,13 @@ pub fn is_valid(cpf: &str) -> bool { validate_digits(&d) } +/// Compatibility alias for [`is_valid_lenient`]. +/// +/// Use [`is_valid_strict`] when punctuation and whitespace must be rejected. +pub fn is_valid(cpf: &str) -> bool { + is_valid_lenient(cpf) +} + /// Strict validation - accepts `###.###.###-##` or `###########` only. pub fn is_valid_strict(cpf: &str) -> Result<(), CpfError> { parse_strict(cpf).map(|_| ()) @@ -146,24 +162,55 @@ pub fn format_cpf(cpf: &str) -> Option { } /// Generates a random valid CPF as an 11-digit string. +/// +/// This generation is not cryptographically secure. pub fn generate() -> String { generate_cpf().as_str().into() } /// Generates a random valid [`Cpf`]. +/// +/// This generation is not cryptographically secure. pub fn generate_cpf() -> Cpf { - generate_with_seed(simple_seed()) + let mut rng = SeededRng::new(simple_seed()); + generate_cpf_with_rng(&mut rng) +} + +/// Generates a valid [`Cpf`] using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_cpf_with_rng(rng: &mut R) -> Cpf { + generate_with_rng(rng) } /// Generates a random valid [`Cpf`] for a given fiscal region. +/// +/// This generation is not cryptographically secure. pub fn generate_for_region(region: FiscalRegion) -> Cpf { - let mut seed = simple_seed(); + let mut rng = SeededRng::new(simple_seed()); + generate_for_region_with_rng(&mut rng, region) +} + +/// Generates a deterministic [`Cpf`] for a fiscal region from a seed. +/// +/// This generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_for_region_with_seed(seed: u64, region: FiscalRegion) -> Cpf { + let mut rng = SeededRng::new(seed); + generate_for_region_with_rng(&mut rng, region) +} + +/// Generates a valid [`Cpf`] for a fiscal region using an injected source. +/// +/// This generation is not cryptographically secure. +pub fn generate_for_region_with_rng( + rng: &mut R, + region: FiscalRegion, +) -> Cpf { let mut digits = [0u8; CPF_LEN]; loop { for d in &mut digits[..8] { - seed = xorshift64(seed); - *d = (seed % 10) as u8; + *d = below_u8(rng, 10); } digits[8] = region as u8; if !all_equal(&digits[..9]) { @@ -259,13 +306,23 @@ fn parse_strict(s: &str) -> Result { Ok(Cpf::from_numeric(digits)) } -fn generate_with_seed(mut seed: u64) -> Cpf { +/// Generates a deterministic valid [`Cpf`] from a seed. +/// +/// This generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_with_seed(seed: u64) -> Cpf { + let mut rng = SeededRng::new(seed); + generate_with_rng(&mut rng) +} + +/// Generates a valid [`Cpf`] using an injected random source. +/// +/// This generation is not cryptographically secure. +pub fn generate_with_rng(rng: &mut R) -> Cpf { let mut digits = [0u8; CPF_LEN]; loop { for d in &mut digits[..9] { - seed = xorshift64(seed); - *d = (seed % 10) as u8; + *d = below_u8(rng, 10); } if !all_equal(&digits[..9]) { break; @@ -584,6 +641,12 @@ mod tests { } } + #[test] + fn seeded_generation_accepts_zero_and_is_deterministic() { + assert_eq!(generate_with_seed(0), generate_with_seed(0)); + assert!(is_valid(generate_with_seed(0).as_str())); + } + #[test] fn generate_for_region_respects_region_digit() { let regions = [ diff --git a/core/src/lib.rs b/core/src/lib.rs index 4f9df8b..0de9e80 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -1,17 +1,19 @@ //! `stdbr-core` - standard library for Brazil. //! //! `no_std` compatible (requires `alloc`). Enable the default `std` feature -//! for better RNG seeding in generation functions. +//! for better seeding in generation functions. Generated values use a small +//! non-cryptographic PRNG and must not be used as secrets. #![cfg_attr(not(feature = "std"), no_std)] extern crate alloc; -mod rand; +pub mod rand; pub(crate) mod util; pub mod cep; pub mod cnpj; pub mod cpf; +#[cfg(feature = "municipio")] pub mod municipio; pub mod rg; pub mod uf; diff --git a/core/src/municipio.rs b/core/src/municipio.rs index 3b521c6..da2e437 100644 --- a/core/src/municipio.rs +++ b/core/src/municipio.rs @@ -9,6 +9,9 @@ use crate::uf::State; use core::fmt; +mod generated; +pub use generated::ALL; + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct Municipio { /// IBGE 7-digit code. @@ -19,27865 +22,6 @@ pub struct Municipio { pub state: State, } -#[allow(clippy::unreadable_literal)] -pub const ALL: &[Municipio] = &[ - Municipio { - ibge_code: 1200013, - name: "Acrelândia", - state: State::AC, - }, - Municipio { - ibge_code: 1200054, - name: "Assis Brasil", - state: State::AC, - }, - Municipio { - ibge_code: 1200104, - name: "Brasiléia", - state: State::AC, - }, - Municipio { - ibge_code: 1200138, - name: "Bujari", - state: State::AC, - }, - Municipio { - ibge_code: 1200179, - name: "Capixaba", - state: State::AC, - }, - Municipio { - ibge_code: 1200203, - name: "Cruzeiro do Sul", - state: State::AC, - }, - Municipio { - ibge_code: 1200252, - name: "Epitaciolândia", - state: State::AC, - }, - Municipio { - ibge_code: 1200302, - name: "Feijó", - state: State::AC, - }, - Municipio { - ibge_code: 1200328, - name: "Jordão", - state: State::AC, - }, - Municipio { - ibge_code: 1200344, - name: "Manoel Urbano", - state: State::AC, - }, - Municipio { - ibge_code: 1200351, - name: "Marechal Thaumaturgo", - state: State::AC, - }, - Municipio { - ibge_code: 1200336, - name: "Mâncio Lima", - state: State::AC, - }, - Municipio { - ibge_code: 1200385, - name: "Plácido de Castro", - state: State::AC, - }, - Municipio { - ibge_code: 1200807, - name: "Porto Acre", - state: State::AC, - }, - Municipio { - ibge_code: 1200393, - name: "Porto Walter", - state: State::AC, - }, - Municipio { - ibge_code: 1200401, - name: "Rio Branco", - state: State::AC, - }, - Municipio { - ibge_code: 1200427, - name: "Rodrigues Alves", - state: State::AC, - }, - Municipio { - ibge_code: 1200435, - name: "Santa Rosa do Purus", - state: State::AC, - }, - Municipio { - ibge_code: 1200500, - name: "Sena Madureira", - state: State::AC, - }, - Municipio { - ibge_code: 1200450, - name: "Senador Guiomard", - state: State::AC, - }, - Municipio { - ibge_code: 1200609, - name: "Tarauacá", - state: State::AC, - }, - Municipio { - ibge_code: 1200708, - name: "Xapuri", - state: State::AC, - }, - Municipio { - ibge_code: 2700201, - name: "Anadia", - state: State::AL, - }, - Municipio { - ibge_code: 2700300, - name: "Arapiraca", - state: State::AL, - }, - Municipio { - ibge_code: 2700409, - name: "Atalaia", - state: State::AL, - }, - Municipio { - ibge_code: 2700508, - name: "Barra de Santo Antônio", - state: State::AL, - }, - Municipio { - ibge_code: 2700607, - name: "Barra de São Miguel", - state: State::AL, - }, - Municipio { - ibge_code: 2700706, - name: "Batalha", - state: State::AL, - }, - Municipio { - ibge_code: 2700904, - name: "Belo Monte", - state: State::AL, - }, - Municipio { - ibge_code: 2700805, - name: "Belém", - state: State::AL, - }, - Municipio { - ibge_code: 2701001, - name: "Boca da Mata", - state: State::AL, - }, - Municipio { - ibge_code: 2701100, - name: "Branquinha", - state: State::AL, - }, - Municipio { - ibge_code: 2701209, - name: "Cacimbinhas", - state: State::AL, - }, - Municipio { - ibge_code: 2701308, - name: "Cajueiro", - state: State::AL, - }, - Municipio { - ibge_code: 2701357, - name: "Campestre", - state: State::AL, - }, - Municipio { - ibge_code: 2701407, - name: "Campo Alegre", - state: State::AL, - }, - Municipio { - ibge_code: 2701506, - name: "Campo Grande", - state: State::AL, - }, - Municipio { - ibge_code: 2701605, - name: "Canapi", - state: State::AL, - }, - Municipio { - ibge_code: 2701704, - name: "Capela", - state: State::AL, - }, - Municipio { - ibge_code: 2701803, - name: "Carneiros", - state: State::AL, - }, - Municipio { - ibge_code: 2701902, - name: "Chã Preta", - state: State::AL, - }, - Municipio { - ibge_code: 2702009, - name: "Coité do Nóia", - state: State::AL, - }, - Municipio { - ibge_code: 2702108, - name: "Colônia Leopoldina", - state: State::AL, - }, - Municipio { - ibge_code: 2702207, - name: "Coqueiro Seco", - state: State::AL, - }, - Municipio { - ibge_code: 2702306, - name: "Coruripe", - state: State::AL, - }, - Municipio { - ibge_code: 2702355, - name: "Craíbas", - state: State::AL, - }, - Municipio { - ibge_code: 2702405, - name: "Delmiro Gouveia", - state: State::AL, - }, - Municipio { - ibge_code: 2702504, - name: "Dois Riachos", - state: State::AL, - }, - Municipio { - ibge_code: 2702553, - name: "Estrela de Alagoas", - state: State::AL, - }, - Municipio { - ibge_code: 2702603, - name: "Feira Grande", - state: State::AL, - }, - Municipio { - ibge_code: 2702702, - name: "Feliz Deserto", - state: State::AL, - }, - Municipio { - ibge_code: 2702801, - name: "Flexeiras", - state: State::AL, - }, - Municipio { - ibge_code: 2702900, - name: "Girau do Ponciano", - state: State::AL, - }, - Municipio { - ibge_code: 2703007, - name: "Ibateguara", - state: State::AL, - }, - Municipio { - ibge_code: 2703106, - name: "Igaci", - state: State::AL, - }, - Municipio { - ibge_code: 2703205, - name: "Igreja Nova", - state: State::AL, - }, - Municipio { - ibge_code: 2703304, - name: "Inhapi", - state: State::AL, - }, - Municipio { - ibge_code: 2703403, - name: "Jacaré dos Homens", - state: State::AL, - }, - Municipio { - ibge_code: 2703502, - name: "Jacuípe", - state: State::AL, - }, - Municipio { - ibge_code: 2703601, - name: "Japaratinga", - state: State::AL, - }, - Municipio { - ibge_code: 2703700, - name: "Jaramataia", - state: State::AL, - }, - Municipio { - ibge_code: 2703759, - name: "Jequiá da Praia", - state: State::AL, - }, - Municipio { - ibge_code: 2703809, - name: "Joaquim Gomes", - state: State::AL, - }, - Municipio { - ibge_code: 2703908, - name: "Jundiá", - state: State::AL, - }, - Municipio { - ibge_code: 2704005, - name: "Junqueiro", - state: State::AL, - }, - Municipio { - ibge_code: 2704104, - name: "Lagoa da Canoa", - state: State::AL, - }, - Municipio { - ibge_code: 2704203, - name: "Limoeiro de Anadia", - state: State::AL, - }, - Municipio { - ibge_code: 2704302, - name: "Maceió", - state: State::AL, - }, - Municipio { - ibge_code: 2704401, - name: "Major Isidoro", - state: State::AL, - }, - Municipio { - ibge_code: 2704906, - name: "Mar Vermelho", - state: State::AL, - }, - Municipio { - ibge_code: 2704500, - name: "Maragogi", - state: State::AL, - }, - Municipio { - ibge_code: 2704609, - name: "Maravilha", - state: State::AL, - }, - Municipio { - ibge_code: 2704708, - name: "Marechal Deodoro", - state: State::AL, - }, - Municipio { - ibge_code: 2704807, - name: "Maribondo", - state: State::AL, - }, - Municipio { - ibge_code: 2705002, - name: "Mata Grande", - state: State::AL, - }, - Municipio { - ibge_code: 2705101, - name: "Matriz de Camaragibe", - state: State::AL, - }, - Municipio { - ibge_code: 2705200, - name: "Messias", - state: State::AL, - }, - Municipio { - ibge_code: 2705309, - name: "Minador do Negrão", - state: State::AL, - }, - Municipio { - ibge_code: 2705408, - name: "Monteirópolis", - state: State::AL, - }, - Municipio { - ibge_code: 2705507, - name: "Murici", - state: State::AL, - }, - Municipio { - ibge_code: 2705606, - name: "Novo Lino", - state: State::AL, - }, - Municipio { - ibge_code: 2705903, - name: "Olho d'Água Grande", - state: State::AL, - }, - Municipio { - ibge_code: 2705705, - name: "Olho d'Água das Flores", - state: State::AL, - }, - Municipio { - ibge_code: 2705804, - name: "Olho d'Água do Casado", - state: State::AL, - }, - Municipio { - ibge_code: 2706000, - name: "Olivença", - state: State::AL, - }, - Municipio { - ibge_code: 2706109, - name: "Ouro Branco", - state: State::AL, - }, - Municipio { - ibge_code: 2706208, - name: "Palestina", - state: State::AL, - }, - Municipio { - ibge_code: 2706307, - name: "Palmeira dos Índios", - state: State::AL, - }, - Municipio { - ibge_code: 2706422, - name: "Pariconha", - state: State::AL, - }, - Municipio { - ibge_code: 2706448, - name: "Paripueira", - state: State::AL, - }, - Municipio { - ibge_code: 2706505, - name: "Passo de Camaragibe", - state: State::AL, - }, - Municipio { - ibge_code: 2706604, - name: "Paulo Jacinto", - state: State::AL, - }, - Municipio { - ibge_code: 2706703, - name: "Penedo", - state: State::AL, - }, - Municipio { - ibge_code: 2706802, - name: "Piaçabuçu", - state: State::AL, - }, - Municipio { - ibge_code: 2706901, - name: "Pilar", - state: State::AL, - }, - Municipio { - ibge_code: 2707008, - name: "Pindoba", - state: State::AL, - }, - Municipio { - ibge_code: 2707107, - name: "Piranhas", - state: State::AL, - }, - Municipio { - ibge_code: 2707305, - name: "Porto Calvo", - state: State::AL, - }, - Municipio { - ibge_code: 2707503, - name: "Porto Real do Colégio", - state: State::AL, - }, - Municipio { - ibge_code: 2707404, - name: "Porto de Pedras", - state: State::AL, - }, - Municipio { - ibge_code: 2707206, - name: "Poço das Trincheiras", - state: State::AL, - }, - Municipio { - ibge_code: 2706406, - name: "Pão de Açúcar", - state: State::AL, - }, - Municipio { - ibge_code: 2707602, - name: "Quebrangulo", - state: State::AL, - }, - Municipio { - ibge_code: 2707701, - name: "Rio Largo", - state: State::AL, - }, - Municipio { - ibge_code: 2707800, - name: "Roteiro", - state: State::AL, - }, - Municipio { - ibge_code: 2707909, - name: "Santa Luzia do Norte", - state: State::AL, - }, - Municipio { - ibge_code: 2708006, - name: "Santana do Ipanema", - state: State::AL, - }, - Municipio { - ibge_code: 2708105, - name: "Santana do Mundaú", - state: State::AL, - }, - Municipio { - ibge_code: 2708907, - name: "Satuba", - state: State::AL, - }, - Municipio { - ibge_code: 2708956, - name: "Senador Rui Palmeira", - state: State::AL, - }, - Municipio { - ibge_code: 2708204, - name: "São Brás", - state: State::AL, - }, - Municipio { - ibge_code: 2708303, - name: "São José da Laje", - state: State::AL, - }, - Municipio { - ibge_code: 2708402, - name: "São José da Tapera", - state: State::AL, - }, - Municipio { - ibge_code: 2708501, - name: "São Luís do Quitunde", - state: State::AL, - }, - Municipio { - ibge_code: 2708600, - name: "São Miguel dos Campos", - state: State::AL, - }, - Municipio { - ibge_code: 2708709, - name: "São Miguel dos Milagres", - state: State::AL, - }, - Municipio { - ibge_code: 2708808, - name: "São Sebastião", - state: State::AL, - }, - Municipio { - ibge_code: 2709004, - name: "Tanque d'Arca", - state: State::AL, - }, - Municipio { - ibge_code: 2709103, - name: "Taquarana", - state: State::AL, - }, - Municipio { - ibge_code: 2709152, - name: "Teotônio Vilela", - state: State::AL, - }, - Municipio { - ibge_code: 2709202, - name: "Traipu", - state: State::AL, - }, - Municipio { - ibge_code: 2709301, - name: "União dos Palmares", - state: State::AL, - }, - Municipio { - ibge_code: 2709400, - name: "Viçosa", - state: State::AL, - }, - Municipio { - ibge_code: 2700102, - name: "Água Branca", - state: State::AL, - }, - Municipio { - ibge_code: 1300029, - name: "Alvarães", - state: State::AM, - }, - Municipio { - ibge_code: 1300060, - name: "Amaturá", - state: State::AM, - }, - Municipio { - ibge_code: 1300086, - name: "Anamã", - state: State::AM, - }, - Municipio { - ibge_code: 1300102, - name: "Anori", - state: State::AM, - }, - Municipio { - ibge_code: 1300144, - name: "Apuí", - state: State::AM, - }, - Municipio { - ibge_code: 1300201, - name: "Atalaia do Norte", - state: State::AM, - }, - Municipio { - ibge_code: 1300300, - name: "Autazes", - state: State::AM, - }, - Municipio { - ibge_code: 1300409, - name: "Barcelos", - state: State::AM, - }, - Municipio { - ibge_code: 1300508, - name: "Barreirinha", - state: State::AM, - }, - Municipio { - ibge_code: 1300607, - name: "Benjamin Constant", - state: State::AM, - }, - Municipio { - ibge_code: 1300631, - name: "Beruri", - state: State::AM, - }, - Municipio { - ibge_code: 1300680, - name: "Boa Vista do Ramos", - state: State::AM, - }, - Municipio { - ibge_code: 1300706, - name: "Boca do Acre", - state: State::AM, - }, - Municipio { - ibge_code: 1300805, - name: "Borba", - state: State::AM, - }, - Municipio { - ibge_code: 1300839, - name: "Caapiranga", - state: State::AM, - }, - Municipio { - ibge_code: 1300904, - name: "Canutama", - state: State::AM, - }, - Municipio { - ibge_code: 1301001, - name: "Carauari", - state: State::AM, - }, - Municipio { - ibge_code: 1301100, - name: "Careiro", - state: State::AM, - }, - Municipio { - ibge_code: 1301159, - name: "Careiro da Várzea", - state: State::AM, - }, - Municipio { - ibge_code: 1301209, - name: "Coari", - state: State::AM, - }, - Municipio { - ibge_code: 1301308, - name: "Codajás", - state: State::AM, - }, - Municipio { - ibge_code: 1301407, - name: "Eirunepé", - state: State::AM, - }, - Municipio { - ibge_code: 1301506, - name: "Envira", - state: State::AM, - }, - Municipio { - ibge_code: 1301605, - name: "Fonte Boa", - state: State::AM, - }, - Municipio { - ibge_code: 1301654, - name: "Guajará", - state: State::AM, - }, - Municipio { - ibge_code: 1301704, - name: "Humaitá", - state: State::AM, - }, - Municipio { - ibge_code: 1301803, - name: "Ipixuna", - state: State::AM, - }, - Municipio { - ibge_code: 1301852, - name: "Iranduba", - state: State::AM, - }, - Municipio { - ibge_code: 1301902, - name: "Itacoatiara", - state: State::AM, - }, - Municipio { - ibge_code: 1301951, - name: "Itamarati", - state: State::AM, - }, - Municipio { - ibge_code: 1302009, - name: "Itapiranga", - state: State::AM, - }, - Municipio { - ibge_code: 1302108, - name: "Japurá", - state: State::AM, - }, - Municipio { - ibge_code: 1302207, - name: "Juruá", - state: State::AM, - }, - Municipio { - ibge_code: 1302306, - name: "Jutaí", - state: State::AM, - }, - Municipio { - ibge_code: 1302405, - name: "Lábrea", - state: State::AM, - }, - Municipio { - ibge_code: 1302504, - name: "Manacapuru", - state: State::AM, - }, - Municipio { - ibge_code: 1302553, - name: "Manaquiri", - state: State::AM, - }, - Municipio { - ibge_code: 1302603, - name: "Manaus", - state: State::AM, - }, - Municipio { - ibge_code: 1302702, - name: "Manicoré", - state: State::AM, - }, - Municipio { - ibge_code: 1302801, - name: "Maraã", - state: State::AM, - }, - Municipio { - ibge_code: 1302900, - name: "Maués", - state: State::AM, - }, - Municipio { - ibge_code: 1303007, - name: "Nhamundá", - state: State::AM, - }, - Municipio { - ibge_code: 1303106, - name: "Nova Olinda do Norte", - state: State::AM, - }, - Municipio { - ibge_code: 1303205, - name: "Novo Airão", - state: State::AM, - }, - Municipio { - ibge_code: 1303304, - name: "Novo Aripuanã", - state: State::AM, - }, - Municipio { - ibge_code: 1303403, - name: "Parintins", - state: State::AM, - }, - Municipio { - ibge_code: 1303502, - name: "Pauini", - state: State::AM, - }, - Municipio { - ibge_code: 1303536, - name: "Presidente Figueiredo", - state: State::AM, - }, - Municipio { - ibge_code: 1303569, - name: "Rio Preto da Eva", - state: State::AM, - }, - Municipio { - ibge_code: 1303601, - name: "Santa Isabel do Rio Negro", - state: State::AM, - }, - Municipio { - ibge_code: 1303700, - name: "Santo Antônio do Içá", - state: State::AM, - }, - Municipio { - ibge_code: 1304005, - name: "Silves", - state: State::AM, - }, - Municipio { - ibge_code: 1303809, - name: "São Gabriel da Cachoeira", - state: State::AM, - }, - Municipio { - ibge_code: 1303908, - name: "São Paulo de Olivença", - state: State::AM, - }, - Municipio { - ibge_code: 1303957, - name: "São Sebastião do Uatumã", - state: State::AM, - }, - Municipio { - ibge_code: 1304062, - name: "Tabatinga", - state: State::AM, - }, - Municipio { - ibge_code: 1304104, - name: "Tapauá", - state: State::AM, - }, - Municipio { - ibge_code: 1304203, - name: "Tefé", - state: State::AM, - }, - Municipio { - ibge_code: 1304237, - name: "Tonantins", - state: State::AM, - }, - Municipio { - ibge_code: 1304260, - name: "Uarini", - state: State::AM, - }, - Municipio { - ibge_code: 1304302, - name: "Urucará", - state: State::AM, - }, - Municipio { - ibge_code: 1304401, - name: "Urucurituba", - state: State::AM, - }, - Municipio { - ibge_code: 1600105, - name: "Amapá", - state: State::AP, - }, - Municipio { - ibge_code: 1600204, - name: "Calçoene", - state: State::AP, - }, - Municipio { - ibge_code: 1600212, - name: "Cutias", - state: State::AP, - }, - Municipio { - ibge_code: 1600238, - name: "Ferreira Gomes", - state: State::AP, - }, - Municipio { - ibge_code: 1600253, - name: "Itaubal", - state: State::AP, - }, - Municipio { - ibge_code: 1600279, - name: "Laranjal do Jari", - state: State::AP, - }, - Municipio { - ibge_code: 1600303, - name: "Macapá", - state: State::AP, - }, - Municipio { - ibge_code: 1600402, - name: "Mazagão", - state: State::AP, - }, - Municipio { - ibge_code: 1600501, - name: "Oiapoque", - state: State::AP, - }, - Municipio { - ibge_code: 1600154, - name: "Pedra Branca do Amapari", - state: State::AP, - }, - Municipio { - ibge_code: 1600535, - name: "Porto Grande", - state: State::AP, - }, - Municipio { - ibge_code: 1600550, - name: "Pracuúba", - state: State::AP, - }, - Municipio { - ibge_code: 1600600, - name: "Santana", - state: State::AP, - }, - Municipio { - ibge_code: 1600055, - name: "Serra do Navio", - state: State::AP, - }, - Municipio { - ibge_code: 1600709, - name: "Tartarugalzinho", - state: State::AP, - }, - Municipio { - ibge_code: 1600808, - name: "Vitória do Jari", - state: State::AP, - }, - Municipio { - ibge_code: 2900207, - name: "Abaré", - state: State::BA, - }, - Municipio { - ibge_code: 2900108, - name: "Abaíra", - state: State::BA, - }, - Municipio { - ibge_code: 2900306, - name: "Acajutiba", - state: State::BA, - }, - Municipio { - ibge_code: 2900355, - name: "Adustina", - state: State::BA, - }, - Municipio { - ibge_code: 2900603, - name: "Aiquara", - state: State::BA, - }, - Municipio { - ibge_code: 2900702, - name: "Alagoinhas", - state: State::BA, - }, - Municipio { - ibge_code: 2900801, - name: "Alcobaça", - state: State::BA, - }, - Municipio { - ibge_code: 2900900, - name: "Almadina", - state: State::BA, - }, - Municipio { - ibge_code: 2901007, - name: "Amargosa", - state: State::BA, - }, - Municipio { - ibge_code: 2901106, - name: "Amélia Rodrigues", - state: State::BA, - }, - Municipio { - ibge_code: 2901155, - name: "América Dourada", - state: State::BA, - }, - Municipio { - ibge_code: 2901205, - name: "Anagé", - state: State::BA, - }, - Municipio { - ibge_code: 2901304, - name: "Andaraí", - state: State::BA, - }, - Municipio { - ibge_code: 2901353, - name: "Andorinha", - state: State::BA, - }, - Municipio { - ibge_code: 2901403, - name: "Angical", - state: State::BA, - }, - Municipio { - ibge_code: 2901502, - name: "Anguera", - state: State::BA, - }, - Municipio { - ibge_code: 2901601, - name: "Antas", - state: State::BA, - }, - Municipio { - ibge_code: 2901700, - name: "Antônio Cardoso", - state: State::BA, - }, - Municipio { - ibge_code: 2901809, - name: "Antônio Gonçalves", - state: State::BA, - }, - Municipio { - ibge_code: 2901908, - name: "Aporá", - state: State::BA, - }, - Municipio { - ibge_code: 2901957, - name: "Apuarema", - state: State::BA, - }, - Municipio { - ibge_code: 2902005, - name: "Aracatu", - state: State::BA, - }, - Municipio { - ibge_code: 2902104, - name: "Araci", - state: State::BA, - }, - Municipio { - ibge_code: 2902203, - name: "Aramari", - state: State::BA, - }, - Municipio { - ibge_code: 2902252, - name: "Arataca", - state: State::BA, - }, - Municipio { - ibge_code: 2902302, - name: "Aratuípe", - state: State::BA, - }, - Municipio { - ibge_code: 2902054, - name: "Araçás", - state: State::BA, - }, - Municipio { - ibge_code: 2902401, - name: "Aurelino Leal", - state: State::BA, - }, - Municipio { - ibge_code: 2902500, - name: "Baianópolis", - state: State::BA, - }, - Municipio { - ibge_code: 2902609, - name: "Baixa Grande", - state: State::BA, - }, - Municipio { - ibge_code: 2902658, - name: "Banzaê", - state: State::BA, - }, - Municipio { - ibge_code: 2902708, - name: "Barra", - state: State::BA, - }, - Municipio { - ibge_code: 2902807, - name: "Barra da Estiva", - state: State::BA, - }, - Municipio { - ibge_code: 2902906, - name: "Barra do Choça", - state: State::BA, - }, - Municipio { - ibge_code: 2903003, - name: "Barra do Mendes", - state: State::BA, - }, - Municipio { - ibge_code: 2903102, - name: "Barra do Rocha", - state: State::BA, - }, - Municipio { - ibge_code: 2903201, - name: "Barreiras", - state: State::BA, - }, - Municipio { - ibge_code: 2903235, - name: "Barro Alto", - state: State::BA, - }, - Municipio { - ibge_code: 2903300, - name: "Barro Preto", - state: State::BA, - }, - Municipio { - ibge_code: 2903276, - name: "Barrocas", - state: State::BA, - }, - Municipio { - ibge_code: 2903409, - name: "Belmonte", - state: State::BA, - }, - Municipio { - ibge_code: 2903508, - name: "Belo Campo", - state: State::BA, - }, - Municipio { - ibge_code: 2903607, - name: "Biritinga", - state: State::BA, - }, - Municipio { - ibge_code: 2903706, - name: "Boa Nova", - state: State::BA, - }, - Municipio { - ibge_code: 2903805, - name: "Boa Vista do Tupim", - state: State::BA, - }, - Municipio { - ibge_code: 2903904, - name: "Bom Jesus da Lapa", - state: State::BA, - }, - Municipio { - ibge_code: 2903953, - name: "Bom Jesus da Serra", - state: State::BA, - }, - Municipio { - ibge_code: 2904001, - name: "Boninal", - state: State::BA, - }, - Municipio { - ibge_code: 2904050, - name: "Bonito", - state: State::BA, - }, - Municipio { - ibge_code: 2904100, - name: "Boquira", - state: State::BA, - }, - Municipio { - ibge_code: 2904209, - name: "Botuporã", - state: State::BA, - }, - Municipio { - ibge_code: 2904407, - name: "Brejolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2904308, - name: "Brejões", - state: State::BA, - }, - Municipio { - ibge_code: 2904506, - name: "Brotas de Macaúbas", - state: State::BA, - }, - Municipio { - ibge_code: 2904605, - name: "Brumado", - state: State::BA, - }, - Municipio { - ibge_code: 2904704, - name: "Buerarema", - state: State::BA, - }, - Municipio { - ibge_code: 2904753, - name: "Buritirama", - state: State::BA, - }, - Municipio { - ibge_code: 2904803, - name: "Caatiba", - state: State::BA, - }, - Municipio { - ibge_code: 2904852, - name: "Cabaceiras do Paraguaçu", - state: State::BA, - }, - Municipio { - ibge_code: 2904902, - name: "Cachoeira", - state: State::BA, - }, - Municipio { - ibge_code: 2905008, - name: "Caculé", - state: State::BA, - }, - Municipio { - ibge_code: 2905156, - name: "Caetanos", - state: State::BA, - }, - Municipio { - ibge_code: 2905206, - name: "Caetité", - state: State::BA, - }, - Municipio { - ibge_code: 2905305, - name: "Cafarnaum", - state: State::BA, - }, - Municipio { - ibge_code: 2905404, - name: "Cairu", - state: State::BA, - }, - Municipio { - ibge_code: 2905503, - name: "Caldeirão Grande", - state: State::BA, - }, - Municipio { - ibge_code: 2905602, - name: "Camacan", - state: State::BA, - }, - Municipio { - ibge_code: 2905800, - name: "Camamu", - state: State::BA, - }, - Municipio { - ibge_code: 2905701, - name: "Camaçari", - state: State::BA, - }, - Municipio { - ibge_code: 2905909, - name: "Campo Alegre de Lourdes", - state: State::BA, - }, - Municipio { - ibge_code: 2906006, - name: "Campo Formoso", - state: State::BA, - }, - Municipio { - ibge_code: 2906204, - name: "Canarana", - state: State::BA, - }, - Municipio { - ibge_code: 2906303, - name: "Canavieiras", - state: State::BA, - }, - Municipio { - ibge_code: 2906402, - name: "Candeal", - state: State::BA, - }, - Municipio { - ibge_code: 2906501, - name: "Candeias", - state: State::BA, - }, - Municipio { - ibge_code: 2906600, - name: "Candiba", - state: State::BA, - }, - Municipio { - ibge_code: 2906808, - name: "Cansanção", - state: State::BA, - }, - Municipio { - ibge_code: 2906824, - name: "Canudos", - state: State::BA, - }, - Municipio { - ibge_code: 2906105, - name: "Canápolis", - state: State::BA, - }, - Municipio { - ibge_code: 2906857, - name: "Capela do Alto Alegre", - state: State::BA, - }, - Municipio { - ibge_code: 2906873, - name: "Capim Grosso", - state: State::BA, - }, - Municipio { - ibge_code: 2906907, - name: "Caravelas", - state: State::BA, - }, - Municipio { - ibge_code: 2906899, - name: "Caraíbas", - state: State::BA, - }, - Municipio { - ibge_code: 2907004, - name: "Cardeal da Silva", - state: State::BA, - }, - Municipio { - ibge_code: 2907103, - name: "Carinhanha", - state: State::BA, - }, - Municipio { - ibge_code: 2907202, - name: "Casa Nova", - state: State::BA, - }, - Municipio { - ibge_code: 2907301, - name: "Castro Alves", - state: State::BA, - }, - Municipio { - ibge_code: 2907400, - name: "Catolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2907509, - name: "Catu", - state: State::BA, - }, - Municipio { - ibge_code: 2907558, - name: "Caturama", - state: State::BA, - }, - Municipio { - ibge_code: 2905107, - name: "Caém", - state: State::BA, - }, - Municipio { - ibge_code: 2907608, - name: "Central", - state: State::BA, - }, - Municipio { - ibge_code: 2907707, - name: "Chorrochó", - state: State::BA, - }, - Municipio { - ibge_code: 2907905, - name: "Cipó", - state: State::BA, - }, - Municipio { - ibge_code: 2908002, - name: "Coaraci", - state: State::BA, - }, - Municipio { - ibge_code: 2908101, - name: "Cocos", - state: State::BA, - }, - Municipio { - ibge_code: 2908200, - name: "Conceição da Feira", - state: State::BA, - }, - Municipio { - ibge_code: 2908309, - name: "Conceição do Almeida", - state: State::BA, - }, - Municipio { - ibge_code: 2908408, - name: "Conceição do Coité", - state: State::BA, - }, - Municipio { - ibge_code: 2908507, - name: "Conceição do Jacuípe", - state: State::BA, - }, - Municipio { - ibge_code: 2908606, - name: "Conde", - state: State::BA, - }, - Municipio { - ibge_code: 2908705, - name: "Condeúba", - state: State::BA, - }, - Municipio { - ibge_code: 2908804, - name: "Contendas do Sincorá", - state: State::BA, - }, - Municipio { - ibge_code: 2908903, - name: "Coração de Maria", - state: State::BA, - }, - Municipio { - ibge_code: 2909000, - name: "Cordeiros", - state: State::BA, - }, - Municipio { - ibge_code: 2909109, - name: "Coribe", - state: State::BA, - }, - Municipio { - ibge_code: 2909208, - name: "Coronel João Sá", - state: State::BA, - }, - Municipio { - ibge_code: 2909307, - name: "Correntina", - state: State::BA, - }, - Municipio { - ibge_code: 2909406, - name: "Cotegipe", - state: State::BA, - }, - Municipio { - ibge_code: 2909505, - name: "Cravolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2909703, - name: "Cristópolis", - state: State::BA, - }, - Municipio { - ibge_code: 2909604, - name: "Crisópolis", - state: State::BA, - }, - Municipio { - ibge_code: 2909802, - name: "Cruz das Almas", - state: State::BA, - }, - Municipio { - ibge_code: 2909901, - name: "Curaçá", - state: State::BA, - }, - Municipio { - ibge_code: 2906709, - name: "Cândido Sales", - state: State::BA, - }, - Municipio { - ibge_code: 2907806, - name: "Cícero Dantas", - state: State::BA, - }, - Municipio { - ibge_code: 2910057, - name: "Dias d'Ávila", - state: State::BA, - }, - Municipio { - ibge_code: 2910107, - name: "Dom Basílio", - state: State::BA, - }, - Municipio { - ibge_code: 2910206, - name: "Dom Macedo Costa", - state: State::BA, - }, - Municipio { - ibge_code: 2910008, - name: "Dário Meira", - state: State::BA, - }, - Municipio { - ibge_code: 2910305, - name: "Elísio Medrado", - state: State::BA, - }, - Municipio { - ibge_code: 2910404, - name: "Encruzilhada", - state: State::BA, - }, - Municipio { - ibge_code: 2910503, - name: "Entre Rios", - state: State::BA, - }, - Municipio { - ibge_code: 2910602, - name: "Esplanada", - state: State::BA, - }, - Municipio { - ibge_code: 2910701, - name: "Euclides da Cunha", - state: State::BA, - }, - Municipio { - ibge_code: 2910727, - name: "Eunápolis", - state: State::BA, - }, - Municipio { - ibge_code: 2910776, - name: "Feira da Mata", - state: State::BA, - }, - Municipio { - ibge_code: 2910800, - name: "Feira de Santana", - state: State::BA, - }, - Municipio { - ibge_code: 2910859, - name: "Filadélfia", - state: State::BA, - }, - Municipio { - ibge_code: 2910909, - name: "Firmino Alves", - state: State::BA, - }, - Municipio { - ibge_code: 2911006, - name: "Floresta Azul", - state: State::BA, - }, - Municipio { - ibge_code: 2911105, - name: "Formosa do Rio Preto", - state: State::BA, - }, - Municipio { - ibge_code: 2910750, - name: "Fátima", - state: State::BA, - }, - Municipio { - ibge_code: 2911204, - name: "Gandu", - state: State::BA, - }, - Municipio { - ibge_code: 2911253, - name: "Gavião", - state: State::BA, - }, - Municipio { - ibge_code: 2911303, - name: "Gentio do Ouro", - state: State::BA, - }, - Municipio { - ibge_code: 2911402, - name: "Glória", - state: State::BA, - }, - Municipio { - ibge_code: 2911501, - name: "Gongogi", - state: State::BA, - }, - Municipio { - ibge_code: 2911600, - name: "Governador Mangabeira", - state: State::BA, - }, - Municipio { - ibge_code: 2911659, - name: "Guajeru", - state: State::BA, - }, - Municipio { - ibge_code: 2911709, - name: "Guanambi", - state: State::BA, - }, - Municipio { - ibge_code: 2911808, - name: "Guaratinga", - state: State::BA, - }, - Municipio { - ibge_code: 2911857, - name: "Heliópolis", - state: State::BA, - }, - Municipio { - ibge_code: 2911907, - name: "Iaçu", - state: State::BA, - }, - Municipio { - ibge_code: 2912004, - name: "Ibiassucê", - state: State::BA, - }, - Municipio { - ibge_code: 2912103, - name: "Ibicaraí", - state: State::BA, - }, - Municipio { - ibge_code: 2912202, - name: "Ibicoara", - state: State::BA, - }, - Municipio { - ibge_code: 2912301, - name: "Ibicuí", - state: State::BA, - }, - Municipio { - ibge_code: 2912400, - name: "Ibipeba", - state: State::BA, - }, - Municipio { - ibge_code: 2912509, - name: "Ibipitanga", - state: State::BA, - }, - Municipio { - ibge_code: 2912608, - name: "Ibiquera", - state: State::BA, - }, - Municipio { - ibge_code: 2912707, - name: "Ibirapitanga", - state: State::BA, - }, - Municipio { - ibge_code: 2912806, - name: "Ibirapuã", - state: State::BA, - }, - Municipio { - ibge_code: 2912905, - name: "Ibirataia", - state: State::BA, - }, - Municipio { - ibge_code: 2913002, - name: "Ibitiara", - state: State::BA, - }, - Municipio { - ibge_code: 2913101, - name: "Ibititá", - state: State::BA, - }, - Municipio { - ibge_code: 2913200, - name: "Ibotirama", - state: State::BA, - }, - Municipio { - ibge_code: 2913309, - name: "Ichu", - state: State::BA, - }, - Municipio { - ibge_code: 2913408, - name: "Igaporã", - state: State::BA, - }, - Municipio { - ibge_code: 2913457, - name: "Igrapiúna", - state: State::BA, - }, - Municipio { - ibge_code: 2913507, - name: "Iguaí", - state: State::BA, - }, - Municipio { - ibge_code: 2913606, - name: "Ilhéus", - state: State::BA, - }, - Municipio { - ibge_code: 2913705, - name: "Inhambupe", - state: State::BA, - }, - Municipio { - ibge_code: 2913804, - name: "Ipecaetá", - state: State::BA, - }, - Municipio { - ibge_code: 2913903, - name: "Ipiaú", - state: State::BA, - }, - Municipio { - ibge_code: 2914000, - name: "Ipirá", - state: State::BA, - }, - Municipio { - ibge_code: 2914109, - name: "Ipupiara", - state: State::BA, - }, - Municipio { - ibge_code: 2914208, - name: "Irajuba", - state: State::BA, - }, - Municipio { - ibge_code: 2914307, - name: "Iramaia", - state: State::BA, - }, - Municipio { - ibge_code: 2914406, - name: "Iraquara", - state: State::BA, - }, - Municipio { - ibge_code: 2914505, - name: "Irará", - state: State::BA, - }, - Municipio { - ibge_code: 2914604, - name: "Irecê", - state: State::BA, - }, - Municipio { - ibge_code: 2914653, - name: "Itabela", - state: State::BA, - }, - Municipio { - ibge_code: 2914703, - name: "Itaberaba", - state: State::BA, - }, - Municipio { - ibge_code: 2914802, - name: "Itabuna", - state: State::BA, - }, - Municipio { - ibge_code: 2914901, - name: "Itacaré", - state: State::BA, - }, - Municipio { - ibge_code: 2915007, - name: "Itaeté", - state: State::BA, - }, - Municipio { - ibge_code: 2915106, - name: "Itagi", - state: State::BA, - }, - Municipio { - ibge_code: 2915205, - name: "Itagibá", - state: State::BA, - }, - Municipio { - ibge_code: 2915304, - name: "Itagimirim", - state: State::BA, - }, - Municipio { - ibge_code: 2915353, - name: "Itaguaçu da Bahia", - state: State::BA, - }, - Municipio { - ibge_code: 2915403, - name: "Itaju do Colônia", - state: State::BA, - }, - Municipio { - ibge_code: 2915502, - name: "Itajuípe", - state: State::BA, - }, - Municipio { - ibge_code: 2915601, - name: "Itamaraju", - state: State::BA, - }, - Municipio { - ibge_code: 2915700, - name: "Itamari", - state: State::BA, - }, - Municipio { - ibge_code: 2915809, - name: "Itambé", - state: State::BA, - }, - Municipio { - ibge_code: 2915908, - name: "Itanagra", - state: State::BA, - }, - Municipio { - ibge_code: 2916005, - name: "Itanhém", - state: State::BA, - }, - Municipio { - ibge_code: 2916104, - name: "Itaparica", - state: State::BA, - }, - Municipio { - ibge_code: 2916302, - name: "Itapebi", - state: State::BA, - }, - Municipio { - ibge_code: 2916401, - name: "Itapetinga", - state: State::BA, - }, - Municipio { - ibge_code: 2916500, - name: "Itapicuru", - state: State::BA, - }, - Municipio { - ibge_code: 2916609, - name: "Itapitanga", - state: State::BA, - }, - Municipio { - ibge_code: 2916203, - name: "Itapé", - state: State::BA, - }, - Municipio { - ibge_code: 2916708, - name: "Itaquara", - state: State::BA, - }, - Municipio { - ibge_code: 2916807, - name: "Itarantim", - state: State::BA, - }, - Municipio { - ibge_code: 2916856, - name: "Itatim", - state: State::BA, - }, - Municipio { - ibge_code: 2916906, - name: "Itiruçu", - state: State::BA, - }, - Municipio { - ibge_code: 2917003, - name: "Itiúba", - state: State::BA, - }, - Municipio { - ibge_code: 2917102, - name: "Itororó", - state: State::BA, - }, - Municipio { - ibge_code: 2917201, - name: "Ituaçu", - state: State::BA, - }, - Municipio { - ibge_code: 2917300, - name: "Ituberá", - state: State::BA, - }, - Municipio { - ibge_code: 2917334, - name: "Iuiu", - state: State::BA, - }, - Municipio { - ibge_code: 2917359, - name: "Jaborandi", - state: State::BA, - }, - Municipio { - ibge_code: 2917409, - name: "Jacaraci", - state: State::BA, - }, - Municipio { - ibge_code: 2917508, - name: "Jacobina", - state: State::BA, - }, - Municipio { - ibge_code: 2917607, - name: "Jaguaquara", - state: State::BA, - }, - Municipio { - ibge_code: 2917706, - name: "Jaguarari", - state: State::BA, - }, - Municipio { - ibge_code: 2917805, - name: "Jaguaripe", - state: State::BA, - }, - Municipio { - ibge_code: 2917904, - name: "Jandaíra", - state: State::BA, - }, - Municipio { - ibge_code: 2918001, - name: "Jequié", - state: State::BA, - }, - Municipio { - ibge_code: 2918100, - name: "Jeremoabo", - state: State::BA, - }, - Municipio { - ibge_code: 2918209, - name: "Jiquiriçá", - state: State::BA, - }, - Municipio { - ibge_code: 2918308, - name: "Jitaúna", - state: State::BA, - }, - Municipio { - ibge_code: 2918357, - name: "João Dourado", - state: State::BA, - }, - Municipio { - ibge_code: 2918407, - name: "Juazeiro", - state: State::BA, - }, - Municipio { - ibge_code: 2918456, - name: "Jucuruçu", - state: State::BA, - }, - Municipio { - ibge_code: 2918506, - name: "Jussara", - state: State::BA, - }, - Municipio { - ibge_code: 2918555, - name: "Jussari", - state: State::BA, - }, - Municipio { - ibge_code: 2918605, - name: "Jussiape", - state: State::BA, - }, - Municipio { - ibge_code: 2918704, - name: "Lafaiete Coutinho", - state: State::BA, - }, - Municipio { - ibge_code: 2918753, - name: "Lagoa Real", - state: State::BA, - }, - Municipio { - ibge_code: 2918803, - name: "Laje", - state: State::BA, - }, - Municipio { - ibge_code: 2919009, - name: "Lajedinho", - state: State::BA, - }, - Municipio { - ibge_code: 2919058, - name: "Lajedo do Tabocal", - state: State::BA, - }, - Municipio { - ibge_code: 2918902, - name: "Lajedão", - state: State::BA, - }, - Municipio { - ibge_code: 2919108, - name: "Lamarão", - state: State::BA, - }, - Municipio { - ibge_code: 2919157, - name: "Lapão", - state: State::BA, - }, - Municipio { - ibge_code: 2919207, - name: "Lauro de Freitas", - state: State::BA, - }, - Municipio { - ibge_code: 2919306, - name: "Lençóis", - state: State::BA, - }, - Municipio { - ibge_code: 2919405, - name: "Licínio de Almeida", - state: State::BA, - }, - Municipio { - ibge_code: 2919504, - name: "Livramento de Nossa Senhora", - state: State::BA, - }, - Municipio { - ibge_code: 2919553, - name: "Luís Eduardo Magalhães", - state: State::BA, - }, - Municipio { - ibge_code: 2919603, - name: "Macajuba", - state: State::BA, - }, - Municipio { - ibge_code: 2919702, - name: "Macarani", - state: State::BA, - }, - Municipio { - ibge_code: 2919801, - name: "Macaúbas", - state: State::BA, - }, - Municipio { - ibge_code: 2919900, - name: "Macururé", - state: State::BA, - }, - Municipio { - ibge_code: 2919926, - name: "Madre de Deus", - state: State::BA, - }, - Municipio { - ibge_code: 2919959, - name: "Maetinga", - state: State::BA, - }, - Municipio { - ibge_code: 2920007, - name: "Maiquinique", - state: State::BA, - }, - Municipio { - ibge_code: 2920106, - name: "Mairi", - state: State::BA, - }, - Municipio { - ibge_code: 2920205, - name: "Malhada", - state: State::BA, - }, - Municipio { - ibge_code: 2920304, - name: "Malhada de Pedras", - state: State::BA, - }, - Municipio { - ibge_code: 2920403, - name: "Manoel Vitorino", - state: State::BA, - }, - Municipio { - ibge_code: 2920452, - name: "Mansidão", - state: State::BA, - }, - Municipio { - ibge_code: 2920502, - name: "Maracás", - state: State::BA, - }, - Municipio { - ibge_code: 2920601, - name: "Maragogipe", - state: State::BA, - }, - Municipio { - ibge_code: 2920700, - name: "Maraú", - state: State::BA, - }, - Municipio { - ibge_code: 2920809, - name: "Marcionílio Souza", - state: State::BA, - }, - Municipio { - ibge_code: 2920908, - name: "Mascote", - state: State::BA, - }, - Municipio { - ibge_code: 2921005, - name: "Mata de São João", - state: State::BA, - }, - Municipio { - ibge_code: 2921054, - name: "Matina", - state: State::BA, - }, - Municipio { - ibge_code: 2921104, - name: "Medeiros Neto", - state: State::BA, - }, - Municipio { - ibge_code: 2921203, - name: "Miguel Calmon", - state: State::BA, - }, - Municipio { - ibge_code: 2921302, - name: "Milagres", - state: State::BA, - }, - Municipio { - ibge_code: 2921401, - name: "Mirangaba", - state: State::BA, - }, - Municipio { - ibge_code: 2921450, - name: "Mirante", - state: State::BA, - }, - Municipio { - ibge_code: 2921500, - name: "Monte Santo", - state: State::BA, - }, - Municipio { - ibge_code: 2921609, - name: "Morpará", - state: State::BA, - }, - Municipio { - ibge_code: 2921708, - name: "Morro do Chapéu", - state: State::BA, - }, - Municipio { - ibge_code: 2921807, - name: "Mortugaba", - state: State::BA, - }, - Municipio { - ibge_code: 2921906, - name: "Mucugê", - state: State::BA, - }, - Municipio { - ibge_code: 2922003, - name: "Mucuri", - state: State::BA, - }, - Municipio { - ibge_code: 2922052, - name: "Mulungu do Morro", - state: State::BA, - }, - Municipio { - ibge_code: 2922102, - name: "Mundo Novo", - state: State::BA, - }, - Municipio { - ibge_code: 2922201, - name: "Muniz Ferreira", - state: State::BA, - }, - Municipio { - ibge_code: 2922250, - name: "Muquém do São Francisco", - state: State::BA, - }, - Municipio { - ibge_code: 2922300, - name: "Muritiba", - state: State::BA, - }, - Municipio { - ibge_code: 2922409, - name: "Mutuípe", - state: State::BA, - }, - Municipio { - ibge_code: 2922508, - name: "Nazaré", - state: State::BA, - }, - Municipio { - ibge_code: 2922607, - name: "Nilo Peçanha", - state: State::BA, - }, - Municipio { - ibge_code: 2922656, - name: "Nordestina", - state: State::BA, - }, - Municipio { - ibge_code: 2922706, - name: "Nova Canaã", - state: State::BA, - }, - Municipio { - ibge_code: 2922730, - name: "Nova Fátima", - state: State::BA, - }, - Municipio { - ibge_code: 2922755, - name: "Nova Ibiá", - state: State::BA, - }, - Municipio { - ibge_code: 2922805, - name: "Nova Itarana", - state: State::BA, - }, - Municipio { - ibge_code: 2922854, - name: "Nova Redenção", - state: State::BA, - }, - Municipio { - ibge_code: 2922904, - name: "Nova Soure", - state: State::BA, - }, - Municipio { - ibge_code: 2923001, - name: "Nova Viçosa", - state: State::BA, - }, - Municipio { - ibge_code: 2923035, - name: "Novo Horizonte", - state: State::BA, - }, - Municipio { - ibge_code: 2923050, - name: "Novo Triunfo", - state: State::BA, - }, - Municipio { - ibge_code: 2923100, - name: "Olindina", - state: State::BA, - }, - Municipio { - ibge_code: 2923209, - name: "Oliveira dos Brejinhos", - state: State::BA, - }, - Municipio { - ibge_code: 2923308, - name: "Ouriçangas", - state: State::BA, - }, - Municipio { - ibge_code: 2923357, - name: "Ourolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2923407, - name: "Palmas de Monte Alto", - state: State::BA, - }, - Municipio { - ibge_code: 2923506, - name: "Palmeiras", - state: State::BA, - }, - Municipio { - ibge_code: 2923605, - name: "Paramirim", - state: State::BA, - }, - Municipio { - ibge_code: 2923704, - name: "Paratinga", - state: State::BA, - }, - Municipio { - ibge_code: 2923803, - name: "Paripiranga", - state: State::BA, - }, - Municipio { - ibge_code: 2923902, - name: "Pau Brasil", - state: State::BA, - }, - Municipio { - ibge_code: 2924009, - name: "Paulo Afonso", - state: State::BA, - }, - Municipio { - ibge_code: 2924207, - name: "Pedro Alexandre", - state: State::BA, - }, - Municipio { - ibge_code: 2924108, - name: "Pedrão", - state: State::BA, - }, - Municipio { - ibge_code: 2924306, - name: "Piatã", - state: State::BA, - }, - Municipio { - ibge_code: 2924405, - name: "Pilão Arcado", - state: State::BA, - }, - Municipio { - ibge_code: 2924504, - name: "Pindaí", - state: State::BA, - }, - Municipio { - ibge_code: 2924603, - name: "Pindobaçu", - state: State::BA, - }, - Municipio { - ibge_code: 2924652, - name: "Pintadas", - state: State::BA, - }, - Municipio { - ibge_code: 2924678, - name: "Piraí do Norte", - state: State::BA, - }, - Municipio { - ibge_code: 2924702, - name: "Piripá", - state: State::BA, - }, - Municipio { - ibge_code: 2924801, - name: "Piritiba", - state: State::BA, - }, - Municipio { - ibge_code: 2924900, - name: "Planaltino", - state: State::BA, - }, - Municipio { - ibge_code: 2925006, - name: "Planalto", - state: State::BA, - }, - Municipio { - ibge_code: 2925204, - name: "Pojuca", - state: State::BA, - }, - Municipio { - ibge_code: 2925253, - name: "Ponto Novo", - state: State::BA, - }, - Municipio { - ibge_code: 2925303, - name: "Porto Seguro", - state: State::BA, - }, - Municipio { - ibge_code: 2925402, - name: "Potiraguá", - state: State::BA, - }, - Municipio { - ibge_code: 2925105, - name: "Poções", - state: State::BA, - }, - Municipio { - ibge_code: 2925501, - name: "Prado", - state: State::BA, - }, - Municipio { - ibge_code: 2925600, - name: "Presidente Dutra", - state: State::BA, - }, - Municipio { - ibge_code: 2925709, - name: "Presidente Jânio Quadros", - state: State::BA, - }, - Municipio { - ibge_code: 2925758, - name: "Presidente Tancredo Neves", - state: State::BA, - }, - Municipio { - ibge_code: 2924058, - name: "Pé de Serra", - state: State::BA, - }, - Municipio { - ibge_code: 2925808, - name: "Queimadas", - state: State::BA, - }, - Municipio { - ibge_code: 2925907, - name: "Quijingue", - state: State::BA, - }, - Municipio { - ibge_code: 2925931, - name: "Quixabeira", - state: State::BA, - }, - Municipio { - ibge_code: 2925956, - name: "Rafael Jambeiro", - state: State::BA, - }, - Municipio { - ibge_code: 2926004, - name: "Remanso", - state: State::BA, - }, - Municipio { - ibge_code: 2926103, - name: "Retirolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2926400, - name: "Riacho de Santana", - state: State::BA, - }, - Municipio { - ibge_code: 2926202, - name: "Riachão das Neves", - state: State::BA, - }, - Municipio { - ibge_code: 2926301, - name: "Riachão do Jacuípe", - state: State::BA, - }, - Municipio { - ibge_code: 2926509, - name: "Ribeira do Amparo", - state: State::BA, - }, - Municipio { - ibge_code: 2926608, - name: "Ribeira do Pombal", - state: State::BA, - }, - Municipio { - ibge_code: 2926657, - name: "Ribeirão do Largo", - state: State::BA, - }, - Municipio { - ibge_code: 2927002, - name: "Rio Real", - state: State::BA, - }, - Municipio { - ibge_code: 2926707, - name: "Rio de Contas", - state: State::BA, - }, - Municipio { - ibge_code: 2926806, - name: "Rio do Antônio", - state: State::BA, - }, - Municipio { - ibge_code: 2926905, - name: "Rio do Pires", - state: State::BA, - }, - Municipio { - ibge_code: 2927101, - name: "Rodelas", - state: State::BA, - }, - Municipio { - ibge_code: 2927200, - name: "Ruy Barbosa", - state: State::BA, - }, - Municipio { - ibge_code: 2927309, - name: "Salinas da Margarida", - state: State::BA, - }, - Municipio { - ibge_code: 2927408, - name: "Salvador", - state: State::BA, - }, - Municipio { - ibge_code: 2927606, - name: "Santa Brígida", - state: State::BA, - }, - Municipio { - ibge_code: 2927507, - name: "Santa Bárbara", - state: State::BA, - }, - Municipio { - ibge_code: 2927705, - name: "Santa Cruz Cabrália", - state: State::BA, - }, - Municipio { - ibge_code: 2927804, - name: "Santa Cruz da Vitória", - state: State::BA, - }, - Municipio { - ibge_code: 2927903, - name: "Santa Inês", - state: State::BA, - }, - Municipio { - ibge_code: 2928059, - name: "Santa Luzia", - state: State::BA, - }, - Municipio { - ibge_code: 2928109, - name: "Santa Maria da Vitória", - state: State::BA, - }, - Municipio { - ibge_code: 2928406, - name: "Santa Rita de Cássia", - state: State::BA, - }, - Municipio { - ibge_code: 2928505, - name: "Santa Terezinha", - state: State::BA, - }, - Municipio { - ibge_code: 2928000, - name: "Santaluz", - state: State::BA, - }, - Municipio { - ibge_code: 2928208, - name: "Santana", - state: State::BA, - }, - Municipio { - ibge_code: 2928307, - name: "Santanópolis", - state: State::BA, - }, - Municipio { - ibge_code: 2928604, - name: "Santo Amaro", - state: State::BA, - }, - Municipio { - ibge_code: 2928703, - name: "Santo Antônio de Jesus", - state: State::BA, - }, - Municipio { - ibge_code: 2928802, - name: "Santo Estêvão", - state: State::BA, - }, - Municipio { - ibge_code: 2929602, - name: "Sapeaçu", - state: State::BA, - }, - Municipio { - ibge_code: 2929750, - name: "Saubara", - state: State::BA, - }, - Municipio { - ibge_code: 2929800, - name: "Saúde", - state: State::BA, - }, - Municipio { - ibge_code: 2929909, - name: "Seabra", - state: State::BA, - }, - Municipio { - ibge_code: 2930006, - name: "Sebastião Laranjeiras", - state: State::BA, - }, - Municipio { - ibge_code: 2930105, - name: "Senhor do Bonfim", - state: State::BA, - }, - Municipio { - ibge_code: 2930204, - name: "Sento Sé", - state: State::BA, - }, - Municipio { - ibge_code: 2930303, - name: "Serra Dourada", - state: State::BA, - }, - Municipio { - ibge_code: 2930402, - name: "Serra Preta", - state: State::BA, - }, - Municipio { - ibge_code: 2930154, - name: "Serra do Ramalho", - state: State::BA, - }, - Municipio { - ibge_code: 2930501, - name: "Serrinha", - state: State::BA, - }, - Municipio { - ibge_code: 2930600, - name: "Serrolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2930709, - name: "Simões Filho", - state: State::BA, - }, - Municipio { - ibge_code: 2930774, - name: "Sobradinho", - state: State::BA, - }, - Municipio { - ibge_code: 2930808, - name: "Souto Soares", - state: State::BA, - }, - Municipio { - ibge_code: 2929701, - name: "Sátiro Dias", - state: State::BA, - }, - Municipio { - ibge_code: 2928901, - name: "São Desidério", - state: State::BA, - }, - Municipio { - ibge_code: 2928950, - name: "São Domingos", - state: State::BA, - }, - Municipio { - ibge_code: 2929107, - name: "São Felipe", - state: State::BA, - }, - Municipio { - ibge_code: 2929206, - name: "São Francisco do Conde", - state: State::BA, - }, - Municipio { - ibge_code: 2929008, - name: "São Félix", - state: State::BA, - }, - Municipio { - ibge_code: 2929057, - name: "São Félix do Coribe", - state: State::BA, - }, - Municipio { - ibge_code: 2929255, - name: "São Gabriel", - state: State::BA, - }, - Municipio { - ibge_code: 2929305, - name: "São Gonçalo dos Campos", - state: State::BA, - }, - Municipio { - ibge_code: 2929354, - name: "São José da Vitória", - state: State::BA, - }, - Municipio { - ibge_code: 2929370, - name: "São José do Jacuípe", - state: State::BA, - }, - Municipio { - ibge_code: 2929404, - name: "São Miguel das Matas", - state: State::BA, - }, - Municipio { - ibge_code: 2929503, - name: "São Sebastião do Passé", - state: State::BA, - }, - Municipio { - ibge_code: 2930758, - name: "Sítio do Mato", - state: State::BA, - }, - Municipio { - ibge_code: 2930766, - name: "Sítio do Quinto", - state: State::BA, - }, - Municipio { - ibge_code: 2930907, - name: "Tabocas do Brejo Velho", - state: State::BA, - }, - Municipio { - ibge_code: 2931004, - name: "Tanhaçu", - state: State::BA, - }, - Municipio { - ibge_code: 2931053, - name: "Tanque Novo", - state: State::BA, - }, - Municipio { - ibge_code: 2931103, - name: "Tanquinho", - state: State::BA, - }, - Municipio { - ibge_code: 2931202, - name: "Taperoá", - state: State::BA, - }, - Municipio { - ibge_code: 2931301, - name: "Tapiramutá", - state: State::BA, - }, - Municipio { - ibge_code: 2931350, - name: "Teixeira de Freitas", - state: State::BA, - }, - Municipio { - ibge_code: 2931400, - name: "Teodoro Sampaio", - state: State::BA, - }, - Municipio { - ibge_code: 2931509, - name: "Teofilândia", - state: State::BA, - }, - Municipio { - ibge_code: 2931608, - name: "Teolândia", - state: State::BA, - }, - Municipio { - ibge_code: 2931707, - name: "Terra Nova", - state: State::BA, - }, - Municipio { - ibge_code: 2931806, - name: "Tremedal", - state: State::BA, - }, - Municipio { - ibge_code: 2931905, - name: "Tucano", - state: State::BA, - }, - Municipio { - ibge_code: 2932002, - name: "Uauá", - state: State::BA, - }, - Municipio { - ibge_code: 2932200, - name: "Ubaitaba", - state: State::BA, - }, - Municipio { - ibge_code: 2932309, - name: "Ubatã", - state: State::BA, - }, - Municipio { - ibge_code: 2932101, - name: "Ubaíra", - state: State::BA, - }, - Municipio { - ibge_code: 2932408, - name: "Uibaí", - state: State::BA, - }, - Municipio { - ibge_code: 2932457, - name: "Umburanas", - state: State::BA, - }, - Municipio { - ibge_code: 2932507, - name: "Una", - state: State::BA, - }, - Municipio { - ibge_code: 2932606, - name: "Urandi", - state: State::BA, - }, - Municipio { - ibge_code: 2932705, - name: "Uruçuca", - state: State::BA, - }, - Municipio { - ibge_code: 2932804, - name: "Utinga", - state: State::BA, - }, - Municipio { - ibge_code: 2933000, - name: "Valente", - state: State::BA, - }, - Municipio { - ibge_code: 2932903, - name: "Valença", - state: State::BA, - }, - Municipio { - ibge_code: 2933174, - name: "Varzedo", - state: State::BA, - }, - Municipio { - ibge_code: 2933208, - name: "Vera Cruz", - state: State::BA, - }, - Municipio { - ibge_code: 2933257, - name: "Vereda", - state: State::BA, - }, - Municipio { - ibge_code: 2933307, - name: "Vitória da Conquista", - state: State::BA, - }, - Municipio { - ibge_code: 2933158, - name: "Várzea Nova", - state: State::BA, - }, - Municipio { - ibge_code: 2933059, - name: "Várzea da Roça", - state: State::BA, - }, - Municipio { - ibge_code: 2933109, - name: "Várzea do Poço", - state: State::BA, - }, - Municipio { - ibge_code: 2933406, - name: "Wagner", - state: State::BA, - }, - Municipio { - ibge_code: 2933455, - name: "Wanderley", - state: State::BA, - }, - Municipio { - ibge_code: 2933505, - name: "Wenceslau Guimarães", - state: State::BA, - }, - Municipio { - ibge_code: 2933604, - name: "Xique-Xique", - state: State::BA, - }, - Municipio { - ibge_code: 2900405, - name: "Água Fria", - state: State::BA, - }, - Municipio { - ibge_code: 2900504, - name: "Érico Cardoso", - state: State::BA, - }, - Municipio { - ibge_code: 2300101, - name: "Abaiara", - state: State::CE, - }, - Municipio { - ibge_code: 2300150, - name: "Acarape", - state: State::CE, - }, - Municipio { - ibge_code: 2300200, - name: "Acaraú", - state: State::CE, - }, - Municipio { - ibge_code: 2300309, - name: "Acopiara", - state: State::CE, - }, - Municipio { - ibge_code: 2300408, - name: "Aiuaba", - state: State::CE, - }, - Municipio { - ibge_code: 2300507, - name: "Alcântaras", - state: State::CE, - }, - Municipio { - ibge_code: 2300606, - name: "Altaneira", - state: State::CE, - }, - Municipio { - ibge_code: 2300705, - name: "Alto Santo", - state: State::CE, - }, - Municipio { - ibge_code: 2300754, - name: "Amontada", - state: State::CE, - }, - Municipio { - ibge_code: 2300804, - name: "Antonina do Norte", - state: State::CE, - }, - Municipio { - ibge_code: 2300903, - name: "Apuiarés", - state: State::CE, - }, - Municipio { - ibge_code: 2301000, - name: "Aquiraz", - state: State::CE, - }, - Municipio { - ibge_code: 2301109, - name: "Aracati", - state: State::CE, - }, - Municipio { - ibge_code: 2301208, - name: "Aracoiaba", - state: State::CE, - }, - Municipio { - ibge_code: 2301257, - name: "Ararendá", - state: State::CE, - }, - Municipio { - ibge_code: 2301307, - name: "Araripe", - state: State::CE, - }, - Municipio { - ibge_code: 2301406, - name: "Aratuba", - state: State::CE, - }, - Municipio { - ibge_code: 2301505, - name: "Arneiroz", - state: State::CE, - }, - Municipio { - ibge_code: 2301604, - name: "Assaré", - state: State::CE, - }, - Municipio { - ibge_code: 2301703, - name: "Aurora", - state: State::CE, - }, - Municipio { - ibge_code: 2301802, - name: "Baixio", - state: State::CE, - }, - Municipio { - ibge_code: 2301851, - name: "Banabuiú", - state: State::CE, - }, - Municipio { - ibge_code: 2301901, - name: "Barbalha", - state: State::CE, - }, - Municipio { - ibge_code: 2301950, - name: "Barreira", - state: State::CE, - }, - Municipio { - ibge_code: 2302008, - name: "Barro", - state: State::CE, - }, - Municipio { - ibge_code: 2302057, - name: "Barroquinha", - state: State::CE, - }, - Municipio { - ibge_code: 2302107, - name: "Baturité", - state: State::CE, - }, - Municipio { - ibge_code: 2302206, - name: "Beberibe", - state: State::CE, - }, - Municipio { - ibge_code: 2302305, - name: "Bela Cruz", - state: State::CE, - }, - Municipio { - ibge_code: 2302404, - name: "Boa Viagem", - state: State::CE, - }, - Municipio { - ibge_code: 2302503, - name: "Brejo Santo", - state: State::CE, - }, - Municipio { - ibge_code: 2302602, - name: "Camocim", - state: State::CE, - }, - Municipio { - ibge_code: 2302701, - name: "Campos Sales", - state: State::CE, - }, - Municipio { - ibge_code: 2302800, - name: "Canindé", - state: State::CE, - }, - Municipio { - ibge_code: 2302909, - name: "Capistrano", - state: State::CE, - }, - Municipio { - ibge_code: 2303006, - name: "Caridade", - state: State::CE, - }, - Municipio { - ibge_code: 2303204, - name: "Caririaçu", - state: State::CE, - }, - Municipio { - ibge_code: 2303105, - name: "Cariré", - state: State::CE, - }, - Municipio { - ibge_code: 2303303, - name: "Cariús", - state: State::CE, - }, - Municipio { - ibge_code: 2303402, - name: "Carnaubal", - state: State::CE, - }, - Municipio { - ibge_code: 2303501, - name: "Cascavel", - state: State::CE, - }, - Municipio { - ibge_code: 2303600, - name: "Catarina", - state: State::CE, - }, - Municipio { - ibge_code: 2303659, - name: "Catunda", - state: State::CE, - }, - Municipio { - ibge_code: 2303709, - name: "Caucaia", - state: State::CE, - }, - Municipio { - ibge_code: 2303808, - name: "Cedro", - state: State::CE, - }, - Municipio { - ibge_code: 2303907, - name: "Chaval", - state: State::CE, - }, - Municipio { - ibge_code: 2303956, - name: "Chorozinho", - state: State::CE, - }, - Municipio { - ibge_code: 2303931, - name: "Choró", - state: State::CE, - }, - Municipio { - ibge_code: 2304004, - name: "Coreaú", - state: State::CE, - }, - Municipio { - ibge_code: 2304103, - name: "Crateús", - state: State::CE, - }, - Municipio { - ibge_code: 2304202, - name: "Crato", - state: State::CE, - }, - Municipio { - ibge_code: 2304236, - name: "Croatá", - state: State::CE, - }, - Municipio { - ibge_code: 2304251, - name: "Cruz", - state: State::CE, - }, - Municipio { - ibge_code: 2304269, - name: "Deputado Irapuan Pinheiro", - state: State::CE, - }, - Municipio { - ibge_code: 2304277, - name: "Ereré", - state: State::CE, - }, - Municipio { - ibge_code: 2304285, - name: "Eusébio", - state: State::CE, - }, - Municipio { - ibge_code: 2304301, - name: "Farias Brito", - state: State::CE, - }, - Municipio { - ibge_code: 2304350, - name: "Forquilha", - state: State::CE, - }, - Municipio { - ibge_code: 2304400, - name: "Fortaleza", - state: State::CE, - }, - Municipio { - ibge_code: 2304459, - name: "Fortim", - state: State::CE, - }, - Municipio { - ibge_code: 2304509, - name: "Frecheirinha", - state: State::CE, - }, - Municipio { - ibge_code: 2304608, - name: "General Sampaio", - state: State::CE, - }, - Municipio { - ibge_code: 2304707, - name: "Granja", - state: State::CE, - }, - Municipio { - ibge_code: 2304806, - name: "Granjeiro", - state: State::CE, - }, - Municipio { - ibge_code: 2304657, - name: "Graça", - state: State::CE, - }, - Municipio { - ibge_code: 2304905, - name: "Groaíras", - state: State::CE, - }, - Municipio { - ibge_code: 2304954, - name: "Guaiúba", - state: State::CE, - }, - Municipio { - ibge_code: 2305001, - name: "Guaraciaba do Norte", - state: State::CE, - }, - Municipio { - ibge_code: 2305100, - name: "Guaramiranga", - state: State::CE, - }, - Municipio { - ibge_code: 2305209, - name: "Hidrolândia", - state: State::CE, - }, - Municipio { - ibge_code: 2305233, - name: "Horizonte", - state: State::CE, - }, - Municipio { - ibge_code: 2305266, - name: "Ibaretama", - state: State::CE, - }, - Municipio { - ibge_code: 2305308, - name: "Ibiapina", - state: State::CE, - }, - Municipio { - ibge_code: 2305332, - name: "Ibicuitinga", - state: State::CE, - }, - Municipio { - ibge_code: 2305357, - name: "Icapuí", - state: State::CE, - }, - Municipio { - ibge_code: 2305407, - name: "Icó", - state: State::CE, - }, - Municipio { - ibge_code: 2305506, - name: "Iguatu", - state: State::CE, - }, - Municipio { - ibge_code: 2305605, - name: "Independência", - state: State::CE, - }, - Municipio { - ibge_code: 2305654, - name: "Ipaporanga", - state: State::CE, - }, - Municipio { - ibge_code: 2305704, - name: "Ipaumirim", - state: State::CE, - }, - Municipio { - ibge_code: 2305803, - name: "Ipu", - state: State::CE, - }, - Municipio { - ibge_code: 2305902, - name: "Ipueiras", - state: State::CE, - }, - Municipio { - ibge_code: 2306009, - name: "Iracema", - state: State::CE, - }, - Municipio { - ibge_code: 2306108, - name: "Irauçuba", - state: State::CE, - }, - Municipio { - ibge_code: 2306256, - name: "Itaitinga", - state: State::CE, - }, - Municipio { - ibge_code: 2306207, - name: "Itaiçaba", - state: State::CE, - }, - Municipio { - ibge_code: 2306306, - name: "Itapajé", - state: State::CE, - }, - Municipio { - ibge_code: 2306405, - name: "Itapipoca", - state: State::CE, - }, - Municipio { - ibge_code: 2306504, - name: "Itapiúna", - state: State::CE, - }, - Municipio { - ibge_code: 2306553, - name: "Itarema", - state: State::CE, - }, - Municipio { - ibge_code: 2306603, - name: "Itatira", - state: State::CE, - }, - Municipio { - ibge_code: 2306702, - name: "Jaguaretama", - state: State::CE, - }, - Municipio { - ibge_code: 2306801, - name: "Jaguaribara", - state: State::CE, - }, - Municipio { - ibge_code: 2306900, - name: "Jaguaribe", - state: State::CE, - }, - Municipio { - ibge_code: 2307007, - name: "Jaguaruana", - state: State::CE, - }, - Municipio { - ibge_code: 2307106, - name: "Jardim", - state: State::CE, - }, - Municipio { - ibge_code: 2307205, - name: "Jati", - state: State::CE, - }, - Municipio { - ibge_code: 2307254, - name: "Jijoca de Jericoacoara", - state: State::CE, - }, - Municipio { - ibge_code: 2307304, - name: "Juazeiro do Norte", - state: State::CE, - }, - Municipio { - ibge_code: 2307403, - name: "Jucás", - state: State::CE, - }, - Municipio { - ibge_code: 2307502, - name: "Lavras da Mangabeira", - state: State::CE, - }, - Municipio { - ibge_code: 2307601, - name: "Limoeiro do Norte", - state: State::CE, - }, - Municipio { - ibge_code: 2307635, - name: "Madalena", - state: State::CE, - }, - Municipio { - ibge_code: 2307650, - name: "Maracanaú", - state: State::CE, - }, - Municipio { - ibge_code: 2307700, - name: "Maranguape", - state: State::CE, - }, - Municipio { - ibge_code: 2307809, - name: "Marco", - state: State::CE, - }, - Municipio { - ibge_code: 2307908, - name: "Martinópole", - state: State::CE, - }, - Municipio { - ibge_code: 2308005, - name: "Massapê", - state: State::CE, - }, - Municipio { - ibge_code: 2308104, - name: "Mauriti", - state: State::CE, - }, - Municipio { - ibge_code: 2308203, - name: "Meruoca", - state: State::CE, - }, - Municipio { - ibge_code: 2308302, - name: "Milagres", - state: State::CE, - }, - Municipio { - ibge_code: 2308351, - name: "Milhã", - state: State::CE, - }, - Municipio { - ibge_code: 2308377, - name: "Miraíma", - state: State::CE, - }, - Municipio { - ibge_code: 2308401, - name: "Missão Velha", - state: State::CE, - }, - Municipio { - ibge_code: 2308500, - name: "Mombaça", - state: State::CE, - }, - Municipio { - ibge_code: 2308609, - name: "Monsenhor Tabosa", - state: State::CE, - }, - Municipio { - ibge_code: 2308708, - name: "Morada Nova", - state: State::CE, - }, - Municipio { - ibge_code: 2308807, - name: "Moraújo", - state: State::CE, - }, - Municipio { - ibge_code: 2308906, - name: "Morrinhos", - state: State::CE, - }, - Municipio { - ibge_code: 2309003, - name: "Mucambo", - state: State::CE, - }, - Municipio { - ibge_code: 2309102, - name: "Mulungu", - state: State::CE, - }, - Municipio { - ibge_code: 2309201, - name: "Nova Olinda", - state: State::CE, - }, - Municipio { - ibge_code: 2309300, - name: "Nova Russas", - state: State::CE, - }, - Municipio { - ibge_code: 2309409, - name: "Novo Oriente", - state: State::CE, - }, - Municipio { - ibge_code: 2309458, - name: "Ocara", - state: State::CE, - }, - Municipio { - ibge_code: 2309508, - name: "Orós", - state: State::CE, - }, - Municipio { - ibge_code: 2309607, - name: "Pacajus", - state: State::CE, - }, - Municipio { - ibge_code: 2309706, - name: "Pacatuba", - state: State::CE, - }, - Municipio { - ibge_code: 2309805, - name: "Pacoti", - state: State::CE, - }, - Municipio { - ibge_code: 2309904, - name: "Pacujá", - state: State::CE, - }, - Municipio { - ibge_code: 2310001, - name: "Palhano", - state: State::CE, - }, - Municipio { - ibge_code: 2310100, - name: "Palmácia", - state: State::CE, - }, - Municipio { - ibge_code: 2310209, - name: "Paracuru", - state: State::CE, - }, - Municipio { - ibge_code: 2310258, - name: "Paraipaba", - state: State::CE, - }, - Municipio { - ibge_code: 2310308, - name: "Parambu", - state: State::CE, - }, - Municipio { - ibge_code: 2310407, - name: "Paramoti", - state: State::CE, - }, - Municipio { - ibge_code: 2310506, - name: "Pedra Branca", - state: State::CE, - }, - Municipio { - ibge_code: 2310605, - name: "Penaforte", - state: State::CE, - }, - Municipio { - ibge_code: 2310704, - name: "Pentecoste", - state: State::CE, - }, - Municipio { - ibge_code: 2310803, - name: "Pereiro", - state: State::CE, - }, - Municipio { - ibge_code: 2310852, - name: "Pindoretama", - state: State::CE, - }, - Municipio { - ibge_code: 2310902, - name: "Piquet Carneiro", - state: State::CE, - }, - Municipio { - ibge_code: 2310951, - name: "Pires Ferreira", - state: State::CE, - }, - Municipio { - ibge_code: 2311009, - name: "Poranga", - state: State::CE, - }, - Municipio { - ibge_code: 2311108, - name: "Porteiras", - state: State::CE, - }, - Municipio { - ibge_code: 2311207, - name: "Potengi", - state: State::CE, - }, - Municipio { - ibge_code: 2311231, - name: "Potiretama", - state: State::CE, - }, - Municipio { - ibge_code: 2311264, - name: "Quiterianópolis", - state: State::CE, - }, - Municipio { - ibge_code: 2311306, - name: "Quixadá", - state: State::CE, - }, - Municipio { - ibge_code: 2311355, - name: "Quixelô", - state: State::CE, - }, - Municipio { - ibge_code: 2311405, - name: "Quixeramobim", - state: State::CE, - }, - Municipio { - ibge_code: 2311504, - name: "Quixeré", - state: State::CE, - }, - Municipio { - ibge_code: 2311603, - name: "Redenção", - state: State::CE, - }, - Municipio { - ibge_code: 2311702, - name: "Reriutaba", - state: State::CE, - }, - Municipio { - ibge_code: 2311801, - name: "Russas", - state: State::CE, - }, - Municipio { - ibge_code: 2311900, - name: "Saboeiro", - state: State::CE, - }, - Municipio { - ibge_code: 2311959, - name: "Salitre", - state: State::CE, - }, - Municipio { - ibge_code: 2312205, - name: "Santa Quitéria", - state: State::CE, - }, - Municipio { - ibge_code: 2312007, - name: "Santana do Acaraú", - state: State::CE, - }, - Municipio { - ibge_code: 2312106, - name: "Santana do Cariri", - state: State::CE, - }, - Municipio { - ibge_code: 2312700, - name: "Senador Pompeu", - state: State::CE, - }, - Municipio { - ibge_code: 2312809, - name: "Senador Sá", - state: State::CE, - }, - Municipio { - ibge_code: 2312908, - name: "Sobral", - state: State::CE, - }, - Municipio { - ibge_code: 2313005, - name: "Solonópole", - state: State::CE, - }, - Municipio { - ibge_code: 2312304, - name: "São Benedito", - state: State::CE, - }, - Municipio { - ibge_code: 2312403, - name: "São Gonçalo do Amarante", - state: State::CE, - }, - Municipio { - ibge_code: 2312502, - name: "São João do Jaguaribe", - state: State::CE, - }, - Municipio { - ibge_code: 2312601, - name: "São Luís do Curu", - state: State::CE, - }, - Municipio { - ibge_code: 2313104, - name: "Tabuleiro do Norte", - state: State::CE, - }, - Municipio { - ibge_code: 2313203, - name: "Tamboril", - state: State::CE, - }, - Municipio { - ibge_code: 2313252, - name: "Tarrafas", - state: State::CE, - }, - Municipio { - ibge_code: 2313302, - name: "Tauá", - state: State::CE, - }, - Municipio { - ibge_code: 2313351, - name: "Tejuçuoca", - state: State::CE, - }, - Municipio { - ibge_code: 2313401, - name: "Tianguá", - state: State::CE, - }, - Municipio { - ibge_code: 2313500, - name: "Trairi", - state: State::CE, - }, - Municipio { - ibge_code: 2313559, - name: "Tururu", - state: State::CE, - }, - Municipio { - ibge_code: 2313609, - name: "Ubajara", - state: State::CE, - }, - Municipio { - ibge_code: 2313708, - name: "Umari", - state: State::CE, - }, - Municipio { - ibge_code: 2313757, - name: "Umirim", - state: State::CE, - }, - Municipio { - ibge_code: 2313807, - name: "Uruburetama", - state: State::CE, - }, - Municipio { - ibge_code: 2313906, - name: "Uruoca", - state: State::CE, - }, - Municipio { - ibge_code: 2313955, - name: "Varjota", - state: State::CE, - }, - Municipio { - ibge_code: 2314102, - name: "Viçosa do Ceará", - state: State::CE, - }, - Municipio { - ibge_code: 2314003, - name: "Várzea Alegre", - state: State::CE, - }, - Municipio { - ibge_code: 5300108, - name: "Brasília", - state: State::DF, - }, - Municipio { - ibge_code: 3200102, - name: "Afonso Cláudio", - state: State::ES, - }, - Municipio { - ibge_code: 3200201, - name: "Alegre", - state: State::ES, - }, - Municipio { - ibge_code: 3200300, - name: "Alfredo Chaves", - state: State::ES, - }, - Municipio { - ibge_code: 3200359, - name: "Alto Rio Novo", - state: State::ES, - }, - Municipio { - ibge_code: 3200409, - name: "Anchieta", - state: State::ES, - }, - Municipio { - ibge_code: 3200508, - name: "Apiacá", - state: State::ES, - }, - Municipio { - ibge_code: 3200607, - name: "Aracruz", - state: State::ES, - }, - Municipio { - ibge_code: 3200706, - name: "Atílio Vivácqua", - state: State::ES, - }, - Municipio { - ibge_code: 3200805, - name: "Baixo Guandu", - state: State::ES, - }, - Municipio { - ibge_code: 3200904, - name: "Barra de São Francisco", - state: State::ES, - }, - Municipio { - ibge_code: 3201001, - name: "Boa Esperança", - state: State::ES, - }, - Municipio { - ibge_code: 3201100, - name: "Bom Jesus do Norte", - state: State::ES, - }, - Municipio { - ibge_code: 3201159, - name: "Brejetuba", - state: State::ES, - }, - Municipio { - ibge_code: 3201209, - name: "Cachoeiro de Itapemirim", - state: State::ES, - }, - Municipio { - ibge_code: 3201308, - name: "Cariacica", - state: State::ES, - }, - Municipio { - ibge_code: 3201407, - name: "Castelo", - state: State::ES, - }, - Municipio { - ibge_code: 3201506, - name: "Colatina", - state: State::ES, - }, - Municipio { - ibge_code: 3201605, - name: "Conceição da Barra", - state: State::ES, - }, - Municipio { - ibge_code: 3201704, - name: "Conceição do Castelo", - state: State::ES, - }, - Municipio { - ibge_code: 3201803, - name: "Divino de São Lourenço", - state: State::ES, - }, - Municipio { - ibge_code: 3201902, - name: "Domingos Martins", - state: State::ES, - }, - Municipio { - ibge_code: 3202009, - name: "Dores do Rio Preto", - state: State::ES, - }, - Municipio { - ibge_code: 3202108, - name: "Ecoporanga", - state: State::ES, - }, - Municipio { - ibge_code: 3202207, - name: "Fundão", - state: State::ES, - }, - Municipio { - ibge_code: 3202256, - name: "Governador Lindenberg", - state: State::ES, - }, - Municipio { - ibge_code: 3202405, - name: "Guarapari", - state: State::ES, - }, - Municipio { - ibge_code: 3202306, - name: "Guaçuí", - state: State::ES, - }, - Municipio { - ibge_code: 3202454, - name: "Ibatiba", - state: State::ES, - }, - Municipio { - ibge_code: 3202504, - name: "Ibiraçu", - state: State::ES, - }, - Municipio { - ibge_code: 3202553, - name: "Ibitirama", - state: State::ES, - }, - Municipio { - ibge_code: 3202603, - name: "Iconha", - state: State::ES, - }, - Municipio { - ibge_code: 3202652, - name: "Irupi", - state: State::ES, - }, - Municipio { - ibge_code: 3202702, - name: "Itaguaçu", - state: State::ES, - }, - Municipio { - ibge_code: 3202801, - name: "Itapemirim", - state: State::ES, - }, - Municipio { - ibge_code: 3202900, - name: "Itarana", - state: State::ES, - }, - Municipio { - ibge_code: 3203007, - name: "Iúna", - state: State::ES, - }, - Municipio { - ibge_code: 3203056, - name: "Jaguaré", - state: State::ES, - }, - Municipio { - ibge_code: 3203106, - name: "Jerônimo Monteiro", - state: State::ES, - }, - Municipio { - ibge_code: 3203130, - name: "João Neiva", - state: State::ES, - }, - Municipio { - ibge_code: 3203163, - name: "Laranja da Terra", - state: State::ES, - }, - Municipio { - ibge_code: 3203205, - name: "Linhares", - state: State::ES, - }, - Municipio { - ibge_code: 3203304, - name: "Mantenópolis", - state: State::ES, - }, - Municipio { - ibge_code: 3203320, - name: "Marataízes", - state: State::ES, - }, - Municipio { - ibge_code: 3203346, - name: "Marechal Floriano", - state: State::ES, - }, - Municipio { - ibge_code: 3203353, - name: "Marilândia", - state: State::ES, - }, - Municipio { - ibge_code: 3203403, - name: "Mimoso do Sul", - state: State::ES, - }, - Municipio { - ibge_code: 3203502, - name: "Montanha", - state: State::ES, - }, - Municipio { - ibge_code: 3203601, - name: "Mucurici", - state: State::ES, - }, - Municipio { - ibge_code: 3203700, - name: "Muniz Freire", - state: State::ES, - }, - Municipio { - ibge_code: 3203809, - name: "Muqui", - state: State::ES, - }, - Municipio { - ibge_code: 3203908, - name: "Nova Venécia", - state: State::ES, - }, - Municipio { - ibge_code: 3204005, - name: "Pancas", - state: State::ES, - }, - Municipio { - ibge_code: 3204054, - name: "Pedro Canário", - state: State::ES, - }, - Municipio { - ibge_code: 3204104, - name: "Pinheiros", - state: State::ES, - }, - Municipio { - ibge_code: 3204203, - name: "Piúma", - state: State::ES, - }, - Municipio { - ibge_code: 3204252, - name: "Ponto Belo", - state: State::ES, - }, - Municipio { - ibge_code: 3204302, - name: "Presidente Kennedy", - state: State::ES, - }, - Municipio { - ibge_code: 3204351, - name: "Rio Bananal", - state: State::ES, - }, - Municipio { - ibge_code: 3204401, - name: "Rio Novo do Sul", - state: State::ES, - }, - Municipio { - ibge_code: 3204500, - name: "Santa Leopoldina", - state: State::ES, - }, - Municipio { - ibge_code: 3204559, - name: "Santa Maria de Jetibá", - state: State::ES, - }, - Municipio { - ibge_code: 3204609, - name: "Santa Teresa", - state: State::ES, - }, - Municipio { - ibge_code: 3205002, - name: "Serra", - state: State::ES, - }, - Municipio { - ibge_code: 3205010, - name: "Sooretama", - state: State::ES, - }, - Municipio { - ibge_code: 3204658, - name: "São Domingos do Norte", - state: State::ES, - }, - Municipio { - ibge_code: 3204708, - name: "São Gabriel da Palha", - state: State::ES, - }, - Municipio { - ibge_code: 3204807, - name: "São José do Calçado", - state: State::ES, - }, - Municipio { - ibge_code: 3204906, - name: "São Mateus", - state: State::ES, - }, - Municipio { - ibge_code: 3204955, - name: "São Roque do Canaã", - state: State::ES, - }, - Municipio { - ibge_code: 3205036, - name: "Vargem Alta", - state: State::ES, - }, - Municipio { - ibge_code: 3205069, - name: "Venda Nova do Imigrante", - state: State::ES, - }, - Municipio { - ibge_code: 3205101, - name: "Viana", - state: State::ES, - }, - Municipio { - ibge_code: 3205150, - name: "Vila Pavão", - state: State::ES, - }, - Municipio { - ibge_code: 3205176, - name: "Vila Valério", - state: State::ES, - }, - Municipio { - ibge_code: 3205200, - name: "Vila Velha", - state: State::ES, - }, - Municipio { - ibge_code: 3205309, - name: "Vitória", - state: State::ES, - }, - Municipio { - ibge_code: 3200169, - name: "Água Doce do Norte", - state: State::ES, - }, - Municipio { - ibge_code: 3200136, - name: "Águia Branca", - state: State::ES, - }, - Municipio { - ibge_code: 5200050, - name: "Abadia de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5200100, - name: "Abadiânia", - state: State::GO, - }, - Municipio { - ibge_code: 5200134, - name: "Acreúna", - state: State::GO, - }, - Municipio { - ibge_code: 5200159, - name: "Adelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5200308, - name: "Alexânia", - state: State::GO, - }, - Municipio { - ibge_code: 5200506, - name: "Aloândia", - state: State::GO, - }, - Municipio { - ibge_code: 5200555, - name: "Alto Horizonte", - state: State::GO, - }, - Municipio { - ibge_code: 5200605, - name: "Alto Paraíso de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5200803, - name: "Alvorada do Norte", - state: State::GO, - }, - Municipio { - ibge_code: 5200829, - name: "Amaralina", - state: State::GO, - }, - Municipio { - ibge_code: 5200852, - name: "Americano do Brasil", - state: State::GO, - }, - Municipio { - ibge_code: 5200902, - name: "Amorinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5201207, - name: "Anhanguera", - state: State::GO, - }, - Municipio { - ibge_code: 5201306, - name: "Anicuns", - state: State::GO, - }, - Municipio { - ibge_code: 5201108, - name: "Anápolis", - state: State::GO, - }, - Municipio { - ibge_code: 5201405, - name: "Aparecida de Goiânia", - state: State::GO, - }, - Municipio { - ibge_code: 5201454, - name: "Aparecida do Rio Doce", - state: State::GO, - }, - Municipio { - ibge_code: 5201504, - name: "Aporé", - state: State::GO, - }, - Municipio { - ibge_code: 5201702, - name: "Aragarças", - state: State::GO, - }, - Municipio { - ibge_code: 5201801, - name: "Aragoiânia", - state: State::GO, - }, - Municipio { - ibge_code: 5202155, - name: "Araguapaz", - state: State::GO, - }, - Municipio { - ibge_code: 5201603, - name: "Araçu", - state: State::GO, - }, - Municipio { - ibge_code: 5202353, - name: "Arenópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5202502, - name: "Aruanã", - state: State::GO, - }, - Municipio { - ibge_code: 5202601, - name: "Aurilândia", - state: State::GO, - }, - Municipio { - ibge_code: 5202809, - name: "Avelinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5203104, - name: "Baliza", - state: State::GO, - }, - Municipio { - ibge_code: 5203203, - name: "Barro Alto", - state: State::GO, - }, - Municipio { - ibge_code: 5203302, - name: "Bela Vista de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5203401, - name: "Bom Jardim de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5203500, - name: "Bom Jesus de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5203559, - name: "Bonfinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5203575, - name: "Bonópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5203609, - name: "Brazabrantes", - state: State::GO, - }, - Municipio { - ibge_code: 5203807, - name: "Britânia", - state: State::GO, - }, - Municipio { - ibge_code: 5203906, - name: "Buriti Alegre", - state: State::GO, - }, - Municipio { - ibge_code: 5203939, - name: "Buriti de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5203962, - name: "Buritinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5204003, - name: "Cabeceiras", - state: State::GO, - }, - Municipio { - ibge_code: 5204102, - name: "Cachoeira Alta", - state: State::GO, - }, - Municipio { - ibge_code: 5204250, - name: "Cachoeira Dourada", - state: State::GO, - }, - Municipio { - ibge_code: 5204201, - name: "Cachoeira de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5204409, - name: "Caiapônia", - state: State::GO, - }, - Municipio { - ibge_code: 5204508, - name: "Caldas Novas", - state: State::GO, - }, - Municipio { - ibge_code: 5204557, - name: "Caldazinha", - state: State::GO, - }, - Municipio { - ibge_code: 5204607, - name: "Campestre de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5204656, - name: "Campinaçu", - state: State::GO, - }, - Municipio { - ibge_code: 5204706, - name: "Campinorte", - state: State::GO, - }, - Municipio { - ibge_code: 5204805, - name: "Campo Alegre de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5204854, - name: "Campo Limpo de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5204904, - name: "Campos Belos", - state: State::GO, - }, - Municipio { - ibge_code: 5204953, - name: "Campos Verdes", - state: State::GO, - }, - Municipio { - ibge_code: 5205000, - name: "Carmo do Rio Verde", - state: State::GO, - }, - Municipio { - ibge_code: 5205059, - name: "Castelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5205109, - name: "Catalão", - state: State::GO, - }, - Municipio { - ibge_code: 5205208, - name: "Caturaí", - state: State::GO, - }, - Municipio { - ibge_code: 5205307, - name: "Cavalcante", - state: State::GO, - }, - Municipio { - ibge_code: 5204300, - name: "Caçu", - state: State::GO, - }, - Municipio { - ibge_code: 5205406, - name: "Ceres", - state: State::GO, - }, - Municipio { - ibge_code: 5205455, - name: "Cezarina", - state: State::GO, - }, - Municipio { - ibge_code: 5205471, - name: "Chapadão do Céu", - state: State::GO, - }, - Municipio { - ibge_code: 5205497, - name: "Cidade Ocidental", - state: State::GO, - }, - Municipio { - ibge_code: 5205513, - name: "Cocalzinho de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5205521, - name: "Colinas do Sul", - state: State::GO, - }, - Municipio { - ibge_code: 5205901, - name: "Corumbaíba", - state: State::GO, - }, - Municipio { - ibge_code: 5205802, - name: "Corumbá de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5206206, - name: "Cristalina", - state: State::GO, - }, - Municipio { - ibge_code: 5206305, - name: "Cristianópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5206404, - name: "Crixás", - state: State::GO, - }, - Municipio { - ibge_code: 5206503, - name: "Cromínia", - state: State::GO, - }, - Municipio { - ibge_code: 5206602, - name: "Cumari", - state: State::GO, - }, - Municipio { - ibge_code: 5205703, - name: "Córrego do Ouro", - state: State::GO, - }, - Municipio { - ibge_code: 5206701, - name: "Damianópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5206800, - name: "Damolândia", - state: State::GO, - }, - Municipio { - ibge_code: 5206909, - name: "Davinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5207105, - name: "Diorama", - state: State::GO, - }, - Municipio { - ibge_code: 5208301, - name: "Divinópolis de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5207253, - name: "Doverlândia", - state: State::GO, - }, - Municipio { - ibge_code: 5207352, - name: "Edealina", - state: State::GO, - }, - Municipio { - ibge_code: 5207402, - name: "Edéia", - state: State::GO, - }, - Municipio { - ibge_code: 5207501, - name: "Estrela do Norte", - state: State::GO, - }, - Municipio { - ibge_code: 5207535, - name: "Faina", - state: State::GO, - }, - Municipio { - ibge_code: 5207600, - name: "Fazenda Nova", - state: State::GO, - }, - Municipio { - ibge_code: 5207808, - name: "Firminópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5207907, - name: "Flores de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5208004, - name: "Formosa", - state: State::GO, - }, - Municipio { - ibge_code: 5208103, - name: "Formoso", - state: State::GO, - }, - Municipio { - ibge_code: 5208152, - name: "Gameleira de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5208509, - name: "Goiandira", - state: State::GO, - }, - Municipio { - ibge_code: 5208806, - name: "Goianira", - state: State::GO, - }, - Municipio { - ibge_code: 5208400, - name: "Goianápolis", - state: State::GO, - }, - Municipio { - ibge_code: 5208608, - name: "Goianésia", - state: State::GO, - }, - Municipio { - ibge_code: 5209101, - name: "Goiatuba", - state: State::GO, - }, - Municipio { - ibge_code: 5208905, - name: "Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5208707, - name: "Goiânia", - state: State::GO, - }, - Municipio { - ibge_code: 5209150, - name: "Gouvelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5209200, - name: "Guapó", - state: State::GO, - }, - Municipio { - ibge_code: 5209408, - name: "Guarani de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5209291, - name: "Guaraíta", - state: State::GO, - }, - Municipio { - ibge_code: 5209457, - name: "Guarinos", - state: State::GO, - }, - Municipio { - ibge_code: 5209606, - name: "Heitoraí", - state: State::GO, - }, - Municipio { - ibge_code: 5209804, - name: "Hidrolina", - state: State::GO, - }, - Municipio { - ibge_code: 5209705, - name: "Hidrolândia", - state: State::GO, - }, - Municipio { - ibge_code: 5209903, - name: "Iaciara", - state: State::GO, - }, - Municipio { - ibge_code: 5209937, - name: "Inaciolândia", - state: State::GO, - }, - Municipio { - ibge_code: 5209952, - name: "Indiara", - state: State::GO, - }, - Municipio { - ibge_code: 5210000, - name: "Inhumas", - state: State::GO, - }, - Municipio { - ibge_code: 5210109, - name: "Ipameri", - state: State::GO, - }, - Municipio { - ibge_code: 5210158, - name: "Ipiranga de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5210208, - name: "Iporá", - state: State::GO, - }, - Municipio { - ibge_code: 5210307, - name: "Israelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5210406, - name: "Itaberaí", - state: State::GO, - }, - Municipio { - ibge_code: 5210562, - name: "Itaguari", - state: State::GO, - }, - Municipio { - ibge_code: 5210604, - name: "Itaguaru", - state: State::GO, - }, - Municipio { - ibge_code: 5210802, - name: "Itajá", - state: State::GO, - }, - Municipio { - ibge_code: 5210901, - name: "Itapaci", - state: State::GO, - }, - Municipio { - ibge_code: 5211008, - name: "Itapirapuã", - state: State::GO, - }, - Municipio { - ibge_code: 5211206, - name: "Itapuranga", - state: State::GO, - }, - Municipio { - ibge_code: 5211305, - name: "Itarumã", - state: State::GO, - }, - Municipio { - ibge_code: 5211404, - name: "Itauçu", - state: State::GO, - }, - Municipio { - ibge_code: 5211503, - name: "Itumbiara", - state: State::GO, - }, - Municipio { - ibge_code: 5211602, - name: "Ivolândia", - state: State::GO, - }, - Municipio { - ibge_code: 5211701, - name: "Jandaia", - state: State::GO, - }, - Municipio { - ibge_code: 5211800, - name: "Jaraguá", - state: State::GO, - }, - Municipio { - ibge_code: 5211909, - name: "Jataí", - state: State::GO, - }, - Municipio { - ibge_code: 5212006, - name: "Jaupaci", - state: State::GO, - }, - Municipio { - ibge_code: 5212055, - name: "Jesúpolis", - state: State::GO, - }, - Municipio { - ibge_code: 5212105, - name: "Joviânia", - state: State::GO, - }, - Municipio { - ibge_code: 5212204, - name: "Jussara", - state: State::GO, - }, - Municipio { - ibge_code: 5212253, - name: "Lagoa Santa", - state: State::GO, - }, - Municipio { - ibge_code: 5212303, - name: "Leopoldo de Bulhões", - state: State::GO, - }, - Municipio { - ibge_code: 5212501, - name: "Luziânia", - state: State::GO, - }, - Municipio { - ibge_code: 5212600, - name: "Mairipotaba", - state: State::GO, - }, - Municipio { - ibge_code: 5212709, - name: "Mambaí", - state: State::GO, - }, - Municipio { - ibge_code: 5212808, - name: "Mara Rosa", - state: State::GO, - }, - Municipio { - ibge_code: 5212907, - name: "Marzagão", - state: State::GO, - }, - Municipio { - ibge_code: 5212956, - name: "Matrinchã", - state: State::GO, - }, - Municipio { - ibge_code: 5213004, - name: "Maurilândia", - state: State::GO, - }, - Municipio { - ibge_code: 5213053, - name: "Mimoso de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5213087, - name: "Minaçu", - state: State::GO, - }, - Municipio { - ibge_code: 5213103, - name: "Mineiros", - state: State::GO, - }, - Municipio { - ibge_code: 5213400, - name: "Moiporá", - state: State::GO, - }, - Municipio { - ibge_code: 5213509, - name: "Monte Alegre de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5213707, - name: "Montes Claros de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5213756, - name: "Montividiu", - state: State::GO, - }, - Municipio { - ibge_code: 5213772, - name: "Montividiu do Norte", - state: State::GO, - }, - Municipio { - ibge_code: 5213806, - name: "Morrinhos", - state: State::GO, - }, - Municipio { - ibge_code: 5213855, - name: "Morro Agudo de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5213905, - name: "Mossâmedes", - state: State::GO, - }, - Municipio { - ibge_code: 5214002, - name: "Mozarlândia", - state: State::GO, - }, - Municipio { - ibge_code: 5214051, - name: "Mundo Novo", - state: State::GO, - }, - Municipio { - ibge_code: 5214101, - name: "Mutunópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5214408, - name: "Nazário", - state: State::GO, - }, - Municipio { - ibge_code: 5214507, - name: "Nerópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5214606, - name: "Niquelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5214705, - name: "Nova América", - state: State::GO, - }, - Municipio { - ibge_code: 5214804, - name: "Nova Aurora", - state: State::GO, - }, - Municipio { - ibge_code: 5214838, - name: "Nova Crixás", - state: State::GO, - }, - Municipio { - ibge_code: 5214861, - name: "Nova Glória", - state: State::GO, - }, - Municipio { - ibge_code: 5214879, - name: "Nova Iguaçu de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5214903, - name: "Nova Roma", - state: State::GO, - }, - Municipio { - ibge_code: 5215009, - name: "Nova Veneza", - state: State::GO, - }, - Municipio { - ibge_code: 5215207, - name: "Novo Brasil", - state: State::GO, - }, - Municipio { - ibge_code: 5215231, - name: "Novo Gama", - state: State::GO, - }, - Municipio { - ibge_code: 5215256, - name: "Novo Planalto", - state: State::GO, - }, - Municipio { - ibge_code: 5215306, - name: "Orizona", - state: State::GO, - }, - Municipio { - ibge_code: 5215405, - name: "Ouro Verde de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5215504, - name: "Ouvidor", - state: State::GO, - }, - Municipio { - ibge_code: 5215603, - name: "Padre Bernardo", - state: State::GO, - }, - Municipio { - ibge_code: 5215652, - name: "Palestina de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5215702, - name: "Palmeiras de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5215801, - name: "Palmelo", - state: State::GO, - }, - Municipio { - ibge_code: 5215900, - name: "Palminópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5216007, - name: "Panamá", - state: State::GO, - }, - Municipio { - ibge_code: 5216304, - name: "Paranaiguara", - state: State::GO, - }, - Municipio { - ibge_code: 5216403, - name: "Paraúna", - state: State::GO, - }, - Municipio { - ibge_code: 5216452, - name: "Perolândia", - state: State::GO, - }, - Municipio { - ibge_code: 5216809, - name: "Petrolina de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5216908, - name: "Pilar de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5217104, - name: "Piracanjuba", - state: State::GO, - }, - Municipio { - ibge_code: 5217203, - name: "Piranhas", - state: State::GO, - }, - Municipio { - ibge_code: 5217302, - name: "Pirenópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5217401, - name: "Pires do Rio", - state: State::GO, - }, - Municipio { - ibge_code: 5217609, - name: "Planaltina", - state: State::GO, - }, - Municipio { - ibge_code: 5217708, - name: "Pontalina", - state: State::GO, - }, - Municipio { - ibge_code: 5218003, - name: "Porangatu", - state: State::GO, - }, - Municipio { - ibge_code: 5218052, - name: "Porteirão", - state: State::GO, - }, - Municipio { - ibge_code: 5218102, - name: "Portelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5218300, - name: "Posse", - state: State::GO, - }, - Municipio { - ibge_code: 5218391, - name: "Professor Jamil", - state: State::GO, - }, - Municipio { - ibge_code: 5218508, - name: "Quirinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5218607, - name: "Rialma", - state: State::GO, - }, - Municipio { - ibge_code: 5218706, - name: "Rianápolis", - state: State::GO, - }, - Municipio { - ibge_code: 5218789, - name: "Rio Quente", - state: State::GO, - }, - Municipio { - ibge_code: 5218805, - name: "Rio Verde", - state: State::GO, - }, - Municipio { - ibge_code: 5218904, - name: "Rubiataba", - state: State::GO, - }, - Municipio { - ibge_code: 5219001, - name: "Sanclerlândia", - state: State::GO, - }, - Municipio { - ibge_code: 5219100, - name: "Santa Bárbara de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219209, - name: "Santa Cruz de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219258, - name: "Santa Fé de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219308, - name: "Santa Helena de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219357, - name: "Santa Isabel", - state: State::GO, - }, - Municipio { - ibge_code: 5219407, - name: "Santa Rita do Araguaia", - state: State::GO, - }, - Municipio { - ibge_code: 5219456, - name: "Santa Rita do Novo Destino", - state: State::GO, - }, - Municipio { - ibge_code: 5219506, - name: "Santa Rosa de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219605, - name: "Santa Tereza de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219704, - name: "Santa Terezinha de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219712, - name: "Santo Antônio da Barra", - state: State::GO, - }, - Municipio { - ibge_code: 5219738, - name: "Santo Antônio de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5219753, - name: "Santo Antônio do Descoberto", - state: State::GO, - }, - Municipio { - ibge_code: 5220454, - name: "Senador Canedo", - state: State::GO, - }, - Municipio { - ibge_code: 5220504, - name: "Serranópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5220603, - name: "Silvânia", - state: State::GO, - }, - Municipio { - ibge_code: 5220686, - name: "Simolândia", - state: State::GO, - }, - Municipio { - ibge_code: 5219803, - name: "São Domingos", - state: State::GO, - }, - Municipio { - ibge_code: 5219902, - name: "São Francisco de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5220009, - name: "São João d'Aliança", - state: State::GO, - }, - Municipio { - ibge_code: 5220058, - name: "São João da Paraúna", - state: State::GO, - }, - Municipio { - ibge_code: 5220157, - name: "São Luiz do Norte", - state: State::GO, - }, - Municipio { - ibge_code: 5220108, - name: "São Luís de Montes Belos", - state: State::GO, - }, - Municipio { - ibge_code: 5220207, - name: "São Miguel do Araguaia", - state: State::GO, - }, - Municipio { - ibge_code: 5220264, - name: "São Miguel do Passa Quatro", - state: State::GO, - }, - Municipio { - ibge_code: 5220280, - name: "São Patrício", - state: State::GO, - }, - Municipio { - ibge_code: 5220405, - name: "São Simão", - state: State::GO, - }, - Municipio { - ibge_code: 5220702, - name: "Sítio d'Abadia", - state: State::GO, - }, - Municipio { - ibge_code: 5221007, - name: "Taquaral de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5221080, - name: "Teresina de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5221197, - name: "Terezópolis de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5221403, - name: "Trindade", - state: State::GO, - }, - Municipio { - ibge_code: 5221452, - name: "Trombas", - state: State::GO, - }, - Municipio { - ibge_code: 5221304, - name: "Três Ranchos", - state: State::GO, - }, - Municipio { - ibge_code: 5221551, - name: "Turvelândia", - state: State::GO, - }, - Municipio { - ibge_code: 5221502, - name: "Turvânia", - state: State::GO, - }, - Municipio { - ibge_code: 5221577, - name: "Uirapuru", - state: State::GO, - }, - Municipio { - ibge_code: 5221700, - name: "Uruana", - state: State::GO, - }, - Municipio { - ibge_code: 5221601, - name: "Uruaçu", - state: State::GO, - }, - Municipio { - ibge_code: 5221809, - name: "Urutaí", - state: State::GO, - }, - Municipio { - ibge_code: 5221858, - name: "Valparaíso de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5221908, - name: "Varjão", - state: State::GO, - }, - Municipio { - ibge_code: 5222005, - name: "Vianópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5222054, - name: "Vicentinópolis", - state: State::GO, - }, - Municipio { - ibge_code: 5222203, - name: "Vila Boa", - state: State::GO, - }, - Municipio { - ibge_code: 5222302, - name: "Vila Propício", - state: State::GO, - }, - Municipio { - ibge_code: 5200175, - name: "Água Fria de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 5200209, - name: "Água Limpa", - state: State::GO, - }, - Municipio { - ibge_code: 5200258, - name: "Águas Lindas de Goiás", - state: State::GO, - }, - Municipio { - ibge_code: 2100105, - name: "Afonso Cunha", - state: State::MA, - }, - Municipio { - ibge_code: 2100204, - name: "Alcântara", - state: State::MA, - }, - Municipio { - ibge_code: 2100303, - name: "Aldeias Altas", - state: State::MA, - }, - Municipio { - ibge_code: 2100402, - name: "Altamira do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2100436, - name: "Alto Alegre do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2100477, - name: "Alto Alegre do Pindaré", - state: State::MA, - }, - Municipio { - ibge_code: 2100501, - name: "Alto Parnaíba", - state: State::MA, - }, - Municipio { - ibge_code: 2100550, - name: "Amapá do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2100600, - name: "Amarante do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2100709, - name: "Anajatuba", - state: State::MA, - }, - Municipio { - ibge_code: 2100808, - name: "Anapurus", - state: State::MA, - }, - Municipio { - ibge_code: 2100832, - name: "Apicum-Açu", - state: State::MA, - }, - Municipio { - ibge_code: 2100873, - name: "Araguanã", - state: State::MA, - }, - Municipio { - ibge_code: 2100907, - name: "Araioses", - state: State::MA, - }, - Municipio { - ibge_code: 2100956, - name: "Arame", - state: State::MA, - }, - Municipio { - ibge_code: 2101004, - name: "Arari", - state: State::MA, - }, - Municipio { - ibge_code: 2101103, - name: "Axixá", - state: State::MA, - }, - Municipio { - ibge_code: 2100055, - name: "Açailândia", - state: State::MA, - }, - Municipio { - ibge_code: 2101202, - name: "Bacabal", - state: State::MA, - }, - Municipio { - ibge_code: 2101251, - name: "Bacabeira", - state: State::MA, - }, - Municipio { - ibge_code: 2101301, - name: "Bacuri", - state: State::MA, - }, - Municipio { - ibge_code: 2101350, - name: "Bacurituba", - state: State::MA, - }, - Municipio { - ibge_code: 2101400, - name: "Balsas", - state: State::MA, - }, - Municipio { - ibge_code: 2101608, - name: "Barra do Corda", - state: State::MA, - }, - Municipio { - ibge_code: 2101707, - name: "Barreirinhas", - state: State::MA, - }, - Municipio { - ibge_code: 2101509, - name: "Barão de Grajaú", - state: State::MA, - }, - Municipio { - ibge_code: 2101772, - name: "Bela Vista do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2101731, - name: "Belágua", - state: State::MA, - }, - Municipio { - ibge_code: 2101806, - name: "Benedito Leite", - state: State::MA, - }, - Municipio { - ibge_code: 2101905, - name: "Bequimão", - state: State::MA, - }, - Municipio { - ibge_code: 2101939, - name: "Bernardo do Mearim", - state: State::MA, - }, - Municipio { - ibge_code: 2101970, - name: "Boa Vista do Gurupi", - state: State::MA, - }, - Municipio { - ibge_code: 2102002, - name: "Bom Jardim", - state: State::MA, - }, - Municipio { - ibge_code: 2102036, - name: "Bom Jesus das Selvas", - state: State::MA, - }, - Municipio { - ibge_code: 2102077, - name: "Bom Lugar", - state: State::MA, - }, - Municipio { - ibge_code: 2102101, - name: "Brejo", - state: State::MA, - }, - Municipio { - ibge_code: 2102150, - name: "Brejo de Areia", - state: State::MA, - }, - Municipio { - ibge_code: 2102200, - name: "Buriti", - state: State::MA, - }, - Municipio { - ibge_code: 2102309, - name: "Buriti Bravo", - state: State::MA, - }, - Municipio { - ibge_code: 2102325, - name: "Buriticupu", - state: State::MA, - }, - Municipio { - ibge_code: 2102358, - name: "Buritirana", - state: State::MA, - }, - Municipio { - ibge_code: 2102374, - name: "Cachoeira Grande", - state: State::MA, - }, - Municipio { - ibge_code: 2102408, - name: "Cajapió", - state: State::MA, - }, - Municipio { - ibge_code: 2102507, - name: "Cajari", - state: State::MA, - }, - Municipio { - ibge_code: 2102556, - name: "Campestre do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2102705, - name: "Cantanhede", - state: State::MA, - }, - Municipio { - ibge_code: 2102754, - name: "Capinzal do Norte", - state: State::MA, - }, - Municipio { - ibge_code: 2102804, - name: "Carolina", - state: State::MA, - }, - Municipio { - ibge_code: 2102903, - name: "Carutapera", - state: State::MA, - }, - Municipio { - ibge_code: 2103000, - name: "Caxias", - state: State::MA, - }, - Municipio { - ibge_code: 2103109, - name: "Cedral", - state: State::MA, - }, - Municipio { - ibge_code: 2103125, - name: "Central do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2103174, - name: "Centro Novo do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2103158, - name: "Centro do Guilherme", - state: State::MA, - }, - Municipio { - ibge_code: 2103208, - name: "Chapadinha", - state: State::MA, - }, - Municipio { - ibge_code: 2103257, - name: "Cidelândia", - state: State::MA, - }, - Municipio { - ibge_code: 2103307, - name: "Codó", - state: State::MA, - }, - Municipio { - ibge_code: 2103406, - name: "Coelho Neto", - state: State::MA, - }, - Municipio { - ibge_code: 2103505, - name: "Colinas", - state: State::MA, - }, - Municipio { - ibge_code: 2103554, - name: "Conceição do Lago-Açu", - state: State::MA, - }, - Municipio { - ibge_code: 2103604, - name: "Coroatá", - state: State::MA, - }, - Municipio { - ibge_code: 2103703, - name: "Cururupu", - state: State::MA, - }, - Municipio { - ibge_code: 2102606, - name: "Cândido Mendes", - state: State::MA, - }, - Municipio { - ibge_code: 2103752, - name: "Davinópolis", - state: State::MA, - }, - Municipio { - ibge_code: 2103802, - name: "Dom Pedro", - state: State::MA, - }, - Municipio { - ibge_code: 2103901, - name: "Duque Bacelar", - state: State::MA, - }, - Municipio { - ibge_code: 2104008, - name: "Esperantinópolis", - state: State::MA, - }, - Municipio { - ibge_code: 2104057, - name: "Estreito", - state: State::MA, - }, - Municipio { - ibge_code: 2104073, - name: "Feira Nova do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2104081, - name: "Fernando Falcão", - state: State::MA, - }, - Municipio { - ibge_code: 2104099, - name: "Formosa da Serra Negra", - state: State::MA, - }, - Municipio { - ibge_code: 2104107, - name: "Fortaleza dos Nogueiras", - state: State::MA, - }, - Municipio { - ibge_code: 2104206, - name: "Fortuna", - state: State::MA, - }, - Municipio { - ibge_code: 2104305, - name: "Godofredo Viana", - state: State::MA, - }, - Municipio { - ibge_code: 2104404, - name: "Gonçalves Dias", - state: State::MA, - }, - Municipio { - ibge_code: 2104503, - name: "Governador Archer", - state: State::MA, - }, - Municipio { - ibge_code: 2104552, - name: "Governador Edison Lobão", - state: State::MA, - }, - Municipio { - ibge_code: 2104602, - name: "Governador Eugênio Barros", - state: State::MA, - }, - Municipio { - ibge_code: 2104628, - name: "Governador Luiz Rocha", - state: State::MA, - }, - Municipio { - ibge_code: 2104651, - name: "Governador Newton Bello", - state: State::MA, - }, - Municipio { - ibge_code: 2104677, - name: "Governador Nunes Freire", - state: State::MA, - }, - Municipio { - ibge_code: 2104800, - name: "Grajaú", - state: State::MA, - }, - Municipio { - ibge_code: 2104701, - name: "Graça Aranha", - state: State::MA, - }, - Municipio { - ibge_code: 2104909, - name: "Guimarães", - state: State::MA, - }, - Municipio { - ibge_code: 2105005, - name: "Humberto de Campos", - state: State::MA, - }, - Municipio { - ibge_code: 2105104, - name: "Icatu", - state: State::MA, - }, - Municipio { - ibge_code: 2105203, - name: "Igarapé Grande", - state: State::MA, - }, - Municipio { - ibge_code: 2105153, - name: "Igarapé do Meio", - state: State::MA, - }, - Municipio { - ibge_code: 2105302, - name: "Imperatriz", - state: State::MA, - }, - Municipio { - ibge_code: 2105351, - name: "Itaipava do Grajaú", - state: State::MA, - }, - Municipio { - ibge_code: 2105401, - name: "Itapecuru Mirim", - state: State::MA, - }, - Municipio { - ibge_code: 2105427, - name: "Itinga do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2105450, - name: "Jatobá", - state: State::MA, - }, - Municipio { - ibge_code: 2105476, - name: "Jenipapo dos Vieiras", - state: State::MA, - }, - Municipio { - ibge_code: 2105609, - name: "Joselândia", - state: State::MA, - }, - Municipio { - ibge_code: 2105500, - name: "João Lisboa", - state: State::MA, - }, - Municipio { - ibge_code: 2105658, - name: "Junco do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2105906, - name: "Lago Verde", - state: State::MA, - }, - Municipio { - ibge_code: 2105708, - name: "Lago da Pedra", - state: State::MA, - }, - Municipio { - ibge_code: 2105807, - name: "Lago do Junco", - state: State::MA, - }, - Municipio { - ibge_code: 2105948, - name: "Lago dos Rodrigues", - state: State::MA, - }, - Municipio { - ibge_code: 2105963, - name: "Lagoa Grande do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2105922, - name: "Lagoa do Mato", - state: State::MA, - }, - Municipio { - ibge_code: 2105989, - name: "Lajeado Novo", - state: State::MA, - }, - Municipio { - ibge_code: 2106003, - name: "Lima Campos", - state: State::MA, - }, - Municipio { - ibge_code: 2106102, - name: "Loreto", - state: State::MA, - }, - Municipio { - ibge_code: 2106201, - name: "Luís Domingues", - state: State::MA, - }, - Municipio { - ibge_code: 2106300, - name: "Magalhães de Almeida", - state: State::MA, - }, - Municipio { - ibge_code: 2106326, - name: "Maracaçumé", - state: State::MA, - }, - Municipio { - ibge_code: 2106359, - name: "Marajá do Sena", - state: State::MA, - }, - Municipio { - ibge_code: 2106375, - name: "Maranhãozinho", - state: State::MA, - }, - Municipio { - ibge_code: 2106409, - name: "Mata Roma", - state: State::MA, - }, - Municipio { - ibge_code: 2106508, - name: "Matinha", - state: State::MA, - }, - Municipio { - ibge_code: 2106607, - name: "Matões", - state: State::MA, - }, - Municipio { - ibge_code: 2106631, - name: "Matões do Norte", - state: State::MA, - }, - Municipio { - ibge_code: 2106672, - name: "Milagres do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2106706, - name: "Mirador", - state: State::MA, - }, - Municipio { - ibge_code: 2106755, - name: "Miranda do Norte", - state: State::MA, - }, - Municipio { - ibge_code: 2106805, - name: "Mirinzal", - state: State::MA, - }, - Municipio { - ibge_code: 2107001, - name: "Montes Altos", - state: State::MA, - }, - Municipio { - ibge_code: 2106904, - name: "Monção", - state: State::MA, - }, - Municipio { - ibge_code: 2107100, - name: "Morros", - state: State::MA, - }, - Municipio { - ibge_code: 2107209, - name: "Nina Rodrigues", - state: State::MA, - }, - Municipio { - ibge_code: 2107258, - name: "Nova Colinas", - state: State::MA, - }, - Municipio { - ibge_code: 2107308, - name: "Nova Iorque", - state: State::MA, - }, - Municipio { - ibge_code: 2107357, - name: "Nova Olinda do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2107407, - name: "Olho d'Água das Cunhãs", - state: State::MA, - }, - Municipio { - ibge_code: 2107456, - name: "Olinda Nova do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2107605, - name: "Palmeirândia", - state: State::MA, - }, - Municipio { - ibge_code: 2107704, - name: "Paraibano", - state: State::MA, - }, - Municipio { - ibge_code: 2107803, - name: "Parnarama", - state: State::MA, - }, - Municipio { - ibge_code: 2107902, - name: "Passagem Franca", - state: State::MA, - }, - Municipio { - ibge_code: 2108009, - name: "Pastos Bons", - state: State::MA, - }, - Municipio { - ibge_code: 2108058, - name: "Paulino Neves", - state: State::MA, - }, - Municipio { - ibge_code: 2108108, - name: "Paulo Ramos", - state: State::MA, - }, - Municipio { - ibge_code: 2107506, - name: "Paço do Lumiar", - state: State::MA, - }, - Municipio { - ibge_code: 2108207, - name: "Pedreiras", - state: State::MA, - }, - Municipio { - ibge_code: 2108256, - name: "Pedro do Rosário", - state: State::MA, - }, - Municipio { - ibge_code: 2108306, - name: "Penalva", - state: State::MA, - }, - Municipio { - ibge_code: 2108405, - name: "Peri Mirim", - state: State::MA, - }, - Municipio { - ibge_code: 2108454, - name: "Peritoró", - state: State::MA, - }, - Municipio { - ibge_code: 2108504, - name: "Pindaré-Mirim", - state: State::MA, - }, - Municipio { - ibge_code: 2108603, - name: "Pinheiro", - state: State::MA, - }, - Municipio { - ibge_code: 2108702, - name: "Pio XII", - state: State::MA, - }, - Municipio { - ibge_code: 2108801, - name: "Pirapemas", - state: State::MA, - }, - Municipio { - ibge_code: 2109007, - name: "Porto Franco", - state: State::MA, - }, - Municipio { - ibge_code: 2109056, - name: "Porto Rico do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2108900, - name: "Poção de Pedras", - state: State::MA, - }, - Municipio { - ibge_code: 2109106, - name: "Presidente Dutra", - state: State::MA, - }, - Municipio { - ibge_code: 2109205, - name: "Presidente Juscelino", - state: State::MA, - }, - Municipio { - ibge_code: 2109239, - name: "Presidente Médici", - state: State::MA, - }, - Municipio { - ibge_code: 2109270, - name: "Presidente Sarney", - state: State::MA, - }, - Municipio { - ibge_code: 2109304, - name: "Presidente Vargas", - state: State::MA, - }, - Municipio { - ibge_code: 2109403, - name: "Primeira Cruz", - state: State::MA, - }, - Municipio { - ibge_code: 2109452, - name: "Raposa", - state: State::MA, - }, - Municipio { - ibge_code: 2109502, - name: "Riachão", - state: State::MA, - }, - Municipio { - ibge_code: 2109551, - name: "Ribamar Fiquene", - state: State::MA, - }, - Municipio { - ibge_code: 2109601, - name: "Rosário", - state: State::MA, - }, - Municipio { - ibge_code: 2109700, - name: "Sambaíba", - state: State::MA, - }, - Municipio { - ibge_code: 2109759, - name: "Santa Filomena do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2109809, - name: "Santa Helena", - state: State::MA, - }, - Municipio { - ibge_code: 2109908, - name: "Santa Inês", - state: State::MA, - }, - Municipio { - ibge_code: 2110005, - name: "Santa Luzia", - state: State::MA, - }, - Municipio { - ibge_code: 2110039, - name: "Santa Luzia do Paruá", - state: State::MA, - }, - Municipio { - ibge_code: 2110104, - name: "Santa Quitéria do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2110203, - name: "Santa Rita", - state: State::MA, - }, - Municipio { - ibge_code: 2110237, - name: "Santana do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2110278, - name: "Santo Amaro do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2110302, - name: "Santo Antônio dos Lopes", - state: State::MA, - }, - Municipio { - ibge_code: 2111722, - name: "Satubinha", - state: State::MA, - }, - Municipio { - ibge_code: 2111748, - name: "Senador Alexandre Costa", - state: State::MA, - }, - Municipio { - ibge_code: 2111763, - name: "Senador La Rocque", - state: State::MA, - }, - Municipio { - ibge_code: 2111789, - name: "Serrano do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2111904, - name: "Sucupira do Norte", - state: State::MA, - }, - Municipio { - ibge_code: 2111953, - name: "Sucupira do Riachão", - state: State::MA, - }, - Municipio { - ibge_code: 2110401, - name: "São Benedito do Rio Preto", - state: State::MA, - }, - Municipio { - ibge_code: 2110500, - name: "São Bento", - state: State::MA, - }, - Municipio { - ibge_code: 2110609, - name: "São Bernardo", - state: State::MA, - }, - Municipio { - ibge_code: 2110658, - name: "São Domingos do Azeitão", - state: State::MA, - }, - Municipio { - ibge_code: 2110708, - name: "São Domingos do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2110856, - name: "São Francisco do Brejão", - state: State::MA, - }, - Municipio { - ibge_code: 2110906, - name: "São Francisco do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2110807, - name: "São Félix de Balsas", - state: State::MA, - }, - Municipio { - ibge_code: 2111201, - name: "São José de Ribamar", - state: State::MA, - }, - Municipio { - ibge_code: 2111250, - name: "São José dos Basílios", - state: State::MA, - }, - Municipio { - ibge_code: 2111003, - name: "São João Batista", - state: State::MA, - }, - Municipio { - ibge_code: 2111029, - name: "São João do Carú", - state: State::MA, - }, - Municipio { - ibge_code: 2111052, - name: "São João do Paraíso", - state: State::MA, - }, - Municipio { - ibge_code: 2111078, - name: "São João do Soter", - state: State::MA, - }, - Municipio { - ibge_code: 2111102, - name: "São João dos Patos", - state: State::MA, - }, - Municipio { - ibge_code: 2111300, - name: "São Luís", - state: State::MA, - }, - Municipio { - ibge_code: 2111409, - name: "São Luís Gonzaga do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2111508, - name: "São Mateus do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 2111532, - name: "São Pedro da Água Branca", - state: State::MA, - }, - Municipio { - ibge_code: 2111573, - name: "São Pedro dos Crentes", - state: State::MA, - }, - Municipio { - ibge_code: 2111607, - name: "São Raimundo das Mangabeiras", - state: State::MA, - }, - Municipio { - ibge_code: 2111631, - name: "São Raimundo do Doca Bezerra", - state: State::MA, - }, - Municipio { - ibge_code: 2111672, - name: "São Roberto", - state: State::MA, - }, - Municipio { - ibge_code: 2111706, - name: "São Vicente Ferrer", - state: State::MA, - }, - Municipio { - ibge_code: 2111805, - name: "Sítio Novo", - state: State::MA, - }, - Municipio { - ibge_code: 2112001, - name: "Tasso Fragoso", - state: State::MA, - }, - Municipio { - ibge_code: 2112100, - name: "Timbiras", - state: State::MA, - }, - Municipio { - ibge_code: 2112209, - name: "Timon", - state: State::MA, - }, - Municipio { - ibge_code: 2112233, - name: "Trizidela do Vale", - state: State::MA, - }, - Municipio { - ibge_code: 2112274, - name: "Tufilândia", - state: State::MA, - }, - Municipio { - ibge_code: 2112308, - name: "Tuntum", - state: State::MA, - }, - Municipio { - ibge_code: 2112407, - name: "Turiaçu", - state: State::MA, - }, - Municipio { - ibge_code: 2112456, - name: "Turilândia", - state: State::MA, - }, - Municipio { - ibge_code: 2112506, - name: "Tutóia", - state: State::MA, - }, - Municipio { - ibge_code: 2112605, - name: "Urbano Santos", - state: State::MA, - }, - Municipio { - ibge_code: 2112704, - name: "Vargem Grande", - state: State::MA, - }, - Municipio { - ibge_code: 2112803, - name: "Viana", - state: State::MA, - }, - Municipio { - ibge_code: 2112852, - name: "Vila Nova dos Martírios", - state: State::MA, - }, - Municipio { - ibge_code: 2113009, - name: "Vitorino Freire", - state: State::MA, - }, - Municipio { - ibge_code: 2112902, - name: "Vitória do Mearim", - state: State::MA, - }, - Municipio { - ibge_code: 2114007, - name: "Zé Doca", - state: State::MA, - }, - Municipio { - ibge_code: 2100154, - name: "Água Doce do Maranhão", - state: State::MA, - }, - Municipio { - ibge_code: 3100104, - name: "Abadia dos Dourados", - state: State::MG, - }, - Municipio { - ibge_code: 3100203, - name: "Abaeté", - state: State::MG, - }, - Municipio { - ibge_code: 3100302, - name: "Abre Campo", - state: State::MG, - }, - Municipio { - ibge_code: 3100401, - name: "Acaiaca", - state: State::MG, - }, - Municipio { - ibge_code: 3100807, - name: "Aguanil", - state: State::MG, - }, - Municipio { - ibge_code: 3101102, - name: "Aimorés", - state: State::MG, - }, - Municipio { - ibge_code: 3101201, - name: "Aiuruoca", - state: State::MG, - }, - Municipio { - ibge_code: 3101300, - name: "Alagoa", - state: State::MG, - }, - Municipio { - ibge_code: 3101409, - name: "Albertina", - state: State::MG, - }, - Municipio { - ibge_code: 3101607, - name: "Alfenas", - state: State::MG, - }, - Municipio { - ibge_code: 3101631, - name: "Alfredo Vasconcelos", - state: State::MG, - }, - Municipio { - ibge_code: 3101706, - name: "Almenara", - state: State::MG, - }, - Municipio { - ibge_code: 3101805, - name: "Alpercata", - state: State::MG, - }, - Municipio { - ibge_code: 3101904, - name: "Alpinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3102001, - name: "Alterosa", - state: State::MG, - }, - Municipio { - ibge_code: 3102050, - name: "Alto Caparaó", - state: State::MG, - }, - Municipio { - ibge_code: 3153509, - name: "Alto Jequitibá", - state: State::MG, - }, - Municipio { - ibge_code: 3102100, - name: "Alto Rio Doce", - state: State::MG, - }, - Municipio { - ibge_code: 3102209, - name: "Alvarenga", - state: State::MG, - }, - Municipio { - ibge_code: 3102308, - name: "Alvinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3102407, - name: "Alvorada de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3101508, - name: "Além Paraíba", - state: State::MG, - }, - Municipio { - ibge_code: 3102506, - name: "Amparo do Serra", - state: State::MG, - }, - Municipio { - ibge_code: 3102605, - name: "Andradas", - state: State::MG, - }, - Municipio { - ibge_code: 3102803, - name: "Andrelândia", - state: State::MG, - }, - Municipio { - ibge_code: 3102852, - name: "Angelândia", - state: State::MG, - }, - Municipio { - ibge_code: 3102902, - name: "Antônio Carlos", - state: State::MG, - }, - Municipio { - ibge_code: 3103009, - name: "Antônio Dias", - state: State::MG, - }, - Municipio { - ibge_code: 3103108, - name: "Antônio Prado de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3103306, - name: "Aracitaba", - state: State::MG, - }, - Municipio { - ibge_code: 3103504, - name: "Araguari", - state: State::MG, - }, - Municipio { - ibge_code: 3103603, - name: "Arantina", - state: State::MG, - }, - Municipio { - ibge_code: 3103702, - name: "Araponga", - state: State::MG, - }, - Municipio { - ibge_code: 3103751, - name: "Araporã", - state: State::MG, - }, - Municipio { - ibge_code: 3103801, - name: "Arapuá", - state: State::MG, - }, - Municipio { - ibge_code: 3104007, - name: "Araxá", - state: State::MG, - }, - Municipio { - ibge_code: 3103207, - name: "Araçaí", - state: State::MG, - }, - Municipio { - ibge_code: 3103405, - name: "Araçuaí", - state: State::MG, - }, - Municipio { - ibge_code: 3103900, - name: "Araújos", - state: State::MG, - }, - Municipio { - ibge_code: 3104106, - name: "Arceburgo", - state: State::MG, - }, - Municipio { - ibge_code: 3104205, - name: "Arcos", - state: State::MG, - }, - Municipio { - ibge_code: 3104304, - name: "Areado", - state: State::MG, - }, - Municipio { - ibge_code: 3104403, - name: "Argirita", - state: State::MG, - }, - Municipio { - ibge_code: 3104452, - name: "Aricanduva", - state: State::MG, - }, - Municipio { - ibge_code: 3104502, - name: "Arinos", - state: State::MG, - }, - Municipio { - ibge_code: 3104601, - name: "Astolfo Dutra", - state: State::MG, - }, - Municipio { - ibge_code: 3104700, - name: "Ataléia", - state: State::MG, - }, - Municipio { - ibge_code: 3104809, - name: "Augusto de Lima", - state: State::MG, - }, - Municipio { - ibge_code: 3100500, - name: "Açucena", - state: State::MG, - }, - Municipio { - ibge_code: 3104908, - name: "Baependi", - state: State::MG, - }, - Municipio { - ibge_code: 3105004, - name: "Baldim", - state: State::MG, - }, - Municipio { - ibge_code: 3105103, - name: "Bambuí", - state: State::MG, - }, - Municipio { - ibge_code: 3105202, - name: "Bandeira", - state: State::MG, - }, - Municipio { - ibge_code: 3105301, - name: "Bandeira do Sul", - state: State::MG, - }, - Municipio { - ibge_code: 3105608, - name: "Barbacena", - state: State::MG, - }, - Municipio { - ibge_code: 3105707, - name: "Barra Longa", - state: State::MG, - }, - Municipio { - ibge_code: 3105905, - name: "Barroso", - state: State::MG, - }, - Municipio { - ibge_code: 3105400, - name: "Barão de Cocais", - state: State::MG, - }, - Municipio { - ibge_code: 3105509, - name: "Barão do Monte Alto", - state: State::MG, - }, - Municipio { - ibge_code: 3106002, - name: "Bela Vista de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3106101, - name: "Belmiro Braga", - state: State::MG, - }, - Municipio { - ibge_code: 3106200, - name: "Belo Horizonte", - state: State::MG, - }, - Municipio { - ibge_code: 3106309, - name: "Belo Oriente", - state: State::MG, - }, - Municipio { - ibge_code: 3106408, - name: "Belo Vale", - state: State::MG, - }, - Municipio { - ibge_code: 3106507, - name: "Berilo", - state: State::MG, - }, - Municipio { - ibge_code: 3106655, - name: "Berizal", - state: State::MG, - }, - Municipio { - ibge_code: 3106606, - name: "Bertópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3106705, - name: "Betim", - state: State::MG, - }, - Municipio { - ibge_code: 3106804, - name: "Bias Fortes", - state: State::MG, - }, - Municipio { - ibge_code: 3106903, - name: "Bicas", - state: State::MG, - }, - Municipio { - ibge_code: 3107000, - name: "Biquinhas", - state: State::MG, - }, - Municipio { - ibge_code: 3107109, - name: "Boa Esperança", - state: State::MG, - }, - Municipio { - ibge_code: 3107208, - name: "Bocaina de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3107307, - name: "Bocaiúva", - state: State::MG, - }, - Municipio { - ibge_code: 3107406, - name: "Bom Despacho", - state: State::MG, - }, - Municipio { - ibge_code: 3107505, - name: "Bom Jardim de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3107604, - name: "Bom Jesus da Penha", - state: State::MG, - }, - Municipio { - ibge_code: 3107703, - name: "Bom Jesus do Amparo", - state: State::MG, - }, - Municipio { - ibge_code: 3107802, - name: "Bom Jesus do Galho", - state: State::MG, - }, - Municipio { - ibge_code: 3107901, - name: "Bom Repouso", - state: State::MG, - }, - Municipio { - ibge_code: 3108008, - name: "Bom Sucesso", - state: State::MG, - }, - Municipio { - ibge_code: 3108107, - name: "Bonfim", - state: State::MG, - }, - Municipio { - ibge_code: 3108206, - name: "Bonfinópolis de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3108255, - name: "Bonito de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3108305, - name: "Borda da Mata", - state: State::MG, - }, - Municipio { - ibge_code: 3108404, - name: "Botelhos", - state: State::MG, - }, - Municipio { - ibge_code: 3108503, - name: "Botumirim", - state: State::MG, - }, - Municipio { - ibge_code: 3108552, - name: "Brasilândia de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3108602, - name: "Brasília de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3108909, - name: "Brazópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3108800, - name: "Braúnas", - state: State::MG, - }, - Municipio { - ibge_code: 3109006, - name: "Brumadinho", - state: State::MG, - }, - Municipio { - ibge_code: 3108701, - name: "Brás Pires", - state: State::MG, - }, - Municipio { - ibge_code: 3109105, - name: "Bueno Brandão", - state: State::MG, - }, - Municipio { - ibge_code: 3109204, - name: "Buenópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3109253, - name: "Bugre", - state: State::MG, - }, - Municipio { - ibge_code: 3109303, - name: "Buritis", - state: State::MG, - }, - Municipio { - ibge_code: 3109402, - name: "Buritizeiro", - state: State::MG, - }, - Municipio { - ibge_code: 3109451, - name: "Cabeceira Grande", - state: State::MG, - }, - Municipio { - ibge_code: 3109501, - name: "Cabo Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3109808, - name: "Cachoeira Dourada", - state: State::MG, - }, - Municipio { - ibge_code: 3109600, - name: "Cachoeira da Prata", - state: State::MG, - }, - Municipio { - ibge_code: 3109709, - name: "Cachoeira de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3102704, - name: "Cachoeira de Pajeú", - state: State::MG, - }, - Municipio { - ibge_code: 3109907, - name: "Caetanópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3110004, - name: "Caeté", - state: State::MG, - }, - Municipio { - ibge_code: 3110103, - name: "Caiana", - state: State::MG, - }, - Municipio { - ibge_code: 3110202, - name: "Cajuri", - state: State::MG, - }, - Municipio { - ibge_code: 3110301, - name: "Caldas", - state: State::MG, - }, - Municipio { - ibge_code: 3110400, - name: "Camacho", - state: State::MG, - }, - Municipio { - ibge_code: 3110509, - name: "Camanducaia", - state: State::MG, - }, - Municipio { - ibge_code: 3110707, - name: "Cambuquira", - state: State::MG, - }, - Municipio { - ibge_code: 3110608, - name: "Cambuí", - state: State::MG, - }, - Municipio { - ibge_code: 3110905, - name: "Campanha", - state: State::MG, - }, - Municipio { - ibge_code: 3110806, - name: "Campanário", - state: State::MG, - }, - Municipio { - ibge_code: 3111002, - name: "Campestre", - state: State::MG, - }, - Municipio { - ibge_code: 3111101, - name: "Campina Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3111150, - name: "Campo Azul", - state: State::MG, - }, - Municipio { - ibge_code: 3111200, - name: "Campo Belo", - state: State::MG, - }, - Municipio { - ibge_code: 3111408, - name: "Campo Florido", - state: State::MG, - }, - Municipio { - ibge_code: 3111309, - name: "Campo do Meio", - state: State::MG, - }, - Municipio { - ibge_code: 3111507, - name: "Campos Altos", - state: State::MG, - }, - Municipio { - ibge_code: 3111606, - name: "Campos Gerais", - state: State::MG, - }, - Municipio { - ibge_code: 3111903, - name: "Cana Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3111705, - name: "Canaã", - state: State::MG, - }, - Municipio { - ibge_code: 3112000, - name: "Candeias", - state: State::MG, - }, - Municipio { - ibge_code: 3112059, - name: "Cantagalo", - state: State::MG, - }, - Municipio { - ibge_code: 3111804, - name: "Canápolis", - state: State::MG, - }, - Municipio { - ibge_code: 3112109, - name: "Caparaó", - state: State::MG, - }, - Municipio { - ibge_code: 3112208, - name: "Capela Nova", - state: State::MG, - }, - Municipio { - ibge_code: 3112307, - name: "Capelinha", - state: State::MG, - }, - Municipio { - ibge_code: 3112406, - name: "Capetinga", - state: State::MG, - }, - Municipio { - ibge_code: 3112505, - name: "Capim Branco", - state: State::MG, - }, - Municipio { - ibge_code: 3112604, - name: "Capinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3112653, - name: "Capitão Andrade", - state: State::MG, - }, - Municipio { - ibge_code: 3112703, - name: "Capitão Enéas", - state: State::MG, - }, - Municipio { - ibge_code: 3112802, - name: "Capitólio", - state: State::MG, - }, - Municipio { - ibge_code: 3112901, - name: "Caputira", - state: State::MG, - }, - Municipio { - ibge_code: 3113107, - name: "Caranaíba", - state: State::MG, - }, - Municipio { - ibge_code: 3113206, - name: "Carandaí", - state: State::MG, - }, - Municipio { - ibge_code: 3113305, - name: "Carangola", - state: State::MG, - }, - Municipio { - ibge_code: 3113404, - name: "Caratinga", - state: State::MG, - }, - Municipio { - ibge_code: 3113008, - name: "Caraí", - state: State::MG, - }, - Municipio { - ibge_code: 3113503, - name: "Carbonita", - state: State::MG, - }, - Municipio { - ibge_code: 3113602, - name: "Careaçu", - state: State::MG, - }, - Municipio { - ibge_code: 3113701, - name: "Carlos Chagas", - state: State::MG, - }, - Municipio { - ibge_code: 3113909, - name: "Carmo da Cachoeira", - state: State::MG, - }, - Municipio { - ibge_code: 3114006, - name: "Carmo da Mata", - state: State::MG, - }, - Municipio { - ibge_code: 3114105, - name: "Carmo de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3114204, - name: "Carmo do Cajuru", - state: State::MG, - }, - Municipio { - ibge_code: 3114303, - name: "Carmo do Paranaíba", - state: State::MG, - }, - Municipio { - ibge_code: 3114402, - name: "Carmo do Rio Claro", - state: State::MG, - }, - Municipio { - ibge_code: 3113800, - name: "Carmésia", - state: State::MG, - }, - Municipio { - ibge_code: 3114501, - name: "Carmópolis de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3114550, - name: "Carneirinho", - state: State::MG, - }, - Municipio { - ibge_code: 3114600, - name: "Carrancas", - state: State::MG, - }, - Municipio { - ibge_code: 3114808, - name: "Carvalhos", - state: State::MG, - }, - Municipio { - ibge_code: 3114709, - name: "Carvalhópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3114907, - name: "Casa Grande", - state: State::MG, - }, - Municipio { - ibge_code: 3115003, - name: "Cascalho Rico", - state: State::MG, - }, - Municipio { - ibge_code: 3115300, - name: "Cataguases", - state: State::MG, - }, - Municipio { - ibge_code: 3115359, - name: "Catas Altas", - state: State::MG, - }, - Municipio { - ibge_code: 3115409, - name: "Catas Altas da Noruega", - state: State::MG, - }, - Municipio { - ibge_code: 3115458, - name: "Catuji", - state: State::MG, - }, - Municipio { - ibge_code: 3115474, - name: "Catuti", - state: State::MG, - }, - Municipio { - ibge_code: 3115508, - name: "Caxambu", - state: State::MG, - }, - Municipio { - ibge_code: 3115607, - name: "Cedro do Abaeté", - state: State::MG, - }, - Municipio { - ibge_code: 3115706, - name: "Central de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3115805, - name: "Centralina", - state: State::MG, - }, - Municipio { - ibge_code: 3116001, - name: "Chalé", - state: State::MG, - }, - Municipio { - ibge_code: 3116159, - name: "Chapada Gaúcha", - state: State::MG, - }, - Municipio { - ibge_code: 3116100, - name: "Chapada do Norte", - state: State::MG, - }, - Municipio { - ibge_code: 3116209, - name: "Chiador", - state: State::MG, - }, - Municipio { - ibge_code: 3115904, - name: "Chácara", - state: State::MG, - }, - Municipio { - ibge_code: 3116308, - name: "Cipotânea", - state: State::MG, - }, - Municipio { - ibge_code: 3116407, - name: "Claraval", - state: State::MG, - }, - Municipio { - ibge_code: 3116506, - name: "Claro dos Poções", - state: State::MG, - }, - Municipio { - ibge_code: 3116605, - name: "Cláudio", - state: State::MG, - }, - Municipio { - ibge_code: 3116704, - name: "Coimbra", - state: State::MG, - }, - Municipio { - ibge_code: 3116803, - name: "Coluna", - state: State::MG, - }, - Municipio { - ibge_code: 3116902, - name: "Comendador Gomes", - state: State::MG, - }, - Municipio { - ibge_code: 3117009, - name: "Comercinho", - state: State::MG, - }, - Municipio { - ibge_code: 3117108, - name: "Conceição da Aparecida", - state: State::MG, - }, - Municipio { - ibge_code: 3115201, - name: "Conceição da Barra de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3117306, - name: "Conceição das Alagoas", - state: State::MG, - }, - Municipio { - ibge_code: 3117207, - name: "Conceição das Pedras", - state: State::MG, - }, - Municipio { - ibge_code: 3117405, - name: "Conceição de Ipanema", - state: State::MG, - }, - Municipio { - ibge_code: 3117504, - name: "Conceição do Mato Dentro", - state: State::MG, - }, - Municipio { - ibge_code: 3117603, - name: "Conceição do Pará", - state: State::MG, - }, - Municipio { - ibge_code: 3117702, - name: "Conceição do Rio Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3117801, - name: "Conceição dos Ouros", - state: State::MG, - }, - Municipio { - ibge_code: 3117876, - name: "Confins", - state: State::MG, - }, - Municipio { - ibge_code: 3117900, - name: "Congonhal", - state: State::MG, - }, - Municipio { - ibge_code: 3118007, - name: "Congonhas", - state: State::MG, - }, - Municipio { - ibge_code: 3118106, - name: "Congonhas do Norte", - state: State::MG, - }, - Municipio { - ibge_code: 3118205, - name: "Conquista", - state: State::MG, - }, - Municipio { - ibge_code: 3118304, - name: "Conselheiro Lafaiete", - state: State::MG, - }, - Municipio { - ibge_code: 3118403, - name: "Conselheiro Pena", - state: State::MG, - }, - Municipio { - ibge_code: 3118502, - name: "Consolação", - state: State::MG, - }, - Municipio { - ibge_code: 3118601, - name: "Contagem", - state: State::MG, - }, - Municipio { - ibge_code: 3118700, - name: "Coqueiral", - state: State::MG, - }, - Municipio { - ibge_code: 3118809, - name: "Coração de Jesus", - state: State::MG, - }, - Municipio { - ibge_code: 3118908, - name: "Cordisburgo", - state: State::MG, - }, - Municipio { - ibge_code: 3119005, - name: "Cordislândia", - state: State::MG, - }, - Municipio { - ibge_code: 3119104, - name: "Corinto", - state: State::MG, - }, - Municipio { - ibge_code: 3119203, - name: "Coroaci", - state: State::MG, - }, - Municipio { - ibge_code: 3119302, - name: "Coromandel", - state: State::MG, - }, - Municipio { - ibge_code: 3119401, - name: "Coronel Fabriciano", - state: State::MG, - }, - Municipio { - ibge_code: 3119500, - name: "Coronel Murta", - state: State::MG, - }, - Municipio { - ibge_code: 3119609, - name: "Coronel Pacheco", - state: State::MG, - }, - Municipio { - ibge_code: 3119708, - name: "Coronel Xavier Chaves", - state: State::MG, - }, - Municipio { - ibge_code: 3120102, - name: "Couto de Magalhães de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3120201, - name: "Cristais", - state: State::MG, - }, - Municipio { - ibge_code: 3120409, - name: "Cristiano Otoni", - state: State::MG, - }, - Municipio { - ibge_code: 3120508, - name: "Cristina", - state: State::MG, - }, - Municipio { - ibge_code: 3120300, - name: "Cristália", - state: State::MG, - }, - Municipio { - ibge_code: 3120151, - name: "Crisólita", - state: State::MG, - }, - Municipio { - ibge_code: 3120607, - name: "Crucilândia", - state: State::MG, - }, - Municipio { - ibge_code: 3120706, - name: "Cruzeiro da Fortaleza", - state: State::MG, - }, - Municipio { - ibge_code: 3120805, - name: "Cruzília", - state: State::MG, - }, - Municipio { - ibge_code: 3120839, - name: "Cuparaque", - state: State::MG, - }, - Municipio { - ibge_code: 3120870, - name: "Curral de Dentro", - state: State::MG, - }, - Municipio { - ibge_code: 3120904, - name: "Curvelo", - state: State::MG, - }, - Municipio { - ibge_code: 3115102, - name: "Cássia", - state: State::MG, - }, - Municipio { - ibge_code: 3119807, - name: "Córrego Danta", - state: State::MG, - }, - Municipio { - ibge_code: 3119955, - name: "Córrego Fundo", - state: State::MG, - }, - Municipio { - ibge_code: 3120003, - name: "Córrego Novo", - state: State::MG, - }, - Municipio { - ibge_code: 3119906, - name: "Córrego do Bom Jesus", - state: State::MG, - }, - Municipio { - ibge_code: 3117836, - name: "Cônego Marinho", - state: State::MG, - }, - Municipio { - ibge_code: 3121001, - name: "Datas", - state: State::MG, - }, - Municipio { - ibge_code: 3121100, - name: "Delfim Moreira", - state: State::MG, - }, - Municipio { - ibge_code: 3121209, - name: "Delfinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3121258, - name: "Delta", - state: State::MG, - }, - Municipio { - ibge_code: 3121308, - name: "Descoberto", - state: State::MG, - }, - Municipio { - ibge_code: 3121407, - name: "Desterro de Entre Rios", - state: State::MG, - }, - Municipio { - ibge_code: 3121506, - name: "Desterro do Melo", - state: State::MG, - }, - Municipio { - ibge_code: 3121605, - name: "Diamantina", - state: State::MG, - }, - Municipio { - ibge_code: 3121704, - name: "Diogo de Vasconcelos", - state: State::MG, - }, - Municipio { - ibge_code: 3121803, - name: "Dionísio", - state: State::MG, - }, - Municipio { - ibge_code: 3122009, - name: "Divino", - state: State::MG, - }, - Municipio { - ibge_code: 3122108, - name: "Divino das Laranjeiras", - state: State::MG, - }, - Municipio { - ibge_code: 3122207, - name: "Divinolândia de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3121902, - name: "Divinésia", - state: State::MG, - }, - Municipio { - ibge_code: 3122306, - name: "Divinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3122355, - name: "Divisa Alegre", - state: State::MG, - }, - Municipio { - ibge_code: 3122405, - name: "Divisa Nova", - state: State::MG, - }, - Municipio { - ibge_code: 3122454, - name: "Divisópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3122470, - name: "Dom Bosco", - state: State::MG, - }, - Municipio { - ibge_code: 3122504, - name: "Dom Cavati", - state: State::MG, - }, - Municipio { - ibge_code: 3122603, - name: "Dom Joaquim", - state: State::MG, - }, - Municipio { - ibge_code: 3122702, - name: "Dom Silvério", - state: State::MG, - }, - Municipio { - ibge_code: 3122801, - name: "Dom Viçoso", - state: State::MG, - }, - Municipio { - ibge_code: 3122900, - name: "Dona Euzébia", - state: State::MG, - }, - Municipio { - ibge_code: 3123007, - name: "Dores de Campos", - state: State::MG, - }, - Municipio { - ibge_code: 3123106, - name: "Dores de Guanhães", - state: State::MG, - }, - Municipio { - ibge_code: 3123205, - name: "Dores do Indaiá", - state: State::MG, - }, - Municipio { - ibge_code: 3123304, - name: "Dores do Turvo", - state: State::MG, - }, - Municipio { - ibge_code: 3123403, - name: "Doresópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3123502, - name: "Douradoquara", - state: State::MG, - }, - Municipio { - ibge_code: 3123528, - name: "Durandé", - state: State::MG, - }, - Municipio { - ibge_code: 3123601, - name: "Elói Mendes", - state: State::MG, - }, - Municipio { - ibge_code: 3123700, - name: "Engenheiro Caldas", - state: State::MG, - }, - Municipio { - ibge_code: 3123809, - name: "Engenheiro Navarro", - state: State::MG, - }, - Municipio { - ibge_code: 3123858, - name: "Entre Folhas", - state: State::MG, - }, - Municipio { - ibge_code: 3123908, - name: "Entre Rios de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3124005, - name: "Ervália", - state: State::MG, - }, - Municipio { - ibge_code: 3124104, - name: "Esmeraldas", - state: State::MG, - }, - Municipio { - ibge_code: 3124203, - name: "Espera Feliz", - state: State::MG, - }, - Municipio { - ibge_code: 3124302, - name: "Espinosa", - state: State::MG, - }, - Municipio { - ibge_code: 3124401, - name: "Espírito Santo do Dourado", - state: State::MG, - }, - Municipio { - ibge_code: 3124500, - name: "Estiva", - state: State::MG, - }, - Municipio { - ibge_code: 3124609, - name: "Estrela Dalva", - state: State::MG, - }, - Municipio { - ibge_code: 3124708, - name: "Estrela do Indaiá", - state: State::MG, - }, - Municipio { - ibge_code: 3124807, - name: "Estrela do Sul", - state: State::MG, - }, - Municipio { - ibge_code: 3124906, - name: "Eugenópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3125002, - name: "Ewbank da Câmara", - state: State::MG, - }, - Municipio { - ibge_code: 3125101, - name: "Extrema", - state: State::MG, - }, - Municipio { - ibge_code: 3125200, - name: "Fama", - state: State::MG, - }, - Municipio { - ibge_code: 3125309, - name: "Faria Lemos", - state: State::MG, - }, - Municipio { - ibge_code: 3125606, - name: "Felisburgo", - state: State::MG, - }, - Municipio { - ibge_code: 3125705, - name: "Felixlândia", - state: State::MG, - }, - Municipio { - ibge_code: 3125408, - name: "Felício dos Santos", - state: State::MG, - }, - Municipio { - ibge_code: 3125804, - name: "Fernandes Tourinho", - state: State::MG, - }, - Municipio { - ibge_code: 3125903, - name: "Ferros", - state: State::MG, - }, - Municipio { - ibge_code: 3125952, - name: "Fervedouro", - state: State::MG, - }, - Municipio { - ibge_code: 3126000, - name: "Florestal", - state: State::MG, - }, - Municipio { - ibge_code: 3126109, - name: "Formiga", - state: State::MG, - }, - Municipio { - ibge_code: 3126208, - name: "Formoso", - state: State::MG, - }, - Municipio { - ibge_code: 3126307, - name: "Fortaleza de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3126406, - name: "Fortuna de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3126505, - name: "Francisco Badaró", - state: State::MG, - }, - Municipio { - ibge_code: 3126604, - name: "Francisco Dumont", - state: State::MG, - }, - Municipio { - ibge_code: 3126703, - name: "Francisco Sá", - state: State::MG, - }, - Municipio { - ibge_code: 3126752, - name: "Franciscópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3126802, - name: "Frei Gaspar", - state: State::MG, - }, - Municipio { - ibge_code: 3126901, - name: "Frei Inocêncio", - state: State::MG, - }, - Municipio { - ibge_code: 3126950, - name: "Frei Lagonegro", - state: State::MG, - }, - Municipio { - ibge_code: 3127008, - name: "Fronteira", - state: State::MG, - }, - Municipio { - ibge_code: 3127057, - name: "Fronteira dos Vales", - state: State::MG, - }, - Municipio { - ibge_code: 3127073, - name: "Fruta de Leite", - state: State::MG, - }, - Municipio { - ibge_code: 3127107, - name: "Frutal", - state: State::MG, - }, - Municipio { - ibge_code: 3127206, - name: "Funilândia", - state: State::MG, - }, - Municipio { - ibge_code: 3127305, - name: "Galiléia", - state: State::MG, - }, - Municipio { - ibge_code: 3127339, - name: "Gameleiras", - state: State::MG, - }, - Municipio { - ibge_code: 3127354, - name: "Glaucilândia", - state: State::MG, - }, - Municipio { - ibge_code: 3127370, - name: "Goiabeira", - state: State::MG, - }, - Municipio { - ibge_code: 3127388, - name: "Goianá", - state: State::MG, - }, - Municipio { - ibge_code: 3127503, - name: "Gonzaga", - state: State::MG, - }, - Municipio { - ibge_code: 3127404, - name: "Gonçalves", - state: State::MG, - }, - Municipio { - ibge_code: 3127602, - name: "Gouveia", - state: State::MG, - }, - Municipio { - ibge_code: 3127701, - name: "Governador Valadares", - state: State::MG, - }, - Municipio { - ibge_code: 3127909, - name: "Grupiara", - state: State::MG, - }, - Municipio { - ibge_code: 3127800, - name: "Grão Mogol", - state: State::MG, - }, - Municipio { - ibge_code: 3128006, - name: "Guanhães", - state: State::MG, - }, - Municipio { - ibge_code: 3128105, - name: "Guapé", - state: State::MG, - }, - Municipio { - ibge_code: 3128204, - name: "Guaraciaba", - state: State::MG, - }, - Municipio { - ibge_code: 3128253, - name: "Guaraciama", - state: State::MG, - }, - Municipio { - ibge_code: 3128402, - name: "Guarani", - state: State::MG, - }, - Municipio { - ibge_code: 3128303, - name: "Guaranésia", - state: State::MG, - }, - Municipio { - ibge_code: 3128501, - name: "Guarará", - state: State::MG, - }, - Municipio { - ibge_code: 3128600, - name: "Guarda-Mor", - state: State::MG, - }, - Municipio { - ibge_code: 3128709, - name: "Guaxupé", - state: State::MG, - }, - Municipio { - ibge_code: 3128808, - name: "Guidoval", - state: State::MG, - }, - Municipio { - ibge_code: 3128907, - name: "Guimarânia", - state: State::MG, - }, - Municipio { - ibge_code: 3129004, - name: "Guiricema", - state: State::MG, - }, - Municipio { - ibge_code: 3129103, - name: "Gurinhatã", - state: State::MG, - }, - Municipio { - ibge_code: 3129202, - name: "Heliodora", - state: State::MG, - }, - Municipio { - ibge_code: 3129301, - name: "Iapu", - state: State::MG, - }, - Municipio { - ibge_code: 3129400, - name: "Ibertioga", - state: State::MG, - }, - Municipio { - ibge_code: 3129608, - name: "Ibiaí", - state: State::MG, - }, - Municipio { - ibge_code: 3129657, - name: "Ibiracatu", - state: State::MG, - }, - Municipio { - ibge_code: 3129707, - name: "Ibiraci", - state: State::MG, - }, - Municipio { - ibge_code: 3129806, - name: "Ibirité", - state: State::MG, - }, - Municipio { - ibge_code: 3129905, - name: "Ibitiúra de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3130002, - name: "Ibituruna", - state: State::MG, - }, - Municipio { - ibge_code: 3129509, - name: "Ibiá", - state: State::MG, - }, - Municipio { - ibge_code: 3130051, - name: "Icaraí de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3130101, - name: "Igarapé", - state: State::MG, - }, - Municipio { - ibge_code: 3130200, - name: "Igaratinga", - state: State::MG, - }, - Municipio { - ibge_code: 3130309, - name: "Iguatama", - state: State::MG, - }, - Municipio { - ibge_code: 3130408, - name: "Ijaci", - state: State::MG, - }, - Municipio { - ibge_code: 3130507, - name: "Ilicínea", - state: State::MG, - }, - Municipio { - ibge_code: 3130556, - name: "Imbé de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3130606, - name: "Inconfidentes", - state: State::MG, - }, - Municipio { - ibge_code: 3130655, - name: "Indaiabira", - state: State::MG, - }, - Municipio { - ibge_code: 3130705, - name: "Indianópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3130804, - name: "Ingaí", - state: State::MG, - }, - Municipio { - ibge_code: 3130903, - name: "Inhapim", - state: State::MG, - }, - Municipio { - ibge_code: 3131000, - name: "Inhaúma", - state: State::MG, - }, - Municipio { - ibge_code: 3131109, - name: "Inimutaba", - state: State::MG, - }, - Municipio { - ibge_code: 3131158, - name: "Ipaba", - state: State::MG, - }, - Municipio { - ibge_code: 3131208, - name: "Ipanema", - state: State::MG, - }, - Municipio { - ibge_code: 3131307, - name: "Ipatinga", - state: State::MG, - }, - Municipio { - ibge_code: 3131406, - name: "Ipiaçu", - state: State::MG, - }, - Municipio { - ibge_code: 3131505, - name: "Ipuiúna", - state: State::MG, - }, - Municipio { - ibge_code: 3131604, - name: "Iraí de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3131703, - name: "Itabira", - state: State::MG, - }, - Municipio { - ibge_code: 3131802, - name: "Itabirinha", - state: State::MG, - }, - Municipio { - ibge_code: 3131901, - name: "Itabirito", - state: State::MG, - }, - Municipio { - ibge_code: 3132008, - name: "Itacambira", - state: State::MG, - }, - Municipio { - ibge_code: 3132107, - name: "Itacarambi", - state: State::MG, - }, - Municipio { - ibge_code: 3132206, - name: "Itaguara", - state: State::MG, - }, - Municipio { - ibge_code: 3132305, - name: "Itaipé", - state: State::MG, - }, - Municipio { - ibge_code: 3132404, - name: "Itajubá", - state: State::MG, - }, - Municipio { - ibge_code: 3132503, - name: "Itamarandiba", - state: State::MG, - }, - Municipio { - ibge_code: 3132602, - name: "Itamarati de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3132701, - name: "Itambacuri", - state: State::MG, - }, - Municipio { - ibge_code: 3132800, - name: "Itambé do Mato Dentro", - state: State::MG, - }, - Municipio { - ibge_code: 3132909, - name: "Itamogi", - state: State::MG, - }, - Municipio { - ibge_code: 3133006, - name: "Itamonte", - state: State::MG, - }, - Municipio { - ibge_code: 3133105, - name: "Itanhandu", - state: State::MG, - }, - Municipio { - ibge_code: 3133204, - name: "Itanhomi", - state: State::MG, - }, - Municipio { - ibge_code: 3133303, - name: "Itaobim", - state: State::MG, - }, - Municipio { - ibge_code: 3133402, - name: "Itapagipe", - state: State::MG, - }, - Municipio { - ibge_code: 3133501, - name: "Itapecerica", - state: State::MG, - }, - Municipio { - ibge_code: 3133600, - name: "Itapeva", - state: State::MG, - }, - Municipio { - ibge_code: 3133709, - name: "Itatiaiuçu", - state: State::MG, - }, - Municipio { - ibge_code: 3133907, - name: "Itaverava", - state: State::MG, - }, - Municipio { - ibge_code: 3133758, - name: "Itaú de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3133808, - name: "Itaúna", - state: State::MG, - }, - Municipio { - ibge_code: 3134004, - name: "Itinga", - state: State::MG, - }, - Municipio { - ibge_code: 3134103, - name: "Itueta", - state: State::MG, - }, - Municipio { - ibge_code: 3134202, - name: "Ituiutaba", - state: State::MG, - }, - Municipio { - ibge_code: 3134301, - name: "Itumirim", - state: State::MG, - }, - Municipio { - ibge_code: 3134400, - name: "Iturama", - state: State::MG, - }, - Municipio { - ibge_code: 3134509, - name: "Itutinga", - state: State::MG, - }, - Municipio { - ibge_code: 3134608, - name: "Jaboticatubas", - state: State::MG, - }, - Municipio { - ibge_code: 3134707, - name: "Jacinto", - state: State::MG, - }, - Municipio { - ibge_code: 3134905, - name: "Jacutinga", - state: State::MG, - }, - Municipio { - ibge_code: 3134806, - name: "Jacuí", - state: State::MG, - }, - Municipio { - ibge_code: 3135001, - name: "Jaguaraçu", - state: State::MG, - }, - Municipio { - ibge_code: 3135076, - name: "Jampruca", - state: State::MG, - }, - Municipio { - ibge_code: 3135100, - name: "Janaúba", - state: State::MG, - }, - Municipio { - ibge_code: 3135209, - name: "Januária", - state: State::MG, - }, - Municipio { - ibge_code: 3135308, - name: "Japaraíba", - state: State::MG, - }, - Municipio { - ibge_code: 3135357, - name: "Japonvar", - state: State::MG, - }, - Municipio { - ibge_code: 3135050, - name: "Jaíba", - state: State::MG, - }, - Municipio { - ibge_code: 3135407, - name: "Jeceaba", - state: State::MG, - }, - Municipio { - ibge_code: 3135456, - name: "Jenipapo de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3135506, - name: "Jequeri", - state: State::MG, - }, - Municipio { - ibge_code: 3135605, - name: "Jequitaí", - state: State::MG, - }, - Municipio { - ibge_code: 3135704, - name: "Jequitibá", - state: State::MG, - }, - Municipio { - ibge_code: 3135803, - name: "Jequitinhonha", - state: State::MG, - }, - Municipio { - ibge_code: 3135902, - name: "Jesuânia", - state: State::MG, - }, - Municipio { - ibge_code: 3136108, - name: "Joanésia", - state: State::MG, - }, - Municipio { - ibge_code: 3136405, - name: "Joaquim Felício", - state: State::MG, - }, - Municipio { - ibge_code: 3136009, - name: "Joaíma", - state: State::MG, - }, - Municipio { - ibge_code: 3136504, - name: "Jordânia", - state: State::MG, - }, - Municipio { - ibge_code: 3136579, - name: "Josenópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3136520, - name: "José Gonçalves de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3136553, - name: "José Raydan", - state: State::MG, - }, - Municipio { - ibge_code: 3136207, - name: "João Monlevade", - state: State::MG, - }, - Municipio { - ibge_code: 3136306, - name: "João Pinheiro", - state: State::MG, - }, - Municipio { - ibge_code: 3136652, - name: "Juatuba", - state: State::MG, - }, - Municipio { - ibge_code: 3136702, - name: "Juiz de Fora", - state: State::MG, - }, - Municipio { - ibge_code: 3136801, - name: "Juramento", - state: State::MG, - }, - Municipio { - ibge_code: 3136900, - name: "Juruaia", - state: State::MG, - }, - Municipio { - ibge_code: 3136959, - name: "Juvenília", - state: State::MG, - }, - Municipio { - ibge_code: 3137007, - name: "Ladainha", - state: State::MG, - }, - Municipio { - ibge_code: 3137106, - name: "Lagamar", - state: State::MG, - }, - Municipio { - ibge_code: 3137403, - name: "Lagoa Dourada", - state: State::MG, - }, - Municipio { - ibge_code: 3137502, - name: "Lagoa Formosa", - state: State::MG, - }, - Municipio { - ibge_code: 3137536, - name: "Lagoa Grande", - state: State::MG, - }, - Municipio { - ibge_code: 3137601, - name: "Lagoa Santa", - state: State::MG, - }, - Municipio { - ibge_code: 3137205, - name: "Lagoa da Prata", - state: State::MG, - }, - Municipio { - ibge_code: 3137304, - name: "Lagoa dos Patos", - state: State::MG, - }, - Municipio { - ibge_code: 3137700, - name: "Lajinha", - state: State::MG, - }, - Municipio { - ibge_code: 3137809, - name: "Lambari", - state: State::MG, - }, - Municipio { - ibge_code: 3137908, - name: "Lamim", - state: State::MG, - }, - Municipio { - ibge_code: 3138005, - name: "Laranjal", - state: State::MG, - }, - Municipio { - ibge_code: 3138104, - name: "Lassance", - state: State::MG, - }, - Municipio { - ibge_code: 3138203, - name: "Lavras", - state: State::MG, - }, - Municipio { - ibge_code: 3138302, - name: "Leandro Ferreira", - state: State::MG, - }, - Municipio { - ibge_code: 3138351, - name: "Leme do Prado", - state: State::MG, - }, - Municipio { - ibge_code: 3138401, - name: "Leopoldina", - state: State::MG, - }, - Municipio { - ibge_code: 3138500, - name: "Liberdade", - state: State::MG, - }, - Municipio { - ibge_code: 3138609, - name: "Lima Duarte", - state: State::MG, - }, - Municipio { - ibge_code: 3138625, - name: "Limeira do Oeste", - state: State::MG, - }, - Municipio { - ibge_code: 3138658, - name: "Lontra", - state: State::MG, - }, - Municipio { - ibge_code: 3138674, - name: "Luisburgo", - state: State::MG, - }, - Municipio { - ibge_code: 3138682, - name: "Luislândia", - state: State::MG, - }, - Municipio { - ibge_code: 3138708, - name: "Luminárias", - state: State::MG, - }, - Municipio { - ibge_code: 3138807, - name: "Luz", - state: State::MG, - }, - Municipio { - ibge_code: 3138906, - name: "Machacalis", - state: State::MG, - }, - Municipio { - ibge_code: 3139003, - name: "Machado", - state: State::MG, - }, - Municipio { - ibge_code: 3139102, - name: "Madre de Deus de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3139201, - name: "Malacacheta", - state: State::MG, - }, - Municipio { - ibge_code: 3139250, - name: "Mamonas", - state: State::MG, - }, - Municipio { - ibge_code: 3139300, - name: "Manga", - state: State::MG, - }, - Municipio { - ibge_code: 3139409, - name: "Manhuaçu", - state: State::MG, - }, - Municipio { - ibge_code: 3139508, - name: "Manhumirim", - state: State::MG, - }, - Municipio { - ibge_code: 3139607, - name: "Mantena", - state: State::MG, - }, - Municipio { - ibge_code: 3139805, - name: "Mar de Espanha", - state: State::MG, - }, - Municipio { - ibge_code: 3139706, - name: "Maravilhas", - state: State::MG, - }, - Municipio { - ibge_code: 3139904, - name: "Maria da Fé", - state: State::MG, - }, - Municipio { - ibge_code: 3140001, - name: "Mariana", - state: State::MG, - }, - Municipio { - ibge_code: 3140100, - name: "Marilac", - state: State::MG, - }, - Municipio { - ibge_code: 3140209, - name: "Maripá de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3140308, - name: "Marliéria", - state: State::MG, - }, - Municipio { - ibge_code: 3140407, - name: "Marmelópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3140506, - name: "Martinho Campos", - state: State::MG, - }, - Municipio { - ibge_code: 3140530, - name: "Martins Soares", - state: State::MG, - }, - Municipio { - ibge_code: 3140555, - name: "Mata Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3140605, - name: "Materlândia", - state: State::MG, - }, - Municipio { - ibge_code: 3140704, - name: "Mateus Leme", - state: State::MG, - }, - Municipio { - ibge_code: 3171501, - name: "Mathias Lobato", - state: State::MG, - }, - Municipio { - ibge_code: 3140803, - name: "Matias Barbosa", - state: State::MG, - }, - Municipio { - ibge_code: 3140852, - name: "Matias Cardoso", - state: State::MG, - }, - Municipio { - ibge_code: 3140902, - name: "Matipó", - state: State::MG, - }, - Municipio { - ibge_code: 3141009, - name: "Mato Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3141108, - name: "Matozinhos", - state: State::MG, - }, - Municipio { - ibge_code: 3141207, - name: "Matutina", - state: State::MG, - }, - Municipio { - ibge_code: 3141306, - name: "Medeiros", - state: State::MG, - }, - Municipio { - ibge_code: 3141405, - name: "Medina", - state: State::MG, - }, - Municipio { - ibge_code: 3141504, - name: "Mendes Pimentel", - state: State::MG, - }, - Municipio { - ibge_code: 3141603, - name: "Mercês", - state: State::MG, - }, - Municipio { - ibge_code: 3141702, - name: "Mesquita", - state: State::MG, - }, - Municipio { - ibge_code: 3141801, - name: "Minas Novas", - state: State::MG, - }, - Municipio { - ibge_code: 3141900, - name: "Minduri", - state: State::MG, - }, - Municipio { - ibge_code: 3142007, - name: "Mirabela", - state: State::MG, - }, - Municipio { - ibge_code: 3142106, - name: "Miradouro", - state: State::MG, - }, - Municipio { - ibge_code: 3142254, - name: "Miravânia", - state: State::MG, - }, - Municipio { - ibge_code: 3142205, - name: "Miraí", - state: State::MG, - }, - Municipio { - ibge_code: 3142304, - name: "Moeda", - state: State::MG, - }, - Municipio { - ibge_code: 3142403, - name: "Moema", - state: State::MG, - }, - Municipio { - ibge_code: 3142502, - name: "Monjolos", - state: State::MG, - }, - Municipio { - ibge_code: 3142601, - name: "Monsenhor Paulo", - state: State::MG, - }, - Municipio { - ibge_code: 3142700, - name: "Montalvânia", - state: State::MG, - }, - Municipio { - ibge_code: 3142809, - name: "Monte Alegre de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3142908, - name: "Monte Azul", - state: State::MG, - }, - Municipio { - ibge_code: 3143005, - name: "Monte Belo", - state: State::MG, - }, - Municipio { - ibge_code: 3143104, - name: "Monte Carmelo", - state: State::MG, - }, - Municipio { - ibge_code: 3143153, - name: "Monte Formoso", - state: State::MG, - }, - Municipio { - ibge_code: 3143203, - name: "Monte Santo de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3143401, - name: "Monte Sião", - state: State::MG, - }, - Municipio { - ibge_code: 3143302, - name: "Montes Claros", - state: State::MG, - }, - Municipio { - ibge_code: 3143450, - name: "Montezuma", - state: State::MG, - }, - Municipio { - ibge_code: 3143500, - name: "Morada Nova de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3143609, - name: "Morro da Garça", - state: State::MG, - }, - Municipio { - ibge_code: 3143708, - name: "Morro do Pilar", - state: State::MG, - }, - Municipio { - ibge_code: 3143807, - name: "Munhoz", - state: State::MG, - }, - Municipio { - ibge_code: 3143906, - name: "Muriaé", - state: State::MG, - }, - Municipio { - ibge_code: 3144003, - name: "Mutum", - state: State::MG, - }, - Municipio { - ibge_code: 3144102, - name: "Muzambinho", - state: State::MG, - }, - Municipio { - ibge_code: 3140159, - name: "Mário Campos", - state: State::MG, - }, - Municipio { - ibge_code: 3144201, - name: "Nacip Raydan", - state: State::MG, - }, - Municipio { - ibge_code: 3144300, - name: "Nanuque", - state: State::MG, - }, - Municipio { - ibge_code: 3144359, - name: "Naque", - state: State::MG, - }, - Municipio { - ibge_code: 3144375, - name: "Natalândia", - state: State::MG, - }, - Municipio { - ibge_code: 3144409, - name: "Natércia", - state: State::MG, - }, - Municipio { - ibge_code: 3144508, - name: "Nazareno", - state: State::MG, - }, - Municipio { - ibge_code: 3144607, - name: "Nepomuceno", - state: State::MG, - }, - Municipio { - ibge_code: 3144656, - name: "Ninheira", - state: State::MG, - }, - Municipio { - ibge_code: 3144672, - name: "Nova Belém", - state: State::MG, - }, - Municipio { - ibge_code: 3144706, - name: "Nova Era", - state: State::MG, - }, - Municipio { - ibge_code: 3144805, - name: "Nova Lima", - state: State::MG, - }, - Municipio { - ibge_code: 3144904, - name: "Nova Módica", - state: State::MG, - }, - Municipio { - ibge_code: 3145000, - name: "Nova Ponte", - state: State::MG, - }, - Municipio { - ibge_code: 3145059, - name: "Nova Porteirinha", - state: State::MG, - }, - Municipio { - ibge_code: 3145109, - name: "Nova Resende", - state: State::MG, - }, - Municipio { - ibge_code: 3145208, - name: "Nova Serrana", - state: State::MG, - }, - Municipio { - ibge_code: 3136603, - name: "Nova União", - state: State::MG, - }, - Municipio { - ibge_code: 3145307, - name: "Novo Cruzeiro", - state: State::MG, - }, - Municipio { - ibge_code: 3145356, - name: "Novo Oriente de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3145372, - name: "Novorizonte", - state: State::MG, - }, - Municipio { - ibge_code: 3145406, - name: "Olaria", - state: State::MG, - }, - Municipio { - ibge_code: 3145455, - name: "Olhos-d'Água", - state: State::MG, - }, - Municipio { - ibge_code: 3145604, - name: "Oliveira", - state: State::MG, - }, - Municipio { - ibge_code: 3145703, - name: "Oliveira Fortes", - state: State::MG, - }, - Municipio { - ibge_code: 3145505, - name: "Olímpio Noronha", - state: State::MG, - }, - Municipio { - ibge_code: 3145802, - name: "Onça de Pitangui", - state: State::MG, - }, - Municipio { - ibge_code: 3145851, - name: "Oratórios", - state: State::MG, - }, - Municipio { - ibge_code: 3145877, - name: "Orizânia", - state: State::MG, - }, - Municipio { - ibge_code: 3145901, - name: "Ouro Branco", - state: State::MG, - }, - Municipio { - ibge_code: 3146008, - name: "Ouro Fino", - state: State::MG, - }, - Municipio { - ibge_code: 3146107, - name: "Ouro Preto", - state: State::MG, - }, - Municipio { - ibge_code: 3146206, - name: "Ouro Verde de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3146255, - name: "Padre Carvalho", - state: State::MG, - }, - Municipio { - ibge_code: 3146305, - name: "Padre Paraíso", - state: State::MG, - }, - Municipio { - ibge_code: 3146552, - name: "Pai Pedro", - state: State::MG, - }, - Municipio { - ibge_code: 3146404, - name: "Paineiras", - state: State::MG, - }, - Municipio { - ibge_code: 3146503, - name: "Pains", - state: State::MG, - }, - Municipio { - ibge_code: 3146602, - name: "Paiva", - state: State::MG, - }, - Municipio { - ibge_code: 3146701, - name: "Palma", - state: State::MG, - }, - Municipio { - ibge_code: 3146750, - name: "Palmópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3146909, - name: "Papagaios", - state: State::MG, - }, - Municipio { - ibge_code: 3147006, - name: "Paracatu", - state: State::MG, - }, - Municipio { - ibge_code: 3147204, - name: "Paraguaçu", - state: State::MG, - }, - Municipio { - ibge_code: 3147303, - name: "Paraisópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3147402, - name: "Paraopeba", - state: State::MG, - }, - Municipio { - ibge_code: 3147105, - name: "Pará de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3147600, - name: "Passa Quatro", - state: State::MG, - }, - Municipio { - ibge_code: 3147709, - name: "Passa Tempo", - state: State::MG, - }, - Municipio { - ibge_code: 3147808, - name: "Passa Vinte", - state: State::MG, - }, - Municipio { - ibge_code: 3147501, - name: "Passabém", - state: State::MG, - }, - Municipio { - ibge_code: 3147907, - name: "Passos", - state: State::MG, - }, - Municipio { - ibge_code: 3147956, - name: "Patis", - state: State::MG, - }, - Municipio { - ibge_code: 3148004, - name: "Patos de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3148103, - name: "Patrocínio", - state: State::MG, - }, - Municipio { - ibge_code: 3148202, - name: "Patrocínio do Muriaé", - state: State::MG, - }, - Municipio { - ibge_code: 3148301, - name: "Paula Cândido", - state: State::MG, - }, - Municipio { - ibge_code: 3148400, - name: "Paulistas", - state: State::MG, - }, - Municipio { - ibge_code: 3148509, - name: "Pavão", - state: State::MG, - }, - Municipio { - ibge_code: 3148707, - name: "Pedra Azul", - state: State::MG, - }, - Municipio { - ibge_code: 3148756, - name: "Pedra Bonita", - state: State::MG, - }, - Municipio { - ibge_code: 3149002, - name: "Pedra Dourada", - state: State::MG, - }, - Municipio { - ibge_code: 3148806, - name: "Pedra do Anta", - state: State::MG, - }, - Municipio { - ibge_code: 3148905, - name: "Pedra do Indaiá", - state: State::MG, - }, - Municipio { - ibge_code: 3149101, - name: "Pedralva", - state: State::MG, - }, - Municipio { - ibge_code: 3149150, - name: "Pedras de Maria da Cruz", - state: State::MG, - }, - Municipio { - ibge_code: 3149200, - name: "Pedrinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3149309, - name: "Pedro Leopoldo", - state: State::MG, - }, - Municipio { - ibge_code: 3149408, - name: "Pedro Teixeira", - state: State::MG, - }, - Municipio { - ibge_code: 3149507, - name: "Pequeri", - state: State::MG, - }, - Municipio { - ibge_code: 3149606, - name: "Pequi", - state: State::MG, - }, - Municipio { - ibge_code: 3149705, - name: "Perdigão", - state: State::MG, - }, - Municipio { - ibge_code: 3149804, - name: "Perdizes", - state: State::MG, - }, - Municipio { - ibge_code: 3149903, - name: "Perdões", - state: State::MG, - }, - Municipio { - ibge_code: 3149952, - name: "Periquito", - state: State::MG, - }, - Municipio { - ibge_code: 3150000, - name: "Pescador", - state: State::MG, - }, - Municipio { - ibge_code: 3148608, - name: "Peçanha", - state: State::MG, - }, - Municipio { - ibge_code: 3150109, - name: "Piau", - state: State::MG, - }, - Municipio { - ibge_code: 3150158, - name: "Piedade de Caratinga", - state: State::MG, - }, - Municipio { - ibge_code: 3150208, - name: "Piedade de Ponte Nova", - state: State::MG, - }, - Municipio { - ibge_code: 3150307, - name: "Piedade do Rio Grande", - state: State::MG, - }, - Municipio { - ibge_code: 3150406, - name: "Piedade dos Gerais", - state: State::MG, - }, - Municipio { - ibge_code: 3150505, - name: "Pimenta", - state: State::MG, - }, - Municipio { - ibge_code: 3150539, - name: "Pingo-d'Água", - state: State::MG, - }, - Municipio { - ibge_code: 3150570, - name: "Pintópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3150604, - name: "Piracema", - state: State::MG, - }, - Municipio { - ibge_code: 3150703, - name: "Pirajuba", - state: State::MG, - }, - Municipio { - ibge_code: 3150802, - name: "Piranga", - state: State::MG, - }, - Municipio { - ibge_code: 3151008, - name: "Piranguinho", - state: State::MG, - }, - Municipio { - ibge_code: 3150901, - name: "Piranguçu", - state: State::MG, - }, - Municipio { - ibge_code: 3151107, - name: "Pirapetinga", - state: State::MG, - }, - Municipio { - ibge_code: 3151206, - name: "Pirapora", - state: State::MG, - }, - Municipio { - ibge_code: 3151305, - name: "Piraúba", - state: State::MG, - }, - Municipio { - ibge_code: 3151404, - name: "Pitangui", - state: State::MG, - }, - Municipio { - ibge_code: 3151503, - name: "Piumhi", - state: State::MG, - }, - Municipio { - ibge_code: 3151602, - name: "Planura", - state: State::MG, - }, - Municipio { - ibge_code: 3151909, - name: "Pocrane", - state: State::MG, - }, - Municipio { - ibge_code: 3152006, - name: "Pompéu", - state: State::MG, - }, - Municipio { - ibge_code: 3152105, - name: "Ponte Nova", - state: State::MG, - }, - Municipio { - ibge_code: 3152131, - name: "Ponto Chique", - state: State::MG, - }, - Municipio { - ibge_code: 3152170, - name: "Ponto dos Volantes", - state: State::MG, - }, - Municipio { - ibge_code: 3152204, - name: "Porteirinha", - state: State::MG, - }, - Municipio { - ibge_code: 3152303, - name: "Porto Firme", - state: State::MG, - }, - Municipio { - ibge_code: 3152402, - name: "Poté", - state: State::MG, - }, - Municipio { - ibge_code: 3152501, - name: "Pouso Alegre", - state: State::MG, - }, - Municipio { - ibge_code: 3152600, - name: "Pouso Alto", - state: State::MG, - }, - Municipio { - ibge_code: 3151701, - name: "Poço Fundo", - state: State::MG, - }, - Municipio { - ibge_code: 3151800, - name: "Poços de Caldas", - state: State::MG, - }, - Municipio { - ibge_code: 3152709, - name: "Prados", - state: State::MG, - }, - Municipio { - ibge_code: 3152808, - name: "Prata", - state: State::MG, - }, - Municipio { - ibge_code: 3153004, - name: "Pratinha", - state: State::MG, - }, - Municipio { - ibge_code: 3152907, - name: "Pratápolis", - state: State::MG, - }, - Municipio { - ibge_code: 3153103, - name: "Presidente Bernardes", - state: State::MG, - }, - Municipio { - ibge_code: 3153202, - name: "Presidente Juscelino", - state: State::MG, - }, - Municipio { - ibge_code: 3153301, - name: "Presidente Kubitschek", - state: State::MG, - }, - Municipio { - ibge_code: 3153400, - name: "Presidente Olegário", - state: State::MG, - }, - Municipio { - ibge_code: 3153608, - name: "Prudente de Morais", - state: State::MG, - }, - Municipio { - ibge_code: 3153707, - name: "Quartel Geral", - state: State::MG, - }, - Municipio { - ibge_code: 3153806, - name: "Queluzito", - state: State::MG, - }, - Municipio { - ibge_code: 3153905, - name: "Raposos", - state: State::MG, - }, - Municipio { - ibge_code: 3154002, - name: "Raul Soares", - state: State::MG, - }, - Municipio { - ibge_code: 3154101, - name: "Recreio", - state: State::MG, - }, - Municipio { - ibge_code: 3154150, - name: "Reduto", - state: State::MG, - }, - Municipio { - ibge_code: 3154200, - name: "Resende Costa", - state: State::MG, - }, - Municipio { - ibge_code: 3154309, - name: "Resplendor", - state: State::MG, - }, - Municipio { - ibge_code: 3154408, - name: "Ressaquinha", - state: State::MG, - }, - Municipio { - ibge_code: 3154457, - name: "Riachinho", - state: State::MG, - }, - Municipio { - ibge_code: 3154507, - name: "Riacho dos Machados", - state: State::MG, - }, - Municipio { - ibge_code: 3154705, - name: "Ribeirão Vermelho", - state: State::MG, - }, - Municipio { - ibge_code: 3154606, - name: "Ribeirão das Neves", - state: State::MG, - }, - Municipio { - ibge_code: 3154804, - name: "Rio Acima", - state: State::MG, - }, - Municipio { - ibge_code: 3154903, - name: "Rio Casca", - state: State::MG, - }, - Municipio { - ibge_code: 3155009, - name: "Rio Doce", - state: State::MG, - }, - Municipio { - ibge_code: 3155207, - name: "Rio Espera", - state: State::MG, - }, - Municipio { - ibge_code: 3155306, - name: "Rio Manso", - state: State::MG, - }, - Municipio { - ibge_code: 3155405, - name: "Rio Novo", - state: State::MG, - }, - Municipio { - ibge_code: 3155504, - name: "Rio Paranaíba", - state: State::MG, - }, - Municipio { - ibge_code: 3155603, - name: "Rio Pardo de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3155702, - name: "Rio Piracicaba", - state: State::MG, - }, - Municipio { - ibge_code: 3155801, - name: "Rio Pomba", - state: State::MG, - }, - Municipio { - ibge_code: 3155900, - name: "Rio Preto", - state: State::MG, - }, - Municipio { - ibge_code: 3156007, - name: "Rio Vermelho", - state: State::MG, - }, - Municipio { - ibge_code: 3155108, - name: "Rio do Prado", - state: State::MG, - }, - Municipio { - ibge_code: 3156106, - name: "Ritápolis", - state: State::MG, - }, - Municipio { - ibge_code: 3156205, - name: "Rochedo de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3156304, - name: "Rodeiro", - state: State::MG, - }, - Municipio { - ibge_code: 3156403, - name: "Romaria", - state: State::MG, - }, - Municipio { - ibge_code: 3156452, - name: "Rosário da Limeira", - state: State::MG, - }, - Municipio { - ibge_code: 3156502, - name: "Rubelita", - state: State::MG, - }, - Municipio { - ibge_code: 3156601, - name: "Rubim", - state: State::MG, - }, - Municipio { - ibge_code: 3156700, - name: "Sabará", - state: State::MG, - }, - Municipio { - ibge_code: 3156809, - name: "Sabinópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3156908, - name: "Sacramento", - state: State::MG, - }, - Municipio { - ibge_code: 3157005, - name: "Salinas", - state: State::MG, - }, - Municipio { - ibge_code: 3157104, - name: "Salto da Divisa", - state: State::MG, - }, - Municipio { - ibge_code: 3157203, - name: "Santa Bárbara", - state: State::MG, - }, - Municipio { - ibge_code: 3157252, - name: "Santa Bárbara do Leste", - state: State::MG, - }, - Municipio { - ibge_code: 3157278, - name: "Santa Bárbara do Monte Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3157302, - name: "Santa Bárbara do Tugúrio", - state: State::MG, - }, - Municipio { - ibge_code: 3157336, - name: "Santa Cruz de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3157377, - name: "Santa Cruz de Salinas", - state: State::MG, - }, - Municipio { - ibge_code: 3157401, - name: "Santa Cruz do Escalvado", - state: State::MG, - }, - Municipio { - ibge_code: 3157500, - name: "Santa Efigênia de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3157609, - name: "Santa Fé de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3157658, - name: "Santa Helena de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3157708, - name: "Santa Juliana", - state: State::MG, - }, - Municipio { - ibge_code: 3157807, - name: "Santa Luzia", - state: State::MG, - }, - Municipio { - ibge_code: 3157906, - name: "Santa Margarida", - state: State::MG, - }, - Municipio { - ibge_code: 3158003, - name: "Santa Maria de Itabira", - state: State::MG, - }, - Municipio { - ibge_code: 3158102, - name: "Santa Maria do Salto", - state: State::MG, - }, - Municipio { - ibge_code: 3158201, - name: "Santa Maria do Suaçuí", - state: State::MG, - }, - Municipio { - ibge_code: 3159209, - name: "Santa Rita de Caldas", - state: State::MG, - }, - Municipio { - ibge_code: 3159407, - name: "Santa Rita de Ibitipoca", - state: State::MG, - }, - Municipio { - ibge_code: 3159308, - name: "Santa Rita de Jacutinga", - state: State::MG, - }, - Municipio { - ibge_code: 3159357, - name: "Santa Rita de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3159506, - name: "Santa Rita do Itueto", - state: State::MG, - }, - Municipio { - ibge_code: 3159605, - name: "Santa Rita do Sapucaí", - state: State::MG, - }, - Municipio { - ibge_code: 3159704, - name: "Santa Rosa da Serra", - state: State::MG, - }, - Municipio { - ibge_code: 3159803, - name: "Santa Vitória", - state: State::MG, - }, - Municipio { - ibge_code: 3158300, - name: "Santana da Vargem", - state: State::MG, - }, - Municipio { - ibge_code: 3158409, - name: "Santana de Cataguases", - state: State::MG, - }, - Municipio { - ibge_code: 3158508, - name: "Santana de Pirapama", - state: State::MG, - }, - Municipio { - ibge_code: 3158607, - name: "Santana do Deserto", - state: State::MG, - }, - Municipio { - ibge_code: 3158706, - name: "Santana do Garambéu", - state: State::MG, - }, - Municipio { - ibge_code: 3158805, - name: "Santana do Jacaré", - state: State::MG, - }, - Municipio { - ibge_code: 3158904, - name: "Santana do Manhuaçu", - state: State::MG, - }, - Municipio { - ibge_code: 3158953, - name: "Santana do Paraíso", - state: State::MG, - }, - Municipio { - ibge_code: 3159001, - name: "Santana do Riacho", - state: State::MG, - }, - Municipio { - ibge_code: 3159100, - name: "Santana dos Montes", - state: State::MG, - }, - Municipio { - ibge_code: 3159902, - name: "Santo Antônio do Amparo", - state: State::MG, - }, - Municipio { - ibge_code: 3160009, - name: "Santo Antônio do Aventureiro", - state: State::MG, - }, - Municipio { - ibge_code: 3160108, - name: "Santo Antônio do Grama", - state: State::MG, - }, - Municipio { - ibge_code: 3160207, - name: "Santo Antônio do Itambé", - state: State::MG, - }, - Municipio { - ibge_code: 3160306, - name: "Santo Antônio do Jacinto", - state: State::MG, - }, - Municipio { - ibge_code: 3160405, - name: "Santo Antônio do Monte", - state: State::MG, - }, - Municipio { - ibge_code: 3160454, - name: "Santo Antônio do Retiro", - state: State::MG, - }, - Municipio { - ibge_code: 3160504, - name: "Santo Antônio do Rio Abaixo", - state: State::MG, - }, - Municipio { - ibge_code: 3160603, - name: "Santo Hipólito", - state: State::MG, - }, - Municipio { - ibge_code: 3160702, - name: "Santos Dumont", - state: State::MG, - }, - Municipio { - ibge_code: 3165404, - name: "Sapucaí-Mirim", - state: State::MG, - }, - Municipio { - ibge_code: 3165503, - name: "Sardoá", - state: State::MG, - }, - Municipio { - ibge_code: 3165537, - name: "Sarzedo", - state: State::MG, - }, - Municipio { - ibge_code: 3165560, - name: "Sem-Peixe", - state: State::MG, - }, - Municipio { - ibge_code: 3165578, - name: "Senador Amaral", - state: State::MG, - }, - Municipio { - ibge_code: 3165602, - name: "Senador Cortes", - state: State::MG, - }, - Municipio { - ibge_code: 3165701, - name: "Senador Firmino", - state: State::MG, - }, - Municipio { - ibge_code: 3165800, - name: "Senador José Bento", - state: State::MG, - }, - Municipio { - ibge_code: 3165909, - name: "Senador Modestino Gonçalves", - state: State::MG, - }, - Municipio { - ibge_code: 3166006, - name: "Senhora de Oliveira", - state: State::MG, - }, - Municipio { - ibge_code: 3166105, - name: "Senhora do Porto", - state: State::MG, - }, - Municipio { - ibge_code: 3166204, - name: "Senhora dos Remédios", - state: State::MG, - }, - Municipio { - ibge_code: 3166303, - name: "Sericita", - state: State::MG, - }, - Municipio { - ibge_code: 3166402, - name: "Seritinga", - state: State::MG, - }, - Municipio { - ibge_code: 3166501, - name: "Serra Azul de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3166600, - name: "Serra da Saudade", - state: State::MG, - }, - Municipio { - ibge_code: 3166808, - name: "Serra do Salitre", - state: State::MG, - }, - Municipio { - ibge_code: 3166709, - name: "Serra dos Aimorés", - state: State::MG, - }, - Municipio { - ibge_code: 3166907, - name: "Serrania", - state: State::MG, - }, - Municipio { - ibge_code: 3167004, - name: "Serranos", - state: State::MG, - }, - Municipio { - ibge_code: 3166956, - name: "Serranópolis de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3167103, - name: "Serro", - state: State::MG, - }, - Municipio { - ibge_code: 3167202, - name: "Sete Lagoas", - state: State::MG, - }, - Municipio { - ibge_code: 3165552, - name: "Setubinha", - state: State::MG, - }, - Municipio { - ibge_code: 3167301, - name: "Silveirânia", - state: State::MG, - }, - Municipio { - ibge_code: 3167400, - name: "Silvianópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3167608, - name: "Simonésia", - state: State::MG, - }, - Municipio { - ibge_code: 3167509, - name: "Simão Pereira", - state: State::MG, - }, - Municipio { - ibge_code: 3167707, - name: "Sobrália", - state: State::MG, - }, - Municipio { - ibge_code: 3167806, - name: "Soledade de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3160801, - name: "São Bento Abade", - state: State::MG, - }, - Municipio { - ibge_code: 3160900, - name: "São Brás do Suaçuí", - state: State::MG, - }, - Municipio { - ibge_code: 3160959, - name: "São Domingos das Dores", - state: State::MG, - }, - Municipio { - ibge_code: 3161007, - name: "São Domingos do Prata", - state: State::MG, - }, - Municipio { - ibge_code: 3161106, - name: "São Francisco", - state: State::MG, - }, - Municipio { - ibge_code: 3161205, - name: "São Francisco de Paula", - state: State::MG, - }, - Municipio { - ibge_code: 3161304, - name: "São Francisco de Sales", - state: State::MG, - }, - Municipio { - ibge_code: 3161403, - name: "São Francisco do Glória", - state: State::MG, - }, - Municipio { - ibge_code: 3161056, - name: "São Félix de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3161502, - name: "São Geraldo", - state: State::MG, - }, - Municipio { - ibge_code: 3161601, - name: "São Geraldo da Piedade", - state: State::MG, - }, - Municipio { - ibge_code: 3161650, - name: "São Geraldo do Baixio", - state: State::MG, - }, - Municipio { - ibge_code: 3161700, - name: "São Gonçalo do Abaeté", - state: State::MG, - }, - Municipio { - ibge_code: 3161809, - name: "São Gonçalo do Pará", - state: State::MG, - }, - Municipio { - ibge_code: 3161908, - name: "São Gonçalo do Rio Abaixo", - state: State::MG, - }, - Municipio { - ibge_code: 3125507, - name: "São Gonçalo do Rio Preto", - state: State::MG, - }, - Municipio { - ibge_code: 3162005, - name: "São Gonçalo do Sapucaí", - state: State::MG, - }, - Municipio { - ibge_code: 3162104, - name: "São Gotardo", - state: State::MG, - }, - Municipio { - ibge_code: 3162922, - name: "São Joaquim de Bicas", - state: State::MG, - }, - Municipio { - ibge_code: 3162948, - name: "São José da Barra", - state: State::MG, - }, - Municipio { - ibge_code: 3162955, - name: "São José da Lapa", - state: State::MG, - }, - Municipio { - ibge_code: 3163003, - name: "São José da Safira", - state: State::MG, - }, - Municipio { - ibge_code: 3163102, - name: "São José da Varginha", - state: State::MG, - }, - Municipio { - ibge_code: 3163201, - name: "São José do Alegre", - state: State::MG, - }, - Municipio { - ibge_code: 3163300, - name: "São José do Divino", - state: State::MG, - }, - Municipio { - ibge_code: 3163409, - name: "São José do Goiabal", - state: State::MG, - }, - Municipio { - ibge_code: 3163508, - name: "São José do Jacuri", - state: State::MG, - }, - Municipio { - ibge_code: 3163607, - name: "São José do Mantimento", - state: State::MG, - }, - Municipio { - ibge_code: 3162203, - name: "São João Batista do Glória", - state: State::MG, - }, - Municipio { - ibge_code: 3162807, - name: "São João Evangelista", - state: State::MG, - }, - Municipio { - ibge_code: 3162906, - name: "São João Nepomuceno", - state: State::MG, - }, - Municipio { - ibge_code: 3162252, - name: "São João da Lagoa", - state: State::MG, - }, - Municipio { - ibge_code: 3162302, - name: "São João da Mata", - state: State::MG, - }, - Municipio { - ibge_code: 3162401, - name: "São João da Ponte", - state: State::MG, - }, - Municipio { - ibge_code: 3162450, - name: "São João das Missões", - state: State::MG, - }, - Municipio { - ibge_code: 3162500, - name: "São João del Rei", - state: State::MG, - }, - Municipio { - ibge_code: 3162559, - name: "São João do Manhuaçu", - state: State::MG, - }, - Municipio { - ibge_code: 3162575, - name: "São João do Manteninha", - state: State::MG, - }, - Municipio { - ibge_code: 3162609, - name: "São João do Oriente", - state: State::MG, - }, - Municipio { - ibge_code: 3162658, - name: "São João do Pacuí", - state: State::MG, - }, - Municipio { - ibge_code: 3162708, - name: "São João do Paraíso", - state: State::MG, - }, - Municipio { - ibge_code: 3163706, - name: "São Lourenço", - state: State::MG, - }, - Municipio { - ibge_code: 3163805, - name: "São Miguel do Anta", - state: State::MG, - }, - Municipio { - ibge_code: 3163904, - name: "São Pedro da União", - state: State::MG, - }, - Municipio { - ibge_code: 3164100, - name: "São Pedro do Suaçuí", - state: State::MG, - }, - Municipio { - ibge_code: 3164001, - name: "São Pedro dos Ferros", - state: State::MG, - }, - Municipio { - ibge_code: 3164209, - name: "São Romão", - state: State::MG, - }, - Municipio { - ibge_code: 3164308, - name: "São Roque de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3164407, - name: "São Sebastião da Bela Vista", - state: State::MG, - }, - Municipio { - ibge_code: 3164431, - name: "São Sebastião da Vargem Alegre", - state: State::MG, - }, - Municipio { - ibge_code: 3164472, - name: "São Sebastião do Anta", - state: State::MG, - }, - Municipio { - ibge_code: 3164506, - name: "São Sebastião do Maranhão", - state: State::MG, - }, - Municipio { - ibge_code: 3164605, - name: "São Sebastião do Oeste", - state: State::MG, - }, - Municipio { - ibge_code: 3164704, - name: "São Sebastião do Paraíso", - state: State::MG, - }, - Municipio { - ibge_code: 3164803, - name: "São Sebastião do Rio Preto", - state: State::MG, - }, - Municipio { - ibge_code: 3164902, - name: "São Sebastião do Rio Verde", - state: State::MG, - }, - Municipio { - ibge_code: 3165008, - name: "São Tiago", - state: State::MG, - }, - Municipio { - ibge_code: 3165107, - name: "São Tomás de Aquino", - state: State::MG, - }, - Municipio { - ibge_code: 3165206, - name: "São Tomé das Letras", - state: State::MG, - }, - Municipio { - ibge_code: 3165305, - name: "São Vicente de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3167905, - name: "Tabuleiro", - state: State::MG, - }, - Municipio { - ibge_code: 3168002, - name: "Taiobeiras", - state: State::MG, - }, - Municipio { - ibge_code: 3168051, - name: "Taparuba", - state: State::MG, - }, - Municipio { - ibge_code: 3168101, - name: "Tapira", - state: State::MG, - }, - Municipio { - ibge_code: 3168200, - name: "Tapiraí", - state: State::MG, - }, - Municipio { - ibge_code: 3168309, - name: "Taquaraçu de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3168408, - name: "Tarumirim", - state: State::MG, - }, - Municipio { - ibge_code: 3168507, - name: "Teixeiras", - state: State::MG, - }, - Municipio { - ibge_code: 3168606, - name: "Teófilo Otoni", - state: State::MG, - }, - Municipio { - ibge_code: 3168705, - name: "Timóteo", - state: State::MG, - }, - Municipio { - ibge_code: 3168804, - name: "Tiradentes", - state: State::MG, - }, - Municipio { - ibge_code: 3168903, - name: "Tiros", - state: State::MG, - }, - Municipio { - ibge_code: 3169000, - name: "Tocantins", - state: State::MG, - }, - Municipio { - ibge_code: 3169059, - name: "Tocos do Moji", - state: State::MG, - }, - Municipio { - ibge_code: 3169109, - name: "Toledo", - state: State::MG, - }, - Municipio { - ibge_code: 3169208, - name: "Tombos", - state: State::MG, - }, - Municipio { - ibge_code: 3169307, - name: "Três Corações", - state: State::MG, - }, - Municipio { - ibge_code: 3169356, - name: "Três Marias", - state: State::MG, - }, - Municipio { - ibge_code: 3169406, - name: "Três Pontas", - state: State::MG, - }, - Municipio { - ibge_code: 3169505, - name: "Tumiritinga", - state: State::MG, - }, - Municipio { - ibge_code: 3169604, - name: "Tupaciguara", - state: State::MG, - }, - Municipio { - ibge_code: 3169703, - name: "Turmalina", - state: State::MG, - }, - Municipio { - ibge_code: 3169802, - name: "Turvolândia", - state: State::MG, - }, - Municipio { - ibge_code: 3170057, - name: "Ubaporanga", - state: State::MG, - }, - Municipio { - ibge_code: 3170008, - name: "Ubaí", - state: State::MG, - }, - Municipio { - ibge_code: 3170107, - name: "Uberaba", - state: State::MG, - }, - Municipio { - ibge_code: 3170206, - name: "Uberlândia", - state: State::MG, - }, - Municipio { - ibge_code: 3169901, - name: "Ubá", - state: State::MG, - }, - Municipio { - ibge_code: 3170305, - name: "Umburatiba", - state: State::MG, - }, - Municipio { - ibge_code: 3170404, - name: "Unaí", - state: State::MG, - }, - Municipio { - ibge_code: 3170438, - name: "União de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3170479, - name: "Uruana de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3170529, - name: "Urucuia", - state: State::MG, - }, - Municipio { - ibge_code: 3170503, - name: "Urucânia", - state: State::MG, - }, - Municipio { - ibge_code: 3170578, - name: "Vargem Alegre", - state: State::MG, - }, - Municipio { - ibge_code: 3170602, - name: "Vargem Bonita", - state: State::MG, - }, - Municipio { - ibge_code: 3170651, - name: "Vargem Grande do Rio Pardo", - state: State::MG, - }, - Municipio { - ibge_code: 3170701, - name: "Varginha", - state: State::MG, - }, - Municipio { - ibge_code: 3170750, - name: "Varjão de Minas", - state: State::MG, - }, - Municipio { - ibge_code: 3170909, - name: "Varzelândia", - state: State::MG, - }, - Municipio { - ibge_code: 3171006, - name: "Vazante", - state: State::MG, - }, - Municipio { - ibge_code: 3171030, - name: "Verdelândia", - state: State::MG, - }, - Municipio { - ibge_code: 3171071, - name: "Veredinha", - state: State::MG, - }, - Municipio { - ibge_code: 3171154, - name: "Vermelho Novo", - state: State::MG, - }, - Municipio { - ibge_code: 3171105, - name: "Veríssimo", - state: State::MG, - }, - Municipio { - ibge_code: 3171204, - name: "Vespasiano", - state: State::MG, - }, - Municipio { - ibge_code: 3171402, - name: "Vieiras", - state: State::MG, - }, - Municipio { - ibge_code: 3171600, - name: "Virgem da Lapa", - state: State::MG, - }, - Municipio { - ibge_code: 3171808, - name: "Virginópolis", - state: State::MG, - }, - Municipio { - ibge_code: 3171907, - name: "Virgolândia", - state: State::MG, - }, - Municipio { - ibge_code: 3171709, - name: "Virgínia", - state: State::MG, - }, - Municipio { - ibge_code: 3172004, - name: "Visconde do Rio Branco", - state: State::MG, - }, - Municipio { - ibge_code: 3171303, - name: "Viçosa", - state: State::MG, - }, - Municipio { - ibge_code: 3172103, - name: "Volta Grande", - state: State::MG, - }, - Municipio { - ibge_code: 3170800, - name: "Várzea da Palma", - state: State::MG, - }, - Municipio { - ibge_code: 3172202, - name: "Wenceslau Braz", - state: State::MG, - }, - Municipio { - ibge_code: 3100609, - name: "Água Boa", - state: State::MG, - }, - Municipio { - ibge_code: 3100708, - name: "Água Comprida", - state: State::MG, - }, - Municipio { - ibge_code: 3100906, - name: "Águas Formosas", - state: State::MG, - }, - Municipio { - ibge_code: 3101003, - name: "Águas Vermelhas", - state: State::MG, - }, - Municipio { - ibge_code: 5000252, - name: "Alcinópolis", - state: State::MS, - }, - Municipio { - ibge_code: 5000609, - name: "Amambai", - state: State::MS, - }, - Municipio { - ibge_code: 5000708, - name: "Anastácio", - state: State::MS, - }, - Municipio { - ibge_code: 5000807, - name: "Anaurilândia", - state: State::MS, - }, - Municipio { - ibge_code: 5000856, - name: "Angélica", - state: State::MS, - }, - Municipio { - ibge_code: 5000906, - name: "Antônio João", - state: State::MS, - }, - Municipio { - ibge_code: 5001003, - name: "Aparecida do Taboado", - state: State::MS, - }, - Municipio { - ibge_code: 5001102, - name: "Aquidauana", - state: State::MS, - }, - Municipio { - ibge_code: 5001243, - name: "Aral Moreira", - state: State::MS, - }, - Municipio { - ibge_code: 5001508, - name: "Bandeirantes", - state: State::MS, - }, - Municipio { - ibge_code: 5001904, - name: "Bataguassu", - state: State::MS, - }, - Municipio { - ibge_code: 5002001, - name: "Batayporã", - state: State::MS, - }, - Municipio { - ibge_code: 5002100, - name: "Bela Vista", - state: State::MS, - }, - Municipio { - ibge_code: 5002159, - name: "Bodoquena", - state: State::MS, - }, - Municipio { - ibge_code: 5002209, - name: "Bonito", - state: State::MS, - }, - Municipio { - ibge_code: 5002308, - name: "Brasilândia", - state: State::MS, - }, - Municipio { - ibge_code: 5002407, - name: "Caarapó", - state: State::MS, - }, - Municipio { - ibge_code: 5002605, - name: "Camapuã", - state: State::MS, - }, - Municipio { - ibge_code: 5002704, - name: "Campo Grande", - state: State::MS, - }, - Municipio { - ibge_code: 5002803, - name: "Caracol", - state: State::MS, - }, - Municipio { - ibge_code: 5002902, - name: "Cassilândia", - state: State::MS, - }, - Municipio { - ibge_code: 5002951, - name: "Chapadão do Sul", - state: State::MS, - }, - Municipio { - ibge_code: 5003108, - name: "Corguinho", - state: State::MS, - }, - Municipio { - ibge_code: 5003157, - name: "Coronel Sapucaia", - state: State::MS, - }, - Municipio { - ibge_code: 5003207, - name: "Corumbá", - state: State::MS, - }, - Municipio { - ibge_code: 5003256, - name: "Costa Rica", - state: State::MS, - }, - Municipio { - ibge_code: 5003306, - name: "Coxim", - state: State::MS, - }, - Municipio { - ibge_code: 5003454, - name: "Deodápolis", - state: State::MS, - }, - Municipio { - ibge_code: 5003488, - name: "Dois Irmãos do Buriti", - state: State::MS, - }, - Municipio { - ibge_code: 5003504, - name: "Douradina", - state: State::MS, - }, - Municipio { - ibge_code: 5003702, - name: "Dourados", - state: State::MS, - }, - Municipio { - ibge_code: 5003751, - name: "Eldorado", - state: State::MS, - }, - Municipio { - ibge_code: 5003900, - name: "Figueirão", - state: State::MS, - }, - Municipio { - ibge_code: 5003801, - name: "Fátima do Sul", - state: State::MS, - }, - Municipio { - ibge_code: 5004007, - name: "Glória de Dourados", - state: State::MS, - }, - Municipio { - ibge_code: 5004106, - name: "Guia Lopes da Laguna", - state: State::MS, - }, - Municipio { - ibge_code: 5004304, - name: "Iguatemi", - state: State::MS, - }, - Municipio { - ibge_code: 5004403, - name: "Inocência", - state: State::MS, - }, - Municipio { - ibge_code: 5004502, - name: "Itaporã", - state: State::MS, - }, - Municipio { - ibge_code: 5004601, - name: "Itaquiraí", - state: State::MS, - }, - Municipio { - ibge_code: 5004700, - name: "Ivinhema", - state: State::MS, - }, - Municipio { - ibge_code: 5004809, - name: "Japorã", - state: State::MS, - }, - Municipio { - ibge_code: 5004908, - name: "Jaraguari", - state: State::MS, - }, - Municipio { - ibge_code: 5005004, - name: "Jardim", - state: State::MS, - }, - Municipio { - ibge_code: 5005103, - name: "Jateí", - state: State::MS, - }, - Municipio { - ibge_code: 5005152, - name: "Juti", - state: State::MS, - }, - Municipio { - ibge_code: 5005202, - name: "Ladário", - state: State::MS, - }, - Municipio { - ibge_code: 5005251, - name: "Laguna Carapã", - state: State::MS, - }, - Municipio { - ibge_code: 5005400, - name: "Maracaju", - state: State::MS, - }, - Municipio { - ibge_code: 5005608, - name: "Miranda", - state: State::MS, - }, - Municipio { - ibge_code: 5005681, - name: "Mundo Novo", - state: State::MS, - }, - Municipio { - ibge_code: 5005707, - name: "Naviraí", - state: State::MS, - }, - Municipio { - ibge_code: 5005806, - name: "Nioaque", - state: State::MS, - }, - Municipio { - ibge_code: 5006002, - name: "Nova Alvorada do Sul", - state: State::MS, - }, - Municipio { - ibge_code: 5006200, - name: "Nova Andradina", - state: State::MS, - }, - Municipio { - ibge_code: 5006259, - name: "Novo Horizonte do Sul", - state: State::MS, - }, - Municipio { - ibge_code: 5006309, - name: "Paranaíba", - state: State::MS, - }, - Municipio { - ibge_code: 5006358, - name: "Paranhos", - state: State::MS, - }, - Municipio { - ibge_code: 5006275, - name: "Paraíso das Águas", - state: State::MS, - }, - Municipio { - ibge_code: 5006408, - name: "Pedro Gomes", - state: State::MS, - }, - Municipio { - ibge_code: 5006606, - name: "Ponta Porã", - state: State::MS, - }, - Municipio { - ibge_code: 5006903, - name: "Porto Murtinho", - state: State::MS, - }, - Municipio { - ibge_code: 5007109, - name: "Ribas do Rio Pardo", - state: State::MS, - }, - Municipio { - ibge_code: 5007208, - name: "Rio Brilhante", - state: State::MS, - }, - Municipio { - ibge_code: 5007307, - name: "Rio Negro", - state: State::MS, - }, - Municipio { - ibge_code: 5007406, - name: "Rio Verde de Mato Grosso", - state: State::MS, - }, - Municipio { - ibge_code: 5007505, - name: "Rochedo", - state: State::MS, - }, - Municipio { - ibge_code: 5007554, - name: "Santa Rita do Pardo", - state: State::MS, - }, - Municipio { - ibge_code: 5007802, - name: "Selvíria", - state: State::MS, - }, - Municipio { - ibge_code: 5007703, - name: "Sete Quedas", - state: State::MS, - }, - Municipio { - ibge_code: 5007901, - name: "Sidrolândia", - state: State::MS, - }, - Municipio { - ibge_code: 5007935, - name: "Sonora", - state: State::MS, - }, - Municipio { - ibge_code: 5007695, - name: "São Gabriel do Oeste", - state: State::MS, - }, - Municipio { - ibge_code: 5007950, - name: "Tacuru", - state: State::MS, - }, - Municipio { - ibge_code: 5007976, - name: "Taquarussu", - state: State::MS, - }, - Municipio { - ibge_code: 5008008, - name: "Terenos", - state: State::MS, - }, - Municipio { - ibge_code: 5008305, - name: "Três Lagoas", - state: State::MS, - }, - Municipio { - ibge_code: 5008404, - name: "Vicentina", - state: State::MS, - }, - Municipio { - ibge_code: 5000203, - name: "Água Clara", - state: State::MS, - }, - Municipio { - ibge_code: 5100102, - name: "Acorizal", - state: State::MT, - }, - Municipio { - ibge_code: 5100250, - name: "Alta Floresta", - state: State::MT, - }, - Municipio { - ibge_code: 5100300, - name: "Alto Araguaia", - state: State::MT, - }, - Municipio { - ibge_code: 5100359, - name: "Alto Boa Vista", - state: State::MT, - }, - Municipio { - ibge_code: 5100409, - name: "Alto Garças", - state: State::MT, - }, - Municipio { - ibge_code: 5100508, - name: "Alto Paraguai", - state: State::MT, - }, - Municipio { - ibge_code: 5100607, - name: "Alto Taquari", - state: State::MT, - }, - Municipio { - ibge_code: 5100805, - name: "Apiacás", - state: State::MT, - }, - Municipio { - ibge_code: 5101001, - name: "Araguaiana", - state: State::MT, - }, - Municipio { - ibge_code: 5101209, - name: "Araguainha", - state: State::MT, - }, - Municipio { - ibge_code: 5101258, - name: "Araputanga", - state: State::MT, - }, - Municipio { - ibge_code: 5101308, - name: "Arenápolis", - state: State::MT, - }, - Municipio { - ibge_code: 5101407, - name: "Aripuanã", - state: State::MT, - }, - Municipio { - ibge_code: 5101704, - name: "Barra do Bugres", - state: State::MT, - }, - Municipio { - ibge_code: 5101803, - name: "Barra do Garças", - state: State::MT, - }, - Municipio { - ibge_code: 5101605, - name: "Barão de Melgaço", - state: State::MT, - }, - Municipio { - ibge_code: 5101837, - name: "Boa Esperança do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5101852, - name: "Bom Jesus do Araguaia", - state: State::MT, - }, - Municipio { - ibge_code: 5101902, - name: "Brasnorte", - state: State::MT, - }, - Municipio { - ibge_code: 5102603, - name: "Campinápolis", - state: State::MT, - }, - Municipio { - ibge_code: 5102637, - name: "Campo Novo do Parecis", - state: State::MT, - }, - Municipio { - ibge_code: 5102678, - name: "Campo Verde", - state: State::MT, - }, - Municipio { - ibge_code: 5102686, - name: "Campos de Júlio", - state: State::MT, - }, - Municipio { - ibge_code: 5102694, - name: "Canabrava do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5102702, - name: "Canarana", - state: State::MT, - }, - Municipio { - ibge_code: 5102793, - name: "Carlinda", - state: State::MT, - }, - Municipio { - ibge_code: 5102850, - name: "Castanheira", - state: State::MT, - }, - Municipio { - ibge_code: 5103007, - name: "Chapada dos Guimarães", - state: State::MT, - }, - Municipio { - ibge_code: 5103056, - name: "Cláudia", - state: State::MT, - }, - Municipio { - ibge_code: 5103106, - name: "Cocalinho", - state: State::MT, - }, - Municipio { - ibge_code: 5103254, - name: "Colniza", - state: State::MT, - }, - Municipio { - ibge_code: 5103205, - name: "Colíder", - state: State::MT, - }, - Municipio { - ibge_code: 5103304, - name: "Comodoro", - state: State::MT, - }, - Municipio { - ibge_code: 5103353, - name: "Confresa", - state: State::MT, - }, - Municipio { - ibge_code: 5103361, - name: "Conquista D'Oeste", - state: State::MT, - }, - Municipio { - ibge_code: 5103379, - name: "Cotriguaçu", - state: State::MT, - }, - Municipio { - ibge_code: 5103403, - name: "Cuiabá", - state: State::MT, - }, - Municipio { - ibge_code: 5103437, - name: "Curvelândia", - state: State::MT, - }, - Municipio { - ibge_code: 5102504, - name: "Cáceres", - state: State::MT, - }, - Municipio { - ibge_code: 5103452, - name: "Denise", - state: State::MT, - }, - Municipio { - ibge_code: 5103502, - name: "Diamantino", - state: State::MT, - }, - Municipio { - ibge_code: 5103601, - name: "Dom Aquino", - state: State::MT, - }, - Municipio { - ibge_code: 5103700, - name: "Feliz Natal", - state: State::MT, - }, - Municipio { - ibge_code: 5103809, - name: "Figueirópolis D'Oeste", - state: State::MT, - }, - Municipio { - ibge_code: 5103858, - name: "Gaúcha do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5103908, - name: "General Carneiro", - state: State::MT, - }, - Municipio { - ibge_code: 5103957, - name: "Glória D'Oeste", - state: State::MT, - }, - Municipio { - ibge_code: 5104104, - name: "Guarantã do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5104203, - name: "Guiratinga", - state: State::MT, - }, - Municipio { - ibge_code: 5104500, - name: "Indiavaí", - state: State::MT, - }, - Municipio { - ibge_code: 5104526, - name: "Ipiranga do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5104542, - name: "Itanhangá", - state: State::MT, - }, - Municipio { - ibge_code: 5104559, - name: "Itaúba", - state: State::MT, - }, - Municipio { - ibge_code: 5104609, - name: "Itiquira", - state: State::MT, - }, - Municipio { - ibge_code: 5104807, - name: "Jaciara", - state: State::MT, - }, - Municipio { - ibge_code: 5104906, - name: "Jangada", - state: State::MT, - }, - Municipio { - ibge_code: 5105002, - name: "Jauru", - state: State::MT, - }, - Municipio { - ibge_code: 5105101, - name: "Juara", - state: State::MT, - }, - Municipio { - ibge_code: 5105176, - name: "Juruena", - state: State::MT, - }, - Municipio { - ibge_code: 5105200, - name: "Juscimeira", - state: State::MT, - }, - Municipio { - ibge_code: 5105150, - name: "Juína", - state: State::MT, - }, - Municipio { - ibge_code: 5105234, - name: "Lambari D'Oeste", - state: State::MT, - }, - Municipio { - ibge_code: 5105259, - name: "Lucas do Rio Verde", - state: State::MT, - }, - Municipio { - ibge_code: 5105309, - name: "Luciara", - state: State::MT, - }, - Municipio { - ibge_code: 5105580, - name: "Marcelândia", - state: State::MT, - }, - Municipio { - ibge_code: 5105606, - name: "Matupá", - state: State::MT, - }, - Municipio { - ibge_code: 5105622, - name: "Mirassol d'Oeste", - state: State::MT, - }, - Municipio { - ibge_code: 5105903, - name: "Nobres", - state: State::MT, - }, - Municipio { - ibge_code: 5106000, - name: "Nortelândia", - state: State::MT, - }, - Municipio { - ibge_code: 5106109, - name: "Nossa Senhora do Livramento", - state: State::MT, - }, - Municipio { - ibge_code: 5106158, - name: "Nova Bandeirantes", - state: State::MT, - }, - Municipio { - ibge_code: 5106208, - name: "Nova Brasilândia", - state: State::MT, - }, - Municipio { - ibge_code: 5106216, - name: "Nova Canaã do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5108808, - name: "Nova Guarita", - state: State::MT, - }, - Municipio { - ibge_code: 5106182, - name: "Nova Lacerda", - state: State::MT, - }, - Municipio { - ibge_code: 5108857, - name: "Nova Marilândia", - state: State::MT, - }, - Municipio { - ibge_code: 5108907, - name: "Nova Maringá", - state: State::MT, - }, - Municipio { - ibge_code: 5108956, - name: "Nova Monte Verde", - state: State::MT, - }, - Municipio { - ibge_code: 5106224, - name: "Nova Mutum", - state: State::MT, - }, - Municipio { - ibge_code: 5106174, - name: "Nova Nazaré", - state: State::MT, - }, - Municipio { - ibge_code: 5106232, - name: "Nova Olímpia", - state: State::MT, - }, - Municipio { - ibge_code: 5106190, - name: "Nova Santa Helena", - state: State::MT, - }, - Municipio { - ibge_code: 5106240, - name: "Nova Ubiratã", - state: State::MT, - }, - Municipio { - ibge_code: 5106257, - name: "Nova Xavantina", - state: State::MT, - }, - Municipio { - ibge_code: 5106273, - name: "Novo Horizonte do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5106265, - name: "Novo Mundo", - state: State::MT, - }, - Municipio { - ibge_code: 5106315, - name: "Novo Santo Antônio", - state: State::MT, - }, - Municipio { - ibge_code: 5106281, - name: "Novo São Joaquim", - state: State::MT, - }, - Municipio { - ibge_code: 5106307, - name: "Paranatinga", - state: State::MT, - }, - Municipio { - ibge_code: 5106299, - name: "Paranaíta", - state: State::MT, - }, - Municipio { - ibge_code: 5106372, - name: "Pedra Preta", - state: State::MT, - }, - Municipio { - ibge_code: 5106422, - name: "Peixoto de Azevedo", - state: State::MT, - }, - Municipio { - ibge_code: 5106455, - name: "Planalto da Serra", - state: State::MT, - }, - Municipio { - ibge_code: 5106505, - name: "Poconé", - state: State::MT, - }, - Municipio { - ibge_code: 5106653, - name: "Pontal do Araguaia", - state: State::MT, - }, - Municipio { - ibge_code: 5106703, - name: "Ponte Branca", - state: State::MT, - }, - Municipio { - ibge_code: 5106752, - name: "Pontes e Lacerda", - state: State::MT, - }, - Municipio { - ibge_code: 5106778, - name: "Porto Alegre do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5106828, - name: "Porto Esperidião", - state: State::MT, - }, - Municipio { - ibge_code: 5106851, - name: "Porto Estrela", - state: State::MT, - }, - Municipio { - ibge_code: 5106802, - name: "Porto dos Gaúchos", - state: State::MT, - }, - Municipio { - ibge_code: 5107008, - name: "Poxoréu", - state: State::MT, - }, - Municipio { - ibge_code: 5107040, - name: "Primavera do Leste", - state: State::MT, - }, - Municipio { - ibge_code: 5107065, - name: "Querência", - state: State::MT, - }, - Municipio { - ibge_code: 5107156, - name: "Reserva do Cabaçal", - state: State::MT, - }, - Municipio { - ibge_code: 5107180, - name: "Ribeirão Cascalheira", - state: State::MT, - }, - Municipio { - ibge_code: 5107198, - name: "Ribeirãozinho", - state: State::MT, - }, - Municipio { - ibge_code: 5107206, - name: "Rio Branco", - state: State::MT, - }, - Municipio { - ibge_code: 5107578, - name: "Rondolândia", - state: State::MT, - }, - Municipio { - ibge_code: 5107602, - name: "Rondonópolis", - state: State::MT, - }, - Municipio { - ibge_code: 5107701, - name: "Rosário Oeste", - state: State::MT, - }, - Municipio { - ibge_code: 5107750, - name: "Salto do Céu", - state: State::MT, - }, - Municipio { - ibge_code: 5107248, - name: "Santa Carmem", - state: State::MT, - }, - Municipio { - ibge_code: 5107743, - name: "Santa Cruz do Xingu", - state: State::MT, - }, - Municipio { - ibge_code: 5107768, - name: "Santa Rita do Trivelato", - state: State::MT, - }, - Municipio { - ibge_code: 5107776, - name: "Santa Terezinha", - state: State::MT, - }, - Municipio { - ibge_code: 5107263, - name: "Santo Afonso", - state: State::MT, - }, - Municipio { - ibge_code: 5107800, - name: "Santo Antônio de Leverger", - state: State::MT, - }, - Municipio { - ibge_code: 5107792, - name: "Santo Antônio do Leste", - state: State::MT, - }, - Municipio { - ibge_code: 5107875, - name: "Sapezal", - state: State::MT, - }, - Municipio { - ibge_code: 5107883, - name: "Serra Nova Dourada", - state: State::MT, - }, - Municipio { - ibge_code: 5107909, - name: "Sinop", - state: State::MT, - }, - Municipio { - ibge_code: 5107925, - name: "Sorriso", - state: State::MT, - }, - Municipio { - ibge_code: 5107859, - name: "São Félix do Araguaia", - state: State::MT, - }, - Municipio { - ibge_code: 5107297, - name: "São José do Povo", - state: State::MT, - }, - Municipio { - ibge_code: 5107305, - name: "São José do Rio Claro", - state: State::MT, - }, - Municipio { - ibge_code: 5107354, - name: "São José do Xingu", - state: State::MT, - }, - Municipio { - ibge_code: 5107107, - name: "São José dos Quatro Marcos", - state: State::MT, - }, - Municipio { - ibge_code: 5107404, - name: "São Pedro da Cipa", - state: State::MT, - }, - Municipio { - ibge_code: 5107941, - name: "Tabaporã", - state: State::MT, - }, - Municipio { - ibge_code: 5107958, - name: "Tangará da Serra", - state: State::MT, - }, - Municipio { - ibge_code: 5108006, - name: "Tapurah", - state: State::MT, - }, - Municipio { - ibge_code: 5108055, - name: "Terra Nova do Norte", - state: State::MT, - }, - Municipio { - ibge_code: 5108105, - name: "Tesouro", - state: State::MT, - }, - Municipio { - ibge_code: 5108204, - name: "Torixoréu", - state: State::MT, - }, - Municipio { - ibge_code: 5108303, - name: "União do Sul", - state: State::MT, - }, - Municipio { - ibge_code: 5108352, - name: "Vale de São Domingos", - state: State::MT, - }, - Municipio { - ibge_code: 5108501, - name: "Vera", - state: State::MT, - }, - Municipio { - ibge_code: 5105507, - name: "Vila Bela da Santíssima Trindade", - state: State::MT, - }, - Municipio { - ibge_code: 5108600, - name: "Vila Rica", - state: State::MT, - }, - Municipio { - ibge_code: 5108402, - name: "Várzea Grande", - state: State::MT, - }, - Municipio { - ibge_code: 5100201, - name: "Água Boa", - state: State::MT, - }, - Municipio { - ibge_code: 1500107, - name: "Abaetetuba", - state: State::PA, - }, - Municipio { - ibge_code: 1500131, - name: "Abel Figueiredo", - state: State::PA, - }, - Municipio { - ibge_code: 1500206, - name: "Acará", - state: State::PA, - }, - Municipio { - ibge_code: 1500305, - name: "Afuá", - state: State::PA, - }, - Municipio { - ibge_code: 1500404, - name: "Alenquer", - state: State::PA, - }, - Municipio { - ibge_code: 1500503, - name: "Almeirim", - state: State::PA, - }, - Municipio { - ibge_code: 1500602, - name: "Altamira", - state: State::PA, - }, - Municipio { - ibge_code: 1500701, - name: "Anajás", - state: State::PA, - }, - Municipio { - ibge_code: 1500800, - name: "Ananindeua", - state: State::PA, - }, - Municipio { - ibge_code: 1500859, - name: "Anapu", - state: State::PA, - }, - Municipio { - ibge_code: 1500909, - name: "Augusto Corrêa", - state: State::PA, - }, - Municipio { - ibge_code: 1500958, - name: "Aurora do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1501006, - name: "Aveiro", - state: State::PA, - }, - Municipio { - ibge_code: 1501105, - name: "Bagre", - state: State::PA, - }, - Municipio { - ibge_code: 1501204, - name: "Baião", - state: State::PA, - }, - Municipio { - ibge_code: 1501253, - name: "Bannach", - state: State::PA, - }, - Municipio { - ibge_code: 1501303, - name: "Barcarena", - state: State::PA, - }, - Municipio { - ibge_code: 1501451, - name: "Belterra", - state: State::PA, - }, - Municipio { - ibge_code: 1501402, - name: "Belém", - state: State::PA, - }, - Municipio { - ibge_code: 1501501, - name: "Benevides", - state: State::PA, - }, - Municipio { - ibge_code: 1501576, - name: "Bom Jesus do Tocantins", - state: State::PA, - }, - Municipio { - ibge_code: 1501600, - name: "Bonito", - state: State::PA, - }, - Municipio { - ibge_code: 1501709, - name: "Bragança", - state: State::PA, - }, - Municipio { - ibge_code: 1501725, - name: "Brasil Novo", - state: State::PA, - }, - Municipio { - ibge_code: 1501758, - name: "Brejo Grande do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1501782, - name: "Breu Branco", - state: State::PA, - }, - Municipio { - ibge_code: 1501808, - name: "Breves", - state: State::PA, - }, - Municipio { - ibge_code: 1501907, - name: "Bujaru", - state: State::PA, - }, - Municipio { - ibge_code: 1502004, - name: "Cachoeira do Arari", - state: State::PA, - }, - Municipio { - ibge_code: 1501956, - name: "Cachoeira do Piriá", - state: State::PA, - }, - Municipio { - ibge_code: 1502103, - name: "Cametá", - state: State::PA, - }, - Municipio { - ibge_code: 1502152, - name: "Canaã dos Carajás", - state: State::PA, - }, - Municipio { - ibge_code: 1502202, - name: "Capanema", - state: State::PA, - }, - Municipio { - ibge_code: 1502301, - name: "Capitão Poço", - state: State::PA, - }, - Municipio { - ibge_code: 1502400, - name: "Castanhal", - state: State::PA, - }, - Municipio { - ibge_code: 1502509, - name: "Chaves", - state: State::PA, - }, - Municipio { - ibge_code: 1502608, - name: "Colares", - state: State::PA, - }, - Municipio { - ibge_code: 1502707, - name: "Conceição do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1502756, - name: "Concórdia do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1502764, - name: "Cumaru do Norte", - state: State::PA, - }, - Municipio { - ibge_code: 1502772, - name: "Curionópolis", - state: State::PA, - }, - Municipio { - ibge_code: 1502806, - name: "Curralinho", - state: State::PA, - }, - Municipio { - ibge_code: 1502855, - name: "Curuá", - state: State::PA, - }, - Municipio { - ibge_code: 1502905, - name: "Curuçá", - state: State::PA, - }, - Municipio { - ibge_code: 1502939, - name: "Dom Eliseu", - state: State::PA, - }, - Municipio { - ibge_code: 1502954, - name: "Eldorado do Carajás", - state: State::PA, - }, - Municipio { - ibge_code: 1503002, - name: "Faro", - state: State::PA, - }, - Municipio { - ibge_code: 1503044, - name: "Floresta do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1503077, - name: "Garrafão do Norte", - state: State::PA, - }, - Municipio { - ibge_code: 1503093, - name: "Goianésia do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1503101, - name: "Gurupá", - state: State::PA, - }, - Municipio { - ibge_code: 1503200, - name: "Igarapé-Açu", - state: State::PA, - }, - Municipio { - ibge_code: 1503309, - name: "Igarapé-Miri", - state: State::PA, - }, - Municipio { - ibge_code: 1503408, - name: "Inhangapi", - state: State::PA, - }, - Municipio { - ibge_code: 1503457, - name: "Ipixuna do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1503507, - name: "Irituia", - state: State::PA, - }, - Municipio { - ibge_code: 1503606, - name: "Itaituba", - state: State::PA, - }, - Municipio { - ibge_code: 1503705, - name: "Itupiranga", - state: State::PA, - }, - Municipio { - ibge_code: 1503754, - name: "Jacareacanga", - state: State::PA, - }, - Municipio { - ibge_code: 1503804, - name: "Jacundá", - state: State::PA, - }, - Municipio { - ibge_code: 1503903, - name: "Juruti", - state: State::PA, - }, - Municipio { - ibge_code: 1504000, - name: "Limoeiro do Ajuru", - state: State::PA, - }, - Municipio { - ibge_code: 1504109, - name: "Magalhães Barata", - state: State::PA, - }, - Municipio { - ibge_code: 1504208, - name: "Marabá", - state: State::PA, - }, - Municipio { - ibge_code: 1504307, - name: "Maracanã", - state: State::PA, - }, - Municipio { - ibge_code: 1504406, - name: "Marapanim", - state: State::PA, - }, - Municipio { - ibge_code: 1504422, - name: "Marituba", - state: State::PA, - }, - Municipio { - ibge_code: 1504455, - name: "Medicilândia", - state: State::PA, - }, - Municipio { - ibge_code: 1504505, - name: "Melgaço", - state: State::PA, - }, - Municipio { - ibge_code: 1504604, - name: "Mocajuba", - state: State::PA, - }, - Municipio { - ibge_code: 1504703, - name: "Moju", - state: State::PA, - }, - Municipio { - ibge_code: 1504752, - name: "Mojuí dos Campos", - state: State::PA, - }, - Municipio { - ibge_code: 1504802, - name: "Monte Alegre", - state: State::PA, - }, - Municipio { - ibge_code: 1504901, - name: "Muaná", - state: State::PA, - }, - Municipio { - ibge_code: 1504059, - name: "Mãe do Rio", - state: State::PA, - }, - Municipio { - ibge_code: 1504950, - name: "Nova Esperança do Piriá", - state: State::PA, - }, - Municipio { - ibge_code: 1504976, - name: "Nova Ipixuna", - state: State::PA, - }, - Municipio { - ibge_code: 1505007, - name: "Nova Timboteua", - state: State::PA, - }, - Municipio { - ibge_code: 1505031, - name: "Novo Progresso", - state: State::PA, - }, - Municipio { - ibge_code: 1505064, - name: "Novo Repartimento", - state: State::PA, - }, - Municipio { - ibge_code: 1505205, - name: "Oeiras do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1505304, - name: "Oriximiná", - state: State::PA, - }, - Municipio { - ibge_code: 1505437, - name: "Ourilândia do Norte", - state: State::PA, - }, - Municipio { - ibge_code: 1505403, - name: "Ourém", - state: State::PA, - }, - Municipio { - ibge_code: 1505486, - name: "Pacajá", - state: State::PA, - }, - Municipio { - ibge_code: 1505494, - name: "Palestina do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1505502, - name: "Paragominas", - state: State::PA, - }, - Municipio { - ibge_code: 1505536, - name: "Parauapebas", - state: State::PA, - }, - Municipio { - ibge_code: 1505551, - name: "Pau D'Arco", - state: State::PA, - }, - Municipio { - ibge_code: 1505601, - name: "Peixe-Boi", - state: State::PA, - }, - Municipio { - ibge_code: 1505635, - name: "Piçarra", - state: State::PA, - }, - Municipio { - ibge_code: 1505650, - name: "Placas", - state: State::PA, - }, - Municipio { - ibge_code: 1505700, - name: "Ponta de Pedras", - state: State::PA, - }, - Municipio { - ibge_code: 1505809, - name: "Portel", - state: State::PA, - }, - Municipio { - ibge_code: 1505908, - name: "Porto de Moz", - state: State::PA, - }, - Municipio { - ibge_code: 1506005, - name: "Prainha", - state: State::PA, - }, - Municipio { - ibge_code: 1506104, - name: "Primavera", - state: State::PA, - }, - Municipio { - ibge_code: 1506112, - name: "Quatipuru", - state: State::PA, - }, - Municipio { - ibge_code: 1506138, - name: "Redenção", - state: State::PA, - }, - Municipio { - ibge_code: 1506161, - name: "Rio Maria", - state: State::PA, - }, - Municipio { - ibge_code: 1506187, - name: "Rondon do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1506195, - name: "Rurópolis", - state: State::PA, - }, - Municipio { - ibge_code: 1506203, - name: "Salinópolis", - state: State::PA, - }, - Municipio { - ibge_code: 1506302, - name: "Salvaterra", - state: State::PA, - }, - Municipio { - ibge_code: 1506351, - name: "Santa Bárbara do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1506401, - name: "Santa Cruz do Arari", - state: State::PA, - }, - Municipio { - ibge_code: 1506500, - name: "Santa Izabel do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1506559, - name: "Santa Luzia do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1506583, - name: "Santa Maria das Barreiras", - state: State::PA, - }, - Municipio { - ibge_code: 1506609, - name: "Santa Maria do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1506708, - name: "Santana do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1506807, - name: "Santarém", - state: State::PA, - }, - Municipio { - ibge_code: 1506906, - name: "Santarém Novo", - state: State::PA, - }, - Municipio { - ibge_code: 1507003, - name: "Santo Antônio do Tauá", - state: State::PA, - }, - Municipio { - ibge_code: 1507755, - name: "Sapucaia", - state: State::PA, - }, - Municipio { - ibge_code: 1507805, - name: "Senador José Porfírio", - state: State::PA, - }, - Municipio { - ibge_code: 1507904, - name: "Soure", - state: State::PA, - }, - Municipio { - ibge_code: 1507102, - name: "São Caetano de Odivelas", - state: State::PA, - }, - Municipio { - ibge_code: 1507151, - name: "São Domingos do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1507201, - name: "São Domingos do Capim", - state: State::PA, - }, - Municipio { - ibge_code: 1507409, - name: "São Francisco do Pará", - state: State::PA, - }, - Municipio { - ibge_code: 1507300, - name: "São Félix do Xingu", - state: State::PA, - }, - Municipio { - ibge_code: 1507458, - name: "São Geraldo do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1507466, - name: "São João da Ponta", - state: State::PA, - }, - Municipio { - ibge_code: 1507474, - name: "São João de Pirabas", - state: State::PA, - }, - Municipio { - ibge_code: 1507508, - name: "São João do Araguaia", - state: State::PA, - }, - Municipio { - ibge_code: 1507607, - name: "São Miguel do Guamá", - state: State::PA, - }, - Municipio { - ibge_code: 1507706, - name: "São Sebastião da Boa Vista", - state: State::PA, - }, - Municipio { - ibge_code: 1507953, - name: "Tailândia", - state: State::PA, - }, - Municipio { - ibge_code: 1507961, - name: "Terra Alta", - state: State::PA, - }, - Municipio { - ibge_code: 1507979, - name: "Terra Santa", - state: State::PA, - }, - Municipio { - ibge_code: 1508001, - name: "Tomé-Açu", - state: State::PA, - }, - Municipio { - ibge_code: 1508035, - name: "Tracuateua", - state: State::PA, - }, - Municipio { - ibge_code: 1508050, - name: "Trairão", - state: State::PA, - }, - Municipio { - ibge_code: 1508084, - name: "Tucumã", - state: State::PA, - }, - Municipio { - ibge_code: 1508100, - name: "Tucuruí", - state: State::PA, - }, - Municipio { - ibge_code: 1508126, - name: "Ulianópolis", - state: State::PA, - }, - Municipio { - ibge_code: 1508159, - name: "Uruará", - state: State::PA, - }, - Municipio { - ibge_code: 1508209, - name: "Vigia", - state: State::PA, - }, - Municipio { - ibge_code: 1508308, - name: "Viseu", - state: State::PA, - }, - Municipio { - ibge_code: 1508357, - name: "Vitória do Xingu", - state: State::PA, - }, - Municipio { - ibge_code: 1508407, - name: "Xinguara", - state: State::PA, - }, - Municipio { - ibge_code: 1500347, - name: "Água Azul do Norte", - state: State::PA, - }, - Municipio { - ibge_code: 1505106, - name: "Óbidos", - state: State::PA, - }, - Municipio { - ibge_code: 2500205, - name: "Aguiar", - state: State::PB, - }, - Municipio { - ibge_code: 2500304, - name: "Alagoa Grande", - state: State::PB, - }, - Municipio { - ibge_code: 2500403, - name: "Alagoa Nova", - state: State::PB, - }, - Municipio { - ibge_code: 2500502, - name: "Alagoinha", - state: State::PB, - }, - Municipio { - ibge_code: 2500536, - name: "Alcantil", - state: State::PB, - }, - Municipio { - ibge_code: 2500577, - name: "Algodão de Jandaíra", - state: State::PB, - }, - Municipio { - ibge_code: 2500601, - name: "Alhandra", - state: State::PB, - }, - Municipio { - ibge_code: 2500734, - name: "Amparo", - state: State::PB, - }, - Municipio { - ibge_code: 2500775, - name: "Aparecida", - state: State::PB, - }, - Municipio { - ibge_code: 2500908, - name: "Arara", - state: State::PB, - }, - Municipio { - ibge_code: 2501005, - name: "Araruna", - state: State::PB, - }, - Municipio { - ibge_code: 2500809, - name: "Araçagi", - state: State::PB, - }, - Municipio { - ibge_code: 2501104, - name: "Areia", - state: State::PB, - }, - Municipio { - ibge_code: 2501153, - name: "Areia de Baraúnas", - state: State::PB, - }, - Municipio { - ibge_code: 2501203, - name: "Areial", - state: State::PB, - }, - Municipio { - ibge_code: 2501302, - name: "Aroeiras", - state: State::PB, - }, - Municipio { - ibge_code: 2501351, - name: "Assunção", - state: State::PB, - }, - Municipio { - ibge_code: 2501500, - name: "Bananeiras", - state: State::PB, - }, - Municipio { - ibge_code: 2501534, - name: "Baraúna", - state: State::PB, - }, - Municipio { - ibge_code: 2501609, - name: "Barra de Santa Rosa", - state: State::PB, - }, - Municipio { - ibge_code: 2501575, - name: "Barra de Santana", - state: State::PB, - }, - Municipio { - ibge_code: 2501708, - name: "Barra de São Miguel", - state: State::PB, - }, - Municipio { - ibge_code: 2501807, - name: "Bayeux", - state: State::PB, - }, - Municipio { - ibge_code: 2501401, - name: "Baía da Traição", - state: State::PB, - }, - Municipio { - ibge_code: 2501906, - name: "Belém", - state: State::PB, - }, - Municipio { - ibge_code: 2502003, - name: "Belém do Brejo do Cruz", - state: State::PB, - }, - Municipio { - ibge_code: 2502052, - name: "Bernardino Batista", - state: State::PB, - }, - Municipio { - ibge_code: 2502102, - name: "Boa Ventura", - state: State::PB, - }, - Municipio { - ibge_code: 2502151, - name: "Boa Vista", - state: State::PB, - }, - Municipio { - ibge_code: 2502201, - name: "Bom Jesus", - state: State::PB, - }, - Municipio { - ibge_code: 2502300, - name: "Bom Sucesso", - state: State::PB, - }, - Municipio { - ibge_code: 2502409, - name: "Bonito de Santa Fé", - state: State::PB, - }, - Municipio { - ibge_code: 2502508, - name: "Boqueirão", - state: State::PB, - }, - Municipio { - ibge_code: 2502706, - name: "Borborema", - state: State::PB, - }, - Municipio { - ibge_code: 2502805, - name: "Brejo do Cruz", - state: State::PB, - }, - Municipio { - ibge_code: 2502904, - name: "Brejo dos Santos", - state: State::PB, - }, - Municipio { - ibge_code: 2503001, - name: "Caaporã", - state: State::PB, - }, - Municipio { - ibge_code: 2503100, - name: "Cabaceiras", - state: State::PB, - }, - Municipio { - ibge_code: 2503209, - name: "Cabedelo", - state: State::PB, - }, - Municipio { - ibge_code: 2503308, - name: "Cachoeira dos Índios", - state: State::PB, - }, - Municipio { - ibge_code: 2503407, - name: "Cacimba de Areia", - state: State::PB, - }, - Municipio { - ibge_code: 2503506, - name: "Cacimba de Dentro", - state: State::PB, - }, - Municipio { - ibge_code: 2503555, - name: "Cacimbas", - state: State::PB, - }, - Municipio { - ibge_code: 2503605, - name: "Caiçara", - state: State::PB, - }, - Municipio { - ibge_code: 2503704, - name: "Cajazeiras", - state: State::PB, - }, - Municipio { - ibge_code: 2503753, - name: "Cajazeirinhas", - state: State::PB, - }, - Municipio { - ibge_code: 2503803, - name: "Caldas Brandão", - state: State::PB, - }, - Municipio { - ibge_code: 2503902, - name: "Camalaú", - state: State::PB, - }, - Municipio { - ibge_code: 2504009, - name: "Campina Grande", - state: State::PB, - }, - Municipio { - ibge_code: 2504033, - name: "Capim", - state: State::PB, - }, - Municipio { - ibge_code: 2504074, - name: "Caraúbas", - state: State::PB, - }, - Municipio { - ibge_code: 2504108, - name: "Carrapateira", - state: State::PB, - }, - Municipio { - ibge_code: 2504157, - name: "Casserengue", - state: State::PB, - }, - Municipio { - ibge_code: 2504207, - name: "Catingueira", - state: State::PB, - }, - Municipio { - ibge_code: 2504306, - name: "Catolé do Rocha", - state: State::PB, - }, - Municipio { - ibge_code: 2504355, - name: "Caturité", - state: State::PB, - }, - Municipio { - ibge_code: 2504405, - name: "Conceição", - state: State::PB, - }, - Municipio { - ibge_code: 2504504, - name: "Condado", - state: State::PB, - }, - Municipio { - ibge_code: 2504603, - name: "Conde", - state: State::PB, - }, - Municipio { - ibge_code: 2504702, - name: "Congo", - state: State::PB, - }, - Municipio { - ibge_code: 2504801, - name: "Coremas", - state: State::PB, - }, - Municipio { - ibge_code: 2504850, - name: "Coxixola", - state: State::PB, - }, - Municipio { - ibge_code: 2504900, - name: "Cruz do Espírito Santo", - state: State::PB, - }, - Municipio { - ibge_code: 2505006, - name: "Cubati", - state: State::PB, - }, - Municipio { - ibge_code: 2505204, - name: "Cuitegi", - state: State::PB, - }, - Municipio { - ibge_code: 2505105, - name: "Cuité", - state: State::PB, - }, - Municipio { - ibge_code: 2505238, - name: "Cuité de Mamanguape", - state: State::PB, - }, - Municipio { - ibge_code: 2505303, - name: "Curral Velho", - state: State::PB, - }, - Municipio { - ibge_code: 2505279, - name: "Curral de Cima", - state: State::PB, - }, - Municipio { - ibge_code: 2505352, - name: "Damião", - state: State::PB, - }, - Municipio { - ibge_code: 2505402, - name: "Desterro", - state: State::PB, - }, - Municipio { - ibge_code: 2505600, - name: "Diamante", - state: State::PB, - }, - Municipio { - ibge_code: 2505709, - name: "Dona Inês", - state: State::PB, - }, - Municipio { - ibge_code: 2505808, - name: "Duas Estradas", - state: State::PB, - }, - Municipio { - ibge_code: 2505907, - name: "Emas", - state: State::PB, - }, - Municipio { - ibge_code: 2506004, - name: "Esperança", - state: State::PB, - }, - Municipio { - ibge_code: 2506103, - name: "Fagundes", - state: State::PB, - }, - Municipio { - ibge_code: 2506202, - name: "Frei Martinho", - state: State::PB, - }, - Municipio { - ibge_code: 2506251, - name: "Gado Bravo", - state: State::PB, - }, - Municipio { - ibge_code: 2506301, - name: "Guarabira", - state: State::PB, - }, - Municipio { - ibge_code: 2506400, - name: "Gurinhém", - state: State::PB, - }, - Municipio { - ibge_code: 2506509, - name: "Gurjão", - state: State::PB, - }, - Municipio { - ibge_code: 2506608, - name: "Ibiara", - state: State::PB, - }, - Municipio { - ibge_code: 2502607, - name: "Igaracy", - state: State::PB, - }, - Municipio { - ibge_code: 2506707, - name: "Imaculada", - state: State::PB, - }, - Municipio { - ibge_code: 2506806, - name: "Ingá", - state: State::PB, - }, - Municipio { - ibge_code: 2506905, - name: "Itabaiana", - state: State::PB, - }, - Municipio { - ibge_code: 2507002, - name: "Itaporanga", - state: State::PB, - }, - Municipio { - ibge_code: 2507101, - name: "Itapororoca", - state: State::PB, - }, - Municipio { - ibge_code: 2507200, - name: "Itatuba", - state: State::PB, - }, - Municipio { - ibge_code: 2507309, - name: "Jacaraú", - state: State::PB, - }, - Municipio { - ibge_code: 2507408, - name: "Jericó", - state: State::PB, - }, - Municipio { - ibge_code: 2513653, - name: "Joca Claudino", - state: State::PB, - }, - Municipio { - ibge_code: 2507507, - name: "João Pessoa", - state: State::PB, - }, - Municipio { - ibge_code: 2507606, - name: "Juarez Távora", - state: State::PB, - }, - Municipio { - ibge_code: 2507705, - name: "Juazeirinho", - state: State::PB, - }, - Municipio { - ibge_code: 2507804, - name: "Junco do Seridó", - state: State::PB, - }, - Municipio { - ibge_code: 2507903, - name: "Juripiranga", - state: State::PB, - }, - Municipio { - ibge_code: 2508000, - name: "Juru", - state: State::PB, - }, - Municipio { - ibge_code: 2508109, - name: "Lagoa", - state: State::PB, - }, - Municipio { - ibge_code: 2508307, - name: "Lagoa Seca", - state: State::PB, - }, - Municipio { - ibge_code: 2508208, - name: "Lagoa de Dentro", - state: State::PB, - }, - Municipio { - ibge_code: 2508406, - name: "Lastro", - state: State::PB, - }, - Municipio { - ibge_code: 2508505, - name: "Livramento", - state: State::PB, - }, - Municipio { - ibge_code: 2508554, - name: "Logradouro", - state: State::PB, - }, - Municipio { - ibge_code: 2508604, - name: "Lucena", - state: State::PB, - }, - Municipio { - ibge_code: 2508802, - name: "Malta", - state: State::PB, - }, - Municipio { - ibge_code: 2508901, - name: "Mamanguape", - state: State::PB, - }, - Municipio { - ibge_code: 2509008, - name: "Manaíra", - state: State::PB, - }, - Municipio { - ibge_code: 2509057, - name: "Marcação", - state: State::PB, - }, - Municipio { - ibge_code: 2509107, - name: "Mari", - state: State::PB, - }, - Municipio { - ibge_code: 2509156, - name: "Marizópolis", - state: State::PB, - }, - Municipio { - ibge_code: 2509206, - name: "Massaranduba", - state: State::PB, - }, - Municipio { - ibge_code: 2509305, - name: "Mataraca", - state: State::PB, - }, - Municipio { - ibge_code: 2509339, - name: "Matinhas", - state: State::PB, - }, - Municipio { - ibge_code: 2509370, - name: "Mato Grosso", - state: State::PB, - }, - Municipio { - ibge_code: 2509396, - name: "Maturéia", - state: State::PB, - }, - Municipio { - ibge_code: 2509404, - name: "Mogeiro", - state: State::PB, - }, - Municipio { - ibge_code: 2509503, - name: "Montadas", - state: State::PB, - }, - Municipio { - ibge_code: 2509602, - name: "Monte Horebe", - state: State::PB, - }, - Municipio { - ibge_code: 2509701, - name: "Monteiro", - state: State::PB, - }, - Municipio { - ibge_code: 2509800, - name: "Mulungu", - state: State::PB, - }, - Municipio { - ibge_code: 2508703, - name: "Mãe d'Água", - state: State::PB, - }, - Municipio { - ibge_code: 2509909, - name: "Natuba", - state: State::PB, - }, - Municipio { - ibge_code: 2510006, - name: "Nazarezinho", - state: State::PB, - }, - Municipio { - ibge_code: 2510105, - name: "Nova Floresta", - state: State::PB, - }, - Municipio { - ibge_code: 2510204, - name: "Nova Olinda", - state: State::PB, - }, - Municipio { - ibge_code: 2510303, - name: "Nova Palmeira", - state: State::PB, - }, - Municipio { - ibge_code: 2510402, - name: "Olho d'Água", - state: State::PB, - }, - Municipio { - ibge_code: 2510501, - name: "Olivedos", - state: State::PB, - }, - Municipio { - ibge_code: 2510600, - name: "Ouro Velho", - state: State::PB, - }, - Municipio { - ibge_code: 2510659, - name: "Parari", - state: State::PB, - }, - Municipio { - ibge_code: 2510709, - name: "Passagem", - state: State::PB, - }, - Municipio { - ibge_code: 2510808, - name: "Patos", - state: State::PB, - }, - Municipio { - ibge_code: 2510907, - name: "Paulista", - state: State::PB, - }, - Municipio { - ibge_code: 2511004, - name: "Pedra Branca", - state: State::PB, - }, - Municipio { - ibge_code: 2511103, - name: "Pedra Lavrada", - state: State::PB, - }, - Municipio { - ibge_code: 2511202, - name: "Pedras de Fogo", - state: State::PB, - }, - Municipio { - ibge_code: 2512721, - name: "Pedro Régis", - state: State::PB, - }, - Municipio { - ibge_code: 2511301, - name: "Piancó", - state: State::PB, - }, - Municipio { - ibge_code: 2511400, - name: "Picuí", - state: State::PB, - }, - Municipio { - ibge_code: 2511509, - name: "Pilar", - state: State::PB, - }, - Municipio { - ibge_code: 2511608, - name: "Pilões", - state: State::PB, - }, - Municipio { - ibge_code: 2511707, - name: "Pilõezinhos", - state: State::PB, - }, - Municipio { - ibge_code: 2511806, - name: "Pirpirituba", - state: State::PB, - }, - Municipio { - ibge_code: 2511905, - name: "Pitimbu", - state: State::PB, - }, - Municipio { - ibge_code: 2512002, - name: "Pocinhos", - state: State::PB, - }, - Municipio { - ibge_code: 2512101, - name: "Pombal", - state: State::PB, - }, - Municipio { - ibge_code: 2512036, - name: "Poço Dantas", - state: State::PB, - }, - Municipio { - ibge_code: 2512077, - name: "Poço de José de Moura", - state: State::PB, - }, - Municipio { - ibge_code: 2512200, - name: "Prata", - state: State::PB, - }, - Municipio { - ibge_code: 2512309, - name: "Princesa Isabel", - state: State::PB, - }, - Municipio { - ibge_code: 2512408, - name: "Puxinanã", - state: State::PB, - }, - Municipio { - ibge_code: 2512507, - name: "Queimadas", - state: State::PB, - }, - Municipio { - ibge_code: 2512606, - name: "Quixaba", - state: State::PB, - }, - Municipio { - ibge_code: 2512705, - name: "Remígio", - state: State::PB, - }, - Municipio { - ibge_code: 2512788, - name: "Riacho de Santo Antônio", - state: State::PB, - }, - Municipio { - ibge_code: 2512804, - name: "Riacho dos Cavalos", - state: State::PB, - }, - Municipio { - ibge_code: 2512747, - name: "Riachão", - state: State::PB, - }, - Municipio { - ibge_code: 2512754, - name: "Riachão do Bacamarte", - state: State::PB, - }, - Municipio { - ibge_code: 2512762, - name: "Riachão do Poço", - state: State::PB, - }, - Municipio { - ibge_code: 2512903, - name: "Rio Tinto", - state: State::PB, - }, - Municipio { - ibge_code: 2513000, - name: "Salgadinho", - state: State::PB, - }, - Municipio { - ibge_code: 2513109, - name: "Salgado de São Félix", - state: State::PB, - }, - Municipio { - ibge_code: 2513158, - name: "Santa Cecília", - state: State::PB, - }, - Municipio { - ibge_code: 2513208, - name: "Santa Cruz", - state: State::PB, - }, - Municipio { - ibge_code: 2513307, - name: "Santa Helena", - state: State::PB, - }, - Municipio { - ibge_code: 2513356, - name: "Santa Inês", - state: State::PB, - }, - Municipio { - ibge_code: 2513406, - name: "Santa Luzia", - state: State::PB, - }, - Municipio { - ibge_code: 2513703, - name: "Santa Rita", - state: State::PB, - }, - Municipio { - ibge_code: 2513802, - name: "Santa Teresinha", - state: State::PB, - }, - Municipio { - ibge_code: 2513505, - name: "Santana de Mangueira", - state: State::PB, - }, - Municipio { - ibge_code: 2513604, - name: "Santana dos Garrotes", - state: State::PB, - }, - Municipio { - ibge_code: 2513851, - name: "Santo André", - state: State::PB, - }, - Municipio { - ibge_code: 2515302, - name: "Sapé", - state: State::PB, - }, - Municipio { - ibge_code: 2515500, - name: "Serra Branca", - state: State::PB, - }, - Municipio { - ibge_code: 2515708, - name: "Serra Grande", - state: State::PB, - }, - Municipio { - ibge_code: 2515807, - name: "Serra Redonda", - state: State::PB, - }, - Municipio { - ibge_code: 2515609, - name: "Serra da Raiz", - state: State::PB, - }, - Municipio { - ibge_code: 2515906, - name: "Serraria", - state: State::PB, - }, - Municipio { - ibge_code: 2515930, - name: "Sertãozinho", - state: State::PB, - }, - Municipio { - ibge_code: 2515971, - name: "Sobrado", - state: State::PB, - }, - Municipio { - ibge_code: 2516102, - name: "Soledade", - state: State::PB, - }, - Municipio { - ibge_code: 2516003, - name: "Solânea", - state: State::PB, - }, - Municipio { - ibge_code: 2516151, - name: "Sossêgo", - state: State::PB, - }, - Municipio { - ibge_code: 2516201, - name: "Sousa", - state: State::PB, - }, - Municipio { - ibge_code: 2516300, - name: "Sumé", - state: State::PB, - }, - Municipio { - ibge_code: 2513927, - name: "São Bentinho", - state: State::PB, - }, - Municipio { - ibge_code: 2513901, - name: "São Bento", - state: State::PB, - }, - Municipio { - ibge_code: 2513968, - name: "São Domingos", - state: State::PB, - }, - Municipio { - ibge_code: 2513943, - name: "São Domingos do Cariri", - state: State::PB, - }, - Municipio { - ibge_code: 2513984, - name: "São Francisco", - state: State::PB, - }, - Municipio { - ibge_code: 2514206, - name: "São José da Lagoa Tapada", - state: State::PB, - }, - Municipio { - ibge_code: 2514305, - name: "São José de Caiana", - state: State::PB, - }, - Municipio { - ibge_code: 2514404, - name: "São José de Espinharas", - state: State::PB, - }, - Municipio { - ibge_code: 2514503, - name: "São José de Piranhas", - state: State::PB, - }, - Municipio { - ibge_code: 2514552, - name: "São José de Princesa", - state: State::PB, - }, - Municipio { - ibge_code: 2514602, - name: "São José do Bonfim", - state: State::PB, - }, - Municipio { - ibge_code: 2514651, - name: "São José do Brejo do Cruz", - state: State::PB, - }, - Municipio { - ibge_code: 2514701, - name: "São José do Sabugi", - state: State::PB, - }, - Municipio { - ibge_code: 2514800, - name: "São José dos Cordeiros", - state: State::PB, - }, - Municipio { - ibge_code: 2514453, - name: "São José dos Ramos", - state: State::PB, - }, - Municipio { - ibge_code: 2514008, - name: "São João do Cariri", - state: State::PB, - }, - Municipio { - ibge_code: 2500700, - name: "São João do Rio do Peixe", - state: State::PB, - }, - Municipio { - ibge_code: 2514107, - name: "São João do Tigre", - state: State::PB, - }, - Municipio { - ibge_code: 2514909, - name: "São Mamede", - state: State::PB, - }, - Municipio { - ibge_code: 2515005, - name: "São Miguel de Taipu", - state: State::PB, - }, - Municipio { - ibge_code: 2515104, - name: "São Sebastião de Lagoa de Roça", - state: State::PB, - }, - Municipio { - ibge_code: 2515203, - name: "São Sebastião do Umbuzeiro", - state: State::PB, - }, - Municipio { - ibge_code: 2515401, - name: "São Vicente do Seridó", - state: State::PB, - }, - Municipio { - ibge_code: 2516409, - name: "Tacima", - state: State::PB, - }, - Municipio { - ibge_code: 2516508, - name: "Taperoá", - state: State::PB, - }, - Municipio { - ibge_code: 2516607, - name: "Tavares", - state: State::PB, - }, - Municipio { - ibge_code: 2516706, - name: "Teixeira", - state: State::PB, - }, - Municipio { - ibge_code: 2516755, - name: "Tenório", - state: State::PB, - }, - Municipio { - ibge_code: 2516805, - name: "Triunfo", - state: State::PB, - }, - Municipio { - ibge_code: 2516904, - name: "Uiraúna", - state: State::PB, - }, - Municipio { - ibge_code: 2517001, - name: "Umbuzeiro", - state: State::PB, - }, - Municipio { - ibge_code: 2517209, - name: "Vieirópolis", - state: State::PB, - }, - Municipio { - ibge_code: 2505501, - name: "Vista Serrana", - state: State::PB, - }, - Municipio { - ibge_code: 2517100, - name: "Várzea", - state: State::PB, - }, - Municipio { - ibge_code: 2517407, - name: "Zabelê", - state: State::PB, - }, - Municipio { - ibge_code: 2500106, - name: "Água Branca", - state: State::PB, - }, - Municipio { - ibge_code: 2600054, - name: "Abreu e Lima", - state: State::PE, - }, - Municipio { - ibge_code: 2600104, - name: "Afogados da Ingazeira", - state: State::PE, - }, - Municipio { - ibge_code: 2600203, - name: "Afrânio", - state: State::PE, - }, - Municipio { - ibge_code: 2600302, - name: "Agrestina", - state: State::PE, - }, - Municipio { - ibge_code: 2600609, - name: "Alagoinha", - state: State::PE, - }, - Municipio { - ibge_code: 2600708, - name: "Aliança", - state: State::PE, - }, - Municipio { - ibge_code: 2600807, - name: "Altinho", - state: State::PE, - }, - Municipio { - ibge_code: 2600906, - name: "Amaraji", - state: State::PE, - }, - Municipio { - ibge_code: 2601003, - name: "Angelim", - state: State::PE, - }, - Municipio { - ibge_code: 2601102, - name: "Araripina", - state: State::PE, - }, - Municipio { - ibge_code: 2601052, - name: "Araçoiaba", - state: State::PE, - }, - Municipio { - ibge_code: 2601201, - name: "Arcoverde", - state: State::PE, - }, - Municipio { - ibge_code: 2601300, - name: "Barra de Guabiraba", - state: State::PE, - }, - Municipio { - ibge_code: 2601409, - name: "Barreiros", - state: State::PE, - }, - Municipio { - ibge_code: 2601706, - name: "Belo Jardim", - state: State::PE, - }, - Municipio { - ibge_code: 2601508, - name: "Belém de Maria", - state: State::PE, - }, - Municipio { - ibge_code: 2601607, - name: "Belém do São Francisco", - state: State::PE, - }, - Municipio { - ibge_code: 2601805, - name: "Betânia", - state: State::PE, - }, - Municipio { - ibge_code: 2601904, - name: "Bezerros", - state: State::PE, - }, - Municipio { - ibge_code: 2602001, - name: "Bodocó", - state: State::PE, - }, - Municipio { - ibge_code: 2602100, - name: "Bom Conselho", - state: State::PE, - }, - Municipio { - ibge_code: 2602209, - name: "Bom Jardim", - state: State::PE, - }, - Municipio { - ibge_code: 2602308, - name: "Bonito", - state: State::PE, - }, - Municipio { - ibge_code: 2602506, - name: "Brejinho", - state: State::PE, - }, - Municipio { - ibge_code: 2602605, - name: "Brejo da Madre de Deus", - state: State::PE, - }, - Municipio { - ibge_code: 2602407, - name: "Brejão", - state: State::PE, - }, - Municipio { - ibge_code: 2602704, - name: "Buenos Aires", - state: State::PE, - }, - Municipio { - ibge_code: 2602803, - name: "Buíque", - state: State::PE, - }, - Municipio { - ibge_code: 2602902, - name: "Cabo de Santo Agostinho", - state: State::PE, - }, - Municipio { - ibge_code: 2603009, - name: "Cabrobó", - state: State::PE, - }, - Municipio { - ibge_code: 2603108, - name: "Cachoeirinha", - state: State::PE, - }, - Municipio { - ibge_code: 2603207, - name: "Caetés", - state: State::PE, - }, - Municipio { - ibge_code: 2603405, - name: "Calumbi", - state: State::PE, - }, - Municipio { - ibge_code: 2603306, - name: "Calçado", - state: State::PE, - }, - Municipio { - ibge_code: 2603454, - name: "Camaragibe", - state: State::PE, - }, - Municipio { - ibge_code: 2603504, - name: "Camocim de São Félix", - state: State::PE, - }, - Municipio { - ibge_code: 2603603, - name: "Camutanga", - state: State::PE, - }, - Municipio { - ibge_code: 2603702, - name: "Canhotinho", - state: State::PE, - }, - Municipio { - ibge_code: 2603801, - name: "Capoeiras", - state: State::PE, - }, - Municipio { - ibge_code: 2603926, - name: "Carnaubeira da Penha", - state: State::PE, - }, - Municipio { - ibge_code: 2603900, - name: "Carnaíba", - state: State::PE, - }, - Municipio { - ibge_code: 2604007, - name: "Carpina", - state: State::PE, - }, - Municipio { - ibge_code: 2604106, - name: "Caruaru", - state: State::PE, - }, - Municipio { - ibge_code: 2604155, - name: "Casinhas", - state: State::PE, - }, - Municipio { - ibge_code: 2604205, - name: "Catende", - state: State::PE, - }, - Municipio { - ibge_code: 2604304, - name: "Cedro", - state: State::PE, - }, - Municipio { - ibge_code: 2604502, - name: "Chã Grande", - state: State::PE, - }, - Municipio { - ibge_code: 2604403, - name: "Chã de Alegria", - state: State::PE, - }, - Municipio { - ibge_code: 2604601, - name: "Condado", - state: State::PE, - }, - Municipio { - ibge_code: 2604700, - name: "Correntes", - state: State::PE, - }, - Municipio { - ibge_code: 2604809, - name: "Cortês", - state: State::PE, - }, - Municipio { - ibge_code: 2604908, - name: "Cumaru", - state: State::PE, - }, - Municipio { - ibge_code: 2605004, - name: "Cupira", - state: State::PE, - }, - Municipio { - ibge_code: 2605103, - name: "Custódia", - state: State::PE, - }, - Municipio { - ibge_code: 2605152, - name: "Dormentes", - state: State::PE, - }, - Municipio { - ibge_code: 2605202, - name: "Escada", - state: State::PE, - }, - Municipio { - ibge_code: 2605301, - name: "Exu", - state: State::PE, - }, - Municipio { - ibge_code: 2605400, - name: "Feira Nova", - state: State::PE, - }, - Municipio { - ibge_code: 2605459, - name: "Fernando de Noronha", - state: State::PE, - }, - Municipio { - ibge_code: 2605509, - name: "Ferreiros", - state: State::PE, - }, - Municipio { - ibge_code: 2605608, - name: "Flores", - state: State::PE, - }, - Municipio { - ibge_code: 2605707, - name: "Floresta", - state: State::PE, - }, - Municipio { - ibge_code: 2605806, - name: "Frei Miguelinho", - state: State::PE, - }, - Municipio { - ibge_code: 2605905, - name: "Gameleira", - state: State::PE, - }, - Municipio { - ibge_code: 2606002, - name: "Garanhuns", - state: State::PE, - }, - Municipio { - ibge_code: 2606101, - name: "Glória do Goitá", - state: State::PE, - }, - Municipio { - ibge_code: 2606200, - name: "Goiana", - state: State::PE, - }, - Municipio { - ibge_code: 2606309, - name: "Granito", - state: State::PE, - }, - Municipio { - ibge_code: 2606408, - name: "Gravatá", - state: State::PE, - }, - Municipio { - ibge_code: 2606507, - name: "Iati", - state: State::PE, - }, - Municipio { - ibge_code: 2606606, - name: "Ibimirim", - state: State::PE, - }, - Municipio { - ibge_code: 2606705, - name: "Ibirajuba", - state: State::PE, - }, - Municipio { - ibge_code: 2606804, - name: "Igarassu", - state: State::PE, - }, - Municipio { - ibge_code: 2606903, - name: "Iguaracy", - state: State::PE, - }, - Municipio { - ibge_code: 2607604, - name: "Ilha de Itamaracá", - state: State::PE, - }, - Municipio { - ibge_code: 2607000, - name: "Inajá", - state: State::PE, - }, - Municipio { - ibge_code: 2607109, - name: "Ingazeira", - state: State::PE, - }, - Municipio { - ibge_code: 2607208, - name: "Ipojuca", - state: State::PE, - }, - Municipio { - ibge_code: 2607307, - name: "Ipubi", - state: State::PE, - }, - Municipio { - ibge_code: 2607406, - name: "Itacuruba", - state: State::PE, - }, - Municipio { - ibge_code: 2607653, - name: "Itambé", - state: State::PE, - }, - Municipio { - ibge_code: 2607703, - name: "Itapetim", - state: State::PE, - }, - Municipio { - ibge_code: 2607752, - name: "Itapissuma", - state: State::PE, - }, - Municipio { - ibge_code: 2607802, - name: "Itaquitinga", - state: State::PE, - }, - Municipio { - ibge_code: 2607505, - name: "Itaíba", - state: State::PE, - }, - Municipio { - ibge_code: 2607901, - name: "Jaboatão dos Guararapes", - state: State::PE, - }, - Municipio { - ibge_code: 2607950, - name: "Jaqueira", - state: State::PE, - }, - Municipio { - ibge_code: 2608008, - name: "Jataúba", - state: State::PE, - }, - Municipio { - ibge_code: 2608057, - name: "Jatobá", - state: State::PE, - }, - Municipio { - ibge_code: 2608206, - name: "Joaquim Nabuco", - state: State::PE, - }, - Municipio { - ibge_code: 2608107, - name: "João Alfredo", - state: State::PE, - }, - Municipio { - ibge_code: 2608255, - name: "Jucati", - state: State::PE, - }, - Municipio { - ibge_code: 2608305, - name: "Jupi", - state: State::PE, - }, - Municipio { - ibge_code: 2608404, - name: "Jurema", - state: State::PE, - }, - Municipio { - ibge_code: 2608750, - name: "Lagoa Grande", - state: State::PE, - }, - Municipio { - ibge_code: 2608503, - name: "Lagoa de Itaenga", - state: State::PE, - }, - Municipio { - ibge_code: 2608453, - name: "Lagoa do Carro", - state: State::PE, - }, - Municipio { - ibge_code: 2608602, - name: "Lagoa do Ouro", - state: State::PE, - }, - Municipio { - ibge_code: 2608701, - name: "Lagoa dos Gatos", - state: State::PE, - }, - Municipio { - ibge_code: 2608800, - name: "Lajedo", - state: State::PE, - }, - Municipio { - ibge_code: 2608909, - name: "Limoeiro", - state: State::PE, - }, - Municipio { - ibge_code: 2609006, - name: "Macaparana", - state: State::PE, - }, - Municipio { - ibge_code: 2609105, - name: "Machados", - state: State::PE, - }, - Municipio { - ibge_code: 2609154, - name: "Manari", - state: State::PE, - }, - Municipio { - ibge_code: 2609204, - name: "Maraial", - state: State::PE, - }, - Municipio { - ibge_code: 2609303, - name: "Mirandiba", - state: State::PE, - }, - Municipio { - ibge_code: 2614303, - name: "Moreilândia", - state: State::PE, - }, - Municipio { - ibge_code: 2609402, - name: "Moreno", - state: State::PE, - }, - Municipio { - ibge_code: 2609501, - name: "Nazaré da Mata", - state: State::PE, - }, - Municipio { - ibge_code: 2609600, - name: "Olinda", - state: State::PE, - }, - Municipio { - ibge_code: 2609709, - name: "Orobó", - state: State::PE, - }, - Municipio { - ibge_code: 2609808, - name: "Orocó", - state: State::PE, - }, - Municipio { - ibge_code: 2609907, - name: "Ouricuri", - state: State::PE, - }, - Municipio { - ibge_code: 2610004, - name: "Palmares", - state: State::PE, - }, - Municipio { - ibge_code: 2610103, - name: "Palmeirina", - state: State::PE, - }, - Municipio { - ibge_code: 2610202, - name: "Panelas", - state: State::PE, - }, - Municipio { - ibge_code: 2610301, - name: "Paranatama", - state: State::PE, - }, - Municipio { - ibge_code: 2610400, - name: "Parnamirim", - state: State::PE, - }, - Municipio { - ibge_code: 2610509, - name: "Passira", - state: State::PE, - }, - Municipio { - ibge_code: 2610608, - name: "Paudalho", - state: State::PE, - }, - Municipio { - ibge_code: 2610707, - name: "Paulista", - state: State::PE, - }, - Municipio { - ibge_code: 2610806, - name: "Pedra", - state: State::PE, - }, - Municipio { - ibge_code: 2610905, - name: "Pesqueira", - state: State::PE, - }, - Municipio { - ibge_code: 2611101, - name: "Petrolina", - state: State::PE, - }, - Municipio { - ibge_code: 2611002, - name: "Petrolândia", - state: State::PE, - }, - Municipio { - ibge_code: 2611309, - name: "Pombos", - state: State::PE, - }, - Municipio { - ibge_code: 2611200, - name: "Poção", - state: State::PE, - }, - Municipio { - ibge_code: 2611408, - name: "Primavera", - state: State::PE, - }, - Municipio { - ibge_code: 2611507, - name: "Quipapá", - state: State::PE, - }, - Municipio { - ibge_code: 2611533, - name: "Quixaba", - state: State::PE, - }, - Municipio { - ibge_code: 2611606, - name: "Recife", - state: State::PE, - }, - Municipio { - ibge_code: 2611705, - name: "Riacho das Almas", - state: State::PE, - }, - Municipio { - ibge_code: 2611804, - name: "Ribeirão", - state: State::PE, - }, - Municipio { - ibge_code: 2611903, - name: "Rio Formoso", - state: State::PE, - }, - Municipio { - ibge_code: 2612000, - name: "Sairé", - state: State::PE, - }, - Municipio { - ibge_code: 2612109, - name: "Salgadinho", - state: State::PE, - }, - Municipio { - ibge_code: 2612208, - name: "Salgueiro", - state: State::PE, - }, - Municipio { - ibge_code: 2612307, - name: "Saloá", - state: State::PE, - }, - Municipio { - ibge_code: 2612406, - name: "Sanharó", - state: State::PE, - }, - Municipio { - ibge_code: 2612455, - name: "Santa Cruz", - state: State::PE, - }, - Municipio { - ibge_code: 2612471, - name: "Santa Cruz da Baixa Verde", - state: State::PE, - }, - Municipio { - ibge_code: 2612505, - name: "Santa Cruz do Capibaribe", - state: State::PE, - }, - Municipio { - ibge_code: 2612554, - name: "Santa Filomena", - state: State::PE, - }, - Municipio { - ibge_code: 2612604, - name: "Santa Maria da Boa Vista", - state: State::PE, - }, - Municipio { - ibge_code: 2612703, - name: "Santa Maria do Cambucá", - state: State::PE, - }, - Municipio { - ibge_code: 2612802, - name: "Santa Terezinha", - state: State::PE, - }, - Municipio { - ibge_code: 2613909, - name: "Serra Talhada", - state: State::PE, - }, - Municipio { - ibge_code: 2614006, - name: "Serrita", - state: State::PE, - }, - Municipio { - ibge_code: 2614105, - name: "Sertânia", - state: State::PE, - }, - Municipio { - ibge_code: 2614204, - name: "Sirinhaém", - state: State::PE, - }, - Municipio { - ibge_code: 2614402, - name: "Solidão", - state: State::PE, - }, - Municipio { - ibge_code: 2614501, - name: "Surubim", - state: State::PE, - }, - Municipio { - ibge_code: 2612901, - name: "São Benedito do Sul", - state: State::PE, - }, - Municipio { - ibge_code: 2613008, - name: "São Bento do Una", - state: State::PE, - }, - Municipio { - ibge_code: 2613107, - name: "São Caitano", - state: State::PE, - }, - Municipio { - ibge_code: 2613305, - name: "São Joaquim do Monte", - state: State::PE, - }, - Municipio { - ibge_code: 2613404, - name: "São José da Coroa Grande", - state: State::PE, - }, - Municipio { - ibge_code: 2613503, - name: "São José do Belmonte", - state: State::PE, - }, - Municipio { - ibge_code: 2613602, - name: "São José do Egito", - state: State::PE, - }, - Municipio { - ibge_code: 2613206, - name: "São João", - state: State::PE, - }, - Municipio { - ibge_code: 2613701, - name: "São Lourenço da Mata", - state: State::PE, - }, - Municipio { - ibge_code: 2613800, - name: "São Vicente Férrer", - state: State::PE, - }, - Municipio { - ibge_code: 2614600, - name: "Tabira", - state: State::PE, - }, - Municipio { - ibge_code: 2614709, - name: "Tacaimbó", - state: State::PE, - }, - Municipio { - ibge_code: 2614808, - name: "Tacaratu", - state: State::PE, - }, - Municipio { - ibge_code: 2614857, - name: "Tamandaré", - state: State::PE, - }, - Municipio { - ibge_code: 2615003, - name: "Taquaritinga do Norte", - state: State::PE, - }, - Municipio { - ibge_code: 2615102, - name: "Terezinha", - state: State::PE, - }, - Municipio { - ibge_code: 2615201, - name: "Terra Nova", - state: State::PE, - }, - Municipio { - ibge_code: 2615300, - name: "Timbaúba", - state: State::PE, - }, - Municipio { - ibge_code: 2615409, - name: "Toritama", - state: State::PE, - }, - Municipio { - ibge_code: 2615508, - name: "Tracunhaém", - state: State::PE, - }, - Municipio { - ibge_code: 2615607, - name: "Trindade", - state: State::PE, - }, - Municipio { - ibge_code: 2615706, - name: "Triunfo", - state: State::PE, - }, - Municipio { - ibge_code: 2615805, - name: "Tupanatinga", - state: State::PE, - }, - Municipio { - ibge_code: 2615904, - name: "Tuparetama", - state: State::PE, - }, - Municipio { - ibge_code: 2616001, - name: "Venturosa", - state: State::PE, - }, - Municipio { - ibge_code: 2616100, - name: "Verdejante", - state: State::PE, - }, - Municipio { - ibge_code: 2616183, - name: "Vertente do Lério", - state: State::PE, - }, - Municipio { - ibge_code: 2616209, - name: "Vertentes", - state: State::PE, - }, - Municipio { - ibge_code: 2616308, - name: "Vicência", - state: State::PE, - }, - Municipio { - ibge_code: 2616407, - name: "Vitória de Santo Antão", - state: State::PE, - }, - Municipio { - ibge_code: 2616506, - name: "Xexéu", - state: State::PE, - }, - Municipio { - ibge_code: 2600401, - name: "Água Preta", - state: State::PE, - }, - Municipio { - ibge_code: 2600500, - name: "Águas Belas", - state: State::PE, - }, - Municipio { - ibge_code: 2200053, - name: "Acauã", - state: State::PI, - }, - Municipio { - ibge_code: 2200103, - name: "Agricolândia", - state: State::PI, - }, - Municipio { - ibge_code: 2200251, - name: "Alagoinha do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2200277, - name: "Alegrete do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2200301, - name: "Alto Longá", - state: State::PI, - }, - Municipio { - ibge_code: 2200400, - name: "Altos", - state: State::PI, - }, - Municipio { - ibge_code: 2200459, - name: "Alvorada do Gurguéia", - state: State::PI, - }, - Municipio { - ibge_code: 2200509, - name: "Amarante", - state: State::PI, - }, - Municipio { - ibge_code: 2200608, - name: "Angical do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2200806, - name: "Antônio Almeida", - state: State::PI, - }, - Municipio { - ibge_code: 2200707, - name: "Anísio de Abreu", - state: State::PI, - }, - Municipio { - ibge_code: 2200905, - name: "Aroazes", - state: State::PI, - }, - Municipio { - ibge_code: 2200954, - name: "Aroeiras do Itaim", - state: State::PI, - }, - Municipio { - ibge_code: 2201002, - name: "Arraial", - state: State::PI, - }, - Municipio { - ibge_code: 2201051, - name: "Assunção do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201101, - name: "Avelino Lopes", - state: State::PI, - }, - Municipio { - ibge_code: 2201150, - name: "Baixa Grande do Ribeiro", - state: State::PI, - }, - Municipio { - ibge_code: 2201176, - name: "Barra D'Alcântara", - state: State::PI, - }, - Municipio { - ibge_code: 2201200, - name: "Barras", - state: State::PI, - }, - Municipio { - ibge_code: 2201309, - name: "Barreiras do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201408, - name: "Barro Duro", - state: State::PI, - }, - Municipio { - ibge_code: 2201507, - name: "Batalha", - state: State::PI, - }, - Municipio { - ibge_code: 2201556, - name: "Bela Vista do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201572, - name: "Belém do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201606, - name: "Beneditinos", - state: State::PI, - }, - Municipio { - ibge_code: 2201705, - name: "Bertolínia", - state: State::PI, - }, - Municipio { - ibge_code: 2201739, - name: "Betânia do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201770, - name: "Boa Hora", - state: State::PI, - }, - Municipio { - ibge_code: 2201804, - name: "Bocaina", - state: State::PI, - }, - Municipio { - ibge_code: 2201903, - name: "Bom Jesus", - state: State::PI, - }, - Municipio { - ibge_code: 2201919, - name: "Bom Princípio do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201929, - name: "Bonfim do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201945, - name: "Boqueirão do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2201960, - name: "Brasileira", - state: State::PI, - }, - Municipio { - ibge_code: 2201988, - name: "Brejo do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202000, - name: "Buriti dos Lopes", - state: State::PI, - }, - Municipio { - ibge_code: 2202026, - name: "Buriti dos Montes", - state: State::PI, - }, - Municipio { - ibge_code: 2202059, - name: "Cabeceiras do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202075, - name: "Cajazeiras do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202083, - name: "Cajueiro da Praia", - state: State::PI, - }, - Municipio { - ibge_code: 2202091, - name: "Caldeirão Grande do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202109, - name: "Campinas do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202117, - name: "Campo Alegre do Fidalgo", - state: State::PI, - }, - Municipio { - ibge_code: 2202133, - name: "Campo Grande do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202174, - name: "Campo Largo do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202208, - name: "Campo Maior", - state: State::PI, - }, - Municipio { - ibge_code: 2202251, - name: "Canavieira", - state: State::PI, - }, - Municipio { - ibge_code: 2202307, - name: "Canto do Buriti", - state: State::PI, - }, - Municipio { - ibge_code: 2202455, - name: "Capitão Gervásio Oliveira", - state: State::PI, - }, - Municipio { - ibge_code: 2202406, - name: "Capitão de Campos", - state: State::PI, - }, - Municipio { - ibge_code: 2202505, - name: "Caracol", - state: State::PI, - }, - Municipio { - ibge_code: 2202539, - name: "Caraúbas do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202554, - name: "Caridade do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202604, - name: "Castelo do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202653, - name: "Caxingó", - state: State::PI, - }, - Municipio { - ibge_code: 2202703, - name: "Cocal", - state: State::PI, - }, - Municipio { - ibge_code: 2202711, - name: "Cocal de Telha", - state: State::PI, - }, - Municipio { - ibge_code: 2202729, - name: "Cocal dos Alves", - state: State::PI, - }, - Municipio { - ibge_code: 2202737, - name: "Coivaras", - state: State::PI, - }, - Municipio { - ibge_code: 2202752, - name: "Colônia do Gurguéia", - state: State::PI, - }, - Municipio { - ibge_code: 2202778, - name: "Colônia do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2202802, - name: "Conceição do Canindé", - state: State::PI, - }, - Municipio { - ibge_code: 2202851, - name: "Coronel José Dias", - state: State::PI, - }, - Municipio { - ibge_code: 2202901, - name: "Corrente", - state: State::PI, - }, - Municipio { - ibge_code: 2203008, - name: "Cristalândia do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2203107, - name: "Cristino Castro", - state: State::PI, - }, - Municipio { - ibge_code: 2203206, - name: "Curimatá", - state: State::PI, - }, - Municipio { - ibge_code: 2203230, - name: "Currais", - state: State::PI, - }, - Municipio { - ibge_code: 2203271, - name: "Curral Novo do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2203255, - name: "Curralinhos", - state: State::PI, - }, - Municipio { - ibge_code: 2203305, - name: "Demerval Lobão", - state: State::PI, - }, - Municipio { - ibge_code: 2203354, - name: "Dirceu Arcoverde", - state: State::PI, - }, - Municipio { - ibge_code: 2203404, - name: "Dom Expedito Lopes", - state: State::PI, - }, - Municipio { - ibge_code: 2203453, - name: "Dom Inocêncio", - state: State::PI, - }, - Municipio { - ibge_code: 2203420, - name: "Domingos Mourão", - state: State::PI, - }, - Municipio { - ibge_code: 2203503, - name: "Elesbão Veloso", - state: State::PI, - }, - Municipio { - ibge_code: 2203602, - name: "Eliseu Martins", - state: State::PI, - }, - Municipio { - ibge_code: 2203701, - name: "Esperantina", - state: State::PI, - }, - Municipio { - ibge_code: 2203750, - name: "Fartura do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2203800, - name: "Flores do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2203859, - name: "Floresta do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2203909, - name: "Floriano", - state: State::PI, - }, - Municipio { - ibge_code: 2204006, - name: "Francinópolis", - state: State::PI, - }, - Municipio { - ibge_code: 2204105, - name: "Francisco Ayres", - state: State::PI, - }, - Municipio { - ibge_code: 2204154, - name: "Francisco Macedo", - state: State::PI, - }, - Municipio { - ibge_code: 2204204, - name: "Francisco Santos", - state: State::PI, - }, - Municipio { - ibge_code: 2204303, - name: "Fronteiras", - state: State::PI, - }, - Municipio { - ibge_code: 2204352, - name: "Geminiano", - state: State::PI, - }, - Municipio { - ibge_code: 2204402, - name: "Gilbués", - state: State::PI, - }, - Municipio { - ibge_code: 2204501, - name: "Guadalupe", - state: State::PI, - }, - Municipio { - ibge_code: 2204550, - name: "Guaribas", - state: State::PI, - }, - Municipio { - ibge_code: 2204600, - name: "Hugo Napoleão", - state: State::PI, - }, - Municipio { - ibge_code: 2204659, - name: "Ilha Grande", - state: State::PI, - }, - Municipio { - ibge_code: 2204709, - name: "Inhuma", - state: State::PI, - }, - Municipio { - ibge_code: 2204808, - name: "Ipiranga do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2204907, - name: "Isaías Coelho", - state: State::PI, - }, - Municipio { - ibge_code: 2205003, - name: "Itainópolis", - state: State::PI, - }, - Municipio { - ibge_code: 2205102, - name: "Itaueira", - state: State::PI, - }, - Municipio { - ibge_code: 2205151, - name: "Jacobina do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2205201, - name: "Jaicós", - state: State::PI, - }, - Municipio { - ibge_code: 2205250, - name: "Jardim do Mulato", - state: State::PI, - }, - Municipio { - ibge_code: 2205276, - name: "Jatobá do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2205300, - name: "Jerumenha", - state: State::PI, - }, - Municipio { - ibge_code: 2205409, - name: "Joaquim Pires", - state: State::PI, - }, - Municipio { - ibge_code: 2205458, - name: "Joca Marques", - state: State::PI, - }, - Municipio { - ibge_code: 2205508, - name: "José de Freitas", - state: State::PI, - }, - Municipio { - ibge_code: 2205359, - name: "João Costa", - state: State::PI, - }, - Municipio { - ibge_code: 2205516, - name: "Juazeiro do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2205532, - name: "Jurema", - state: State::PI, - }, - Municipio { - ibge_code: 2205524, - name: "Júlio Borges", - state: State::PI, - }, - Municipio { - ibge_code: 2205557, - name: "Lagoa Alegre", - state: State::PI, - }, - Municipio { - ibge_code: 2205573, - name: "Lagoa de São Francisco", - state: State::PI, - }, - Municipio { - ibge_code: 2205565, - name: "Lagoa do Barro do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2205581, - name: "Lagoa do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2205599, - name: "Lagoa do Sítio", - state: State::PI, - }, - Municipio { - ibge_code: 2205540, - name: "Lagoinha do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2205607, - name: "Landri Sales", - state: State::PI, - }, - Municipio { - ibge_code: 2205805, - name: "Luzilândia", - state: State::PI, - }, - Municipio { - ibge_code: 2205706, - name: "Luís Correia", - state: State::PI, - }, - Municipio { - ibge_code: 2205854, - name: "Madeiro", - state: State::PI, - }, - Municipio { - ibge_code: 2205904, - name: "Manoel Emídio", - state: State::PI, - }, - Municipio { - ibge_code: 2205953, - name: "Marcolândia", - state: State::PI, - }, - Municipio { - ibge_code: 2206001, - name: "Marcos Parente", - state: State::PI, - }, - Municipio { - ibge_code: 2206050, - name: "Massapê do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2206100, - name: "Matias Olímpio", - state: State::PI, - }, - Municipio { - ibge_code: 2206209, - name: "Miguel Alves", - state: State::PI, - }, - Municipio { - ibge_code: 2206308, - name: "Miguel Leão", - state: State::PI, - }, - Municipio { - ibge_code: 2206357, - name: "Milton Brandão", - state: State::PI, - }, - Municipio { - ibge_code: 2206407, - name: "Monsenhor Gil", - state: State::PI, - }, - Municipio { - ibge_code: 2206506, - name: "Monsenhor Hipólito", - state: State::PI, - }, - Municipio { - ibge_code: 2206605, - name: "Monte Alegre do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2206654, - name: "Morro Cabeça no Tempo", - state: State::PI, - }, - Municipio { - ibge_code: 2206670, - name: "Morro do Chapéu do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2206696, - name: "Murici dos Portelas", - state: State::PI, - }, - Municipio { - ibge_code: 2206704, - name: "Nazaré do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2206720, - name: "Nazária", - state: State::PI, - }, - Municipio { - ibge_code: 2206753, - name: "Nossa Senhora de Nazaré", - state: State::PI, - }, - Municipio { - ibge_code: 2206803, - name: "Nossa Senhora dos Remédios", - state: State::PI, - }, - Municipio { - ibge_code: 2207959, - name: "Nova Santa Rita", - state: State::PI, - }, - Municipio { - ibge_code: 2206902, - name: "Novo Oriente do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2206951, - name: "Novo Santo Antônio", - state: State::PI, - }, - Municipio { - ibge_code: 2207009, - name: "Oeiras", - state: State::PI, - }, - Municipio { - ibge_code: 2207108, - name: "Olho D'Água do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2207207, - name: "Padre Marcos", - state: State::PI, - }, - Municipio { - ibge_code: 2207306, - name: "Paes Landim", - state: State::PI, - }, - Municipio { - ibge_code: 2207355, - name: "Pajeú do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2207405, - name: "Palmeira do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2207504, - name: "Palmeirais", - state: State::PI, - }, - Municipio { - ibge_code: 2207553, - name: "Paquetá", - state: State::PI, - }, - Municipio { - ibge_code: 2207603, - name: "Parnaguá", - state: State::PI, - }, - Municipio { - ibge_code: 2207702, - name: "Parnaíba", - state: State::PI, - }, - Municipio { - ibge_code: 2207751, - name: "Passagem Franca do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2207777, - name: "Patos do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2207793, - name: "Pau D'Arco do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2207801, - name: "Paulistana", - state: State::PI, - }, - Municipio { - ibge_code: 2207850, - name: "Pavussu", - state: State::PI, - }, - Municipio { - ibge_code: 2207900, - name: "Pedro II", - state: State::PI, - }, - Municipio { - ibge_code: 2207934, - name: "Pedro Laurentino", - state: State::PI, - }, - Municipio { - ibge_code: 2208007, - name: "Picos", - state: State::PI, - }, - Municipio { - ibge_code: 2208106, - name: "Pimenteiras", - state: State::PI, - }, - Municipio { - ibge_code: 2208205, - name: "Pio IX", - state: State::PI, - }, - Municipio { - ibge_code: 2208304, - name: "Piracuruca", - state: State::PI, - }, - Municipio { - ibge_code: 2208403, - name: "Piripiri", - state: State::PI, - }, - Municipio { - ibge_code: 2208502, - name: "Porto", - state: State::PI, - }, - Municipio { - ibge_code: 2208551, - name: "Porto Alegre do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2208601, - name: "Prata do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2208650, - name: "Queimada Nova", - state: State::PI, - }, - Municipio { - ibge_code: 2208700, - name: "Redenção do Gurguéia", - state: State::PI, - }, - Municipio { - ibge_code: 2208809, - name: "Regeneração", - state: State::PI, - }, - Municipio { - ibge_code: 2208858, - name: "Riacho Frio", - state: State::PI, - }, - Municipio { - ibge_code: 2208874, - name: "Ribeira do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2208908, - name: "Ribeiro Gonçalves", - state: State::PI, - }, - Municipio { - ibge_code: 2209005, - name: "Rio Grande do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209104, - name: "Santa Cruz do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209153, - name: "Santa Cruz dos Milagres", - state: State::PI, - }, - Municipio { - ibge_code: 2209203, - name: "Santa Filomena", - state: State::PI, - }, - Municipio { - ibge_code: 2209302, - name: "Santa Luz", - state: State::PI, - }, - Municipio { - ibge_code: 2209377, - name: "Santa Rosa do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209351, - name: "Santana do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209401, - name: "Santo Antônio de Lisboa", - state: State::PI, - }, - Municipio { - ibge_code: 2209450, - name: "Santo Antônio dos Milagres", - state: State::PI, - }, - Municipio { - ibge_code: 2209500, - name: "Santo Inácio do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210623, - name: "Sebastião Barros", - state: State::PI, - }, - Municipio { - ibge_code: 2210631, - name: "Sebastião Leal", - state: State::PI, - }, - Municipio { - ibge_code: 2210656, - name: "Sigefredo Pacheco", - state: State::PI, - }, - Municipio { - ibge_code: 2210805, - name: "Simplício Mendes", - state: State::PI, - }, - Municipio { - ibge_code: 2210706, - name: "Simões", - state: State::PI, - }, - Municipio { - ibge_code: 2210904, - name: "Socorro do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210938, - name: "Sussuapara", - state: State::PI, - }, - Municipio { - ibge_code: 2209559, - name: "São Braz do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209658, - name: "São Francisco de Assis do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209708, - name: "São Francisco do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209609, - name: "São Félix do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209757, - name: "São Gonçalo do Gurguéia", - state: State::PI, - }, - Municipio { - ibge_code: 2209807, - name: "São Gonçalo do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210052, - name: "São José do Divino", - state: State::PI, - }, - Municipio { - ibge_code: 2210102, - name: "São José do Peixe", - state: State::PI, - }, - Municipio { - ibge_code: 2210201, - name: "São José do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2209856, - name: "São João da Canabrava", - state: State::PI, - }, - Municipio { - ibge_code: 2209872, - name: "São João da Fronteira", - state: State::PI, - }, - Municipio { - ibge_code: 2209906, - name: "São João da Serra", - state: State::PI, - }, - Municipio { - ibge_code: 2209955, - name: "São João da Varjota", - state: State::PI, - }, - Municipio { - ibge_code: 2209971, - name: "São João do Arraial", - state: State::PI, - }, - Municipio { - ibge_code: 2210003, - name: "São João do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210300, - name: "São Julião", - state: State::PI, - }, - Municipio { - ibge_code: 2210359, - name: "São Lourenço do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210375, - name: "São Luis do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210383, - name: "São Miguel da Baixa Grande", - state: State::PI, - }, - Municipio { - ibge_code: 2210391, - name: "São Miguel do Fidalgo", - state: State::PI, - }, - Municipio { - ibge_code: 2210409, - name: "São Miguel do Tapuio", - state: State::PI, - }, - Municipio { - ibge_code: 2210508, - name: "São Pedro do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210607, - name: "São Raimundo Nonato", - state: State::PI, - }, - Municipio { - ibge_code: 2210953, - name: "Tamboril do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2210979, - name: "Tanque do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2211001, - name: "Teresina", - state: State::PI, - }, - Municipio { - ibge_code: 2211100, - name: "União", - state: State::PI, - }, - Municipio { - ibge_code: 2211209, - name: "Uruçuí", - state: State::PI, - }, - Municipio { - ibge_code: 2211308, - name: "Valença do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2211506, - name: "Vera Mendes", - state: State::PI, - }, - Municipio { - ibge_code: 2211605, - name: "Vila Nova do Piauí", - state: State::PI, - }, - Municipio { - ibge_code: 2211357, - name: "Várzea Branca", - state: State::PI, - }, - Municipio { - ibge_code: 2211407, - name: "Várzea Grande", - state: State::PI, - }, - Municipio { - ibge_code: 2211704, - name: "Wall Ferraz", - state: State::PI, - }, - Municipio { - ibge_code: 2200202, - name: "Água Branca", - state: State::PI, - }, - Municipio { - ibge_code: 4100103, - name: "Abatiá", - state: State::PR, - }, - Municipio { - ibge_code: 4100202, - name: "Adrianópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4100301, - name: "Agudos do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4100400, - name: "Almirante Tamandaré", - state: State::PR, - }, - Municipio { - ibge_code: 4100459, - name: "Altamira do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4100608, - name: "Alto Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4128625, - name: "Alto Paraíso", - state: State::PR, - }, - Municipio { - ibge_code: 4100707, - name: "Alto Piquiri", - state: State::PR, - }, - Municipio { - ibge_code: 4100509, - name: "Altônia", - state: State::PR, - }, - Municipio { - ibge_code: 4100806, - name: "Alvorada do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4100905, - name: "Amaporã", - state: State::PR, - }, - Municipio { - ibge_code: 4101002, - name: "Ampére", - state: State::PR, - }, - Municipio { - ibge_code: 4101051, - name: "Anahy", - state: State::PR, - }, - Municipio { - ibge_code: 4101101, - name: "Andirá", - state: State::PR, - }, - Municipio { - ibge_code: 4101200, - name: "Antonina", - state: State::PR, - }, - Municipio { - ibge_code: 4101309, - name: "Antônio Olinto", - state: State::PR, - }, - Municipio { - ibge_code: 4101408, - name: "Apucarana", - state: State::PR, - }, - Municipio { - ibge_code: 4101507, - name: "Arapongas", - state: State::PR, - }, - Municipio { - ibge_code: 4101606, - name: "Arapoti", - state: State::PR, - }, - Municipio { - ibge_code: 4101655, - name: "Arapuã", - state: State::PR, - }, - Municipio { - ibge_code: 4101705, - name: "Araruna", - state: State::PR, - }, - Municipio { - ibge_code: 4101804, - name: "Araucária", - state: State::PR, - }, - Municipio { - ibge_code: 4101853, - name: "Ariranha do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4101903, - name: "Assaí", - state: State::PR, - }, - Municipio { - ibge_code: 4102000, - name: "Assis Chateaubriand", - state: State::PR, - }, - Municipio { - ibge_code: 4102109, - name: "Astorga", - state: State::PR, - }, - Municipio { - ibge_code: 4102208, - name: "Atalaia", - state: State::PR, - }, - Municipio { - ibge_code: 4102307, - name: "Balsa Nova", - state: State::PR, - }, - Municipio { - ibge_code: 4102406, - name: "Bandeirantes", - state: State::PR, - }, - Municipio { - ibge_code: 4102505, - name: "Barbosa Ferraz", - state: State::PR, - }, - Municipio { - ibge_code: 4102703, - name: "Barra do Jacaré", - state: State::PR, - }, - Municipio { - ibge_code: 4102604, - name: "Barracão", - state: State::PR, - }, - Municipio { - ibge_code: 4102752, - name: "Bela Vista da Caroba", - state: State::PR, - }, - Municipio { - ibge_code: 4102802, - name: "Bela Vista do Paraíso", - state: State::PR, - }, - Municipio { - ibge_code: 4102901, - name: "Bituruna", - state: State::PR, - }, - Municipio { - ibge_code: 4103008, - name: "Boa Esperança", - state: State::PR, - }, - Municipio { - ibge_code: 4103024, - name: "Boa Esperança do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4103040, - name: "Boa Ventura de São Roque", - state: State::PR, - }, - Municipio { - ibge_code: 4103057, - name: "Boa Vista da Aparecida", - state: State::PR, - }, - Municipio { - ibge_code: 4103107, - name: "Bocaiúva do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4103156, - name: "Bom Jesus do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4103206, - name: "Bom Sucesso", - state: State::PR, - }, - Municipio { - ibge_code: 4103222, - name: "Bom Sucesso do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4103305, - name: "Borrazópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4103354, - name: "Braganey", - state: State::PR, - }, - Municipio { - ibge_code: 4103370, - name: "Brasilândia do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4103404, - name: "Cafeara", - state: State::PR, - }, - Municipio { - ibge_code: 4103453, - name: "Cafelândia", - state: State::PR, - }, - Municipio { - ibge_code: 4103479, - name: "Cafezal do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4103503, - name: "Califórnia", - state: State::PR, - }, - Municipio { - ibge_code: 4103602, - name: "Cambará", - state: State::PR, - }, - Municipio { - ibge_code: 4103800, - name: "Cambira", - state: State::PR, - }, - Municipio { - ibge_code: 4103701, - name: "Cambé", - state: State::PR, - }, - Municipio { - ibge_code: 4104006, - name: "Campina Grande do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4103909, - name: "Campina da Lagoa", - state: State::PR, - }, - Municipio { - ibge_code: 4103958, - name: "Campina do Simão", - state: State::PR, - }, - Municipio { - ibge_code: 4104055, - name: "Campo Bonito", - state: State::PR, - }, - Municipio { - ibge_code: 4104204, - name: "Campo Largo", - state: State::PR, - }, - Municipio { - ibge_code: 4104253, - name: "Campo Magro", - state: State::PR, - }, - Municipio { - ibge_code: 4104303, - name: "Campo Mourão", - state: State::PR, - }, - Municipio { - ibge_code: 4104105, - name: "Campo do Tenente", - state: State::PR, - }, - Municipio { - ibge_code: 4104428, - name: "Candói", - state: State::PR, - }, - Municipio { - ibge_code: 4104451, - name: "Cantagalo", - state: State::PR, - }, - Municipio { - ibge_code: 4104501, - name: "Capanema", - state: State::PR, - }, - Municipio { - ibge_code: 4104600, - name: "Capitão Leônidas Marques", - state: State::PR, - }, - Municipio { - ibge_code: 4104659, - name: "Carambeí", - state: State::PR, - }, - Municipio { - ibge_code: 4104709, - name: "Carlópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4104808, - name: "Cascavel", - state: State::PR, - }, - Municipio { - ibge_code: 4104907, - name: "Castro", - state: State::PR, - }, - Municipio { - ibge_code: 4105003, - name: "Catanduvas", - state: State::PR, - }, - Municipio { - ibge_code: 4105102, - name: "Centenário do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4105201, - name: "Cerro Azul", - state: State::PR, - }, - Municipio { - ibge_code: 4105409, - name: "Chopinzinho", - state: State::PR, - }, - Municipio { - ibge_code: 4105508, - name: "Cianorte", - state: State::PR, - }, - Municipio { - ibge_code: 4105607, - name: "Cidade Gaúcha", - state: State::PR, - }, - Municipio { - ibge_code: 4105706, - name: "Clevelândia", - state: State::PR, - }, - Municipio { - ibge_code: 4105805, - name: "Colombo", - state: State::PR, - }, - Municipio { - ibge_code: 4105904, - name: "Colorado", - state: State::PR, - }, - Municipio { - ibge_code: 4106001, - name: "Congonhinhas", - state: State::PR, - }, - Municipio { - ibge_code: 4106100, - name: "Conselheiro Mairinck", - state: State::PR, - }, - Municipio { - ibge_code: 4106209, - name: "Contenda", - state: State::PR, - }, - Municipio { - ibge_code: 4106308, - name: "Corbélia", - state: State::PR, - }, - Municipio { - ibge_code: 4106407, - name: "Cornélio Procópio", - state: State::PR, - }, - Municipio { - ibge_code: 4106456, - name: "Coronel Domingos Soares", - state: State::PR, - }, - Municipio { - ibge_code: 4106506, - name: "Coronel Vivida", - state: State::PR, - }, - Municipio { - ibge_code: 4106555, - name: "Corumbataí do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4106803, - name: "Cruz Machado", - state: State::PR, - }, - Municipio { - ibge_code: 4106571, - name: "Cruzeiro do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4106605, - name: "Cruzeiro do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4106704, - name: "Cruzeiro do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4106852, - name: "Cruzmaltina", - state: State::PR, - }, - Municipio { - ibge_code: 4106902, - name: "Curitiba", - state: State::PR, - }, - Municipio { - ibge_code: 4107009, - name: "Curiúva", - state: State::PR, - }, - Municipio { - ibge_code: 4104402, - name: "Cândido de Abreu", - state: State::PR, - }, - Municipio { - ibge_code: 4105300, - name: "Céu Azul", - state: State::PR, - }, - Municipio { - ibge_code: 4107157, - name: "Diamante D'Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4107108, - name: "Diamante do Norte", - state: State::PR, - }, - Municipio { - ibge_code: 4107124, - name: "Diamante do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4107207, - name: "Dois Vizinhos", - state: State::PR, - }, - Municipio { - ibge_code: 4107256, - name: "Douradina", - state: State::PR, - }, - Municipio { - ibge_code: 4107306, - name: "Doutor Camargo", - state: State::PR, - }, - Municipio { - ibge_code: 4128633, - name: "Doutor Ulysses", - state: State::PR, - }, - Municipio { - ibge_code: 4107504, - name: "Engenheiro Beltrão", - state: State::PR, - }, - Municipio { - ibge_code: 4107538, - name: "Entre Rios do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4107405, - name: "Enéas Marques", - state: State::PR, - }, - Municipio { - ibge_code: 4107520, - name: "Esperança Nova", - state: State::PR, - }, - Municipio { - ibge_code: 4107546, - name: "Espigão Alto do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4107553, - name: "Farol", - state: State::PR, - }, - Municipio { - ibge_code: 4107603, - name: "Faxinal", - state: State::PR, - }, - Municipio { - ibge_code: 4107652, - name: "Fazenda Rio Grande", - state: State::PR, - }, - Municipio { - ibge_code: 4107736, - name: "Fernandes Pinheiro", - state: State::PR, - }, - Municipio { - ibge_code: 4107751, - name: "Figueira", - state: State::PR, - }, - Municipio { - ibge_code: 4107850, - name: "Flor da Serra do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4107801, - name: "Floraí", - state: State::PR, - }, - Municipio { - ibge_code: 4107900, - name: "Floresta", - state: State::PR, - }, - Municipio { - ibge_code: 4108007, - name: "Florestópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4108106, - name: "Flórida", - state: State::PR, - }, - Municipio { - ibge_code: 4108205, - name: "Formosa do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4108304, - name: "Foz do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4108452, - name: "Foz do Jordão", - state: State::PR, - }, - Municipio { - ibge_code: 4108320, - name: "Francisco Alves", - state: State::PR, - }, - Municipio { - ibge_code: 4108403, - name: "Francisco Beltrão", - state: State::PR, - }, - Municipio { - ibge_code: 4107702, - name: "Fênix", - state: State::PR, - }, - Municipio { - ibge_code: 4108502, - name: "General Carneiro", - state: State::PR, - }, - Municipio { - ibge_code: 4108551, - name: "Godoy Moreira", - state: State::PR, - }, - Municipio { - ibge_code: 4108601, - name: "Goioerê", - state: State::PR, - }, - Municipio { - ibge_code: 4108650, - name: "Goioxim", - state: State::PR, - }, - Municipio { - ibge_code: 4108700, - name: "Grandes Rios", - state: State::PR, - }, - Municipio { - ibge_code: 4108908, - name: "Guairaçá", - state: State::PR, - }, - Municipio { - ibge_code: 4108957, - name: "Guamiranga", - state: State::PR, - }, - Municipio { - ibge_code: 4109005, - name: "Guapirama", - state: State::PR, - }, - Municipio { - ibge_code: 4109104, - name: "Guaporema", - state: State::PR, - }, - Municipio { - ibge_code: 4109203, - name: "Guaraci", - state: State::PR, - }, - Municipio { - ibge_code: 4109302, - name: "Guaraniaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4109401, - name: "Guarapuava", - state: State::PR, - }, - Municipio { - ibge_code: 4109500, - name: "Guaraqueçaba", - state: State::PR, - }, - Municipio { - ibge_code: 4109609, - name: "Guaratuba", - state: State::PR, - }, - Municipio { - ibge_code: 4108809, - name: "Guaíra", - state: State::PR, - }, - Municipio { - ibge_code: 4109658, - name: "Honório Serpa", - state: State::PR, - }, - Municipio { - ibge_code: 4109708, - name: "Ibaiti", - state: State::PR, - }, - Municipio { - ibge_code: 4109757, - name: "Ibema", - state: State::PR, - }, - Municipio { - ibge_code: 4109807, - name: "Ibiporã", - state: State::PR, - }, - Municipio { - ibge_code: 4109906, - name: "Icaraíma", - state: State::PR, - }, - Municipio { - ibge_code: 4110003, - name: "Iguaraçu", - state: State::PR, - }, - Municipio { - ibge_code: 4110052, - name: "Iguatu", - state: State::PR, - }, - Municipio { - ibge_code: 4110078, - name: "Imbaú", - state: State::PR, - }, - Municipio { - ibge_code: 4110102, - name: "Imbituva", - state: State::PR, - }, - Municipio { - ibge_code: 4110300, - name: "Inajá", - state: State::PR, - }, - Municipio { - ibge_code: 4110409, - name: "Indianópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4110201, - name: "Inácio Martins", - state: State::PR, - }, - Municipio { - ibge_code: 4110508, - name: "Ipiranga", - state: State::PR, - }, - Municipio { - ibge_code: 4110607, - name: "Iporã", - state: State::PR, - }, - Municipio { - ibge_code: 4110656, - name: "Iracema do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4110706, - name: "Irati", - state: State::PR, - }, - Municipio { - ibge_code: 4110805, - name: "Iretama", - state: State::PR, - }, - Municipio { - ibge_code: 4110904, - name: "Itaguajé", - state: State::PR, - }, - Municipio { - ibge_code: 4110953, - name: "Itaipulândia", - state: State::PR, - }, - Municipio { - ibge_code: 4111001, - name: "Itambaracá", - state: State::PR, - }, - Municipio { - ibge_code: 4111100, - name: "Itambé", - state: State::PR, - }, - Municipio { - ibge_code: 4111209, - name: "Itapejara d'Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4111258, - name: "Itaperuçu", - state: State::PR, - }, - Municipio { - ibge_code: 4111308, - name: "Itaúna do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4111506, - name: "Ivaiporã", - state: State::PR, - }, - Municipio { - ibge_code: 4111605, - name: "Ivatuba", - state: State::PR, - }, - Municipio { - ibge_code: 4111555, - name: "Ivaté", - state: State::PR, - }, - Municipio { - ibge_code: 4111407, - name: "Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4111704, - name: "Jaboti", - state: State::PR, - }, - Municipio { - ibge_code: 4111803, - name: "Jacarezinho", - state: State::PR, - }, - Municipio { - ibge_code: 4111902, - name: "Jaguapitã", - state: State::PR, - }, - Municipio { - ibge_code: 4112009, - name: "Jaguariaíva", - state: State::PR, - }, - Municipio { - ibge_code: 4112108, - name: "Jandaia do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4112207, - name: "Janiópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4112306, - name: "Japira", - state: State::PR, - }, - Municipio { - ibge_code: 4112405, - name: "Japurá", - state: State::PR, - }, - Municipio { - ibge_code: 4112504, - name: "Jardim Alegre", - state: State::PR, - }, - Municipio { - ibge_code: 4112603, - name: "Jardim Olinda", - state: State::PR, - }, - Municipio { - ibge_code: 4112702, - name: "Jataizinho", - state: State::PR, - }, - Municipio { - ibge_code: 4112751, - name: "Jesuítas", - state: State::PR, - }, - Municipio { - ibge_code: 4112801, - name: "Joaquim Távora", - state: State::PR, - }, - Municipio { - ibge_code: 4112900, - name: "Jundiaí do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4112959, - name: "Juranda", - state: State::PR, - }, - Municipio { - ibge_code: 4113007, - name: "Jussara", - state: State::PR, - }, - Municipio { - ibge_code: 4113106, - name: "Kaloré", - state: State::PR, - }, - Municipio { - ibge_code: 4113205, - name: "Lapa", - state: State::PR, - }, - Municipio { - ibge_code: 4113254, - name: "Laranjal", - state: State::PR, - }, - Municipio { - ibge_code: 4113304, - name: "Laranjeiras do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4113403, - name: "Leópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4113429, - name: "Lidianópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4113452, - name: "Lindoeste", - state: State::PR, - }, - Municipio { - ibge_code: 4113502, - name: "Loanda", - state: State::PR, - }, - Municipio { - ibge_code: 4113601, - name: "Lobato", - state: State::PR, - }, - Municipio { - ibge_code: 4113700, - name: "Londrina", - state: State::PR, - }, - Municipio { - ibge_code: 4113734, - name: "Luiziana", - state: State::PR, - }, - Municipio { - ibge_code: 4113759, - name: "Lunardelli", - state: State::PR, - }, - Municipio { - ibge_code: 4113809, - name: "Lupionópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4113908, - name: "Mallet", - state: State::PR, - }, - Municipio { - ibge_code: 4114005, - name: "Mamborê", - state: State::PR, - }, - Municipio { - ibge_code: 4114203, - name: "Mandaguari", - state: State::PR, - }, - Municipio { - ibge_code: 4114104, - name: "Mandaguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4114302, - name: "Mandirituba", - state: State::PR, - }, - Municipio { - ibge_code: 4114351, - name: "Manfrinópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4114401, - name: "Mangueirinha", - state: State::PR, - }, - Municipio { - ibge_code: 4114500, - name: "Manoel Ribas", - state: State::PR, - }, - Municipio { - ibge_code: 4114609, - name: "Marechal Cândido Rondon", - state: State::PR, - }, - Municipio { - ibge_code: 4114708, - name: "Maria Helena", - state: State::PR, - }, - Municipio { - ibge_code: 4114807, - name: "Marialva", - state: State::PR, - }, - Municipio { - ibge_code: 4115002, - name: "Marilena", - state: State::PR, - }, - Municipio { - ibge_code: 4115101, - name: "Mariluz", - state: State::PR, - }, - Municipio { - ibge_code: 4114906, - name: "Marilândia do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4115200, - name: "Maringá", - state: State::PR, - }, - Municipio { - ibge_code: 4115358, - name: "Maripá", - state: State::PR, - }, - Municipio { - ibge_code: 4115309, - name: "Mariópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4115408, - name: "Marmeleiro", - state: State::PR, - }, - Municipio { - ibge_code: 4115457, - name: "Marquinho", - state: State::PR, - }, - Municipio { - ibge_code: 4115507, - name: "Marumbi", - state: State::PR, - }, - Municipio { - ibge_code: 4115606, - name: "Matelândia", - state: State::PR, - }, - Municipio { - ibge_code: 4115705, - name: "Matinhos", - state: State::PR, - }, - Municipio { - ibge_code: 4115739, - name: "Mato Rico", - state: State::PR, - }, - Municipio { - ibge_code: 4115754, - name: "Mauá da Serra", - state: State::PR, - }, - Municipio { - ibge_code: 4115804, - name: "Medianeira", - state: State::PR, - }, - Municipio { - ibge_code: 4115853, - name: "Mercedes", - state: State::PR, - }, - Municipio { - ibge_code: 4115903, - name: "Mirador", - state: State::PR, - }, - Municipio { - ibge_code: 4116000, - name: "Miraselva", - state: State::PR, - }, - Municipio { - ibge_code: 4116059, - name: "Missal", - state: State::PR, - }, - Municipio { - ibge_code: 4116109, - name: "Moreira Sales", - state: State::PR, - }, - Municipio { - ibge_code: 4116208, - name: "Morretes", - state: State::PR, - }, - Municipio { - ibge_code: 4116307, - name: "Munhoz de Melo", - state: State::PR, - }, - Municipio { - ibge_code: 4116406, - name: "Nossa Senhora das Graças", - state: State::PR, - }, - Municipio { - ibge_code: 4116505, - name: "Nova Aliança do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4116604, - name: "Nova América da Colina", - state: State::PR, - }, - Municipio { - ibge_code: 4116703, - name: "Nova Aurora", - state: State::PR, - }, - Municipio { - ibge_code: 4116802, - name: "Nova Cantu", - state: State::PR, - }, - Municipio { - ibge_code: 4116901, - name: "Nova Esperança", - state: State::PR, - }, - Municipio { - ibge_code: 4116950, - name: "Nova Esperança do Sudoeste", - state: State::PR, - }, - Municipio { - ibge_code: 4117008, - name: "Nova Fátima", - state: State::PR, - }, - Municipio { - ibge_code: 4117057, - name: "Nova Laranjeiras", - state: State::PR, - }, - Municipio { - ibge_code: 4117107, - name: "Nova Londrina", - state: State::PR, - }, - Municipio { - ibge_code: 4117206, - name: "Nova Olímpia", - state: State::PR, - }, - Municipio { - ibge_code: 4117255, - name: "Nova Prata do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4117214, - name: "Nova Santa Bárbara", - state: State::PR, - }, - Municipio { - ibge_code: 4117222, - name: "Nova Santa Rosa", - state: State::PR, - }, - Municipio { - ibge_code: 4117271, - name: "Nova Tebas", - state: State::PR, - }, - Municipio { - ibge_code: 4117297, - name: "Novo Itacolomi", - state: State::PR, - }, - Municipio { - ibge_code: 4117305, - name: "Ortigueira", - state: State::PR, - }, - Municipio { - ibge_code: 4117404, - name: "Ourizona", - state: State::PR, - }, - Municipio { - ibge_code: 4117453, - name: "Ouro Verde do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4117503, - name: "Paiçandu", - state: State::PR, - }, - Municipio { - ibge_code: 4117602, - name: "Palmas", - state: State::PR, - }, - Municipio { - ibge_code: 4117701, - name: "Palmeira", - state: State::PR, - }, - Municipio { - ibge_code: 4117800, - name: "Palmital", - state: State::PR, - }, - Municipio { - ibge_code: 4117909, - name: "Palotina", - state: State::PR, - }, - Municipio { - ibge_code: 4118105, - name: "Paranacity", - state: State::PR, - }, - Municipio { - ibge_code: 4118204, - name: "Paranaguá", - state: State::PR, - }, - Municipio { - ibge_code: 4118303, - name: "Paranapoema", - state: State::PR, - }, - Municipio { - ibge_code: 4118402, - name: "Paranavaí", - state: State::PR, - }, - Municipio { - ibge_code: 4118006, - name: "Paraíso do Norte", - state: State::PR, - }, - Municipio { - ibge_code: 4118451, - name: "Pato Bragado", - state: State::PR, - }, - Municipio { - ibge_code: 4118501, - name: "Pato Branco", - state: State::PR, - }, - Municipio { - ibge_code: 4118600, - name: "Paula Freitas", - state: State::PR, - }, - Municipio { - ibge_code: 4118709, - name: "Paulo Frontin", - state: State::PR, - }, - Municipio { - ibge_code: 4118808, - name: "Peabiru", - state: State::PR, - }, - Municipio { - ibge_code: 4118857, - name: "Perobal", - state: State::PR, - }, - Municipio { - ibge_code: 4119152, - name: "Pinhais", - state: State::PR, - }, - Municipio { - ibge_code: 4119251, - name: "Pinhal de São Bento", - state: State::PR, - }, - Municipio { - ibge_code: 4119202, - name: "Pinhalão", - state: State::PR, - }, - Municipio { - ibge_code: 4119301, - name: "Pinhão", - state: State::PR, - }, - Municipio { - ibge_code: 4119509, - name: "Piraquara", - state: State::PR, - }, - Municipio { - ibge_code: 4119400, - name: "Piraí do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4119608, - name: "Pitanga", - state: State::PR, - }, - Municipio { - ibge_code: 4119657, - name: "Pitangueiras", - state: State::PR, - }, - Municipio { - ibge_code: 4119103, - name: "Piên", - state: State::PR, - }, - Municipio { - ibge_code: 4119707, - name: "Planaltina do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4119806, - name: "Planalto", - state: State::PR, - }, - Municipio { - ibge_code: 4119905, - name: "Ponta Grossa", - state: State::PR, - }, - Municipio { - ibge_code: 4119954, - name: "Pontal do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4120002, - name: "Porecatu", - state: State::PR, - }, - Municipio { - ibge_code: 4120101, - name: "Porto Amazonas", - state: State::PR, - }, - Municipio { - ibge_code: 4120150, - name: "Porto Barreiro", - state: State::PR, - }, - Municipio { - ibge_code: 4120200, - name: "Porto Rico", - state: State::PR, - }, - Municipio { - ibge_code: 4120309, - name: "Porto Vitória", - state: State::PR, - }, - Municipio { - ibge_code: 4120333, - name: "Prado Ferreira", - state: State::PR, - }, - Municipio { - ibge_code: 4120358, - name: "Pranchita", - state: State::PR, - }, - Municipio { - ibge_code: 4120408, - name: "Presidente Castelo Branco", - state: State::PR, - }, - Municipio { - ibge_code: 4120507, - name: "Primeiro de Maio", - state: State::PR, - }, - Municipio { - ibge_code: 4120606, - name: "Prudentópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4118907, - name: "Pérola", - state: State::PR, - }, - Municipio { - ibge_code: 4119004, - name: "Pérola d'Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4120655, - name: "Quarto Centenário", - state: State::PR, - }, - Municipio { - ibge_code: 4120705, - name: "Quatiguá", - state: State::PR, - }, - Municipio { - ibge_code: 4120804, - name: "Quatro Barras", - state: State::PR, - }, - Municipio { - ibge_code: 4120853, - name: "Quatro Pontes", - state: State::PR, - }, - Municipio { - ibge_code: 4120903, - name: "Quedas do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4121000, - name: "Querência do Norte", - state: State::PR, - }, - Municipio { - ibge_code: 4121109, - name: "Quinta do Sol", - state: State::PR, - }, - Municipio { - ibge_code: 4121208, - name: "Quitandinha", - state: State::PR, - }, - Municipio { - ibge_code: 4121257, - name: "Ramilândia", - state: State::PR, - }, - Municipio { - ibge_code: 4121307, - name: "Rancho Alegre", - state: State::PR, - }, - Municipio { - ibge_code: 4121356, - name: "Rancho Alegre D'Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4121406, - name: "Realeza", - state: State::PR, - }, - Municipio { - ibge_code: 4121505, - name: "Rebouças", - state: State::PR, - }, - Municipio { - ibge_code: 4121604, - name: "Renascença", - state: State::PR, - }, - Municipio { - ibge_code: 4121703, - name: "Reserva", - state: State::PR, - }, - Municipio { - ibge_code: 4121752, - name: "Reserva do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4121802, - name: "Ribeirão Claro", - state: State::PR, - }, - Municipio { - ibge_code: 4121901, - name: "Ribeirão do Pinhal", - state: State::PR, - }, - Municipio { - ibge_code: 4122008, - name: "Rio Azul", - state: State::PR, - }, - Municipio { - ibge_code: 4122107, - name: "Rio Bom", - state: State::PR, - }, - Municipio { - ibge_code: 4122156, - name: "Rio Bonito do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4122172, - name: "Rio Branco do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4122206, - name: "Rio Branco do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4122305, - name: "Rio Negro", - state: State::PR, - }, - Municipio { - ibge_code: 4122404, - name: "Rolândia", - state: State::PR, - }, - Municipio { - ibge_code: 4122503, - name: "Roncador", - state: State::PR, - }, - Municipio { - ibge_code: 4122602, - name: "Rondon", - state: State::PR, - }, - Municipio { - ibge_code: 4122651, - name: "Rosário do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4122701, - name: "Sabáudia", - state: State::PR, - }, - Municipio { - ibge_code: 4122800, - name: "Salgado Filho", - state: State::PR, - }, - Municipio { - ibge_code: 4122909, - name: "Salto do Itararé", - state: State::PR, - }, - Municipio { - ibge_code: 4123006, - name: "Salto do Lontra", - state: State::PR, - }, - Municipio { - ibge_code: 4123105, - name: "Santa Amélia", - state: State::PR, - }, - Municipio { - ibge_code: 4123204, - name: "Santa Cecília do Pavão", - state: State::PR, - }, - Municipio { - ibge_code: 4123303, - name: "Santa Cruz de Monte Castelo", - state: State::PR, - }, - Municipio { - ibge_code: 4123402, - name: "Santa Fé", - state: State::PR, - }, - Municipio { - ibge_code: 4123501, - name: "Santa Helena", - state: State::PR, - }, - Municipio { - ibge_code: 4123600, - name: "Santa Inês", - state: State::PR, - }, - Municipio { - ibge_code: 4123709, - name: "Santa Isabel do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4123808, - name: "Santa Izabel do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4123824, - name: "Santa Lúcia", - state: State::PR, - }, - Municipio { - ibge_code: 4123857, - name: "Santa Maria do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4123907, - name: "Santa Mariana", - state: State::PR, - }, - Municipio { - ibge_code: 4123956, - name: "Santa Mônica", - state: State::PR, - }, - Municipio { - ibge_code: 4124020, - name: "Santa Tereza do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4124053, - name: "Santa Terezinha de Itaipu", - state: State::PR, - }, - Municipio { - ibge_code: 4124004, - name: "Santana do Itararé", - state: State::PR, - }, - Municipio { - ibge_code: 4124103, - name: "Santo Antônio da Platina", - state: State::PR, - }, - Municipio { - ibge_code: 4124202, - name: "Santo Antônio do Caiuá", - state: State::PR, - }, - Municipio { - ibge_code: 4124301, - name: "Santo Antônio do Paraíso", - state: State::PR, - }, - Municipio { - ibge_code: 4124400, - name: "Santo Antônio do Sudoeste", - state: State::PR, - }, - Municipio { - ibge_code: 4124509, - name: "Santo Inácio", - state: State::PR, - }, - Municipio { - ibge_code: 4126207, - name: "Sapopema", - state: State::PR, - }, - Municipio { - ibge_code: 4126256, - name: "Sarandi", - state: State::PR, - }, - Municipio { - ibge_code: 4126272, - name: "Saudade do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4126306, - name: "Sengés", - state: State::PR, - }, - Municipio { - ibge_code: 4126355, - name: "Serranópolis do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4126405, - name: "Sertaneja", - state: State::PR, - }, - Municipio { - ibge_code: 4126504, - name: "Sertanópolis", - state: State::PR, - }, - Municipio { - ibge_code: 4126603, - name: "Siqueira Campos", - state: State::PR, - }, - Municipio { - ibge_code: 4126652, - name: "Sulina", - state: State::PR, - }, - Municipio { - ibge_code: 4124608, - name: "São Carlos do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4124707, - name: "São Jerônimo da Serra", - state: State::PR, - }, - Municipio { - ibge_code: 4125209, - name: "São Jorge d'Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4125308, - name: "São Jorge do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4125357, - name: "São Jorge do Patrocínio", - state: State::PR, - }, - Municipio { - ibge_code: 4125407, - name: "São José da Boa Vista", - state: State::PR, - }, - Municipio { - ibge_code: 4125456, - name: "São José das Palmeiras", - state: State::PR, - }, - Municipio { - ibge_code: 4125506, - name: "São José dos Pinhais", - state: State::PR, - }, - Municipio { - ibge_code: 4124806, - name: "São João", - state: State::PR, - }, - Municipio { - ibge_code: 4124905, - name: "São João do Caiuá", - state: State::PR, - }, - Municipio { - ibge_code: 4125001, - name: "São João do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4125100, - name: "São João do Triunfo", - state: State::PR, - }, - Municipio { - ibge_code: 4125555, - name: "São Manoel do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4125605, - name: "São Mateus do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4125704, - name: "São Miguel do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4125753, - name: "São Pedro do Iguaçu", - state: State::PR, - }, - Municipio { - ibge_code: 4125803, - name: "São Pedro do Ivaí", - state: State::PR, - }, - Municipio { - ibge_code: 4125902, - name: "São Pedro do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4126009, - name: "São Sebastião da Amoreira", - state: State::PR, - }, - Municipio { - ibge_code: 4126108, - name: "São Tomé", - state: State::PR, - }, - Municipio { - ibge_code: 4126678, - name: "Tamarana", - state: State::PR, - }, - Municipio { - ibge_code: 4126702, - name: "Tamboara", - state: State::PR, - }, - Municipio { - ibge_code: 4126801, - name: "Tapejara", - state: State::PR, - }, - Municipio { - ibge_code: 4126900, - name: "Tapira", - state: State::PR, - }, - Municipio { - ibge_code: 4127007, - name: "Teixeira Soares", - state: State::PR, - }, - Municipio { - ibge_code: 4127106, - name: "Telêmaco Borba", - state: State::PR, - }, - Municipio { - ibge_code: 4127205, - name: "Terra Boa", - state: State::PR, - }, - Municipio { - ibge_code: 4127304, - name: "Terra Rica", - state: State::PR, - }, - Municipio { - ibge_code: 4127403, - name: "Terra Roxa", - state: State::PR, - }, - Municipio { - ibge_code: 4127502, - name: "Tibagi", - state: State::PR, - }, - Municipio { - ibge_code: 4127601, - name: "Tijucas do Sul", - state: State::PR, - }, - Municipio { - ibge_code: 4127700, - name: "Toledo", - state: State::PR, - }, - Municipio { - ibge_code: 4127809, - name: "Tomazina", - state: State::PR, - }, - Municipio { - ibge_code: 4127858, - name: "Três Barras do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4127882, - name: "Tunas do Paraná", - state: State::PR, - }, - Municipio { - ibge_code: 4127908, - name: "Tuneiras do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4127957, - name: "Tupãssi", - state: State::PR, - }, - Municipio { - ibge_code: 4127965, - name: "Turvo", - state: State::PR, - }, - Municipio { - ibge_code: 4128005, - name: "Ubiratã", - state: State::PR, - }, - Municipio { - ibge_code: 4128104, - name: "Umuarama", - state: State::PR, - }, - Municipio { - ibge_code: 4128302, - name: "Uniflor", - state: State::PR, - }, - Municipio { - ibge_code: 4128203, - name: "União da Vitória", - state: State::PR, - }, - Municipio { - ibge_code: 4128401, - name: "Uraí", - state: State::PR, - }, - Municipio { - ibge_code: 4128534, - name: "Ventania", - state: State::PR, - }, - Municipio { - ibge_code: 4128559, - name: "Vera Cruz do Oeste", - state: State::PR, - }, - Municipio { - ibge_code: 4128609, - name: "Verê", - state: State::PR, - }, - Municipio { - ibge_code: 4128658, - name: "Virmond", - state: State::PR, - }, - Municipio { - ibge_code: 4128708, - name: "Vitorino", - state: State::PR, - }, - Municipio { - ibge_code: 4128500, - name: "Wenceslau Braz", - state: State::PR, - }, - Municipio { - ibge_code: 4128807, - name: "Xambrê", - state: State::PR, - }, - Municipio { - ibge_code: 4101150, - name: "Ângulo", - state: State::PR, - }, - Municipio { - ibge_code: 3300100, - name: "Angra dos Reis", - state: State::RJ, - }, - Municipio { - ibge_code: 3300159, - name: "Aperibé", - state: State::RJ, - }, - Municipio { - ibge_code: 3300209, - name: "Araruama", - state: State::RJ, - }, - Municipio { - ibge_code: 3300225, - name: "Areal", - state: State::RJ, - }, - Municipio { - ibge_code: 3300233, - name: "Armação dos Búzios", - state: State::RJ, - }, - Municipio { - ibge_code: 3300258, - name: "Arraial do Cabo", - state: State::RJ, - }, - Municipio { - ibge_code: 3300407, - name: "Barra Mansa", - state: State::RJ, - }, - Municipio { - ibge_code: 3300308, - name: "Barra do Piraí", - state: State::RJ, - }, - Municipio { - ibge_code: 3300456, - name: "Belford Roxo", - state: State::RJ, - }, - Municipio { - ibge_code: 3300506, - name: "Bom Jardim", - state: State::RJ, - }, - Municipio { - ibge_code: 3300605, - name: "Bom Jesus do Itabapoana", - state: State::RJ, - }, - Municipio { - ibge_code: 3300704, - name: "Cabo Frio", - state: State::RJ, - }, - Municipio { - ibge_code: 3300803, - name: "Cachoeiras de Macacu", - state: State::RJ, - }, - Municipio { - ibge_code: 3300902, - name: "Cambuci", - state: State::RJ, - }, - Municipio { - ibge_code: 3301009, - name: "Campos dos Goytacazes", - state: State::RJ, - }, - Municipio { - ibge_code: 3301108, - name: "Cantagalo", - state: State::RJ, - }, - Municipio { - ibge_code: 3300936, - name: "Carapebus", - state: State::RJ, - }, - Municipio { - ibge_code: 3301157, - name: "Cardoso Moreira", - state: State::RJ, - }, - Municipio { - ibge_code: 3301207, - name: "Carmo", - state: State::RJ, - }, - Municipio { - ibge_code: 3301306, - name: "Casimiro de Abreu", - state: State::RJ, - }, - Municipio { - ibge_code: 3300951, - name: "Comendador Levy Gasparian", - state: State::RJ, - }, - Municipio { - ibge_code: 3301405, - name: "Conceição de Macabu", - state: State::RJ, - }, - Municipio { - ibge_code: 3301504, - name: "Cordeiro", - state: State::RJ, - }, - Municipio { - ibge_code: 3301603, - name: "Duas Barras", - state: State::RJ, - }, - Municipio { - ibge_code: 3301702, - name: "Duque de Caxias", - state: State::RJ, - }, - Municipio { - ibge_code: 3301801, - name: "Engenheiro Paulo de Frontin", - state: State::RJ, - }, - Municipio { - ibge_code: 3301850, - name: "Guapimirim", - state: State::RJ, - }, - Municipio { - ibge_code: 3301876, - name: "Iguaba Grande", - state: State::RJ, - }, - Municipio { - ibge_code: 3301900, - name: "Itaboraí", - state: State::RJ, - }, - Municipio { - ibge_code: 3302007, - name: "Itaguaí", - state: State::RJ, - }, - Municipio { - ibge_code: 3302056, - name: "Italva", - state: State::RJ, - }, - Municipio { - ibge_code: 3302106, - name: "Itaocara", - state: State::RJ, - }, - Municipio { - ibge_code: 3302205, - name: "Itaperuna", - state: State::RJ, - }, - Municipio { - ibge_code: 3302254, - name: "Itatiaia", - state: State::RJ, - }, - Municipio { - ibge_code: 3302270, - name: "Japeri", - state: State::RJ, - }, - Municipio { - ibge_code: 3302304, - name: "Laje do Muriaé", - state: State::RJ, - }, - Municipio { - ibge_code: 3302403, - name: "Macaé", - state: State::RJ, - }, - Municipio { - ibge_code: 3302452, - name: "Macuco", - state: State::RJ, - }, - Municipio { - ibge_code: 3302502, - name: "Magé", - state: State::RJ, - }, - Municipio { - ibge_code: 3302601, - name: "Mangaratiba", - state: State::RJ, - }, - Municipio { - ibge_code: 3302700, - name: "Maricá", - state: State::RJ, - }, - Municipio { - ibge_code: 3302809, - name: "Mendes", - state: State::RJ, - }, - Municipio { - ibge_code: 3302858, - name: "Mesquita", - state: State::RJ, - }, - Municipio { - ibge_code: 3302908, - name: "Miguel Pereira", - state: State::RJ, - }, - Municipio { - ibge_code: 3303005, - name: "Miracema", - state: State::RJ, - }, - Municipio { - ibge_code: 3303104, - name: "Natividade", - state: State::RJ, - }, - Municipio { - ibge_code: 3303203, - name: "Nilópolis", - state: State::RJ, - }, - Municipio { - ibge_code: 3303302, - name: "Niterói", - state: State::RJ, - }, - Municipio { - ibge_code: 3303401, - name: "Nova Friburgo", - state: State::RJ, - }, - Municipio { - ibge_code: 3303500, - name: "Nova Iguaçu", - state: State::RJ, - }, - Municipio { - ibge_code: 3303609, - name: "Paracambi", - state: State::RJ, - }, - Municipio { - ibge_code: 3303807, - name: "Paraty", - state: State::RJ, - }, - Municipio { - ibge_code: 3303708, - name: "Paraíba do Sul", - state: State::RJ, - }, - Municipio { - ibge_code: 3303856, - name: "Paty do Alferes", - state: State::RJ, - }, - Municipio { - ibge_code: 3303906, - name: "Petrópolis", - state: State::RJ, - }, - Municipio { - ibge_code: 3303955, - name: "Pinheiral", - state: State::RJ, - }, - Municipio { - ibge_code: 3304003, - name: "Piraí", - state: State::RJ, - }, - Municipio { - ibge_code: 3304102, - name: "Porciúncula", - state: State::RJ, - }, - Municipio { - ibge_code: 3304110, - name: "Porto Real", - state: State::RJ, - }, - Municipio { - ibge_code: 3304128, - name: "Quatis", - state: State::RJ, - }, - Municipio { - ibge_code: 3304144, - name: "Queimados", - state: State::RJ, - }, - Municipio { - ibge_code: 3304151, - name: "Quissamã", - state: State::RJ, - }, - Municipio { - ibge_code: 3304201, - name: "Resende", - state: State::RJ, - }, - Municipio { - ibge_code: 3304300, - name: "Rio Bonito", - state: State::RJ, - }, - Municipio { - ibge_code: 3304409, - name: "Rio Claro", - state: State::RJ, - }, - Municipio { - ibge_code: 3304508, - name: "Rio das Flores", - state: State::RJ, - }, - Municipio { - ibge_code: 3304524, - name: "Rio das Ostras", - state: State::RJ, - }, - Municipio { - ibge_code: 3304557, - name: "Rio de Janeiro", - state: State::RJ, - }, - Municipio { - ibge_code: 3304607, - name: "Santa Maria Madalena", - state: State::RJ, - }, - Municipio { - ibge_code: 3304706, - name: "Santo Antônio de Pádua", - state: State::RJ, - }, - Municipio { - ibge_code: 3305406, - name: "Sapucaia", - state: State::RJ, - }, - Municipio { - ibge_code: 3305505, - name: "Saquarema", - state: State::RJ, - }, - Municipio { - ibge_code: 3305554, - name: "Seropédica", - state: State::RJ, - }, - Municipio { - ibge_code: 3305604, - name: "Silva Jardim", - state: State::RJ, - }, - Municipio { - ibge_code: 3305703, - name: "Sumidouro", - state: State::RJ, - }, - Municipio { - ibge_code: 3304805, - name: "São Fidélis", - state: State::RJ, - }, - Municipio { - ibge_code: 3304755, - name: "São Francisco de Itabapoana", - state: State::RJ, - }, - Municipio { - ibge_code: 3304904, - name: "São Gonçalo", - state: State::RJ, - }, - Municipio { - ibge_code: 3305133, - name: "São José de Ubá", - state: State::RJ, - }, - Municipio { - ibge_code: 3305158, - name: "São José do Vale do Rio Preto", - state: State::RJ, - }, - Municipio { - ibge_code: 3305000, - name: "São João da Barra", - state: State::RJ, - }, - Municipio { - ibge_code: 3305109, - name: "São João de Meriti", - state: State::RJ, - }, - Municipio { - ibge_code: 3305208, - name: "São Pedro da Aldeia", - state: State::RJ, - }, - Municipio { - ibge_code: 3305307, - name: "São Sebastião do Alto", - state: State::RJ, - }, - Municipio { - ibge_code: 3305752, - name: "Tanguá", - state: State::RJ, - }, - Municipio { - ibge_code: 3305802, - name: "Teresópolis", - state: State::RJ, - }, - Municipio { - ibge_code: 3305901, - name: "Trajano de Moraes", - state: State::RJ, - }, - Municipio { - ibge_code: 3306008, - name: "Três Rios", - state: State::RJ, - }, - Municipio { - ibge_code: 3306107, - name: "Valença", - state: State::RJ, - }, - Municipio { - ibge_code: 3306156, - name: "Varre-Sai", - state: State::RJ, - }, - Municipio { - ibge_code: 3306206, - name: "Vassouras", - state: State::RJ, - }, - Municipio { - ibge_code: 3306305, - name: "Volta Redonda", - state: State::RJ, - }, - Municipio { - ibge_code: 2400109, - name: "Acari", - state: State::RN, - }, - Municipio { - ibge_code: 2400307, - name: "Afonso Bezerra", - state: State::RN, - }, - Municipio { - ibge_code: 2400505, - name: "Alexandria", - state: State::RN, - }, - Municipio { - ibge_code: 2400604, - name: "Almino Afonso", - state: State::RN, - }, - Municipio { - ibge_code: 2400703, - name: "Alto do Rodrigues", - state: State::RN, - }, - Municipio { - ibge_code: 2400802, - name: "Angicos", - state: State::RN, - }, - Municipio { - ibge_code: 2400901, - name: "Antônio Martins", - state: State::RN, - }, - Municipio { - ibge_code: 2401008, - name: "Apodi", - state: State::RN, - }, - Municipio { - ibge_code: 2401107, - name: "Areia Branca", - state: State::RN, - }, - Municipio { - ibge_code: 2401206, - name: "Arez", - state: State::RN, - }, - Municipio { - ibge_code: 2400208, - name: "Assú", - state: State::RN, - }, - Municipio { - ibge_code: 2401453, - name: "Baraúna", - state: State::RN, - }, - Municipio { - ibge_code: 2401503, - name: "Barcelona", - state: State::RN, - }, - Municipio { - ibge_code: 2401404, - name: "Baía Formosa", - state: State::RN, - }, - Municipio { - ibge_code: 2401602, - name: "Bento Fernandes", - state: State::RN, - }, - Municipio { - ibge_code: 2401651, - name: "Bodó", - state: State::RN, - }, - Municipio { - ibge_code: 2401701, - name: "Bom Jesus", - state: State::RN, - }, - Municipio { - ibge_code: 2401800, - name: "Brejinho", - state: State::RN, - }, - Municipio { - ibge_code: 2402006, - name: "Caicó", - state: State::RN, - }, - Municipio { - ibge_code: 2401859, - name: "Caiçara do Norte", - state: State::RN, - }, - Municipio { - ibge_code: 2401909, - name: "Caiçara do Rio do Vento", - state: State::RN, - }, - Municipio { - ibge_code: 2401305, - name: "Campo Grande", - state: State::RN, - }, - Municipio { - ibge_code: 2402105, - name: "Campo Redondo", - state: State::RN, - }, - Municipio { - ibge_code: 2402204, - name: "Canguaretama", - state: State::RN, - }, - Municipio { - ibge_code: 2402303, - name: "Caraúbas", - state: State::RN, - }, - Municipio { - ibge_code: 2402501, - name: "Carnaubais", - state: State::RN, - }, - Municipio { - ibge_code: 2402402, - name: "Carnaúba dos Dantas", - state: State::RN, - }, - Municipio { - ibge_code: 2402600, - name: "Ceará-Mirim", - state: State::RN, - }, - Municipio { - ibge_code: 2402709, - name: "Cerro Corá", - state: State::RN, - }, - Municipio { - ibge_code: 2402808, - name: "Coronel Ezequiel", - state: State::RN, - }, - Municipio { - ibge_code: 2402907, - name: "Coronel João Pessoa", - state: State::RN, - }, - Municipio { - ibge_code: 2403004, - name: "Cruzeta", - state: State::RN, - }, - Municipio { - ibge_code: 2403103, - name: "Currais Novos", - state: State::RN, - }, - Municipio { - ibge_code: 2403202, - name: "Doutor Severiano", - state: State::RN, - }, - Municipio { - ibge_code: 2403301, - name: "Encanto", - state: State::RN, - }, - Municipio { - ibge_code: 2403400, - name: "Equador", - state: State::RN, - }, - Municipio { - ibge_code: 2403509, - name: "Espírito Santo", - state: State::RN, - }, - Municipio { - ibge_code: 2403608, - name: "Extremoz", - state: State::RN, - }, - Municipio { - ibge_code: 2403707, - name: "Felipe Guerra", - state: State::RN, - }, - Municipio { - ibge_code: 2403756, - name: "Fernando Pedroza", - state: State::RN, - }, - Municipio { - ibge_code: 2403806, - name: "Florânia", - state: State::RN, - }, - Municipio { - ibge_code: 2403905, - name: "Francisco Dantas", - state: State::RN, - }, - Municipio { - ibge_code: 2404002, - name: "Frutuoso Gomes", - state: State::RN, - }, - Municipio { - ibge_code: 2404101, - name: "Galinhos", - state: State::RN, - }, - Municipio { - ibge_code: 2404200, - name: "Goianinha", - state: State::RN, - }, - Municipio { - ibge_code: 2404309, - name: "Governador Dix-Sept Rosado", - state: State::RN, - }, - Municipio { - ibge_code: 2404408, - name: "Grossos", - state: State::RN, - }, - Municipio { - ibge_code: 2404507, - name: "Guamaré", - state: State::RN, - }, - Municipio { - ibge_code: 2404606, - name: "Ielmo Marinho", - state: State::RN, - }, - Municipio { - ibge_code: 2404705, - name: "Ipanguaçu", - state: State::RN, - }, - Municipio { - ibge_code: 2404804, - name: "Ipueira", - state: State::RN, - }, - Municipio { - ibge_code: 2404853, - name: "Itajá", - state: State::RN, - }, - Municipio { - ibge_code: 2404903, - name: "Itaú", - state: State::RN, - }, - Municipio { - ibge_code: 2405108, - name: "Jandaíra", - state: State::RN, - }, - Municipio { - ibge_code: 2405207, - name: "Janduís", - state: State::RN, - }, - Municipio { - ibge_code: 2405306, - name: "Januário Cicco", - state: State::RN, - }, - Municipio { - ibge_code: 2405405, - name: "Japi", - state: State::RN, - }, - Municipio { - ibge_code: 2405504, - name: "Jardim de Angicos", - state: State::RN, - }, - Municipio { - ibge_code: 2405603, - name: "Jardim de Piranhas", - state: State::RN, - }, - Municipio { - ibge_code: 2405702, - name: "Jardim do Seridó", - state: State::RN, - }, - Municipio { - ibge_code: 2405009, - name: "Jaçanã", - state: State::RN, - }, - Municipio { - ibge_code: 2406007, - name: "José da Penha", - state: State::RN, - }, - Municipio { - ibge_code: 2405801, - name: "João Câmara", - state: State::RN, - }, - Municipio { - ibge_code: 2405900, - name: "João Dias", - state: State::RN, - }, - Municipio { - ibge_code: 2406106, - name: "Jucurutu", - state: State::RN, - }, - Municipio { - ibge_code: 2406155, - name: "Jundiá", - state: State::RN, - }, - Municipio { - ibge_code: 2406502, - name: "Lagoa Nova", - state: State::RN, - }, - Municipio { - ibge_code: 2406601, - name: "Lagoa Salgada", - state: State::RN, - }, - Municipio { - ibge_code: 2406205, - name: "Lagoa d'Anta", - state: State::RN, - }, - Municipio { - ibge_code: 2406304, - name: "Lagoa de Pedras", - state: State::RN, - }, - Municipio { - ibge_code: 2406403, - name: "Lagoa de Velhos", - state: State::RN, - }, - Municipio { - ibge_code: 2406700, - name: "Lajes", - state: State::RN, - }, - Municipio { - ibge_code: 2406809, - name: "Lajes Pintadas", - state: State::RN, - }, - Municipio { - ibge_code: 2406908, - name: "Lucrécia", - state: State::RN, - }, - Municipio { - ibge_code: 2407005, - name: "Luís Gomes", - state: State::RN, - }, - Municipio { - ibge_code: 2407203, - name: "Macau", - state: State::RN, - }, - Municipio { - ibge_code: 2407104, - name: "Macaíba", - state: State::RN, - }, - Municipio { - ibge_code: 2407252, - name: "Major Sales", - state: State::RN, - }, - Municipio { - ibge_code: 2407302, - name: "Marcelino Vieira", - state: State::RN, - }, - Municipio { - ibge_code: 2407401, - name: "Martins", - state: State::RN, - }, - Municipio { - ibge_code: 2407500, - name: "Maxaranguape", - state: State::RN, - }, - Municipio { - ibge_code: 2407609, - name: "Messias Targino", - state: State::RN, - }, - Municipio { - ibge_code: 2407708, - name: "Montanhas", - state: State::RN, - }, - Municipio { - ibge_code: 2407807, - name: "Monte Alegre", - state: State::RN, - }, - Municipio { - ibge_code: 2407906, - name: "Monte das Gameleiras", - state: State::RN, - }, - Municipio { - ibge_code: 2408003, - name: "Mossoró", - state: State::RN, - }, - Municipio { - ibge_code: 2408102, - name: "Natal", - state: State::RN, - }, - Municipio { - ibge_code: 2408300, - name: "Nova Cruz", - state: State::RN, - }, - Municipio { - ibge_code: 2408201, - name: "Nísia Floresta", - state: State::RN, - }, - Municipio { - ibge_code: 2408409, - name: "Olho d'Água do Borges", - state: State::RN, - }, - Municipio { - ibge_code: 2408508, - name: "Ouro Branco", - state: State::RN, - }, - Municipio { - ibge_code: 2408607, - name: "Paraná", - state: State::RN, - }, - Municipio { - ibge_code: 2408805, - name: "Parazinho", - state: State::RN, - }, - Municipio { - ibge_code: 2408706, - name: "Paraú", - state: State::RN, - }, - Municipio { - ibge_code: 2408904, - name: "Parelhas", - state: State::RN, - }, - Municipio { - ibge_code: 2403251, - name: "Parnamirim", - state: State::RN, - }, - Municipio { - ibge_code: 2409100, - name: "Passa e Fica", - state: State::RN, - }, - Municipio { - ibge_code: 2409209, - name: "Passagem", - state: State::RN, - }, - Municipio { - ibge_code: 2409308, - name: "Patu", - state: State::RN, - }, - Municipio { - ibge_code: 2409407, - name: "Pau dos Ferros", - state: State::RN, - }, - Municipio { - ibge_code: 2409506, - name: "Pedra Grande", - state: State::RN, - }, - Municipio { - ibge_code: 2409605, - name: "Pedra Preta", - state: State::RN, - }, - Municipio { - ibge_code: 2409704, - name: "Pedro Avelino", - state: State::RN, - }, - Municipio { - ibge_code: 2409803, - name: "Pedro Velho", - state: State::RN, - }, - Municipio { - ibge_code: 2409902, - name: "Pendências", - state: State::RN, - }, - Municipio { - ibge_code: 2410009, - name: "Pilões", - state: State::RN, - }, - Municipio { - ibge_code: 2410207, - name: "Portalegre", - state: State::RN, - }, - Municipio { - ibge_code: 2410256, - name: "Porto do Mangue", - state: State::RN, - }, - Municipio { - ibge_code: 2410108, - name: "Poço Branco", - state: State::RN, - }, - Municipio { - ibge_code: 2410405, - name: "Pureza", - state: State::RN, - }, - Municipio { - ibge_code: 2410504, - name: "Rafael Fernandes", - state: State::RN, - }, - Municipio { - ibge_code: 2410603, - name: "Rafael Godeiro", - state: State::RN, - }, - Municipio { - ibge_code: 2410702, - name: "Riacho da Cruz", - state: State::RN, - }, - Municipio { - ibge_code: 2410801, - name: "Riacho de Santana", - state: State::RN, - }, - Municipio { - ibge_code: 2410900, - name: "Riachuelo", - state: State::RN, - }, - Municipio { - ibge_code: 2408953, - name: "Rio do Fogo", - state: State::RN, - }, - Municipio { - ibge_code: 2411007, - name: "Rodolfo Fernandes", - state: State::RN, - }, - Municipio { - ibge_code: 2411106, - name: "Ruy Barbosa", - state: State::RN, - }, - Municipio { - ibge_code: 2411205, - name: "Santa Cruz", - state: State::RN, - }, - Municipio { - ibge_code: 2409332, - name: "Santa Maria", - state: State::RN, - }, - Municipio { - ibge_code: 2411403, - name: "Santana do Matos", - state: State::RN, - }, - Municipio { - ibge_code: 2411429, - name: "Santana do Seridó", - state: State::RN, - }, - Municipio { - ibge_code: 2411502, - name: "Santo Antônio", - state: State::RN, - }, - Municipio { - ibge_code: 2413102, - name: "Senador Elói de Souza", - state: State::RN, - }, - Municipio { - ibge_code: 2413201, - name: "Senador Georgino Avelino", - state: State::RN, - }, - Municipio { - ibge_code: 2410306, - name: "Serra Caiada", - state: State::RN, - }, - Municipio { - ibge_code: 2413409, - name: "Serra Negra do Norte", - state: State::RN, - }, - Municipio { - ibge_code: 2413300, - name: "Serra de São Bento", - state: State::RN, - }, - Municipio { - ibge_code: 2413359, - name: "Serra do Mel", - state: State::RN, - }, - Municipio { - ibge_code: 2413508, - name: "Serrinha", - state: State::RN, - }, - Municipio { - ibge_code: 2413557, - name: "Serrinha dos Pintos", - state: State::RN, - }, - Municipio { - ibge_code: 2413607, - name: "Severiano Melo", - state: State::RN, - }, - Municipio { - ibge_code: 2411601, - name: "São Bento do Norte", - state: State::RN, - }, - Municipio { - ibge_code: 2411700, - name: "São Bento do Trairí", - state: State::RN, - }, - Municipio { - ibge_code: 2411809, - name: "São Fernando", - state: State::RN, - }, - Municipio { - ibge_code: 2411908, - name: "São Francisco do Oeste", - state: State::RN, - }, - Municipio { - ibge_code: 2412005, - name: "São Gonçalo do Amarante", - state: State::RN, - }, - Municipio { - ibge_code: 2412203, - name: "São José de Mipibu", - state: State::RN, - }, - Municipio { - ibge_code: 2412302, - name: "São José do Campestre", - state: State::RN, - }, - Municipio { - ibge_code: 2412401, - name: "São José do Seridó", - state: State::RN, - }, - Municipio { - ibge_code: 2412104, - name: "São João do Sabugi", - state: State::RN, - }, - Municipio { - ibge_code: 2412500, - name: "São Miguel", - state: State::RN, - }, - Municipio { - ibge_code: 2412559, - name: "São Miguel do Gostoso", - state: State::RN, - }, - Municipio { - ibge_code: 2412609, - name: "São Paulo do Potengi", - state: State::RN, - }, - Municipio { - ibge_code: 2412708, - name: "São Pedro", - state: State::RN, - }, - Municipio { - ibge_code: 2412807, - name: "São Rafael", - state: State::RN, - }, - Municipio { - ibge_code: 2412906, - name: "São Tomé", - state: State::RN, - }, - Municipio { - ibge_code: 2413003, - name: "São Vicente", - state: State::RN, - }, - Municipio { - ibge_code: 2413706, - name: "Sítio Novo", - state: State::RN, - }, - Municipio { - ibge_code: 2413805, - name: "Taboleiro Grande", - state: State::RN, - }, - Municipio { - ibge_code: 2413904, - name: "Taipu", - state: State::RN, - }, - Municipio { - ibge_code: 2414001, - name: "Tangará", - state: State::RN, - }, - Municipio { - ibge_code: 2414100, - name: "Tenente Ananias", - state: State::RN, - }, - Municipio { - ibge_code: 2414159, - name: "Tenente Laurentino Cruz", - state: State::RN, - }, - Municipio { - ibge_code: 2411056, - name: "Tibau", - state: State::RN, - }, - Municipio { - ibge_code: 2414209, - name: "Tibau do Sul", - state: State::RN, - }, - Municipio { - ibge_code: 2414308, - name: "Timbaúba dos Batistas", - state: State::RN, - }, - Municipio { - ibge_code: 2414407, - name: "Touros", - state: State::RN, - }, - Municipio { - ibge_code: 2414456, - name: "Triunfo Potiguar", - state: State::RN, - }, - Municipio { - ibge_code: 2414506, - name: "Umarizal", - state: State::RN, - }, - Municipio { - ibge_code: 2414605, - name: "Upanema", - state: State::RN, - }, - Municipio { - ibge_code: 2414753, - name: "Venha-Ver", - state: State::RN, - }, - Municipio { - ibge_code: 2414803, - name: "Vera Cruz", - state: State::RN, - }, - Municipio { - ibge_code: 2415008, - name: "Vila Flor", - state: State::RN, - }, - Municipio { - ibge_code: 2414902, - name: "Viçosa", - state: State::RN, - }, - Municipio { - ibge_code: 2414704, - name: "Várzea", - state: State::RN, - }, - Municipio { - ibge_code: 2400406, - name: "Água Nova", - state: State::RN, - }, - Municipio { - ibge_code: 1100015, - name: "Alta Floresta D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100379, - name: "Alto Alegre dos Parecis", - state: State::RO, - }, - Municipio { - ibge_code: 1100403, - name: "Alto Paraíso", - state: State::RO, - }, - Municipio { - ibge_code: 1100346, - name: "Alvorada D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100023, - name: "Ariquemes", - state: State::RO, - }, - Municipio { - ibge_code: 1100452, - name: "Buritis", - state: State::RO, - }, - Municipio { - ibge_code: 1100031, - name: "Cabixi", - state: State::RO, - }, - Municipio { - ibge_code: 1100601, - name: "Cacaulândia", - state: State::RO, - }, - Municipio { - ibge_code: 1100049, - name: "Cacoal", - state: State::RO, - }, - Municipio { - ibge_code: 1100700, - name: "Campo Novo de Rondônia", - state: State::RO, - }, - Municipio { - ibge_code: 1100809, - name: "Candeias do Jamari", - state: State::RO, - }, - Municipio { - ibge_code: 1100908, - name: "Castanheiras", - state: State::RO, - }, - Municipio { - ibge_code: 1100056, - name: "Cerejeiras", - state: State::RO, - }, - Municipio { - ibge_code: 1100924, - name: "Chupinguaia", - state: State::RO, - }, - Municipio { - ibge_code: 1100064, - name: "Colorado do Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100072, - name: "Corumbiara", - state: State::RO, - }, - Municipio { - ibge_code: 1100080, - name: "Costa Marques", - state: State::RO, - }, - Municipio { - ibge_code: 1100940, - name: "Cujubim", - state: State::RO, - }, - Municipio { - ibge_code: 1100098, - name: "Espigão D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1101005, - name: "Governador Jorge Teixeira", - state: State::RO, - }, - Municipio { - ibge_code: 1100106, - name: "Guajará-Mirim", - state: State::RO, - }, - Municipio { - ibge_code: 1101104, - name: "Itapuã do Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100114, - name: "Jaru", - state: State::RO, - }, - Municipio { - ibge_code: 1100122, - name: "Ji-Paraná", - state: State::RO, - }, - Municipio { - ibge_code: 1100130, - name: "Machadinho D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1101203, - name: "Ministro Andreazza", - state: State::RO, - }, - Municipio { - ibge_code: 1101302, - name: "Mirante da Serra", - state: State::RO, - }, - Municipio { - ibge_code: 1101401, - name: "Monte Negro", - state: State::RO, - }, - Municipio { - ibge_code: 1100148, - name: "Nova Brasilândia D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100338, - name: "Nova Mamoré", - state: State::RO, - }, - Municipio { - ibge_code: 1101435, - name: "Nova União", - state: State::RO, - }, - Municipio { - ibge_code: 1100502, - name: "Novo Horizonte do Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100155, - name: "Ouro Preto do Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1101450, - name: "Parecis", - state: State::RO, - }, - Municipio { - ibge_code: 1100189, - name: "Pimenta Bueno", - state: State::RO, - }, - Municipio { - ibge_code: 1101468, - name: "Pimenteiras do Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1100205, - name: "Porto Velho", - state: State::RO, - }, - Municipio { - ibge_code: 1100254, - name: "Presidente Médici", - state: State::RO, - }, - Municipio { - ibge_code: 1101476, - name: "Primavera de Rondônia", - state: State::RO, - }, - Municipio { - ibge_code: 1100262, - name: "Rio Crespo", - state: State::RO, - }, - Municipio { - ibge_code: 1100288, - name: "Rolim de Moura", - state: State::RO, - }, - Municipio { - ibge_code: 1100296, - name: "Santa Luzia D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1101500, - name: "Seringueiras", - state: State::RO, - }, - Municipio { - ibge_code: 1101484, - name: "São Felipe D'Oeste", - state: State::RO, - }, - Municipio { - ibge_code: 1101492, - name: "São Francisco do Guaporé", - state: State::RO, - }, - Municipio { - ibge_code: 1100320, - name: "São Miguel do Guaporé", - state: State::RO, - }, - Municipio { - ibge_code: 1101559, - name: "Teixeirópolis", - state: State::RO, - }, - Municipio { - ibge_code: 1101609, - name: "Theobroma", - state: State::RO, - }, - Municipio { - ibge_code: 1101708, - name: "Urupá", - state: State::RO, - }, - Municipio { - ibge_code: 1101757, - name: "Vale do Anari", - state: State::RO, - }, - Municipio { - ibge_code: 1101807, - name: "Vale do Paraíso", - state: State::RO, - }, - Municipio { - ibge_code: 1100304, - name: "Vilhena", - state: State::RO, - }, - Municipio { - ibge_code: 1400050, - name: "Alto Alegre", - state: State::RR, - }, - Municipio { - ibge_code: 1400027, - name: "Amajari", - state: State::RR, - }, - Municipio { - ibge_code: 1400100, - name: "Boa Vista", - state: State::RR, - }, - Municipio { - ibge_code: 1400159, - name: "Bonfim", - state: State::RR, - }, - Municipio { - ibge_code: 1400175, - name: "Cantá", - state: State::RR, - }, - Municipio { - ibge_code: 1400209, - name: "Caracaraí", - state: State::RR, - }, - Municipio { - ibge_code: 1400233, - name: "Caroebe", - state: State::RR, - }, - Municipio { - ibge_code: 1400282, - name: "Iracema", - state: State::RR, - }, - Municipio { - ibge_code: 1400308, - name: "Mucajaí", - state: State::RR, - }, - Municipio { - ibge_code: 1400407, - name: "Normandia", - state: State::RR, - }, - Municipio { - ibge_code: 1400456, - name: "Pacaraima", - state: State::RR, - }, - Municipio { - ibge_code: 1400472, - name: "Rorainópolis", - state: State::RR, - }, - Municipio { - ibge_code: 1400506, - name: "São João da Baliza", - state: State::RR, - }, - Municipio { - ibge_code: 1400605, - name: "São Luiz do Anauá", - state: State::RR, - }, - Municipio { - ibge_code: 1400704, - name: "Uiramutã", - state: State::RR, - }, - Municipio { - ibge_code: 4300034, - name: "Aceguá", - state: State::RS, - }, - Municipio { - ibge_code: 4300109, - name: "Agudo", - state: State::RS, - }, - Municipio { - ibge_code: 4300208, - name: "Ajuricaba", - state: State::RS, - }, - Municipio { - ibge_code: 4300307, - name: "Alecrim", - state: State::RS, - }, - Municipio { - ibge_code: 4300406, - name: "Alegrete", - state: State::RS, - }, - Municipio { - ibge_code: 4300455, - name: "Alegria", - state: State::RS, - }, - Municipio { - ibge_code: 4300471, - name: "Almirante Tamandaré do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4300505, - name: "Alpestre", - state: State::RS, - }, - Municipio { - ibge_code: 4300554, - name: "Alto Alegre", - state: State::RS, - }, - Municipio { - ibge_code: 4300570, - name: "Alto Feliz", - state: State::RS, - }, - Municipio { - ibge_code: 4300604, - name: "Alvorada", - state: State::RS, - }, - Municipio { - ibge_code: 4300638, - name: "Amaral Ferrador", - state: State::RS, - }, - Municipio { - ibge_code: 4300646, - name: "Ametista do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4300661, - name: "André da Rocha", - state: State::RS, - }, - Municipio { - ibge_code: 4300703, - name: "Anta Gorda", - state: State::RS, - }, - Municipio { - ibge_code: 4300802, - name: "Antônio Prado", - state: State::RS, - }, - Municipio { - ibge_code: 4300851, - name: "Arambaré", - state: State::RS, - }, - Municipio { - ibge_code: 4300877, - name: "Araricá", - state: State::RS, - }, - Municipio { - ibge_code: 4300901, - name: "Aratiba", - state: State::RS, - }, - Municipio { - ibge_code: 4301305, - name: "Arroio Grande", - state: State::RS, - }, - Municipio { - ibge_code: 4301008, - name: "Arroio do Meio", - state: State::RS, - }, - Municipio { - ibge_code: 4301073, - name: "Arroio do Padre", - state: State::RS, - }, - Municipio { - ibge_code: 4301057, - name: "Arroio do Sal", - state: State::RS, - }, - Municipio { - ibge_code: 4301206, - name: "Arroio do Tigre", - state: State::RS, - }, - Municipio { - ibge_code: 4301107, - name: "Arroio dos Ratos", - state: State::RS, - }, - Municipio { - ibge_code: 4301404, - name: "Arvorezinha", - state: State::RS, - }, - Municipio { - ibge_code: 4301503, - name: "Augusto Pestana", - state: State::RS, - }, - Municipio { - ibge_code: 4301602, - name: "Bagé", - state: State::RS, - }, - Municipio { - ibge_code: 4301636, - name: "Balneário Pinhal", - state: State::RS, - }, - Municipio { - ibge_code: 4301958, - name: "Barra Funda", - state: State::RS, - }, - Municipio { - ibge_code: 4301859, - name: "Barra do Guarita", - state: State::RS, - }, - Municipio { - ibge_code: 4301875, - name: "Barra do Quaraí", - state: State::RS, - }, - Municipio { - ibge_code: 4301909, - name: "Barra do Ribeiro", - state: State::RS, - }, - Municipio { - ibge_code: 4301925, - name: "Barra do Rio Azul", - state: State::RS, - }, - Municipio { - ibge_code: 4301800, - name: "Barracão", - state: State::RS, - }, - Municipio { - ibge_code: 4302006, - name: "Barros Cassal", - state: State::RS, - }, - Municipio { - ibge_code: 4301651, - name: "Barão", - state: State::RS, - }, - Municipio { - ibge_code: 4301701, - name: "Barão de Cotegipe", - state: State::RS, - }, - Municipio { - ibge_code: 4301750, - name: "Barão do Triunfo", - state: State::RS, - }, - Municipio { - ibge_code: 4302055, - name: "Benjamin Constant do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4302105, - name: "Bento Gonçalves", - state: State::RS, - }, - Municipio { - ibge_code: 4302154, - name: "Boa Vista das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4302204, - name: "Boa Vista do Buricá", - state: State::RS, - }, - Municipio { - ibge_code: 4302220, - name: "Boa Vista do Cadeado", - state: State::RS, - }, - Municipio { - ibge_code: 4302238, - name: "Boa Vista do Incra", - state: State::RS, - }, - Municipio { - ibge_code: 4302253, - name: "Boa Vista do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4302303, - name: "Bom Jesus", - state: State::RS, - }, - Municipio { - ibge_code: 4302352, - name: "Bom Princípio", - state: State::RS, - }, - Municipio { - ibge_code: 4302378, - name: "Bom Progresso", - state: State::RS, - }, - Municipio { - ibge_code: 4302402, - name: "Bom Retiro do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4302451, - name: "Boqueirão do Leão", - state: State::RS, - }, - Municipio { - ibge_code: 4302501, - name: "Bossoroca", - state: State::RS, - }, - Municipio { - ibge_code: 4302584, - name: "Bozano", - state: State::RS, - }, - Municipio { - ibge_code: 4302600, - name: "Braga", - state: State::RS, - }, - Municipio { - ibge_code: 4302659, - name: "Brochier", - state: State::RS, - }, - Municipio { - ibge_code: 4302709, - name: "Butiá", - state: State::RS, - }, - Municipio { - ibge_code: 4302907, - name: "Cacequi", - state: State::RS, - }, - Municipio { - ibge_code: 4303004, - name: "Cachoeira do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4303103, - name: "Cachoeirinha", - state: State::RS, - }, - Municipio { - ibge_code: 4303202, - name: "Cacique Doble", - state: State::RS, - }, - Municipio { - ibge_code: 4303301, - name: "Caibaté", - state: State::RS, - }, - Municipio { - ibge_code: 4303400, - name: "Caiçara", - state: State::RS, - }, - Municipio { - ibge_code: 4303509, - name: "Camaquã", - state: State::RS, - }, - Municipio { - ibge_code: 4303558, - name: "Camargo", - state: State::RS, - }, - Municipio { - ibge_code: 4303608, - name: "Cambará do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4303673, - name: "Campestre da Serra", - state: State::RS, - }, - Municipio { - ibge_code: 4303707, - name: "Campina das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4303806, - name: "Campinas do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4303905, - name: "Campo Bom", - state: State::RS, - }, - Municipio { - ibge_code: 4304002, - name: "Campo Novo", - state: State::RS, - }, - Municipio { - ibge_code: 4304101, - name: "Campos Borges", - state: State::RS, - }, - Municipio { - ibge_code: 4304200, - name: "Candelária", - state: State::RS, - }, - Municipio { - ibge_code: 4304358, - name: "Candiota", - state: State::RS, - }, - Municipio { - ibge_code: 4304408, - name: "Canela", - state: State::RS, - }, - Municipio { - ibge_code: 4304507, - name: "Canguçu", - state: State::RS, - }, - Municipio { - ibge_code: 4304606, - name: "Canoas", - state: State::RS, - }, - Municipio { - ibge_code: 4304614, - name: "Canudos do Vale", - state: State::RS, - }, - Municipio { - ibge_code: 4304689, - name: "Capela de Santana", - state: State::RS, - }, - Municipio { - ibge_code: 4304697, - name: "Capitão", - state: State::RS, - }, - Municipio { - ibge_code: 4304671, - name: "Capivari do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4304622, - name: "Capão Bonito do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4304630, - name: "Capão da Canoa", - state: State::RS, - }, - Municipio { - ibge_code: 4304655, - name: "Capão do Cipó", - state: State::RS, - }, - Municipio { - ibge_code: 4304663, - name: "Capão do Leão", - state: State::RS, - }, - Municipio { - ibge_code: 4304705, - name: "Carazinho", - state: State::RS, - }, - Municipio { - ibge_code: 4304713, - name: "Caraá", - state: State::RS, - }, - Municipio { - ibge_code: 4304804, - name: "Carlos Barbosa", - state: State::RS, - }, - Municipio { - ibge_code: 4304853, - name: "Carlos Gomes", - state: State::RS, - }, - Municipio { - ibge_code: 4304903, - name: "Casca", - state: State::RS, - }, - Municipio { - ibge_code: 4304952, - name: "Caseiros", - state: State::RS, - }, - Municipio { - ibge_code: 4305009, - name: "Catuípe", - state: State::RS, - }, - Municipio { - ibge_code: 4305108, - name: "Caxias do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4302808, - name: "Caçapava do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4305116, - name: "Centenário", - state: State::RS, - }, - Municipio { - ibge_code: 4305124, - name: "Cerrito", - state: State::RS, - }, - Municipio { - ibge_code: 4305132, - name: "Cerro Branco", - state: State::RS, - }, - Municipio { - ibge_code: 4305157, - name: "Cerro Grande", - state: State::RS, - }, - Municipio { - ibge_code: 4305173, - name: "Cerro Grande do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4305207, - name: "Cerro Largo", - state: State::RS, - }, - Municipio { - ibge_code: 4305306, - name: "Chapada", - state: State::RS, - }, - Municipio { - ibge_code: 4305355, - name: "Charqueadas", - state: State::RS, - }, - Municipio { - ibge_code: 4305371, - name: "Charrua", - state: State::RS, - }, - Municipio { - ibge_code: 4305405, - name: "Chiapetta", - state: State::RS, - }, - Municipio { - ibge_code: 4305447, - name: "Chuvisca", - state: State::RS, - }, - Municipio { - ibge_code: 4305439, - name: "Chuí", - state: State::RS, - }, - Municipio { - ibge_code: 4305454, - name: "Cidreira", - state: State::RS, - }, - Municipio { - ibge_code: 4305504, - name: "Ciríaco", - state: State::RS, - }, - Municipio { - ibge_code: 4305587, - name: "Colinas", - state: State::RS, - }, - Municipio { - ibge_code: 4305603, - name: "Colorado", - state: State::RS, - }, - Municipio { - ibge_code: 4305702, - name: "Condor", - state: State::RS, - }, - Municipio { - ibge_code: 4305801, - name: "Constantina", - state: State::RS, - }, - Municipio { - ibge_code: 4305835, - name: "Coqueiro Baixo", - state: State::RS, - }, - Municipio { - ibge_code: 4305850, - name: "Coqueiros do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4305871, - name: "Coronel Barros", - state: State::RS, - }, - Municipio { - ibge_code: 4305900, - name: "Coronel Bicaco", - state: State::RS, - }, - Municipio { - ibge_code: 4305934, - name: "Coronel Pilar", - state: State::RS, - }, - Municipio { - ibge_code: 4305959, - name: "Cotiporã", - state: State::RS, - }, - Municipio { - ibge_code: 4305975, - name: "Coxilha", - state: State::RS, - }, - Municipio { - ibge_code: 4306007, - name: "Crissiumal", - state: State::RS, - }, - Municipio { - ibge_code: 4306056, - name: "Cristal", - state: State::RS, - }, - Municipio { - ibge_code: 4306072, - name: "Cristal do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4306106, - name: "Cruz Alta", - state: State::RS, - }, - Municipio { - ibge_code: 4306130, - name: "Cruzaltense", - state: State::RS, - }, - Municipio { - ibge_code: 4306205, - name: "Cruzeiro do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4304309, - name: "Cândido Godói", - state: State::RS, - }, - Municipio { - ibge_code: 4306304, - name: "David Canabarro", - state: State::RS, - }, - Municipio { - ibge_code: 4306320, - name: "Derrubadas", - state: State::RS, - }, - Municipio { - ibge_code: 4306353, - name: "Dezesseis de Novembro", - state: State::RS, - }, - Municipio { - ibge_code: 4306379, - name: "Dilermando de Aguiar", - state: State::RS, - }, - Municipio { - ibge_code: 4306403, - name: "Dois Irmãos", - state: State::RS, - }, - Municipio { - ibge_code: 4306429, - name: "Dois Irmãos das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4306452, - name: "Dois Lajeados", - state: State::RS, - }, - Municipio { - ibge_code: 4306502, - name: "Dom Feliciano", - state: State::RS, - }, - Municipio { - ibge_code: 4306601, - name: "Dom Pedrito", - state: State::RS, - }, - Municipio { - ibge_code: 4306551, - name: "Dom Pedro de Alcântara", - state: State::RS, - }, - Municipio { - ibge_code: 4306700, - name: "Dona Francisca", - state: State::RS, - }, - Municipio { - ibge_code: 4306734, - name: "Doutor Maurício Cardoso", - state: State::RS, - }, - Municipio { - ibge_code: 4306759, - name: "Doutor Ricardo", - state: State::RS, - }, - Municipio { - ibge_code: 4306767, - name: "Eldorado do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4306809, - name: "Encantado", - state: State::RS, - }, - Municipio { - ibge_code: 4306908, - name: "Encruzilhada do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4306924, - name: "Engenho Velho", - state: State::RS, - }, - Municipio { - ibge_code: 4306957, - name: "Entre Rios do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4306932, - name: "Entre-Ijuís", - state: State::RS, - }, - Municipio { - ibge_code: 4306973, - name: "Erebango", - state: State::RS, - }, - Municipio { - ibge_code: 4307005, - name: "Erechim", - state: State::RS, - }, - Municipio { - ibge_code: 4307054, - name: "Ernestina", - state: State::RS, - }, - Municipio { - ibge_code: 4307203, - name: "Erval Grande", - state: State::RS, - }, - Municipio { - ibge_code: 4307302, - name: "Erval Seco", - state: State::RS, - }, - Municipio { - ibge_code: 4307401, - name: "Esmeralda", - state: State::RS, - }, - Municipio { - ibge_code: 4307450, - name: "Esperança do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4307500, - name: "Espumoso", - state: State::RS, - }, - Municipio { - ibge_code: 4307559, - name: "Estação", - state: State::RS, - }, - Municipio { - ibge_code: 4307708, - name: "Esteio", - state: State::RS, - }, - Municipio { - ibge_code: 4307807, - name: "Estrela", - state: State::RS, - }, - Municipio { - ibge_code: 4307815, - name: "Estrela Velha", - state: State::RS, - }, - Municipio { - ibge_code: 4307609, - name: "Estância Velha", - state: State::RS, - }, - Municipio { - ibge_code: 4307831, - name: "Eugênio de Castro", - state: State::RS, - }, - Municipio { - ibge_code: 4307864, - name: "Fagundes Varela", - state: State::RS, - }, - Municipio { - ibge_code: 4307906, - name: "Farroupilha", - state: State::RS, - }, - Municipio { - ibge_code: 4308003, - name: "Faxinal do Soturno", - state: State::RS, - }, - Municipio { - ibge_code: 4308052, - name: "Faxinalzinho", - state: State::RS, - }, - Municipio { - ibge_code: 4308078, - name: "Fazenda Vilanova", - state: State::RS, - }, - Municipio { - ibge_code: 4308102, - name: "Feliz", - state: State::RS, - }, - Municipio { - ibge_code: 4308201, - name: "Flores da Cunha", - state: State::RS, - }, - Municipio { - ibge_code: 4308250, - name: "Floriano Peixoto", - state: State::RS, - }, - Municipio { - ibge_code: 4308300, - name: "Fontoura Xavier", - state: State::RS, - }, - Municipio { - ibge_code: 4308409, - name: "Formigueiro", - state: State::RS, - }, - Municipio { - ibge_code: 4308433, - name: "Forquetinha", - state: State::RS, - }, - Municipio { - ibge_code: 4308458, - name: "Fortaleza dos Valos", - state: State::RS, - }, - Municipio { - ibge_code: 4308508, - name: "Frederico Westphalen", - state: State::RS, - }, - Municipio { - ibge_code: 4308607, - name: "Garibaldi", - state: State::RS, - }, - Municipio { - ibge_code: 4308656, - name: "Garruchos", - state: State::RS, - }, - Municipio { - ibge_code: 4308706, - name: "Gaurama", - state: State::RS, - }, - Municipio { - ibge_code: 4308805, - name: "General Câmara", - state: State::RS, - }, - Municipio { - ibge_code: 4308854, - name: "Gentil", - state: State::RS, - }, - Municipio { - ibge_code: 4308904, - name: "Getúlio Vargas", - state: State::RS, - }, - Municipio { - ibge_code: 4309001, - name: "Giruá", - state: State::RS, - }, - Municipio { - ibge_code: 4309050, - name: "Glorinha", - state: State::RS, - }, - Municipio { - ibge_code: 4309100, - name: "Gramado", - state: State::RS, - }, - Municipio { - ibge_code: 4309159, - name: "Gramado Xavier", - state: State::RS, - }, - Municipio { - ibge_code: 4309126, - name: "Gramado dos Loureiros", - state: State::RS, - }, - Municipio { - ibge_code: 4309209, - name: "Gravataí", - state: State::RS, - }, - Municipio { - ibge_code: 4309258, - name: "Guabiju", - state: State::RS, - }, - Municipio { - ibge_code: 4309407, - name: "Guaporé", - state: State::RS, - }, - Municipio { - ibge_code: 4309506, - name: "Guarani das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4309308, - name: "Guaíba", - state: State::RS, - }, - Municipio { - ibge_code: 4309555, - name: "Harmonia", - state: State::RS, - }, - Municipio { - ibge_code: 4307104, - name: "Herval", - state: State::RS, - }, - Municipio { - ibge_code: 4309571, - name: "Herveiras", - state: State::RS, - }, - Municipio { - ibge_code: 4309605, - name: "Horizontina", - state: State::RS, - }, - Municipio { - ibge_code: 4309654, - name: "Hulha Negra", - state: State::RS, - }, - Municipio { - ibge_code: 4309704, - name: "Humaitá", - state: State::RS, - }, - Municipio { - ibge_code: 4309753, - name: "Ibarama", - state: State::RS, - }, - Municipio { - ibge_code: 4309803, - name: "Ibiaçá", - state: State::RS, - }, - Municipio { - ibge_code: 4309902, - name: "Ibiraiaras", - state: State::RS, - }, - Municipio { - ibge_code: 4309951, - name: "Ibirapuitã", - state: State::RS, - }, - Municipio { - ibge_code: 4310009, - name: "Ibirubá", - state: State::RS, - }, - Municipio { - ibge_code: 4310108, - name: "Igrejinha", - state: State::RS, - }, - Municipio { - ibge_code: 4310207, - name: "Ijuí", - state: State::RS, - }, - Municipio { - ibge_code: 4310306, - name: "Ilópolis", - state: State::RS, - }, - Municipio { - ibge_code: 4310330, - name: "Imbé", - state: State::RS, - }, - Municipio { - ibge_code: 4310363, - name: "Imigrante", - state: State::RS, - }, - Municipio { - ibge_code: 4310405, - name: "Independência", - state: State::RS, - }, - Municipio { - ibge_code: 4310413, - name: "Inhacorá", - state: State::RS, - }, - Municipio { - ibge_code: 4310462, - name: "Ipiranga do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4310439, - name: "Ipê", - state: State::RS, - }, - Municipio { - ibge_code: 4310504, - name: "Iraí", - state: State::RS, - }, - Municipio { - ibge_code: 4310538, - name: "Itaara", - state: State::RS, - }, - Municipio { - ibge_code: 4310553, - name: "Itacurubi", - state: State::RS, - }, - Municipio { - ibge_code: 4310579, - name: "Itapuca", - state: State::RS, - }, - Municipio { - ibge_code: 4310603, - name: "Itaqui", - state: State::RS, - }, - Municipio { - ibge_code: 4310652, - name: "Itati", - state: State::RS, - }, - Municipio { - ibge_code: 4310702, - name: "Itatiba do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4310751, - name: "Ivorá", - state: State::RS, - }, - Municipio { - ibge_code: 4310801, - name: "Ivoti", - state: State::RS, - }, - Municipio { - ibge_code: 4310850, - name: "Jaboticaba", - state: State::RS, - }, - Municipio { - ibge_code: 4310876, - name: "Jacuizinho", - state: State::RS, - }, - Municipio { - ibge_code: 4310900, - name: "Jacutinga", - state: State::RS, - }, - Municipio { - ibge_code: 4311106, - name: "Jaguari", - state: State::RS, - }, - Municipio { - ibge_code: 4311007, - name: "Jaguarão", - state: State::RS, - }, - Municipio { - ibge_code: 4311122, - name: "Jaquirana", - state: State::RS, - }, - Municipio { - ibge_code: 4311130, - name: "Jari", - state: State::RS, - }, - Municipio { - ibge_code: 4311155, - name: "Jóia", - state: State::RS, - }, - Municipio { - ibge_code: 4311205, - name: "Júlio de Castilhos", - state: State::RS, - }, - Municipio { - ibge_code: 4311239, - name: "Lagoa Bonita do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4311304, - name: "Lagoa Vermelha", - state: State::RS, - }, - Municipio { - ibge_code: 4311270, - name: "Lagoa dos Três Cantos", - state: State::RS, - }, - Municipio { - ibge_code: 4311254, - name: "Lagoão", - state: State::RS, - }, - Municipio { - ibge_code: 4311403, - name: "Lajeado", - state: State::RS, - }, - Municipio { - ibge_code: 4311429, - name: "Lajeado do Bugre", - state: State::RS, - }, - Municipio { - ibge_code: 4311502, - name: "Lavras do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4311601, - name: "Liberato Salzano", - state: State::RS, - }, - Municipio { - ibge_code: 4311627, - name: "Lindolfo Collor", - state: State::RS, - }, - Municipio { - ibge_code: 4311643, - name: "Linha Nova", - state: State::RS, - }, - Municipio { - ibge_code: 4311700, - name: "Machadinho", - state: State::RS, - }, - Municipio { - ibge_code: 4311734, - name: "Mampituba", - state: State::RS, - }, - Municipio { - ibge_code: 4311759, - name: "Manoel Viana", - state: State::RS, - }, - Municipio { - ibge_code: 4311775, - name: "Maquiné", - state: State::RS, - }, - Municipio { - ibge_code: 4311791, - name: "Maratá", - state: State::RS, - }, - Municipio { - ibge_code: 4311809, - name: "Marau", - state: State::RS, - }, - Municipio { - ibge_code: 4311908, - name: "Marcelino Ramos", - state: State::RS, - }, - Municipio { - ibge_code: 4311981, - name: "Mariana Pimentel", - state: State::RS, - }, - Municipio { - ibge_code: 4312005, - name: "Mariano Moro", - state: State::RS, - }, - Municipio { - ibge_code: 4312054, - name: "Marques de Souza", - state: State::RS, - }, - Municipio { - ibge_code: 4312104, - name: "Mata", - state: State::RS, - }, - Municipio { - ibge_code: 4312138, - name: "Mato Castelhano", - state: State::RS, - }, - Municipio { - ibge_code: 4312153, - name: "Mato Leitão", - state: State::RS, - }, - Municipio { - ibge_code: 4312179, - name: "Mato Queimado", - state: State::RS, - }, - Municipio { - ibge_code: 4312203, - name: "Maximiliano de Almeida", - state: State::RS, - }, - Municipio { - ibge_code: 4311718, - name: "Maçambará", - state: State::RS, - }, - Municipio { - ibge_code: 4312252, - name: "Minas do Leão", - state: State::RS, - }, - Municipio { - ibge_code: 4312302, - name: "Miraguaí", - state: State::RS, - }, - Municipio { - ibge_code: 4312351, - name: "Montauri", - state: State::RS, - }, - Municipio { - ibge_code: 4312377, - name: "Monte Alegre dos Campos", - state: State::RS, - }, - Municipio { - ibge_code: 4312385, - name: "Monte Belo do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4312401, - name: "Montenegro", - state: State::RS, - }, - Municipio { - ibge_code: 4312427, - name: "Mormaço", - state: State::RS, - }, - Municipio { - ibge_code: 4312443, - name: "Morrinhos do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4312450, - name: "Morro Redondo", - state: State::RS, - }, - Municipio { - ibge_code: 4312476, - name: "Morro Reuter", - state: State::RS, - }, - Municipio { - ibge_code: 4312500, - name: "Mostardas", - state: State::RS, - }, - Municipio { - ibge_code: 4312617, - name: "Muitos Capões", - state: State::RS, - }, - Municipio { - ibge_code: 4312625, - name: "Muliterno", - state: State::RS, - }, - Municipio { - ibge_code: 4312609, - name: "Muçum", - state: State::RS, - }, - Municipio { - ibge_code: 4312674, - name: "Nicolau Vergueiro", - state: State::RS, - }, - Municipio { - ibge_code: 4312708, - name: "Nonoai", - state: State::RS, - }, - Municipio { - ibge_code: 4312757, - name: "Nova Alvorada", - state: State::RS, - }, - Municipio { - ibge_code: 4312807, - name: "Nova Araçá", - state: State::RS, - }, - Municipio { - ibge_code: 4312906, - name: "Nova Bassano", - state: State::RS, - }, - Municipio { - ibge_code: 4312955, - name: "Nova Boa Vista", - state: State::RS, - }, - Municipio { - ibge_code: 4313003, - name: "Nova Bréscia", - state: State::RS, - }, - Municipio { - ibge_code: 4313011, - name: "Nova Candelária", - state: State::RS, - }, - Municipio { - ibge_code: 4313037, - name: "Nova Esperança do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4313060, - name: "Nova Hartz", - state: State::RS, - }, - Municipio { - ibge_code: 4313102, - name: "Nova Palma", - state: State::RS, - }, - Municipio { - ibge_code: 4313201, - name: "Nova Petrópolis", - state: State::RS, - }, - Municipio { - ibge_code: 4313300, - name: "Nova Prata", - state: State::RS, - }, - Municipio { - ibge_code: 4313086, - name: "Nova Pádua", - state: State::RS, - }, - Municipio { - ibge_code: 4313334, - name: "Nova Ramada", - state: State::RS, - }, - Municipio { - ibge_code: 4313359, - name: "Nova Roma do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4313375, - name: "Nova Santa Rita", - state: State::RS, - }, - Municipio { - ibge_code: 4313490, - name: "Novo Barreiro", - state: State::RS, - }, - Municipio { - ibge_code: 4313391, - name: "Novo Cabrais", - state: State::RS, - }, - Municipio { - ibge_code: 4313409, - name: "Novo Hamburgo", - state: State::RS, - }, - Municipio { - ibge_code: 4313425, - name: "Novo Machado", - state: State::RS, - }, - Municipio { - ibge_code: 4313441, - name: "Novo Tiradentes", - state: State::RS, - }, - Municipio { - ibge_code: 4313466, - name: "Novo Xingu", - state: State::RS, - }, - Municipio { - ibge_code: 4312658, - name: "Não-Me-Toque", - state: State::RS, - }, - Municipio { - ibge_code: 4313508, - name: "Osório", - state: State::RS, - }, - Municipio { - ibge_code: 4313607, - name: "Paim Filho", - state: State::RS, - }, - Municipio { - ibge_code: 4313656, - name: "Palmares do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4313706, - name: "Palmeira das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4313805, - name: "Palmitinho", - state: State::RS, - }, - Municipio { - ibge_code: 4313904, - name: "Panambi", - state: State::RS, - }, - Municipio { - ibge_code: 4313953, - name: "Pantano Grande", - state: State::RS, - }, - Municipio { - ibge_code: 4314001, - name: "Paraí", - state: State::RS, - }, - Municipio { - ibge_code: 4314027, - name: "Paraíso do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4314035, - name: "Pareci Novo", - state: State::RS, - }, - Municipio { - ibge_code: 4314050, - name: "Parobé", - state: State::RS, - }, - Municipio { - ibge_code: 4314068, - name: "Passa Sete", - state: State::RS, - }, - Municipio { - ibge_code: 4314100, - name: "Passo Fundo", - state: State::RS, - }, - Municipio { - ibge_code: 4314076, - name: "Passo do Sobrado", - state: State::RS, - }, - Municipio { - ibge_code: 4314134, - name: "Paulo Bento", - state: State::RS, - }, - Municipio { - ibge_code: 4314159, - name: "Paverama", - state: State::RS, - }, - Municipio { - ibge_code: 4314175, - name: "Pedras Altas", - state: State::RS, - }, - Municipio { - ibge_code: 4314209, - name: "Pedro Osório", - state: State::RS, - }, - Municipio { - ibge_code: 4314308, - name: "Pejuçara", - state: State::RS, - }, - Municipio { - ibge_code: 4314407, - name: "Pelotas", - state: State::RS, - }, - Municipio { - ibge_code: 4314423, - name: "Picada Café", - state: State::RS, - }, - Municipio { - ibge_code: 4314456, - name: "Pinhal", - state: State::RS, - }, - Municipio { - ibge_code: 4314472, - name: "Pinhal Grande", - state: State::RS, - }, - Municipio { - ibge_code: 4314464, - name: "Pinhal da Serra", - state: State::RS, - }, - Municipio { - ibge_code: 4314498, - name: "Pinheirinho do Vale", - state: State::RS, - }, - Municipio { - ibge_code: 4314506, - name: "Pinheiro Machado", - state: State::RS, - }, - Municipio { - ibge_code: 4314548, - name: "Pinto Bandeira", - state: State::RS, - }, - Municipio { - ibge_code: 4314555, - name: "Pirapó", - state: State::RS, - }, - Municipio { - ibge_code: 4314605, - name: "Piratini", - state: State::RS, - }, - Municipio { - ibge_code: 4314704, - name: "Planalto", - state: State::RS, - }, - Municipio { - ibge_code: 4314787, - name: "Ponte Preta", - state: State::RS, - }, - Municipio { - ibge_code: 4314779, - name: "Pontão", - state: State::RS, - }, - Municipio { - ibge_code: 4314902, - name: "Porto Alegre", - state: State::RS, - }, - Municipio { - ibge_code: 4315008, - name: "Porto Lucena", - state: State::RS, - }, - Municipio { - ibge_code: 4315057, - name: "Porto Mauá", - state: State::RS, - }, - Municipio { - ibge_code: 4315073, - name: "Porto Vera Cruz", - state: State::RS, - }, - Municipio { - ibge_code: 4315107, - name: "Porto Xavier", - state: State::RS, - }, - Municipio { - ibge_code: 4314803, - name: "Portão", - state: State::RS, - }, - Municipio { - ibge_code: 4315131, - name: "Pouso Novo", - state: State::RS, - }, - Municipio { - ibge_code: 4314753, - name: "Poço das Antas", - state: State::RS, - }, - Municipio { - ibge_code: 4315149, - name: "Presidente Lucena", - state: State::RS, - }, - Municipio { - ibge_code: 4315156, - name: "Progresso", - state: State::RS, - }, - Municipio { - ibge_code: 4315172, - name: "Protásio Alves", - state: State::RS, - }, - Municipio { - ibge_code: 4315206, - name: "Putinga", - state: State::RS, - }, - Municipio { - ibge_code: 4315305, - name: "Quaraí", - state: State::RS, - }, - Municipio { - ibge_code: 4315313, - name: "Quatro Irmãos", - state: State::RS, - }, - Municipio { - ibge_code: 4315321, - name: "Quevedos", - state: State::RS, - }, - Municipio { - ibge_code: 4315354, - name: "Quinze de Novembro", - state: State::RS, - }, - Municipio { - ibge_code: 4315404, - name: "Redentora", - state: State::RS, - }, - Municipio { - ibge_code: 4315453, - name: "Relvado", - state: State::RS, - }, - Municipio { - ibge_code: 4315503, - name: "Restinga Sêca", - state: State::RS, - }, - Municipio { - ibge_code: 4315602, - name: "Rio Grande", - state: State::RS, - }, - Municipio { - ibge_code: 4315701, - name: "Rio Pardo", - state: State::RS, - }, - Municipio { - ibge_code: 4315552, - name: "Rio dos Índios", - state: State::RS, - }, - Municipio { - ibge_code: 4315750, - name: "Riozinho", - state: State::RS, - }, - Municipio { - ibge_code: 4315800, - name: "Roca Sales", - state: State::RS, - }, - Municipio { - ibge_code: 4315909, - name: "Rodeio Bonito", - state: State::RS, - }, - Municipio { - ibge_code: 4315958, - name: "Rolador", - state: State::RS, - }, - Municipio { - ibge_code: 4316006, - name: "Rolante", - state: State::RS, - }, - Municipio { - ibge_code: 4316105, - name: "Ronda Alta", - state: State::RS, - }, - Municipio { - ibge_code: 4316204, - name: "Rondinha", - state: State::RS, - }, - Municipio { - ibge_code: 4316303, - name: "Roque Gonzales", - state: State::RS, - }, - Municipio { - ibge_code: 4316402, - name: "Rosário do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316428, - name: "Sagrada Família", - state: State::RS, - }, - Municipio { - ibge_code: 4316436, - name: "Saldanha Marinho", - state: State::RS, - }, - Municipio { - ibge_code: 4316451, - name: "Salto do Jacuí", - state: State::RS, - }, - Municipio { - ibge_code: 4316477, - name: "Salvador das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4316501, - name: "Salvador do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316600, - name: "Sananduva", - state: State::RS, - }, - Municipio { - ibge_code: 4317103, - name: "Sant'Ana do Livramento", - state: State::RS, - }, - Municipio { - ibge_code: 4316709, - name: "Santa Bárbara do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316733, - name: "Santa Cecília do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316758, - name: "Santa Clara do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316808, - name: "Santa Cruz do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316972, - name: "Santa Margarida do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4316907, - name: "Santa Maria", - state: State::RS, - }, - Municipio { - ibge_code: 4316956, - name: "Santa Maria do Herval", - state: State::RS, - }, - Municipio { - ibge_code: 4317202, - name: "Santa Rosa", - state: State::RS, - }, - Municipio { - ibge_code: 4317251, - name: "Santa Tereza", - state: State::RS, - }, - Municipio { - ibge_code: 4317301, - name: "Santa Vitória do Palmar", - state: State::RS, - }, - Municipio { - ibge_code: 4317004, - name: "Santana da Boa Vista", - state: State::RS, - }, - Municipio { - ibge_code: 4317400, - name: "Santiago", - state: State::RS, - }, - Municipio { - ibge_code: 4317608, - name: "Santo Antônio da Patrulha", - state: State::RS, - }, - Municipio { - ibge_code: 4317707, - name: "Santo Antônio das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4317558, - name: "Santo Antônio do Palma", - state: State::RS, - }, - Municipio { - ibge_code: 4317756, - name: "Santo Antônio do Planalto", - state: State::RS, - }, - Municipio { - ibge_code: 4317806, - name: "Santo Augusto", - state: State::RS, - }, - Municipio { - ibge_code: 4317905, - name: "Santo Cristo", - state: State::RS, - }, - Municipio { - ibge_code: 4317954, - name: "Santo Expedito do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4317509, - name: "Santo Ângelo", - state: State::RS, - }, - Municipio { - ibge_code: 4319901, - name: "Sapiranga", - state: State::RS, - }, - Municipio { - ibge_code: 4320008, - name: "Sapucaia do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4320107, - name: "Sarandi", - state: State::RS, - }, - Municipio { - ibge_code: 4320206, - name: "Seberi", - state: State::RS, - }, - Municipio { - ibge_code: 4320230, - name: "Sede Nova", - state: State::RS, - }, - Municipio { - ibge_code: 4320263, - name: "Segredo", - state: State::RS, - }, - Municipio { - ibge_code: 4320305, - name: "Selbach", - state: State::RS, - }, - Municipio { - ibge_code: 4320321, - name: "Senador Salgado Filho", - state: State::RS, - }, - Municipio { - ibge_code: 4320354, - name: "Sentinela do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4320404, - name: "Serafina Corrêa", - state: State::RS, - }, - Municipio { - ibge_code: 4320503, - name: "Sertão", - state: State::RS, - }, - Municipio { - ibge_code: 4320552, - name: "Sertão Santana", - state: State::RS, - }, - Municipio { - ibge_code: 4320578, - name: "Sete de Setembro", - state: State::RS, - }, - Municipio { - ibge_code: 4320602, - name: "Severiano de Almeida", - state: State::RS, - }, - Municipio { - ibge_code: 4320651, - name: "Silveira Martins", - state: State::RS, - }, - Municipio { - ibge_code: 4320677, - name: "Sinimbu", - state: State::RS, - }, - Municipio { - ibge_code: 4320701, - name: "Sobradinho", - state: State::RS, - }, - Municipio { - ibge_code: 4320800, - name: "Soledade", - state: State::RS, - }, - Municipio { - ibge_code: 4318002, - name: "São Borja", - state: State::RS, - }, - Municipio { - ibge_code: 4318051, - name: "São Domingos do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4318101, - name: "São Francisco de Assis", - state: State::RS, - }, - Municipio { - ibge_code: 4318200, - name: "São Francisco de Paula", - state: State::RS, - }, - Municipio { - ibge_code: 4318309, - name: "São Gabriel", - state: State::RS, - }, - Municipio { - ibge_code: 4318408, - name: "São Jerônimo", - state: State::RS, - }, - Municipio { - ibge_code: 4318440, - name: "São Jorge", - state: State::RS, - }, - Municipio { - ibge_code: 4318457, - name: "São José das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4318465, - name: "São José do Herval", - state: State::RS, - }, - Municipio { - ibge_code: 4318481, - name: "São José do Hortêncio", - state: State::RS, - }, - Municipio { - ibge_code: 4318499, - name: "São José do Inhacorá", - state: State::RS, - }, - Municipio { - ibge_code: 4318507, - name: "São José do Norte", - state: State::RS, - }, - Municipio { - ibge_code: 4318606, - name: "São José do Ouro", - state: State::RS, - }, - Municipio { - ibge_code: 4318614, - name: "São José do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4318622, - name: "São José dos Ausentes", - state: State::RS, - }, - Municipio { - ibge_code: 4318424, - name: "São João da Urtiga", - state: State::RS, - }, - Municipio { - ibge_code: 4318432, - name: "São João do Polêsine", - state: State::RS, - }, - Municipio { - ibge_code: 4318705, - name: "São Leopoldo", - state: State::RS, - }, - Municipio { - ibge_code: 4318804, - name: "São Lourenço do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4318903, - name: "São Luiz Gonzaga", - state: State::RS, - }, - Municipio { - ibge_code: 4319000, - name: "São Marcos", - state: State::RS, - }, - Municipio { - ibge_code: 4319109, - name: "São Martinho", - state: State::RS, - }, - Municipio { - ibge_code: 4319125, - name: "São Martinho da Serra", - state: State::RS, - }, - Municipio { - ibge_code: 4319158, - name: "São Miguel das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4319208, - name: "São Nicolau", - state: State::RS, - }, - Municipio { - ibge_code: 4319307, - name: "São Paulo das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4319356, - name: "São Pedro da Serra", - state: State::RS, - }, - Municipio { - ibge_code: 4319364, - name: "São Pedro das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4319372, - name: "São Pedro do Butiá", - state: State::RS, - }, - Municipio { - ibge_code: 4319406, - name: "São Pedro do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4319505, - name: "São Sebastião do Caí", - state: State::RS, - }, - Municipio { - ibge_code: 4319604, - name: "São Sepé", - state: State::RS, - }, - Municipio { - ibge_code: 4319703, - name: "São Valentim", - state: State::RS, - }, - Municipio { - ibge_code: 4319711, - name: "São Valentim do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4319737, - name: "São Valério do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4319752, - name: "São Vendelino", - state: State::RS, - }, - Municipio { - ibge_code: 4319802, - name: "São Vicente do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4320453, - name: "Sério", - state: State::RS, - }, - Municipio { - ibge_code: 4320859, - name: "Tabaí", - state: State::RS, - }, - Municipio { - ibge_code: 4320909, - name: "Tapejara", - state: State::RS, - }, - Municipio { - ibge_code: 4321006, - name: "Tapera", - state: State::RS, - }, - Municipio { - ibge_code: 4321105, - name: "Tapes", - state: State::RS, - }, - Municipio { - ibge_code: 4321204, - name: "Taquara", - state: State::RS, - }, - Municipio { - ibge_code: 4321303, - name: "Taquari", - state: State::RS, - }, - Municipio { - ibge_code: 4321329, - name: "Taquaruçu do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4321352, - name: "Tavares", - state: State::RS, - }, - Municipio { - ibge_code: 4321402, - name: "Tenente Portela", - state: State::RS, - }, - Municipio { - ibge_code: 4321436, - name: "Terra de Areia", - state: State::RS, - }, - Municipio { - ibge_code: 4321451, - name: "Teutônia", - state: State::RS, - }, - Municipio { - ibge_code: 4321469, - name: "Tio Hugo", - state: State::RS, - }, - Municipio { - ibge_code: 4321477, - name: "Tiradentes do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4321493, - name: "Toropi", - state: State::RS, - }, - Municipio { - ibge_code: 4321501, - name: "Torres", - state: State::RS, - }, - Municipio { - ibge_code: 4321600, - name: "Tramandaí", - state: State::RS, - }, - Municipio { - ibge_code: 4321626, - name: "Travesseiro", - state: State::RS, - }, - Municipio { - ibge_code: 4321956, - name: "Trindade do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4322004, - name: "Triunfo", - state: State::RS, - }, - Municipio { - ibge_code: 4321634, - name: "Três Arroios", - state: State::RS, - }, - Municipio { - ibge_code: 4321667, - name: "Três Cachoeiras", - state: State::RS, - }, - Municipio { - ibge_code: 4321709, - name: "Três Coroas", - state: State::RS, - }, - Municipio { - ibge_code: 4321832, - name: "Três Forquilhas", - state: State::RS, - }, - Municipio { - ibge_code: 4321857, - name: "Três Palmeiras", - state: State::RS, - }, - Municipio { - ibge_code: 4321907, - name: "Três Passos", - state: State::RS, - }, - Municipio { - ibge_code: 4321808, - name: "Três de Maio", - state: State::RS, - }, - Municipio { - ibge_code: 4322103, - name: "Tucunduva", - state: State::RS, - }, - Municipio { - ibge_code: 4322152, - name: "Tunas", - state: State::RS, - }, - Municipio { - ibge_code: 4322186, - name: "Tupanci do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4322202, - name: "Tupanciretã", - state: State::RS, - }, - Municipio { - ibge_code: 4322251, - name: "Tupandi", - state: State::RS, - }, - Municipio { - ibge_code: 4322301, - name: "Tuparendi", - state: State::RS, - }, - Municipio { - ibge_code: 4322327, - name: "Turuçu", - state: State::RS, - }, - Municipio { - ibge_code: 4322343, - name: "Ubiretama", - state: State::RS, - }, - Municipio { - ibge_code: 4322376, - name: "Unistalda", - state: State::RS, - }, - Municipio { - ibge_code: 4322350, - name: "União da Serra", - state: State::RS, - }, - Municipio { - ibge_code: 4322400, - name: "Uruguaiana", - state: State::RS, - }, - Municipio { - ibge_code: 4322509, - name: "Vacaria", - state: State::RS, - }, - Municipio { - ibge_code: 4322541, - name: "Vale Real", - state: State::RS, - }, - Municipio { - ibge_code: 4322525, - name: "Vale Verde", - state: State::RS, - }, - Municipio { - ibge_code: 4322533, - name: "Vale do Sol", - state: State::RS, - }, - Municipio { - ibge_code: 4322558, - name: "Vanini", - state: State::RS, - }, - Municipio { - ibge_code: 4322608, - name: "Venâncio Aires", - state: State::RS, - }, - Municipio { - ibge_code: 4322707, - name: "Vera Cruz", - state: State::RS, - }, - Municipio { - ibge_code: 4322806, - name: "Veranópolis", - state: State::RS, - }, - Municipio { - ibge_code: 4322855, - name: "Vespasiano Corrêa", - state: State::RS, - }, - Municipio { - ibge_code: 4322905, - name: "Viadutos", - state: State::RS, - }, - Municipio { - ibge_code: 4323002, - name: "Viamão", - state: State::RS, - }, - Municipio { - ibge_code: 4323101, - name: "Vicente Dutra", - state: State::RS, - }, - Municipio { - ibge_code: 4323200, - name: "Victor Graeff", - state: State::RS, - }, - Municipio { - ibge_code: 4323309, - name: "Vila Flores", - state: State::RS, - }, - Municipio { - ibge_code: 4323358, - name: "Vila Lângaro", - state: State::RS, - }, - Municipio { - ibge_code: 4323408, - name: "Vila Maria", - state: State::RS, - }, - Municipio { - ibge_code: 4323457, - name: "Vila Nova do Sul", - state: State::RS, - }, - Municipio { - ibge_code: 4323507, - name: "Vista Alegre", - state: State::RS, - }, - Municipio { - ibge_code: 4323606, - name: "Vista Alegre do Prata", - state: State::RS, - }, - Municipio { - ibge_code: 4323705, - name: "Vista Gaúcha", - state: State::RS, - }, - Municipio { - ibge_code: 4323754, - name: "Vitória das Missões", - state: State::RS, - }, - Municipio { - ibge_code: 4323770, - name: "Westfália", - state: State::RS, - }, - Municipio { - ibge_code: 4323804, - name: "Xangri-lá", - state: State::RS, - }, - Municipio { - ibge_code: 4300059, - name: "Água Santa", - state: State::RS, - }, - Municipio { - ibge_code: 4301552, - name: "Áurea", - state: State::RS, - }, - Municipio { - ibge_code: 4200051, - name: "Abdon Batista", - state: State::SC, - }, - Municipio { - ibge_code: 4200101, - name: "Abelardo Luz", - state: State::SC, - }, - Municipio { - ibge_code: 4200200, - name: "Agrolândia", - state: State::SC, - }, - Municipio { - ibge_code: 4200309, - name: "Agronômica", - state: State::SC, - }, - Municipio { - ibge_code: 4200705, - name: "Alfredo Wagner", - state: State::SC, - }, - Municipio { - ibge_code: 4200754, - name: "Alto Bela Vista", - state: State::SC, - }, - Municipio { - ibge_code: 4200804, - name: "Anchieta", - state: State::SC, - }, - Municipio { - ibge_code: 4200903, - name: "Angelina", - state: State::SC, - }, - Municipio { - ibge_code: 4201000, - name: "Anita Garibaldi", - state: State::SC, - }, - Municipio { - ibge_code: 4201109, - name: "Anitápolis", - state: State::SC, - }, - Municipio { - ibge_code: 4201208, - name: "Antônio Carlos", - state: State::SC, - }, - Municipio { - ibge_code: 4201257, - name: "Apiúna", - state: State::SC, - }, - Municipio { - ibge_code: 4201273, - name: "Arabutã", - state: State::SC, - }, - Municipio { - ibge_code: 4201307, - name: "Araquari", - state: State::SC, - }, - Municipio { - ibge_code: 4201406, - name: "Araranguá", - state: State::SC, - }, - Municipio { - ibge_code: 4201505, - name: "Armazém", - state: State::SC, - }, - Municipio { - ibge_code: 4201604, - name: "Arroio Trinta", - state: State::SC, - }, - Municipio { - ibge_code: 4201653, - name: "Arvoredo", - state: State::SC, - }, - Municipio { - ibge_code: 4201703, - name: "Ascurra", - state: State::SC, - }, - Municipio { - ibge_code: 4201802, - name: "Atalanta", - state: State::SC, - }, - Municipio { - ibge_code: 4201901, - name: "Aurora", - state: State::SC, - }, - Municipio { - ibge_code: 4201950, - name: "Balneário Arroio do Silva", - state: State::SC, - }, - Municipio { - ibge_code: 4202057, - name: "Balneário Barra do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4202008, - name: "Balneário Camboriú", - state: State::SC, - }, - Municipio { - ibge_code: 4202073, - name: "Balneário Gaivota", - state: State::SC, - }, - Municipio { - ibge_code: 4212809, - name: "Balneário Piçarras", - state: State::SC, - }, - Municipio { - ibge_code: 4220000, - name: "Balneário Rincão", - state: State::SC, - }, - Municipio { - ibge_code: 4202081, - name: "Bandeirante", - state: State::SC, - }, - Municipio { - ibge_code: 4202099, - name: "Barra Bonita", - state: State::SC, - }, - Municipio { - ibge_code: 4202107, - name: "Barra Velha", - state: State::SC, - }, - Municipio { - ibge_code: 4202131, - name: "Bela Vista do Toldo", - state: State::SC, - }, - Municipio { - ibge_code: 4202156, - name: "Belmonte", - state: State::SC, - }, - Municipio { - ibge_code: 4202206, - name: "Benedito Novo", - state: State::SC, - }, - Municipio { - ibge_code: 4202305, - name: "Biguaçu", - state: State::SC, - }, - Municipio { - ibge_code: 4202404, - name: "Blumenau", - state: State::SC, - }, - Municipio { - ibge_code: 4202438, - name: "Bocaina do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4202503, - name: "Bom Jardim da Serra", - state: State::SC, - }, - Municipio { - ibge_code: 4202537, - name: "Bom Jesus", - state: State::SC, - }, - Municipio { - ibge_code: 4202578, - name: "Bom Jesus do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4202602, - name: "Bom Retiro", - state: State::SC, - }, - Municipio { - ibge_code: 4202453, - name: "Bombinhas", - state: State::SC, - }, - Municipio { - ibge_code: 4202701, - name: "Botuverá", - state: State::SC, - }, - Municipio { - ibge_code: 4202800, - name: "Braço do Norte", - state: State::SC, - }, - Municipio { - ibge_code: 4202859, - name: "Braço do Trombudo", - state: State::SC, - }, - Municipio { - ibge_code: 4202875, - name: "Brunópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4202909, - name: "Brusque", - state: State::SC, - }, - Municipio { - ibge_code: 4203105, - name: "Caibi", - state: State::SC, - }, - Municipio { - ibge_code: 4203154, - name: "Calmon", - state: State::SC, - }, - Municipio { - ibge_code: 4203204, - name: "Camboriú", - state: State::SC, - }, - Municipio { - ibge_code: 4203303, - name: "Campo Alegre", - state: State::SC, - }, - Municipio { - ibge_code: 4203402, - name: "Campo Belo do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4203501, - name: "Campo Erê", - state: State::SC, - }, - Municipio { - ibge_code: 4203600, - name: "Campos Novos", - state: State::SC, - }, - Municipio { - ibge_code: 4203709, - name: "Canelinha", - state: State::SC, - }, - Municipio { - ibge_code: 4203808, - name: "Canoinhas", - state: State::SC, - }, - Municipio { - ibge_code: 4203907, - name: "Capinzal", - state: State::SC, - }, - Municipio { - ibge_code: 4203956, - name: "Capivari de Baixo", - state: State::SC, - }, - Municipio { - ibge_code: 4203253, - name: "Capão Alto", - state: State::SC, - }, - Municipio { - ibge_code: 4204004, - name: "Catanduvas", - state: State::SC, - }, - Municipio { - ibge_code: 4204103, - name: "Caxambu do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4203006, - name: "Caçador", - state: State::SC, - }, - Municipio { - ibge_code: 4204152, - name: "Celso Ramos", - state: State::SC, - }, - Municipio { - ibge_code: 4204178, - name: "Cerro Negro", - state: State::SC, - }, - Municipio { - ibge_code: 4204194, - name: "Chapadão do Lageado", - state: State::SC, - }, - Municipio { - ibge_code: 4204202, - name: "Chapecó", - state: State::SC, - }, - Municipio { - ibge_code: 4204251, - name: "Cocal do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4204301, - name: "Concórdia", - state: State::SC, - }, - Municipio { - ibge_code: 4204350, - name: "Cordilheira Alta", - state: State::SC, - }, - Municipio { - ibge_code: 4204400, - name: "Coronel Freitas", - state: State::SC, - }, - Municipio { - ibge_code: 4204459, - name: "Coronel Martins", - state: State::SC, - }, - Municipio { - ibge_code: 4204558, - name: "Correia Pinto", - state: State::SC, - }, - Municipio { - ibge_code: 4204509, - name: "Corupá", - state: State::SC, - }, - Municipio { - ibge_code: 4204608, - name: "Criciúma", - state: State::SC, - }, - Municipio { - ibge_code: 4204707, - name: "Cunha Porã", - state: State::SC, - }, - Municipio { - ibge_code: 4204756, - name: "Cunhataí", - state: State::SC, - }, - Municipio { - ibge_code: 4204806, - name: "Curitibanos", - state: State::SC, - }, - Municipio { - ibge_code: 4204905, - name: "Descanso", - state: State::SC, - }, - Municipio { - ibge_code: 4205001, - name: "Dionísio Cerqueira", - state: State::SC, - }, - Municipio { - ibge_code: 4205100, - name: "Dona Emma", - state: State::SC, - }, - Municipio { - ibge_code: 4205159, - name: "Doutor Pedrinho", - state: State::SC, - }, - Municipio { - ibge_code: 4205175, - name: "Entre Rios", - state: State::SC, - }, - Municipio { - ibge_code: 4205191, - name: "Ermo", - state: State::SC, - }, - Municipio { - ibge_code: 4205209, - name: "Erval Velho", - state: State::SC, - }, - Municipio { - ibge_code: 4205308, - name: "Faxinal dos Guedes", - state: State::SC, - }, - Municipio { - ibge_code: 4205357, - name: "Flor do Sertão", - state: State::SC, - }, - Municipio { - ibge_code: 4205407, - name: "Florianópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4205431, - name: "Formosa do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4205456, - name: "Forquilhinha", - state: State::SC, - }, - Municipio { - ibge_code: 4205506, - name: "Fraiburgo", - state: State::SC, - }, - Municipio { - ibge_code: 4205555, - name: "Frei Rogério", - state: State::SC, - }, - Municipio { - ibge_code: 4205605, - name: "Galvão", - state: State::SC, - }, - Municipio { - ibge_code: 4205704, - name: "Garopaba", - state: State::SC, - }, - Municipio { - ibge_code: 4205803, - name: "Garuva", - state: State::SC, - }, - Municipio { - ibge_code: 4205902, - name: "Gaspar", - state: State::SC, - }, - Municipio { - ibge_code: 4206009, - name: "Governador Celso Ramos", - state: State::SC, - }, - Municipio { - ibge_code: 4206207, - name: "Gravatal", - state: State::SC, - }, - Municipio { - ibge_code: 4206108, - name: "Grão-Pará", - state: State::SC, - }, - Municipio { - ibge_code: 4206306, - name: "Guabiruba", - state: State::SC, - }, - Municipio { - ibge_code: 4206405, - name: "Guaraciaba", - state: State::SC, - }, - Municipio { - ibge_code: 4206504, - name: "Guaramirim", - state: State::SC, - }, - Municipio { - ibge_code: 4206603, - name: "Guarujá do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4206652, - name: "Guatambú", - state: State::SC, - }, - Municipio { - ibge_code: 4206702, - name: "Herval d'Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4206751, - name: "Ibiam", - state: State::SC, - }, - Municipio { - ibge_code: 4206801, - name: "Ibicaré", - state: State::SC, - }, - Municipio { - ibge_code: 4206900, - name: "Ibirama", - state: State::SC, - }, - Municipio { - ibge_code: 4207106, - name: "Ilhota", - state: State::SC, - }, - Municipio { - ibge_code: 4207205, - name: "Imaruí", - state: State::SC, - }, - Municipio { - ibge_code: 4207304, - name: "Imbituba", - state: State::SC, - }, - Municipio { - ibge_code: 4207403, - name: "Imbuia", - state: State::SC, - }, - Municipio { - ibge_code: 4207502, - name: "Indaial", - state: State::SC, - }, - Municipio { - ibge_code: 4207577, - name: "Iomerê", - state: State::SC, - }, - Municipio { - ibge_code: 4207601, - name: "Ipira", - state: State::SC, - }, - Municipio { - ibge_code: 4207650, - name: "Iporã do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4207684, - name: "Ipuaçu", - state: State::SC, - }, - Municipio { - ibge_code: 4207700, - name: "Ipumirim", - state: State::SC, - }, - Municipio { - ibge_code: 4207759, - name: "Iraceminha", - state: State::SC, - }, - Municipio { - ibge_code: 4207809, - name: "Irani", - state: State::SC, - }, - Municipio { - ibge_code: 4207858, - name: "Irati", - state: State::SC, - }, - Municipio { - ibge_code: 4207908, - name: "Irineópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4208104, - name: "Itaiópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4208203, - name: "Itajaí", - state: State::SC, - }, - Municipio { - ibge_code: 4208302, - name: "Itapema", - state: State::SC, - }, - Municipio { - ibge_code: 4208401, - name: "Itapiranga", - state: State::SC, - }, - Municipio { - ibge_code: 4208450, - name: "Itapoá", - state: State::SC, - }, - Municipio { - ibge_code: 4208500, - name: "Ituporanga", - state: State::SC, - }, - Municipio { - ibge_code: 4208005, - name: "Itá", - state: State::SC, - }, - Municipio { - ibge_code: 4207007, - name: "Içara", - state: State::SC, - }, - Municipio { - ibge_code: 4208609, - name: "Jaborá", - state: State::SC, - }, - Municipio { - ibge_code: 4208708, - name: "Jacinto Machado", - state: State::SC, - }, - Municipio { - ibge_code: 4208807, - name: "Jaguaruna", - state: State::SC, - }, - Municipio { - ibge_code: 4208906, - name: "Jaraguá do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4208955, - name: "Jardinópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4209003, - name: "Joaçaba", - state: State::SC, - }, - Municipio { - ibge_code: 4209102, - name: "Joinville", - state: State::SC, - }, - Municipio { - ibge_code: 4209151, - name: "José Boiteux", - state: State::SC, - }, - Municipio { - ibge_code: 4209177, - name: "Jupiá", - state: State::SC, - }, - Municipio { - ibge_code: 4209201, - name: "Lacerdópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4209300, - name: "Lages", - state: State::SC, - }, - Municipio { - ibge_code: 4209409, - name: "Laguna", - state: State::SC, - }, - Municipio { - ibge_code: 4209458, - name: "Lajeado Grande", - state: State::SC, - }, - Municipio { - ibge_code: 4209508, - name: "Laurentino", - state: State::SC, - }, - Municipio { - ibge_code: 4209607, - name: "Lauro Müller", - state: State::SC, - }, - Municipio { - ibge_code: 4209706, - name: "Lebon Régis", - state: State::SC, - }, - Municipio { - ibge_code: 4209805, - name: "Leoberto Leal", - state: State::SC, - }, - Municipio { - ibge_code: 4209854, - name: "Lindóia do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4209904, - name: "Lontras", - state: State::SC, - }, - Municipio { - ibge_code: 4210001, - name: "Luiz Alves", - state: State::SC, - }, - Municipio { - ibge_code: 4210035, - name: "Luzerna", - state: State::SC, - }, - Municipio { - ibge_code: 4210050, - name: "Macieira", - state: State::SC, - }, - Municipio { - ibge_code: 4210100, - name: "Mafra", - state: State::SC, - }, - Municipio { - ibge_code: 4210209, - name: "Major Gercino", - state: State::SC, - }, - Municipio { - ibge_code: 4210308, - name: "Major Vieira", - state: State::SC, - }, - Municipio { - ibge_code: 4210407, - name: "Maracajá", - state: State::SC, - }, - Municipio { - ibge_code: 4210506, - name: "Maravilha", - state: State::SC, - }, - Municipio { - ibge_code: 4210555, - name: "Marema", - state: State::SC, - }, - Municipio { - ibge_code: 4210605, - name: "Massaranduba", - state: State::SC, - }, - Municipio { - ibge_code: 4210704, - name: "Matos Costa", - state: State::SC, - }, - Municipio { - ibge_code: 4210803, - name: "Meleiro", - state: State::SC, - }, - Municipio { - ibge_code: 4210852, - name: "Mirim Doce", - state: State::SC, - }, - Municipio { - ibge_code: 4210902, - name: "Modelo", - state: State::SC, - }, - Municipio { - ibge_code: 4211009, - name: "Mondaí", - state: State::SC, - }, - Municipio { - ibge_code: 4211058, - name: "Monte Carlo", - state: State::SC, - }, - Municipio { - ibge_code: 4211108, - name: "Monte Castelo", - state: State::SC, - }, - Municipio { - ibge_code: 4211256, - name: "Morro Grande", - state: State::SC, - }, - Municipio { - ibge_code: 4211207, - name: "Morro da Fumaça", - state: State::SC, - }, - Municipio { - ibge_code: 4211306, - name: "Navegantes", - state: State::SC, - }, - Municipio { - ibge_code: 4211405, - name: "Nova Erechim", - state: State::SC, - }, - Municipio { - ibge_code: 4211454, - name: "Nova Itaberaba", - state: State::SC, - }, - Municipio { - ibge_code: 4211504, - name: "Nova Trento", - state: State::SC, - }, - Municipio { - ibge_code: 4211603, - name: "Nova Veneza", - state: State::SC, - }, - Municipio { - ibge_code: 4211652, - name: "Novo Horizonte", - state: State::SC, - }, - Municipio { - ibge_code: 4211702, - name: "Orleans", - state: State::SC, - }, - Municipio { - ibge_code: 4211751, - name: "Otacílio Costa", - state: State::SC, - }, - Municipio { - ibge_code: 4211801, - name: "Ouro", - state: State::SC, - }, - Municipio { - ibge_code: 4211850, - name: "Ouro Verde", - state: State::SC, - }, - Municipio { - ibge_code: 4211876, - name: "Paial", - state: State::SC, - }, - Municipio { - ibge_code: 4211892, - name: "Painel", - state: State::SC, - }, - Municipio { - ibge_code: 4211900, - name: "Palhoça", - state: State::SC, - }, - Municipio { - ibge_code: 4212007, - name: "Palma Sola", - state: State::SC, - }, - Municipio { - ibge_code: 4212056, - name: "Palmeira", - state: State::SC, - }, - Municipio { - ibge_code: 4212106, - name: "Palmitos", - state: State::SC, - }, - Municipio { - ibge_code: 4212205, - name: "Papanduva", - state: State::SC, - }, - Municipio { - ibge_code: 4212239, - name: "Paraíso", - state: State::SC, - }, - Municipio { - ibge_code: 4212254, - name: "Passo de Torres", - state: State::SC, - }, - Municipio { - ibge_code: 4212270, - name: "Passos Maia", - state: State::SC, - }, - Municipio { - ibge_code: 4212304, - name: "Paulo Lopes", - state: State::SC, - }, - Municipio { - ibge_code: 4212403, - name: "Pedras Grandes", - state: State::SC, - }, - Municipio { - ibge_code: 4212502, - name: "Penha", - state: State::SC, - }, - Municipio { - ibge_code: 4212601, - name: "Peritiba", - state: State::SC, - }, - Municipio { - ibge_code: 4212650, - name: "Pescaria Brava", - state: State::SC, - }, - Municipio { - ibge_code: 4212700, - name: "Petrolândia", - state: State::SC, - }, - Municipio { - ibge_code: 4212908, - name: "Pinhalzinho", - state: State::SC, - }, - Municipio { - ibge_code: 4213005, - name: "Pinheiro Preto", - state: State::SC, - }, - Municipio { - ibge_code: 4213104, - name: "Piratuba", - state: State::SC, - }, - Municipio { - ibge_code: 4213153, - name: "Planalto Alegre", - state: State::SC, - }, - Municipio { - ibge_code: 4213203, - name: "Pomerode", - state: State::SC, - }, - Municipio { - ibge_code: 4213302, - name: "Ponte Alta", - state: State::SC, - }, - Municipio { - ibge_code: 4213351, - name: "Ponte Alta do Norte", - state: State::SC, - }, - Municipio { - ibge_code: 4213401, - name: "Ponte Serrada", - state: State::SC, - }, - Municipio { - ibge_code: 4213500, - name: "Porto Belo", - state: State::SC, - }, - Municipio { - ibge_code: 4213609, - name: "Porto União", - state: State::SC, - }, - Municipio { - ibge_code: 4213708, - name: "Pouso Redondo", - state: State::SC, - }, - Municipio { - ibge_code: 4213807, - name: "Praia Grande", - state: State::SC, - }, - Municipio { - ibge_code: 4213906, - name: "Presidente Castello Branco", - state: State::SC, - }, - Municipio { - ibge_code: 4214003, - name: "Presidente Getúlio", - state: State::SC, - }, - Municipio { - ibge_code: 4214102, - name: "Presidente Nereu", - state: State::SC, - }, - Municipio { - ibge_code: 4214151, - name: "Princesa", - state: State::SC, - }, - Municipio { - ibge_code: 4214201, - name: "Quilombo", - state: State::SC, - }, - Municipio { - ibge_code: 4214300, - name: "Rancho Queimado", - state: State::SC, - }, - Municipio { - ibge_code: 4214904, - name: "Rio Fortuna", - state: State::SC, - }, - Municipio { - ibge_code: 4215000, - name: "Rio Negrinho", - state: State::SC, - }, - Municipio { - ibge_code: 4215059, - name: "Rio Rufino", - state: State::SC, - }, - Municipio { - ibge_code: 4214409, - name: "Rio das Antas", - state: State::SC, - }, - Municipio { - ibge_code: 4214508, - name: "Rio do Campo", - state: State::SC, - }, - Municipio { - ibge_code: 4214607, - name: "Rio do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4214805, - name: "Rio do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4214706, - name: "Rio dos Cedros", - state: State::SC, - }, - Municipio { - ibge_code: 4215075, - name: "Riqueza", - state: State::SC, - }, - Municipio { - ibge_code: 4215109, - name: "Rodeio", - state: State::SC, - }, - Municipio { - ibge_code: 4215208, - name: "Romelândia", - state: State::SC, - }, - Municipio { - ibge_code: 4215307, - name: "Salete", - state: State::SC, - }, - Municipio { - ibge_code: 4215356, - name: "Saltinho", - state: State::SC, - }, - Municipio { - ibge_code: 4215406, - name: "Salto Veloso", - state: State::SC, - }, - Municipio { - ibge_code: 4215455, - name: "Sangão", - state: State::SC, - }, - Municipio { - ibge_code: 4215505, - name: "Santa Cecília", - state: State::SC, - }, - Municipio { - ibge_code: 4215554, - name: "Santa Helena", - state: State::SC, - }, - Municipio { - ibge_code: 4215604, - name: "Santa Rosa de Lima", - state: State::SC, - }, - Municipio { - ibge_code: 4215653, - name: "Santa Rosa do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4215679, - name: "Santa Terezinha", - state: State::SC, - }, - Municipio { - ibge_code: 4215687, - name: "Santa Terezinha do Progresso", - state: State::SC, - }, - Municipio { - ibge_code: 4215695, - name: "Santiago do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4215703, - name: "Santo Amaro da Imperatriz", - state: State::SC, - }, - Municipio { - ibge_code: 4217303, - name: "Saudades", - state: State::SC, - }, - Municipio { - ibge_code: 4217402, - name: "Schroeder", - state: State::SC, - }, - Municipio { - ibge_code: 4217501, - name: "Seara", - state: State::SC, - }, - Municipio { - ibge_code: 4217550, - name: "Serra Alta", - state: State::SC, - }, - Municipio { - ibge_code: 4217600, - name: "Siderópolis", - state: State::SC, - }, - Municipio { - ibge_code: 4217709, - name: "Sombrio", - state: State::SC, - }, - Municipio { - ibge_code: 4217758, - name: "Sul Brasil", - state: State::SC, - }, - Municipio { - ibge_code: 4215802, - name: "São Bento do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4215752, - name: "São Bernardino", - state: State::SC, - }, - Municipio { - ibge_code: 4215901, - name: "São Bonifácio", - state: State::SC, - }, - Municipio { - ibge_code: 4216008, - name: "São Carlos", - state: State::SC, - }, - Municipio { - ibge_code: 4216057, - name: "São Cristóvão do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4216107, - name: "São Domingos", - state: State::SC, - }, - Municipio { - ibge_code: 4216206, - name: "São Francisco do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4216503, - name: "São Joaquim", - state: State::SC, - }, - Municipio { - ibge_code: 4216602, - name: "São José", - state: State::SC, - }, - Municipio { - ibge_code: 4216701, - name: "São José do Cedro", - state: State::SC, - }, - Municipio { - ibge_code: 4216800, - name: "São José do Cerrito", - state: State::SC, - }, - Municipio { - ibge_code: 4216305, - name: "São João Batista", - state: State::SC, - }, - Municipio { - ibge_code: 4216354, - name: "São João do Itaperiú", - state: State::SC, - }, - Municipio { - ibge_code: 4216255, - name: "São João do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4216404, - name: "São João do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4216909, - name: "São Lourenço do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4217006, - name: "São Ludgero", - state: State::SC, - }, - Municipio { - ibge_code: 4217105, - name: "São Martinho", - state: State::SC, - }, - Municipio { - ibge_code: 4217154, - name: "São Miguel da Boa Vista", - state: State::SC, - }, - Municipio { - ibge_code: 4217204, - name: "São Miguel do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4217253, - name: "São Pedro de Alcântara", - state: State::SC, - }, - Municipio { - ibge_code: 4217808, - name: "Taió", - state: State::SC, - }, - Municipio { - ibge_code: 4217907, - name: "Tangará", - state: State::SC, - }, - Municipio { - ibge_code: 4217956, - name: "Tigrinhos", - state: State::SC, - }, - Municipio { - ibge_code: 4218004, - name: "Tijucas", - state: State::SC, - }, - Municipio { - ibge_code: 4218103, - name: "Timbé do Sul", - state: State::SC, - }, - Municipio { - ibge_code: 4218202, - name: "Timbó", - state: State::SC, - }, - Municipio { - ibge_code: 4218251, - name: "Timbó Grande", - state: State::SC, - }, - Municipio { - ibge_code: 4218350, - name: "Treviso", - state: State::SC, - }, - Municipio { - ibge_code: 4218509, - name: "Treze Tílias", - state: State::SC, - }, - Municipio { - ibge_code: 4218400, - name: "Treze de Maio", - state: State::SC, - }, - Municipio { - ibge_code: 4218608, - name: "Trombudo Central", - state: State::SC, - }, - Municipio { - ibge_code: 4218301, - name: "Três Barras", - state: State::SC, - }, - Municipio { - ibge_code: 4218707, - name: "Tubarão", - state: State::SC, - }, - Municipio { - ibge_code: 4218756, - name: "Tunápolis", - state: State::SC, - }, - Municipio { - ibge_code: 4218806, - name: "Turvo", - state: State::SC, - }, - Municipio { - ibge_code: 4218855, - name: "União do Oeste", - state: State::SC, - }, - Municipio { - ibge_code: 4218905, - name: "Urubici", - state: State::SC, - }, - Municipio { - ibge_code: 4218954, - name: "Urupema", - state: State::SC, - }, - Municipio { - ibge_code: 4219002, - name: "Urussanga", - state: State::SC, - }, - Municipio { - ibge_code: 4219150, - name: "Vargem", - state: State::SC, - }, - Municipio { - ibge_code: 4219176, - name: "Vargem Bonita", - state: State::SC, - }, - Municipio { - ibge_code: 4219101, - name: "Vargeão", - state: State::SC, - }, - Municipio { - ibge_code: 4219200, - name: "Vidal Ramos", - state: State::SC, - }, - Municipio { - ibge_code: 4219309, - name: "Videira", - state: State::SC, - }, - Municipio { - ibge_code: 4219358, - name: "Vitor Meireles", - state: State::SC, - }, - Municipio { - ibge_code: 4219408, - name: "Witmarsum", - state: State::SC, - }, - Municipio { - ibge_code: 4219507, - name: "Xanxerê", - state: State::SC, - }, - Municipio { - ibge_code: 4219606, - name: "Xavantina", - state: State::SC, - }, - Municipio { - ibge_code: 4219705, - name: "Xaxim", - state: State::SC, - }, - Municipio { - ibge_code: 4219853, - name: "Zortéa", - state: State::SC, - }, - Municipio { - ibge_code: 4200408, - name: "Água Doce", - state: State::SC, - }, - Municipio { - ibge_code: 4200556, - name: "Águas Frias", - state: State::SC, - }, - Municipio { - ibge_code: 4200606, - name: "Águas Mornas", - state: State::SC, - }, - Municipio { - ibge_code: 4200507, - name: "Águas de Chapecó", - state: State::SC, - }, - Municipio { - ibge_code: 2800100, - name: "Amparo do São Francisco", - state: State::SE, - }, - Municipio { - ibge_code: 2800209, - name: "Aquidabã", - state: State::SE, - }, - Municipio { - ibge_code: 2800308, - name: "Aracaju", - state: State::SE, - }, - Municipio { - ibge_code: 2800407, - name: "Arauá", - state: State::SE, - }, - Municipio { - ibge_code: 2800506, - name: "Areia Branca", - state: State::SE, - }, - Municipio { - ibge_code: 2800605, - name: "Barra dos Coqueiros", - state: State::SE, - }, - Municipio { - ibge_code: 2800670, - name: "Boquim", - state: State::SE, - }, - Municipio { - ibge_code: 2800704, - name: "Brejo Grande", - state: State::SE, - }, - Municipio { - ibge_code: 2801009, - name: "Campo do Brito", - state: State::SE, - }, - Municipio { - ibge_code: 2801108, - name: "Canhoba", - state: State::SE, - }, - Municipio { - ibge_code: 2801207, - name: "Canindé de São Francisco", - state: State::SE, - }, - Municipio { - ibge_code: 2801306, - name: "Capela", - state: State::SE, - }, - Municipio { - ibge_code: 2801405, - name: "Carira", - state: State::SE, - }, - Municipio { - ibge_code: 2801504, - name: "Carmópolis", - state: State::SE, - }, - Municipio { - ibge_code: 2801603, - name: "Cedro de São João", - state: State::SE, - }, - Municipio { - ibge_code: 2801702, - name: "Cristinápolis", - state: State::SE, - }, - Municipio { - ibge_code: 2801900, - name: "Cumbe", - state: State::SE, - }, - Municipio { - ibge_code: 2802007, - name: "Divina Pastora", - state: State::SE, - }, - Municipio { - ibge_code: 2802106, - name: "Estância", - state: State::SE, - }, - Municipio { - ibge_code: 2802205, - name: "Feira Nova", - state: State::SE, - }, - Municipio { - ibge_code: 2802304, - name: "Frei Paulo", - state: State::SE, - }, - Municipio { - ibge_code: 2802403, - name: "Gararu", - state: State::SE, - }, - Municipio { - ibge_code: 2802502, - name: "General Maynard", - state: State::SE, - }, - Municipio { - ibge_code: 2802601, - name: "Graccho Cardoso", - state: State::SE, - }, - Municipio { - ibge_code: 2802700, - name: "Ilha das Flores", - state: State::SE, - }, - Municipio { - ibge_code: 2802809, - name: "Indiaroba", - state: State::SE, - }, - Municipio { - ibge_code: 2802908, - name: "Itabaiana", - state: State::SE, - }, - Municipio { - ibge_code: 2803005, - name: "Itabaianinha", - state: State::SE, - }, - Municipio { - ibge_code: 2803104, - name: "Itabi", - state: State::SE, - }, - Municipio { - ibge_code: 2803203, - name: "Itaporanga d'Ajuda", - state: State::SE, - }, - Municipio { - ibge_code: 2803302, - name: "Japaratuba", - state: State::SE, - }, - Municipio { - ibge_code: 2803401, - name: "Japoatã", - state: State::SE, - }, - Municipio { - ibge_code: 2803500, - name: "Lagarto", - state: State::SE, - }, - Municipio { - ibge_code: 2803609, - name: "Laranjeiras", - state: State::SE, - }, - Municipio { - ibge_code: 2803708, - name: "Macambira", - state: State::SE, - }, - Municipio { - ibge_code: 2803807, - name: "Malhada dos Bois", - state: State::SE, - }, - Municipio { - ibge_code: 2803906, - name: "Malhador", - state: State::SE, - }, - Municipio { - ibge_code: 2804003, - name: "Maruim", - state: State::SE, - }, - Municipio { - ibge_code: 2804102, - name: "Moita Bonita", - state: State::SE, - }, - Municipio { - ibge_code: 2804201, - name: "Monte Alegre de Sergipe", - state: State::SE, - }, - Municipio { - ibge_code: 2804300, - name: "Muribeca", - state: State::SE, - }, - Municipio { - ibge_code: 2804409, - name: "Neópolis", - state: State::SE, - }, - Municipio { - ibge_code: 2804458, - name: "Nossa Senhora Aparecida", - state: State::SE, - }, - Municipio { - ibge_code: 2804508, - name: "Nossa Senhora da Glória", - state: State::SE, - }, - Municipio { - ibge_code: 2804607, - name: "Nossa Senhora das Dores", - state: State::SE, - }, - Municipio { - ibge_code: 2804706, - name: "Nossa Senhora de Lourdes", - state: State::SE, - }, - Municipio { - ibge_code: 2804805, - name: "Nossa Senhora do Socorro", - state: State::SE, - }, - Municipio { - ibge_code: 2804904, - name: "Pacatuba", - state: State::SE, - }, - Municipio { - ibge_code: 2805000, - name: "Pedra Mole", - state: State::SE, - }, - Municipio { - ibge_code: 2805109, - name: "Pedrinhas", - state: State::SE, - }, - Municipio { - ibge_code: 2805208, - name: "Pinhão", - state: State::SE, - }, - Municipio { - ibge_code: 2805307, - name: "Pirambu", - state: State::SE, - }, - Municipio { - ibge_code: 2805604, - name: "Porto da Folha", - state: State::SE, - }, - Municipio { - ibge_code: 2805406, - name: "Poço Redondo", - state: State::SE, - }, - Municipio { - ibge_code: 2805505, - name: "Poço Verde", - state: State::SE, - }, - Municipio { - ibge_code: 2805703, - name: "Propriá", - state: State::SE, - }, - Municipio { - ibge_code: 2805901, - name: "Riachuelo", - state: State::SE, - }, - Municipio { - ibge_code: 2805802, - name: "Riachão do Dantas", - state: State::SE, - }, - Municipio { - ibge_code: 2806008, - name: "Ribeirópolis", - state: State::SE, - }, - Municipio { - ibge_code: 2806107, - name: "Rosário do Catete", - state: State::SE, - }, - Municipio { - ibge_code: 2806206, - name: "Salgado", - state: State::SE, - }, - Municipio { - ibge_code: 2806305, - name: "Santa Luzia do Itanhy", - state: State::SE, - }, - Municipio { - ibge_code: 2806503, - name: "Santa Rosa de Lima", - state: State::SE, - }, - Municipio { - ibge_code: 2806404, - name: "Santana do São Francisco", - state: State::SE, - }, - Municipio { - ibge_code: 2806602, - name: "Santo Amaro das Brotas", - state: State::SE, - }, - Municipio { - ibge_code: 2807105, - name: "Simão Dias", - state: State::SE, - }, - Municipio { - ibge_code: 2807204, - name: "Siriri", - state: State::SE, - }, - Municipio { - ibge_code: 2806701, - name: "São Cristóvão", - state: State::SE, - }, - Municipio { - ibge_code: 2806800, - name: "São Domingos", - state: State::SE, - }, - Municipio { - ibge_code: 2806909, - name: "São Francisco", - state: State::SE, - }, - Municipio { - ibge_code: 2807006, - name: "São Miguel do Aleixo", - state: State::SE, - }, - Municipio { - ibge_code: 2807303, - name: "Telha", - state: State::SE, - }, - Municipio { - ibge_code: 2807402, - name: "Tobias Barreto", - state: State::SE, - }, - Municipio { - ibge_code: 2807501, - name: "Tomar do Geru", - state: State::SE, - }, - Municipio { - ibge_code: 2807600, - name: "Umbaúba", - state: State::SE, - }, - Municipio { - ibge_code: 3500105, - name: "Adamantina", - state: State::SP, - }, - Municipio { - ibge_code: 3500204, - name: "Adolfo", - state: State::SP, - }, - Municipio { - ibge_code: 3500303, - name: "Aguaí", - state: State::SP, - }, - Municipio { - ibge_code: 3500709, - name: "Agudos", - state: State::SP, - }, - Municipio { - ibge_code: 3500758, - name: "Alambari", - state: State::SP, - }, - Municipio { - ibge_code: 3500808, - name: "Alfredo Marcondes", - state: State::SP, - }, - Municipio { - ibge_code: 3500907, - name: "Altair", - state: State::SP, - }, - Municipio { - ibge_code: 3501004, - name: "Altinópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3501103, - name: "Alto Alegre", - state: State::SP, - }, - Municipio { - ibge_code: 3501152, - name: "Alumínio", - state: State::SP, - }, - Municipio { - ibge_code: 3501509, - name: "Alvinlândia", - state: State::SP, - }, - Municipio { - ibge_code: 3501608, - name: "Americana", - state: State::SP, - }, - Municipio { - ibge_code: 3501905, - name: "Amparo", - state: State::SP, - }, - Municipio { - ibge_code: 3501707, - name: "Américo Brasiliense", - state: State::SP, - }, - Municipio { - ibge_code: 3501806, - name: "Américo de Campos", - state: State::SP, - }, - Municipio { - ibge_code: 3502002, - name: "Analândia", - state: State::SP, - }, - Municipio { - ibge_code: 3502101, - name: "Andradina", - state: State::SP, - }, - Municipio { - ibge_code: 3502200, - name: "Angatuba", - state: State::SP, - }, - Municipio { - ibge_code: 3502309, - name: "Anhembi", - state: State::SP, - }, - Municipio { - ibge_code: 3502408, - name: "Anhumas", - state: State::SP, - }, - Municipio { - ibge_code: 3502507, - name: "Aparecida", - state: State::SP, - }, - Municipio { - ibge_code: 3502606, - name: "Aparecida d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3502705, - name: "Apiaí", - state: State::SP, - }, - Municipio { - ibge_code: 3503000, - name: "Aramina", - state: State::SP, - }, - Municipio { - ibge_code: 3503109, - name: "Arandu", - state: State::SP, - }, - Municipio { - ibge_code: 3503158, - name: "Arapeí", - state: State::SP, - }, - Municipio { - ibge_code: 3503208, - name: "Araraquara", - state: State::SP, - }, - Municipio { - ibge_code: 3503307, - name: "Araras", - state: State::SP, - }, - Municipio { - ibge_code: 3502754, - name: "Araçariguama", - state: State::SP, - }, - Municipio { - ibge_code: 3502804, - name: "Araçatuba", - state: State::SP, - }, - Municipio { - ibge_code: 3502903, - name: "Araçoiaba da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3503356, - name: "Arco-Íris", - state: State::SP, - }, - Municipio { - ibge_code: 3503406, - name: "Arealva", - state: State::SP, - }, - Municipio { - ibge_code: 3503505, - name: "Areias", - state: State::SP, - }, - Municipio { - ibge_code: 3503604, - name: "Areiópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3503703, - name: "Ariranha", - state: State::SP, - }, - Municipio { - ibge_code: 3503802, - name: "Artur Nogueira", - state: State::SP, - }, - Municipio { - ibge_code: 3503901, - name: "Arujá", - state: State::SP, - }, - Municipio { - ibge_code: 3503950, - name: "Aspásia", - state: State::SP, - }, - Municipio { - ibge_code: 3504008, - name: "Assis", - state: State::SP, - }, - Municipio { - ibge_code: 3504107, - name: "Atibaia", - state: State::SP, - }, - Municipio { - ibge_code: 3504206, - name: "Auriflama", - state: State::SP, - }, - Municipio { - ibge_code: 3504404, - name: "Avanhandava", - state: State::SP, - }, - Municipio { - ibge_code: 3504503, - name: "Avaré", - state: State::SP, - }, - Municipio { - ibge_code: 3504305, - name: "Avaí", - state: State::SP, - }, - Municipio { - ibge_code: 3504602, - name: "Bady Bassitt", - state: State::SP, - }, - Municipio { - ibge_code: 3504701, - name: "Balbinos", - state: State::SP, - }, - Municipio { - ibge_code: 3504909, - name: "Bananal", - state: State::SP, - }, - Municipio { - ibge_code: 3505104, - name: "Barbosa", - state: State::SP, - }, - Municipio { - ibge_code: 3505203, - name: "Bariri", - state: State::SP, - }, - Municipio { - ibge_code: 3505302, - name: "Barra Bonita", - state: State::SP, - }, - Municipio { - ibge_code: 3505351, - name: "Barra do Chapéu", - state: State::SP, - }, - Municipio { - ibge_code: 3505401, - name: "Barra do Turvo", - state: State::SP, - }, - Municipio { - ibge_code: 3505500, - name: "Barretos", - state: State::SP, - }, - Municipio { - ibge_code: 3505609, - name: "Barrinha", - state: State::SP, - }, - Municipio { - ibge_code: 3505708, - name: "Barueri", - state: State::SP, - }, - Municipio { - ibge_code: 3505005, - name: "Barão de Antonina", - state: State::SP, - }, - Municipio { - ibge_code: 3505807, - name: "Bastos", - state: State::SP, - }, - Municipio { - ibge_code: 3505906, - name: "Batatais", - state: State::SP, - }, - Municipio { - ibge_code: 3506003, - name: "Bauru", - state: State::SP, - }, - Municipio { - ibge_code: 3506102, - name: "Bebedouro", - state: State::SP, - }, - Municipio { - ibge_code: 3506201, - name: "Bento de Abreu", - state: State::SP, - }, - Municipio { - ibge_code: 3506300, - name: "Bernardino de Campos", - state: State::SP, - }, - Municipio { - ibge_code: 3506359, - name: "Bertioga", - state: State::SP, - }, - Municipio { - ibge_code: 3506409, - name: "Bilac", - state: State::SP, - }, - Municipio { - ibge_code: 3506508, - name: "Birigui", - state: State::SP, - }, - Municipio { - ibge_code: 3506607, - name: "Biritiba Mirim", - state: State::SP, - }, - Municipio { - ibge_code: 3506706, - name: "Boa Esperança do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3506805, - name: "Bocaina", - state: State::SP, - }, - Municipio { - ibge_code: 3506904, - name: "Bofete", - state: State::SP, - }, - Municipio { - ibge_code: 3507001, - name: "Boituva", - state: State::SP, - }, - Municipio { - ibge_code: 3507100, - name: "Bom Jesus dos Perdões", - state: State::SP, - }, - Municipio { - ibge_code: 3507159, - name: "Bom Sucesso de Itararé", - state: State::SP, - }, - Municipio { - ibge_code: 3507308, - name: "Boracéia", - state: State::SP, - }, - Municipio { - ibge_code: 3507407, - name: "Borborema", - state: State::SP, - }, - Municipio { - ibge_code: 3507456, - name: "Borebi", - state: State::SP, - }, - Municipio { - ibge_code: 3507209, - name: "Borá", - state: State::SP, - }, - Municipio { - ibge_code: 3507506, - name: "Botucatu", - state: State::SP, - }, - Municipio { - ibge_code: 3507605, - name: "Bragança Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3507704, - name: "Braúna", - state: State::SP, - }, - Municipio { - ibge_code: 3507753, - name: "Brejo Alegre", - state: State::SP, - }, - Municipio { - ibge_code: 3507803, - name: "Brodowski", - state: State::SP, - }, - Municipio { - ibge_code: 3507902, - name: "Brotas", - state: State::SP, - }, - Municipio { - ibge_code: 3508009, - name: "Buri", - state: State::SP, - }, - Municipio { - ibge_code: 3508108, - name: "Buritama", - state: State::SP, - }, - Municipio { - ibge_code: 3508207, - name: "Buritizal", - state: State::SP, - }, - Municipio { - ibge_code: 3504800, - name: "Bálsamo", - state: State::SP, - }, - Municipio { - ibge_code: 3508405, - name: "Cabreúva", - state: State::SP, - }, - Municipio { - ibge_code: 3508306, - name: "Cabrália Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3508603, - name: "Cachoeira Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3508702, - name: "Caconde", - state: State::SP, - }, - Municipio { - ibge_code: 3508801, - name: "Cafelândia", - state: State::SP, - }, - Municipio { - ibge_code: 3508900, - name: "Caiabu", - state: State::SP, - }, - Municipio { - ibge_code: 3509007, - name: "Caieiras", - state: State::SP, - }, - Municipio { - ibge_code: 3509106, - name: "Caiuá", - state: State::SP, - }, - Municipio { - ibge_code: 3509205, - name: "Cajamar", - state: State::SP, - }, - Municipio { - ibge_code: 3509254, - name: "Cajati", - state: State::SP, - }, - Municipio { - ibge_code: 3509304, - name: "Cajobi", - state: State::SP, - }, - Municipio { - ibge_code: 3509403, - name: "Cajuru", - state: State::SP, - }, - Municipio { - ibge_code: 3509452, - name: "Campina do Monte Alegre", - state: State::SP, - }, - Municipio { - ibge_code: 3509502, - name: "Campinas", - state: State::SP, - }, - Municipio { - ibge_code: 3509601, - name: "Campo Limpo Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3509809, - name: "Campos Novos Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3509700, - name: "Campos do Jordão", - state: State::SP, - }, - Municipio { - ibge_code: 3509908, - name: "Cananéia", - state: State::SP, - }, - Municipio { - ibge_code: 3509957, - name: "Canas", - state: State::SP, - }, - Municipio { - ibge_code: 3510153, - name: "Canitar", - state: State::SP, - }, - Municipio { - ibge_code: 3510302, - name: "Capela do Alto", - state: State::SP, - }, - Municipio { - ibge_code: 3510401, - name: "Capivari", - state: State::SP, - }, - Municipio { - ibge_code: 3510203, - name: "Capão Bonito", - state: State::SP, - }, - Municipio { - ibge_code: 3510500, - name: "Caraguatatuba", - state: State::SP, - }, - Municipio { - ibge_code: 3510609, - name: "Carapicuíba", - state: State::SP, - }, - Municipio { - ibge_code: 3510708, - name: "Cardoso", - state: State::SP, - }, - Municipio { - ibge_code: 3510807, - name: "Casa Branca", - state: State::SP, - }, - Municipio { - ibge_code: 3511003, - name: "Castilho", - state: State::SP, - }, - Municipio { - ibge_code: 3511102, - name: "Catanduva", - state: State::SP, - }, - Municipio { - ibge_code: 3511201, - name: "Catiguá", - state: State::SP, - }, - Municipio { - ibge_code: 3508504, - name: "Caçapava", - state: State::SP, - }, - Municipio { - ibge_code: 3511300, - name: "Cedral", - state: State::SP, - }, - Municipio { - ibge_code: 3511409, - name: "Cerqueira César", - state: State::SP, - }, - Municipio { - ibge_code: 3511508, - name: "Cerquilho", - state: State::SP, - }, - Municipio { - ibge_code: 3511607, - name: "Cesário Lange", - state: State::SP, - }, - Municipio { - ibge_code: 3511706, - name: "Charqueada", - state: State::SP, - }, - Municipio { - ibge_code: 3557204, - name: "Chavantes", - state: State::SP, - }, - Municipio { - ibge_code: 3511904, - name: "Clementina", - state: State::SP, - }, - Municipio { - ibge_code: 3512001, - name: "Colina", - state: State::SP, - }, - Municipio { - ibge_code: 3512100, - name: "Colômbia", - state: State::SP, - }, - Municipio { - ibge_code: 3512209, - name: "Conchal", - state: State::SP, - }, - Municipio { - ibge_code: 3512308, - name: "Conchas", - state: State::SP, - }, - Municipio { - ibge_code: 3512407, - name: "Cordeirópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3512506, - name: "Coroados", - state: State::SP, - }, - Municipio { - ibge_code: 3512605, - name: "Coronel Macedo", - state: State::SP, - }, - Municipio { - ibge_code: 3512704, - name: "Corumbataí", - state: State::SP, - }, - Municipio { - ibge_code: 3512902, - name: "Cosmorama", - state: State::SP, - }, - Municipio { - ibge_code: 3512803, - name: "Cosmópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3513009, - name: "Cotia", - state: State::SP, - }, - Municipio { - ibge_code: 3513108, - name: "Cravinhos", - state: State::SP, - }, - Municipio { - ibge_code: 3513207, - name: "Cristais Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3513405, - name: "Cruzeiro", - state: State::SP, - }, - Municipio { - ibge_code: 3513306, - name: "Cruzália", - state: State::SP, - }, - Municipio { - ibge_code: 3513504, - name: "Cubatão", - state: State::SP, - }, - Municipio { - ibge_code: 3513603, - name: "Cunha", - state: State::SP, - }, - Municipio { - ibge_code: 3510906, - name: "Cássia dos Coqueiros", - state: State::SP, - }, - Municipio { - ibge_code: 3510005, - name: "Cândido Mota", - state: State::SP, - }, - Municipio { - ibge_code: 3510104, - name: "Cândido Rodrigues", - state: State::SP, - }, - Municipio { - ibge_code: 3513702, - name: "Descalvado", - state: State::SP, - }, - Municipio { - ibge_code: 3513801, - name: "Diadema", - state: State::SP, - }, - Municipio { - ibge_code: 3513850, - name: "Dirce Reis", - state: State::SP, - }, - Municipio { - ibge_code: 3513900, - name: "Divinolândia", - state: State::SP, - }, - Municipio { - ibge_code: 3514007, - name: "Dobrada", - state: State::SP, - }, - Municipio { - ibge_code: 3514106, - name: "Dois Córregos", - state: State::SP, - }, - Municipio { - ibge_code: 3514205, - name: "Dolcinópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3514304, - name: "Dourado", - state: State::SP, - }, - Municipio { - ibge_code: 3514403, - name: "Dracena", - state: State::SP, - }, - Municipio { - ibge_code: 3514502, - name: "Duartina", - state: State::SP, - }, - Municipio { - ibge_code: 3514601, - name: "Dumont", - state: State::SP, - }, - Municipio { - ibge_code: 3514700, - name: "Echaporã", - state: State::SP, - }, - Municipio { - ibge_code: 3514809, - name: "Eldorado", - state: State::SP, - }, - Municipio { - ibge_code: 3514908, - name: "Elias Fausto", - state: State::SP, - }, - Municipio { - ibge_code: 3514924, - name: "Elisiário", - state: State::SP, - }, - Municipio { - ibge_code: 3514957, - name: "Embaúba", - state: State::SP, - }, - Municipio { - ibge_code: 3515004, - name: "Embu das Artes", - state: State::SP, - }, - Municipio { - ibge_code: 3515103, - name: "Embu-Guaçu", - state: State::SP, - }, - Municipio { - ibge_code: 3515129, - name: "Emilianópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3515152, - name: "Engenheiro Coelho", - state: State::SP, - }, - Municipio { - ibge_code: 3515186, - name: "Espírito Santo do Pinhal", - state: State::SP, - }, - Municipio { - ibge_code: 3515194, - name: "Espírito Santo do Turvo", - state: State::SP, - }, - Municipio { - ibge_code: 3557303, - name: "Estiva Gerbi", - state: State::SP, - }, - Municipio { - ibge_code: 3515202, - name: "Estrela d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3515301, - name: "Estrela do Norte", - state: State::SP, - }, - Municipio { - ibge_code: 3515350, - name: "Euclides da Cunha Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3515400, - name: "Fartura", - state: State::SP, - }, - Municipio { - ibge_code: 3515608, - name: "Fernando Prestes", - state: State::SP, - }, - Municipio { - ibge_code: 3515509, - name: "Fernandópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3515657, - name: "Fernão", - state: State::SP, - }, - Municipio { - ibge_code: 3515707, - name: "Ferraz de Vasconcelos", - state: State::SP, - }, - Municipio { - ibge_code: 3515806, - name: "Flora Rica", - state: State::SP, - }, - Municipio { - ibge_code: 3515905, - name: "Floreal", - state: State::SP, - }, - Municipio { - ibge_code: 3516101, - name: "Florínea", - state: State::SP, - }, - Municipio { - ibge_code: 3516002, - name: "Flórida Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3516200, - name: "Franca", - state: State::SP, - }, - Municipio { - ibge_code: 3516309, - name: "Francisco Morato", - state: State::SP, - }, - Municipio { - ibge_code: 3516408, - name: "Franco da Rocha", - state: State::SP, - }, - Municipio { - ibge_code: 3516507, - name: "Gabriel Monteiro", - state: State::SP, - }, - Municipio { - ibge_code: 3516705, - name: "Garça", - state: State::SP, - }, - Municipio { - ibge_code: 3516804, - name: "Gastão Vidigal", - state: State::SP, - }, - Municipio { - ibge_code: 3516853, - name: "Gavião Peixoto", - state: State::SP, - }, - Municipio { - ibge_code: 3516903, - name: "General Salgado", - state: State::SP, - }, - Municipio { - ibge_code: 3517000, - name: "Getulina", - state: State::SP, - }, - Municipio { - ibge_code: 3517109, - name: "Glicério", - state: State::SP, - }, - Municipio { - ibge_code: 3517307, - name: "Guaimbê", - state: State::SP, - }, - Municipio { - ibge_code: 3517208, - name: "Guaiçara", - state: State::SP, - }, - Municipio { - ibge_code: 3517604, - name: "Guapiara", - state: State::SP, - }, - Municipio { - ibge_code: 3517505, - name: "Guapiaçu", - state: State::SP, - }, - Municipio { - ibge_code: 3517901, - name: "Guaraci", - state: State::SP, - }, - Municipio { - ibge_code: 3518008, - name: "Guarani d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3518107, - name: "Guarantã", - state: State::SP, - }, - Municipio { - ibge_code: 3518206, - name: "Guararapes", - state: State::SP, - }, - Municipio { - ibge_code: 3518305, - name: "Guararema", - state: State::SP, - }, - Municipio { - ibge_code: 3518404, - name: "Guaratinguetá", - state: State::SP, - }, - Municipio { - ibge_code: 3517802, - name: "Guaraçaí", - state: State::SP, - }, - Municipio { - ibge_code: 3518503, - name: "Guareí", - state: State::SP, - }, - Municipio { - ibge_code: 3518602, - name: "Guariba", - state: State::SP, - }, - Municipio { - ibge_code: 3518701, - name: "Guarujá", - state: State::SP, - }, - Municipio { - ibge_code: 3518800, - name: "Guarulhos", - state: State::SP, - }, - Municipio { - ibge_code: 3517703, - name: "Guará", - state: State::SP, - }, - Municipio { - ibge_code: 3518859, - name: "Guatapará", - state: State::SP, - }, - Municipio { - ibge_code: 3517406, - name: "Guaíra", - state: State::SP, - }, - Municipio { - ibge_code: 3518909, - name: "Guzolândia", - state: State::SP, - }, - Municipio { - ibge_code: 3516606, - name: "Gália", - state: State::SP, - }, - Municipio { - ibge_code: 3519006, - name: "Herculândia", - state: State::SP, - }, - Municipio { - ibge_code: 3519055, - name: "Holambra", - state: State::SP, - }, - Municipio { - ibge_code: 3519071, - name: "Hortolândia", - state: State::SP, - }, - Municipio { - ibge_code: 3519105, - name: "Iacanga", - state: State::SP, - }, - Municipio { - ibge_code: 3519204, - name: "Iacri", - state: State::SP, - }, - Municipio { - ibge_code: 3519253, - name: "Iaras", - state: State::SP, - }, - Municipio { - ibge_code: 3519303, - name: "Ibaté", - state: State::SP, - }, - Municipio { - ibge_code: 3519501, - name: "Ibirarema", - state: State::SP, - }, - Municipio { - ibge_code: 3519402, - name: "Ibirá", - state: State::SP, - }, - Municipio { - ibge_code: 3519600, - name: "Ibitinga", - state: State::SP, - }, - Municipio { - ibge_code: 3519709, - name: "Ibiúna", - state: State::SP, - }, - Municipio { - ibge_code: 3519808, - name: "Icém", - state: State::SP, - }, - Municipio { - ibge_code: 3519907, - name: "Iepê", - state: State::SP, - }, - Municipio { - ibge_code: 3520103, - name: "Igarapava", - state: State::SP, - }, - Municipio { - ibge_code: 3520202, - name: "Igaratá", - state: State::SP, - }, - Municipio { - ibge_code: 3520004, - name: "Igaraçu do Tietê", - state: State::SP, - }, - Municipio { - ibge_code: 3520301, - name: "Iguape", - state: State::SP, - }, - Municipio { - ibge_code: 3520426, - name: "Ilha Comprida", - state: State::SP, - }, - Municipio { - ibge_code: 3520442, - name: "Ilha Solteira", - state: State::SP, - }, - Municipio { - ibge_code: 3520400, - name: "Ilhabela", - state: State::SP, - }, - Municipio { - ibge_code: 3520509, - name: "Indaiatuba", - state: State::SP, - }, - Municipio { - ibge_code: 3520608, - name: "Indiana", - state: State::SP, - }, - Municipio { - ibge_code: 3520707, - name: "Indiaporã", - state: State::SP, - }, - Municipio { - ibge_code: 3520806, - name: "Inúbia Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3520905, - name: "Ipaussu", - state: State::SP, - }, - Municipio { - ibge_code: 3521002, - name: "Iperó", - state: State::SP, - }, - Municipio { - ibge_code: 3521101, - name: "Ipeúna", - state: State::SP, - }, - Municipio { - ibge_code: 3521150, - name: "Ipiguá", - state: State::SP, - }, - Municipio { - ibge_code: 3521200, - name: "Iporanga", - state: State::SP, - }, - Municipio { - ibge_code: 3521309, - name: "Ipuã", - state: State::SP, - }, - Municipio { - ibge_code: 3521408, - name: "Iracemápolis", - state: State::SP, - }, - Municipio { - ibge_code: 3521606, - name: "Irapuru", - state: State::SP, - }, - Municipio { - ibge_code: 3521507, - name: "Irapuã", - state: State::SP, - }, - Municipio { - ibge_code: 3521705, - name: "Itaberá", - state: State::SP, - }, - Municipio { - ibge_code: 3521903, - name: "Itajobi", - state: State::SP, - }, - Municipio { - ibge_code: 3522000, - name: "Itaju", - state: State::SP, - }, - Municipio { - ibge_code: 3522109, - name: "Itanhaém", - state: State::SP, - }, - Municipio { - ibge_code: 3522158, - name: "Itaoca", - state: State::SP, - }, - Municipio { - ibge_code: 3522208, - name: "Itapecerica da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3522307, - name: "Itapetininga", - state: State::SP, - }, - Municipio { - ibge_code: 3522406, - name: "Itapeva", - state: State::SP, - }, - Municipio { - ibge_code: 3522505, - name: "Itapevi", - state: State::SP, - }, - Municipio { - ibge_code: 3522604, - name: "Itapira", - state: State::SP, - }, - Municipio { - ibge_code: 3522653, - name: "Itapirapuã Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3522802, - name: "Itaporanga", - state: State::SP, - }, - Municipio { - ibge_code: 3523008, - name: "Itapura", - state: State::SP, - }, - Municipio { - ibge_code: 3522901, - name: "Itapuí", - state: State::SP, - }, - Municipio { - ibge_code: 3523107, - name: "Itaquaquecetuba", - state: State::SP, - }, - Municipio { - ibge_code: 3523206, - name: "Itararé", - state: State::SP, - }, - Municipio { - ibge_code: 3523305, - name: "Itariri", - state: State::SP, - }, - Municipio { - ibge_code: 3523404, - name: "Itatiba", - state: State::SP, - }, - Municipio { - ibge_code: 3523503, - name: "Itatinga", - state: State::SP, - }, - Municipio { - ibge_code: 3521804, - name: "Itaí", - state: State::SP, - }, - Municipio { - ibge_code: 3523602, - name: "Itirapina", - state: State::SP, - }, - Municipio { - ibge_code: 3523701, - name: "Itirapuã", - state: State::SP, - }, - Municipio { - ibge_code: 3523800, - name: "Itobi", - state: State::SP, - }, - Municipio { - ibge_code: 3523909, - name: "Itu", - state: State::SP, - }, - Municipio { - ibge_code: 3524006, - name: "Itupeva", - state: State::SP, - }, - Municipio { - ibge_code: 3524105, - name: "Ituverava", - state: State::SP, - }, - Municipio { - ibge_code: 3522703, - name: "Itápolis", - state: State::SP, - }, - Municipio { - ibge_code: 3524204, - name: "Jaborandi", - state: State::SP, - }, - Municipio { - ibge_code: 3524303, - name: "Jaboticabal", - state: State::SP, - }, - Municipio { - ibge_code: 3524402, - name: "Jacareí", - state: State::SP, - }, - Municipio { - ibge_code: 3524501, - name: "Jaci", - state: State::SP, - }, - Municipio { - ibge_code: 3524600, - name: "Jacupiranga", - state: State::SP, - }, - Municipio { - ibge_code: 3524709, - name: "Jaguariúna", - state: State::SP, - }, - Municipio { - ibge_code: 3524808, - name: "Jales", - state: State::SP, - }, - Municipio { - ibge_code: 3524907, - name: "Jambeiro", - state: State::SP, - }, - Municipio { - ibge_code: 3525003, - name: "Jandira", - state: State::SP, - }, - Municipio { - ibge_code: 3525102, - name: "Jardinópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3525201, - name: "Jarinu", - state: State::SP, - }, - Municipio { - ibge_code: 3525300, - name: "Jaú", - state: State::SP, - }, - Municipio { - ibge_code: 3525409, - name: "Jeriquara", - state: State::SP, - }, - Municipio { - ibge_code: 3525508, - name: "Joanópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3525706, - name: "José Bonifácio", - state: State::SP, - }, - Municipio { - ibge_code: 3525607, - name: "João Ramalho", - state: State::SP, - }, - Municipio { - ibge_code: 3525854, - name: "Jumirim", - state: State::SP, - }, - Municipio { - ibge_code: 3525904, - name: "Jundiaí", - state: State::SP, - }, - Municipio { - ibge_code: 3526001, - name: "Junqueirópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3526209, - name: "Juquitiba", - state: State::SP, - }, - Municipio { - ibge_code: 3526100, - name: "Juquiá", - state: State::SP, - }, - Municipio { - ibge_code: 3525805, - name: "Júlio Mesquita", - state: State::SP, - }, - Municipio { - ibge_code: 3526308, - name: "Lagoinha", - state: State::SP, - }, - Municipio { - ibge_code: 3526407, - name: "Laranjal Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3526605, - name: "Lavrinhas", - state: State::SP, - }, - Municipio { - ibge_code: 3526506, - name: "Lavínia", - state: State::SP, - }, - Municipio { - ibge_code: 3526704, - name: "Leme", - state: State::SP, - }, - Municipio { - ibge_code: 3526803, - name: "Lençóis Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3526902, - name: "Limeira", - state: State::SP, - }, - Municipio { - ibge_code: 3527009, - name: "Lindóia", - state: State::SP, - }, - Municipio { - ibge_code: 3527108, - name: "Lins", - state: State::SP, - }, - Municipio { - ibge_code: 3527207, - name: "Lorena", - state: State::SP, - }, - Municipio { - ibge_code: 3527256, - name: "Lourdes", - state: State::SP, - }, - Municipio { - ibge_code: 3527306, - name: "Louveira", - state: State::SP, - }, - Municipio { - ibge_code: 3527504, - name: "Lucianópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3527405, - name: "Lucélia", - state: State::SP, - }, - Municipio { - ibge_code: 3527702, - name: "Luiziânia", - state: State::SP, - }, - Municipio { - ibge_code: 3527801, - name: "Lupércio", - state: State::SP, - }, - Municipio { - ibge_code: 3527900, - name: "Lutécia", - state: State::SP, - }, - Municipio { - ibge_code: 3527603, - name: "Luís Antônio", - state: State::SP, - }, - Municipio { - ibge_code: 3528007, - name: "Macatuba", - state: State::SP, - }, - Municipio { - ibge_code: 3528106, - name: "Macaubal", - state: State::SP, - }, - Municipio { - ibge_code: 3528205, - name: "Macedônia", - state: State::SP, - }, - Municipio { - ibge_code: 3528304, - name: "Magda", - state: State::SP, - }, - Municipio { - ibge_code: 3528403, - name: "Mairinque", - state: State::SP, - }, - Municipio { - ibge_code: 3528502, - name: "Mairiporã", - state: State::SP, - }, - Municipio { - ibge_code: 3528601, - name: "Manduri", - state: State::SP, - }, - Municipio { - ibge_code: 3528700, - name: "Marabá Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3528809, - name: "Maracaí", - state: State::SP, - }, - Municipio { - ibge_code: 3528858, - name: "Marapoama", - state: State::SP, - }, - Municipio { - ibge_code: 3529104, - name: "Marinópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3528908, - name: "Mariápolis", - state: State::SP, - }, - Municipio { - ibge_code: 3529203, - name: "Martinópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3529005, - name: "Marília", - state: State::SP, - }, - Municipio { - ibge_code: 3529302, - name: "Matão", - state: State::SP, - }, - Municipio { - ibge_code: 3529401, - name: "Mauá", - state: State::SP, - }, - Municipio { - ibge_code: 3529500, - name: "Mendonça", - state: State::SP, - }, - Municipio { - ibge_code: 3529609, - name: "Meridiano", - state: State::SP, - }, - Municipio { - ibge_code: 3529658, - name: "Mesópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3529708, - name: "Miguelópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3529807, - name: "Mineiros do Tietê", - state: State::SP, - }, - Municipio { - ibge_code: 3530003, - name: "Mira Estrela", - state: State::SP, - }, - Municipio { - ibge_code: 3529906, - name: "Miracatu", - state: State::SP, - }, - Municipio { - ibge_code: 3530102, - name: "Mirandópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3530201, - name: "Mirante do Paranapanema", - state: State::SP, - }, - Municipio { - ibge_code: 3530300, - name: "Mirassol", - state: State::SP, - }, - Municipio { - ibge_code: 3530409, - name: "Mirassolândia", - state: State::SP, - }, - Municipio { - ibge_code: 3530508, - name: "Mococa", - state: State::SP, - }, - Municipio { - ibge_code: 3530706, - name: "Mogi Guaçu", - state: State::SP, - }, - Municipio { - ibge_code: 3530805, - name: "Mogi Mirim", - state: State::SP, - }, - Municipio { - ibge_code: 3530607, - name: "Mogi das Cruzes", - state: State::SP, - }, - Municipio { - ibge_code: 3530904, - name: "Mombuca", - state: State::SP, - }, - Municipio { - ibge_code: 3531100, - name: "Mongaguá", - state: State::SP, - }, - Municipio { - ibge_code: 3531209, - name: "Monte Alegre do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3531308, - name: "Monte Alto", - state: State::SP, - }, - Municipio { - ibge_code: 3531407, - name: "Monte Aprazível", - state: State::SP, - }, - Municipio { - ibge_code: 3531506, - name: "Monte Azul Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3531605, - name: "Monte Castelo", - state: State::SP, - }, - Municipio { - ibge_code: 3531803, - name: "Monte Mor", - state: State::SP, - }, - Municipio { - ibge_code: 3531704, - name: "Monteiro Lobato", - state: State::SP, - }, - Municipio { - ibge_code: 3531001, - name: "Monções", - state: State::SP, - }, - Municipio { - ibge_code: 3531902, - name: "Morro Agudo", - state: State::SP, - }, - Municipio { - ibge_code: 3532009, - name: "Morungaba", - state: State::SP, - }, - Municipio { - ibge_code: 3532058, - name: "Motuca", - state: State::SP, - }, - Municipio { - ibge_code: 3532108, - name: "Murutinga do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3532157, - name: "Nantes", - state: State::SP, - }, - Municipio { - ibge_code: 3532207, - name: "Narandiba", - state: State::SP, - }, - Municipio { - ibge_code: 3532306, - name: "Natividade da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3532405, - name: "Nazaré Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3532504, - name: "Neves Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3532603, - name: "Nhandeara", - state: State::SP, - }, - Municipio { - ibge_code: 3532702, - name: "Nipoã", - state: State::SP, - }, - Municipio { - ibge_code: 3532801, - name: "Nova Aliança", - state: State::SP, - }, - Municipio { - ibge_code: 3532827, - name: "Nova Campina", - state: State::SP, - }, - Municipio { - ibge_code: 3532843, - name: "Nova Canaã Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3532868, - name: "Nova Castilho", - state: State::SP, - }, - Municipio { - ibge_code: 3532900, - name: "Nova Europa", - state: State::SP, - }, - Municipio { - ibge_code: 3533007, - name: "Nova Granada", - state: State::SP, - }, - Municipio { - ibge_code: 3533106, - name: "Nova Guataporanga", - state: State::SP, - }, - Municipio { - ibge_code: 3533205, - name: "Nova Independência", - state: State::SP, - }, - Municipio { - ibge_code: 3533304, - name: "Nova Luzitânia", - state: State::SP, - }, - Municipio { - ibge_code: 3533403, - name: "Nova Odessa", - state: State::SP, - }, - Municipio { - ibge_code: 3533254, - name: "Novais", - state: State::SP, - }, - Municipio { - ibge_code: 3533502, - name: "Novo Horizonte", - state: State::SP, - }, - Municipio { - ibge_code: 3533601, - name: "Nuporanga", - state: State::SP, - }, - Municipio { - ibge_code: 3533700, - name: "Ocauçu", - state: State::SP, - }, - Municipio { - ibge_code: 3533908, - name: "Olímpia", - state: State::SP, - }, - Municipio { - ibge_code: 3534005, - name: "Onda Verde", - state: State::SP, - }, - Municipio { - ibge_code: 3534104, - name: "Oriente", - state: State::SP, - }, - Municipio { - ibge_code: 3534203, - name: "Orindiúva", - state: State::SP, - }, - Municipio { - ibge_code: 3534302, - name: "Orlândia", - state: State::SP, - }, - Municipio { - ibge_code: 3534401, - name: "Osasco", - state: State::SP, - }, - Municipio { - ibge_code: 3534500, - name: "Oscar Bressane", - state: State::SP, - }, - Municipio { - ibge_code: 3534609, - name: "Osvaldo Cruz", - state: State::SP, - }, - Municipio { - ibge_code: 3534708, - name: "Ourinhos", - state: State::SP, - }, - Municipio { - ibge_code: 3534807, - name: "Ouro Verde", - state: State::SP, - }, - Municipio { - ibge_code: 3534757, - name: "Ouroeste", - state: State::SP, - }, - Municipio { - ibge_code: 3534906, - name: "Pacaembu", - state: State::SP, - }, - Municipio { - ibge_code: 3535002, - name: "Palestina", - state: State::SP, - }, - Municipio { - ibge_code: 3535101, - name: "Palmares Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3535200, - name: "Palmeira d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3535309, - name: "Palmital", - state: State::SP, - }, - Municipio { - ibge_code: 3535408, - name: "Panorama", - state: State::SP, - }, - Municipio { - ibge_code: 3535507, - name: "Paraguaçu Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3535606, - name: "Paraibuna", - state: State::SP, - }, - Municipio { - ibge_code: 3535804, - name: "Paranapanema", - state: State::SP, - }, - Municipio { - ibge_code: 3535903, - name: "Paranapuã", - state: State::SP, - }, - Municipio { - ibge_code: 3536000, - name: "Parapuã", - state: State::SP, - }, - Municipio { - ibge_code: 3535705, - name: "Paraíso", - state: State::SP, - }, - Municipio { - ibge_code: 3536109, - name: "Pardinho", - state: State::SP, - }, - Municipio { - ibge_code: 3536208, - name: "Pariquera-Açu", - state: State::SP, - }, - Municipio { - ibge_code: 3536257, - name: "Parisi", - state: State::SP, - }, - Municipio { - ibge_code: 3536307, - name: "Patrocínio Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3536406, - name: "Paulicéia", - state: State::SP, - }, - Municipio { - ibge_code: 3536570, - name: "Paulistânia", - state: State::SP, - }, - Municipio { - ibge_code: 3536604, - name: "Paulo de Faria", - state: State::SP, - }, - Municipio { - ibge_code: 3536505, - name: "Paulínia", - state: State::SP, - }, - Municipio { - ibge_code: 3536703, - name: "Pederneiras", - state: State::SP, - }, - Municipio { - ibge_code: 3536802, - name: "Pedra Bela", - state: State::SP, - }, - Municipio { - ibge_code: 3536901, - name: "Pedranópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3537008, - name: "Pedregulho", - state: State::SP, - }, - Municipio { - ibge_code: 3537107, - name: "Pedreira", - state: State::SP, - }, - Municipio { - ibge_code: 3537156, - name: "Pedrinhas Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3537206, - name: "Pedro de Toledo", - state: State::SP, - }, - Municipio { - ibge_code: 3537305, - name: "Penápolis", - state: State::SP, - }, - Municipio { - ibge_code: 3537404, - name: "Pereira Barreto", - state: State::SP, - }, - Municipio { - ibge_code: 3537503, - name: "Pereiras", - state: State::SP, - }, - Municipio { - ibge_code: 3537602, - name: "Peruíbe", - state: State::SP, - }, - Municipio { - ibge_code: 3537701, - name: "Piacatu", - state: State::SP, - }, - Municipio { - ibge_code: 3537800, - name: "Piedade", - state: State::SP, - }, - Municipio { - ibge_code: 3537909, - name: "Pilar do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3538006, - name: "Pindamonhangaba", - state: State::SP, - }, - Municipio { - ibge_code: 3538105, - name: "Pindorama", - state: State::SP, - }, - Municipio { - ibge_code: 3538204, - name: "Pinhalzinho", - state: State::SP, - }, - Municipio { - ibge_code: 3538303, - name: "Piquerobi", - state: State::SP, - }, - Municipio { - ibge_code: 3538501, - name: "Piquete", - state: State::SP, - }, - Municipio { - ibge_code: 3538600, - name: "Piracaia", - state: State::SP, - }, - Municipio { - ibge_code: 3538709, - name: "Piracicaba", - state: State::SP, - }, - Municipio { - ibge_code: 3538808, - name: "Piraju", - state: State::SP, - }, - Municipio { - ibge_code: 3538907, - name: "Pirajuí", - state: State::SP, - }, - Municipio { - ibge_code: 3539004, - name: "Pirangi", - state: State::SP, - }, - Municipio { - ibge_code: 3539103, - name: "Pirapora do Bom Jesus", - state: State::SP, - }, - Municipio { - ibge_code: 3539202, - name: "Pirapozinho", - state: State::SP, - }, - Municipio { - ibge_code: 3539301, - name: "Pirassununga", - state: State::SP, - }, - Municipio { - ibge_code: 3539400, - name: "Piratininga", - state: State::SP, - }, - Municipio { - ibge_code: 3539509, - name: "Pitangueiras", - state: State::SP, - }, - Municipio { - ibge_code: 3539608, - name: "Planalto", - state: State::SP, - }, - Municipio { - ibge_code: 3539707, - name: "Platina", - state: State::SP, - }, - Municipio { - ibge_code: 3539905, - name: "Poloni", - state: State::SP, - }, - Municipio { - ibge_code: 3540002, - name: "Pompéia", - state: State::SP, - }, - Municipio { - ibge_code: 3540101, - name: "Pongaí", - state: State::SP, - }, - Municipio { - ibge_code: 3540200, - name: "Pontal", - state: State::SP, - }, - Municipio { - ibge_code: 3540259, - name: "Pontalinda", - state: State::SP, - }, - Municipio { - ibge_code: 3540309, - name: "Pontes Gestal", - state: State::SP, - }, - Municipio { - ibge_code: 3540408, - name: "Populina", - state: State::SP, - }, - Municipio { - ibge_code: 3540507, - name: "Porangaba", - state: State::SP, - }, - Municipio { - ibge_code: 3540606, - name: "Porto Feliz", - state: State::SP, - }, - Municipio { - ibge_code: 3540705, - name: "Porto Ferreira", - state: State::SP, - }, - Municipio { - ibge_code: 3540754, - name: "Potim", - state: State::SP, - }, - Municipio { - ibge_code: 3540804, - name: "Potirendaba", - state: State::SP, - }, - Municipio { - ibge_code: 3539806, - name: "Poá", - state: State::SP, - }, - Municipio { - ibge_code: 3540853, - name: "Pracinha", - state: State::SP, - }, - Municipio { - ibge_code: 3540903, - name: "Pradópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3541000, - name: "Praia Grande", - state: State::SP, - }, - Municipio { - ibge_code: 3541059, - name: "Pratânia", - state: State::SP, - }, - Municipio { - ibge_code: 3541109, - name: "Presidente Alves", - state: State::SP, - }, - Municipio { - ibge_code: 3541208, - name: "Presidente Bernardes", - state: State::SP, - }, - Municipio { - ibge_code: 3541307, - name: "Presidente Epitácio", - state: State::SP, - }, - Municipio { - ibge_code: 3541406, - name: "Presidente Prudente", - state: State::SP, - }, - Municipio { - ibge_code: 3541505, - name: "Presidente Venceslau", - state: State::SP, - }, - Municipio { - ibge_code: 3541604, - name: "Promissão", - state: State::SP, - }, - Municipio { - ibge_code: 3541653, - name: "Quadra", - state: State::SP, - }, - Municipio { - ibge_code: 3541703, - name: "Quatá", - state: State::SP, - }, - Municipio { - ibge_code: 3541802, - name: "Queiroz", - state: State::SP, - }, - Municipio { - ibge_code: 3541901, - name: "Queluz", - state: State::SP, - }, - Municipio { - ibge_code: 3542008, - name: "Quintana", - state: State::SP, - }, - Municipio { - ibge_code: 3542107, - name: "Rafard", - state: State::SP, - }, - Municipio { - ibge_code: 3542206, - name: "Rancharia", - state: State::SP, - }, - Municipio { - ibge_code: 3542305, - name: "Redenção da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3542404, - name: "Regente Feijó", - state: State::SP, - }, - Municipio { - ibge_code: 3542503, - name: "Reginópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3542602, - name: "Registro", - state: State::SP, - }, - Municipio { - ibge_code: 3542701, - name: "Restinga", - state: State::SP, - }, - Municipio { - ibge_code: 3542800, - name: "Ribeira", - state: State::SP, - }, - Municipio { - ibge_code: 3542909, - name: "Ribeirão Bonito", - state: State::SP, - }, - Municipio { - ibge_code: 3543006, - name: "Ribeirão Branco", - state: State::SP, - }, - Municipio { - ibge_code: 3543105, - name: "Ribeirão Corrente", - state: State::SP, - }, - Municipio { - ibge_code: 3543253, - name: "Ribeirão Grande", - state: State::SP, - }, - Municipio { - ibge_code: 3543303, - name: "Ribeirão Pires", - state: State::SP, - }, - Municipio { - ibge_code: 3543402, - name: "Ribeirão Preto", - state: State::SP, - }, - Municipio { - ibge_code: 3543204, - name: "Ribeirão do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3543238, - name: "Ribeirão dos Índios", - state: State::SP, - }, - Municipio { - ibge_code: 3543600, - name: "Rifaina", - state: State::SP, - }, - Municipio { - ibge_code: 3543709, - name: "Rincão", - state: State::SP, - }, - Municipio { - ibge_code: 3543808, - name: "Rinópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3543907, - name: "Rio Claro", - state: State::SP, - }, - Municipio { - ibge_code: 3544103, - name: "Rio Grande da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3544004, - name: "Rio das Pedras", - state: State::SP, - }, - Municipio { - ibge_code: 3544202, - name: "Riolândia", - state: State::SP, - }, - Municipio { - ibge_code: 3543501, - name: "Riversul", - state: State::SP, - }, - Municipio { - ibge_code: 3544251, - name: "Rosana", - state: State::SP, - }, - Municipio { - ibge_code: 3544301, - name: "Roseira", - state: State::SP, - }, - Municipio { - ibge_code: 3544509, - name: "Rubinéia", - state: State::SP, - }, - Municipio { - ibge_code: 3544400, - name: "Rubiácea", - state: State::SP, - }, - Municipio { - ibge_code: 3544608, - name: "Sabino", - state: State::SP, - }, - Municipio { - ibge_code: 3544707, - name: "Sagres", - state: State::SP, - }, - Municipio { - ibge_code: 3544806, - name: "Sales", - state: State::SP, - }, - Municipio { - ibge_code: 3544905, - name: "Sales Oliveira", - state: State::SP, - }, - Municipio { - ibge_code: 3545001, - name: "Salesópolis", - state: State::SP, - }, - Municipio { - ibge_code: 3545100, - name: "Salmourão", - state: State::SP, - }, - Municipio { - ibge_code: 3545159, - name: "Saltinho", - state: State::SP, - }, - Municipio { - ibge_code: 3545209, - name: "Salto", - state: State::SP, - }, - Municipio { - ibge_code: 3545407, - name: "Salto Grande", - state: State::SP, - }, - Municipio { - ibge_code: 3545308, - name: "Salto de Pirapora", - state: State::SP, - }, - Municipio { - ibge_code: 3545506, - name: "Sandovalina", - state: State::SP, - }, - Municipio { - ibge_code: 3545605, - name: "Santa Adélia", - state: State::SP, - }, - Municipio { - ibge_code: 3545704, - name: "Santa Albertina", - state: State::SP, - }, - Municipio { - ibge_code: 3546009, - name: "Santa Branca", - state: State::SP, - }, - Municipio { - ibge_code: 3545803, - name: "Santa Bárbara d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3546108, - name: "Santa Clara d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3546207, - name: "Santa Cruz da Conceição", - state: State::SP, - }, - Municipio { - ibge_code: 3546256, - name: "Santa Cruz da Esperança", - state: State::SP, - }, - Municipio { - ibge_code: 3546306, - name: "Santa Cruz das Palmeiras", - state: State::SP, - }, - Municipio { - ibge_code: 3546405, - name: "Santa Cruz do Rio Pardo", - state: State::SP, - }, - Municipio { - ibge_code: 3546504, - name: "Santa Ernestina", - state: State::SP, - }, - Municipio { - ibge_code: 3546603, - name: "Santa Fé do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3546702, - name: "Santa Gertrudes", - state: State::SP, - }, - Municipio { - ibge_code: 3546801, - name: "Santa Isabel", - state: State::SP, - }, - Municipio { - ibge_code: 3546900, - name: "Santa Lúcia", - state: State::SP, - }, - Municipio { - ibge_code: 3547007, - name: "Santa Maria da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3547106, - name: "Santa Mercedes", - state: State::SP, - }, - Municipio { - ibge_code: 3547403, - name: "Santa Rita d'Oeste", - state: State::SP, - }, - Municipio { - ibge_code: 3547502, - name: "Santa Rita do Passa Quatro", - state: State::SP, - }, - Municipio { - ibge_code: 3547601, - name: "Santa Rosa de Viterbo", - state: State::SP, - }, - Municipio { - ibge_code: 3547650, - name: "Santa Salete", - state: State::SP, - }, - Municipio { - ibge_code: 3547205, - name: "Santana da Ponte Pensa", - state: State::SP, - }, - Municipio { - ibge_code: 3547304, - name: "Santana de Parnaíba", - state: State::SP, - }, - Municipio { - ibge_code: 3547700, - name: "Santo Anastácio", - state: State::SP, - }, - Municipio { - ibge_code: 3547809, - name: "Santo André", - state: State::SP, - }, - Municipio { - ibge_code: 3547908, - name: "Santo Antônio da Alegria", - state: State::SP, - }, - Municipio { - ibge_code: 3548005, - name: "Santo Antônio de Posse", - state: State::SP, - }, - Municipio { - ibge_code: 3548054, - name: "Santo Antônio do Aracanguá", - state: State::SP, - }, - Municipio { - ibge_code: 3548104, - name: "Santo Antônio do Jardim", - state: State::SP, - }, - Municipio { - ibge_code: 3548203, - name: "Santo Antônio do Pinhal", - state: State::SP, - }, - Municipio { - ibge_code: 3548302, - name: "Santo Expedito", - state: State::SP, - }, - Municipio { - ibge_code: 3548500, - name: "Santos", - state: State::SP, - }, - Municipio { - ibge_code: 3548401, - name: "Santópolis do Aguapeí", - state: State::SP, - }, - Municipio { - ibge_code: 3551108, - name: "Sarapuí", - state: State::SP, - }, - Municipio { - ibge_code: 3551207, - name: "Sarutaiá", - state: State::SP, - }, - Municipio { - ibge_code: 3551306, - name: "Sebastianópolis do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3551405, - name: "Serra Azul", - state: State::SP, - }, - Municipio { - ibge_code: 3551603, - name: "Serra Negra", - state: State::SP, - }, - Municipio { - ibge_code: 3551504, - name: "Serrana", - state: State::SP, - }, - Municipio { - ibge_code: 3551702, - name: "Sertãozinho", - state: State::SP, - }, - Municipio { - ibge_code: 3551801, - name: "Sete Barras", - state: State::SP, - }, - Municipio { - ibge_code: 3551900, - name: "Severínia", - state: State::SP, - }, - Municipio { - ibge_code: 3552007, - name: "Silveiras", - state: State::SP, - }, - Municipio { - ibge_code: 3552106, - name: "Socorro", - state: State::SP, - }, - Municipio { - ibge_code: 3552205, - name: "Sorocaba", - state: State::SP, - }, - Municipio { - ibge_code: 3552304, - name: "Sud Mennucci", - state: State::SP, - }, - Municipio { - ibge_code: 3552403, - name: "Sumaré", - state: State::SP, - }, - Municipio { - ibge_code: 3552502, - name: "Suzano", - state: State::SP, - }, - Municipio { - ibge_code: 3552551, - name: "Suzanápolis", - state: State::SP, - }, - Municipio { - ibge_code: 3548609, - name: "São Bento do Sapucaí", - state: State::SP, - }, - Municipio { - ibge_code: 3548708, - name: "São Bernardo do Campo", - state: State::SP, - }, - Municipio { - ibge_code: 3548807, - name: "São Caetano do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3548906, - name: "São Carlos", - state: State::SP, - }, - Municipio { - ibge_code: 3549003, - name: "São Francisco", - state: State::SP, - }, - Municipio { - ibge_code: 3549409, - name: "São Joaquim da Barra", - state: State::SP, - }, - Municipio { - ibge_code: 3549508, - name: "São José da Bela Vista", - state: State::SP, - }, - Municipio { - ibge_code: 3549607, - name: "São José do Barreiro", - state: State::SP, - }, - Municipio { - ibge_code: 3549706, - name: "São José do Rio Pardo", - state: State::SP, - }, - Municipio { - ibge_code: 3549805, - name: "São José do Rio Preto", - state: State::SP, - }, - Municipio { - ibge_code: 3549904, - name: "São José dos Campos", - state: State::SP, - }, - Municipio { - ibge_code: 3549102, - name: "São João da Boa Vista", - state: State::SP, - }, - Municipio { - ibge_code: 3549201, - name: "São João das Duas Pontes", - state: State::SP, - }, - Municipio { - ibge_code: 3549250, - name: "São João de Iracema", - state: State::SP, - }, - Municipio { - ibge_code: 3549300, - name: "São João do Pau d'Alho", - state: State::SP, - }, - Municipio { - ibge_code: 3549953, - name: "São Lourenço da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3550001, - name: "São Luiz do Paraitinga", - state: State::SP, - }, - Municipio { - ibge_code: 3550100, - name: "São Manuel", - state: State::SP, - }, - Municipio { - ibge_code: 3550209, - name: "São Miguel Arcanjo", - state: State::SP, - }, - Municipio { - ibge_code: 3550308, - name: "São Paulo", - state: State::SP, - }, - Municipio { - ibge_code: 3550407, - name: "São Pedro", - state: State::SP, - }, - Municipio { - ibge_code: 3550506, - name: "São Pedro do Turvo", - state: State::SP, - }, - Municipio { - ibge_code: 3550605, - name: "São Roque", - state: State::SP, - }, - Municipio { - ibge_code: 3550704, - name: "São Sebastião", - state: State::SP, - }, - Municipio { - ibge_code: 3550803, - name: "São Sebastião da Grama", - state: State::SP, - }, - Municipio { - ibge_code: 3550902, - name: "São Simão", - state: State::SP, - }, - Municipio { - ibge_code: 3551009, - name: "São Vicente", - state: State::SP, - }, - Municipio { - ibge_code: 3552601, - name: "Tabapuã", - state: State::SP, - }, - Municipio { - ibge_code: 3552700, - name: "Tabatinga", - state: State::SP, - }, - Municipio { - ibge_code: 3552809, - name: "Taboão da Serra", - state: State::SP, - }, - Municipio { - ibge_code: 3552908, - name: "Taciba", - state: State::SP, - }, - Municipio { - ibge_code: 3553005, - name: "Taguaí", - state: State::SP, - }, - Municipio { - ibge_code: 3553104, - name: "Taiaçu", - state: State::SP, - }, - Municipio { - ibge_code: 3553203, - name: "Taiúva", - state: State::SP, - }, - Municipio { - ibge_code: 3553302, - name: "Tambaú", - state: State::SP, - }, - Municipio { - ibge_code: 3553401, - name: "Tanabi", - state: State::SP, - }, - Municipio { - ibge_code: 3553609, - name: "Tapiratiba", - state: State::SP, - }, - Municipio { - ibge_code: 3553500, - name: "Tapiraí", - state: State::SP, - }, - Municipio { - ibge_code: 3553658, - name: "Taquaral", - state: State::SP, - }, - Municipio { - ibge_code: 3553708, - name: "Taquaritinga", - state: State::SP, - }, - Municipio { - ibge_code: 3553807, - name: "Taquarituba", - state: State::SP, - }, - Municipio { - ibge_code: 3553856, - name: "Taquarivaí", - state: State::SP, - }, - Municipio { - ibge_code: 3553906, - name: "Tarabai", - state: State::SP, - }, - Municipio { - ibge_code: 3553955, - name: "Tarumã", - state: State::SP, - }, - Municipio { - ibge_code: 3554003, - name: "Tatuí", - state: State::SP, - }, - Municipio { - ibge_code: 3554102, - name: "Taubaté", - state: State::SP, - }, - Municipio { - ibge_code: 3554201, - name: "Tejupá", - state: State::SP, - }, - Municipio { - ibge_code: 3554300, - name: "Teodoro Sampaio", - state: State::SP, - }, - Municipio { - ibge_code: 3554409, - name: "Terra Roxa", - state: State::SP, - }, - Municipio { - ibge_code: 3554508, - name: "Tietê", - state: State::SP, - }, - Municipio { - ibge_code: 3554607, - name: "Timburi", - state: State::SP, - }, - Municipio { - ibge_code: 3554656, - name: "Torre de Pedra", - state: State::SP, - }, - Municipio { - ibge_code: 3554706, - name: "Torrinha", - state: State::SP, - }, - Municipio { - ibge_code: 3554755, - name: "Trabiju", - state: State::SP, - }, - Municipio { - ibge_code: 3554805, - name: "Tremembé", - state: State::SP, - }, - Municipio { - ibge_code: 3554904, - name: "Três Fronteiras", - state: State::SP, - }, - Municipio { - ibge_code: 3554953, - name: "Tuiuti", - state: State::SP, - }, - Municipio { - ibge_code: 3555109, - name: "Tupi Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3555000, - name: "Tupã", - state: State::SP, - }, - Municipio { - ibge_code: 3555208, - name: "Turiúba", - state: State::SP, - }, - Municipio { - ibge_code: 3555307, - name: "Turmalina", - state: State::SP, - }, - Municipio { - ibge_code: 3555356, - name: "Ubarana", - state: State::SP, - }, - Municipio { - ibge_code: 3555406, - name: "Ubatuba", - state: State::SP, - }, - Municipio { - ibge_code: 3555505, - name: "Ubirajara", - state: State::SP, - }, - Municipio { - ibge_code: 3555604, - name: "Uchoa", - state: State::SP, - }, - Municipio { - ibge_code: 3555703, - name: "União Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3555901, - name: "Uru", - state: State::SP, - }, - Municipio { - ibge_code: 3556008, - name: "Urupês", - state: State::SP, - }, - Municipio { - ibge_code: 3555802, - name: "Urânia", - state: State::SP, - }, - Municipio { - ibge_code: 3556107, - name: "Valentim Gentil", - state: State::SP, - }, - Municipio { - ibge_code: 3556206, - name: "Valinhos", - state: State::SP, - }, - Municipio { - ibge_code: 3556305, - name: "Valparaíso", - state: State::SP, - }, - Municipio { - ibge_code: 3556354, - name: "Vargem", - state: State::SP, - }, - Municipio { - ibge_code: 3556453, - name: "Vargem Grande Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3556404, - name: "Vargem Grande do Sul", - state: State::SP, - }, - Municipio { - ibge_code: 3556602, - name: "Vera Cruz", - state: State::SP, - }, - Municipio { - ibge_code: 3556701, - name: "Vinhedo", - state: State::SP, - }, - Municipio { - ibge_code: 3556800, - name: "Viradouro", - state: State::SP, - }, - Municipio { - ibge_code: 3556909, - name: "Vista Alegre do Alto", - state: State::SP, - }, - Municipio { - ibge_code: 3556958, - name: "Vitória Brasil", - state: State::SP, - }, - Municipio { - ibge_code: 3557006, - name: "Votorantim", - state: State::SP, - }, - Municipio { - ibge_code: 3557105, - name: "Votuporanga", - state: State::SP, - }, - Municipio { - ibge_code: 3556503, - name: "Várzea Paulista", - state: State::SP, - }, - Municipio { - ibge_code: 3557154, - name: "Zacarias", - state: State::SP, - }, - Municipio { - ibge_code: 3500402, - name: "Águas da Prata", - state: State::SP, - }, - Municipio { - ibge_code: 3500501, - name: "Águas de Lindóia", - state: State::SP, - }, - Municipio { - ibge_code: 3500550, - name: "Águas de Santa Bárbara", - state: State::SP, - }, - Municipio { - ibge_code: 3500600, - name: "Águas de São Pedro", - state: State::SP, - }, - Municipio { - ibge_code: 3501202, - name: "Álvares Florence", - state: State::SP, - }, - Municipio { - ibge_code: 3501301, - name: "Álvares Machado", - state: State::SP, - }, - Municipio { - ibge_code: 3501400, - name: "Álvaro de Carvalho", - state: State::SP, - }, - Municipio { - ibge_code: 3533809, - name: "Óleo", - state: State::SP, - }, - Municipio { - ibge_code: 1700251, - name: "Abreulândia", - state: State::TO, - }, - Municipio { - ibge_code: 1700301, - name: "Aguiarnópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1700350, - name: "Aliança do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1700400, - name: "Almas", - state: State::TO, - }, - Municipio { - ibge_code: 1700707, - name: "Alvorada", - state: State::TO, - }, - Municipio { - ibge_code: 1701002, - name: "Ananás", - state: State::TO, - }, - Municipio { - ibge_code: 1701051, - name: "Angico", - state: State::TO, - }, - Municipio { - ibge_code: 1701101, - name: "Aparecida do Rio Negro", - state: State::TO, - }, - Municipio { - ibge_code: 1701309, - name: "Aragominas", - state: State::TO, - }, - Municipio { - ibge_code: 1701903, - name: "Araguacema", - state: State::TO, - }, - Municipio { - ibge_code: 1702158, - name: "Araguanã", - state: State::TO, - }, - Municipio { - ibge_code: 1702208, - name: "Araguatins", - state: State::TO, - }, - Municipio { - ibge_code: 1702000, - name: "Araguaçu", - state: State::TO, - }, - Municipio { - ibge_code: 1702109, - name: "Araguaína", - state: State::TO, - }, - Municipio { - ibge_code: 1702307, - name: "Arapoema", - state: State::TO, - }, - Municipio { - ibge_code: 1702406, - name: "Arraias", - state: State::TO, - }, - Municipio { - ibge_code: 1702554, - name: "Augustinópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1702703, - name: "Aurora do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1702901, - name: "Axixá do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1703008, - name: "Babaçulândia", - state: State::TO, - }, - Municipio { - ibge_code: 1703057, - name: "Bandeirantes do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1703073, - name: "Barra do Ouro", - state: State::TO, - }, - Municipio { - ibge_code: 1703107, - name: "Barrolândia", - state: State::TO, - }, - Municipio { - ibge_code: 1703206, - name: "Bernardo Sayão", - state: State::TO, - }, - Municipio { - ibge_code: 1703305, - name: "Bom Jesus do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1703602, - name: "Brasilândia do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1703701, - name: "Brejinho de Nazaré", - state: State::TO, - }, - Municipio { - ibge_code: 1703800, - name: "Buriti do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1703826, - name: "Cachoeirinha", - state: State::TO, - }, - Municipio { - ibge_code: 1703842, - name: "Campos Lindos", - state: State::TO, - }, - Municipio { - ibge_code: 1703867, - name: "Cariri do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1703883, - name: "Carmolândia", - state: State::TO, - }, - Municipio { - ibge_code: 1703891, - name: "Carrasco Bonito", - state: State::TO, - }, - Municipio { - ibge_code: 1703909, - name: "Caseara", - state: State::TO, - }, - Municipio { - ibge_code: 1704105, - name: "Centenário", - state: State::TO, - }, - Municipio { - ibge_code: 1705102, - name: "Chapada da Natividade", - state: State::TO, - }, - Municipio { - ibge_code: 1704600, - name: "Chapada de Areia", - state: State::TO, - }, - Municipio { - ibge_code: 1705508, - name: "Colinas do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1716703, - name: "Colméia", - state: State::TO, - }, - Municipio { - ibge_code: 1705557, - name: "Combinado", - state: State::TO, - }, - Municipio { - ibge_code: 1705607, - name: "Conceição do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1706001, - name: "Couto Magalhães", - state: State::TO, - }, - Municipio { - ibge_code: 1706100, - name: "Cristalândia", - state: State::TO, - }, - Municipio { - ibge_code: 1706258, - name: "Crixás do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1706506, - name: "Darcinópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1707009, - name: "Dianópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1707108, - name: "Divinópolis do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1707207, - name: "Dois Irmãos do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1707306, - name: "Dueré", - state: State::TO, - }, - Municipio { - ibge_code: 1707405, - name: "Esperantina", - state: State::TO, - }, - Municipio { - ibge_code: 1707652, - name: "Figueirópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1707702, - name: "Filadélfia", - state: State::TO, - }, - Municipio { - ibge_code: 1708205, - name: "Formoso do Araguaia", - state: State::TO, - }, - Municipio { - ibge_code: 1707553, - name: "Fátima", - state: State::TO, - }, - Municipio { - ibge_code: 1708304, - name: "Goianorte", - state: State::TO, - }, - Municipio { - ibge_code: 1709005, - name: "Goiatins", - state: State::TO, - }, - Municipio { - ibge_code: 1709302, - name: "Guaraí", - state: State::TO, - }, - Municipio { - ibge_code: 1709500, - name: "Gurupi", - state: State::TO, - }, - Municipio { - ibge_code: 1709807, - name: "Ipueiras", - state: State::TO, - }, - Municipio { - ibge_code: 1710508, - name: "Itacajá", - state: State::TO, - }, - Municipio { - ibge_code: 1710706, - name: "Itaguatins", - state: State::TO, - }, - Municipio { - ibge_code: 1710904, - name: "Itapiratins", - state: State::TO, - }, - Municipio { - ibge_code: 1711100, - name: "Itaporã do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1711506, - name: "Jaú do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1711803, - name: "Juarina", - state: State::TO, - }, - Municipio { - ibge_code: 1711902, - name: "Lagoa da Confusão", - state: State::TO, - }, - Municipio { - ibge_code: 1711951, - name: "Lagoa do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1712009, - name: "Lajeado", - state: State::TO, - }, - Municipio { - ibge_code: 1712157, - name: "Lavandeira", - state: State::TO, - }, - Municipio { - ibge_code: 1712405, - name: "Lizarda", - state: State::TO, - }, - Municipio { - ibge_code: 1712454, - name: "Luzinópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1712504, - name: "Marianópolis do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1712702, - name: "Mateiros", - state: State::TO, - }, - Municipio { - ibge_code: 1712801, - name: "Maurilândia do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1713205, - name: "Miracema do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1713304, - name: "Miranorte", - state: State::TO, - }, - Municipio { - ibge_code: 1713700, - name: "Monte Santo do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1713601, - name: "Monte do Carmo", - state: State::TO, - }, - Municipio { - ibge_code: 1713957, - name: "Muricilândia", - state: State::TO, - }, - Municipio { - ibge_code: 1714203, - name: "Natividade", - state: State::TO, - }, - Municipio { - ibge_code: 1714302, - name: "Nazaré", - state: State::TO, - }, - Municipio { - ibge_code: 1714880, - name: "Nova Olinda", - state: State::TO, - }, - Municipio { - ibge_code: 1715002, - name: "Nova Rosalândia", - state: State::TO, - }, - Municipio { - ibge_code: 1715101, - name: "Novo Acordo", - state: State::TO, - }, - Municipio { - ibge_code: 1715150, - name: "Novo Alegre", - state: State::TO, - }, - Municipio { - ibge_code: 1715259, - name: "Novo Jardim", - state: State::TO, - }, - Municipio { - ibge_code: 1715507, - name: "Oliveira de Fátima", - state: State::TO, - }, - Municipio { - ibge_code: 1721000, - name: "Palmas", - state: State::TO, - }, - Municipio { - ibge_code: 1715705, - name: "Palmeirante", - state: State::TO, - }, - Municipio { - ibge_code: 1713809, - name: "Palmeiras do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1715754, - name: "Palmeirópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1716208, - name: "Paranã", - state: State::TO, - }, - Municipio { - ibge_code: 1716109, - name: "Paraíso do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1716307, - name: "Pau D'Arco", - state: State::TO, - }, - Municipio { - ibge_code: 1716505, - name: "Pedro Afonso", - state: State::TO, - }, - Municipio { - ibge_code: 1716604, - name: "Peixe", - state: State::TO, - }, - Municipio { - ibge_code: 1716653, - name: "Pequizeiro", - state: State::TO, - }, - Municipio { - ibge_code: 1717008, - name: "Pindorama do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1717206, - name: "Piraquê", - state: State::TO, - }, - Municipio { - ibge_code: 1717503, - name: "Pium", - state: State::TO, - }, - Municipio { - ibge_code: 1717800, - name: "Ponte Alta do Bom Jesus", - state: State::TO, - }, - Municipio { - ibge_code: 1717909, - name: "Ponte Alta do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1718006, - name: "Porto Alegre do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1718204, - name: "Porto Nacional", - state: State::TO, - }, - Municipio { - ibge_code: 1718303, - name: "Praia Norte", - state: State::TO, - }, - Municipio { - ibge_code: 1718402, - name: "Presidente Kennedy", - state: State::TO, - }, - Municipio { - ibge_code: 1718451, - name: "Pugmil", - state: State::TO, - }, - Municipio { - ibge_code: 1718501, - name: "Recursolândia", - state: State::TO, - }, - Municipio { - ibge_code: 1718550, - name: "Riachinho", - state: State::TO, - }, - Municipio { - ibge_code: 1718758, - name: "Rio Sono", - state: State::TO, - }, - Municipio { - ibge_code: 1718659, - name: "Rio da Conceição", - state: State::TO, - }, - Municipio { - ibge_code: 1718709, - name: "Rio dos Bois", - state: State::TO, - }, - Municipio { - ibge_code: 1718808, - name: "Sampaio", - state: State::TO, - }, - Municipio { - ibge_code: 1718840, - name: "Sandolândia", - state: State::TO, - }, - Municipio { - ibge_code: 1718865, - name: "Santa Fé do Araguaia", - state: State::TO, - }, - Municipio { - ibge_code: 1718881, - name: "Santa Maria do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1718899, - name: "Santa Rita do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1718907, - name: "Santa Rosa do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1719004, - name: "Santa Tereza do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720002, - name: "Santa Terezinha do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720655, - name: "Silvanópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1720853, - name: "Sucupira", - state: State::TO, - }, - Municipio { - ibge_code: 1720101, - name: "São Bento do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720150, - name: "São Félix do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720200, - name: "São Miguel do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720259, - name: "São Salvador do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720309, - name: "São Sebastião do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720499, - name: "São Valério", - state: State::TO, - }, - Municipio { - ibge_code: 1720804, - name: "Sítio Novo do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1708254, - name: "Tabocão", - state: State::TO, - }, - Municipio { - ibge_code: 1720903, - name: "Taguatinga", - state: State::TO, - }, - Municipio { - ibge_code: 1720937, - name: "Taipas do Tocantins", - state: State::TO, - }, - Municipio { - ibge_code: 1720978, - name: "Talismã", - state: State::TO, - }, - Municipio { - ibge_code: 1721208, - name: "Tocantinópolis", - state: State::TO, - }, - Municipio { - ibge_code: 1721109, - name: "Tocantínia", - state: State::TO, - }, - Municipio { - ibge_code: 1721257, - name: "Tupirama", - state: State::TO, - }, - Municipio { - ibge_code: 1721307, - name: "Tupiratins", - state: State::TO, - }, - Municipio { - ibge_code: 1722081, - name: "Wanderlândia", - state: State::TO, - }, - Municipio { - ibge_code: 1722107, - name: "Xambioá", - state: State::TO, - }, -]; - /// IBGE codes of the 27 state capitals, ordered to match [`crate::uf::ALL`]. #[allow(clippy::unreadable_literal)] pub const CAPITAL_CODES: [u32; 27] = [ diff --git a/core/src/municipio/generated.rs b/core/src/municipio/generated.rs new file mode 100644 index 0000000..9b2ed84 --- /dev/null +++ b/core/src/municipio/generated.rs @@ -0,0 +1,27862 @@ +// @generated by //tools/municipio_gen; do not edit. +use super::Municipio; +use crate::uf::State; + +#[allow(clippy::unreadable_literal)] +pub const ALL: &[Municipio] = &[ + Municipio { + ibge_code: 1200013, + name: "Acrelândia", + state: State::AC, + }, + Municipio { + ibge_code: 1200054, + name: "Assis Brasil", + state: State::AC, + }, + Municipio { + ibge_code: 1200104, + name: "Brasiléia", + state: State::AC, + }, + Municipio { + ibge_code: 1200138, + name: "Bujari", + state: State::AC, + }, + Municipio { + ibge_code: 1200179, + name: "Capixaba", + state: State::AC, + }, + Municipio { + ibge_code: 1200203, + name: "Cruzeiro do Sul", + state: State::AC, + }, + Municipio { + ibge_code: 1200252, + name: "Epitaciolândia", + state: State::AC, + }, + Municipio { + ibge_code: 1200302, + name: "Feijó", + state: State::AC, + }, + Municipio { + ibge_code: 1200328, + name: "Jordão", + state: State::AC, + }, + Municipio { + ibge_code: 1200344, + name: "Manoel Urbano", + state: State::AC, + }, + Municipio { + ibge_code: 1200351, + name: "Marechal Thaumaturgo", + state: State::AC, + }, + Municipio { + ibge_code: 1200336, + name: "Mâncio Lima", + state: State::AC, + }, + Municipio { + ibge_code: 1200385, + name: "Plácido de Castro", + state: State::AC, + }, + Municipio { + ibge_code: 1200807, + name: "Porto Acre", + state: State::AC, + }, + Municipio { + ibge_code: 1200393, + name: "Porto Walter", + state: State::AC, + }, + Municipio { + ibge_code: 1200401, + name: "Rio Branco", + state: State::AC, + }, + Municipio { + ibge_code: 1200427, + name: "Rodrigues Alves", + state: State::AC, + }, + Municipio { + ibge_code: 1200435, + name: "Santa Rosa do Purus", + state: State::AC, + }, + Municipio { + ibge_code: 1200500, + name: "Sena Madureira", + state: State::AC, + }, + Municipio { + ibge_code: 1200450, + name: "Senador Guiomard", + state: State::AC, + }, + Municipio { + ibge_code: 1200609, + name: "Tarauacá", + state: State::AC, + }, + Municipio { + ibge_code: 1200708, + name: "Xapuri", + state: State::AC, + }, + Municipio { + ibge_code: 2700201, + name: "Anadia", + state: State::AL, + }, + Municipio { + ibge_code: 2700300, + name: "Arapiraca", + state: State::AL, + }, + Municipio { + ibge_code: 2700409, + name: "Atalaia", + state: State::AL, + }, + Municipio { + ibge_code: 2700508, + name: "Barra de Santo Antônio", + state: State::AL, + }, + Municipio { + ibge_code: 2700607, + name: "Barra de São Miguel", + state: State::AL, + }, + Municipio { + ibge_code: 2700706, + name: "Batalha", + state: State::AL, + }, + Municipio { + ibge_code: 2700904, + name: "Belo Monte", + state: State::AL, + }, + Municipio { + ibge_code: 2700805, + name: "Belém", + state: State::AL, + }, + Municipio { + ibge_code: 2701001, + name: "Boca da Mata", + state: State::AL, + }, + Municipio { + ibge_code: 2701100, + name: "Branquinha", + state: State::AL, + }, + Municipio { + ibge_code: 2701209, + name: "Cacimbinhas", + state: State::AL, + }, + Municipio { + ibge_code: 2701308, + name: "Cajueiro", + state: State::AL, + }, + Municipio { + ibge_code: 2701357, + name: "Campestre", + state: State::AL, + }, + Municipio { + ibge_code: 2701407, + name: "Campo Alegre", + state: State::AL, + }, + Municipio { + ibge_code: 2701506, + name: "Campo Grande", + state: State::AL, + }, + Municipio { + ibge_code: 2701605, + name: "Canapi", + state: State::AL, + }, + Municipio { + ibge_code: 2701704, + name: "Capela", + state: State::AL, + }, + Municipio { + ibge_code: 2701803, + name: "Carneiros", + state: State::AL, + }, + Municipio { + ibge_code: 2701902, + name: "Chã Preta", + state: State::AL, + }, + Municipio { + ibge_code: 2702009, + name: "Coité do Nóia", + state: State::AL, + }, + Municipio { + ibge_code: 2702108, + name: "Colônia Leopoldina", + state: State::AL, + }, + Municipio { + ibge_code: 2702207, + name: "Coqueiro Seco", + state: State::AL, + }, + Municipio { + ibge_code: 2702306, + name: "Coruripe", + state: State::AL, + }, + Municipio { + ibge_code: 2702355, + name: "Craíbas", + state: State::AL, + }, + Municipio { + ibge_code: 2702405, + name: "Delmiro Gouveia", + state: State::AL, + }, + Municipio { + ibge_code: 2702504, + name: "Dois Riachos", + state: State::AL, + }, + Municipio { + ibge_code: 2702553, + name: "Estrela de Alagoas", + state: State::AL, + }, + Municipio { + ibge_code: 2702603, + name: "Feira Grande", + state: State::AL, + }, + Municipio { + ibge_code: 2702702, + name: "Feliz Deserto", + state: State::AL, + }, + Municipio { + ibge_code: 2702801, + name: "Flexeiras", + state: State::AL, + }, + Municipio { + ibge_code: 2702900, + name: "Girau do Ponciano", + state: State::AL, + }, + Municipio { + ibge_code: 2703007, + name: "Ibateguara", + state: State::AL, + }, + Municipio { + ibge_code: 2703106, + name: "Igaci", + state: State::AL, + }, + Municipio { + ibge_code: 2703205, + name: "Igreja Nova", + state: State::AL, + }, + Municipio { + ibge_code: 2703304, + name: "Inhapi", + state: State::AL, + }, + Municipio { + ibge_code: 2703403, + name: "Jacaré dos Homens", + state: State::AL, + }, + Municipio { + ibge_code: 2703502, + name: "Jacuípe", + state: State::AL, + }, + Municipio { + ibge_code: 2703601, + name: "Japaratinga", + state: State::AL, + }, + Municipio { + ibge_code: 2703700, + name: "Jaramataia", + state: State::AL, + }, + Municipio { + ibge_code: 2703759, + name: "Jequiá da Praia", + state: State::AL, + }, + Municipio { + ibge_code: 2703809, + name: "Joaquim Gomes", + state: State::AL, + }, + Municipio { + ibge_code: 2703908, + name: "Jundiá", + state: State::AL, + }, + Municipio { + ibge_code: 2704005, + name: "Junqueiro", + state: State::AL, + }, + Municipio { + ibge_code: 2704104, + name: "Lagoa da Canoa", + state: State::AL, + }, + Municipio { + ibge_code: 2704203, + name: "Limoeiro de Anadia", + state: State::AL, + }, + Municipio { + ibge_code: 2704302, + name: "Maceió", + state: State::AL, + }, + Municipio { + ibge_code: 2704401, + name: "Major Isidoro", + state: State::AL, + }, + Municipio { + ibge_code: 2704906, + name: "Mar Vermelho", + state: State::AL, + }, + Municipio { + ibge_code: 2704500, + name: "Maragogi", + state: State::AL, + }, + Municipio { + ibge_code: 2704609, + name: "Maravilha", + state: State::AL, + }, + Municipio { + ibge_code: 2704708, + name: "Marechal Deodoro", + state: State::AL, + }, + Municipio { + ibge_code: 2704807, + name: "Maribondo", + state: State::AL, + }, + Municipio { + ibge_code: 2705002, + name: "Mata Grande", + state: State::AL, + }, + Municipio { + ibge_code: 2705101, + name: "Matriz de Camaragibe", + state: State::AL, + }, + Municipio { + ibge_code: 2705200, + name: "Messias", + state: State::AL, + }, + Municipio { + ibge_code: 2705309, + name: "Minador do Negrão", + state: State::AL, + }, + Municipio { + ibge_code: 2705408, + name: "Monteirópolis", + state: State::AL, + }, + Municipio { + ibge_code: 2705507, + name: "Murici", + state: State::AL, + }, + Municipio { + ibge_code: 2705606, + name: "Novo Lino", + state: State::AL, + }, + Municipio { + ibge_code: 2705903, + name: "Olho d'Água Grande", + state: State::AL, + }, + Municipio { + ibge_code: 2705705, + name: "Olho d'Água das Flores", + state: State::AL, + }, + Municipio { + ibge_code: 2705804, + name: "Olho d'Água do Casado", + state: State::AL, + }, + Municipio { + ibge_code: 2706000, + name: "Olivença", + state: State::AL, + }, + Municipio { + ibge_code: 2706109, + name: "Ouro Branco", + state: State::AL, + }, + Municipio { + ibge_code: 2706208, + name: "Palestina", + state: State::AL, + }, + Municipio { + ibge_code: 2706307, + name: "Palmeira dos Índios", + state: State::AL, + }, + Municipio { + ibge_code: 2706422, + name: "Pariconha", + state: State::AL, + }, + Municipio { + ibge_code: 2706448, + name: "Paripueira", + state: State::AL, + }, + Municipio { + ibge_code: 2706505, + name: "Passo de Camaragibe", + state: State::AL, + }, + Municipio { + ibge_code: 2706604, + name: "Paulo Jacinto", + state: State::AL, + }, + Municipio { + ibge_code: 2706703, + name: "Penedo", + state: State::AL, + }, + Municipio { + ibge_code: 2706802, + name: "Piaçabuçu", + state: State::AL, + }, + Municipio { + ibge_code: 2706901, + name: "Pilar", + state: State::AL, + }, + Municipio { + ibge_code: 2707008, + name: "Pindoba", + state: State::AL, + }, + Municipio { + ibge_code: 2707107, + name: "Piranhas", + state: State::AL, + }, + Municipio { + ibge_code: 2707305, + name: "Porto Calvo", + state: State::AL, + }, + Municipio { + ibge_code: 2707503, + name: "Porto Real do Colégio", + state: State::AL, + }, + Municipio { + ibge_code: 2707404, + name: "Porto de Pedras", + state: State::AL, + }, + Municipio { + ibge_code: 2707206, + name: "Poço das Trincheiras", + state: State::AL, + }, + Municipio { + ibge_code: 2706406, + name: "Pão de Açúcar", + state: State::AL, + }, + Municipio { + ibge_code: 2707602, + name: "Quebrangulo", + state: State::AL, + }, + Municipio { + ibge_code: 2707701, + name: "Rio Largo", + state: State::AL, + }, + Municipio { + ibge_code: 2707800, + name: "Roteiro", + state: State::AL, + }, + Municipio { + ibge_code: 2707909, + name: "Santa Luzia do Norte", + state: State::AL, + }, + Municipio { + ibge_code: 2708006, + name: "Santana do Ipanema", + state: State::AL, + }, + Municipio { + ibge_code: 2708105, + name: "Santana do Mundaú", + state: State::AL, + }, + Municipio { + ibge_code: 2708907, + name: "Satuba", + state: State::AL, + }, + Municipio { + ibge_code: 2708956, + name: "Senador Rui Palmeira", + state: State::AL, + }, + Municipio { + ibge_code: 2708204, + name: "São Brás", + state: State::AL, + }, + Municipio { + ibge_code: 2708303, + name: "São José da Laje", + state: State::AL, + }, + Municipio { + ibge_code: 2708402, + name: "São José da Tapera", + state: State::AL, + }, + Municipio { + ibge_code: 2708501, + name: "São Luís do Quitunde", + state: State::AL, + }, + Municipio { + ibge_code: 2708600, + name: "São Miguel dos Campos", + state: State::AL, + }, + Municipio { + ibge_code: 2708709, + name: "São Miguel dos Milagres", + state: State::AL, + }, + Municipio { + ibge_code: 2708808, + name: "São Sebastião", + state: State::AL, + }, + Municipio { + ibge_code: 2709004, + name: "Tanque d'Arca", + state: State::AL, + }, + Municipio { + ibge_code: 2709103, + name: "Taquarana", + state: State::AL, + }, + Municipio { + ibge_code: 2709152, + name: "Teotônio Vilela", + state: State::AL, + }, + Municipio { + ibge_code: 2709202, + name: "Traipu", + state: State::AL, + }, + Municipio { + ibge_code: 2709301, + name: "União dos Palmares", + state: State::AL, + }, + Municipio { + ibge_code: 2709400, + name: "Viçosa", + state: State::AL, + }, + Municipio { + ibge_code: 2700102, + name: "Água Branca", + state: State::AL, + }, + Municipio { + ibge_code: 1300029, + name: "Alvarães", + state: State::AM, + }, + Municipio { + ibge_code: 1300060, + name: "Amaturá", + state: State::AM, + }, + Municipio { + ibge_code: 1300086, + name: "Anamã", + state: State::AM, + }, + Municipio { + ibge_code: 1300102, + name: "Anori", + state: State::AM, + }, + Municipio { + ibge_code: 1300144, + name: "Apuí", + state: State::AM, + }, + Municipio { + ibge_code: 1300201, + name: "Atalaia do Norte", + state: State::AM, + }, + Municipio { + ibge_code: 1300300, + name: "Autazes", + state: State::AM, + }, + Municipio { + ibge_code: 1300409, + name: "Barcelos", + state: State::AM, + }, + Municipio { + ibge_code: 1300508, + name: "Barreirinha", + state: State::AM, + }, + Municipio { + ibge_code: 1300607, + name: "Benjamin Constant", + state: State::AM, + }, + Municipio { + ibge_code: 1300631, + name: "Beruri", + state: State::AM, + }, + Municipio { + ibge_code: 1300680, + name: "Boa Vista do Ramos", + state: State::AM, + }, + Municipio { + ibge_code: 1300706, + name: "Boca do Acre", + state: State::AM, + }, + Municipio { + ibge_code: 1300805, + name: "Borba", + state: State::AM, + }, + Municipio { + ibge_code: 1300839, + name: "Caapiranga", + state: State::AM, + }, + Municipio { + ibge_code: 1300904, + name: "Canutama", + state: State::AM, + }, + Municipio { + ibge_code: 1301001, + name: "Carauari", + state: State::AM, + }, + Municipio { + ibge_code: 1301100, + name: "Careiro", + state: State::AM, + }, + Municipio { + ibge_code: 1301159, + name: "Careiro da Várzea", + state: State::AM, + }, + Municipio { + ibge_code: 1301209, + name: "Coari", + state: State::AM, + }, + Municipio { + ibge_code: 1301308, + name: "Codajás", + state: State::AM, + }, + Municipio { + ibge_code: 1301407, + name: "Eirunepé", + state: State::AM, + }, + Municipio { + ibge_code: 1301506, + name: "Envira", + state: State::AM, + }, + Municipio { + ibge_code: 1301605, + name: "Fonte Boa", + state: State::AM, + }, + Municipio { + ibge_code: 1301654, + name: "Guajará", + state: State::AM, + }, + Municipio { + ibge_code: 1301704, + name: "Humaitá", + state: State::AM, + }, + Municipio { + ibge_code: 1301803, + name: "Ipixuna", + state: State::AM, + }, + Municipio { + ibge_code: 1301852, + name: "Iranduba", + state: State::AM, + }, + Municipio { + ibge_code: 1301902, + name: "Itacoatiara", + state: State::AM, + }, + Municipio { + ibge_code: 1301951, + name: "Itamarati", + state: State::AM, + }, + Municipio { + ibge_code: 1302009, + name: "Itapiranga", + state: State::AM, + }, + Municipio { + ibge_code: 1302108, + name: "Japurá", + state: State::AM, + }, + Municipio { + ibge_code: 1302207, + name: "Juruá", + state: State::AM, + }, + Municipio { + ibge_code: 1302306, + name: "Jutaí", + state: State::AM, + }, + Municipio { + ibge_code: 1302405, + name: "Lábrea", + state: State::AM, + }, + Municipio { + ibge_code: 1302504, + name: "Manacapuru", + state: State::AM, + }, + Municipio { + ibge_code: 1302553, + name: "Manaquiri", + state: State::AM, + }, + Municipio { + ibge_code: 1302603, + name: "Manaus", + state: State::AM, + }, + Municipio { + ibge_code: 1302702, + name: "Manicoré", + state: State::AM, + }, + Municipio { + ibge_code: 1302801, + name: "Maraã", + state: State::AM, + }, + Municipio { + ibge_code: 1302900, + name: "Maués", + state: State::AM, + }, + Municipio { + ibge_code: 1303007, + name: "Nhamundá", + state: State::AM, + }, + Municipio { + ibge_code: 1303106, + name: "Nova Olinda do Norte", + state: State::AM, + }, + Municipio { + ibge_code: 1303205, + name: "Novo Airão", + state: State::AM, + }, + Municipio { + ibge_code: 1303304, + name: "Novo Aripuanã", + state: State::AM, + }, + Municipio { + ibge_code: 1303403, + name: "Parintins", + state: State::AM, + }, + Municipio { + ibge_code: 1303502, + name: "Pauini", + state: State::AM, + }, + Municipio { + ibge_code: 1303536, + name: "Presidente Figueiredo", + state: State::AM, + }, + Municipio { + ibge_code: 1303569, + name: "Rio Preto da Eva", + state: State::AM, + }, + Municipio { + ibge_code: 1303601, + name: "Santa Isabel do Rio Negro", + state: State::AM, + }, + Municipio { + ibge_code: 1303700, + name: "Santo Antônio do Içá", + state: State::AM, + }, + Municipio { + ibge_code: 1304005, + name: "Silves", + state: State::AM, + }, + Municipio { + ibge_code: 1303809, + name: "São Gabriel da Cachoeira", + state: State::AM, + }, + Municipio { + ibge_code: 1303908, + name: "São Paulo de Olivença", + state: State::AM, + }, + Municipio { + ibge_code: 1303957, + name: "São Sebastião do Uatumã", + state: State::AM, + }, + Municipio { + ibge_code: 1304062, + name: "Tabatinga", + state: State::AM, + }, + Municipio { + ibge_code: 1304104, + name: "Tapauá", + state: State::AM, + }, + Municipio { + ibge_code: 1304203, + name: "Tefé", + state: State::AM, + }, + Municipio { + ibge_code: 1304237, + name: "Tonantins", + state: State::AM, + }, + Municipio { + ibge_code: 1304260, + name: "Uarini", + state: State::AM, + }, + Municipio { + ibge_code: 1304302, + name: "Urucará", + state: State::AM, + }, + Municipio { + ibge_code: 1304401, + name: "Urucurituba", + state: State::AM, + }, + Municipio { + ibge_code: 1600105, + name: "Amapá", + state: State::AP, + }, + Municipio { + ibge_code: 1600204, + name: "Calçoene", + state: State::AP, + }, + Municipio { + ibge_code: 1600212, + name: "Cutias", + state: State::AP, + }, + Municipio { + ibge_code: 1600238, + name: "Ferreira Gomes", + state: State::AP, + }, + Municipio { + ibge_code: 1600253, + name: "Itaubal", + state: State::AP, + }, + Municipio { + ibge_code: 1600279, + name: "Laranjal do Jari", + state: State::AP, + }, + Municipio { + ibge_code: 1600303, + name: "Macapá", + state: State::AP, + }, + Municipio { + ibge_code: 1600402, + name: "Mazagão", + state: State::AP, + }, + Municipio { + ibge_code: 1600501, + name: "Oiapoque", + state: State::AP, + }, + Municipio { + ibge_code: 1600154, + name: "Pedra Branca do Amapari", + state: State::AP, + }, + Municipio { + ibge_code: 1600535, + name: "Porto Grande", + state: State::AP, + }, + Municipio { + ibge_code: 1600550, + name: "Pracuúba", + state: State::AP, + }, + Municipio { + ibge_code: 1600600, + name: "Santana", + state: State::AP, + }, + Municipio { + ibge_code: 1600055, + name: "Serra do Navio", + state: State::AP, + }, + Municipio { + ibge_code: 1600709, + name: "Tartarugalzinho", + state: State::AP, + }, + Municipio { + ibge_code: 1600808, + name: "Vitória do Jari", + state: State::AP, + }, + Municipio { + ibge_code: 2900207, + name: "Abaré", + state: State::BA, + }, + Municipio { + ibge_code: 2900108, + name: "Abaíra", + state: State::BA, + }, + Municipio { + ibge_code: 2900306, + name: "Acajutiba", + state: State::BA, + }, + Municipio { + ibge_code: 2900355, + name: "Adustina", + state: State::BA, + }, + Municipio { + ibge_code: 2900603, + name: "Aiquara", + state: State::BA, + }, + Municipio { + ibge_code: 2900702, + name: "Alagoinhas", + state: State::BA, + }, + Municipio { + ibge_code: 2900801, + name: "Alcobaça", + state: State::BA, + }, + Municipio { + ibge_code: 2900900, + name: "Almadina", + state: State::BA, + }, + Municipio { + ibge_code: 2901007, + name: "Amargosa", + state: State::BA, + }, + Municipio { + ibge_code: 2901106, + name: "Amélia Rodrigues", + state: State::BA, + }, + Municipio { + ibge_code: 2901155, + name: "América Dourada", + state: State::BA, + }, + Municipio { + ibge_code: 2901205, + name: "Anagé", + state: State::BA, + }, + Municipio { + ibge_code: 2901304, + name: "Andaraí", + state: State::BA, + }, + Municipio { + ibge_code: 2901353, + name: "Andorinha", + state: State::BA, + }, + Municipio { + ibge_code: 2901403, + name: "Angical", + state: State::BA, + }, + Municipio { + ibge_code: 2901502, + name: "Anguera", + state: State::BA, + }, + Municipio { + ibge_code: 2901601, + name: "Antas", + state: State::BA, + }, + Municipio { + ibge_code: 2901700, + name: "Antônio Cardoso", + state: State::BA, + }, + Municipio { + ibge_code: 2901809, + name: "Antônio Gonçalves", + state: State::BA, + }, + Municipio { + ibge_code: 2901908, + name: "Aporá", + state: State::BA, + }, + Municipio { + ibge_code: 2901957, + name: "Apuarema", + state: State::BA, + }, + Municipio { + ibge_code: 2902005, + name: "Aracatu", + state: State::BA, + }, + Municipio { + ibge_code: 2902104, + name: "Araci", + state: State::BA, + }, + Municipio { + ibge_code: 2902203, + name: "Aramari", + state: State::BA, + }, + Municipio { + ibge_code: 2902252, + name: "Arataca", + state: State::BA, + }, + Municipio { + ibge_code: 2902302, + name: "Aratuípe", + state: State::BA, + }, + Municipio { + ibge_code: 2902054, + name: "Araçás", + state: State::BA, + }, + Municipio { + ibge_code: 2902401, + name: "Aurelino Leal", + state: State::BA, + }, + Municipio { + ibge_code: 2902500, + name: "Baianópolis", + state: State::BA, + }, + Municipio { + ibge_code: 2902609, + name: "Baixa Grande", + state: State::BA, + }, + Municipio { + ibge_code: 2902658, + name: "Banzaê", + state: State::BA, + }, + Municipio { + ibge_code: 2902708, + name: "Barra", + state: State::BA, + }, + Municipio { + ibge_code: 2902807, + name: "Barra da Estiva", + state: State::BA, + }, + Municipio { + ibge_code: 2902906, + name: "Barra do Choça", + state: State::BA, + }, + Municipio { + ibge_code: 2903003, + name: "Barra do Mendes", + state: State::BA, + }, + Municipio { + ibge_code: 2903102, + name: "Barra do Rocha", + state: State::BA, + }, + Municipio { + ibge_code: 2903201, + name: "Barreiras", + state: State::BA, + }, + Municipio { + ibge_code: 2903235, + name: "Barro Alto", + state: State::BA, + }, + Municipio { + ibge_code: 2903300, + name: "Barro Preto", + state: State::BA, + }, + Municipio { + ibge_code: 2903276, + name: "Barrocas", + state: State::BA, + }, + Municipio { + ibge_code: 2903409, + name: "Belmonte", + state: State::BA, + }, + Municipio { + ibge_code: 2903508, + name: "Belo Campo", + state: State::BA, + }, + Municipio { + ibge_code: 2903607, + name: "Biritinga", + state: State::BA, + }, + Municipio { + ibge_code: 2903706, + name: "Boa Nova", + state: State::BA, + }, + Municipio { + ibge_code: 2903805, + name: "Boa Vista do Tupim", + state: State::BA, + }, + Municipio { + ibge_code: 2903904, + name: "Bom Jesus da Lapa", + state: State::BA, + }, + Municipio { + ibge_code: 2903953, + name: "Bom Jesus da Serra", + state: State::BA, + }, + Municipio { + ibge_code: 2904001, + name: "Boninal", + state: State::BA, + }, + Municipio { + ibge_code: 2904050, + name: "Bonito", + state: State::BA, + }, + Municipio { + ibge_code: 2904100, + name: "Boquira", + state: State::BA, + }, + Municipio { + ibge_code: 2904209, + name: "Botuporã", + state: State::BA, + }, + Municipio { + ibge_code: 2904407, + name: "Brejolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2904308, + name: "Brejões", + state: State::BA, + }, + Municipio { + ibge_code: 2904506, + name: "Brotas de Macaúbas", + state: State::BA, + }, + Municipio { + ibge_code: 2904605, + name: "Brumado", + state: State::BA, + }, + Municipio { + ibge_code: 2904704, + name: "Buerarema", + state: State::BA, + }, + Municipio { + ibge_code: 2904753, + name: "Buritirama", + state: State::BA, + }, + Municipio { + ibge_code: 2904803, + name: "Caatiba", + state: State::BA, + }, + Municipio { + ibge_code: 2904852, + name: "Cabaceiras do Paraguaçu", + state: State::BA, + }, + Municipio { + ibge_code: 2904902, + name: "Cachoeira", + state: State::BA, + }, + Municipio { + ibge_code: 2905008, + name: "Caculé", + state: State::BA, + }, + Municipio { + ibge_code: 2905156, + name: "Caetanos", + state: State::BA, + }, + Municipio { + ibge_code: 2905206, + name: "Caetité", + state: State::BA, + }, + Municipio { + ibge_code: 2905305, + name: "Cafarnaum", + state: State::BA, + }, + Municipio { + ibge_code: 2905404, + name: "Cairu", + state: State::BA, + }, + Municipio { + ibge_code: 2905503, + name: "Caldeirão Grande", + state: State::BA, + }, + Municipio { + ibge_code: 2905602, + name: "Camacan", + state: State::BA, + }, + Municipio { + ibge_code: 2905800, + name: "Camamu", + state: State::BA, + }, + Municipio { + ibge_code: 2905701, + name: "Camaçari", + state: State::BA, + }, + Municipio { + ibge_code: 2905909, + name: "Campo Alegre de Lourdes", + state: State::BA, + }, + Municipio { + ibge_code: 2906006, + name: "Campo Formoso", + state: State::BA, + }, + Municipio { + ibge_code: 2906204, + name: "Canarana", + state: State::BA, + }, + Municipio { + ibge_code: 2906303, + name: "Canavieiras", + state: State::BA, + }, + Municipio { + ibge_code: 2906402, + name: "Candeal", + state: State::BA, + }, + Municipio { + ibge_code: 2906501, + name: "Candeias", + state: State::BA, + }, + Municipio { + ibge_code: 2906600, + name: "Candiba", + state: State::BA, + }, + Municipio { + ibge_code: 2906808, + name: "Cansanção", + state: State::BA, + }, + Municipio { + ibge_code: 2906824, + name: "Canudos", + state: State::BA, + }, + Municipio { + ibge_code: 2906105, + name: "Canápolis", + state: State::BA, + }, + Municipio { + ibge_code: 2906857, + name: "Capela do Alto Alegre", + state: State::BA, + }, + Municipio { + ibge_code: 2906873, + name: "Capim Grosso", + state: State::BA, + }, + Municipio { + ibge_code: 2906907, + name: "Caravelas", + state: State::BA, + }, + Municipio { + ibge_code: 2906899, + name: "Caraíbas", + state: State::BA, + }, + Municipio { + ibge_code: 2907004, + name: "Cardeal da Silva", + state: State::BA, + }, + Municipio { + ibge_code: 2907103, + name: "Carinhanha", + state: State::BA, + }, + Municipio { + ibge_code: 2907202, + name: "Casa Nova", + state: State::BA, + }, + Municipio { + ibge_code: 2907301, + name: "Castro Alves", + state: State::BA, + }, + Municipio { + ibge_code: 2907400, + name: "Catolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2907509, + name: "Catu", + state: State::BA, + }, + Municipio { + ibge_code: 2907558, + name: "Caturama", + state: State::BA, + }, + Municipio { + ibge_code: 2905107, + name: "Caém", + state: State::BA, + }, + Municipio { + ibge_code: 2907608, + name: "Central", + state: State::BA, + }, + Municipio { + ibge_code: 2907707, + name: "Chorrochó", + state: State::BA, + }, + Municipio { + ibge_code: 2907905, + name: "Cipó", + state: State::BA, + }, + Municipio { + ibge_code: 2908002, + name: "Coaraci", + state: State::BA, + }, + Municipio { + ibge_code: 2908101, + name: "Cocos", + state: State::BA, + }, + Municipio { + ibge_code: 2908200, + name: "Conceição da Feira", + state: State::BA, + }, + Municipio { + ibge_code: 2908309, + name: "Conceição do Almeida", + state: State::BA, + }, + Municipio { + ibge_code: 2908408, + name: "Conceição do Coité", + state: State::BA, + }, + Municipio { + ibge_code: 2908507, + name: "Conceição do Jacuípe", + state: State::BA, + }, + Municipio { + ibge_code: 2908606, + name: "Conde", + state: State::BA, + }, + Municipio { + ibge_code: 2908705, + name: "Condeúba", + state: State::BA, + }, + Municipio { + ibge_code: 2908804, + name: "Contendas do Sincorá", + state: State::BA, + }, + Municipio { + ibge_code: 2908903, + name: "Coração de Maria", + state: State::BA, + }, + Municipio { + ibge_code: 2909000, + name: "Cordeiros", + state: State::BA, + }, + Municipio { + ibge_code: 2909109, + name: "Coribe", + state: State::BA, + }, + Municipio { + ibge_code: 2909208, + name: "Coronel João Sá", + state: State::BA, + }, + Municipio { + ibge_code: 2909307, + name: "Correntina", + state: State::BA, + }, + Municipio { + ibge_code: 2909406, + name: "Cotegipe", + state: State::BA, + }, + Municipio { + ibge_code: 2909505, + name: "Cravolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2909703, + name: "Cristópolis", + state: State::BA, + }, + Municipio { + ibge_code: 2909604, + name: "Crisópolis", + state: State::BA, + }, + Municipio { + ibge_code: 2909802, + name: "Cruz das Almas", + state: State::BA, + }, + Municipio { + ibge_code: 2909901, + name: "Curaçá", + state: State::BA, + }, + Municipio { + ibge_code: 2906709, + name: "Cândido Sales", + state: State::BA, + }, + Municipio { + ibge_code: 2907806, + name: "Cícero Dantas", + state: State::BA, + }, + Municipio { + ibge_code: 2910057, + name: "Dias d'Ávila", + state: State::BA, + }, + Municipio { + ibge_code: 2910107, + name: "Dom Basílio", + state: State::BA, + }, + Municipio { + ibge_code: 2910206, + name: "Dom Macedo Costa", + state: State::BA, + }, + Municipio { + ibge_code: 2910008, + name: "Dário Meira", + state: State::BA, + }, + Municipio { + ibge_code: 2910305, + name: "Elísio Medrado", + state: State::BA, + }, + Municipio { + ibge_code: 2910404, + name: "Encruzilhada", + state: State::BA, + }, + Municipio { + ibge_code: 2910503, + name: "Entre Rios", + state: State::BA, + }, + Municipio { + ibge_code: 2910602, + name: "Esplanada", + state: State::BA, + }, + Municipio { + ibge_code: 2910701, + name: "Euclides da Cunha", + state: State::BA, + }, + Municipio { + ibge_code: 2910727, + name: "Eunápolis", + state: State::BA, + }, + Municipio { + ibge_code: 2910776, + name: "Feira da Mata", + state: State::BA, + }, + Municipio { + ibge_code: 2910800, + name: "Feira de Santana", + state: State::BA, + }, + Municipio { + ibge_code: 2910859, + name: "Filadélfia", + state: State::BA, + }, + Municipio { + ibge_code: 2910909, + name: "Firmino Alves", + state: State::BA, + }, + Municipio { + ibge_code: 2911006, + name: "Floresta Azul", + state: State::BA, + }, + Municipio { + ibge_code: 2911105, + name: "Formosa do Rio Preto", + state: State::BA, + }, + Municipio { + ibge_code: 2910750, + name: "Fátima", + state: State::BA, + }, + Municipio { + ibge_code: 2911204, + name: "Gandu", + state: State::BA, + }, + Municipio { + ibge_code: 2911253, + name: "Gavião", + state: State::BA, + }, + Municipio { + ibge_code: 2911303, + name: "Gentio do Ouro", + state: State::BA, + }, + Municipio { + ibge_code: 2911402, + name: "Glória", + state: State::BA, + }, + Municipio { + ibge_code: 2911501, + name: "Gongogi", + state: State::BA, + }, + Municipio { + ibge_code: 2911600, + name: "Governador Mangabeira", + state: State::BA, + }, + Municipio { + ibge_code: 2911659, + name: "Guajeru", + state: State::BA, + }, + Municipio { + ibge_code: 2911709, + name: "Guanambi", + state: State::BA, + }, + Municipio { + ibge_code: 2911808, + name: "Guaratinga", + state: State::BA, + }, + Municipio { + ibge_code: 2911857, + name: "Heliópolis", + state: State::BA, + }, + Municipio { + ibge_code: 2911907, + name: "Iaçu", + state: State::BA, + }, + Municipio { + ibge_code: 2912004, + name: "Ibiassucê", + state: State::BA, + }, + Municipio { + ibge_code: 2912103, + name: "Ibicaraí", + state: State::BA, + }, + Municipio { + ibge_code: 2912202, + name: "Ibicoara", + state: State::BA, + }, + Municipio { + ibge_code: 2912301, + name: "Ibicuí", + state: State::BA, + }, + Municipio { + ibge_code: 2912400, + name: "Ibipeba", + state: State::BA, + }, + Municipio { + ibge_code: 2912509, + name: "Ibipitanga", + state: State::BA, + }, + Municipio { + ibge_code: 2912608, + name: "Ibiquera", + state: State::BA, + }, + Municipio { + ibge_code: 2912707, + name: "Ibirapitanga", + state: State::BA, + }, + Municipio { + ibge_code: 2912806, + name: "Ibirapuã", + state: State::BA, + }, + Municipio { + ibge_code: 2912905, + name: "Ibirataia", + state: State::BA, + }, + Municipio { + ibge_code: 2913002, + name: "Ibitiara", + state: State::BA, + }, + Municipio { + ibge_code: 2913101, + name: "Ibititá", + state: State::BA, + }, + Municipio { + ibge_code: 2913200, + name: "Ibotirama", + state: State::BA, + }, + Municipio { + ibge_code: 2913309, + name: "Ichu", + state: State::BA, + }, + Municipio { + ibge_code: 2913408, + name: "Igaporã", + state: State::BA, + }, + Municipio { + ibge_code: 2913457, + name: "Igrapiúna", + state: State::BA, + }, + Municipio { + ibge_code: 2913507, + name: "Iguaí", + state: State::BA, + }, + Municipio { + ibge_code: 2913606, + name: "Ilhéus", + state: State::BA, + }, + Municipio { + ibge_code: 2913705, + name: "Inhambupe", + state: State::BA, + }, + Municipio { + ibge_code: 2913804, + name: "Ipecaetá", + state: State::BA, + }, + Municipio { + ibge_code: 2913903, + name: "Ipiaú", + state: State::BA, + }, + Municipio { + ibge_code: 2914000, + name: "Ipirá", + state: State::BA, + }, + Municipio { + ibge_code: 2914109, + name: "Ipupiara", + state: State::BA, + }, + Municipio { + ibge_code: 2914208, + name: "Irajuba", + state: State::BA, + }, + Municipio { + ibge_code: 2914307, + name: "Iramaia", + state: State::BA, + }, + Municipio { + ibge_code: 2914406, + name: "Iraquara", + state: State::BA, + }, + Municipio { + ibge_code: 2914505, + name: "Irará", + state: State::BA, + }, + Municipio { + ibge_code: 2914604, + name: "Irecê", + state: State::BA, + }, + Municipio { + ibge_code: 2914653, + name: "Itabela", + state: State::BA, + }, + Municipio { + ibge_code: 2914703, + name: "Itaberaba", + state: State::BA, + }, + Municipio { + ibge_code: 2914802, + name: "Itabuna", + state: State::BA, + }, + Municipio { + ibge_code: 2914901, + name: "Itacaré", + state: State::BA, + }, + Municipio { + ibge_code: 2915007, + name: "Itaeté", + state: State::BA, + }, + Municipio { + ibge_code: 2915106, + name: "Itagi", + state: State::BA, + }, + Municipio { + ibge_code: 2915205, + name: "Itagibá", + state: State::BA, + }, + Municipio { + ibge_code: 2915304, + name: "Itagimirim", + state: State::BA, + }, + Municipio { + ibge_code: 2915353, + name: "Itaguaçu da Bahia", + state: State::BA, + }, + Municipio { + ibge_code: 2915403, + name: "Itaju do Colônia", + state: State::BA, + }, + Municipio { + ibge_code: 2915502, + name: "Itajuípe", + state: State::BA, + }, + Municipio { + ibge_code: 2915601, + name: "Itamaraju", + state: State::BA, + }, + Municipio { + ibge_code: 2915700, + name: "Itamari", + state: State::BA, + }, + Municipio { + ibge_code: 2915809, + name: "Itambé", + state: State::BA, + }, + Municipio { + ibge_code: 2915908, + name: "Itanagra", + state: State::BA, + }, + Municipio { + ibge_code: 2916005, + name: "Itanhém", + state: State::BA, + }, + Municipio { + ibge_code: 2916104, + name: "Itaparica", + state: State::BA, + }, + Municipio { + ibge_code: 2916302, + name: "Itapebi", + state: State::BA, + }, + Municipio { + ibge_code: 2916401, + name: "Itapetinga", + state: State::BA, + }, + Municipio { + ibge_code: 2916500, + name: "Itapicuru", + state: State::BA, + }, + Municipio { + ibge_code: 2916609, + name: "Itapitanga", + state: State::BA, + }, + Municipio { + ibge_code: 2916203, + name: "Itapé", + state: State::BA, + }, + Municipio { + ibge_code: 2916708, + name: "Itaquara", + state: State::BA, + }, + Municipio { + ibge_code: 2916807, + name: "Itarantim", + state: State::BA, + }, + Municipio { + ibge_code: 2916856, + name: "Itatim", + state: State::BA, + }, + Municipio { + ibge_code: 2916906, + name: "Itiruçu", + state: State::BA, + }, + Municipio { + ibge_code: 2917003, + name: "Itiúba", + state: State::BA, + }, + Municipio { + ibge_code: 2917102, + name: "Itororó", + state: State::BA, + }, + Municipio { + ibge_code: 2917201, + name: "Ituaçu", + state: State::BA, + }, + Municipio { + ibge_code: 2917300, + name: "Ituberá", + state: State::BA, + }, + Municipio { + ibge_code: 2917334, + name: "Iuiu", + state: State::BA, + }, + Municipio { + ibge_code: 2917359, + name: "Jaborandi", + state: State::BA, + }, + Municipio { + ibge_code: 2917409, + name: "Jacaraci", + state: State::BA, + }, + Municipio { + ibge_code: 2917508, + name: "Jacobina", + state: State::BA, + }, + Municipio { + ibge_code: 2917607, + name: "Jaguaquara", + state: State::BA, + }, + Municipio { + ibge_code: 2917706, + name: "Jaguarari", + state: State::BA, + }, + Municipio { + ibge_code: 2917805, + name: "Jaguaripe", + state: State::BA, + }, + Municipio { + ibge_code: 2917904, + name: "Jandaíra", + state: State::BA, + }, + Municipio { + ibge_code: 2918001, + name: "Jequié", + state: State::BA, + }, + Municipio { + ibge_code: 2918100, + name: "Jeremoabo", + state: State::BA, + }, + Municipio { + ibge_code: 2918209, + name: "Jiquiriçá", + state: State::BA, + }, + Municipio { + ibge_code: 2918308, + name: "Jitaúna", + state: State::BA, + }, + Municipio { + ibge_code: 2918357, + name: "João Dourado", + state: State::BA, + }, + Municipio { + ibge_code: 2918407, + name: "Juazeiro", + state: State::BA, + }, + Municipio { + ibge_code: 2918456, + name: "Jucuruçu", + state: State::BA, + }, + Municipio { + ibge_code: 2918506, + name: "Jussara", + state: State::BA, + }, + Municipio { + ibge_code: 2918555, + name: "Jussari", + state: State::BA, + }, + Municipio { + ibge_code: 2918605, + name: "Jussiape", + state: State::BA, + }, + Municipio { + ibge_code: 2918704, + name: "Lafaiete Coutinho", + state: State::BA, + }, + Municipio { + ibge_code: 2918753, + name: "Lagoa Real", + state: State::BA, + }, + Municipio { + ibge_code: 2918803, + name: "Laje", + state: State::BA, + }, + Municipio { + ibge_code: 2919009, + name: "Lajedinho", + state: State::BA, + }, + Municipio { + ibge_code: 2919058, + name: "Lajedo do Tabocal", + state: State::BA, + }, + Municipio { + ibge_code: 2918902, + name: "Lajedão", + state: State::BA, + }, + Municipio { + ibge_code: 2919108, + name: "Lamarão", + state: State::BA, + }, + Municipio { + ibge_code: 2919157, + name: "Lapão", + state: State::BA, + }, + Municipio { + ibge_code: 2919207, + name: "Lauro de Freitas", + state: State::BA, + }, + Municipio { + ibge_code: 2919306, + name: "Lençóis", + state: State::BA, + }, + Municipio { + ibge_code: 2919405, + name: "Licínio de Almeida", + state: State::BA, + }, + Municipio { + ibge_code: 2919504, + name: "Livramento de Nossa Senhora", + state: State::BA, + }, + Municipio { + ibge_code: 2919553, + name: "Luís Eduardo Magalhães", + state: State::BA, + }, + Municipio { + ibge_code: 2919603, + name: "Macajuba", + state: State::BA, + }, + Municipio { + ibge_code: 2919702, + name: "Macarani", + state: State::BA, + }, + Municipio { + ibge_code: 2919801, + name: "Macaúbas", + state: State::BA, + }, + Municipio { + ibge_code: 2919900, + name: "Macururé", + state: State::BA, + }, + Municipio { + ibge_code: 2919926, + name: "Madre de Deus", + state: State::BA, + }, + Municipio { + ibge_code: 2919959, + name: "Maetinga", + state: State::BA, + }, + Municipio { + ibge_code: 2920007, + name: "Maiquinique", + state: State::BA, + }, + Municipio { + ibge_code: 2920106, + name: "Mairi", + state: State::BA, + }, + Municipio { + ibge_code: 2920205, + name: "Malhada", + state: State::BA, + }, + Municipio { + ibge_code: 2920304, + name: "Malhada de Pedras", + state: State::BA, + }, + Municipio { + ibge_code: 2920403, + name: "Manoel Vitorino", + state: State::BA, + }, + Municipio { + ibge_code: 2920452, + name: "Mansidão", + state: State::BA, + }, + Municipio { + ibge_code: 2920502, + name: "Maracás", + state: State::BA, + }, + Municipio { + ibge_code: 2920601, + name: "Maragogipe", + state: State::BA, + }, + Municipio { + ibge_code: 2920700, + name: "Maraú", + state: State::BA, + }, + Municipio { + ibge_code: 2920809, + name: "Marcionílio Souza", + state: State::BA, + }, + Municipio { + ibge_code: 2920908, + name: "Mascote", + state: State::BA, + }, + Municipio { + ibge_code: 2921005, + name: "Mata de São João", + state: State::BA, + }, + Municipio { + ibge_code: 2921054, + name: "Matina", + state: State::BA, + }, + Municipio { + ibge_code: 2921104, + name: "Medeiros Neto", + state: State::BA, + }, + Municipio { + ibge_code: 2921203, + name: "Miguel Calmon", + state: State::BA, + }, + Municipio { + ibge_code: 2921302, + name: "Milagres", + state: State::BA, + }, + Municipio { + ibge_code: 2921401, + name: "Mirangaba", + state: State::BA, + }, + Municipio { + ibge_code: 2921450, + name: "Mirante", + state: State::BA, + }, + Municipio { + ibge_code: 2921500, + name: "Monte Santo", + state: State::BA, + }, + Municipio { + ibge_code: 2921609, + name: "Morpará", + state: State::BA, + }, + Municipio { + ibge_code: 2921708, + name: "Morro do Chapéu", + state: State::BA, + }, + Municipio { + ibge_code: 2921807, + name: "Mortugaba", + state: State::BA, + }, + Municipio { + ibge_code: 2921906, + name: "Mucugê", + state: State::BA, + }, + Municipio { + ibge_code: 2922003, + name: "Mucuri", + state: State::BA, + }, + Municipio { + ibge_code: 2922052, + name: "Mulungu do Morro", + state: State::BA, + }, + Municipio { + ibge_code: 2922102, + name: "Mundo Novo", + state: State::BA, + }, + Municipio { + ibge_code: 2922201, + name: "Muniz Ferreira", + state: State::BA, + }, + Municipio { + ibge_code: 2922250, + name: "Muquém do São Francisco", + state: State::BA, + }, + Municipio { + ibge_code: 2922300, + name: "Muritiba", + state: State::BA, + }, + Municipio { + ibge_code: 2922409, + name: "Mutuípe", + state: State::BA, + }, + Municipio { + ibge_code: 2922508, + name: "Nazaré", + state: State::BA, + }, + Municipio { + ibge_code: 2922607, + name: "Nilo Peçanha", + state: State::BA, + }, + Municipio { + ibge_code: 2922656, + name: "Nordestina", + state: State::BA, + }, + Municipio { + ibge_code: 2922706, + name: "Nova Canaã", + state: State::BA, + }, + Municipio { + ibge_code: 2922730, + name: "Nova Fátima", + state: State::BA, + }, + Municipio { + ibge_code: 2922755, + name: "Nova Ibiá", + state: State::BA, + }, + Municipio { + ibge_code: 2922805, + name: "Nova Itarana", + state: State::BA, + }, + Municipio { + ibge_code: 2922854, + name: "Nova Redenção", + state: State::BA, + }, + Municipio { + ibge_code: 2922904, + name: "Nova Soure", + state: State::BA, + }, + Municipio { + ibge_code: 2923001, + name: "Nova Viçosa", + state: State::BA, + }, + Municipio { + ibge_code: 2923035, + name: "Novo Horizonte", + state: State::BA, + }, + Municipio { + ibge_code: 2923050, + name: "Novo Triunfo", + state: State::BA, + }, + Municipio { + ibge_code: 2923100, + name: "Olindina", + state: State::BA, + }, + Municipio { + ibge_code: 2923209, + name: "Oliveira dos Brejinhos", + state: State::BA, + }, + Municipio { + ibge_code: 2923308, + name: "Ouriçangas", + state: State::BA, + }, + Municipio { + ibge_code: 2923357, + name: "Ourolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2923407, + name: "Palmas de Monte Alto", + state: State::BA, + }, + Municipio { + ibge_code: 2923506, + name: "Palmeiras", + state: State::BA, + }, + Municipio { + ibge_code: 2923605, + name: "Paramirim", + state: State::BA, + }, + Municipio { + ibge_code: 2923704, + name: "Paratinga", + state: State::BA, + }, + Municipio { + ibge_code: 2923803, + name: "Paripiranga", + state: State::BA, + }, + Municipio { + ibge_code: 2923902, + name: "Pau Brasil", + state: State::BA, + }, + Municipio { + ibge_code: 2924009, + name: "Paulo Afonso", + state: State::BA, + }, + Municipio { + ibge_code: 2924207, + name: "Pedro Alexandre", + state: State::BA, + }, + Municipio { + ibge_code: 2924108, + name: "Pedrão", + state: State::BA, + }, + Municipio { + ibge_code: 2924306, + name: "Piatã", + state: State::BA, + }, + Municipio { + ibge_code: 2924405, + name: "Pilão Arcado", + state: State::BA, + }, + Municipio { + ibge_code: 2924504, + name: "Pindaí", + state: State::BA, + }, + Municipio { + ibge_code: 2924603, + name: "Pindobaçu", + state: State::BA, + }, + Municipio { + ibge_code: 2924652, + name: "Pintadas", + state: State::BA, + }, + Municipio { + ibge_code: 2924678, + name: "Piraí do Norte", + state: State::BA, + }, + Municipio { + ibge_code: 2924702, + name: "Piripá", + state: State::BA, + }, + Municipio { + ibge_code: 2924801, + name: "Piritiba", + state: State::BA, + }, + Municipio { + ibge_code: 2924900, + name: "Planaltino", + state: State::BA, + }, + Municipio { + ibge_code: 2925006, + name: "Planalto", + state: State::BA, + }, + Municipio { + ibge_code: 2925204, + name: "Pojuca", + state: State::BA, + }, + Municipio { + ibge_code: 2925253, + name: "Ponto Novo", + state: State::BA, + }, + Municipio { + ibge_code: 2925303, + name: "Porto Seguro", + state: State::BA, + }, + Municipio { + ibge_code: 2925402, + name: "Potiraguá", + state: State::BA, + }, + Municipio { + ibge_code: 2925105, + name: "Poções", + state: State::BA, + }, + Municipio { + ibge_code: 2925501, + name: "Prado", + state: State::BA, + }, + Municipio { + ibge_code: 2925600, + name: "Presidente Dutra", + state: State::BA, + }, + Municipio { + ibge_code: 2925709, + name: "Presidente Jânio Quadros", + state: State::BA, + }, + Municipio { + ibge_code: 2925758, + name: "Presidente Tancredo Neves", + state: State::BA, + }, + Municipio { + ibge_code: 2924058, + name: "Pé de Serra", + state: State::BA, + }, + Municipio { + ibge_code: 2925808, + name: "Queimadas", + state: State::BA, + }, + Municipio { + ibge_code: 2925907, + name: "Quijingue", + state: State::BA, + }, + Municipio { + ibge_code: 2925931, + name: "Quixabeira", + state: State::BA, + }, + Municipio { + ibge_code: 2925956, + name: "Rafael Jambeiro", + state: State::BA, + }, + Municipio { + ibge_code: 2926004, + name: "Remanso", + state: State::BA, + }, + Municipio { + ibge_code: 2926103, + name: "Retirolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2926400, + name: "Riacho de Santana", + state: State::BA, + }, + Municipio { + ibge_code: 2926202, + name: "Riachão das Neves", + state: State::BA, + }, + Municipio { + ibge_code: 2926301, + name: "Riachão do Jacuípe", + state: State::BA, + }, + Municipio { + ibge_code: 2926509, + name: "Ribeira do Amparo", + state: State::BA, + }, + Municipio { + ibge_code: 2926608, + name: "Ribeira do Pombal", + state: State::BA, + }, + Municipio { + ibge_code: 2926657, + name: "Ribeirão do Largo", + state: State::BA, + }, + Municipio { + ibge_code: 2927002, + name: "Rio Real", + state: State::BA, + }, + Municipio { + ibge_code: 2926707, + name: "Rio de Contas", + state: State::BA, + }, + Municipio { + ibge_code: 2926806, + name: "Rio do Antônio", + state: State::BA, + }, + Municipio { + ibge_code: 2926905, + name: "Rio do Pires", + state: State::BA, + }, + Municipio { + ibge_code: 2927101, + name: "Rodelas", + state: State::BA, + }, + Municipio { + ibge_code: 2927200, + name: "Ruy Barbosa", + state: State::BA, + }, + Municipio { + ibge_code: 2927309, + name: "Salinas da Margarida", + state: State::BA, + }, + Municipio { + ibge_code: 2927408, + name: "Salvador", + state: State::BA, + }, + Municipio { + ibge_code: 2927606, + name: "Santa Brígida", + state: State::BA, + }, + Municipio { + ibge_code: 2927507, + name: "Santa Bárbara", + state: State::BA, + }, + Municipio { + ibge_code: 2927705, + name: "Santa Cruz Cabrália", + state: State::BA, + }, + Municipio { + ibge_code: 2927804, + name: "Santa Cruz da Vitória", + state: State::BA, + }, + Municipio { + ibge_code: 2927903, + name: "Santa Inês", + state: State::BA, + }, + Municipio { + ibge_code: 2928059, + name: "Santa Luzia", + state: State::BA, + }, + Municipio { + ibge_code: 2928109, + name: "Santa Maria da Vitória", + state: State::BA, + }, + Municipio { + ibge_code: 2928406, + name: "Santa Rita de Cássia", + state: State::BA, + }, + Municipio { + ibge_code: 2928505, + name: "Santa Terezinha", + state: State::BA, + }, + Municipio { + ibge_code: 2928000, + name: "Santaluz", + state: State::BA, + }, + Municipio { + ibge_code: 2928208, + name: "Santana", + state: State::BA, + }, + Municipio { + ibge_code: 2928307, + name: "Santanópolis", + state: State::BA, + }, + Municipio { + ibge_code: 2928604, + name: "Santo Amaro", + state: State::BA, + }, + Municipio { + ibge_code: 2928703, + name: "Santo Antônio de Jesus", + state: State::BA, + }, + Municipio { + ibge_code: 2928802, + name: "Santo Estêvão", + state: State::BA, + }, + Municipio { + ibge_code: 2929602, + name: "Sapeaçu", + state: State::BA, + }, + Municipio { + ibge_code: 2929750, + name: "Saubara", + state: State::BA, + }, + Municipio { + ibge_code: 2929800, + name: "Saúde", + state: State::BA, + }, + Municipio { + ibge_code: 2929909, + name: "Seabra", + state: State::BA, + }, + Municipio { + ibge_code: 2930006, + name: "Sebastião Laranjeiras", + state: State::BA, + }, + Municipio { + ibge_code: 2930105, + name: "Senhor do Bonfim", + state: State::BA, + }, + Municipio { + ibge_code: 2930204, + name: "Sento Sé", + state: State::BA, + }, + Municipio { + ibge_code: 2930303, + name: "Serra Dourada", + state: State::BA, + }, + Municipio { + ibge_code: 2930402, + name: "Serra Preta", + state: State::BA, + }, + Municipio { + ibge_code: 2930154, + name: "Serra do Ramalho", + state: State::BA, + }, + Municipio { + ibge_code: 2930501, + name: "Serrinha", + state: State::BA, + }, + Municipio { + ibge_code: 2930600, + name: "Serrolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2930709, + name: "Simões Filho", + state: State::BA, + }, + Municipio { + ibge_code: 2930774, + name: "Sobradinho", + state: State::BA, + }, + Municipio { + ibge_code: 2930808, + name: "Souto Soares", + state: State::BA, + }, + Municipio { + ibge_code: 2929701, + name: "Sátiro Dias", + state: State::BA, + }, + Municipio { + ibge_code: 2928901, + name: "São Desidério", + state: State::BA, + }, + Municipio { + ibge_code: 2928950, + name: "São Domingos", + state: State::BA, + }, + Municipio { + ibge_code: 2929107, + name: "São Felipe", + state: State::BA, + }, + Municipio { + ibge_code: 2929206, + name: "São Francisco do Conde", + state: State::BA, + }, + Municipio { + ibge_code: 2929008, + name: "São Félix", + state: State::BA, + }, + Municipio { + ibge_code: 2929057, + name: "São Félix do Coribe", + state: State::BA, + }, + Municipio { + ibge_code: 2929255, + name: "São Gabriel", + state: State::BA, + }, + Municipio { + ibge_code: 2929305, + name: "São Gonçalo dos Campos", + state: State::BA, + }, + Municipio { + ibge_code: 2929354, + name: "São José da Vitória", + state: State::BA, + }, + Municipio { + ibge_code: 2929370, + name: "São José do Jacuípe", + state: State::BA, + }, + Municipio { + ibge_code: 2929404, + name: "São Miguel das Matas", + state: State::BA, + }, + Municipio { + ibge_code: 2929503, + name: "São Sebastião do Passé", + state: State::BA, + }, + Municipio { + ibge_code: 2930758, + name: "Sítio do Mato", + state: State::BA, + }, + Municipio { + ibge_code: 2930766, + name: "Sítio do Quinto", + state: State::BA, + }, + Municipio { + ibge_code: 2930907, + name: "Tabocas do Brejo Velho", + state: State::BA, + }, + Municipio { + ibge_code: 2931004, + name: "Tanhaçu", + state: State::BA, + }, + Municipio { + ibge_code: 2931053, + name: "Tanque Novo", + state: State::BA, + }, + Municipio { + ibge_code: 2931103, + name: "Tanquinho", + state: State::BA, + }, + Municipio { + ibge_code: 2931202, + name: "Taperoá", + state: State::BA, + }, + Municipio { + ibge_code: 2931301, + name: "Tapiramutá", + state: State::BA, + }, + Municipio { + ibge_code: 2931350, + name: "Teixeira de Freitas", + state: State::BA, + }, + Municipio { + ibge_code: 2931400, + name: "Teodoro Sampaio", + state: State::BA, + }, + Municipio { + ibge_code: 2931509, + name: "Teofilândia", + state: State::BA, + }, + Municipio { + ibge_code: 2931608, + name: "Teolândia", + state: State::BA, + }, + Municipio { + ibge_code: 2931707, + name: "Terra Nova", + state: State::BA, + }, + Municipio { + ibge_code: 2931806, + name: "Tremedal", + state: State::BA, + }, + Municipio { + ibge_code: 2931905, + name: "Tucano", + state: State::BA, + }, + Municipio { + ibge_code: 2932002, + name: "Uauá", + state: State::BA, + }, + Municipio { + ibge_code: 2932200, + name: "Ubaitaba", + state: State::BA, + }, + Municipio { + ibge_code: 2932309, + name: "Ubatã", + state: State::BA, + }, + Municipio { + ibge_code: 2932101, + name: "Ubaíra", + state: State::BA, + }, + Municipio { + ibge_code: 2932408, + name: "Uibaí", + state: State::BA, + }, + Municipio { + ibge_code: 2932457, + name: "Umburanas", + state: State::BA, + }, + Municipio { + ibge_code: 2932507, + name: "Una", + state: State::BA, + }, + Municipio { + ibge_code: 2932606, + name: "Urandi", + state: State::BA, + }, + Municipio { + ibge_code: 2932705, + name: "Uruçuca", + state: State::BA, + }, + Municipio { + ibge_code: 2932804, + name: "Utinga", + state: State::BA, + }, + Municipio { + ibge_code: 2933000, + name: "Valente", + state: State::BA, + }, + Municipio { + ibge_code: 2932903, + name: "Valença", + state: State::BA, + }, + Municipio { + ibge_code: 2933174, + name: "Varzedo", + state: State::BA, + }, + Municipio { + ibge_code: 2933208, + name: "Vera Cruz", + state: State::BA, + }, + Municipio { + ibge_code: 2933257, + name: "Vereda", + state: State::BA, + }, + Municipio { + ibge_code: 2933307, + name: "Vitória da Conquista", + state: State::BA, + }, + Municipio { + ibge_code: 2933158, + name: "Várzea Nova", + state: State::BA, + }, + Municipio { + ibge_code: 2933059, + name: "Várzea da Roça", + state: State::BA, + }, + Municipio { + ibge_code: 2933109, + name: "Várzea do Poço", + state: State::BA, + }, + Municipio { + ibge_code: 2933406, + name: "Wagner", + state: State::BA, + }, + Municipio { + ibge_code: 2933455, + name: "Wanderley", + state: State::BA, + }, + Municipio { + ibge_code: 2933505, + name: "Wenceslau Guimarães", + state: State::BA, + }, + Municipio { + ibge_code: 2933604, + name: "Xique-Xique", + state: State::BA, + }, + Municipio { + ibge_code: 2900405, + name: "Água Fria", + state: State::BA, + }, + Municipio { + ibge_code: 2900504, + name: "Érico Cardoso", + state: State::BA, + }, + Municipio { + ibge_code: 2300101, + name: "Abaiara", + state: State::CE, + }, + Municipio { + ibge_code: 2300150, + name: "Acarape", + state: State::CE, + }, + Municipio { + ibge_code: 2300200, + name: "Acaraú", + state: State::CE, + }, + Municipio { + ibge_code: 2300309, + name: "Acopiara", + state: State::CE, + }, + Municipio { + ibge_code: 2300408, + name: "Aiuaba", + state: State::CE, + }, + Municipio { + ibge_code: 2300507, + name: "Alcântaras", + state: State::CE, + }, + Municipio { + ibge_code: 2300606, + name: "Altaneira", + state: State::CE, + }, + Municipio { + ibge_code: 2300705, + name: "Alto Santo", + state: State::CE, + }, + Municipio { + ibge_code: 2300754, + name: "Amontada", + state: State::CE, + }, + Municipio { + ibge_code: 2300804, + name: "Antonina do Norte", + state: State::CE, + }, + Municipio { + ibge_code: 2300903, + name: "Apuiarés", + state: State::CE, + }, + Municipio { + ibge_code: 2301000, + name: "Aquiraz", + state: State::CE, + }, + Municipio { + ibge_code: 2301109, + name: "Aracati", + state: State::CE, + }, + Municipio { + ibge_code: 2301208, + name: "Aracoiaba", + state: State::CE, + }, + Municipio { + ibge_code: 2301257, + name: "Ararendá", + state: State::CE, + }, + Municipio { + ibge_code: 2301307, + name: "Araripe", + state: State::CE, + }, + Municipio { + ibge_code: 2301406, + name: "Aratuba", + state: State::CE, + }, + Municipio { + ibge_code: 2301505, + name: "Arneiroz", + state: State::CE, + }, + Municipio { + ibge_code: 2301604, + name: "Assaré", + state: State::CE, + }, + Municipio { + ibge_code: 2301703, + name: "Aurora", + state: State::CE, + }, + Municipio { + ibge_code: 2301802, + name: "Baixio", + state: State::CE, + }, + Municipio { + ibge_code: 2301851, + name: "Banabuiú", + state: State::CE, + }, + Municipio { + ibge_code: 2301901, + name: "Barbalha", + state: State::CE, + }, + Municipio { + ibge_code: 2301950, + name: "Barreira", + state: State::CE, + }, + Municipio { + ibge_code: 2302008, + name: "Barro", + state: State::CE, + }, + Municipio { + ibge_code: 2302057, + name: "Barroquinha", + state: State::CE, + }, + Municipio { + ibge_code: 2302107, + name: "Baturité", + state: State::CE, + }, + Municipio { + ibge_code: 2302206, + name: "Beberibe", + state: State::CE, + }, + Municipio { + ibge_code: 2302305, + name: "Bela Cruz", + state: State::CE, + }, + Municipio { + ibge_code: 2302404, + name: "Boa Viagem", + state: State::CE, + }, + Municipio { + ibge_code: 2302503, + name: "Brejo Santo", + state: State::CE, + }, + Municipio { + ibge_code: 2302602, + name: "Camocim", + state: State::CE, + }, + Municipio { + ibge_code: 2302701, + name: "Campos Sales", + state: State::CE, + }, + Municipio { + ibge_code: 2302800, + name: "Canindé", + state: State::CE, + }, + Municipio { + ibge_code: 2302909, + name: "Capistrano", + state: State::CE, + }, + Municipio { + ibge_code: 2303006, + name: "Caridade", + state: State::CE, + }, + Municipio { + ibge_code: 2303204, + name: "Caririaçu", + state: State::CE, + }, + Municipio { + ibge_code: 2303105, + name: "Cariré", + state: State::CE, + }, + Municipio { + ibge_code: 2303303, + name: "Cariús", + state: State::CE, + }, + Municipio { + ibge_code: 2303402, + name: "Carnaubal", + state: State::CE, + }, + Municipio { + ibge_code: 2303501, + name: "Cascavel", + state: State::CE, + }, + Municipio { + ibge_code: 2303600, + name: "Catarina", + state: State::CE, + }, + Municipio { + ibge_code: 2303659, + name: "Catunda", + state: State::CE, + }, + Municipio { + ibge_code: 2303709, + name: "Caucaia", + state: State::CE, + }, + Municipio { + ibge_code: 2303808, + name: "Cedro", + state: State::CE, + }, + Municipio { + ibge_code: 2303907, + name: "Chaval", + state: State::CE, + }, + Municipio { + ibge_code: 2303956, + name: "Chorozinho", + state: State::CE, + }, + Municipio { + ibge_code: 2303931, + name: "Choró", + state: State::CE, + }, + Municipio { + ibge_code: 2304004, + name: "Coreaú", + state: State::CE, + }, + Municipio { + ibge_code: 2304103, + name: "Crateús", + state: State::CE, + }, + Municipio { + ibge_code: 2304202, + name: "Crato", + state: State::CE, + }, + Municipio { + ibge_code: 2304236, + name: "Croatá", + state: State::CE, + }, + Municipio { + ibge_code: 2304251, + name: "Cruz", + state: State::CE, + }, + Municipio { + ibge_code: 2304269, + name: "Deputado Irapuan Pinheiro", + state: State::CE, + }, + Municipio { + ibge_code: 2304277, + name: "Ereré", + state: State::CE, + }, + Municipio { + ibge_code: 2304285, + name: "Eusébio", + state: State::CE, + }, + Municipio { + ibge_code: 2304301, + name: "Farias Brito", + state: State::CE, + }, + Municipio { + ibge_code: 2304350, + name: "Forquilha", + state: State::CE, + }, + Municipio { + ibge_code: 2304400, + name: "Fortaleza", + state: State::CE, + }, + Municipio { + ibge_code: 2304459, + name: "Fortim", + state: State::CE, + }, + Municipio { + ibge_code: 2304509, + name: "Frecheirinha", + state: State::CE, + }, + Municipio { + ibge_code: 2304608, + name: "General Sampaio", + state: State::CE, + }, + Municipio { + ibge_code: 2304707, + name: "Granja", + state: State::CE, + }, + Municipio { + ibge_code: 2304806, + name: "Granjeiro", + state: State::CE, + }, + Municipio { + ibge_code: 2304657, + name: "Graça", + state: State::CE, + }, + Municipio { + ibge_code: 2304905, + name: "Groaíras", + state: State::CE, + }, + Municipio { + ibge_code: 2304954, + name: "Guaiúba", + state: State::CE, + }, + Municipio { + ibge_code: 2305001, + name: "Guaraciaba do Norte", + state: State::CE, + }, + Municipio { + ibge_code: 2305100, + name: "Guaramiranga", + state: State::CE, + }, + Municipio { + ibge_code: 2305209, + name: "Hidrolândia", + state: State::CE, + }, + Municipio { + ibge_code: 2305233, + name: "Horizonte", + state: State::CE, + }, + Municipio { + ibge_code: 2305266, + name: "Ibaretama", + state: State::CE, + }, + Municipio { + ibge_code: 2305308, + name: "Ibiapina", + state: State::CE, + }, + Municipio { + ibge_code: 2305332, + name: "Ibicuitinga", + state: State::CE, + }, + Municipio { + ibge_code: 2305357, + name: "Icapuí", + state: State::CE, + }, + Municipio { + ibge_code: 2305407, + name: "Icó", + state: State::CE, + }, + Municipio { + ibge_code: 2305506, + name: "Iguatu", + state: State::CE, + }, + Municipio { + ibge_code: 2305605, + name: "Independência", + state: State::CE, + }, + Municipio { + ibge_code: 2305654, + name: "Ipaporanga", + state: State::CE, + }, + Municipio { + ibge_code: 2305704, + name: "Ipaumirim", + state: State::CE, + }, + Municipio { + ibge_code: 2305803, + name: "Ipu", + state: State::CE, + }, + Municipio { + ibge_code: 2305902, + name: "Ipueiras", + state: State::CE, + }, + Municipio { + ibge_code: 2306009, + name: "Iracema", + state: State::CE, + }, + Municipio { + ibge_code: 2306108, + name: "Irauçuba", + state: State::CE, + }, + Municipio { + ibge_code: 2306256, + name: "Itaitinga", + state: State::CE, + }, + Municipio { + ibge_code: 2306207, + name: "Itaiçaba", + state: State::CE, + }, + Municipio { + ibge_code: 2306306, + name: "Itapajé", + state: State::CE, + }, + Municipio { + ibge_code: 2306405, + name: "Itapipoca", + state: State::CE, + }, + Municipio { + ibge_code: 2306504, + name: "Itapiúna", + state: State::CE, + }, + Municipio { + ibge_code: 2306553, + name: "Itarema", + state: State::CE, + }, + Municipio { + ibge_code: 2306603, + name: "Itatira", + state: State::CE, + }, + Municipio { + ibge_code: 2306702, + name: "Jaguaretama", + state: State::CE, + }, + Municipio { + ibge_code: 2306801, + name: "Jaguaribara", + state: State::CE, + }, + Municipio { + ibge_code: 2306900, + name: "Jaguaribe", + state: State::CE, + }, + Municipio { + ibge_code: 2307007, + name: "Jaguaruana", + state: State::CE, + }, + Municipio { + ibge_code: 2307106, + name: "Jardim", + state: State::CE, + }, + Municipio { + ibge_code: 2307205, + name: "Jati", + state: State::CE, + }, + Municipio { + ibge_code: 2307254, + name: "Jijoca de Jericoacoara", + state: State::CE, + }, + Municipio { + ibge_code: 2307304, + name: "Juazeiro do Norte", + state: State::CE, + }, + Municipio { + ibge_code: 2307403, + name: "Jucás", + state: State::CE, + }, + Municipio { + ibge_code: 2307502, + name: "Lavras da Mangabeira", + state: State::CE, + }, + Municipio { + ibge_code: 2307601, + name: "Limoeiro do Norte", + state: State::CE, + }, + Municipio { + ibge_code: 2307635, + name: "Madalena", + state: State::CE, + }, + Municipio { + ibge_code: 2307650, + name: "Maracanaú", + state: State::CE, + }, + Municipio { + ibge_code: 2307700, + name: "Maranguape", + state: State::CE, + }, + Municipio { + ibge_code: 2307809, + name: "Marco", + state: State::CE, + }, + Municipio { + ibge_code: 2307908, + name: "Martinópole", + state: State::CE, + }, + Municipio { + ibge_code: 2308005, + name: "Massapê", + state: State::CE, + }, + Municipio { + ibge_code: 2308104, + name: "Mauriti", + state: State::CE, + }, + Municipio { + ibge_code: 2308203, + name: "Meruoca", + state: State::CE, + }, + Municipio { + ibge_code: 2308302, + name: "Milagres", + state: State::CE, + }, + Municipio { + ibge_code: 2308351, + name: "Milhã", + state: State::CE, + }, + Municipio { + ibge_code: 2308377, + name: "Miraíma", + state: State::CE, + }, + Municipio { + ibge_code: 2308401, + name: "Missão Velha", + state: State::CE, + }, + Municipio { + ibge_code: 2308500, + name: "Mombaça", + state: State::CE, + }, + Municipio { + ibge_code: 2308609, + name: "Monsenhor Tabosa", + state: State::CE, + }, + Municipio { + ibge_code: 2308708, + name: "Morada Nova", + state: State::CE, + }, + Municipio { + ibge_code: 2308807, + name: "Moraújo", + state: State::CE, + }, + Municipio { + ibge_code: 2308906, + name: "Morrinhos", + state: State::CE, + }, + Municipio { + ibge_code: 2309003, + name: "Mucambo", + state: State::CE, + }, + Municipio { + ibge_code: 2309102, + name: "Mulungu", + state: State::CE, + }, + Municipio { + ibge_code: 2309201, + name: "Nova Olinda", + state: State::CE, + }, + Municipio { + ibge_code: 2309300, + name: "Nova Russas", + state: State::CE, + }, + Municipio { + ibge_code: 2309409, + name: "Novo Oriente", + state: State::CE, + }, + Municipio { + ibge_code: 2309458, + name: "Ocara", + state: State::CE, + }, + Municipio { + ibge_code: 2309508, + name: "Orós", + state: State::CE, + }, + Municipio { + ibge_code: 2309607, + name: "Pacajus", + state: State::CE, + }, + Municipio { + ibge_code: 2309706, + name: "Pacatuba", + state: State::CE, + }, + Municipio { + ibge_code: 2309805, + name: "Pacoti", + state: State::CE, + }, + Municipio { + ibge_code: 2309904, + name: "Pacujá", + state: State::CE, + }, + Municipio { + ibge_code: 2310001, + name: "Palhano", + state: State::CE, + }, + Municipio { + ibge_code: 2310100, + name: "Palmácia", + state: State::CE, + }, + Municipio { + ibge_code: 2310209, + name: "Paracuru", + state: State::CE, + }, + Municipio { + ibge_code: 2310258, + name: "Paraipaba", + state: State::CE, + }, + Municipio { + ibge_code: 2310308, + name: "Parambu", + state: State::CE, + }, + Municipio { + ibge_code: 2310407, + name: "Paramoti", + state: State::CE, + }, + Municipio { + ibge_code: 2310506, + name: "Pedra Branca", + state: State::CE, + }, + Municipio { + ibge_code: 2310605, + name: "Penaforte", + state: State::CE, + }, + Municipio { + ibge_code: 2310704, + name: "Pentecoste", + state: State::CE, + }, + Municipio { + ibge_code: 2310803, + name: "Pereiro", + state: State::CE, + }, + Municipio { + ibge_code: 2310852, + name: "Pindoretama", + state: State::CE, + }, + Municipio { + ibge_code: 2310902, + name: "Piquet Carneiro", + state: State::CE, + }, + Municipio { + ibge_code: 2310951, + name: "Pires Ferreira", + state: State::CE, + }, + Municipio { + ibge_code: 2311009, + name: "Poranga", + state: State::CE, + }, + Municipio { + ibge_code: 2311108, + name: "Porteiras", + state: State::CE, + }, + Municipio { + ibge_code: 2311207, + name: "Potengi", + state: State::CE, + }, + Municipio { + ibge_code: 2311231, + name: "Potiretama", + state: State::CE, + }, + Municipio { + ibge_code: 2311264, + name: "Quiterianópolis", + state: State::CE, + }, + Municipio { + ibge_code: 2311306, + name: "Quixadá", + state: State::CE, + }, + Municipio { + ibge_code: 2311355, + name: "Quixelô", + state: State::CE, + }, + Municipio { + ibge_code: 2311405, + name: "Quixeramobim", + state: State::CE, + }, + Municipio { + ibge_code: 2311504, + name: "Quixeré", + state: State::CE, + }, + Municipio { + ibge_code: 2311603, + name: "Redenção", + state: State::CE, + }, + Municipio { + ibge_code: 2311702, + name: "Reriutaba", + state: State::CE, + }, + Municipio { + ibge_code: 2311801, + name: "Russas", + state: State::CE, + }, + Municipio { + ibge_code: 2311900, + name: "Saboeiro", + state: State::CE, + }, + Municipio { + ibge_code: 2311959, + name: "Salitre", + state: State::CE, + }, + Municipio { + ibge_code: 2312205, + name: "Santa Quitéria", + state: State::CE, + }, + Municipio { + ibge_code: 2312007, + name: "Santana do Acaraú", + state: State::CE, + }, + Municipio { + ibge_code: 2312106, + name: "Santana do Cariri", + state: State::CE, + }, + Municipio { + ibge_code: 2312700, + name: "Senador Pompeu", + state: State::CE, + }, + Municipio { + ibge_code: 2312809, + name: "Senador Sá", + state: State::CE, + }, + Municipio { + ibge_code: 2312908, + name: "Sobral", + state: State::CE, + }, + Municipio { + ibge_code: 2313005, + name: "Solonópole", + state: State::CE, + }, + Municipio { + ibge_code: 2312304, + name: "São Benedito", + state: State::CE, + }, + Municipio { + ibge_code: 2312403, + name: "São Gonçalo do Amarante", + state: State::CE, + }, + Municipio { + ibge_code: 2312502, + name: "São João do Jaguaribe", + state: State::CE, + }, + Municipio { + ibge_code: 2312601, + name: "São Luís do Curu", + state: State::CE, + }, + Municipio { + ibge_code: 2313104, + name: "Tabuleiro do Norte", + state: State::CE, + }, + Municipio { + ibge_code: 2313203, + name: "Tamboril", + state: State::CE, + }, + Municipio { + ibge_code: 2313252, + name: "Tarrafas", + state: State::CE, + }, + Municipio { + ibge_code: 2313302, + name: "Tauá", + state: State::CE, + }, + Municipio { + ibge_code: 2313351, + name: "Tejuçuoca", + state: State::CE, + }, + Municipio { + ibge_code: 2313401, + name: "Tianguá", + state: State::CE, + }, + Municipio { + ibge_code: 2313500, + name: "Trairi", + state: State::CE, + }, + Municipio { + ibge_code: 2313559, + name: "Tururu", + state: State::CE, + }, + Municipio { + ibge_code: 2313609, + name: "Ubajara", + state: State::CE, + }, + Municipio { + ibge_code: 2313708, + name: "Umari", + state: State::CE, + }, + Municipio { + ibge_code: 2313757, + name: "Umirim", + state: State::CE, + }, + Municipio { + ibge_code: 2313807, + name: "Uruburetama", + state: State::CE, + }, + Municipio { + ibge_code: 2313906, + name: "Uruoca", + state: State::CE, + }, + Municipio { + ibge_code: 2313955, + name: "Varjota", + state: State::CE, + }, + Municipio { + ibge_code: 2314102, + name: "Viçosa do Ceará", + state: State::CE, + }, + Municipio { + ibge_code: 2314003, + name: "Várzea Alegre", + state: State::CE, + }, + Municipio { + ibge_code: 5300108, + name: "Brasília", + state: State::DF, + }, + Municipio { + ibge_code: 3200102, + name: "Afonso Cláudio", + state: State::ES, + }, + Municipio { + ibge_code: 3200201, + name: "Alegre", + state: State::ES, + }, + Municipio { + ibge_code: 3200300, + name: "Alfredo Chaves", + state: State::ES, + }, + Municipio { + ibge_code: 3200359, + name: "Alto Rio Novo", + state: State::ES, + }, + Municipio { + ibge_code: 3200409, + name: "Anchieta", + state: State::ES, + }, + Municipio { + ibge_code: 3200508, + name: "Apiacá", + state: State::ES, + }, + Municipio { + ibge_code: 3200607, + name: "Aracruz", + state: State::ES, + }, + Municipio { + ibge_code: 3200706, + name: "Atílio Vivácqua", + state: State::ES, + }, + Municipio { + ibge_code: 3200805, + name: "Baixo Guandu", + state: State::ES, + }, + Municipio { + ibge_code: 3200904, + name: "Barra de São Francisco", + state: State::ES, + }, + Municipio { + ibge_code: 3201001, + name: "Boa Esperança", + state: State::ES, + }, + Municipio { + ibge_code: 3201100, + name: "Bom Jesus do Norte", + state: State::ES, + }, + Municipio { + ibge_code: 3201159, + name: "Brejetuba", + state: State::ES, + }, + Municipio { + ibge_code: 3201209, + name: "Cachoeiro de Itapemirim", + state: State::ES, + }, + Municipio { + ibge_code: 3201308, + name: "Cariacica", + state: State::ES, + }, + Municipio { + ibge_code: 3201407, + name: "Castelo", + state: State::ES, + }, + Municipio { + ibge_code: 3201506, + name: "Colatina", + state: State::ES, + }, + Municipio { + ibge_code: 3201605, + name: "Conceição da Barra", + state: State::ES, + }, + Municipio { + ibge_code: 3201704, + name: "Conceição do Castelo", + state: State::ES, + }, + Municipio { + ibge_code: 3201803, + name: "Divino de São Lourenço", + state: State::ES, + }, + Municipio { + ibge_code: 3201902, + name: "Domingos Martins", + state: State::ES, + }, + Municipio { + ibge_code: 3202009, + name: "Dores do Rio Preto", + state: State::ES, + }, + Municipio { + ibge_code: 3202108, + name: "Ecoporanga", + state: State::ES, + }, + Municipio { + ibge_code: 3202207, + name: "Fundão", + state: State::ES, + }, + Municipio { + ibge_code: 3202256, + name: "Governador Lindenberg", + state: State::ES, + }, + Municipio { + ibge_code: 3202405, + name: "Guarapari", + state: State::ES, + }, + Municipio { + ibge_code: 3202306, + name: "Guaçuí", + state: State::ES, + }, + Municipio { + ibge_code: 3202454, + name: "Ibatiba", + state: State::ES, + }, + Municipio { + ibge_code: 3202504, + name: "Ibiraçu", + state: State::ES, + }, + Municipio { + ibge_code: 3202553, + name: "Ibitirama", + state: State::ES, + }, + Municipio { + ibge_code: 3202603, + name: "Iconha", + state: State::ES, + }, + Municipio { + ibge_code: 3202652, + name: "Irupi", + state: State::ES, + }, + Municipio { + ibge_code: 3202702, + name: "Itaguaçu", + state: State::ES, + }, + Municipio { + ibge_code: 3202801, + name: "Itapemirim", + state: State::ES, + }, + Municipio { + ibge_code: 3202900, + name: "Itarana", + state: State::ES, + }, + Municipio { + ibge_code: 3203007, + name: "Iúna", + state: State::ES, + }, + Municipio { + ibge_code: 3203056, + name: "Jaguaré", + state: State::ES, + }, + Municipio { + ibge_code: 3203106, + name: "Jerônimo Monteiro", + state: State::ES, + }, + Municipio { + ibge_code: 3203130, + name: "João Neiva", + state: State::ES, + }, + Municipio { + ibge_code: 3203163, + name: "Laranja da Terra", + state: State::ES, + }, + Municipio { + ibge_code: 3203205, + name: "Linhares", + state: State::ES, + }, + Municipio { + ibge_code: 3203304, + name: "Mantenópolis", + state: State::ES, + }, + Municipio { + ibge_code: 3203320, + name: "Marataízes", + state: State::ES, + }, + Municipio { + ibge_code: 3203346, + name: "Marechal Floriano", + state: State::ES, + }, + Municipio { + ibge_code: 3203353, + name: "Marilândia", + state: State::ES, + }, + Municipio { + ibge_code: 3203403, + name: "Mimoso do Sul", + state: State::ES, + }, + Municipio { + ibge_code: 3203502, + name: "Montanha", + state: State::ES, + }, + Municipio { + ibge_code: 3203601, + name: "Mucurici", + state: State::ES, + }, + Municipio { + ibge_code: 3203700, + name: "Muniz Freire", + state: State::ES, + }, + Municipio { + ibge_code: 3203809, + name: "Muqui", + state: State::ES, + }, + Municipio { + ibge_code: 3203908, + name: "Nova Venécia", + state: State::ES, + }, + Municipio { + ibge_code: 3204005, + name: "Pancas", + state: State::ES, + }, + Municipio { + ibge_code: 3204054, + name: "Pedro Canário", + state: State::ES, + }, + Municipio { + ibge_code: 3204104, + name: "Pinheiros", + state: State::ES, + }, + Municipio { + ibge_code: 3204203, + name: "Piúma", + state: State::ES, + }, + Municipio { + ibge_code: 3204252, + name: "Ponto Belo", + state: State::ES, + }, + Municipio { + ibge_code: 3204302, + name: "Presidente Kennedy", + state: State::ES, + }, + Municipio { + ibge_code: 3204351, + name: "Rio Bananal", + state: State::ES, + }, + Municipio { + ibge_code: 3204401, + name: "Rio Novo do Sul", + state: State::ES, + }, + Municipio { + ibge_code: 3204500, + name: "Santa Leopoldina", + state: State::ES, + }, + Municipio { + ibge_code: 3204559, + name: "Santa Maria de Jetibá", + state: State::ES, + }, + Municipio { + ibge_code: 3204609, + name: "Santa Teresa", + state: State::ES, + }, + Municipio { + ibge_code: 3205002, + name: "Serra", + state: State::ES, + }, + Municipio { + ibge_code: 3205010, + name: "Sooretama", + state: State::ES, + }, + Municipio { + ibge_code: 3204658, + name: "São Domingos do Norte", + state: State::ES, + }, + Municipio { + ibge_code: 3204708, + name: "São Gabriel da Palha", + state: State::ES, + }, + Municipio { + ibge_code: 3204807, + name: "São José do Calçado", + state: State::ES, + }, + Municipio { + ibge_code: 3204906, + name: "São Mateus", + state: State::ES, + }, + Municipio { + ibge_code: 3204955, + name: "São Roque do Canaã", + state: State::ES, + }, + Municipio { + ibge_code: 3205036, + name: "Vargem Alta", + state: State::ES, + }, + Municipio { + ibge_code: 3205069, + name: "Venda Nova do Imigrante", + state: State::ES, + }, + Municipio { + ibge_code: 3205101, + name: "Viana", + state: State::ES, + }, + Municipio { + ibge_code: 3205150, + name: "Vila Pavão", + state: State::ES, + }, + Municipio { + ibge_code: 3205176, + name: "Vila Valério", + state: State::ES, + }, + Municipio { + ibge_code: 3205200, + name: "Vila Velha", + state: State::ES, + }, + Municipio { + ibge_code: 3205309, + name: "Vitória", + state: State::ES, + }, + Municipio { + ibge_code: 3200169, + name: "Água Doce do Norte", + state: State::ES, + }, + Municipio { + ibge_code: 3200136, + name: "Águia Branca", + state: State::ES, + }, + Municipio { + ibge_code: 5200050, + name: "Abadia de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5200100, + name: "Abadiânia", + state: State::GO, + }, + Municipio { + ibge_code: 5200134, + name: "Acreúna", + state: State::GO, + }, + Municipio { + ibge_code: 5200159, + name: "Adelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5200308, + name: "Alexânia", + state: State::GO, + }, + Municipio { + ibge_code: 5200506, + name: "Aloândia", + state: State::GO, + }, + Municipio { + ibge_code: 5200555, + name: "Alto Horizonte", + state: State::GO, + }, + Municipio { + ibge_code: 5200605, + name: "Alto Paraíso de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5200803, + name: "Alvorada do Norte", + state: State::GO, + }, + Municipio { + ibge_code: 5200829, + name: "Amaralina", + state: State::GO, + }, + Municipio { + ibge_code: 5200852, + name: "Americano do Brasil", + state: State::GO, + }, + Municipio { + ibge_code: 5200902, + name: "Amorinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5201207, + name: "Anhanguera", + state: State::GO, + }, + Municipio { + ibge_code: 5201306, + name: "Anicuns", + state: State::GO, + }, + Municipio { + ibge_code: 5201108, + name: "Anápolis", + state: State::GO, + }, + Municipio { + ibge_code: 5201405, + name: "Aparecida de Goiânia", + state: State::GO, + }, + Municipio { + ibge_code: 5201454, + name: "Aparecida do Rio Doce", + state: State::GO, + }, + Municipio { + ibge_code: 5201504, + name: "Aporé", + state: State::GO, + }, + Municipio { + ibge_code: 5201702, + name: "Aragarças", + state: State::GO, + }, + Municipio { + ibge_code: 5201801, + name: "Aragoiânia", + state: State::GO, + }, + Municipio { + ibge_code: 5202155, + name: "Araguapaz", + state: State::GO, + }, + Municipio { + ibge_code: 5201603, + name: "Araçu", + state: State::GO, + }, + Municipio { + ibge_code: 5202353, + name: "Arenópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5202502, + name: "Aruanã", + state: State::GO, + }, + Municipio { + ibge_code: 5202601, + name: "Aurilândia", + state: State::GO, + }, + Municipio { + ibge_code: 5202809, + name: "Avelinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5203104, + name: "Baliza", + state: State::GO, + }, + Municipio { + ibge_code: 5203203, + name: "Barro Alto", + state: State::GO, + }, + Municipio { + ibge_code: 5203302, + name: "Bela Vista de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5203401, + name: "Bom Jardim de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5203500, + name: "Bom Jesus de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5203559, + name: "Bonfinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5203575, + name: "Bonópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5203609, + name: "Brazabrantes", + state: State::GO, + }, + Municipio { + ibge_code: 5203807, + name: "Britânia", + state: State::GO, + }, + Municipio { + ibge_code: 5203906, + name: "Buriti Alegre", + state: State::GO, + }, + Municipio { + ibge_code: 5203939, + name: "Buriti de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5203962, + name: "Buritinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5204003, + name: "Cabeceiras", + state: State::GO, + }, + Municipio { + ibge_code: 5204102, + name: "Cachoeira Alta", + state: State::GO, + }, + Municipio { + ibge_code: 5204250, + name: "Cachoeira Dourada", + state: State::GO, + }, + Municipio { + ibge_code: 5204201, + name: "Cachoeira de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5204409, + name: "Caiapônia", + state: State::GO, + }, + Municipio { + ibge_code: 5204508, + name: "Caldas Novas", + state: State::GO, + }, + Municipio { + ibge_code: 5204557, + name: "Caldazinha", + state: State::GO, + }, + Municipio { + ibge_code: 5204607, + name: "Campestre de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5204656, + name: "Campinaçu", + state: State::GO, + }, + Municipio { + ibge_code: 5204706, + name: "Campinorte", + state: State::GO, + }, + Municipio { + ibge_code: 5204805, + name: "Campo Alegre de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5204854, + name: "Campo Limpo de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5204904, + name: "Campos Belos", + state: State::GO, + }, + Municipio { + ibge_code: 5204953, + name: "Campos Verdes", + state: State::GO, + }, + Municipio { + ibge_code: 5205000, + name: "Carmo do Rio Verde", + state: State::GO, + }, + Municipio { + ibge_code: 5205059, + name: "Castelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5205109, + name: "Catalão", + state: State::GO, + }, + Municipio { + ibge_code: 5205208, + name: "Caturaí", + state: State::GO, + }, + Municipio { + ibge_code: 5205307, + name: "Cavalcante", + state: State::GO, + }, + Municipio { + ibge_code: 5204300, + name: "Caçu", + state: State::GO, + }, + Municipio { + ibge_code: 5205406, + name: "Ceres", + state: State::GO, + }, + Municipio { + ibge_code: 5205455, + name: "Cezarina", + state: State::GO, + }, + Municipio { + ibge_code: 5205471, + name: "Chapadão do Céu", + state: State::GO, + }, + Municipio { + ibge_code: 5205497, + name: "Cidade Ocidental", + state: State::GO, + }, + Municipio { + ibge_code: 5205513, + name: "Cocalzinho de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5205521, + name: "Colinas do Sul", + state: State::GO, + }, + Municipio { + ibge_code: 5205901, + name: "Corumbaíba", + state: State::GO, + }, + Municipio { + ibge_code: 5205802, + name: "Corumbá de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5206206, + name: "Cristalina", + state: State::GO, + }, + Municipio { + ibge_code: 5206305, + name: "Cristianópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5206404, + name: "Crixás", + state: State::GO, + }, + Municipio { + ibge_code: 5206503, + name: "Cromínia", + state: State::GO, + }, + Municipio { + ibge_code: 5206602, + name: "Cumari", + state: State::GO, + }, + Municipio { + ibge_code: 5205703, + name: "Córrego do Ouro", + state: State::GO, + }, + Municipio { + ibge_code: 5206701, + name: "Damianópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5206800, + name: "Damolândia", + state: State::GO, + }, + Municipio { + ibge_code: 5206909, + name: "Davinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5207105, + name: "Diorama", + state: State::GO, + }, + Municipio { + ibge_code: 5208301, + name: "Divinópolis de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5207253, + name: "Doverlândia", + state: State::GO, + }, + Municipio { + ibge_code: 5207352, + name: "Edealina", + state: State::GO, + }, + Municipio { + ibge_code: 5207402, + name: "Edéia", + state: State::GO, + }, + Municipio { + ibge_code: 5207501, + name: "Estrela do Norte", + state: State::GO, + }, + Municipio { + ibge_code: 5207535, + name: "Faina", + state: State::GO, + }, + Municipio { + ibge_code: 5207600, + name: "Fazenda Nova", + state: State::GO, + }, + Municipio { + ibge_code: 5207808, + name: "Firminópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5207907, + name: "Flores de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5208004, + name: "Formosa", + state: State::GO, + }, + Municipio { + ibge_code: 5208103, + name: "Formoso", + state: State::GO, + }, + Municipio { + ibge_code: 5208152, + name: "Gameleira de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5208509, + name: "Goiandira", + state: State::GO, + }, + Municipio { + ibge_code: 5208806, + name: "Goianira", + state: State::GO, + }, + Municipio { + ibge_code: 5208400, + name: "Goianápolis", + state: State::GO, + }, + Municipio { + ibge_code: 5208608, + name: "Goianésia", + state: State::GO, + }, + Municipio { + ibge_code: 5209101, + name: "Goiatuba", + state: State::GO, + }, + Municipio { + ibge_code: 5208905, + name: "Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5208707, + name: "Goiânia", + state: State::GO, + }, + Municipio { + ibge_code: 5209150, + name: "Gouvelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5209200, + name: "Guapó", + state: State::GO, + }, + Municipio { + ibge_code: 5209408, + name: "Guarani de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5209291, + name: "Guaraíta", + state: State::GO, + }, + Municipio { + ibge_code: 5209457, + name: "Guarinos", + state: State::GO, + }, + Municipio { + ibge_code: 5209606, + name: "Heitoraí", + state: State::GO, + }, + Municipio { + ibge_code: 5209804, + name: "Hidrolina", + state: State::GO, + }, + Municipio { + ibge_code: 5209705, + name: "Hidrolândia", + state: State::GO, + }, + Municipio { + ibge_code: 5209903, + name: "Iaciara", + state: State::GO, + }, + Municipio { + ibge_code: 5209937, + name: "Inaciolândia", + state: State::GO, + }, + Municipio { + ibge_code: 5209952, + name: "Indiara", + state: State::GO, + }, + Municipio { + ibge_code: 5210000, + name: "Inhumas", + state: State::GO, + }, + Municipio { + ibge_code: 5210109, + name: "Ipameri", + state: State::GO, + }, + Municipio { + ibge_code: 5210158, + name: "Ipiranga de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5210208, + name: "Iporá", + state: State::GO, + }, + Municipio { + ibge_code: 5210307, + name: "Israelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5210406, + name: "Itaberaí", + state: State::GO, + }, + Municipio { + ibge_code: 5210562, + name: "Itaguari", + state: State::GO, + }, + Municipio { + ibge_code: 5210604, + name: "Itaguaru", + state: State::GO, + }, + Municipio { + ibge_code: 5210802, + name: "Itajá", + state: State::GO, + }, + Municipio { + ibge_code: 5210901, + name: "Itapaci", + state: State::GO, + }, + Municipio { + ibge_code: 5211008, + name: "Itapirapuã", + state: State::GO, + }, + Municipio { + ibge_code: 5211206, + name: "Itapuranga", + state: State::GO, + }, + Municipio { + ibge_code: 5211305, + name: "Itarumã", + state: State::GO, + }, + Municipio { + ibge_code: 5211404, + name: "Itauçu", + state: State::GO, + }, + Municipio { + ibge_code: 5211503, + name: "Itumbiara", + state: State::GO, + }, + Municipio { + ibge_code: 5211602, + name: "Ivolândia", + state: State::GO, + }, + Municipio { + ibge_code: 5211701, + name: "Jandaia", + state: State::GO, + }, + Municipio { + ibge_code: 5211800, + name: "Jaraguá", + state: State::GO, + }, + Municipio { + ibge_code: 5211909, + name: "Jataí", + state: State::GO, + }, + Municipio { + ibge_code: 5212006, + name: "Jaupaci", + state: State::GO, + }, + Municipio { + ibge_code: 5212055, + name: "Jesúpolis", + state: State::GO, + }, + Municipio { + ibge_code: 5212105, + name: "Joviânia", + state: State::GO, + }, + Municipio { + ibge_code: 5212204, + name: "Jussara", + state: State::GO, + }, + Municipio { + ibge_code: 5212253, + name: "Lagoa Santa", + state: State::GO, + }, + Municipio { + ibge_code: 5212303, + name: "Leopoldo de Bulhões", + state: State::GO, + }, + Municipio { + ibge_code: 5212501, + name: "Luziânia", + state: State::GO, + }, + Municipio { + ibge_code: 5212600, + name: "Mairipotaba", + state: State::GO, + }, + Municipio { + ibge_code: 5212709, + name: "Mambaí", + state: State::GO, + }, + Municipio { + ibge_code: 5212808, + name: "Mara Rosa", + state: State::GO, + }, + Municipio { + ibge_code: 5212907, + name: "Marzagão", + state: State::GO, + }, + Municipio { + ibge_code: 5212956, + name: "Matrinchã", + state: State::GO, + }, + Municipio { + ibge_code: 5213004, + name: "Maurilândia", + state: State::GO, + }, + Municipio { + ibge_code: 5213053, + name: "Mimoso de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5213087, + name: "Minaçu", + state: State::GO, + }, + Municipio { + ibge_code: 5213103, + name: "Mineiros", + state: State::GO, + }, + Municipio { + ibge_code: 5213400, + name: "Moiporá", + state: State::GO, + }, + Municipio { + ibge_code: 5213509, + name: "Monte Alegre de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5213707, + name: "Montes Claros de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5213756, + name: "Montividiu", + state: State::GO, + }, + Municipio { + ibge_code: 5213772, + name: "Montividiu do Norte", + state: State::GO, + }, + Municipio { + ibge_code: 5213806, + name: "Morrinhos", + state: State::GO, + }, + Municipio { + ibge_code: 5213855, + name: "Morro Agudo de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5213905, + name: "Mossâmedes", + state: State::GO, + }, + Municipio { + ibge_code: 5214002, + name: "Mozarlândia", + state: State::GO, + }, + Municipio { + ibge_code: 5214051, + name: "Mundo Novo", + state: State::GO, + }, + Municipio { + ibge_code: 5214101, + name: "Mutunópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5214408, + name: "Nazário", + state: State::GO, + }, + Municipio { + ibge_code: 5214507, + name: "Nerópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5214606, + name: "Niquelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5214705, + name: "Nova América", + state: State::GO, + }, + Municipio { + ibge_code: 5214804, + name: "Nova Aurora", + state: State::GO, + }, + Municipio { + ibge_code: 5214838, + name: "Nova Crixás", + state: State::GO, + }, + Municipio { + ibge_code: 5214861, + name: "Nova Glória", + state: State::GO, + }, + Municipio { + ibge_code: 5214879, + name: "Nova Iguaçu de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5214903, + name: "Nova Roma", + state: State::GO, + }, + Municipio { + ibge_code: 5215009, + name: "Nova Veneza", + state: State::GO, + }, + Municipio { + ibge_code: 5215207, + name: "Novo Brasil", + state: State::GO, + }, + Municipio { + ibge_code: 5215231, + name: "Novo Gama", + state: State::GO, + }, + Municipio { + ibge_code: 5215256, + name: "Novo Planalto", + state: State::GO, + }, + Municipio { + ibge_code: 5215306, + name: "Orizona", + state: State::GO, + }, + Municipio { + ibge_code: 5215405, + name: "Ouro Verde de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5215504, + name: "Ouvidor", + state: State::GO, + }, + Municipio { + ibge_code: 5215603, + name: "Padre Bernardo", + state: State::GO, + }, + Municipio { + ibge_code: 5215652, + name: "Palestina de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5215702, + name: "Palmeiras de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5215801, + name: "Palmelo", + state: State::GO, + }, + Municipio { + ibge_code: 5215900, + name: "Palminópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5216007, + name: "Panamá", + state: State::GO, + }, + Municipio { + ibge_code: 5216304, + name: "Paranaiguara", + state: State::GO, + }, + Municipio { + ibge_code: 5216403, + name: "Paraúna", + state: State::GO, + }, + Municipio { + ibge_code: 5216452, + name: "Perolândia", + state: State::GO, + }, + Municipio { + ibge_code: 5216809, + name: "Petrolina de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5216908, + name: "Pilar de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5217104, + name: "Piracanjuba", + state: State::GO, + }, + Municipio { + ibge_code: 5217203, + name: "Piranhas", + state: State::GO, + }, + Municipio { + ibge_code: 5217302, + name: "Pirenópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5217401, + name: "Pires do Rio", + state: State::GO, + }, + Municipio { + ibge_code: 5217609, + name: "Planaltina", + state: State::GO, + }, + Municipio { + ibge_code: 5217708, + name: "Pontalina", + state: State::GO, + }, + Municipio { + ibge_code: 5218003, + name: "Porangatu", + state: State::GO, + }, + Municipio { + ibge_code: 5218052, + name: "Porteirão", + state: State::GO, + }, + Municipio { + ibge_code: 5218102, + name: "Portelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5218300, + name: "Posse", + state: State::GO, + }, + Municipio { + ibge_code: 5218391, + name: "Professor Jamil", + state: State::GO, + }, + Municipio { + ibge_code: 5218508, + name: "Quirinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5218607, + name: "Rialma", + state: State::GO, + }, + Municipio { + ibge_code: 5218706, + name: "Rianápolis", + state: State::GO, + }, + Municipio { + ibge_code: 5218789, + name: "Rio Quente", + state: State::GO, + }, + Municipio { + ibge_code: 5218805, + name: "Rio Verde", + state: State::GO, + }, + Municipio { + ibge_code: 5218904, + name: "Rubiataba", + state: State::GO, + }, + Municipio { + ibge_code: 5219001, + name: "Sanclerlândia", + state: State::GO, + }, + Municipio { + ibge_code: 5219100, + name: "Santa Bárbara de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219209, + name: "Santa Cruz de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219258, + name: "Santa Fé de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219308, + name: "Santa Helena de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219357, + name: "Santa Isabel", + state: State::GO, + }, + Municipio { + ibge_code: 5219407, + name: "Santa Rita do Araguaia", + state: State::GO, + }, + Municipio { + ibge_code: 5219456, + name: "Santa Rita do Novo Destino", + state: State::GO, + }, + Municipio { + ibge_code: 5219506, + name: "Santa Rosa de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219605, + name: "Santa Tereza de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219704, + name: "Santa Terezinha de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219712, + name: "Santo Antônio da Barra", + state: State::GO, + }, + Municipio { + ibge_code: 5219738, + name: "Santo Antônio de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5219753, + name: "Santo Antônio do Descoberto", + state: State::GO, + }, + Municipio { + ibge_code: 5220454, + name: "Senador Canedo", + state: State::GO, + }, + Municipio { + ibge_code: 5220504, + name: "Serranópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5220603, + name: "Silvânia", + state: State::GO, + }, + Municipio { + ibge_code: 5220686, + name: "Simolândia", + state: State::GO, + }, + Municipio { + ibge_code: 5219803, + name: "São Domingos", + state: State::GO, + }, + Municipio { + ibge_code: 5219902, + name: "São Francisco de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5220009, + name: "São João d'Aliança", + state: State::GO, + }, + Municipio { + ibge_code: 5220058, + name: "São João da Paraúna", + state: State::GO, + }, + Municipio { + ibge_code: 5220157, + name: "São Luiz do Norte", + state: State::GO, + }, + Municipio { + ibge_code: 5220108, + name: "São Luís de Montes Belos", + state: State::GO, + }, + Municipio { + ibge_code: 5220207, + name: "São Miguel do Araguaia", + state: State::GO, + }, + Municipio { + ibge_code: 5220264, + name: "São Miguel do Passa Quatro", + state: State::GO, + }, + Municipio { + ibge_code: 5220280, + name: "São Patrício", + state: State::GO, + }, + Municipio { + ibge_code: 5220405, + name: "São Simão", + state: State::GO, + }, + Municipio { + ibge_code: 5220702, + name: "Sítio d'Abadia", + state: State::GO, + }, + Municipio { + ibge_code: 5221007, + name: "Taquaral de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5221080, + name: "Teresina de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5221197, + name: "Terezópolis de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5221403, + name: "Trindade", + state: State::GO, + }, + Municipio { + ibge_code: 5221452, + name: "Trombas", + state: State::GO, + }, + Municipio { + ibge_code: 5221304, + name: "Três Ranchos", + state: State::GO, + }, + Municipio { + ibge_code: 5221551, + name: "Turvelândia", + state: State::GO, + }, + Municipio { + ibge_code: 5221502, + name: "Turvânia", + state: State::GO, + }, + Municipio { + ibge_code: 5221577, + name: "Uirapuru", + state: State::GO, + }, + Municipio { + ibge_code: 5221700, + name: "Uruana", + state: State::GO, + }, + Municipio { + ibge_code: 5221601, + name: "Uruaçu", + state: State::GO, + }, + Municipio { + ibge_code: 5221809, + name: "Urutaí", + state: State::GO, + }, + Municipio { + ibge_code: 5221858, + name: "Valparaíso de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5221908, + name: "Varjão", + state: State::GO, + }, + Municipio { + ibge_code: 5222005, + name: "Vianópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5222054, + name: "Vicentinópolis", + state: State::GO, + }, + Municipio { + ibge_code: 5222203, + name: "Vila Boa", + state: State::GO, + }, + Municipio { + ibge_code: 5222302, + name: "Vila Propício", + state: State::GO, + }, + Municipio { + ibge_code: 5200175, + name: "Água Fria de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 5200209, + name: "Água Limpa", + state: State::GO, + }, + Municipio { + ibge_code: 5200258, + name: "Águas Lindas de Goiás", + state: State::GO, + }, + Municipio { + ibge_code: 2100105, + name: "Afonso Cunha", + state: State::MA, + }, + Municipio { + ibge_code: 2100204, + name: "Alcântara", + state: State::MA, + }, + Municipio { + ibge_code: 2100303, + name: "Aldeias Altas", + state: State::MA, + }, + Municipio { + ibge_code: 2100402, + name: "Altamira do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2100436, + name: "Alto Alegre do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2100477, + name: "Alto Alegre do Pindaré", + state: State::MA, + }, + Municipio { + ibge_code: 2100501, + name: "Alto Parnaíba", + state: State::MA, + }, + Municipio { + ibge_code: 2100550, + name: "Amapá do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2100600, + name: "Amarante do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2100709, + name: "Anajatuba", + state: State::MA, + }, + Municipio { + ibge_code: 2100808, + name: "Anapurus", + state: State::MA, + }, + Municipio { + ibge_code: 2100832, + name: "Apicum-Açu", + state: State::MA, + }, + Municipio { + ibge_code: 2100873, + name: "Araguanã", + state: State::MA, + }, + Municipio { + ibge_code: 2100907, + name: "Araioses", + state: State::MA, + }, + Municipio { + ibge_code: 2100956, + name: "Arame", + state: State::MA, + }, + Municipio { + ibge_code: 2101004, + name: "Arari", + state: State::MA, + }, + Municipio { + ibge_code: 2101103, + name: "Axixá", + state: State::MA, + }, + Municipio { + ibge_code: 2100055, + name: "Açailândia", + state: State::MA, + }, + Municipio { + ibge_code: 2101202, + name: "Bacabal", + state: State::MA, + }, + Municipio { + ibge_code: 2101251, + name: "Bacabeira", + state: State::MA, + }, + Municipio { + ibge_code: 2101301, + name: "Bacuri", + state: State::MA, + }, + Municipio { + ibge_code: 2101350, + name: "Bacurituba", + state: State::MA, + }, + Municipio { + ibge_code: 2101400, + name: "Balsas", + state: State::MA, + }, + Municipio { + ibge_code: 2101608, + name: "Barra do Corda", + state: State::MA, + }, + Municipio { + ibge_code: 2101707, + name: "Barreirinhas", + state: State::MA, + }, + Municipio { + ibge_code: 2101509, + name: "Barão de Grajaú", + state: State::MA, + }, + Municipio { + ibge_code: 2101772, + name: "Bela Vista do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2101731, + name: "Belágua", + state: State::MA, + }, + Municipio { + ibge_code: 2101806, + name: "Benedito Leite", + state: State::MA, + }, + Municipio { + ibge_code: 2101905, + name: "Bequimão", + state: State::MA, + }, + Municipio { + ibge_code: 2101939, + name: "Bernardo do Mearim", + state: State::MA, + }, + Municipio { + ibge_code: 2101970, + name: "Boa Vista do Gurupi", + state: State::MA, + }, + Municipio { + ibge_code: 2102002, + name: "Bom Jardim", + state: State::MA, + }, + Municipio { + ibge_code: 2102036, + name: "Bom Jesus das Selvas", + state: State::MA, + }, + Municipio { + ibge_code: 2102077, + name: "Bom Lugar", + state: State::MA, + }, + Municipio { + ibge_code: 2102101, + name: "Brejo", + state: State::MA, + }, + Municipio { + ibge_code: 2102150, + name: "Brejo de Areia", + state: State::MA, + }, + Municipio { + ibge_code: 2102200, + name: "Buriti", + state: State::MA, + }, + Municipio { + ibge_code: 2102309, + name: "Buriti Bravo", + state: State::MA, + }, + Municipio { + ibge_code: 2102325, + name: "Buriticupu", + state: State::MA, + }, + Municipio { + ibge_code: 2102358, + name: "Buritirana", + state: State::MA, + }, + Municipio { + ibge_code: 2102374, + name: "Cachoeira Grande", + state: State::MA, + }, + Municipio { + ibge_code: 2102408, + name: "Cajapió", + state: State::MA, + }, + Municipio { + ibge_code: 2102507, + name: "Cajari", + state: State::MA, + }, + Municipio { + ibge_code: 2102556, + name: "Campestre do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2102705, + name: "Cantanhede", + state: State::MA, + }, + Municipio { + ibge_code: 2102754, + name: "Capinzal do Norte", + state: State::MA, + }, + Municipio { + ibge_code: 2102804, + name: "Carolina", + state: State::MA, + }, + Municipio { + ibge_code: 2102903, + name: "Carutapera", + state: State::MA, + }, + Municipio { + ibge_code: 2103000, + name: "Caxias", + state: State::MA, + }, + Municipio { + ibge_code: 2103109, + name: "Cedral", + state: State::MA, + }, + Municipio { + ibge_code: 2103125, + name: "Central do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2103174, + name: "Centro Novo do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2103158, + name: "Centro do Guilherme", + state: State::MA, + }, + Municipio { + ibge_code: 2103208, + name: "Chapadinha", + state: State::MA, + }, + Municipio { + ibge_code: 2103257, + name: "Cidelândia", + state: State::MA, + }, + Municipio { + ibge_code: 2103307, + name: "Codó", + state: State::MA, + }, + Municipio { + ibge_code: 2103406, + name: "Coelho Neto", + state: State::MA, + }, + Municipio { + ibge_code: 2103505, + name: "Colinas", + state: State::MA, + }, + Municipio { + ibge_code: 2103554, + name: "Conceição do Lago-Açu", + state: State::MA, + }, + Municipio { + ibge_code: 2103604, + name: "Coroatá", + state: State::MA, + }, + Municipio { + ibge_code: 2103703, + name: "Cururupu", + state: State::MA, + }, + Municipio { + ibge_code: 2102606, + name: "Cândido Mendes", + state: State::MA, + }, + Municipio { + ibge_code: 2103752, + name: "Davinópolis", + state: State::MA, + }, + Municipio { + ibge_code: 2103802, + name: "Dom Pedro", + state: State::MA, + }, + Municipio { + ibge_code: 2103901, + name: "Duque Bacelar", + state: State::MA, + }, + Municipio { + ibge_code: 2104008, + name: "Esperantinópolis", + state: State::MA, + }, + Municipio { + ibge_code: 2104057, + name: "Estreito", + state: State::MA, + }, + Municipio { + ibge_code: 2104073, + name: "Feira Nova do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2104081, + name: "Fernando Falcão", + state: State::MA, + }, + Municipio { + ibge_code: 2104099, + name: "Formosa da Serra Negra", + state: State::MA, + }, + Municipio { + ibge_code: 2104107, + name: "Fortaleza dos Nogueiras", + state: State::MA, + }, + Municipio { + ibge_code: 2104206, + name: "Fortuna", + state: State::MA, + }, + Municipio { + ibge_code: 2104305, + name: "Godofredo Viana", + state: State::MA, + }, + Municipio { + ibge_code: 2104404, + name: "Gonçalves Dias", + state: State::MA, + }, + Municipio { + ibge_code: 2104503, + name: "Governador Archer", + state: State::MA, + }, + Municipio { + ibge_code: 2104552, + name: "Governador Edison Lobão", + state: State::MA, + }, + Municipio { + ibge_code: 2104602, + name: "Governador Eugênio Barros", + state: State::MA, + }, + Municipio { + ibge_code: 2104628, + name: "Governador Luiz Rocha", + state: State::MA, + }, + Municipio { + ibge_code: 2104651, + name: "Governador Newton Bello", + state: State::MA, + }, + Municipio { + ibge_code: 2104677, + name: "Governador Nunes Freire", + state: State::MA, + }, + Municipio { + ibge_code: 2104800, + name: "Grajaú", + state: State::MA, + }, + Municipio { + ibge_code: 2104701, + name: "Graça Aranha", + state: State::MA, + }, + Municipio { + ibge_code: 2104909, + name: "Guimarães", + state: State::MA, + }, + Municipio { + ibge_code: 2105005, + name: "Humberto de Campos", + state: State::MA, + }, + Municipio { + ibge_code: 2105104, + name: "Icatu", + state: State::MA, + }, + Municipio { + ibge_code: 2105203, + name: "Igarapé Grande", + state: State::MA, + }, + Municipio { + ibge_code: 2105153, + name: "Igarapé do Meio", + state: State::MA, + }, + Municipio { + ibge_code: 2105302, + name: "Imperatriz", + state: State::MA, + }, + Municipio { + ibge_code: 2105351, + name: "Itaipava do Grajaú", + state: State::MA, + }, + Municipio { + ibge_code: 2105401, + name: "Itapecuru Mirim", + state: State::MA, + }, + Municipio { + ibge_code: 2105427, + name: "Itinga do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2105450, + name: "Jatobá", + state: State::MA, + }, + Municipio { + ibge_code: 2105476, + name: "Jenipapo dos Vieiras", + state: State::MA, + }, + Municipio { + ibge_code: 2105609, + name: "Joselândia", + state: State::MA, + }, + Municipio { + ibge_code: 2105500, + name: "João Lisboa", + state: State::MA, + }, + Municipio { + ibge_code: 2105658, + name: "Junco do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2105906, + name: "Lago Verde", + state: State::MA, + }, + Municipio { + ibge_code: 2105708, + name: "Lago da Pedra", + state: State::MA, + }, + Municipio { + ibge_code: 2105807, + name: "Lago do Junco", + state: State::MA, + }, + Municipio { + ibge_code: 2105948, + name: "Lago dos Rodrigues", + state: State::MA, + }, + Municipio { + ibge_code: 2105963, + name: "Lagoa Grande do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2105922, + name: "Lagoa do Mato", + state: State::MA, + }, + Municipio { + ibge_code: 2105989, + name: "Lajeado Novo", + state: State::MA, + }, + Municipio { + ibge_code: 2106003, + name: "Lima Campos", + state: State::MA, + }, + Municipio { + ibge_code: 2106102, + name: "Loreto", + state: State::MA, + }, + Municipio { + ibge_code: 2106201, + name: "Luís Domingues", + state: State::MA, + }, + Municipio { + ibge_code: 2106300, + name: "Magalhães de Almeida", + state: State::MA, + }, + Municipio { + ibge_code: 2106326, + name: "Maracaçumé", + state: State::MA, + }, + Municipio { + ibge_code: 2106359, + name: "Marajá do Sena", + state: State::MA, + }, + Municipio { + ibge_code: 2106375, + name: "Maranhãozinho", + state: State::MA, + }, + Municipio { + ibge_code: 2106409, + name: "Mata Roma", + state: State::MA, + }, + Municipio { + ibge_code: 2106508, + name: "Matinha", + state: State::MA, + }, + Municipio { + ibge_code: 2106607, + name: "Matões", + state: State::MA, + }, + Municipio { + ibge_code: 2106631, + name: "Matões do Norte", + state: State::MA, + }, + Municipio { + ibge_code: 2106672, + name: "Milagres do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2106706, + name: "Mirador", + state: State::MA, + }, + Municipio { + ibge_code: 2106755, + name: "Miranda do Norte", + state: State::MA, + }, + Municipio { + ibge_code: 2106805, + name: "Mirinzal", + state: State::MA, + }, + Municipio { + ibge_code: 2107001, + name: "Montes Altos", + state: State::MA, + }, + Municipio { + ibge_code: 2106904, + name: "Monção", + state: State::MA, + }, + Municipio { + ibge_code: 2107100, + name: "Morros", + state: State::MA, + }, + Municipio { + ibge_code: 2107209, + name: "Nina Rodrigues", + state: State::MA, + }, + Municipio { + ibge_code: 2107258, + name: "Nova Colinas", + state: State::MA, + }, + Municipio { + ibge_code: 2107308, + name: "Nova Iorque", + state: State::MA, + }, + Municipio { + ibge_code: 2107357, + name: "Nova Olinda do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2107407, + name: "Olho d'Água das Cunhãs", + state: State::MA, + }, + Municipio { + ibge_code: 2107456, + name: "Olinda Nova do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2107605, + name: "Palmeirândia", + state: State::MA, + }, + Municipio { + ibge_code: 2107704, + name: "Paraibano", + state: State::MA, + }, + Municipio { + ibge_code: 2107803, + name: "Parnarama", + state: State::MA, + }, + Municipio { + ibge_code: 2107902, + name: "Passagem Franca", + state: State::MA, + }, + Municipio { + ibge_code: 2108009, + name: "Pastos Bons", + state: State::MA, + }, + Municipio { + ibge_code: 2108058, + name: "Paulino Neves", + state: State::MA, + }, + Municipio { + ibge_code: 2108108, + name: "Paulo Ramos", + state: State::MA, + }, + Municipio { + ibge_code: 2107506, + name: "Paço do Lumiar", + state: State::MA, + }, + Municipio { + ibge_code: 2108207, + name: "Pedreiras", + state: State::MA, + }, + Municipio { + ibge_code: 2108256, + name: "Pedro do Rosário", + state: State::MA, + }, + Municipio { + ibge_code: 2108306, + name: "Penalva", + state: State::MA, + }, + Municipio { + ibge_code: 2108405, + name: "Peri Mirim", + state: State::MA, + }, + Municipio { + ibge_code: 2108454, + name: "Peritoró", + state: State::MA, + }, + Municipio { + ibge_code: 2108504, + name: "Pindaré-Mirim", + state: State::MA, + }, + Municipio { + ibge_code: 2108603, + name: "Pinheiro", + state: State::MA, + }, + Municipio { + ibge_code: 2108702, + name: "Pio XII", + state: State::MA, + }, + Municipio { + ibge_code: 2108801, + name: "Pirapemas", + state: State::MA, + }, + Municipio { + ibge_code: 2109007, + name: "Porto Franco", + state: State::MA, + }, + Municipio { + ibge_code: 2109056, + name: "Porto Rico do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2108900, + name: "Poção de Pedras", + state: State::MA, + }, + Municipio { + ibge_code: 2109106, + name: "Presidente Dutra", + state: State::MA, + }, + Municipio { + ibge_code: 2109205, + name: "Presidente Juscelino", + state: State::MA, + }, + Municipio { + ibge_code: 2109239, + name: "Presidente Médici", + state: State::MA, + }, + Municipio { + ibge_code: 2109270, + name: "Presidente Sarney", + state: State::MA, + }, + Municipio { + ibge_code: 2109304, + name: "Presidente Vargas", + state: State::MA, + }, + Municipio { + ibge_code: 2109403, + name: "Primeira Cruz", + state: State::MA, + }, + Municipio { + ibge_code: 2109452, + name: "Raposa", + state: State::MA, + }, + Municipio { + ibge_code: 2109502, + name: "Riachão", + state: State::MA, + }, + Municipio { + ibge_code: 2109551, + name: "Ribamar Fiquene", + state: State::MA, + }, + Municipio { + ibge_code: 2109601, + name: "Rosário", + state: State::MA, + }, + Municipio { + ibge_code: 2109700, + name: "Sambaíba", + state: State::MA, + }, + Municipio { + ibge_code: 2109759, + name: "Santa Filomena do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2109809, + name: "Santa Helena", + state: State::MA, + }, + Municipio { + ibge_code: 2109908, + name: "Santa Inês", + state: State::MA, + }, + Municipio { + ibge_code: 2110005, + name: "Santa Luzia", + state: State::MA, + }, + Municipio { + ibge_code: 2110039, + name: "Santa Luzia do Paruá", + state: State::MA, + }, + Municipio { + ibge_code: 2110104, + name: "Santa Quitéria do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2110203, + name: "Santa Rita", + state: State::MA, + }, + Municipio { + ibge_code: 2110237, + name: "Santana do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2110278, + name: "Santo Amaro do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2110302, + name: "Santo Antônio dos Lopes", + state: State::MA, + }, + Municipio { + ibge_code: 2111722, + name: "Satubinha", + state: State::MA, + }, + Municipio { + ibge_code: 2111748, + name: "Senador Alexandre Costa", + state: State::MA, + }, + Municipio { + ibge_code: 2111763, + name: "Senador La Rocque", + state: State::MA, + }, + Municipio { + ibge_code: 2111789, + name: "Serrano do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2111904, + name: "Sucupira do Norte", + state: State::MA, + }, + Municipio { + ibge_code: 2111953, + name: "Sucupira do Riachão", + state: State::MA, + }, + Municipio { + ibge_code: 2110401, + name: "São Benedito do Rio Preto", + state: State::MA, + }, + Municipio { + ibge_code: 2110500, + name: "São Bento", + state: State::MA, + }, + Municipio { + ibge_code: 2110609, + name: "São Bernardo", + state: State::MA, + }, + Municipio { + ibge_code: 2110658, + name: "São Domingos do Azeitão", + state: State::MA, + }, + Municipio { + ibge_code: 2110708, + name: "São Domingos do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2110856, + name: "São Francisco do Brejão", + state: State::MA, + }, + Municipio { + ibge_code: 2110906, + name: "São Francisco do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2110807, + name: "São Félix de Balsas", + state: State::MA, + }, + Municipio { + ibge_code: 2111201, + name: "São José de Ribamar", + state: State::MA, + }, + Municipio { + ibge_code: 2111250, + name: "São José dos Basílios", + state: State::MA, + }, + Municipio { + ibge_code: 2111003, + name: "São João Batista", + state: State::MA, + }, + Municipio { + ibge_code: 2111029, + name: "São João do Carú", + state: State::MA, + }, + Municipio { + ibge_code: 2111052, + name: "São João do Paraíso", + state: State::MA, + }, + Municipio { + ibge_code: 2111078, + name: "São João do Soter", + state: State::MA, + }, + Municipio { + ibge_code: 2111102, + name: "São João dos Patos", + state: State::MA, + }, + Municipio { + ibge_code: 2111300, + name: "São Luís", + state: State::MA, + }, + Municipio { + ibge_code: 2111409, + name: "São Luís Gonzaga do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2111508, + name: "São Mateus do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 2111532, + name: "São Pedro da Água Branca", + state: State::MA, + }, + Municipio { + ibge_code: 2111573, + name: "São Pedro dos Crentes", + state: State::MA, + }, + Municipio { + ibge_code: 2111607, + name: "São Raimundo das Mangabeiras", + state: State::MA, + }, + Municipio { + ibge_code: 2111631, + name: "São Raimundo do Doca Bezerra", + state: State::MA, + }, + Municipio { + ibge_code: 2111672, + name: "São Roberto", + state: State::MA, + }, + Municipio { + ibge_code: 2111706, + name: "São Vicente Ferrer", + state: State::MA, + }, + Municipio { + ibge_code: 2111805, + name: "Sítio Novo", + state: State::MA, + }, + Municipio { + ibge_code: 2112001, + name: "Tasso Fragoso", + state: State::MA, + }, + Municipio { + ibge_code: 2112100, + name: "Timbiras", + state: State::MA, + }, + Municipio { + ibge_code: 2112209, + name: "Timon", + state: State::MA, + }, + Municipio { + ibge_code: 2112233, + name: "Trizidela do Vale", + state: State::MA, + }, + Municipio { + ibge_code: 2112274, + name: "Tufilândia", + state: State::MA, + }, + Municipio { + ibge_code: 2112308, + name: "Tuntum", + state: State::MA, + }, + Municipio { + ibge_code: 2112407, + name: "Turiaçu", + state: State::MA, + }, + Municipio { + ibge_code: 2112456, + name: "Turilândia", + state: State::MA, + }, + Municipio { + ibge_code: 2112506, + name: "Tutóia", + state: State::MA, + }, + Municipio { + ibge_code: 2112605, + name: "Urbano Santos", + state: State::MA, + }, + Municipio { + ibge_code: 2112704, + name: "Vargem Grande", + state: State::MA, + }, + Municipio { + ibge_code: 2112803, + name: "Viana", + state: State::MA, + }, + Municipio { + ibge_code: 2112852, + name: "Vila Nova dos Martírios", + state: State::MA, + }, + Municipio { + ibge_code: 2113009, + name: "Vitorino Freire", + state: State::MA, + }, + Municipio { + ibge_code: 2112902, + name: "Vitória do Mearim", + state: State::MA, + }, + Municipio { + ibge_code: 2114007, + name: "Zé Doca", + state: State::MA, + }, + Municipio { + ibge_code: 2100154, + name: "Água Doce do Maranhão", + state: State::MA, + }, + Municipio { + ibge_code: 3100104, + name: "Abadia dos Dourados", + state: State::MG, + }, + Municipio { + ibge_code: 3100203, + name: "Abaeté", + state: State::MG, + }, + Municipio { + ibge_code: 3100302, + name: "Abre Campo", + state: State::MG, + }, + Municipio { + ibge_code: 3100401, + name: "Acaiaca", + state: State::MG, + }, + Municipio { + ibge_code: 3100807, + name: "Aguanil", + state: State::MG, + }, + Municipio { + ibge_code: 3101102, + name: "Aimorés", + state: State::MG, + }, + Municipio { + ibge_code: 3101201, + name: "Aiuruoca", + state: State::MG, + }, + Municipio { + ibge_code: 3101300, + name: "Alagoa", + state: State::MG, + }, + Municipio { + ibge_code: 3101409, + name: "Albertina", + state: State::MG, + }, + Municipio { + ibge_code: 3101607, + name: "Alfenas", + state: State::MG, + }, + Municipio { + ibge_code: 3101631, + name: "Alfredo Vasconcelos", + state: State::MG, + }, + Municipio { + ibge_code: 3101706, + name: "Almenara", + state: State::MG, + }, + Municipio { + ibge_code: 3101805, + name: "Alpercata", + state: State::MG, + }, + Municipio { + ibge_code: 3101904, + name: "Alpinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3102001, + name: "Alterosa", + state: State::MG, + }, + Municipio { + ibge_code: 3102050, + name: "Alto Caparaó", + state: State::MG, + }, + Municipio { + ibge_code: 3153509, + name: "Alto Jequitibá", + state: State::MG, + }, + Municipio { + ibge_code: 3102100, + name: "Alto Rio Doce", + state: State::MG, + }, + Municipio { + ibge_code: 3102209, + name: "Alvarenga", + state: State::MG, + }, + Municipio { + ibge_code: 3102308, + name: "Alvinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3102407, + name: "Alvorada de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3101508, + name: "Além Paraíba", + state: State::MG, + }, + Municipio { + ibge_code: 3102506, + name: "Amparo do Serra", + state: State::MG, + }, + Municipio { + ibge_code: 3102605, + name: "Andradas", + state: State::MG, + }, + Municipio { + ibge_code: 3102803, + name: "Andrelândia", + state: State::MG, + }, + Municipio { + ibge_code: 3102852, + name: "Angelândia", + state: State::MG, + }, + Municipio { + ibge_code: 3102902, + name: "Antônio Carlos", + state: State::MG, + }, + Municipio { + ibge_code: 3103009, + name: "Antônio Dias", + state: State::MG, + }, + Municipio { + ibge_code: 3103108, + name: "Antônio Prado de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3103306, + name: "Aracitaba", + state: State::MG, + }, + Municipio { + ibge_code: 3103504, + name: "Araguari", + state: State::MG, + }, + Municipio { + ibge_code: 3103603, + name: "Arantina", + state: State::MG, + }, + Municipio { + ibge_code: 3103702, + name: "Araponga", + state: State::MG, + }, + Municipio { + ibge_code: 3103751, + name: "Araporã", + state: State::MG, + }, + Municipio { + ibge_code: 3103801, + name: "Arapuá", + state: State::MG, + }, + Municipio { + ibge_code: 3104007, + name: "Araxá", + state: State::MG, + }, + Municipio { + ibge_code: 3103207, + name: "Araçaí", + state: State::MG, + }, + Municipio { + ibge_code: 3103405, + name: "Araçuaí", + state: State::MG, + }, + Municipio { + ibge_code: 3103900, + name: "Araújos", + state: State::MG, + }, + Municipio { + ibge_code: 3104106, + name: "Arceburgo", + state: State::MG, + }, + Municipio { + ibge_code: 3104205, + name: "Arcos", + state: State::MG, + }, + Municipio { + ibge_code: 3104304, + name: "Areado", + state: State::MG, + }, + Municipio { + ibge_code: 3104403, + name: "Argirita", + state: State::MG, + }, + Municipio { + ibge_code: 3104452, + name: "Aricanduva", + state: State::MG, + }, + Municipio { + ibge_code: 3104502, + name: "Arinos", + state: State::MG, + }, + Municipio { + ibge_code: 3104601, + name: "Astolfo Dutra", + state: State::MG, + }, + Municipio { + ibge_code: 3104700, + name: "Ataléia", + state: State::MG, + }, + Municipio { + ibge_code: 3104809, + name: "Augusto de Lima", + state: State::MG, + }, + Municipio { + ibge_code: 3100500, + name: "Açucena", + state: State::MG, + }, + Municipio { + ibge_code: 3104908, + name: "Baependi", + state: State::MG, + }, + Municipio { + ibge_code: 3105004, + name: "Baldim", + state: State::MG, + }, + Municipio { + ibge_code: 3105103, + name: "Bambuí", + state: State::MG, + }, + Municipio { + ibge_code: 3105202, + name: "Bandeira", + state: State::MG, + }, + Municipio { + ibge_code: 3105301, + name: "Bandeira do Sul", + state: State::MG, + }, + Municipio { + ibge_code: 3105608, + name: "Barbacena", + state: State::MG, + }, + Municipio { + ibge_code: 3105707, + name: "Barra Longa", + state: State::MG, + }, + Municipio { + ibge_code: 3105905, + name: "Barroso", + state: State::MG, + }, + Municipio { + ibge_code: 3105400, + name: "Barão de Cocais", + state: State::MG, + }, + Municipio { + ibge_code: 3105509, + name: "Barão do Monte Alto", + state: State::MG, + }, + Municipio { + ibge_code: 3106002, + name: "Bela Vista de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3106101, + name: "Belmiro Braga", + state: State::MG, + }, + Municipio { + ibge_code: 3106200, + name: "Belo Horizonte", + state: State::MG, + }, + Municipio { + ibge_code: 3106309, + name: "Belo Oriente", + state: State::MG, + }, + Municipio { + ibge_code: 3106408, + name: "Belo Vale", + state: State::MG, + }, + Municipio { + ibge_code: 3106507, + name: "Berilo", + state: State::MG, + }, + Municipio { + ibge_code: 3106655, + name: "Berizal", + state: State::MG, + }, + Municipio { + ibge_code: 3106606, + name: "Bertópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3106705, + name: "Betim", + state: State::MG, + }, + Municipio { + ibge_code: 3106804, + name: "Bias Fortes", + state: State::MG, + }, + Municipio { + ibge_code: 3106903, + name: "Bicas", + state: State::MG, + }, + Municipio { + ibge_code: 3107000, + name: "Biquinhas", + state: State::MG, + }, + Municipio { + ibge_code: 3107109, + name: "Boa Esperança", + state: State::MG, + }, + Municipio { + ibge_code: 3107208, + name: "Bocaina de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3107307, + name: "Bocaiúva", + state: State::MG, + }, + Municipio { + ibge_code: 3107406, + name: "Bom Despacho", + state: State::MG, + }, + Municipio { + ibge_code: 3107505, + name: "Bom Jardim de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3107604, + name: "Bom Jesus da Penha", + state: State::MG, + }, + Municipio { + ibge_code: 3107703, + name: "Bom Jesus do Amparo", + state: State::MG, + }, + Municipio { + ibge_code: 3107802, + name: "Bom Jesus do Galho", + state: State::MG, + }, + Municipio { + ibge_code: 3107901, + name: "Bom Repouso", + state: State::MG, + }, + Municipio { + ibge_code: 3108008, + name: "Bom Sucesso", + state: State::MG, + }, + Municipio { + ibge_code: 3108107, + name: "Bonfim", + state: State::MG, + }, + Municipio { + ibge_code: 3108206, + name: "Bonfinópolis de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3108255, + name: "Bonito de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3108305, + name: "Borda da Mata", + state: State::MG, + }, + Municipio { + ibge_code: 3108404, + name: "Botelhos", + state: State::MG, + }, + Municipio { + ibge_code: 3108503, + name: "Botumirim", + state: State::MG, + }, + Municipio { + ibge_code: 3108552, + name: "Brasilândia de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3108602, + name: "Brasília de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3108909, + name: "Brazópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3108800, + name: "Braúnas", + state: State::MG, + }, + Municipio { + ibge_code: 3109006, + name: "Brumadinho", + state: State::MG, + }, + Municipio { + ibge_code: 3108701, + name: "Brás Pires", + state: State::MG, + }, + Municipio { + ibge_code: 3109105, + name: "Bueno Brandão", + state: State::MG, + }, + Municipio { + ibge_code: 3109204, + name: "Buenópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3109253, + name: "Bugre", + state: State::MG, + }, + Municipio { + ibge_code: 3109303, + name: "Buritis", + state: State::MG, + }, + Municipio { + ibge_code: 3109402, + name: "Buritizeiro", + state: State::MG, + }, + Municipio { + ibge_code: 3109451, + name: "Cabeceira Grande", + state: State::MG, + }, + Municipio { + ibge_code: 3109501, + name: "Cabo Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3109808, + name: "Cachoeira Dourada", + state: State::MG, + }, + Municipio { + ibge_code: 3109600, + name: "Cachoeira da Prata", + state: State::MG, + }, + Municipio { + ibge_code: 3109709, + name: "Cachoeira de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3102704, + name: "Cachoeira de Pajeú", + state: State::MG, + }, + Municipio { + ibge_code: 3109907, + name: "Caetanópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3110004, + name: "Caeté", + state: State::MG, + }, + Municipio { + ibge_code: 3110103, + name: "Caiana", + state: State::MG, + }, + Municipio { + ibge_code: 3110202, + name: "Cajuri", + state: State::MG, + }, + Municipio { + ibge_code: 3110301, + name: "Caldas", + state: State::MG, + }, + Municipio { + ibge_code: 3110400, + name: "Camacho", + state: State::MG, + }, + Municipio { + ibge_code: 3110509, + name: "Camanducaia", + state: State::MG, + }, + Municipio { + ibge_code: 3110707, + name: "Cambuquira", + state: State::MG, + }, + Municipio { + ibge_code: 3110608, + name: "Cambuí", + state: State::MG, + }, + Municipio { + ibge_code: 3110905, + name: "Campanha", + state: State::MG, + }, + Municipio { + ibge_code: 3110806, + name: "Campanário", + state: State::MG, + }, + Municipio { + ibge_code: 3111002, + name: "Campestre", + state: State::MG, + }, + Municipio { + ibge_code: 3111101, + name: "Campina Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3111150, + name: "Campo Azul", + state: State::MG, + }, + Municipio { + ibge_code: 3111200, + name: "Campo Belo", + state: State::MG, + }, + Municipio { + ibge_code: 3111408, + name: "Campo Florido", + state: State::MG, + }, + Municipio { + ibge_code: 3111309, + name: "Campo do Meio", + state: State::MG, + }, + Municipio { + ibge_code: 3111507, + name: "Campos Altos", + state: State::MG, + }, + Municipio { + ibge_code: 3111606, + name: "Campos Gerais", + state: State::MG, + }, + Municipio { + ibge_code: 3111903, + name: "Cana Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3111705, + name: "Canaã", + state: State::MG, + }, + Municipio { + ibge_code: 3112000, + name: "Candeias", + state: State::MG, + }, + Municipio { + ibge_code: 3112059, + name: "Cantagalo", + state: State::MG, + }, + Municipio { + ibge_code: 3111804, + name: "Canápolis", + state: State::MG, + }, + Municipio { + ibge_code: 3112109, + name: "Caparaó", + state: State::MG, + }, + Municipio { + ibge_code: 3112208, + name: "Capela Nova", + state: State::MG, + }, + Municipio { + ibge_code: 3112307, + name: "Capelinha", + state: State::MG, + }, + Municipio { + ibge_code: 3112406, + name: "Capetinga", + state: State::MG, + }, + Municipio { + ibge_code: 3112505, + name: "Capim Branco", + state: State::MG, + }, + Municipio { + ibge_code: 3112604, + name: "Capinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3112653, + name: "Capitão Andrade", + state: State::MG, + }, + Municipio { + ibge_code: 3112703, + name: "Capitão Enéas", + state: State::MG, + }, + Municipio { + ibge_code: 3112802, + name: "Capitólio", + state: State::MG, + }, + Municipio { + ibge_code: 3112901, + name: "Caputira", + state: State::MG, + }, + Municipio { + ibge_code: 3113107, + name: "Caranaíba", + state: State::MG, + }, + Municipio { + ibge_code: 3113206, + name: "Carandaí", + state: State::MG, + }, + Municipio { + ibge_code: 3113305, + name: "Carangola", + state: State::MG, + }, + Municipio { + ibge_code: 3113404, + name: "Caratinga", + state: State::MG, + }, + Municipio { + ibge_code: 3113008, + name: "Caraí", + state: State::MG, + }, + Municipio { + ibge_code: 3113503, + name: "Carbonita", + state: State::MG, + }, + Municipio { + ibge_code: 3113602, + name: "Careaçu", + state: State::MG, + }, + Municipio { + ibge_code: 3113701, + name: "Carlos Chagas", + state: State::MG, + }, + Municipio { + ibge_code: 3113909, + name: "Carmo da Cachoeira", + state: State::MG, + }, + Municipio { + ibge_code: 3114006, + name: "Carmo da Mata", + state: State::MG, + }, + Municipio { + ibge_code: 3114105, + name: "Carmo de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3114204, + name: "Carmo do Cajuru", + state: State::MG, + }, + Municipio { + ibge_code: 3114303, + name: "Carmo do Paranaíba", + state: State::MG, + }, + Municipio { + ibge_code: 3114402, + name: "Carmo do Rio Claro", + state: State::MG, + }, + Municipio { + ibge_code: 3113800, + name: "Carmésia", + state: State::MG, + }, + Municipio { + ibge_code: 3114501, + name: "Carmópolis de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3114550, + name: "Carneirinho", + state: State::MG, + }, + Municipio { + ibge_code: 3114600, + name: "Carrancas", + state: State::MG, + }, + Municipio { + ibge_code: 3114808, + name: "Carvalhos", + state: State::MG, + }, + Municipio { + ibge_code: 3114709, + name: "Carvalhópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3114907, + name: "Casa Grande", + state: State::MG, + }, + Municipio { + ibge_code: 3115003, + name: "Cascalho Rico", + state: State::MG, + }, + Municipio { + ibge_code: 3115300, + name: "Cataguases", + state: State::MG, + }, + Municipio { + ibge_code: 3115359, + name: "Catas Altas", + state: State::MG, + }, + Municipio { + ibge_code: 3115409, + name: "Catas Altas da Noruega", + state: State::MG, + }, + Municipio { + ibge_code: 3115458, + name: "Catuji", + state: State::MG, + }, + Municipio { + ibge_code: 3115474, + name: "Catuti", + state: State::MG, + }, + Municipio { + ibge_code: 3115508, + name: "Caxambu", + state: State::MG, + }, + Municipio { + ibge_code: 3115607, + name: "Cedro do Abaeté", + state: State::MG, + }, + Municipio { + ibge_code: 3115706, + name: "Central de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3115805, + name: "Centralina", + state: State::MG, + }, + Municipio { + ibge_code: 3116001, + name: "Chalé", + state: State::MG, + }, + Municipio { + ibge_code: 3116159, + name: "Chapada Gaúcha", + state: State::MG, + }, + Municipio { + ibge_code: 3116100, + name: "Chapada do Norte", + state: State::MG, + }, + Municipio { + ibge_code: 3116209, + name: "Chiador", + state: State::MG, + }, + Municipio { + ibge_code: 3115904, + name: "Chácara", + state: State::MG, + }, + Municipio { + ibge_code: 3116308, + name: "Cipotânea", + state: State::MG, + }, + Municipio { + ibge_code: 3116407, + name: "Claraval", + state: State::MG, + }, + Municipio { + ibge_code: 3116506, + name: "Claro dos Poções", + state: State::MG, + }, + Municipio { + ibge_code: 3116605, + name: "Cláudio", + state: State::MG, + }, + Municipio { + ibge_code: 3116704, + name: "Coimbra", + state: State::MG, + }, + Municipio { + ibge_code: 3116803, + name: "Coluna", + state: State::MG, + }, + Municipio { + ibge_code: 3116902, + name: "Comendador Gomes", + state: State::MG, + }, + Municipio { + ibge_code: 3117009, + name: "Comercinho", + state: State::MG, + }, + Municipio { + ibge_code: 3117108, + name: "Conceição da Aparecida", + state: State::MG, + }, + Municipio { + ibge_code: 3115201, + name: "Conceição da Barra de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3117306, + name: "Conceição das Alagoas", + state: State::MG, + }, + Municipio { + ibge_code: 3117207, + name: "Conceição das Pedras", + state: State::MG, + }, + Municipio { + ibge_code: 3117405, + name: "Conceição de Ipanema", + state: State::MG, + }, + Municipio { + ibge_code: 3117504, + name: "Conceição do Mato Dentro", + state: State::MG, + }, + Municipio { + ibge_code: 3117603, + name: "Conceição do Pará", + state: State::MG, + }, + Municipio { + ibge_code: 3117702, + name: "Conceição do Rio Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3117801, + name: "Conceição dos Ouros", + state: State::MG, + }, + Municipio { + ibge_code: 3117876, + name: "Confins", + state: State::MG, + }, + Municipio { + ibge_code: 3117900, + name: "Congonhal", + state: State::MG, + }, + Municipio { + ibge_code: 3118007, + name: "Congonhas", + state: State::MG, + }, + Municipio { + ibge_code: 3118106, + name: "Congonhas do Norte", + state: State::MG, + }, + Municipio { + ibge_code: 3118205, + name: "Conquista", + state: State::MG, + }, + Municipio { + ibge_code: 3118304, + name: "Conselheiro Lafaiete", + state: State::MG, + }, + Municipio { + ibge_code: 3118403, + name: "Conselheiro Pena", + state: State::MG, + }, + Municipio { + ibge_code: 3118502, + name: "Consolação", + state: State::MG, + }, + Municipio { + ibge_code: 3118601, + name: "Contagem", + state: State::MG, + }, + Municipio { + ibge_code: 3118700, + name: "Coqueiral", + state: State::MG, + }, + Municipio { + ibge_code: 3118809, + name: "Coração de Jesus", + state: State::MG, + }, + Municipio { + ibge_code: 3118908, + name: "Cordisburgo", + state: State::MG, + }, + Municipio { + ibge_code: 3119005, + name: "Cordislândia", + state: State::MG, + }, + Municipio { + ibge_code: 3119104, + name: "Corinto", + state: State::MG, + }, + Municipio { + ibge_code: 3119203, + name: "Coroaci", + state: State::MG, + }, + Municipio { + ibge_code: 3119302, + name: "Coromandel", + state: State::MG, + }, + Municipio { + ibge_code: 3119401, + name: "Coronel Fabriciano", + state: State::MG, + }, + Municipio { + ibge_code: 3119500, + name: "Coronel Murta", + state: State::MG, + }, + Municipio { + ibge_code: 3119609, + name: "Coronel Pacheco", + state: State::MG, + }, + Municipio { + ibge_code: 3119708, + name: "Coronel Xavier Chaves", + state: State::MG, + }, + Municipio { + ibge_code: 3120102, + name: "Couto de Magalhães de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3120201, + name: "Cristais", + state: State::MG, + }, + Municipio { + ibge_code: 3120409, + name: "Cristiano Otoni", + state: State::MG, + }, + Municipio { + ibge_code: 3120508, + name: "Cristina", + state: State::MG, + }, + Municipio { + ibge_code: 3120300, + name: "Cristália", + state: State::MG, + }, + Municipio { + ibge_code: 3120151, + name: "Crisólita", + state: State::MG, + }, + Municipio { + ibge_code: 3120607, + name: "Crucilândia", + state: State::MG, + }, + Municipio { + ibge_code: 3120706, + name: "Cruzeiro da Fortaleza", + state: State::MG, + }, + Municipio { + ibge_code: 3120805, + name: "Cruzília", + state: State::MG, + }, + Municipio { + ibge_code: 3120839, + name: "Cuparaque", + state: State::MG, + }, + Municipio { + ibge_code: 3120870, + name: "Curral de Dentro", + state: State::MG, + }, + Municipio { + ibge_code: 3120904, + name: "Curvelo", + state: State::MG, + }, + Municipio { + ibge_code: 3115102, + name: "Cássia", + state: State::MG, + }, + Municipio { + ibge_code: 3119807, + name: "Córrego Danta", + state: State::MG, + }, + Municipio { + ibge_code: 3119955, + name: "Córrego Fundo", + state: State::MG, + }, + Municipio { + ibge_code: 3120003, + name: "Córrego Novo", + state: State::MG, + }, + Municipio { + ibge_code: 3119906, + name: "Córrego do Bom Jesus", + state: State::MG, + }, + Municipio { + ibge_code: 3117836, + name: "Cônego Marinho", + state: State::MG, + }, + Municipio { + ibge_code: 3121001, + name: "Datas", + state: State::MG, + }, + Municipio { + ibge_code: 3121100, + name: "Delfim Moreira", + state: State::MG, + }, + Municipio { + ibge_code: 3121209, + name: "Delfinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3121258, + name: "Delta", + state: State::MG, + }, + Municipio { + ibge_code: 3121308, + name: "Descoberto", + state: State::MG, + }, + Municipio { + ibge_code: 3121407, + name: "Desterro de Entre Rios", + state: State::MG, + }, + Municipio { + ibge_code: 3121506, + name: "Desterro do Melo", + state: State::MG, + }, + Municipio { + ibge_code: 3121605, + name: "Diamantina", + state: State::MG, + }, + Municipio { + ibge_code: 3121704, + name: "Diogo de Vasconcelos", + state: State::MG, + }, + Municipio { + ibge_code: 3121803, + name: "Dionísio", + state: State::MG, + }, + Municipio { + ibge_code: 3122009, + name: "Divino", + state: State::MG, + }, + Municipio { + ibge_code: 3122108, + name: "Divino das Laranjeiras", + state: State::MG, + }, + Municipio { + ibge_code: 3122207, + name: "Divinolândia de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3121902, + name: "Divinésia", + state: State::MG, + }, + Municipio { + ibge_code: 3122306, + name: "Divinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3122355, + name: "Divisa Alegre", + state: State::MG, + }, + Municipio { + ibge_code: 3122405, + name: "Divisa Nova", + state: State::MG, + }, + Municipio { + ibge_code: 3122454, + name: "Divisópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3122470, + name: "Dom Bosco", + state: State::MG, + }, + Municipio { + ibge_code: 3122504, + name: "Dom Cavati", + state: State::MG, + }, + Municipio { + ibge_code: 3122603, + name: "Dom Joaquim", + state: State::MG, + }, + Municipio { + ibge_code: 3122702, + name: "Dom Silvério", + state: State::MG, + }, + Municipio { + ibge_code: 3122801, + name: "Dom Viçoso", + state: State::MG, + }, + Municipio { + ibge_code: 3122900, + name: "Dona Euzébia", + state: State::MG, + }, + Municipio { + ibge_code: 3123007, + name: "Dores de Campos", + state: State::MG, + }, + Municipio { + ibge_code: 3123106, + name: "Dores de Guanhães", + state: State::MG, + }, + Municipio { + ibge_code: 3123205, + name: "Dores do Indaiá", + state: State::MG, + }, + Municipio { + ibge_code: 3123304, + name: "Dores do Turvo", + state: State::MG, + }, + Municipio { + ibge_code: 3123403, + name: "Doresópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3123502, + name: "Douradoquara", + state: State::MG, + }, + Municipio { + ibge_code: 3123528, + name: "Durandé", + state: State::MG, + }, + Municipio { + ibge_code: 3123601, + name: "Elói Mendes", + state: State::MG, + }, + Municipio { + ibge_code: 3123700, + name: "Engenheiro Caldas", + state: State::MG, + }, + Municipio { + ibge_code: 3123809, + name: "Engenheiro Navarro", + state: State::MG, + }, + Municipio { + ibge_code: 3123858, + name: "Entre Folhas", + state: State::MG, + }, + Municipio { + ibge_code: 3123908, + name: "Entre Rios de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3124005, + name: "Ervália", + state: State::MG, + }, + Municipio { + ibge_code: 3124104, + name: "Esmeraldas", + state: State::MG, + }, + Municipio { + ibge_code: 3124203, + name: "Espera Feliz", + state: State::MG, + }, + Municipio { + ibge_code: 3124302, + name: "Espinosa", + state: State::MG, + }, + Municipio { + ibge_code: 3124401, + name: "Espírito Santo do Dourado", + state: State::MG, + }, + Municipio { + ibge_code: 3124500, + name: "Estiva", + state: State::MG, + }, + Municipio { + ibge_code: 3124609, + name: "Estrela Dalva", + state: State::MG, + }, + Municipio { + ibge_code: 3124708, + name: "Estrela do Indaiá", + state: State::MG, + }, + Municipio { + ibge_code: 3124807, + name: "Estrela do Sul", + state: State::MG, + }, + Municipio { + ibge_code: 3124906, + name: "Eugenópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3125002, + name: "Ewbank da Câmara", + state: State::MG, + }, + Municipio { + ibge_code: 3125101, + name: "Extrema", + state: State::MG, + }, + Municipio { + ibge_code: 3125200, + name: "Fama", + state: State::MG, + }, + Municipio { + ibge_code: 3125309, + name: "Faria Lemos", + state: State::MG, + }, + Municipio { + ibge_code: 3125606, + name: "Felisburgo", + state: State::MG, + }, + Municipio { + ibge_code: 3125705, + name: "Felixlândia", + state: State::MG, + }, + Municipio { + ibge_code: 3125408, + name: "Felício dos Santos", + state: State::MG, + }, + Municipio { + ibge_code: 3125804, + name: "Fernandes Tourinho", + state: State::MG, + }, + Municipio { + ibge_code: 3125903, + name: "Ferros", + state: State::MG, + }, + Municipio { + ibge_code: 3125952, + name: "Fervedouro", + state: State::MG, + }, + Municipio { + ibge_code: 3126000, + name: "Florestal", + state: State::MG, + }, + Municipio { + ibge_code: 3126109, + name: "Formiga", + state: State::MG, + }, + Municipio { + ibge_code: 3126208, + name: "Formoso", + state: State::MG, + }, + Municipio { + ibge_code: 3126307, + name: "Fortaleza de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3126406, + name: "Fortuna de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3126505, + name: "Francisco Badaró", + state: State::MG, + }, + Municipio { + ibge_code: 3126604, + name: "Francisco Dumont", + state: State::MG, + }, + Municipio { + ibge_code: 3126703, + name: "Francisco Sá", + state: State::MG, + }, + Municipio { + ibge_code: 3126752, + name: "Franciscópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3126802, + name: "Frei Gaspar", + state: State::MG, + }, + Municipio { + ibge_code: 3126901, + name: "Frei Inocêncio", + state: State::MG, + }, + Municipio { + ibge_code: 3126950, + name: "Frei Lagonegro", + state: State::MG, + }, + Municipio { + ibge_code: 3127008, + name: "Fronteira", + state: State::MG, + }, + Municipio { + ibge_code: 3127057, + name: "Fronteira dos Vales", + state: State::MG, + }, + Municipio { + ibge_code: 3127073, + name: "Fruta de Leite", + state: State::MG, + }, + Municipio { + ibge_code: 3127107, + name: "Frutal", + state: State::MG, + }, + Municipio { + ibge_code: 3127206, + name: "Funilândia", + state: State::MG, + }, + Municipio { + ibge_code: 3127305, + name: "Galiléia", + state: State::MG, + }, + Municipio { + ibge_code: 3127339, + name: "Gameleiras", + state: State::MG, + }, + Municipio { + ibge_code: 3127354, + name: "Glaucilândia", + state: State::MG, + }, + Municipio { + ibge_code: 3127370, + name: "Goiabeira", + state: State::MG, + }, + Municipio { + ibge_code: 3127388, + name: "Goianá", + state: State::MG, + }, + Municipio { + ibge_code: 3127503, + name: "Gonzaga", + state: State::MG, + }, + Municipio { + ibge_code: 3127404, + name: "Gonçalves", + state: State::MG, + }, + Municipio { + ibge_code: 3127602, + name: "Gouveia", + state: State::MG, + }, + Municipio { + ibge_code: 3127701, + name: "Governador Valadares", + state: State::MG, + }, + Municipio { + ibge_code: 3127909, + name: "Grupiara", + state: State::MG, + }, + Municipio { + ibge_code: 3127800, + name: "Grão Mogol", + state: State::MG, + }, + Municipio { + ibge_code: 3128006, + name: "Guanhães", + state: State::MG, + }, + Municipio { + ibge_code: 3128105, + name: "Guapé", + state: State::MG, + }, + Municipio { + ibge_code: 3128204, + name: "Guaraciaba", + state: State::MG, + }, + Municipio { + ibge_code: 3128253, + name: "Guaraciama", + state: State::MG, + }, + Municipio { + ibge_code: 3128402, + name: "Guarani", + state: State::MG, + }, + Municipio { + ibge_code: 3128303, + name: "Guaranésia", + state: State::MG, + }, + Municipio { + ibge_code: 3128501, + name: "Guarará", + state: State::MG, + }, + Municipio { + ibge_code: 3128600, + name: "Guarda-Mor", + state: State::MG, + }, + Municipio { + ibge_code: 3128709, + name: "Guaxupé", + state: State::MG, + }, + Municipio { + ibge_code: 3128808, + name: "Guidoval", + state: State::MG, + }, + Municipio { + ibge_code: 3128907, + name: "Guimarânia", + state: State::MG, + }, + Municipio { + ibge_code: 3129004, + name: "Guiricema", + state: State::MG, + }, + Municipio { + ibge_code: 3129103, + name: "Gurinhatã", + state: State::MG, + }, + Municipio { + ibge_code: 3129202, + name: "Heliodora", + state: State::MG, + }, + Municipio { + ibge_code: 3129301, + name: "Iapu", + state: State::MG, + }, + Municipio { + ibge_code: 3129400, + name: "Ibertioga", + state: State::MG, + }, + Municipio { + ibge_code: 3129608, + name: "Ibiaí", + state: State::MG, + }, + Municipio { + ibge_code: 3129657, + name: "Ibiracatu", + state: State::MG, + }, + Municipio { + ibge_code: 3129707, + name: "Ibiraci", + state: State::MG, + }, + Municipio { + ibge_code: 3129806, + name: "Ibirité", + state: State::MG, + }, + Municipio { + ibge_code: 3129905, + name: "Ibitiúra de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3130002, + name: "Ibituruna", + state: State::MG, + }, + Municipio { + ibge_code: 3129509, + name: "Ibiá", + state: State::MG, + }, + Municipio { + ibge_code: 3130051, + name: "Icaraí de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3130101, + name: "Igarapé", + state: State::MG, + }, + Municipio { + ibge_code: 3130200, + name: "Igaratinga", + state: State::MG, + }, + Municipio { + ibge_code: 3130309, + name: "Iguatama", + state: State::MG, + }, + Municipio { + ibge_code: 3130408, + name: "Ijaci", + state: State::MG, + }, + Municipio { + ibge_code: 3130507, + name: "Ilicínea", + state: State::MG, + }, + Municipio { + ibge_code: 3130556, + name: "Imbé de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3130606, + name: "Inconfidentes", + state: State::MG, + }, + Municipio { + ibge_code: 3130655, + name: "Indaiabira", + state: State::MG, + }, + Municipio { + ibge_code: 3130705, + name: "Indianópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3130804, + name: "Ingaí", + state: State::MG, + }, + Municipio { + ibge_code: 3130903, + name: "Inhapim", + state: State::MG, + }, + Municipio { + ibge_code: 3131000, + name: "Inhaúma", + state: State::MG, + }, + Municipio { + ibge_code: 3131109, + name: "Inimutaba", + state: State::MG, + }, + Municipio { + ibge_code: 3131158, + name: "Ipaba", + state: State::MG, + }, + Municipio { + ibge_code: 3131208, + name: "Ipanema", + state: State::MG, + }, + Municipio { + ibge_code: 3131307, + name: "Ipatinga", + state: State::MG, + }, + Municipio { + ibge_code: 3131406, + name: "Ipiaçu", + state: State::MG, + }, + Municipio { + ibge_code: 3131505, + name: "Ipuiúna", + state: State::MG, + }, + Municipio { + ibge_code: 3131604, + name: "Iraí de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3131703, + name: "Itabira", + state: State::MG, + }, + Municipio { + ibge_code: 3131802, + name: "Itabirinha", + state: State::MG, + }, + Municipio { + ibge_code: 3131901, + name: "Itabirito", + state: State::MG, + }, + Municipio { + ibge_code: 3132008, + name: "Itacambira", + state: State::MG, + }, + Municipio { + ibge_code: 3132107, + name: "Itacarambi", + state: State::MG, + }, + Municipio { + ibge_code: 3132206, + name: "Itaguara", + state: State::MG, + }, + Municipio { + ibge_code: 3132305, + name: "Itaipé", + state: State::MG, + }, + Municipio { + ibge_code: 3132404, + name: "Itajubá", + state: State::MG, + }, + Municipio { + ibge_code: 3132503, + name: "Itamarandiba", + state: State::MG, + }, + Municipio { + ibge_code: 3132602, + name: "Itamarati de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3132701, + name: "Itambacuri", + state: State::MG, + }, + Municipio { + ibge_code: 3132800, + name: "Itambé do Mato Dentro", + state: State::MG, + }, + Municipio { + ibge_code: 3132909, + name: "Itamogi", + state: State::MG, + }, + Municipio { + ibge_code: 3133006, + name: "Itamonte", + state: State::MG, + }, + Municipio { + ibge_code: 3133105, + name: "Itanhandu", + state: State::MG, + }, + Municipio { + ibge_code: 3133204, + name: "Itanhomi", + state: State::MG, + }, + Municipio { + ibge_code: 3133303, + name: "Itaobim", + state: State::MG, + }, + Municipio { + ibge_code: 3133402, + name: "Itapagipe", + state: State::MG, + }, + Municipio { + ibge_code: 3133501, + name: "Itapecerica", + state: State::MG, + }, + Municipio { + ibge_code: 3133600, + name: "Itapeva", + state: State::MG, + }, + Municipio { + ibge_code: 3133709, + name: "Itatiaiuçu", + state: State::MG, + }, + Municipio { + ibge_code: 3133907, + name: "Itaverava", + state: State::MG, + }, + Municipio { + ibge_code: 3133758, + name: "Itaú de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3133808, + name: "Itaúna", + state: State::MG, + }, + Municipio { + ibge_code: 3134004, + name: "Itinga", + state: State::MG, + }, + Municipio { + ibge_code: 3134103, + name: "Itueta", + state: State::MG, + }, + Municipio { + ibge_code: 3134202, + name: "Ituiutaba", + state: State::MG, + }, + Municipio { + ibge_code: 3134301, + name: "Itumirim", + state: State::MG, + }, + Municipio { + ibge_code: 3134400, + name: "Iturama", + state: State::MG, + }, + Municipio { + ibge_code: 3134509, + name: "Itutinga", + state: State::MG, + }, + Municipio { + ibge_code: 3134608, + name: "Jaboticatubas", + state: State::MG, + }, + Municipio { + ibge_code: 3134707, + name: "Jacinto", + state: State::MG, + }, + Municipio { + ibge_code: 3134905, + name: "Jacutinga", + state: State::MG, + }, + Municipio { + ibge_code: 3134806, + name: "Jacuí", + state: State::MG, + }, + Municipio { + ibge_code: 3135001, + name: "Jaguaraçu", + state: State::MG, + }, + Municipio { + ibge_code: 3135076, + name: "Jampruca", + state: State::MG, + }, + Municipio { + ibge_code: 3135100, + name: "Janaúba", + state: State::MG, + }, + Municipio { + ibge_code: 3135209, + name: "Januária", + state: State::MG, + }, + Municipio { + ibge_code: 3135308, + name: "Japaraíba", + state: State::MG, + }, + Municipio { + ibge_code: 3135357, + name: "Japonvar", + state: State::MG, + }, + Municipio { + ibge_code: 3135050, + name: "Jaíba", + state: State::MG, + }, + Municipio { + ibge_code: 3135407, + name: "Jeceaba", + state: State::MG, + }, + Municipio { + ibge_code: 3135456, + name: "Jenipapo de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3135506, + name: "Jequeri", + state: State::MG, + }, + Municipio { + ibge_code: 3135605, + name: "Jequitaí", + state: State::MG, + }, + Municipio { + ibge_code: 3135704, + name: "Jequitibá", + state: State::MG, + }, + Municipio { + ibge_code: 3135803, + name: "Jequitinhonha", + state: State::MG, + }, + Municipio { + ibge_code: 3135902, + name: "Jesuânia", + state: State::MG, + }, + Municipio { + ibge_code: 3136108, + name: "Joanésia", + state: State::MG, + }, + Municipio { + ibge_code: 3136405, + name: "Joaquim Felício", + state: State::MG, + }, + Municipio { + ibge_code: 3136009, + name: "Joaíma", + state: State::MG, + }, + Municipio { + ibge_code: 3136504, + name: "Jordânia", + state: State::MG, + }, + Municipio { + ibge_code: 3136579, + name: "Josenópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3136520, + name: "José Gonçalves de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3136553, + name: "José Raydan", + state: State::MG, + }, + Municipio { + ibge_code: 3136207, + name: "João Monlevade", + state: State::MG, + }, + Municipio { + ibge_code: 3136306, + name: "João Pinheiro", + state: State::MG, + }, + Municipio { + ibge_code: 3136652, + name: "Juatuba", + state: State::MG, + }, + Municipio { + ibge_code: 3136702, + name: "Juiz de Fora", + state: State::MG, + }, + Municipio { + ibge_code: 3136801, + name: "Juramento", + state: State::MG, + }, + Municipio { + ibge_code: 3136900, + name: "Juruaia", + state: State::MG, + }, + Municipio { + ibge_code: 3136959, + name: "Juvenília", + state: State::MG, + }, + Municipio { + ibge_code: 3137007, + name: "Ladainha", + state: State::MG, + }, + Municipio { + ibge_code: 3137106, + name: "Lagamar", + state: State::MG, + }, + Municipio { + ibge_code: 3137403, + name: "Lagoa Dourada", + state: State::MG, + }, + Municipio { + ibge_code: 3137502, + name: "Lagoa Formosa", + state: State::MG, + }, + Municipio { + ibge_code: 3137536, + name: "Lagoa Grande", + state: State::MG, + }, + Municipio { + ibge_code: 3137601, + name: "Lagoa Santa", + state: State::MG, + }, + Municipio { + ibge_code: 3137205, + name: "Lagoa da Prata", + state: State::MG, + }, + Municipio { + ibge_code: 3137304, + name: "Lagoa dos Patos", + state: State::MG, + }, + Municipio { + ibge_code: 3137700, + name: "Lajinha", + state: State::MG, + }, + Municipio { + ibge_code: 3137809, + name: "Lambari", + state: State::MG, + }, + Municipio { + ibge_code: 3137908, + name: "Lamim", + state: State::MG, + }, + Municipio { + ibge_code: 3138005, + name: "Laranjal", + state: State::MG, + }, + Municipio { + ibge_code: 3138104, + name: "Lassance", + state: State::MG, + }, + Municipio { + ibge_code: 3138203, + name: "Lavras", + state: State::MG, + }, + Municipio { + ibge_code: 3138302, + name: "Leandro Ferreira", + state: State::MG, + }, + Municipio { + ibge_code: 3138351, + name: "Leme do Prado", + state: State::MG, + }, + Municipio { + ibge_code: 3138401, + name: "Leopoldina", + state: State::MG, + }, + Municipio { + ibge_code: 3138500, + name: "Liberdade", + state: State::MG, + }, + Municipio { + ibge_code: 3138609, + name: "Lima Duarte", + state: State::MG, + }, + Municipio { + ibge_code: 3138625, + name: "Limeira do Oeste", + state: State::MG, + }, + Municipio { + ibge_code: 3138658, + name: "Lontra", + state: State::MG, + }, + Municipio { + ibge_code: 3138674, + name: "Luisburgo", + state: State::MG, + }, + Municipio { + ibge_code: 3138682, + name: "Luislândia", + state: State::MG, + }, + Municipio { + ibge_code: 3138708, + name: "Luminárias", + state: State::MG, + }, + Municipio { + ibge_code: 3138807, + name: "Luz", + state: State::MG, + }, + Municipio { + ibge_code: 3138906, + name: "Machacalis", + state: State::MG, + }, + Municipio { + ibge_code: 3139003, + name: "Machado", + state: State::MG, + }, + Municipio { + ibge_code: 3139102, + name: "Madre de Deus de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3139201, + name: "Malacacheta", + state: State::MG, + }, + Municipio { + ibge_code: 3139250, + name: "Mamonas", + state: State::MG, + }, + Municipio { + ibge_code: 3139300, + name: "Manga", + state: State::MG, + }, + Municipio { + ibge_code: 3139409, + name: "Manhuaçu", + state: State::MG, + }, + Municipio { + ibge_code: 3139508, + name: "Manhumirim", + state: State::MG, + }, + Municipio { + ibge_code: 3139607, + name: "Mantena", + state: State::MG, + }, + Municipio { + ibge_code: 3139805, + name: "Mar de Espanha", + state: State::MG, + }, + Municipio { + ibge_code: 3139706, + name: "Maravilhas", + state: State::MG, + }, + Municipio { + ibge_code: 3139904, + name: "Maria da Fé", + state: State::MG, + }, + Municipio { + ibge_code: 3140001, + name: "Mariana", + state: State::MG, + }, + Municipio { + ibge_code: 3140100, + name: "Marilac", + state: State::MG, + }, + Municipio { + ibge_code: 3140209, + name: "Maripá de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3140308, + name: "Marliéria", + state: State::MG, + }, + Municipio { + ibge_code: 3140407, + name: "Marmelópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3140506, + name: "Martinho Campos", + state: State::MG, + }, + Municipio { + ibge_code: 3140530, + name: "Martins Soares", + state: State::MG, + }, + Municipio { + ibge_code: 3140555, + name: "Mata Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3140605, + name: "Materlândia", + state: State::MG, + }, + Municipio { + ibge_code: 3140704, + name: "Mateus Leme", + state: State::MG, + }, + Municipio { + ibge_code: 3171501, + name: "Mathias Lobato", + state: State::MG, + }, + Municipio { + ibge_code: 3140803, + name: "Matias Barbosa", + state: State::MG, + }, + Municipio { + ibge_code: 3140852, + name: "Matias Cardoso", + state: State::MG, + }, + Municipio { + ibge_code: 3140902, + name: "Matipó", + state: State::MG, + }, + Municipio { + ibge_code: 3141009, + name: "Mato Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3141108, + name: "Matozinhos", + state: State::MG, + }, + Municipio { + ibge_code: 3141207, + name: "Matutina", + state: State::MG, + }, + Municipio { + ibge_code: 3141306, + name: "Medeiros", + state: State::MG, + }, + Municipio { + ibge_code: 3141405, + name: "Medina", + state: State::MG, + }, + Municipio { + ibge_code: 3141504, + name: "Mendes Pimentel", + state: State::MG, + }, + Municipio { + ibge_code: 3141603, + name: "Mercês", + state: State::MG, + }, + Municipio { + ibge_code: 3141702, + name: "Mesquita", + state: State::MG, + }, + Municipio { + ibge_code: 3141801, + name: "Minas Novas", + state: State::MG, + }, + Municipio { + ibge_code: 3141900, + name: "Minduri", + state: State::MG, + }, + Municipio { + ibge_code: 3142007, + name: "Mirabela", + state: State::MG, + }, + Municipio { + ibge_code: 3142106, + name: "Miradouro", + state: State::MG, + }, + Municipio { + ibge_code: 3142254, + name: "Miravânia", + state: State::MG, + }, + Municipio { + ibge_code: 3142205, + name: "Miraí", + state: State::MG, + }, + Municipio { + ibge_code: 3142304, + name: "Moeda", + state: State::MG, + }, + Municipio { + ibge_code: 3142403, + name: "Moema", + state: State::MG, + }, + Municipio { + ibge_code: 3142502, + name: "Monjolos", + state: State::MG, + }, + Municipio { + ibge_code: 3142601, + name: "Monsenhor Paulo", + state: State::MG, + }, + Municipio { + ibge_code: 3142700, + name: "Montalvânia", + state: State::MG, + }, + Municipio { + ibge_code: 3142809, + name: "Monte Alegre de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3142908, + name: "Monte Azul", + state: State::MG, + }, + Municipio { + ibge_code: 3143005, + name: "Monte Belo", + state: State::MG, + }, + Municipio { + ibge_code: 3143104, + name: "Monte Carmelo", + state: State::MG, + }, + Municipio { + ibge_code: 3143153, + name: "Monte Formoso", + state: State::MG, + }, + Municipio { + ibge_code: 3143203, + name: "Monte Santo de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3143401, + name: "Monte Sião", + state: State::MG, + }, + Municipio { + ibge_code: 3143302, + name: "Montes Claros", + state: State::MG, + }, + Municipio { + ibge_code: 3143450, + name: "Montezuma", + state: State::MG, + }, + Municipio { + ibge_code: 3143500, + name: "Morada Nova de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3143609, + name: "Morro da Garça", + state: State::MG, + }, + Municipio { + ibge_code: 3143708, + name: "Morro do Pilar", + state: State::MG, + }, + Municipio { + ibge_code: 3143807, + name: "Munhoz", + state: State::MG, + }, + Municipio { + ibge_code: 3143906, + name: "Muriaé", + state: State::MG, + }, + Municipio { + ibge_code: 3144003, + name: "Mutum", + state: State::MG, + }, + Municipio { + ibge_code: 3144102, + name: "Muzambinho", + state: State::MG, + }, + Municipio { + ibge_code: 3140159, + name: "Mário Campos", + state: State::MG, + }, + Municipio { + ibge_code: 3144201, + name: "Nacip Raydan", + state: State::MG, + }, + Municipio { + ibge_code: 3144300, + name: "Nanuque", + state: State::MG, + }, + Municipio { + ibge_code: 3144359, + name: "Naque", + state: State::MG, + }, + Municipio { + ibge_code: 3144375, + name: "Natalândia", + state: State::MG, + }, + Municipio { + ibge_code: 3144409, + name: "Natércia", + state: State::MG, + }, + Municipio { + ibge_code: 3144508, + name: "Nazareno", + state: State::MG, + }, + Municipio { + ibge_code: 3144607, + name: "Nepomuceno", + state: State::MG, + }, + Municipio { + ibge_code: 3144656, + name: "Ninheira", + state: State::MG, + }, + Municipio { + ibge_code: 3144672, + name: "Nova Belém", + state: State::MG, + }, + Municipio { + ibge_code: 3144706, + name: "Nova Era", + state: State::MG, + }, + Municipio { + ibge_code: 3144805, + name: "Nova Lima", + state: State::MG, + }, + Municipio { + ibge_code: 3144904, + name: "Nova Módica", + state: State::MG, + }, + Municipio { + ibge_code: 3145000, + name: "Nova Ponte", + state: State::MG, + }, + Municipio { + ibge_code: 3145059, + name: "Nova Porteirinha", + state: State::MG, + }, + Municipio { + ibge_code: 3145109, + name: "Nova Resende", + state: State::MG, + }, + Municipio { + ibge_code: 3145208, + name: "Nova Serrana", + state: State::MG, + }, + Municipio { + ibge_code: 3136603, + name: "Nova União", + state: State::MG, + }, + Municipio { + ibge_code: 3145307, + name: "Novo Cruzeiro", + state: State::MG, + }, + Municipio { + ibge_code: 3145356, + name: "Novo Oriente de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3145372, + name: "Novorizonte", + state: State::MG, + }, + Municipio { + ibge_code: 3145406, + name: "Olaria", + state: State::MG, + }, + Municipio { + ibge_code: 3145455, + name: "Olhos-d'Água", + state: State::MG, + }, + Municipio { + ibge_code: 3145604, + name: "Oliveira", + state: State::MG, + }, + Municipio { + ibge_code: 3145703, + name: "Oliveira Fortes", + state: State::MG, + }, + Municipio { + ibge_code: 3145505, + name: "Olímpio Noronha", + state: State::MG, + }, + Municipio { + ibge_code: 3145802, + name: "Onça de Pitangui", + state: State::MG, + }, + Municipio { + ibge_code: 3145851, + name: "Oratórios", + state: State::MG, + }, + Municipio { + ibge_code: 3145877, + name: "Orizânia", + state: State::MG, + }, + Municipio { + ibge_code: 3145901, + name: "Ouro Branco", + state: State::MG, + }, + Municipio { + ibge_code: 3146008, + name: "Ouro Fino", + state: State::MG, + }, + Municipio { + ibge_code: 3146107, + name: "Ouro Preto", + state: State::MG, + }, + Municipio { + ibge_code: 3146206, + name: "Ouro Verde de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3146255, + name: "Padre Carvalho", + state: State::MG, + }, + Municipio { + ibge_code: 3146305, + name: "Padre Paraíso", + state: State::MG, + }, + Municipio { + ibge_code: 3146552, + name: "Pai Pedro", + state: State::MG, + }, + Municipio { + ibge_code: 3146404, + name: "Paineiras", + state: State::MG, + }, + Municipio { + ibge_code: 3146503, + name: "Pains", + state: State::MG, + }, + Municipio { + ibge_code: 3146602, + name: "Paiva", + state: State::MG, + }, + Municipio { + ibge_code: 3146701, + name: "Palma", + state: State::MG, + }, + Municipio { + ibge_code: 3146750, + name: "Palmópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3146909, + name: "Papagaios", + state: State::MG, + }, + Municipio { + ibge_code: 3147006, + name: "Paracatu", + state: State::MG, + }, + Municipio { + ibge_code: 3147204, + name: "Paraguaçu", + state: State::MG, + }, + Municipio { + ibge_code: 3147303, + name: "Paraisópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3147402, + name: "Paraopeba", + state: State::MG, + }, + Municipio { + ibge_code: 3147105, + name: "Pará de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3147600, + name: "Passa Quatro", + state: State::MG, + }, + Municipio { + ibge_code: 3147709, + name: "Passa Tempo", + state: State::MG, + }, + Municipio { + ibge_code: 3147808, + name: "Passa Vinte", + state: State::MG, + }, + Municipio { + ibge_code: 3147501, + name: "Passabém", + state: State::MG, + }, + Municipio { + ibge_code: 3147907, + name: "Passos", + state: State::MG, + }, + Municipio { + ibge_code: 3147956, + name: "Patis", + state: State::MG, + }, + Municipio { + ibge_code: 3148004, + name: "Patos de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3148103, + name: "Patrocínio", + state: State::MG, + }, + Municipio { + ibge_code: 3148202, + name: "Patrocínio do Muriaé", + state: State::MG, + }, + Municipio { + ibge_code: 3148301, + name: "Paula Cândido", + state: State::MG, + }, + Municipio { + ibge_code: 3148400, + name: "Paulistas", + state: State::MG, + }, + Municipio { + ibge_code: 3148509, + name: "Pavão", + state: State::MG, + }, + Municipio { + ibge_code: 3148707, + name: "Pedra Azul", + state: State::MG, + }, + Municipio { + ibge_code: 3148756, + name: "Pedra Bonita", + state: State::MG, + }, + Municipio { + ibge_code: 3149002, + name: "Pedra Dourada", + state: State::MG, + }, + Municipio { + ibge_code: 3148806, + name: "Pedra do Anta", + state: State::MG, + }, + Municipio { + ibge_code: 3148905, + name: "Pedra do Indaiá", + state: State::MG, + }, + Municipio { + ibge_code: 3149101, + name: "Pedralva", + state: State::MG, + }, + Municipio { + ibge_code: 3149150, + name: "Pedras de Maria da Cruz", + state: State::MG, + }, + Municipio { + ibge_code: 3149200, + name: "Pedrinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3149309, + name: "Pedro Leopoldo", + state: State::MG, + }, + Municipio { + ibge_code: 3149408, + name: "Pedro Teixeira", + state: State::MG, + }, + Municipio { + ibge_code: 3149507, + name: "Pequeri", + state: State::MG, + }, + Municipio { + ibge_code: 3149606, + name: "Pequi", + state: State::MG, + }, + Municipio { + ibge_code: 3149705, + name: "Perdigão", + state: State::MG, + }, + Municipio { + ibge_code: 3149804, + name: "Perdizes", + state: State::MG, + }, + Municipio { + ibge_code: 3149903, + name: "Perdões", + state: State::MG, + }, + Municipio { + ibge_code: 3149952, + name: "Periquito", + state: State::MG, + }, + Municipio { + ibge_code: 3150000, + name: "Pescador", + state: State::MG, + }, + Municipio { + ibge_code: 3148608, + name: "Peçanha", + state: State::MG, + }, + Municipio { + ibge_code: 3150109, + name: "Piau", + state: State::MG, + }, + Municipio { + ibge_code: 3150158, + name: "Piedade de Caratinga", + state: State::MG, + }, + Municipio { + ibge_code: 3150208, + name: "Piedade de Ponte Nova", + state: State::MG, + }, + Municipio { + ibge_code: 3150307, + name: "Piedade do Rio Grande", + state: State::MG, + }, + Municipio { + ibge_code: 3150406, + name: "Piedade dos Gerais", + state: State::MG, + }, + Municipio { + ibge_code: 3150505, + name: "Pimenta", + state: State::MG, + }, + Municipio { + ibge_code: 3150539, + name: "Pingo-d'Água", + state: State::MG, + }, + Municipio { + ibge_code: 3150570, + name: "Pintópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3150604, + name: "Piracema", + state: State::MG, + }, + Municipio { + ibge_code: 3150703, + name: "Pirajuba", + state: State::MG, + }, + Municipio { + ibge_code: 3150802, + name: "Piranga", + state: State::MG, + }, + Municipio { + ibge_code: 3151008, + name: "Piranguinho", + state: State::MG, + }, + Municipio { + ibge_code: 3150901, + name: "Piranguçu", + state: State::MG, + }, + Municipio { + ibge_code: 3151107, + name: "Pirapetinga", + state: State::MG, + }, + Municipio { + ibge_code: 3151206, + name: "Pirapora", + state: State::MG, + }, + Municipio { + ibge_code: 3151305, + name: "Piraúba", + state: State::MG, + }, + Municipio { + ibge_code: 3151404, + name: "Pitangui", + state: State::MG, + }, + Municipio { + ibge_code: 3151503, + name: "Piumhi", + state: State::MG, + }, + Municipio { + ibge_code: 3151602, + name: "Planura", + state: State::MG, + }, + Municipio { + ibge_code: 3151909, + name: "Pocrane", + state: State::MG, + }, + Municipio { + ibge_code: 3152006, + name: "Pompéu", + state: State::MG, + }, + Municipio { + ibge_code: 3152105, + name: "Ponte Nova", + state: State::MG, + }, + Municipio { + ibge_code: 3152131, + name: "Ponto Chique", + state: State::MG, + }, + Municipio { + ibge_code: 3152170, + name: "Ponto dos Volantes", + state: State::MG, + }, + Municipio { + ibge_code: 3152204, + name: "Porteirinha", + state: State::MG, + }, + Municipio { + ibge_code: 3152303, + name: "Porto Firme", + state: State::MG, + }, + Municipio { + ibge_code: 3152402, + name: "Poté", + state: State::MG, + }, + Municipio { + ibge_code: 3152501, + name: "Pouso Alegre", + state: State::MG, + }, + Municipio { + ibge_code: 3152600, + name: "Pouso Alto", + state: State::MG, + }, + Municipio { + ibge_code: 3151701, + name: "Poço Fundo", + state: State::MG, + }, + Municipio { + ibge_code: 3151800, + name: "Poços de Caldas", + state: State::MG, + }, + Municipio { + ibge_code: 3152709, + name: "Prados", + state: State::MG, + }, + Municipio { + ibge_code: 3152808, + name: "Prata", + state: State::MG, + }, + Municipio { + ibge_code: 3153004, + name: "Pratinha", + state: State::MG, + }, + Municipio { + ibge_code: 3152907, + name: "Pratápolis", + state: State::MG, + }, + Municipio { + ibge_code: 3153103, + name: "Presidente Bernardes", + state: State::MG, + }, + Municipio { + ibge_code: 3153202, + name: "Presidente Juscelino", + state: State::MG, + }, + Municipio { + ibge_code: 3153301, + name: "Presidente Kubitschek", + state: State::MG, + }, + Municipio { + ibge_code: 3153400, + name: "Presidente Olegário", + state: State::MG, + }, + Municipio { + ibge_code: 3153608, + name: "Prudente de Morais", + state: State::MG, + }, + Municipio { + ibge_code: 3153707, + name: "Quartel Geral", + state: State::MG, + }, + Municipio { + ibge_code: 3153806, + name: "Queluzito", + state: State::MG, + }, + Municipio { + ibge_code: 3153905, + name: "Raposos", + state: State::MG, + }, + Municipio { + ibge_code: 3154002, + name: "Raul Soares", + state: State::MG, + }, + Municipio { + ibge_code: 3154101, + name: "Recreio", + state: State::MG, + }, + Municipio { + ibge_code: 3154150, + name: "Reduto", + state: State::MG, + }, + Municipio { + ibge_code: 3154200, + name: "Resende Costa", + state: State::MG, + }, + Municipio { + ibge_code: 3154309, + name: "Resplendor", + state: State::MG, + }, + Municipio { + ibge_code: 3154408, + name: "Ressaquinha", + state: State::MG, + }, + Municipio { + ibge_code: 3154457, + name: "Riachinho", + state: State::MG, + }, + Municipio { + ibge_code: 3154507, + name: "Riacho dos Machados", + state: State::MG, + }, + Municipio { + ibge_code: 3154705, + name: "Ribeirão Vermelho", + state: State::MG, + }, + Municipio { + ibge_code: 3154606, + name: "Ribeirão das Neves", + state: State::MG, + }, + Municipio { + ibge_code: 3154804, + name: "Rio Acima", + state: State::MG, + }, + Municipio { + ibge_code: 3154903, + name: "Rio Casca", + state: State::MG, + }, + Municipio { + ibge_code: 3155009, + name: "Rio Doce", + state: State::MG, + }, + Municipio { + ibge_code: 3155207, + name: "Rio Espera", + state: State::MG, + }, + Municipio { + ibge_code: 3155306, + name: "Rio Manso", + state: State::MG, + }, + Municipio { + ibge_code: 3155405, + name: "Rio Novo", + state: State::MG, + }, + Municipio { + ibge_code: 3155504, + name: "Rio Paranaíba", + state: State::MG, + }, + Municipio { + ibge_code: 3155603, + name: "Rio Pardo de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3155702, + name: "Rio Piracicaba", + state: State::MG, + }, + Municipio { + ibge_code: 3155801, + name: "Rio Pomba", + state: State::MG, + }, + Municipio { + ibge_code: 3155900, + name: "Rio Preto", + state: State::MG, + }, + Municipio { + ibge_code: 3156007, + name: "Rio Vermelho", + state: State::MG, + }, + Municipio { + ibge_code: 3155108, + name: "Rio do Prado", + state: State::MG, + }, + Municipio { + ibge_code: 3156106, + name: "Ritápolis", + state: State::MG, + }, + Municipio { + ibge_code: 3156205, + name: "Rochedo de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3156304, + name: "Rodeiro", + state: State::MG, + }, + Municipio { + ibge_code: 3156403, + name: "Romaria", + state: State::MG, + }, + Municipio { + ibge_code: 3156452, + name: "Rosário da Limeira", + state: State::MG, + }, + Municipio { + ibge_code: 3156502, + name: "Rubelita", + state: State::MG, + }, + Municipio { + ibge_code: 3156601, + name: "Rubim", + state: State::MG, + }, + Municipio { + ibge_code: 3156700, + name: "Sabará", + state: State::MG, + }, + Municipio { + ibge_code: 3156809, + name: "Sabinópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3156908, + name: "Sacramento", + state: State::MG, + }, + Municipio { + ibge_code: 3157005, + name: "Salinas", + state: State::MG, + }, + Municipio { + ibge_code: 3157104, + name: "Salto da Divisa", + state: State::MG, + }, + Municipio { + ibge_code: 3157203, + name: "Santa Bárbara", + state: State::MG, + }, + Municipio { + ibge_code: 3157252, + name: "Santa Bárbara do Leste", + state: State::MG, + }, + Municipio { + ibge_code: 3157278, + name: "Santa Bárbara do Monte Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3157302, + name: "Santa Bárbara do Tugúrio", + state: State::MG, + }, + Municipio { + ibge_code: 3157336, + name: "Santa Cruz de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3157377, + name: "Santa Cruz de Salinas", + state: State::MG, + }, + Municipio { + ibge_code: 3157401, + name: "Santa Cruz do Escalvado", + state: State::MG, + }, + Municipio { + ibge_code: 3157500, + name: "Santa Efigênia de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3157609, + name: "Santa Fé de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3157658, + name: "Santa Helena de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3157708, + name: "Santa Juliana", + state: State::MG, + }, + Municipio { + ibge_code: 3157807, + name: "Santa Luzia", + state: State::MG, + }, + Municipio { + ibge_code: 3157906, + name: "Santa Margarida", + state: State::MG, + }, + Municipio { + ibge_code: 3158003, + name: "Santa Maria de Itabira", + state: State::MG, + }, + Municipio { + ibge_code: 3158102, + name: "Santa Maria do Salto", + state: State::MG, + }, + Municipio { + ibge_code: 3158201, + name: "Santa Maria do Suaçuí", + state: State::MG, + }, + Municipio { + ibge_code: 3159209, + name: "Santa Rita de Caldas", + state: State::MG, + }, + Municipio { + ibge_code: 3159407, + name: "Santa Rita de Ibitipoca", + state: State::MG, + }, + Municipio { + ibge_code: 3159308, + name: "Santa Rita de Jacutinga", + state: State::MG, + }, + Municipio { + ibge_code: 3159357, + name: "Santa Rita de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3159506, + name: "Santa Rita do Itueto", + state: State::MG, + }, + Municipio { + ibge_code: 3159605, + name: "Santa Rita do Sapucaí", + state: State::MG, + }, + Municipio { + ibge_code: 3159704, + name: "Santa Rosa da Serra", + state: State::MG, + }, + Municipio { + ibge_code: 3159803, + name: "Santa Vitória", + state: State::MG, + }, + Municipio { + ibge_code: 3158300, + name: "Santana da Vargem", + state: State::MG, + }, + Municipio { + ibge_code: 3158409, + name: "Santana de Cataguases", + state: State::MG, + }, + Municipio { + ibge_code: 3158508, + name: "Santana de Pirapama", + state: State::MG, + }, + Municipio { + ibge_code: 3158607, + name: "Santana do Deserto", + state: State::MG, + }, + Municipio { + ibge_code: 3158706, + name: "Santana do Garambéu", + state: State::MG, + }, + Municipio { + ibge_code: 3158805, + name: "Santana do Jacaré", + state: State::MG, + }, + Municipio { + ibge_code: 3158904, + name: "Santana do Manhuaçu", + state: State::MG, + }, + Municipio { + ibge_code: 3158953, + name: "Santana do Paraíso", + state: State::MG, + }, + Municipio { + ibge_code: 3159001, + name: "Santana do Riacho", + state: State::MG, + }, + Municipio { + ibge_code: 3159100, + name: "Santana dos Montes", + state: State::MG, + }, + Municipio { + ibge_code: 3159902, + name: "Santo Antônio do Amparo", + state: State::MG, + }, + Municipio { + ibge_code: 3160009, + name: "Santo Antônio do Aventureiro", + state: State::MG, + }, + Municipio { + ibge_code: 3160108, + name: "Santo Antônio do Grama", + state: State::MG, + }, + Municipio { + ibge_code: 3160207, + name: "Santo Antônio do Itambé", + state: State::MG, + }, + Municipio { + ibge_code: 3160306, + name: "Santo Antônio do Jacinto", + state: State::MG, + }, + Municipio { + ibge_code: 3160405, + name: "Santo Antônio do Monte", + state: State::MG, + }, + Municipio { + ibge_code: 3160454, + name: "Santo Antônio do Retiro", + state: State::MG, + }, + Municipio { + ibge_code: 3160504, + name: "Santo Antônio do Rio Abaixo", + state: State::MG, + }, + Municipio { + ibge_code: 3160603, + name: "Santo Hipólito", + state: State::MG, + }, + Municipio { + ibge_code: 3160702, + name: "Santos Dumont", + state: State::MG, + }, + Municipio { + ibge_code: 3165404, + name: "Sapucaí-Mirim", + state: State::MG, + }, + Municipio { + ibge_code: 3165503, + name: "Sardoá", + state: State::MG, + }, + Municipio { + ibge_code: 3165537, + name: "Sarzedo", + state: State::MG, + }, + Municipio { + ibge_code: 3165560, + name: "Sem-Peixe", + state: State::MG, + }, + Municipio { + ibge_code: 3165578, + name: "Senador Amaral", + state: State::MG, + }, + Municipio { + ibge_code: 3165602, + name: "Senador Cortes", + state: State::MG, + }, + Municipio { + ibge_code: 3165701, + name: "Senador Firmino", + state: State::MG, + }, + Municipio { + ibge_code: 3165800, + name: "Senador José Bento", + state: State::MG, + }, + Municipio { + ibge_code: 3165909, + name: "Senador Modestino Gonçalves", + state: State::MG, + }, + Municipio { + ibge_code: 3166006, + name: "Senhora de Oliveira", + state: State::MG, + }, + Municipio { + ibge_code: 3166105, + name: "Senhora do Porto", + state: State::MG, + }, + Municipio { + ibge_code: 3166204, + name: "Senhora dos Remédios", + state: State::MG, + }, + Municipio { + ibge_code: 3166303, + name: "Sericita", + state: State::MG, + }, + Municipio { + ibge_code: 3166402, + name: "Seritinga", + state: State::MG, + }, + Municipio { + ibge_code: 3166501, + name: "Serra Azul de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3166600, + name: "Serra da Saudade", + state: State::MG, + }, + Municipio { + ibge_code: 3166808, + name: "Serra do Salitre", + state: State::MG, + }, + Municipio { + ibge_code: 3166709, + name: "Serra dos Aimorés", + state: State::MG, + }, + Municipio { + ibge_code: 3166907, + name: "Serrania", + state: State::MG, + }, + Municipio { + ibge_code: 3167004, + name: "Serranos", + state: State::MG, + }, + Municipio { + ibge_code: 3166956, + name: "Serranópolis de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3167103, + name: "Serro", + state: State::MG, + }, + Municipio { + ibge_code: 3167202, + name: "Sete Lagoas", + state: State::MG, + }, + Municipio { + ibge_code: 3165552, + name: "Setubinha", + state: State::MG, + }, + Municipio { + ibge_code: 3167301, + name: "Silveirânia", + state: State::MG, + }, + Municipio { + ibge_code: 3167400, + name: "Silvianópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3167608, + name: "Simonésia", + state: State::MG, + }, + Municipio { + ibge_code: 3167509, + name: "Simão Pereira", + state: State::MG, + }, + Municipio { + ibge_code: 3167707, + name: "Sobrália", + state: State::MG, + }, + Municipio { + ibge_code: 3167806, + name: "Soledade de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3160801, + name: "São Bento Abade", + state: State::MG, + }, + Municipio { + ibge_code: 3160900, + name: "São Brás do Suaçuí", + state: State::MG, + }, + Municipio { + ibge_code: 3160959, + name: "São Domingos das Dores", + state: State::MG, + }, + Municipio { + ibge_code: 3161007, + name: "São Domingos do Prata", + state: State::MG, + }, + Municipio { + ibge_code: 3161106, + name: "São Francisco", + state: State::MG, + }, + Municipio { + ibge_code: 3161205, + name: "São Francisco de Paula", + state: State::MG, + }, + Municipio { + ibge_code: 3161304, + name: "São Francisco de Sales", + state: State::MG, + }, + Municipio { + ibge_code: 3161403, + name: "São Francisco do Glória", + state: State::MG, + }, + Municipio { + ibge_code: 3161056, + name: "São Félix de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3161502, + name: "São Geraldo", + state: State::MG, + }, + Municipio { + ibge_code: 3161601, + name: "São Geraldo da Piedade", + state: State::MG, + }, + Municipio { + ibge_code: 3161650, + name: "São Geraldo do Baixio", + state: State::MG, + }, + Municipio { + ibge_code: 3161700, + name: "São Gonçalo do Abaeté", + state: State::MG, + }, + Municipio { + ibge_code: 3161809, + name: "São Gonçalo do Pará", + state: State::MG, + }, + Municipio { + ibge_code: 3161908, + name: "São Gonçalo do Rio Abaixo", + state: State::MG, + }, + Municipio { + ibge_code: 3125507, + name: "São Gonçalo do Rio Preto", + state: State::MG, + }, + Municipio { + ibge_code: 3162005, + name: "São Gonçalo do Sapucaí", + state: State::MG, + }, + Municipio { + ibge_code: 3162104, + name: "São Gotardo", + state: State::MG, + }, + Municipio { + ibge_code: 3162922, + name: "São Joaquim de Bicas", + state: State::MG, + }, + Municipio { + ibge_code: 3162948, + name: "São José da Barra", + state: State::MG, + }, + Municipio { + ibge_code: 3162955, + name: "São José da Lapa", + state: State::MG, + }, + Municipio { + ibge_code: 3163003, + name: "São José da Safira", + state: State::MG, + }, + Municipio { + ibge_code: 3163102, + name: "São José da Varginha", + state: State::MG, + }, + Municipio { + ibge_code: 3163201, + name: "São José do Alegre", + state: State::MG, + }, + Municipio { + ibge_code: 3163300, + name: "São José do Divino", + state: State::MG, + }, + Municipio { + ibge_code: 3163409, + name: "São José do Goiabal", + state: State::MG, + }, + Municipio { + ibge_code: 3163508, + name: "São José do Jacuri", + state: State::MG, + }, + Municipio { + ibge_code: 3163607, + name: "São José do Mantimento", + state: State::MG, + }, + Municipio { + ibge_code: 3162203, + name: "São João Batista do Glória", + state: State::MG, + }, + Municipio { + ibge_code: 3162807, + name: "São João Evangelista", + state: State::MG, + }, + Municipio { + ibge_code: 3162906, + name: "São João Nepomuceno", + state: State::MG, + }, + Municipio { + ibge_code: 3162252, + name: "São João da Lagoa", + state: State::MG, + }, + Municipio { + ibge_code: 3162302, + name: "São João da Mata", + state: State::MG, + }, + Municipio { + ibge_code: 3162401, + name: "São João da Ponte", + state: State::MG, + }, + Municipio { + ibge_code: 3162450, + name: "São João das Missões", + state: State::MG, + }, + Municipio { + ibge_code: 3162500, + name: "São João del Rei", + state: State::MG, + }, + Municipio { + ibge_code: 3162559, + name: "São João do Manhuaçu", + state: State::MG, + }, + Municipio { + ibge_code: 3162575, + name: "São João do Manteninha", + state: State::MG, + }, + Municipio { + ibge_code: 3162609, + name: "São João do Oriente", + state: State::MG, + }, + Municipio { + ibge_code: 3162658, + name: "São João do Pacuí", + state: State::MG, + }, + Municipio { + ibge_code: 3162708, + name: "São João do Paraíso", + state: State::MG, + }, + Municipio { + ibge_code: 3163706, + name: "São Lourenço", + state: State::MG, + }, + Municipio { + ibge_code: 3163805, + name: "São Miguel do Anta", + state: State::MG, + }, + Municipio { + ibge_code: 3163904, + name: "São Pedro da União", + state: State::MG, + }, + Municipio { + ibge_code: 3164100, + name: "São Pedro do Suaçuí", + state: State::MG, + }, + Municipio { + ibge_code: 3164001, + name: "São Pedro dos Ferros", + state: State::MG, + }, + Municipio { + ibge_code: 3164209, + name: "São Romão", + state: State::MG, + }, + Municipio { + ibge_code: 3164308, + name: "São Roque de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3164407, + name: "São Sebastião da Bela Vista", + state: State::MG, + }, + Municipio { + ibge_code: 3164431, + name: "São Sebastião da Vargem Alegre", + state: State::MG, + }, + Municipio { + ibge_code: 3164472, + name: "São Sebastião do Anta", + state: State::MG, + }, + Municipio { + ibge_code: 3164506, + name: "São Sebastião do Maranhão", + state: State::MG, + }, + Municipio { + ibge_code: 3164605, + name: "São Sebastião do Oeste", + state: State::MG, + }, + Municipio { + ibge_code: 3164704, + name: "São Sebastião do Paraíso", + state: State::MG, + }, + Municipio { + ibge_code: 3164803, + name: "São Sebastião do Rio Preto", + state: State::MG, + }, + Municipio { + ibge_code: 3164902, + name: "São Sebastião do Rio Verde", + state: State::MG, + }, + Municipio { + ibge_code: 3165008, + name: "São Tiago", + state: State::MG, + }, + Municipio { + ibge_code: 3165107, + name: "São Tomás de Aquino", + state: State::MG, + }, + Municipio { + ibge_code: 3165206, + name: "São Tomé das Letras", + state: State::MG, + }, + Municipio { + ibge_code: 3165305, + name: "São Vicente de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3167905, + name: "Tabuleiro", + state: State::MG, + }, + Municipio { + ibge_code: 3168002, + name: "Taiobeiras", + state: State::MG, + }, + Municipio { + ibge_code: 3168051, + name: "Taparuba", + state: State::MG, + }, + Municipio { + ibge_code: 3168101, + name: "Tapira", + state: State::MG, + }, + Municipio { + ibge_code: 3168200, + name: "Tapiraí", + state: State::MG, + }, + Municipio { + ibge_code: 3168309, + name: "Taquaraçu de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3168408, + name: "Tarumirim", + state: State::MG, + }, + Municipio { + ibge_code: 3168507, + name: "Teixeiras", + state: State::MG, + }, + Municipio { + ibge_code: 3168606, + name: "Teófilo Otoni", + state: State::MG, + }, + Municipio { + ibge_code: 3168705, + name: "Timóteo", + state: State::MG, + }, + Municipio { + ibge_code: 3168804, + name: "Tiradentes", + state: State::MG, + }, + Municipio { + ibge_code: 3168903, + name: "Tiros", + state: State::MG, + }, + Municipio { + ibge_code: 3169000, + name: "Tocantins", + state: State::MG, + }, + Municipio { + ibge_code: 3169059, + name: "Tocos do Moji", + state: State::MG, + }, + Municipio { + ibge_code: 3169109, + name: "Toledo", + state: State::MG, + }, + Municipio { + ibge_code: 3169208, + name: "Tombos", + state: State::MG, + }, + Municipio { + ibge_code: 3169307, + name: "Três Corações", + state: State::MG, + }, + Municipio { + ibge_code: 3169356, + name: "Três Marias", + state: State::MG, + }, + Municipio { + ibge_code: 3169406, + name: "Três Pontas", + state: State::MG, + }, + Municipio { + ibge_code: 3169505, + name: "Tumiritinga", + state: State::MG, + }, + Municipio { + ibge_code: 3169604, + name: "Tupaciguara", + state: State::MG, + }, + Municipio { + ibge_code: 3169703, + name: "Turmalina", + state: State::MG, + }, + Municipio { + ibge_code: 3169802, + name: "Turvolândia", + state: State::MG, + }, + Municipio { + ibge_code: 3170057, + name: "Ubaporanga", + state: State::MG, + }, + Municipio { + ibge_code: 3170008, + name: "Ubaí", + state: State::MG, + }, + Municipio { + ibge_code: 3170107, + name: "Uberaba", + state: State::MG, + }, + Municipio { + ibge_code: 3170206, + name: "Uberlândia", + state: State::MG, + }, + Municipio { + ibge_code: 3169901, + name: "Ubá", + state: State::MG, + }, + Municipio { + ibge_code: 3170305, + name: "Umburatiba", + state: State::MG, + }, + Municipio { + ibge_code: 3170404, + name: "Unaí", + state: State::MG, + }, + Municipio { + ibge_code: 3170438, + name: "União de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3170479, + name: "Uruana de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3170529, + name: "Urucuia", + state: State::MG, + }, + Municipio { + ibge_code: 3170503, + name: "Urucânia", + state: State::MG, + }, + Municipio { + ibge_code: 3170578, + name: "Vargem Alegre", + state: State::MG, + }, + Municipio { + ibge_code: 3170602, + name: "Vargem Bonita", + state: State::MG, + }, + Municipio { + ibge_code: 3170651, + name: "Vargem Grande do Rio Pardo", + state: State::MG, + }, + Municipio { + ibge_code: 3170701, + name: "Varginha", + state: State::MG, + }, + Municipio { + ibge_code: 3170750, + name: "Varjão de Minas", + state: State::MG, + }, + Municipio { + ibge_code: 3170909, + name: "Varzelândia", + state: State::MG, + }, + Municipio { + ibge_code: 3171006, + name: "Vazante", + state: State::MG, + }, + Municipio { + ibge_code: 3171030, + name: "Verdelândia", + state: State::MG, + }, + Municipio { + ibge_code: 3171071, + name: "Veredinha", + state: State::MG, + }, + Municipio { + ibge_code: 3171154, + name: "Vermelho Novo", + state: State::MG, + }, + Municipio { + ibge_code: 3171105, + name: "Veríssimo", + state: State::MG, + }, + Municipio { + ibge_code: 3171204, + name: "Vespasiano", + state: State::MG, + }, + Municipio { + ibge_code: 3171402, + name: "Vieiras", + state: State::MG, + }, + Municipio { + ibge_code: 3171600, + name: "Virgem da Lapa", + state: State::MG, + }, + Municipio { + ibge_code: 3171808, + name: "Virginópolis", + state: State::MG, + }, + Municipio { + ibge_code: 3171907, + name: "Virgolândia", + state: State::MG, + }, + Municipio { + ibge_code: 3171709, + name: "Virgínia", + state: State::MG, + }, + Municipio { + ibge_code: 3172004, + name: "Visconde do Rio Branco", + state: State::MG, + }, + Municipio { + ibge_code: 3171303, + name: "Viçosa", + state: State::MG, + }, + Municipio { + ibge_code: 3172103, + name: "Volta Grande", + state: State::MG, + }, + Municipio { + ibge_code: 3170800, + name: "Várzea da Palma", + state: State::MG, + }, + Municipio { + ibge_code: 3172202, + name: "Wenceslau Braz", + state: State::MG, + }, + Municipio { + ibge_code: 3100609, + name: "Água Boa", + state: State::MG, + }, + Municipio { + ibge_code: 3100708, + name: "Água Comprida", + state: State::MG, + }, + Municipio { + ibge_code: 3100906, + name: "Águas Formosas", + state: State::MG, + }, + Municipio { + ibge_code: 3101003, + name: "Águas Vermelhas", + state: State::MG, + }, + Municipio { + ibge_code: 5000252, + name: "Alcinópolis", + state: State::MS, + }, + Municipio { + ibge_code: 5000609, + name: "Amambai", + state: State::MS, + }, + Municipio { + ibge_code: 5000708, + name: "Anastácio", + state: State::MS, + }, + Municipio { + ibge_code: 5000807, + name: "Anaurilândia", + state: State::MS, + }, + Municipio { + ibge_code: 5000856, + name: "Angélica", + state: State::MS, + }, + Municipio { + ibge_code: 5000906, + name: "Antônio João", + state: State::MS, + }, + Municipio { + ibge_code: 5001003, + name: "Aparecida do Taboado", + state: State::MS, + }, + Municipio { + ibge_code: 5001102, + name: "Aquidauana", + state: State::MS, + }, + Municipio { + ibge_code: 5001243, + name: "Aral Moreira", + state: State::MS, + }, + Municipio { + ibge_code: 5001508, + name: "Bandeirantes", + state: State::MS, + }, + Municipio { + ibge_code: 5001904, + name: "Bataguassu", + state: State::MS, + }, + Municipio { + ibge_code: 5002001, + name: "Batayporã", + state: State::MS, + }, + Municipio { + ibge_code: 5002100, + name: "Bela Vista", + state: State::MS, + }, + Municipio { + ibge_code: 5002159, + name: "Bodoquena", + state: State::MS, + }, + Municipio { + ibge_code: 5002209, + name: "Bonito", + state: State::MS, + }, + Municipio { + ibge_code: 5002308, + name: "Brasilândia", + state: State::MS, + }, + Municipio { + ibge_code: 5002407, + name: "Caarapó", + state: State::MS, + }, + Municipio { + ibge_code: 5002605, + name: "Camapuã", + state: State::MS, + }, + Municipio { + ibge_code: 5002704, + name: "Campo Grande", + state: State::MS, + }, + Municipio { + ibge_code: 5002803, + name: "Caracol", + state: State::MS, + }, + Municipio { + ibge_code: 5002902, + name: "Cassilândia", + state: State::MS, + }, + Municipio { + ibge_code: 5002951, + name: "Chapadão do Sul", + state: State::MS, + }, + Municipio { + ibge_code: 5003108, + name: "Corguinho", + state: State::MS, + }, + Municipio { + ibge_code: 5003157, + name: "Coronel Sapucaia", + state: State::MS, + }, + Municipio { + ibge_code: 5003207, + name: "Corumbá", + state: State::MS, + }, + Municipio { + ibge_code: 5003256, + name: "Costa Rica", + state: State::MS, + }, + Municipio { + ibge_code: 5003306, + name: "Coxim", + state: State::MS, + }, + Municipio { + ibge_code: 5003454, + name: "Deodápolis", + state: State::MS, + }, + Municipio { + ibge_code: 5003488, + name: "Dois Irmãos do Buriti", + state: State::MS, + }, + Municipio { + ibge_code: 5003504, + name: "Douradina", + state: State::MS, + }, + Municipio { + ibge_code: 5003702, + name: "Dourados", + state: State::MS, + }, + Municipio { + ibge_code: 5003751, + name: "Eldorado", + state: State::MS, + }, + Municipio { + ibge_code: 5003900, + name: "Figueirão", + state: State::MS, + }, + Municipio { + ibge_code: 5003801, + name: "Fátima do Sul", + state: State::MS, + }, + Municipio { + ibge_code: 5004007, + name: "Glória de Dourados", + state: State::MS, + }, + Municipio { + ibge_code: 5004106, + name: "Guia Lopes da Laguna", + state: State::MS, + }, + Municipio { + ibge_code: 5004304, + name: "Iguatemi", + state: State::MS, + }, + Municipio { + ibge_code: 5004403, + name: "Inocência", + state: State::MS, + }, + Municipio { + ibge_code: 5004502, + name: "Itaporã", + state: State::MS, + }, + Municipio { + ibge_code: 5004601, + name: "Itaquiraí", + state: State::MS, + }, + Municipio { + ibge_code: 5004700, + name: "Ivinhema", + state: State::MS, + }, + Municipio { + ibge_code: 5004809, + name: "Japorã", + state: State::MS, + }, + Municipio { + ibge_code: 5004908, + name: "Jaraguari", + state: State::MS, + }, + Municipio { + ibge_code: 5005004, + name: "Jardim", + state: State::MS, + }, + Municipio { + ibge_code: 5005103, + name: "Jateí", + state: State::MS, + }, + Municipio { + ibge_code: 5005152, + name: "Juti", + state: State::MS, + }, + Municipio { + ibge_code: 5005202, + name: "Ladário", + state: State::MS, + }, + Municipio { + ibge_code: 5005251, + name: "Laguna Carapã", + state: State::MS, + }, + Municipio { + ibge_code: 5005400, + name: "Maracaju", + state: State::MS, + }, + Municipio { + ibge_code: 5005608, + name: "Miranda", + state: State::MS, + }, + Municipio { + ibge_code: 5005681, + name: "Mundo Novo", + state: State::MS, + }, + Municipio { + ibge_code: 5005707, + name: "Naviraí", + state: State::MS, + }, + Municipio { + ibge_code: 5005806, + name: "Nioaque", + state: State::MS, + }, + Municipio { + ibge_code: 5006002, + name: "Nova Alvorada do Sul", + state: State::MS, + }, + Municipio { + ibge_code: 5006200, + name: "Nova Andradina", + state: State::MS, + }, + Municipio { + ibge_code: 5006259, + name: "Novo Horizonte do Sul", + state: State::MS, + }, + Municipio { + ibge_code: 5006309, + name: "Paranaíba", + state: State::MS, + }, + Municipio { + ibge_code: 5006358, + name: "Paranhos", + state: State::MS, + }, + Municipio { + ibge_code: 5006275, + name: "Paraíso das Águas", + state: State::MS, + }, + Municipio { + ibge_code: 5006408, + name: "Pedro Gomes", + state: State::MS, + }, + Municipio { + ibge_code: 5006606, + name: "Ponta Porã", + state: State::MS, + }, + Municipio { + ibge_code: 5006903, + name: "Porto Murtinho", + state: State::MS, + }, + Municipio { + ibge_code: 5007109, + name: "Ribas do Rio Pardo", + state: State::MS, + }, + Municipio { + ibge_code: 5007208, + name: "Rio Brilhante", + state: State::MS, + }, + Municipio { + ibge_code: 5007307, + name: "Rio Negro", + state: State::MS, + }, + Municipio { + ibge_code: 5007406, + name: "Rio Verde de Mato Grosso", + state: State::MS, + }, + Municipio { + ibge_code: 5007505, + name: "Rochedo", + state: State::MS, + }, + Municipio { + ibge_code: 5007554, + name: "Santa Rita do Pardo", + state: State::MS, + }, + Municipio { + ibge_code: 5007802, + name: "Selvíria", + state: State::MS, + }, + Municipio { + ibge_code: 5007703, + name: "Sete Quedas", + state: State::MS, + }, + Municipio { + ibge_code: 5007901, + name: "Sidrolândia", + state: State::MS, + }, + Municipio { + ibge_code: 5007935, + name: "Sonora", + state: State::MS, + }, + Municipio { + ibge_code: 5007695, + name: "São Gabriel do Oeste", + state: State::MS, + }, + Municipio { + ibge_code: 5007950, + name: "Tacuru", + state: State::MS, + }, + Municipio { + ibge_code: 5007976, + name: "Taquarussu", + state: State::MS, + }, + Municipio { + ibge_code: 5008008, + name: "Terenos", + state: State::MS, + }, + Municipio { + ibge_code: 5008305, + name: "Três Lagoas", + state: State::MS, + }, + Municipio { + ibge_code: 5008404, + name: "Vicentina", + state: State::MS, + }, + Municipio { + ibge_code: 5000203, + name: "Água Clara", + state: State::MS, + }, + Municipio { + ibge_code: 5100102, + name: "Acorizal", + state: State::MT, + }, + Municipio { + ibge_code: 5100250, + name: "Alta Floresta", + state: State::MT, + }, + Municipio { + ibge_code: 5100300, + name: "Alto Araguaia", + state: State::MT, + }, + Municipio { + ibge_code: 5100359, + name: "Alto Boa Vista", + state: State::MT, + }, + Municipio { + ibge_code: 5100409, + name: "Alto Garças", + state: State::MT, + }, + Municipio { + ibge_code: 5100508, + name: "Alto Paraguai", + state: State::MT, + }, + Municipio { + ibge_code: 5100607, + name: "Alto Taquari", + state: State::MT, + }, + Municipio { + ibge_code: 5100805, + name: "Apiacás", + state: State::MT, + }, + Municipio { + ibge_code: 5101001, + name: "Araguaiana", + state: State::MT, + }, + Municipio { + ibge_code: 5101209, + name: "Araguainha", + state: State::MT, + }, + Municipio { + ibge_code: 5101258, + name: "Araputanga", + state: State::MT, + }, + Municipio { + ibge_code: 5101308, + name: "Arenápolis", + state: State::MT, + }, + Municipio { + ibge_code: 5101407, + name: "Aripuanã", + state: State::MT, + }, + Municipio { + ibge_code: 5101704, + name: "Barra do Bugres", + state: State::MT, + }, + Municipio { + ibge_code: 5101803, + name: "Barra do Garças", + state: State::MT, + }, + Municipio { + ibge_code: 5101605, + name: "Barão de Melgaço", + state: State::MT, + }, + Municipio { + ibge_code: 5101837, + name: "Boa Esperança do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5101852, + name: "Bom Jesus do Araguaia", + state: State::MT, + }, + Municipio { + ibge_code: 5101902, + name: "Brasnorte", + state: State::MT, + }, + Municipio { + ibge_code: 5102603, + name: "Campinápolis", + state: State::MT, + }, + Municipio { + ibge_code: 5102637, + name: "Campo Novo do Parecis", + state: State::MT, + }, + Municipio { + ibge_code: 5102678, + name: "Campo Verde", + state: State::MT, + }, + Municipio { + ibge_code: 5102686, + name: "Campos de Júlio", + state: State::MT, + }, + Municipio { + ibge_code: 5102694, + name: "Canabrava do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5102702, + name: "Canarana", + state: State::MT, + }, + Municipio { + ibge_code: 5102793, + name: "Carlinda", + state: State::MT, + }, + Municipio { + ibge_code: 5102850, + name: "Castanheira", + state: State::MT, + }, + Municipio { + ibge_code: 5103007, + name: "Chapada dos Guimarães", + state: State::MT, + }, + Municipio { + ibge_code: 5103056, + name: "Cláudia", + state: State::MT, + }, + Municipio { + ibge_code: 5103106, + name: "Cocalinho", + state: State::MT, + }, + Municipio { + ibge_code: 5103254, + name: "Colniza", + state: State::MT, + }, + Municipio { + ibge_code: 5103205, + name: "Colíder", + state: State::MT, + }, + Municipio { + ibge_code: 5103304, + name: "Comodoro", + state: State::MT, + }, + Municipio { + ibge_code: 5103353, + name: "Confresa", + state: State::MT, + }, + Municipio { + ibge_code: 5103361, + name: "Conquista D'Oeste", + state: State::MT, + }, + Municipio { + ibge_code: 5103379, + name: "Cotriguaçu", + state: State::MT, + }, + Municipio { + ibge_code: 5103403, + name: "Cuiabá", + state: State::MT, + }, + Municipio { + ibge_code: 5103437, + name: "Curvelândia", + state: State::MT, + }, + Municipio { + ibge_code: 5102504, + name: "Cáceres", + state: State::MT, + }, + Municipio { + ibge_code: 5103452, + name: "Denise", + state: State::MT, + }, + Municipio { + ibge_code: 5103502, + name: "Diamantino", + state: State::MT, + }, + Municipio { + ibge_code: 5103601, + name: "Dom Aquino", + state: State::MT, + }, + Municipio { + ibge_code: 5103700, + name: "Feliz Natal", + state: State::MT, + }, + Municipio { + ibge_code: 5103809, + name: "Figueirópolis D'Oeste", + state: State::MT, + }, + Municipio { + ibge_code: 5103858, + name: "Gaúcha do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5103908, + name: "General Carneiro", + state: State::MT, + }, + Municipio { + ibge_code: 5103957, + name: "Glória D'Oeste", + state: State::MT, + }, + Municipio { + ibge_code: 5104104, + name: "Guarantã do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5104203, + name: "Guiratinga", + state: State::MT, + }, + Municipio { + ibge_code: 5104500, + name: "Indiavaí", + state: State::MT, + }, + Municipio { + ibge_code: 5104526, + name: "Ipiranga do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5104542, + name: "Itanhangá", + state: State::MT, + }, + Municipio { + ibge_code: 5104559, + name: "Itaúba", + state: State::MT, + }, + Municipio { + ibge_code: 5104609, + name: "Itiquira", + state: State::MT, + }, + Municipio { + ibge_code: 5104807, + name: "Jaciara", + state: State::MT, + }, + Municipio { + ibge_code: 5104906, + name: "Jangada", + state: State::MT, + }, + Municipio { + ibge_code: 5105002, + name: "Jauru", + state: State::MT, + }, + Municipio { + ibge_code: 5105101, + name: "Juara", + state: State::MT, + }, + Municipio { + ibge_code: 5105176, + name: "Juruena", + state: State::MT, + }, + Municipio { + ibge_code: 5105200, + name: "Juscimeira", + state: State::MT, + }, + Municipio { + ibge_code: 5105150, + name: "Juína", + state: State::MT, + }, + Municipio { + ibge_code: 5105234, + name: "Lambari D'Oeste", + state: State::MT, + }, + Municipio { + ibge_code: 5105259, + name: "Lucas do Rio Verde", + state: State::MT, + }, + Municipio { + ibge_code: 5105309, + name: "Luciara", + state: State::MT, + }, + Municipio { + ibge_code: 5105580, + name: "Marcelândia", + state: State::MT, + }, + Municipio { + ibge_code: 5105606, + name: "Matupá", + state: State::MT, + }, + Municipio { + ibge_code: 5105622, + name: "Mirassol d'Oeste", + state: State::MT, + }, + Municipio { + ibge_code: 5105903, + name: "Nobres", + state: State::MT, + }, + Municipio { + ibge_code: 5106000, + name: "Nortelândia", + state: State::MT, + }, + Municipio { + ibge_code: 5106109, + name: "Nossa Senhora do Livramento", + state: State::MT, + }, + Municipio { + ibge_code: 5106158, + name: "Nova Bandeirantes", + state: State::MT, + }, + Municipio { + ibge_code: 5106208, + name: "Nova Brasilândia", + state: State::MT, + }, + Municipio { + ibge_code: 5106216, + name: "Nova Canaã do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5108808, + name: "Nova Guarita", + state: State::MT, + }, + Municipio { + ibge_code: 5106182, + name: "Nova Lacerda", + state: State::MT, + }, + Municipio { + ibge_code: 5108857, + name: "Nova Marilândia", + state: State::MT, + }, + Municipio { + ibge_code: 5108907, + name: "Nova Maringá", + state: State::MT, + }, + Municipio { + ibge_code: 5108956, + name: "Nova Monte Verde", + state: State::MT, + }, + Municipio { + ibge_code: 5106224, + name: "Nova Mutum", + state: State::MT, + }, + Municipio { + ibge_code: 5106174, + name: "Nova Nazaré", + state: State::MT, + }, + Municipio { + ibge_code: 5106232, + name: "Nova Olímpia", + state: State::MT, + }, + Municipio { + ibge_code: 5106190, + name: "Nova Santa Helena", + state: State::MT, + }, + Municipio { + ibge_code: 5106240, + name: "Nova Ubiratã", + state: State::MT, + }, + Municipio { + ibge_code: 5106257, + name: "Nova Xavantina", + state: State::MT, + }, + Municipio { + ibge_code: 5106273, + name: "Novo Horizonte do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5106265, + name: "Novo Mundo", + state: State::MT, + }, + Municipio { + ibge_code: 5106315, + name: "Novo Santo Antônio", + state: State::MT, + }, + Municipio { + ibge_code: 5106281, + name: "Novo São Joaquim", + state: State::MT, + }, + Municipio { + ibge_code: 5106307, + name: "Paranatinga", + state: State::MT, + }, + Municipio { + ibge_code: 5106299, + name: "Paranaíta", + state: State::MT, + }, + Municipio { + ibge_code: 5106372, + name: "Pedra Preta", + state: State::MT, + }, + Municipio { + ibge_code: 5106422, + name: "Peixoto de Azevedo", + state: State::MT, + }, + Municipio { + ibge_code: 5106455, + name: "Planalto da Serra", + state: State::MT, + }, + Municipio { + ibge_code: 5106505, + name: "Poconé", + state: State::MT, + }, + Municipio { + ibge_code: 5106653, + name: "Pontal do Araguaia", + state: State::MT, + }, + Municipio { + ibge_code: 5106703, + name: "Ponte Branca", + state: State::MT, + }, + Municipio { + ibge_code: 5106752, + name: "Pontes e Lacerda", + state: State::MT, + }, + Municipio { + ibge_code: 5106778, + name: "Porto Alegre do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5106828, + name: "Porto Esperidião", + state: State::MT, + }, + Municipio { + ibge_code: 5106851, + name: "Porto Estrela", + state: State::MT, + }, + Municipio { + ibge_code: 5106802, + name: "Porto dos Gaúchos", + state: State::MT, + }, + Municipio { + ibge_code: 5107008, + name: "Poxoréu", + state: State::MT, + }, + Municipio { + ibge_code: 5107040, + name: "Primavera do Leste", + state: State::MT, + }, + Municipio { + ibge_code: 5107065, + name: "Querência", + state: State::MT, + }, + Municipio { + ibge_code: 5107156, + name: "Reserva do Cabaçal", + state: State::MT, + }, + Municipio { + ibge_code: 5107180, + name: "Ribeirão Cascalheira", + state: State::MT, + }, + Municipio { + ibge_code: 5107198, + name: "Ribeirãozinho", + state: State::MT, + }, + Municipio { + ibge_code: 5107206, + name: "Rio Branco", + state: State::MT, + }, + Municipio { + ibge_code: 5107578, + name: "Rondolândia", + state: State::MT, + }, + Municipio { + ibge_code: 5107602, + name: "Rondonópolis", + state: State::MT, + }, + Municipio { + ibge_code: 5107701, + name: "Rosário Oeste", + state: State::MT, + }, + Municipio { + ibge_code: 5107750, + name: "Salto do Céu", + state: State::MT, + }, + Municipio { + ibge_code: 5107248, + name: "Santa Carmem", + state: State::MT, + }, + Municipio { + ibge_code: 5107743, + name: "Santa Cruz do Xingu", + state: State::MT, + }, + Municipio { + ibge_code: 5107768, + name: "Santa Rita do Trivelato", + state: State::MT, + }, + Municipio { + ibge_code: 5107776, + name: "Santa Terezinha", + state: State::MT, + }, + Municipio { + ibge_code: 5107263, + name: "Santo Afonso", + state: State::MT, + }, + Municipio { + ibge_code: 5107800, + name: "Santo Antônio de Leverger", + state: State::MT, + }, + Municipio { + ibge_code: 5107792, + name: "Santo Antônio do Leste", + state: State::MT, + }, + Municipio { + ibge_code: 5107875, + name: "Sapezal", + state: State::MT, + }, + Municipio { + ibge_code: 5107883, + name: "Serra Nova Dourada", + state: State::MT, + }, + Municipio { + ibge_code: 5107909, + name: "Sinop", + state: State::MT, + }, + Municipio { + ibge_code: 5107925, + name: "Sorriso", + state: State::MT, + }, + Municipio { + ibge_code: 5107859, + name: "São Félix do Araguaia", + state: State::MT, + }, + Municipio { + ibge_code: 5107297, + name: "São José do Povo", + state: State::MT, + }, + Municipio { + ibge_code: 5107305, + name: "São José do Rio Claro", + state: State::MT, + }, + Municipio { + ibge_code: 5107354, + name: "São José do Xingu", + state: State::MT, + }, + Municipio { + ibge_code: 5107107, + name: "São José dos Quatro Marcos", + state: State::MT, + }, + Municipio { + ibge_code: 5107404, + name: "São Pedro da Cipa", + state: State::MT, + }, + Municipio { + ibge_code: 5107941, + name: "Tabaporã", + state: State::MT, + }, + Municipio { + ibge_code: 5107958, + name: "Tangará da Serra", + state: State::MT, + }, + Municipio { + ibge_code: 5108006, + name: "Tapurah", + state: State::MT, + }, + Municipio { + ibge_code: 5108055, + name: "Terra Nova do Norte", + state: State::MT, + }, + Municipio { + ibge_code: 5108105, + name: "Tesouro", + state: State::MT, + }, + Municipio { + ibge_code: 5108204, + name: "Torixoréu", + state: State::MT, + }, + Municipio { + ibge_code: 5108303, + name: "União do Sul", + state: State::MT, + }, + Municipio { + ibge_code: 5108352, + name: "Vale de São Domingos", + state: State::MT, + }, + Municipio { + ibge_code: 5108501, + name: "Vera", + state: State::MT, + }, + Municipio { + ibge_code: 5105507, + name: "Vila Bela da Santíssima Trindade", + state: State::MT, + }, + Municipio { + ibge_code: 5108600, + name: "Vila Rica", + state: State::MT, + }, + Municipio { + ibge_code: 5108402, + name: "Várzea Grande", + state: State::MT, + }, + Municipio { + ibge_code: 5100201, + name: "Água Boa", + state: State::MT, + }, + Municipio { + ibge_code: 1500107, + name: "Abaetetuba", + state: State::PA, + }, + Municipio { + ibge_code: 1500131, + name: "Abel Figueiredo", + state: State::PA, + }, + Municipio { + ibge_code: 1500206, + name: "Acará", + state: State::PA, + }, + Municipio { + ibge_code: 1500305, + name: "Afuá", + state: State::PA, + }, + Municipio { + ibge_code: 1500404, + name: "Alenquer", + state: State::PA, + }, + Municipio { + ibge_code: 1500503, + name: "Almeirim", + state: State::PA, + }, + Municipio { + ibge_code: 1500602, + name: "Altamira", + state: State::PA, + }, + Municipio { + ibge_code: 1500701, + name: "Anajás", + state: State::PA, + }, + Municipio { + ibge_code: 1500800, + name: "Ananindeua", + state: State::PA, + }, + Municipio { + ibge_code: 1500859, + name: "Anapu", + state: State::PA, + }, + Municipio { + ibge_code: 1500909, + name: "Augusto Corrêa", + state: State::PA, + }, + Municipio { + ibge_code: 1500958, + name: "Aurora do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1501006, + name: "Aveiro", + state: State::PA, + }, + Municipio { + ibge_code: 1501105, + name: "Bagre", + state: State::PA, + }, + Municipio { + ibge_code: 1501204, + name: "Baião", + state: State::PA, + }, + Municipio { + ibge_code: 1501253, + name: "Bannach", + state: State::PA, + }, + Municipio { + ibge_code: 1501303, + name: "Barcarena", + state: State::PA, + }, + Municipio { + ibge_code: 1501451, + name: "Belterra", + state: State::PA, + }, + Municipio { + ibge_code: 1501402, + name: "Belém", + state: State::PA, + }, + Municipio { + ibge_code: 1501501, + name: "Benevides", + state: State::PA, + }, + Municipio { + ibge_code: 1501576, + name: "Bom Jesus do Tocantins", + state: State::PA, + }, + Municipio { + ibge_code: 1501600, + name: "Bonito", + state: State::PA, + }, + Municipio { + ibge_code: 1501709, + name: "Bragança", + state: State::PA, + }, + Municipio { + ibge_code: 1501725, + name: "Brasil Novo", + state: State::PA, + }, + Municipio { + ibge_code: 1501758, + name: "Brejo Grande do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1501782, + name: "Breu Branco", + state: State::PA, + }, + Municipio { + ibge_code: 1501808, + name: "Breves", + state: State::PA, + }, + Municipio { + ibge_code: 1501907, + name: "Bujaru", + state: State::PA, + }, + Municipio { + ibge_code: 1502004, + name: "Cachoeira do Arari", + state: State::PA, + }, + Municipio { + ibge_code: 1501956, + name: "Cachoeira do Piriá", + state: State::PA, + }, + Municipio { + ibge_code: 1502103, + name: "Cametá", + state: State::PA, + }, + Municipio { + ibge_code: 1502152, + name: "Canaã dos Carajás", + state: State::PA, + }, + Municipio { + ibge_code: 1502202, + name: "Capanema", + state: State::PA, + }, + Municipio { + ibge_code: 1502301, + name: "Capitão Poço", + state: State::PA, + }, + Municipio { + ibge_code: 1502400, + name: "Castanhal", + state: State::PA, + }, + Municipio { + ibge_code: 1502509, + name: "Chaves", + state: State::PA, + }, + Municipio { + ibge_code: 1502608, + name: "Colares", + state: State::PA, + }, + Municipio { + ibge_code: 1502707, + name: "Conceição do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1502756, + name: "Concórdia do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1502764, + name: "Cumaru do Norte", + state: State::PA, + }, + Municipio { + ibge_code: 1502772, + name: "Curionópolis", + state: State::PA, + }, + Municipio { + ibge_code: 1502806, + name: "Curralinho", + state: State::PA, + }, + Municipio { + ibge_code: 1502855, + name: "Curuá", + state: State::PA, + }, + Municipio { + ibge_code: 1502905, + name: "Curuçá", + state: State::PA, + }, + Municipio { + ibge_code: 1502939, + name: "Dom Eliseu", + state: State::PA, + }, + Municipio { + ibge_code: 1502954, + name: "Eldorado do Carajás", + state: State::PA, + }, + Municipio { + ibge_code: 1503002, + name: "Faro", + state: State::PA, + }, + Municipio { + ibge_code: 1503044, + name: "Floresta do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1503077, + name: "Garrafão do Norte", + state: State::PA, + }, + Municipio { + ibge_code: 1503093, + name: "Goianésia do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1503101, + name: "Gurupá", + state: State::PA, + }, + Municipio { + ibge_code: 1503200, + name: "Igarapé-Açu", + state: State::PA, + }, + Municipio { + ibge_code: 1503309, + name: "Igarapé-Miri", + state: State::PA, + }, + Municipio { + ibge_code: 1503408, + name: "Inhangapi", + state: State::PA, + }, + Municipio { + ibge_code: 1503457, + name: "Ipixuna do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1503507, + name: "Irituia", + state: State::PA, + }, + Municipio { + ibge_code: 1503606, + name: "Itaituba", + state: State::PA, + }, + Municipio { + ibge_code: 1503705, + name: "Itupiranga", + state: State::PA, + }, + Municipio { + ibge_code: 1503754, + name: "Jacareacanga", + state: State::PA, + }, + Municipio { + ibge_code: 1503804, + name: "Jacundá", + state: State::PA, + }, + Municipio { + ibge_code: 1503903, + name: "Juruti", + state: State::PA, + }, + Municipio { + ibge_code: 1504000, + name: "Limoeiro do Ajuru", + state: State::PA, + }, + Municipio { + ibge_code: 1504109, + name: "Magalhães Barata", + state: State::PA, + }, + Municipio { + ibge_code: 1504208, + name: "Marabá", + state: State::PA, + }, + Municipio { + ibge_code: 1504307, + name: "Maracanã", + state: State::PA, + }, + Municipio { + ibge_code: 1504406, + name: "Marapanim", + state: State::PA, + }, + Municipio { + ibge_code: 1504422, + name: "Marituba", + state: State::PA, + }, + Municipio { + ibge_code: 1504455, + name: "Medicilândia", + state: State::PA, + }, + Municipio { + ibge_code: 1504505, + name: "Melgaço", + state: State::PA, + }, + Municipio { + ibge_code: 1504604, + name: "Mocajuba", + state: State::PA, + }, + Municipio { + ibge_code: 1504703, + name: "Moju", + state: State::PA, + }, + Municipio { + ibge_code: 1504752, + name: "Mojuí dos Campos", + state: State::PA, + }, + Municipio { + ibge_code: 1504802, + name: "Monte Alegre", + state: State::PA, + }, + Municipio { + ibge_code: 1504901, + name: "Muaná", + state: State::PA, + }, + Municipio { + ibge_code: 1504059, + name: "Mãe do Rio", + state: State::PA, + }, + Municipio { + ibge_code: 1504950, + name: "Nova Esperança do Piriá", + state: State::PA, + }, + Municipio { + ibge_code: 1504976, + name: "Nova Ipixuna", + state: State::PA, + }, + Municipio { + ibge_code: 1505007, + name: "Nova Timboteua", + state: State::PA, + }, + Municipio { + ibge_code: 1505031, + name: "Novo Progresso", + state: State::PA, + }, + Municipio { + ibge_code: 1505064, + name: "Novo Repartimento", + state: State::PA, + }, + Municipio { + ibge_code: 1505205, + name: "Oeiras do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1505304, + name: "Oriximiná", + state: State::PA, + }, + Municipio { + ibge_code: 1505437, + name: "Ourilândia do Norte", + state: State::PA, + }, + Municipio { + ibge_code: 1505403, + name: "Ourém", + state: State::PA, + }, + Municipio { + ibge_code: 1505486, + name: "Pacajá", + state: State::PA, + }, + Municipio { + ibge_code: 1505494, + name: "Palestina do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1505502, + name: "Paragominas", + state: State::PA, + }, + Municipio { + ibge_code: 1505536, + name: "Parauapebas", + state: State::PA, + }, + Municipio { + ibge_code: 1505551, + name: "Pau D'Arco", + state: State::PA, + }, + Municipio { + ibge_code: 1505601, + name: "Peixe-Boi", + state: State::PA, + }, + Municipio { + ibge_code: 1505635, + name: "Piçarra", + state: State::PA, + }, + Municipio { + ibge_code: 1505650, + name: "Placas", + state: State::PA, + }, + Municipio { + ibge_code: 1505700, + name: "Ponta de Pedras", + state: State::PA, + }, + Municipio { + ibge_code: 1505809, + name: "Portel", + state: State::PA, + }, + Municipio { + ibge_code: 1505908, + name: "Porto de Moz", + state: State::PA, + }, + Municipio { + ibge_code: 1506005, + name: "Prainha", + state: State::PA, + }, + Municipio { + ibge_code: 1506104, + name: "Primavera", + state: State::PA, + }, + Municipio { + ibge_code: 1506112, + name: "Quatipuru", + state: State::PA, + }, + Municipio { + ibge_code: 1506138, + name: "Redenção", + state: State::PA, + }, + Municipio { + ibge_code: 1506161, + name: "Rio Maria", + state: State::PA, + }, + Municipio { + ibge_code: 1506187, + name: "Rondon do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1506195, + name: "Rurópolis", + state: State::PA, + }, + Municipio { + ibge_code: 1506203, + name: "Salinópolis", + state: State::PA, + }, + Municipio { + ibge_code: 1506302, + name: "Salvaterra", + state: State::PA, + }, + Municipio { + ibge_code: 1506351, + name: "Santa Bárbara do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1506401, + name: "Santa Cruz do Arari", + state: State::PA, + }, + Municipio { + ibge_code: 1506500, + name: "Santa Izabel do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1506559, + name: "Santa Luzia do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1506583, + name: "Santa Maria das Barreiras", + state: State::PA, + }, + Municipio { + ibge_code: 1506609, + name: "Santa Maria do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1506708, + name: "Santana do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1506807, + name: "Santarém", + state: State::PA, + }, + Municipio { + ibge_code: 1506906, + name: "Santarém Novo", + state: State::PA, + }, + Municipio { + ibge_code: 1507003, + name: "Santo Antônio do Tauá", + state: State::PA, + }, + Municipio { + ibge_code: 1507755, + name: "Sapucaia", + state: State::PA, + }, + Municipio { + ibge_code: 1507805, + name: "Senador José Porfírio", + state: State::PA, + }, + Municipio { + ibge_code: 1507904, + name: "Soure", + state: State::PA, + }, + Municipio { + ibge_code: 1507102, + name: "São Caetano de Odivelas", + state: State::PA, + }, + Municipio { + ibge_code: 1507151, + name: "São Domingos do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1507201, + name: "São Domingos do Capim", + state: State::PA, + }, + Municipio { + ibge_code: 1507409, + name: "São Francisco do Pará", + state: State::PA, + }, + Municipio { + ibge_code: 1507300, + name: "São Félix do Xingu", + state: State::PA, + }, + Municipio { + ibge_code: 1507458, + name: "São Geraldo do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1507466, + name: "São João da Ponta", + state: State::PA, + }, + Municipio { + ibge_code: 1507474, + name: "São João de Pirabas", + state: State::PA, + }, + Municipio { + ibge_code: 1507508, + name: "São João do Araguaia", + state: State::PA, + }, + Municipio { + ibge_code: 1507607, + name: "São Miguel do Guamá", + state: State::PA, + }, + Municipio { + ibge_code: 1507706, + name: "São Sebastião da Boa Vista", + state: State::PA, + }, + Municipio { + ibge_code: 1507953, + name: "Tailândia", + state: State::PA, + }, + Municipio { + ibge_code: 1507961, + name: "Terra Alta", + state: State::PA, + }, + Municipio { + ibge_code: 1507979, + name: "Terra Santa", + state: State::PA, + }, + Municipio { + ibge_code: 1508001, + name: "Tomé-Açu", + state: State::PA, + }, + Municipio { + ibge_code: 1508035, + name: "Tracuateua", + state: State::PA, + }, + Municipio { + ibge_code: 1508050, + name: "Trairão", + state: State::PA, + }, + Municipio { + ibge_code: 1508084, + name: "Tucumã", + state: State::PA, + }, + Municipio { + ibge_code: 1508100, + name: "Tucuruí", + state: State::PA, + }, + Municipio { + ibge_code: 1508126, + name: "Ulianópolis", + state: State::PA, + }, + Municipio { + ibge_code: 1508159, + name: "Uruará", + state: State::PA, + }, + Municipio { + ibge_code: 1508209, + name: "Vigia", + state: State::PA, + }, + Municipio { + ibge_code: 1508308, + name: "Viseu", + state: State::PA, + }, + Municipio { + ibge_code: 1508357, + name: "Vitória do Xingu", + state: State::PA, + }, + Municipio { + ibge_code: 1508407, + name: "Xinguara", + state: State::PA, + }, + Municipio { + ibge_code: 1500347, + name: "Água Azul do Norte", + state: State::PA, + }, + Municipio { + ibge_code: 1505106, + name: "Óbidos", + state: State::PA, + }, + Municipio { + ibge_code: 2500205, + name: "Aguiar", + state: State::PB, + }, + Municipio { + ibge_code: 2500304, + name: "Alagoa Grande", + state: State::PB, + }, + Municipio { + ibge_code: 2500403, + name: "Alagoa Nova", + state: State::PB, + }, + Municipio { + ibge_code: 2500502, + name: "Alagoinha", + state: State::PB, + }, + Municipio { + ibge_code: 2500536, + name: "Alcantil", + state: State::PB, + }, + Municipio { + ibge_code: 2500577, + name: "Algodão de Jandaíra", + state: State::PB, + }, + Municipio { + ibge_code: 2500601, + name: "Alhandra", + state: State::PB, + }, + Municipio { + ibge_code: 2500734, + name: "Amparo", + state: State::PB, + }, + Municipio { + ibge_code: 2500775, + name: "Aparecida", + state: State::PB, + }, + Municipio { + ibge_code: 2500908, + name: "Arara", + state: State::PB, + }, + Municipio { + ibge_code: 2501005, + name: "Araruna", + state: State::PB, + }, + Municipio { + ibge_code: 2500809, + name: "Araçagi", + state: State::PB, + }, + Municipio { + ibge_code: 2501104, + name: "Areia", + state: State::PB, + }, + Municipio { + ibge_code: 2501153, + name: "Areia de Baraúnas", + state: State::PB, + }, + Municipio { + ibge_code: 2501203, + name: "Areial", + state: State::PB, + }, + Municipio { + ibge_code: 2501302, + name: "Aroeiras", + state: State::PB, + }, + Municipio { + ibge_code: 2501351, + name: "Assunção", + state: State::PB, + }, + Municipio { + ibge_code: 2501500, + name: "Bananeiras", + state: State::PB, + }, + Municipio { + ibge_code: 2501534, + name: "Baraúna", + state: State::PB, + }, + Municipio { + ibge_code: 2501609, + name: "Barra de Santa Rosa", + state: State::PB, + }, + Municipio { + ibge_code: 2501575, + name: "Barra de Santana", + state: State::PB, + }, + Municipio { + ibge_code: 2501708, + name: "Barra de São Miguel", + state: State::PB, + }, + Municipio { + ibge_code: 2501807, + name: "Bayeux", + state: State::PB, + }, + Municipio { + ibge_code: 2501401, + name: "Baía da Traição", + state: State::PB, + }, + Municipio { + ibge_code: 2501906, + name: "Belém", + state: State::PB, + }, + Municipio { + ibge_code: 2502003, + name: "Belém do Brejo do Cruz", + state: State::PB, + }, + Municipio { + ibge_code: 2502052, + name: "Bernardino Batista", + state: State::PB, + }, + Municipio { + ibge_code: 2502102, + name: "Boa Ventura", + state: State::PB, + }, + Municipio { + ibge_code: 2502151, + name: "Boa Vista", + state: State::PB, + }, + Municipio { + ibge_code: 2502201, + name: "Bom Jesus", + state: State::PB, + }, + Municipio { + ibge_code: 2502300, + name: "Bom Sucesso", + state: State::PB, + }, + Municipio { + ibge_code: 2502409, + name: "Bonito de Santa Fé", + state: State::PB, + }, + Municipio { + ibge_code: 2502508, + name: "Boqueirão", + state: State::PB, + }, + Municipio { + ibge_code: 2502706, + name: "Borborema", + state: State::PB, + }, + Municipio { + ibge_code: 2502805, + name: "Brejo do Cruz", + state: State::PB, + }, + Municipio { + ibge_code: 2502904, + name: "Brejo dos Santos", + state: State::PB, + }, + Municipio { + ibge_code: 2503001, + name: "Caaporã", + state: State::PB, + }, + Municipio { + ibge_code: 2503100, + name: "Cabaceiras", + state: State::PB, + }, + Municipio { + ibge_code: 2503209, + name: "Cabedelo", + state: State::PB, + }, + Municipio { + ibge_code: 2503308, + name: "Cachoeira dos Índios", + state: State::PB, + }, + Municipio { + ibge_code: 2503407, + name: "Cacimba de Areia", + state: State::PB, + }, + Municipio { + ibge_code: 2503506, + name: "Cacimba de Dentro", + state: State::PB, + }, + Municipio { + ibge_code: 2503555, + name: "Cacimbas", + state: State::PB, + }, + Municipio { + ibge_code: 2503605, + name: "Caiçara", + state: State::PB, + }, + Municipio { + ibge_code: 2503704, + name: "Cajazeiras", + state: State::PB, + }, + Municipio { + ibge_code: 2503753, + name: "Cajazeirinhas", + state: State::PB, + }, + Municipio { + ibge_code: 2503803, + name: "Caldas Brandão", + state: State::PB, + }, + Municipio { + ibge_code: 2503902, + name: "Camalaú", + state: State::PB, + }, + Municipio { + ibge_code: 2504009, + name: "Campina Grande", + state: State::PB, + }, + Municipio { + ibge_code: 2504033, + name: "Capim", + state: State::PB, + }, + Municipio { + ibge_code: 2504074, + name: "Caraúbas", + state: State::PB, + }, + Municipio { + ibge_code: 2504108, + name: "Carrapateira", + state: State::PB, + }, + Municipio { + ibge_code: 2504157, + name: "Casserengue", + state: State::PB, + }, + Municipio { + ibge_code: 2504207, + name: "Catingueira", + state: State::PB, + }, + Municipio { + ibge_code: 2504306, + name: "Catolé do Rocha", + state: State::PB, + }, + Municipio { + ibge_code: 2504355, + name: "Caturité", + state: State::PB, + }, + Municipio { + ibge_code: 2504405, + name: "Conceição", + state: State::PB, + }, + Municipio { + ibge_code: 2504504, + name: "Condado", + state: State::PB, + }, + Municipio { + ibge_code: 2504603, + name: "Conde", + state: State::PB, + }, + Municipio { + ibge_code: 2504702, + name: "Congo", + state: State::PB, + }, + Municipio { + ibge_code: 2504801, + name: "Coremas", + state: State::PB, + }, + Municipio { + ibge_code: 2504850, + name: "Coxixola", + state: State::PB, + }, + Municipio { + ibge_code: 2504900, + name: "Cruz do Espírito Santo", + state: State::PB, + }, + Municipio { + ibge_code: 2505006, + name: "Cubati", + state: State::PB, + }, + Municipio { + ibge_code: 2505204, + name: "Cuitegi", + state: State::PB, + }, + Municipio { + ibge_code: 2505105, + name: "Cuité", + state: State::PB, + }, + Municipio { + ibge_code: 2505238, + name: "Cuité de Mamanguape", + state: State::PB, + }, + Municipio { + ibge_code: 2505303, + name: "Curral Velho", + state: State::PB, + }, + Municipio { + ibge_code: 2505279, + name: "Curral de Cima", + state: State::PB, + }, + Municipio { + ibge_code: 2505352, + name: "Damião", + state: State::PB, + }, + Municipio { + ibge_code: 2505402, + name: "Desterro", + state: State::PB, + }, + Municipio { + ibge_code: 2505600, + name: "Diamante", + state: State::PB, + }, + Municipio { + ibge_code: 2505709, + name: "Dona Inês", + state: State::PB, + }, + Municipio { + ibge_code: 2505808, + name: "Duas Estradas", + state: State::PB, + }, + Municipio { + ibge_code: 2505907, + name: "Emas", + state: State::PB, + }, + Municipio { + ibge_code: 2506004, + name: "Esperança", + state: State::PB, + }, + Municipio { + ibge_code: 2506103, + name: "Fagundes", + state: State::PB, + }, + Municipio { + ibge_code: 2506202, + name: "Frei Martinho", + state: State::PB, + }, + Municipio { + ibge_code: 2506251, + name: "Gado Bravo", + state: State::PB, + }, + Municipio { + ibge_code: 2506301, + name: "Guarabira", + state: State::PB, + }, + Municipio { + ibge_code: 2506400, + name: "Gurinhém", + state: State::PB, + }, + Municipio { + ibge_code: 2506509, + name: "Gurjão", + state: State::PB, + }, + Municipio { + ibge_code: 2506608, + name: "Ibiara", + state: State::PB, + }, + Municipio { + ibge_code: 2502607, + name: "Igaracy", + state: State::PB, + }, + Municipio { + ibge_code: 2506707, + name: "Imaculada", + state: State::PB, + }, + Municipio { + ibge_code: 2506806, + name: "Ingá", + state: State::PB, + }, + Municipio { + ibge_code: 2506905, + name: "Itabaiana", + state: State::PB, + }, + Municipio { + ibge_code: 2507002, + name: "Itaporanga", + state: State::PB, + }, + Municipio { + ibge_code: 2507101, + name: "Itapororoca", + state: State::PB, + }, + Municipio { + ibge_code: 2507200, + name: "Itatuba", + state: State::PB, + }, + Municipio { + ibge_code: 2507309, + name: "Jacaraú", + state: State::PB, + }, + Municipio { + ibge_code: 2507408, + name: "Jericó", + state: State::PB, + }, + Municipio { + ibge_code: 2513653, + name: "Joca Claudino", + state: State::PB, + }, + Municipio { + ibge_code: 2507507, + name: "João Pessoa", + state: State::PB, + }, + Municipio { + ibge_code: 2507606, + name: "Juarez Távora", + state: State::PB, + }, + Municipio { + ibge_code: 2507705, + name: "Juazeirinho", + state: State::PB, + }, + Municipio { + ibge_code: 2507804, + name: "Junco do Seridó", + state: State::PB, + }, + Municipio { + ibge_code: 2507903, + name: "Juripiranga", + state: State::PB, + }, + Municipio { + ibge_code: 2508000, + name: "Juru", + state: State::PB, + }, + Municipio { + ibge_code: 2508109, + name: "Lagoa", + state: State::PB, + }, + Municipio { + ibge_code: 2508307, + name: "Lagoa Seca", + state: State::PB, + }, + Municipio { + ibge_code: 2508208, + name: "Lagoa de Dentro", + state: State::PB, + }, + Municipio { + ibge_code: 2508406, + name: "Lastro", + state: State::PB, + }, + Municipio { + ibge_code: 2508505, + name: "Livramento", + state: State::PB, + }, + Municipio { + ibge_code: 2508554, + name: "Logradouro", + state: State::PB, + }, + Municipio { + ibge_code: 2508604, + name: "Lucena", + state: State::PB, + }, + Municipio { + ibge_code: 2508802, + name: "Malta", + state: State::PB, + }, + Municipio { + ibge_code: 2508901, + name: "Mamanguape", + state: State::PB, + }, + Municipio { + ibge_code: 2509008, + name: "Manaíra", + state: State::PB, + }, + Municipio { + ibge_code: 2509057, + name: "Marcação", + state: State::PB, + }, + Municipio { + ibge_code: 2509107, + name: "Mari", + state: State::PB, + }, + Municipio { + ibge_code: 2509156, + name: "Marizópolis", + state: State::PB, + }, + Municipio { + ibge_code: 2509206, + name: "Massaranduba", + state: State::PB, + }, + Municipio { + ibge_code: 2509305, + name: "Mataraca", + state: State::PB, + }, + Municipio { + ibge_code: 2509339, + name: "Matinhas", + state: State::PB, + }, + Municipio { + ibge_code: 2509370, + name: "Mato Grosso", + state: State::PB, + }, + Municipio { + ibge_code: 2509396, + name: "Maturéia", + state: State::PB, + }, + Municipio { + ibge_code: 2509404, + name: "Mogeiro", + state: State::PB, + }, + Municipio { + ibge_code: 2509503, + name: "Montadas", + state: State::PB, + }, + Municipio { + ibge_code: 2509602, + name: "Monte Horebe", + state: State::PB, + }, + Municipio { + ibge_code: 2509701, + name: "Monteiro", + state: State::PB, + }, + Municipio { + ibge_code: 2509800, + name: "Mulungu", + state: State::PB, + }, + Municipio { + ibge_code: 2508703, + name: "Mãe d'Água", + state: State::PB, + }, + Municipio { + ibge_code: 2509909, + name: "Natuba", + state: State::PB, + }, + Municipio { + ibge_code: 2510006, + name: "Nazarezinho", + state: State::PB, + }, + Municipio { + ibge_code: 2510105, + name: "Nova Floresta", + state: State::PB, + }, + Municipio { + ibge_code: 2510204, + name: "Nova Olinda", + state: State::PB, + }, + Municipio { + ibge_code: 2510303, + name: "Nova Palmeira", + state: State::PB, + }, + Municipio { + ibge_code: 2510402, + name: "Olho d'Água", + state: State::PB, + }, + Municipio { + ibge_code: 2510501, + name: "Olivedos", + state: State::PB, + }, + Municipio { + ibge_code: 2510600, + name: "Ouro Velho", + state: State::PB, + }, + Municipio { + ibge_code: 2510659, + name: "Parari", + state: State::PB, + }, + Municipio { + ibge_code: 2510709, + name: "Passagem", + state: State::PB, + }, + Municipio { + ibge_code: 2510808, + name: "Patos", + state: State::PB, + }, + Municipio { + ibge_code: 2510907, + name: "Paulista", + state: State::PB, + }, + Municipio { + ibge_code: 2511004, + name: "Pedra Branca", + state: State::PB, + }, + Municipio { + ibge_code: 2511103, + name: "Pedra Lavrada", + state: State::PB, + }, + Municipio { + ibge_code: 2511202, + name: "Pedras de Fogo", + state: State::PB, + }, + Municipio { + ibge_code: 2512721, + name: "Pedro Régis", + state: State::PB, + }, + Municipio { + ibge_code: 2511301, + name: "Piancó", + state: State::PB, + }, + Municipio { + ibge_code: 2511400, + name: "Picuí", + state: State::PB, + }, + Municipio { + ibge_code: 2511509, + name: "Pilar", + state: State::PB, + }, + Municipio { + ibge_code: 2511608, + name: "Pilões", + state: State::PB, + }, + Municipio { + ibge_code: 2511707, + name: "Pilõezinhos", + state: State::PB, + }, + Municipio { + ibge_code: 2511806, + name: "Pirpirituba", + state: State::PB, + }, + Municipio { + ibge_code: 2511905, + name: "Pitimbu", + state: State::PB, + }, + Municipio { + ibge_code: 2512002, + name: "Pocinhos", + state: State::PB, + }, + Municipio { + ibge_code: 2512101, + name: "Pombal", + state: State::PB, + }, + Municipio { + ibge_code: 2512036, + name: "Poço Dantas", + state: State::PB, + }, + Municipio { + ibge_code: 2512077, + name: "Poço de José de Moura", + state: State::PB, + }, + Municipio { + ibge_code: 2512200, + name: "Prata", + state: State::PB, + }, + Municipio { + ibge_code: 2512309, + name: "Princesa Isabel", + state: State::PB, + }, + Municipio { + ibge_code: 2512408, + name: "Puxinanã", + state: State::PB, + }, + Municipio { + ibge_code: 2512507, + name: "Queimadas", + state: State::PB, + }, + Municipio { + ibge_code: 2512606, + name: "Quixaba", + state: State::PB, + }, + Municipio { + ibge_code: 2512705, + name: "Remígio", + state: State::PB, + }, + Municipio { + ibge_code: 2512788, + name: "Riacho de Santo Antônio", + state: State::PB, + }, + Municipio { + ibge_code: 2512804, + name: "Riacho dos Cavalos", + state: State::PB, + }, + Municipio { + ibge_code: 2512747, + name: "Riachão", + state: State::PB, + }, + Municipio { + ibge_code: 2512754, + name: "Riachão do Bacamarte", + state: State::PB, + }, + Municipio { + ibge_code: 2512762, + name: "Riachão do Poço", + state: State::PB, + }, + Municipio { + ibge_code: 2512903, + name: "Rio Tinto", + state: State::PB, + }, + Municipio { + ibge_code: 2513000, + name: "Salgadinho", + state: State::PB, + }, + Municipio { + ibge_code: 2513109, + name: "Salgado de São Félix", + state: State::PB, + }, + Municipio { + ibge_code: 2513158, + name: "Santa Cecília", + state: State::PB, + }, + Municipio { + ibge_code: 2513208, + name: "Santa Cruz", + state: State::PB, + }, + Municipio { + ibge_code: 2513307, + name: "Santa Helena", + state: State::PB, + }, + Municipio { + ibge_code: 2513356, + name: "Santa Inês", + state: State::PB, + }, + Municipio { + ibge_code: 2513406, + name: "Santa Luzia", + state: State::PB, + }, + Municipio { + ibge_code: 2513703, + name: "Santa Rita", + state: State::PB, + }, + Municipio { + ibge_code: 2513802, + name: "Santa Teresinha", + state: State::PB, + }, + Municipio { + ibge_code: 2513505, + name: "Santana de Mangueira", + state: State::PB, + }, + Municipio { + ibge_code: 2513604, + name: "Santana dos Garrotes", + state: State::PB, + }, + Municipio { + ibge_code: 2513851, + name: "Santo André", + state: State::PB, + }, + Municipio { + ibge_code: 2515302, + name: "Sapé", + state: State::PB, + }, + Municipio { + ibge_code: 2515500, + name: "Serra Branca", + state: State::PB, + }, + Municipio { + ibge_code: 2515708, + name: "Serra Grande", + state: State::PB, + }, + Municipio { + ibge_code: 2515807, + name: "Serra Redonda", + state: State::PB, + }, + Municipio { + ibge_code: 2515609, + name: "Serra da Raiz", + state: State::PB, + }, + Municipio { + ibge_code: 2515906, + name: "Serraria", + state: State::PB, + }, + Municipio { + ibge_code: 2515930, + name: "Sertãozinho", + state: State::PB, + }, + Municipio { + ibge_code: 2515971, + name: "Sobrado", + state: State::PB, + }, + Municipio { + ibge_code: 2516102, + name: "Soledade", + state: State::PB, + }, + Municipio { + ibge_code: 2516003, + name: "Solânea", + state: State::PB, + }, + Municipio { + ibge_code: 2516151, + name: "Sossêgo", + state: State::PB, + }, + Municipio { + ibge_code: 2516201, + name: "Sousa", + state: State::PB, + }, + Municipio { + ibge_code: 2516300, + name: "Sumé", + state: State::PB, + }, + Municipio { + ibge_code: 2513927, + name: "São Bentinho", + state: State::PB, + }, + Municipio { + ibge_code: 2513901, + name: "São Bento", + state: State::PB, + }, + Municipio { + ibge_code: 2513968, + name: "São Domingos", + state: State::PB, + }, + Municipio { + ibge_code: 2513943, + name: "São Domingos do Cariri", + state: State::PB, + }, + Municipio { + ibge_code: 2513984, + name: "São Francisco", + state: State::PB, + }, + Municipio { + ibge_code: 2514206, + name: "São José da Lagoa Tapada", + state: State::PB, + }, + Municipio { + ibge_code: 2514305, + name: "São José de Caiana", + state: State::PB, + }, + Municipio { + ibge_code: 2514404, + name: "São José de Espinharas", + state: State::PB, + }, + Municipio { + ibge_code: 2514503, + name: "São José de Piranhas", + state: State::PB, + }, + Municipio { + ibge_code: 2514552, + name: "São José de Princesa", + state: State::PB, + }, + Municipio { + ibge_code: 2514602, + name: "São José do Bonfim", + state: State::PB, + }, + Municipio { + ibge_code: 2514651, + name: "São José do Brejo do Cruz", + state: State::PB, + }, + Municipio { + ibge_code: 2514701, + name: "São José do Sabugi", + state: State::PB, + }, + Municipio { + ibge_code: 2514800, + name: "São José dos Cordeiros", + state: State::PB, + }, + Municipio { + ibge_code: 2514453, + name: "São José dos Ramos", + state: State::PB, + }, + Municipio { + ibge_code: 2514008, + name: "São João do Cariri", + state: State::PB, + }, + Municipio { + ibge_code: 2500700, + name: "São João do Rio do Peixe", + state: State::PB, + }, + Municipio { + ibge_code: 2514107, + name: "São João do Tigre", + state: State::PB, + }, + Municipio { + ibge_code: 2514909, + name: "São Mamede", + state: State::PB, + }, + Municipio { + ibge_code: 2515005, + name: "São Miguel de Taipu", + state: State::PB, + }, + Municipio { + ibge_code: 2515104, + name: "São Sebastião de Lagoa de Roça", + state: State::PB, + }, + Municipio { + ibge_code: 2515203, + name: "São Sebastião do Umbuzeiro", + state: State::PB, + }, + Municipio { + ibge_code: 2515401, + name: "São Vicente do Seridó", + state: State::PB, + }, + Municipio { + ibge_code: 2516409, + name: "Tacima", + state: State::PB, + }, + Municipio { + ibge_code: 2516508, + name: "Taperoá", + state: State::PB, + }, + Municipio { + ibge_code: 2516607, + name: "Tavares", + state: State::PB, + }, + Municipio { + ibge_code: 2516706, + name: "Teixeira", + state: State::PB, + }, + Municipio { + ibge_code: 2516755, + name: "Tenório", + state: State::PB, + }, + Municipio { + ibge_code: 2516805, + name: "Triunfo", + state: State::PB, + }, + Municipio { + ibge_code: 2516904, + name: "Uiraúna", + state: State::PB, + }, + Municipio { + ibge_code: 2517001, + name: "Umbuzeiro", + state: State::PB, + }, + Municipio { + ibge_code: 2517209, + name: "Vieirópolis", + state: State::PB, + }, + Municipio { + ibge_code: 2505501, + name: "Vista Serrana", + state: State::PB, + }, + Municipio { + ibge_code: 2517100, + name: "Várzea", + state: State::PB, + }, + Municipio { + ibge_code: 2517407, + name: "Zabelê", + state: State::PB, + }, + Municipio { + ibge_code: 2500106, + name: "Água Branca", + state: State::PB, + }, + Municipio { + ibge_code: 2600054, + name: "Abreu e Lima", + state: State::PE, + }, + Municipio { + ibge_code: 2600104, + name: "Afogados da Ingazeira", + state: State::PE, + }, + Municipio { + ibge_code: 2600203, + name: "Afrânio", + state: State::PE, + }, + Municipio { + ibge_code: 2600302, + name: "Agrestina", + state: State::PE, + }, + Municipio { + ibge_code: 2600609, + name: "Alagoinha", + state: State::PE, + }, + Municipio { + ibge_code: 2600708, + name: "Aliança", + state: State::PE, + }, + Municipio { + ibge_code: 2600807, + name: "Altinho", + state: State::PE, + }, + Municipio { + ibge_code: 2600906, + name: "Amaraji", + state: State::PE, + }, + Municipio { + ibge_code: 2601003, + name: "Angelim", + state: State::PE, + }, + Municipio { + ibge_code: 2601102, + name: "Araripina", + state: State::PE, + }, + Municipio { + ibge_code: 2601052, + name: "Araçoiaba", + state: State::PE, + }, + Municipio { + ibge_code: 2601201, + name: "Arcoverde", + state: State::PE, + }, + Municipio { + ibge_code: 2601300, + name: "Barra de Guabiraba", + state: State::PE, + }, + Municipio { + ibge_code: 2601409, + name: "Barreiros", + state: State::PE, + }, + Municipio { + ibge_code: 2601706, + name: "Belo Jardim", + state: State::PE, + }, + Municipio { + ibge_code: 2601508, + name: "Belém de Maria", + state: State::PE, + }, + Municipio { + ibge_code: 2601607, + name: "Belém do São Francisco", + state: State::PE, + }, + Municipio { + ibge_code: 2601805, + name: "Betânia", + state: State::PE, + }, + Municipio { + ibge_code: 2601904, + name: "Bezerros", + state: State::PE, + }, + Municipio { + ibge_code: 2602001, + name: "Bodocó", + state: State::PE, + }, + Municipio { + ibge_code: 2602100, + name: "Bom Conselho", + state: State::PE, + }, + Municipio { + ibge_code: 2602209, + name: "Bom Jardim", + state: State::PE, + }, + Municipio { + ibge_code: 2602308, + name: "Bonito", + state: State::PE, + }, + Municipio { + ibge_code: 2602506, + name: "Brejinho", + state: State::PE, + }, + Municipio { + ibge_code: 2602605, + name: "Brejo da Madre de Deus", + state: State::PE, + }, + Municipio { + ibge_code: 2602407, + name: "Brejão", + state: State::PE, + }, + Municipio { + ibge_code: 2602704, + name: "Buenos Aires", + state: State::PE, + }, + Municipio { + ibge_code: 2602803, + name: "Buíque", + state: State::PE, + }, + Municipio { + ibge_code: 2602902, + name: "Cabo de Santo Agostinho", + state: State::PE, + }, + Municipio { + ibge_code: 2603009, + name: "Cabrobó", + state: State::PE, + }, + Municipio { + ibge_code: 2603108, + name: "Cachoeirinha", + state: State::PE, + }, + Municipio { + ibge_code: 2603207, + name: "Caetés", + state: State::PE, + }, + Municipio { + ibge_code: 2603405, + name: "Calumbi", + state: State::PE, + }, + Municipio { + ibge_code: 2603306, + name: "Calçado", + state: State::PE, + }, + Municipio { + ibge_code: 2603454, + name: "Camaragibe", + state: State::PE, + }, + Municipio { + ibge_code: 2603504, + name: "Camocim de São Félix", + state: State::PE, + }, + Municipio { + ibge_code: 2603603, + name: "Camutanga", + state: State::PE, + }, + Municipio { + ibge_code: 2603702, + name: "Canhotinho", + state: State::PE, + }, + Municipio { + ibge_code: 2603801, + name: "Capoeiras", + state: State::PE, + }, + Municipio { + ibge_code: 2603926, + name: "Carnaubeira da Penha", + state: State::PE, + }, + Municipio { + ibge_code: 2603900, + name: "Carnaíba", + state: State::PE, + }, + Municipio { + ibge_code: 2604007, + name: "Carpina", + state: State::PE, + }, + Municipio { + ibge_code: 2604106, + name: "Caruaru", + state: State::PE, + }, + Municipio { + ibge_code: 2604155, + name: "Casinhas", + state: State::PE, + }, + Municipio { + ibge_code: 2604205, + name: "Catende", + state: State::PE, + }, + Municipio { + ibge_code: 2604304, + name: "Cedro", + state: State::PE, + }, + Municipio { + ibge_code: 2604502, + name: "Chã Grande", + state: State::PE, + }, + Municipio { + ibge_code: 2604403, + name: "Chã de Alegria", + state: State::PE, + }, + Municipio { + ibge_code: 2604601, + name: "Condado", + state: State::PE, + }, + Municipio { + ibge_code: 2604700, + name: "Correntes", + state: State::PE, + }, + Municipio { + ibge_code: 2604809, + name: "Cortês", + state: State::PE, + }, + Municipio { + ibge_code: 2604908, + name: "Cumaru", + state: State::PE, + }, + Municipio { + ibge_code: 2605004, + name: "Cupira", + state: State::PE, + }, + Municipio { + ibge_code: 2605103, + name: "Custódia", + state: State::PE, + }, + Municipio { + ibge_code: 2605152, + name: "Dormentes", + state: State::PE, + }, + Municipio { + ibge_code: 2605202, + name: "Escada", + state: State::PE, + }, + Municipio { + ibge_code: 2605301, + name: "Exu", + state: State::PE, + }, + Municipio { + ibge_code: 2605400, + name: "Feira Nova", + state: State::PE, + }, + Municipio { + ibge_code: 2605459, + name: "Fernando de Noronha", + state: State::PE, + }, + Municipio { + ibge_code: 2605509, + name: "Ferreiros", + state: State::PE, + }, + Municipio { + ibge_code: 2605608, + name: "Flores", + state: State::PE, + }, + Municipio { + ibge_code: 2605707, + name: "Floresta", + state: State::PE, + }, + Municipio { + ibge_code: 2605806, + name: "Frei Miguelinho", + state: State::PE, + }, + Municipio { + ibge_code: 2605905, + name: "Gameleira", + state: State::PE, + }, + Municipio { + ibge_code: 2606002, + name: "Garanhuns", + state: State::PE, + }, + Municipio { + ibge_code: 2606101, + name: "Glória do Goitá", + state: State::PE, + }, + Municipio { + ibge_code: 2606200, + name: "Goiana", + state: State::PE, + }, + Municipio { + ibge_code: 2606309, + name: "Granito", + state: State::PE, + }, + Municipio { + ibge_code: 2606408, + name: "Gravatá", + state: State::PE, + }, + Municipio { + ibge_code: 2606507, + name: "Iati", + state: State::PE, + }, + Municipio { + ibge_code: 2606606, + name: "Ibimirim", + state: State::PE, + }, + Municipio { + ibge_code: 2606705, + name: "Ibirajuba", + state: State::PE, + }, + Municipio { + ibge_code: 2606804, + name: "Igarassu", + state: State::PE, + }, + Municipio { + ibge_code: 2606903, + name: "Iguaracy", + state: State::PE, + }, + Municipio { + ibge_code: 2607604, + name: "Ilha de Itamaracá", + state: State::PE, + }, + Municipio { + ibge_code: 2607000, + name: "Inajá", + state: State::PE, + }, + Municipio { + ibge_code: 2607109, + name: "Ingazeira", + state: State::PE, + }, + Municipio { + ibge_code: 2607208, + name: "Ipojuca", + state: State::PE, + }, + Municipio { + ibge_code: 2607307, + name: "Ipubi", + state: State::PE, + }, + Municipio { + ibge_code: 2607406, + name: "Itacuruba", + state: State::PE, + }, + Municipio { + ibge_code: 2607653, + name: "Itambé", + state: State::PE, + }, + Municipio { + ibge_code: 2607703, + name: "Itapetim", + state: State::PE, + }, + Municipio { + ibge_code: 2607752, + name: "Itapissuma", + state: State::PE, + }, + Municipio { + ibge_code: 2607802, + name: "Itaquitinga", + state: State::PE, + }, + Municipio { + ibge_code: 2607505, + name: "Itaíba", + state: State::PE, + }, + Municipio { + ibge_code: 2607901, + name: "Jaboatão dos Guararapes", + state: State::PE, + }, + Municipio { + ibge_code: 2607950, + name: "Jaqueira", + state: State::PE, + }, + Municipio { + ibge_code: 2608008, + name: "Jataúba", + state: State::PE, + }, + Municipio { + ibge_code: 2608057, + name: "Jatobá", + state: State::PE, + }, + Municipio { + ibge_code: 2608206, + name: "Joaquim Nabuco", + state: State::PE, + }, + Municipio { + ibge_code: 2608107, + name: "João Alfredo", + state: State::PE, + }, + Municipio { + ibge_code: 2608255, + name: "Jucati", + state: State::PE, + }, + Municipio { + ibge_code: 2608305, + name: "Jupi", + state: State::PE, + }, + Municipio { + ibge_code: 2608404, + name: "Jurema", + state: State::PE, + }, + Municipio { + ibge_code: 2608750, + name: "Lagoa Grande", + state: State::PE, + }, + Municipio { + ibge_code: 2608503, + name: "Lagoa de Itaenga", + state: State::PE, + }, + Municipio { + ibge_code: 2608453, + name: "Lagoa do Carro", + state: State::PE, + }, + Municipio { + ibge_code: 2608602, + name: "Lagoa do Ouro", + state: State::PE, + }, + Municipio { + ibge_code: 2608701, + name: "Lagoa dos Gatos", + state: State::PE, + }, + Municipio { + ibge_code: 2608800, + name: "Lajedo", + state: State::PE, + }, + Municipio { + ibge_code: 2608909, + name: "Limoeiro", + state: State::PE, + }, + Municipio { + ibge_code: 2609006, + name: "Macaparana", + state: State::PE, + }, + Municipio { + ibge_code: 2609105, + name: "Machados", + state: State::PE, + }, + Municipio { + ibge_code: 2609154, + name: "Manari", + state: State::PE, + }, + Municipio { + ibge_code: 2609204, + name: "Maraial", + state: State::PE, + }, + Municipio { + ibge_code: 2609303, + name: "Mirandiba", + state: State::PE, + }, + Municipio { + ibge_code: 2614303, + name: "Moreilândia", + state: State::PE, + }, + Municipio { + ibge_code: 2609402, + name: "Moreno", + state: State::PE, + }, + Municipio { + ibge_code: 2609501, + name: "Nazaré da Mata", + state: State::PE, + }, + Municipio { + ibge_code: 2609600, + name: "Olinda", + state: State::PE, + }, + Municipio { + ibge_code: 2609709, + name: "Orobó", + state: State::PE, + }, + Municipio { + ibge_code: 2609808, + name: "Orocó", + state: State::PE, + }, + Municipio { + ibge_code: 2609907, + name: "Ouricuri", + state: State::PE, + }, + Municipio { + ibge_code: 2610004, + name: "Palmares", + state: State::PE, + }, + Municipio { + ibge_code: 2610103, + name: "Palmeirina", + state: State::PE, + }, + Municipio { + ibge_code: 2610202, + name: "Panelas", + state: State::PE, + }, + Municipio { + ibge_code: 2610301, + name: "Paranatama", + state: State::PE, + }, + Municipio { + ibge_code: 2610400, + name: "Parnamirim", + state: State::PE, + }, + Municipio { + ibge_code: 2610509, + name: "Passira", + state: State::PE, + }, + Municipio { + ibge_code: 2610608, + name: "Paudalho", + state: State::PE, + }, + Municipio { + ibge_code: 2610707, + name: "Paulista", + state: State::PE, + }, + Municipio { + ibge_code: 2610806, + name: "Pedra", + state: State::PE, + }, + Municipio { + ibge_code: 2610905, + name: "Pesqueira", + state: State::PE, + }, + Municipio { + ibge_code: 2611101, + name: "Petrolina", + state: State::PE, + }, + Municipio { + ibge_code: 2611002, + name: "Petrolândia", + state: State::PE, + }, + Municipio { + ibge_code: 2611309, + name: "Pombos", + state: State::PE, + }, + Municipio { + ibge_code: 2611200, + name: "Poção", + state: State::PE, + }, + Municipio { + ibge_code: 2611408, + name: "Primavera", + state: State::PE, + }, + Municipio { + ibge_code: 2611507, + name: "Quipapá", + state: State::PE, + }, + Municipio { + ibge_code: 2611533, + name: "Quixaba", + state: State::PE, + }, + Municipio { + ibge_code: 2611606, + name: "Recife", + state: State::PE, + }, + Municipio { + ibge_code: 2611705, + name: "Riacho das Almas", + state: State::PE, + }, + Municipio { + ibge_code: 2611804, + name: "Ribeirão", + state: State::PE, + }, + Municipio { + ibge_code: 2611903, + name: "Rio Formoso", + state: State::PE, + }, + Municipio { + ibge_code: 2612000, + name: "Sairé", + state: State::PE, + }, + Municipio { + ibge_code: 2612109, + name: "Salgadinho", + state: State::PE, + }, + Municipio { + ibge_code: 2612208, + name: "Salgueiro", + state: State::PE, + }, + Municipio { + ibge_code: 2612307, + name: "Saloá", + state: State::PE, + }, + Municipio { + ibge_code: 2612406, + name: "Sanharó", + state: State::PE, + }, + Municipio { + ibge_code: 2612455, + name: "Santa Cruz", + state: State::PE, + }, + Municipio { + ibge_code: 2612471, + name: "Santa Cruz da Baixa Verde", + state: State::PE, + }, + Municipio { + ibge_code: 2612505, + name: "Santa Cruz do Capibaribe", + state: State::PE, + }, + Municipio { + ibge_code: 2612554, + name: "Santa Filomena", + state: State::PE, + }, + Municipio { + ibge_code: 2612604, + name: "Santa Maria da Boa Vista", + state: State::PE, + }, + Municipio { + ibge_code: 2612703, + name: "Santa Maria do Cambucá", + state: State::PE, + }, + Municipio { + ibge_code: 2612802, + name: "Santa Terezinha", + state: State::PE, + }, + Municipio { + ibge_code: 2613909, + name: "Serra Talhada", + state: State::PE, + }, + Municipio { + ibge_code: 2614006, + name: "Serrita", + state: State::PE, + }, + Municipio { + ibge_code: 2614105, + name: "Sertânia", + state: State::PE, + }, + Municipio { + ibge_code: 2614204, + name: "Sirinhaém", + state: State::PE, + }, + Municipio { + ibge_code: 2614402, + name: "Solidão", + state: State::PE, + }, + Municipio { + ibge_code: 2614501, + name: "Surubim", + state: State::PE, + }, + Municipio { + ibge_code: 2612901, + name: "São Benedito do Sul", + state: State::PE, + }, + Municipio { + ibge_code: 2613008, + name: "São Bento do Una", + state: State::PE, + }, + Municipio { + ibge_code: 2613107, + name: "São Caitano", + state: State::PE, + }, + Municipio { + ibge_code: 2613305, + name: "São Joaquim do Monte", + state: State::PE, + }, + Municipio { + ibge_code: 2613404, + name: "São José da Coroa Grande", + state: State::PE, + }, + Municipio { + ibge_code: 2613503, + name: "São José do Belmonte", + state: State::PE, + }, + Municipio { + ibge_code: 2613602, + name: "São José do Egito", + state: State::PE, + }, + Municipio { + ibge_code: 2613206, + name: "São João", + state: State::PE, + }, + Municipio { + ibge_code: 2613701, + name: "São Lourenço da Mata", + state: State::PE, + }, + Municipio { + ibge_code: 2613800, + name: "São Vicente Férrer", + state: State::PE, + }, + Municipio { + ibge_code: 2614600, + name: "Tabira", + state: State::PE, + }, + Municipio { + ibge_code: 2614709, + name: "Tacaimbó", + state: State::PE, + }, + Municipio { + ibge_code: 2614808, + name: "Tacaratu", + state: State::PE, + }, + Municipio { + ibge_code: 2614857, + name: "Tamandaré", + state: State::PE, + }, + Municipio { + ibge_code: 2615003, + name: "Taquaritinga do Norte", + state: State::PE, + }, + Municipio { + ibge_code: 2615102, + name: "Terezinha", + state: State::PE, + }, + Municipio { + ibge_code: 2615201, + name: "Terra Nova", + state: State::PE, + }, + Municipio { + ibge_code: 2615300, + name: "Timbaúba", + state: State::PE, + }, + Municipio { + ibge_code: 2615409, + name: "Toritama", + state: State::PE, + }, + Municipio { + ibge_code: 2615508, + name: "Tracunhaém", + state: State::PE, + }, + Municipio { + ibge_code: 2615607, + name: "Trindade", + state: State::PE, + }, + Municipio { + ibge_code: 2615706, + name: "Triunfo", + state: State::PE, + }, + Municipio { + ibge_code: 2615805, + name: "Tupanatinga", + state: State::PE, + }, + Municipio { + ibge_code: 2615904, + name: "Tuparetama", + state: State::PE, + }, + Municipio { + ibge_code: 2616001, + name: "Venturosa", + state: State::PE, + }, + Municipio { + ibge_code: 2616100, + name: "Verdejante", + state: State::PE, + }, + Municipio { + ibge_code: 2616183, + name: "Vertente do Lério", + state: State::PE, + }, + Municipio { + ibge_code: 2616209, + name: "Vertentes", + state: State::PE, + }, + Municipio { + ibge_code: 2616308, + name: "Vicência", + state: State::PE, + }, + Municipio { + ibge_code: 2616407, + name: "Vitória de Santo Antão", + state: State::PE, + }, + Municipio { + ibge_code: 2616506, + name: "Xexéu", + state: State::PE, + }, + Municipio { + ibge_code: 2600401, + name: "Água Preta", + state: State::PE, + }, + Municipio { + ibge_code: 2600500, + name: "Águas Belas", + state: State::PE, + }, + Municipio { + ibge_code: 2200053, + name: "Acauã", + state: State::PI, + }, + Municipio { + ibge_code: 2200103, + name: "Agricolândia", + state: State::PI, + }, + Municipio { + ibge_code: 2200251, + name: "Alagoinha do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2200277, + name: "Alegrete do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2200301, + name: "Alto Longá", + state: State::PI, + }, + Municipio { + ibge_code: 2200400, + name: "Altos", + state: State::PI, + }, + Municipio { + ibge_code: 2200459, + name: "Alvorada do Gurguéia", + state: State::PI, + }, + Municipio { + ibge_code: 2200509, + name: "Amarante", + state: State::PI, + }, + Municipio { + ibge_code: 2200608, + name: "Angical do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2200806, + name: "Antônio Almeida", + state: State::PI, + }, + Municipio { + ibge_code: 2200707, + name: "Anísio de Abreu", + state: State::PI, + }, + Municipio { + ibge_code: 2200905, + name: "Aroazes", + state: State::PI, + }, + Municipio { + ibge_code: 2200954, + name: "Aroeiras do Itaim", + state: State::PI, + }, + Municipio { + ibge_code: 2201002, + name: "Arraial", + state: State::PI, + }, + Municipio { + ibge_code: 2201051, + name: "Assunção do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201101, + name: "Avelino Lopes", + state: State::PI, + }, + Municipio { + ibge_code: 2201150, + name: "Baixa Grande do Ribeiro", + state: State::PI, + }, + Municipio { + ibge_code: 2201176, + name: "Barra D'Alcântara", + state: State::PI, + }, + Municipio { + ibge_code: 2201200, + name: "Barras", + state: State::PI, + }, + Municipio { + ibge_code: 2201309, + name: "Barreiras do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201408, + name: "Barro Duro", + state: State::PI, + }, + Municipio { + ibge_code: 2201507, + name: "Batalha", + state: State::PI, + }, + Municipio { + ibge_code: 2201556, + name: "Bela Vista do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201572, + name: "Belém do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201606, + name: "Beneditinos", + state: State::PI, + }, + Municipio { + ibge_code: 2201705, + name: "Bertolínia", + state: State::PI, + }, + Municipio { + ibge_code: 2201739, + name: "Betânia do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201770, + name: "Boa Hora", + state: State::PI, + }, + Municipio { + ibge_code: 2201804, + name: "Bocaina", + state: State::PI, + }, + Municipio { + ibge_code: 2201903, + name: "Bom Jesus", + state: State::PI, + }, + Municipio { + ibge_code: 2201919, + name: "Bom Princípio do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201929, + name: "Bonfim do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201945, + name: "Boqueirão do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2201960, + name: "Brasileira", + state: State::PI, + }, + Municipio { + ibge_code: 2201988, + name: "Brejo do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202000, + name: "Buriti dos Lopes", + state: State::PI, + }, + Municipio { + ibge_code: 2202026, + name: "Buriti dos Montes", + state: State::PI, + }, + Municipio { + ibge_code: 2202059, + name: "Cabeceiras do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202075, + name: "Cajazeiras do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202083, + name: "Cajueiro da Praia", + state: State::PI, + }, + Municipio { + ibge_code: 2202091, + name: "Caldeirão Grande do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202109, + name: "Campinas do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202117, + name: "Campo Alegre do Fidalgo", + state: State::PI, + }, + Municipio { + ibge_code: 2202133, + name: "Campo Grande do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202174, + name: "Campo Largo do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202208, + name: "Campo Maior", + state: State::PI, + }, + Municipio { + ibge_code: 2202251, + name: "Canavieira", + state: State::PI, + }, + Municipio { + ibge_code: 2202307, + name: "Canto do Buriti", + state: State::PI, + }, + Municipio { + ibge_code: 2202455, + name: "Capitão Gervásio Oliveira", + state: State::PI, + }, + Municipio { + ibge_code: 2202406, + name: "Capitão de Campos", + state: State::PI, + }, + Municipio { + ibge_code: 2202505, + name: "Caracol", + state: State::PI, + }, + Municipio { + ibge_code: 2202539, + name: "Caraúbas do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202554, + name: "Caridade do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202604, + name: "Castelo do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202653, + name: "Caxingó", + state: State::PI, + }, + Municipio { + ibge_code: 2202703, + name: "Cocal", + state: State::PI, + }, + Municipio { + ibge_code: 2202711, + name: "Cocal de Telha", + state: State::PI, + }, + Municipio { + ibge_code: 2202729, + name: "Cocal dos Alves", + state: State::PI, + }, + Municipio { + ibge_code: 2202737, + name: "Coivaras", + state: State::PI, + }, + Municipio { + ibge_code: 2202752, + name: "Colônia do Gurguéia", + state: State::PI, + }, + Municipio { + ibge_code: 2202778, + name: "Colônia do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2202802, + name: "Conceição do Canindé", + state: State::PI, + }, + Municipio { + ibge_code: 2202851, + name: "Coronel José Dias", + state: State::PI, + }, + Municipio { + ibge_code: 2202901, + name: "Corrente", + state: State::PI, + }, + Municipio { + ibge_code: 2203008, + name: "Cristalândia do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2203107, + name: "Cristino Castro", + state: State::PI, + }, + Municipio { + ibge_code: 2203206, + name: "Curimatá", + state: State::PI, + }, + Municipio { + ibge_code: 2203230, + name: "Currais", + state: State::PI, + }, + Municipio { + ibge_code: 2203271, + name: "Curral Novo do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2203255, + name: "Curralinhos", + state: State::PI, + }, + Municipio { + ibge_code: 2203305, + name: "Demerval Lobão", + state: State::PI, + }, + Municipio { + ibge_code: 2203354, + name: "Dirceu Arcoverde", + state: State::PI, + }, + Municipio { + ibge_code: 2203404, + name: "Dom Expedito Lopes", + state: State::PI, + }, + Municipio { + ibge_code: 2203453, + name: "Dom Inocêncio", + state: State::PI, + }, + Municipio { + ibge_code: 2203420, + name: "Domingos Mourão", + state: State::PI, + }, + Municipio { + ibge_code: 2203503, + name: "Elesbão Veloso", + state: State::PI, + }, + Municipio { + ibge_code: 2203602, + name: "Eliseu Martins", + state: State::PI, + }, + Municipio { + ibge_code: 2203701, + name: "Esperantina", + state: State::PI, + }, + Municipio { + ibge_code: 2203750, + name: "Fartura do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2203800, + name: "Flores do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2203859, + name: "Floresta do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2203909, + name: "Floriano", + state: State::PI, + }, + Municipio { + ibge_code: 2204006, + name: "Francinópolis", + state: State::PI, + }, + Municipio { + ibge_code: 2204105, + name: "Francisco Ayres", + state: State::PI, + }, + Municipio { + ibge_code: 2204154, + name: "Francisco Macedo", + state: State::PI, + }, + Municipio { + ibge_code: 2204204, + name: "Francisco Santos", + state: State::PI, + }, + Municipio { + ibge_code: 2204303, + name: "Fronteiras", + state: State::PI, + }, + Municipio { + ibge_code: 2204352, + name: "Geminiano", + state: State::PI, + }, + Municipio { + ibge_code: 2204402, + name: "Gilbués", + state: State::PI, + }, + Municipio { + ibge_code: 2204501, + name: "Guadalupe", + state: State::PI, + }, + Municipio { + ibge_code: 2204550, + name: "Guaribas", + state: State::PI, + }, + Municipio { + ibge_code: 2204600, + name: "Hugo Napoleão", + state: State::PI, + }, + Municipio { + ibge_code: 2204659, + name: "Ilha Grande", + state: State::PI, + }, + Municipio { + ibge_code: 2204709, + name: "Inhuma", + state: State::PI, + }, + Municipio { + ibge_code: 2204808, + name: "Ipiranga do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2204907, + name: "Isaías Coelho", + state: State::PI, + }, + Municipio { + ibge_code: 2205003, + name: "Itainópolis", + state: State::PI, + }, + Municipio { + ibge_code: 2205102, + name: "Itaueira", + state: State::PI, + }, + Municipio { + ibge_code: 2205151, + name: "Jacobina do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2205201, + name: "Jaicós", + state: State::PI, + }, + Municipio { + ibge_code: 2205250, + name: "Jardim do Mulato", + state: State::PI, + }, + Municipio { + ibge_code: 2205276, + name: "Jatobá do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2205300, + name: "Jerumenha", + state: State::PI, + }, + Municipio { + ibge_code: 2205409, + name: "Joaquim Pires", + state: State::PI, + }, + Municipio { + ibge_code: 2205458, + name: "Joca Marques", + state: State::PI, + }, + Municipio { + ibge_code: 2205508, + name: "José de Freitas", + state: State::PI, + }, + Municipio { + ibge_code: 2205359, + name: "João Costa", + state: State::PI, + }, + Municipio { + ibge_code: 2205516, + name: "Juazeiro do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2205532, + name: "Jurema", + state: State::PI, + }, + Municipio { + ibge_code: 2205524, + name: "Júlio Borges", + state: State::PI, + }, + Municipio { + ibge_code: 2205557, + name: "Lagoa Alegre", + state: State::PI, + }, + Municipio { + ibge_code: 2205573, + name: "Lagoa de São Francisco", + state: State::PI, + }, + Municipio { + ibge_code: 2205565, + name: "Lagoa do Barro do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2205581, + name: "Lagoa do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2205599, + name: "Lagoa do Sítio", + state: State::PI, + }, + Municipio { + ibge_code: 2205540, + name: "Lagoinha do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2205607, + name: "Landri Sales", + state: State::PI, + }, + Municipio { + ibge_code: 2205805, + name: "Luzilândia", + state: State::PI, + }, + Municipio { + ibge_code: 2205706, + name: "Luís Correia", + state: State::PI, + }, + Municipio { + ibge_code: 2205854, + name: "Madeiro", + state: State::PI, + }, + Municipio { + ibge_code: 2205904, + name: "Manoel Emídio", + state: State::PI, + }, + Municipio { + ibge_code: 2205953, + name: "Marcolândia", + state: State::PI, + }, + Municipio { + ibge_code: 2206001, + name: "Marcos Parente", + state: State::PI, + }, + Municipio { + ibge_code: 2206050, + name: "Massapê do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2206100, + name: "Matias Olímpio", + state: State::PI, + }, + Municipio { + ibge_code: 2206209, + name: "Miguel Alves", + state: State::PI, + }, + Municipio { + ibge_code: 2206308, + name: "Miguel Leão", + state: State::PI, + }, + Municipio { + ibge_code: 2206357, + name: "Milton Brandão", + state: State::PI, + }, + Municipio { + ibge_code: 2206407, + name: "Monsenhor Gil", + state: State::PI, + }, + Municipio { + ibge_code: 2206506, + name: "Monsenhor Hipólito", + state: State::PI, + }, + Municipio { + ibge_code: 2206605, + name: "Monte Alegre do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2206654, + name: "Morro Cabeça no Tempo", + state: State::PI, + }, + Municipio { + ibge_code: 2206670, + name: "Morro do Chapéu do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2206696, + name: "Murici dos Portelas", + state: State::PI, + }, + Municipio { + ibge_code: 2206704, + name: "Nazaré do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2206720, + name: "Nazária", + state: State::PI, + }, + Municipio { + ibge_code: 2206753, + name: "Nossa Senhora de Nazaré", + state: State::PI, + }, + Municipio { + ibge_code: 2206803, + name: "Nossa Senhora dos Remédios", + state: State::PI, + }, + Municipio { + ibge_code: 2207959, + name: "Nova Santa Rita", + state: State::PI, + }, + Municipio { + ibge_code: 2206902, + name: "Novo Oriente do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2206951, + name: "Novo Santo Antônio", + state: State::PI, + }, + Municipio { + ibge_code: 2207009, + name: "Oeiras", + state: State::PI, + }, + Municipio { + ibge_code: 2207108, + name: "Olho D'Água do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2207207, + name: "Padre Marcos", + state: State::PI, + }, + Municipio { + ibge_code: 2207306, + name: "Paes Landim", + state: State::PI, + }, + Municipio { + ibge_code: 2207355, + name: "Pajeú do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2207405, + name: "Palmeira do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2207504, + name: "Palmeirais", + state: State::PI, + }, + Municipio { + ibge_code: 2207553, + name: "Paquetá", + state: State::PI, + }, + Municipio { + ibge_code: 2207603, + name: "Parnaguá", + state: State::PI, + }, + Municipio { + ibge_code: 2207702, + name: "Parnaíba", + state: State::PI, + }, + Municipio { + ibge_code: 2207751, + name: "Passagem Franca do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2207777, + name: "Patos do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2207793, + name: "Pau D'Arco do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2207801, + name: "Paulistana", + state: State::PI, + }, + Municipio { + ibge_code: 2207850, + name: "Pavussu", + state: State::PI, + }, + Municipio { + ibge_code: 2207900, + name: "Pedro II", + state: State::PI, + }, + Municipio { + ibge_code: 2207934, + name: "Pedro Laurentino", + state: State::PI, + }, + Municipio { + ibge_code: 2208007, + name: "Picos", + state: State::PI, + }, + Municipio { + ibge_code: 2208106, + name: "Pimenteiras", + state: State::PI, + }, + Municipio { + ibge_code: 2208205, + name: "Pio IX", + state: State::PI, + }, + Municipio { + ibge_code: 2208304, + name: "Piracuruca", + state: State::PI, + }, + Municipio { + ibge_code: 2208403, + name: "Piripiri", + state: State::PI, + }, + Municipio { + ibge_code: 2208502, + name: "Porto", + state: State::PI, + }, + Municipio { + ibge_code: 2208551, + name: "Porto Alegre do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2208601, + name: "Prata do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2208650, + name: "Queimada Nova", + state: State::PI, + }, + Municipio { + ibge_code: 2208700, + name: "Redenção do Gurguéia", + state: State::PI, + }, + Municipio { + ibge_code: 2208809, + name: "Regeneração", + state: State::PI, + }, + Municipio { + ibge_code: 2208858, + name: "Riacho Frio", + state: State::PI, + }, + Municipio { + ibge_code: 2208874, + name: "Ribeira do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2208908, + name: "Ribeiro Gonçalves", + state: State::PI, + }, + Municipio { + ibge_code: 2209005, + name: "Rio Grande do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209104, + name: "Santa Cruz do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209153, + name: "Santa Cruz dos Milagres", + state: State::PI, + }, + Municipio { + ibge_code: 2209203, + name: "Santa Filomena", + state: State::PI, + }, + Municipio { + ibge_code: 2209302, + name: "Santa Luz", + state: State::PI, + }, + Municipio { + ibge_code: 2209377, + name: "Santa Rosa do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209351, + name: "Santana do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209401, + name: "Santo Antônio de Lisboa", + state: State::PI, + }, + Municipio { + ibge_code: 2209450, + name: "Santo Antônio dos Milagres", + state: State::PI, + }, + Municipio { + ibge_code: 2209500, + name: "Santo Inácio do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210623, + name: "Sebastião Barros", + state: State::PI, + }, + Municipio { + ibge_code: 2210631, + name: "Sebastião Leal", + state: State::PI, + }, + Municipio { + ibge_code: 2210656, + name: "Sigefredo Pacheco", + state: State::PI, + }, + Municipio { + ibge_code: 2210805, + name: "Simplício Mendes", + state: State::PI, + }, + Municipio { + ibge_code: 2210706, + name: "Simões", + state: State::PI, + }, + Municipio { + ibge_code: 2210904, + name: "Socorro do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210938, + name: "Sussuapara", + state: State::PI, + }, + Municipio { + ibge_code: 2209559, + name: "São Braz do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209658, + name: "São Francisco de Assis do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209708, + name: "São Francisco do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209609, + name: "São Félix do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209757, + name: "São Gonçalo do Gurguéia", + state: State::PI, + }, + Municipio { + ibge_code: 2209807, + name: "São Gonçalo do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210052, + name: "São José do Divino", + state: State::PI, + }, + Municipio { + ibge_code: 2210102, + name: "São José do Peixe", + state: State::PI, + }, + Municipio { + ibge_code: 2210201, + name: "São José do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2209856, + name: "São João da Canabrava", + state: State::PI, + }, + Municipio { + ibge_code: 2209872, + name: "São João da Fronteira", + state: State::PI, + }, + Municipio { + ibge_code: 2209906, + name: "São João da Serra", + state: State::PI, + }, + Municipio { + ibge_code: 2209955, + name: "São João da Varjota", + state: State::PI, + }, + Municipio { + ibge_code: 2209971, + name: "São João do Arraial", + state: State::PI, + }, + Municipio { + ibge_code: 2210003, + name: "São João do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210300, + name: "São Julião", + state: State::PI, + }, + Municipio { + ibge_code: 2210359, + name: "São Lourenço do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210375, + name: "São Luis do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210383, + name: "São Miguel da Baixa Grande", + state: State::PI, + }, + Municipio { + ibge_code: 2210391, + name: "São Miguel do Fidalgo", + state: State::PI, + }, + Municipio { + ibge_code: 2210409, + name: "São Miguel do Tapuio", + state: State::PI, + }, + Municipio { + ibge_code: 2210508, + name: "São Pedro do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210607, + name: "São Raimundo Nonato", + state: State::PI, + }, + Municipio { + ibge_code: 2210953, + name: "Tamboril do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2210979, + name: "Tanque do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2211001, + name: "Teresina", + state: State::PI, + }, + Municipio { + ibge_code: 2211100, + name: "União", + state: State::PI, + }, + Municipio { + ibge_code: 2211209, + name: "Uruçuí", + state: State::PI, + }, + Municipio { + ibge_code: 2211308, + name: "Valença do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2211506, + name: "Vera Mendes", + state: State::PI, + }, + Municipio { + ibge_code: 2211605, + name: "Vila Nova do Piauí", + state: State::PI, + }, + Municipio { + ibge_code: 2211357, + name: "Várzea Branca", + state: State::PI, + }, + Municipio { + ibge_code: 2211407, + name: "Várzea Grande", + state: State::PI, + }, + Municipio { + ibge_code: 2211704, + name: "Wall Ferraz", + state: State::PI, + }, + Municipio { + ibge_code: 2200202, + name: "Água Branca", + state: State::PI, + }, + Municipio { + ibge_code: 4100103, + name: "Abatiá", + state: State::PR, + }, + Municipio { + ibge_code: 4100202, + name: "Adrianópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4100301, + name: "Agudos do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4100400, + name: "Almirante Tamandaré", + state: State::PR, + }, + Municipio { + ibge_code: 4100459, + name: "Altamira do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4100608, + name: "Alto Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4128625, + name: "Alto Paraíso", + state: State::PR, + }, + Municipio { + ibge_code: 4100707, + name: "Alto Piquiri", + state: State::PR, + }, + Municipio { + ibge_code: 4100509, + name: "Altônia", + state: State::PR, + }, + Municipio { + ibge_code: 4100806, + name: "Alvorada do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4100905, + name: "Amaporã", + state: State::PR, + }, + Municipio { + ibge_code: 4101002, + name: "Ampére", + state: State::PR, + }, + Municipio { + ibge_code: 4101051, + name: "Anahy", + state: State::PR, + }, + Municipio { + ibge_code: 4101101, + name: "Andirá", + state: State::PR, + }, + Municipio { + ibge_code: 4101200, + name: "Antonina", + state: State::PR, + }, + Municipio { + ibge_code: 4101309, + name: "Antônio Olinto", + state: State::PR, + }, + Municipio { + ibge_code: 4101408, + name: "Apucarana", + state: State::PR, + }, + Municipio { + ibge_code: 4101507, + name: "Arapongas", + state: State::PR, + }, + Municipio { + ibge_code: 4101606, + name: "Arapoti", + state: State::PR, + }, + Municipio { + ibge_code: 4101655, + name: "Arapuã", + state: State::PR, + }, + Municipio { + ibge_code: 4101705, + name: "Araruna", + state: State::PR, + }, + Municipio { + ibge_code: 4101804, + name: "Araucária", + state: State::PR, + }, + Municipio { + ibge_code: 4101853, + name: "Ariranha do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4101903, + name: "Assaí", + state: State::PR, + }, + Municipio { + ibge_code: 4102000, + name: "Assis Chateaubriand", + state: State::PR, + }, + Municipio { + ibge_code: 4102109, + name: "Astorga", + state: State::PR, + }, + Municipio { + ibge_code: 4102208, + name: "Atalaia", + state: State::PR, + }, + Municipio { + ibge_code: 4102307, + name: "Balsa Nova", + state: State::PR, + }, + Municipio { + ibge_code: 4102406, + name: "Bandeirantes", + state: State::PR, + }, + Municipio { + ibge_code: 4102505, + name: "Barbosa Ferraz", + state: State::PR, + }, + Municipio { + ibge_code: 4102703, + name: "Barra do Jacaré", + state: State::PR, + }, + Municipio { + ibge_code: 4102604, + name: "Barracão", + state: State::PR, + }, + Municipio { + ibge_code: 4102752, + name: "Bela Vista da Caroba", + state: State::PR, + }, + Municipio { + ibge_code: 4102802, + name: "Bela Vista do Paraíso", + state: State::PR, + }, + Municipio { + ibge_code: 4102901, + name: "Bituruna", + state: State::PR, + }, + Municipio { + ibge_code: 4103008, + name: "Boa Esperança", + state: State::PR, + }, + Municipio { + ibge_code: 4103024, + name: "Boa Esperança do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4103040, + name: "Boa Ventura de São Roque", + state: State::PR, + }, + Municipio { + ibge_code: 4103057, + name: "Boa Vista da Aparecida", + state: State::PR, + }, + Municipio { + ibge_code: 4103107, + name: "Bocaiúva do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4103156, + name: "Bom Jesus do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4103206, + name: "Bom Sucesso", + state: State::PR, + }, + Municipio { + ibge_code: 4103222, + name: "Bom Sucesso do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4103305, + name: "Borrazópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4103354, + name: "Braganey", + state: State::PR, + }, + Municipio { + ibge_code: 4103370, + name: "Brasilândia do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4103404, + name: "Cafeara", + state: State::PR, + }, + Municipio { + ibge_code: 4103453, + name: "Cafelândia", + state: State::PR, + }, + Municipio { + ibge_code: 4103479, + name: "Cafezal do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4103503, + name: "Califórnia", + state: State::PR, + }, + Municipio { + ibge_code: 4103602, + name: "Cambará", + state: State::PR, + }, + Municipio { + ibge_code: 4103800, + name: "Cambira", + state: State::PR, + }, + Municipio { + ibge_code: 4103701, + name: "Cambé", + state: State::PR, + }, + Municipio { + ibge_code: 4104006, + name: "Campina Grande do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4103909, + name: "Campina da Lagoa", + state: State::PR, + }, + Municipio { + ibge_code: 4103958, + name: "Campina do Simão", + state: State::PR, + }, + Municipio { + ibge_code: 4104055, + name: "Campo Bonito", + state: State::PR, + }, + Municipio { + ibge_code: 4104204, + name: "Campo Largo", + state: State::PR, + }, + Municipio { + ibge_code: 4104253, + name: "Campo Magro", + state: State::PR, + }, + Municipio { + ibge_code: 4104303, + name: "Campo Mourão", + state: State::PR, + }, + Municipio { + ibge_code: 4104105, + name: "Campo do Tenente", + state: State::PR, + }, + Municipio { + ibge_code: 4104428, + name: "Candói", + state: State::PR, + }, + Municipio { + ibge_code: 4104451, + name: "Cantagalo", + state: State::PR, + }, + Municipio { + ibge_code: 4104501, + name: "Capanema", + state: State::PR, + }, + Municipio { + ibge_code: 4104600, + name: "Capitão Leônidas Marques", + state: State::PR, + }, + Municipio { + ibge_code: 4104659, + name: "Carambeí", + state: State::PR, + }, + Municipio { + ibge_code: 4104709, + name: "Carlópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4104808, + name: "Cascavel", + state: State::PR, + }, + Municipio { + ibge_code: 4104907, + name: "Castro", + state: State::PR, + }, + Municipio { + ibge_code: 4105003, + name: "Catanduvas", + state: State::PR, + }, + Municipio { + ibge_code: 4105102, + name: "Centenário do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4105201, + name: "Cerro Azul", + state: State::PR, + }, + Municipio { + ibge_code: 4105409, + name: "Chopinzinho", + state: State::PR, + }, + Municipio { + ibge_code: 4105508, + name: "Cianorte", + state: State::PR, + }, + Municipio { + ibge_code: 4105607, + name: "Cidade Gaúcha", + state: State::PR, + }, + Municipio { + ibge_code: 4105706, + name: "Clevelândia", + state: State::PR, + }, + Municipio { + ibge_code: 4105805, + name: "Colombo", + state: State::PR, + }, + Municipio { + ibge_code: 4105904, + name: "Colorado", + state: State::PR, + }, + Municipio { + ibge_code: 4106001, + name: "Congonhinhas", + state: State::PR, + }, + Municipio { + ibge_code: 4106100, + name: "Conselheiro Mairinck", + state: State::PR, + }, + Municipio { + ibge_code: 4106209, + name: "Contenda", + state: State::PR, + }, + Municipio { + ibge_code: 4106308, + name: "Corbélia", + state: State::PR, + }, + Municipio { + ibge_code: 4106407, + name: "Cornélio Procópio", + state: State::PR, + }, + Municipio { + ibge_code: 4106456, + name: "Coronel Domingos Soares", + state: State::PR, + }, + Municipio { + ibge_code: 4106506, + name: "Coronel Vivida", + state: State::PR, + }, + Municipio { + ibge_code: 4106555, + name: "Corumbataí do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4106803, + name: "Cruz Machado", + state: State::PR, + }, + Municipio { + ibge_code: 4106571, + name: "Cruzeiro do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4106605, + name: "Cruzeiro do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4106704, + name: "Cruzeiro do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4106852, + name: "Cruzmaltina", + state: State::PR, + }, + Municipio { + ibge_code: 4106902, + name: "Curitiba", + state: State::PR, + }, + Municipio { + ibge_code: 4107009, + name: "Curiúva", + state: State::PR, + }, + Municipio { + ibge_code: 4104402, + name: "Cândido de Abreu", + state: State::PR, + }, + Municipio { + ibge_code: 4105300, + name: "Céu Azul", + state: State::PR, + }, + Municipio { + ibge_code: 4107157, + name: "Diamante D'Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4107108, + name: "Diamante do Norte", + state: State::PR, + }, + Municipio { + ibge_code: 4107124, + name: "Diamante do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4107207, + name: "Dois Vizinhos", + state: State::PR, + }, + Municipio { + ibge_code: 4107256, + name: "Douradina", + state: State::PR, + }, + Municipio { + ibge_code: 4107306, + name: "Doutor Camargo", + state: State::PR, + }, + Municipio { + ibge_code: 4128633, + name: "Doutor Ulysses", + state: State::PR, + }, + Municipio { + ibge_code: 4107504, + name: "Engenheiro Beltrão", + state: State::PR, + }, + Municipio { + ibge_code: 4107538, + name: "Entre Rios do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4107405, + name: "Enéas Marques", + state: State::PR, + }, + Municipio { + ibge_code: 4107520, + name: "Esperança Nova", + state: State::PR, + }, + Municipio { + ibge_code: 4107546, + name: "Espigão Alto do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4107553, + name: "Farol", + state: State::PR, + }, + Municipio { + ibge_code: 4107603, + name: "Faxinal", + state: State::PR, + }, + Municipio { + ibge_code: 4107652, + name: "Fazenda Rio Grande", + state: State::PR, + }, + Municipio { + ibge_code: 4107736, + name: "Fernandes Pinheiro", + state: State::PR, + }, + Municipio { + ibge_code: 4107751, + name: "Figueira", + state: State::PR, + }, + Municipio { + ibge_code: 4107850, + name: "Flor da Serra do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4107801, + name: "Floraí", + state: State::PR, + }, + Municipio { + ibge_code: 4107900, + name: "Floresta", + state: State::PR, + }, + Municipio { + ibge_code: 4108007, + name: "Florestópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4108106, + name: "Flórida", + state: State::PR, + }, + Municipio { + ibge_code: 4108205, + name: "Formosa do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4108304, + name: "Foz do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4108452, + name: "Foz do Jordão", + state: State::PR, + }, + Municipio { + ibge_code: 4108320, + name: "Francisco Alves", + state: State::PR, + }, + Municipio { + ibge_code: 4108403, + name: "Francisco Beltrão", + state: State::PR, + }, + Municipio { + ibge_code: 4107702, + name: "Fênix", + state: State::PR, + }, + Municipio { + ibge_code: 4108502, + name: "General Carneiro", + state: State::PR, + }, + Municipio { + ibge_code: 4108551, + name: "Godoy Moreira", + state: State::PR, + }, + Municipio { + ibge_code: 4108601, + name: "Goioerê", + state: State::PR, + }, + Municipio { + ibge_code: 4108650, + name: "Goioxim", + state: State::PR, + }, + Municipio { + ibge_code: 4108700, + name: "Grandes Rios", + state: State::PR, + }, + Municipio { + ibge_code: 4108908, + name: "Guairaçá", + state: State::PR, + }, + Municipio { + ibge_code: 4108957, + name: "Guamiranga", + state: State::PR, + }, + Municipio { + ibge_code: 4109005, + name: "Guapirama", + state: State::PR, + }, + Municipio { + ibge_code: 4109104, + name: "Guaporema", + state: State::PR, + }, + Municipio { + ibge_code: 4109203, + name: "Guaraci", + state: State::PR, + }, + Municipio { + ibge_code: 4109302, + name: "Guaraniaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4109401, + name: "Guarapuava", + state: State::PR, + }, + Municipio { + ibge_code: 4109500, + name: "Guaraqueçaba", + state: State::PR, + }, + Municipio { + ibge_code: 4109609, + name: "Guaratuba", + state: State::PR, + }, + Municipio { + ibge_code: 4108809, + name: "Guaíra", + state: State::PR, + }, + Municipio { + ibge_code: 4109658, + name: "Honório Serpa", + state: State::PR, + }, + Municipio { + ibge_code: 4109708, + name: "Ibaiti", + state: State::PR, + }, + Municipio { + ibge_code: 4109757, + name: "Ibema", + state: State::PR, + }, + Municipio { + ibge_code: 4109807, + name: "Ibiporã", + state: State::PR, + }, + Municipio { + ibge_code: 4109906, + name: "Icaraíma", + state: State::PR, + }, + Municipio { + ibge_code: 4110003, + name: "Iguaraçu", + state: State::PR, + }, + Municipio { + ibge_code: 4110052, + name: "Iguatu", + state: State::PR, + }, + Municipio { + ibge_code: 4110078, + name: "Imbaú", + state: State::PR, + }, + Municipio { + ibge_code: 4110102, + name: "Imbituva", + state: State::PR, + }, + Municipio { + ibge_code: 4110300, + name: "Inajá", + state: State::PR, + }, + Municipio { + ibge_code: 4110409, + name: "Indianópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4110201, + name: "Inácio Martins", + state: State::PR, + }, + Municipio { + ibge_code: 4110508, + name: "Ipiranga", + state: State::PR, + }, + Municipio { + ibge_code: 4110607, + name: "Iporã", + state: State::PR, + }, + Municipio { + ibge_code: 4110656, + name: "Iracema do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4110706, + name: "Irati", + state: State::PR, + }, + Municipio { + ibge_code: 4110805, + name: "Iretama", + state: State::PR, + }, + Municipio { + ibge_code: 4110904, + name: "Itaguajé", + state: State::PR, + }, + Municipio { + ibge_code: 4110953, + name: "Itaipulândia", + state: State::PR, + }, + Municipio { + ibge_code: 4111001, + name: "Itambaracá", + state: State::PR, + }, + Municipio { + ibge_code: 4111100, + name: "Itambé", + state: State::PR, + }, + Municipio { + ibge_code: 4111209, + name: "Itapejara d'Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4111258, + name: "Itaperuçu", + state: State::PR, + }, + Municipio { + ibge_code: 4111308, + name: "Itaúna do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4111506, + name: "Ivaiporã", + state: State::PR, + }, + Municipio { + ibge_code: 4111605, + name: "Ivatuba", + state: State::PR, + }, + Municipio { + ibge_code: 4111555, + name: "Ivaté", + state: State::PR, + }, + Municipio { + ibge_code: 4111407, + name: "Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4111704, + name: "Jaboti", + state: State::PR, + }, + Municipio { + ibge_code: 4111803, + name: "Jacarezinho", + state: State::PR, + }, + Municipio { + ibge_code: 4111902, + name: "Jaguapitã", + state: State::PR, + }, + Municipio { + ibge_code: 4112009, + name: "Jaguariaíva", + state: State::PR, + }, + Municipio { + ibge_code: 4112108, + name: "Jandaia do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4112207, + name: "Janiópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4112306, + name: "Japira", + state: State::PR, + }, + Municipio { + ibge_code: 4112405, + name: "Japurá", + state: State::PR, + }, + Municipio { + ibge_code: 4112504, + name: "Jardim Alegre", + state: State::PR, + }, + Municipio { + ibge_code: 4112603, + name: "Jardim Olinda", + state: State::PR, + }, + Municipio { + ibge_code: 4112702, + name: "Jataizinho", + state: State::PR, + }, + Municipio { + ibge_code: 4112751, + name: "Jesuítas", + state: State::PR, + }, + Municipio { + ibge_code: 4112801, + name: "Joaquim Távora", + state: State::PR, + }, + Municipio { + ibge_code: 4112900, + name: "Jundiaí do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4112959, + name: "Juranda", + state: State::PR, + }, + Municipio { + ibge_code: 4113007, + name: "Jussara", + state: State::PR, + }, + Municipio { + ibge_code: 4113106, + name: "Kaloré", + state: State::PR, + }, + Municipio { + ibge_code: 4113205, + name: "Lapa", + state: State::PR, + }, + Municipio { + ibge_code: 4113254, + name: "Laranjal", + state: State::PR, + }, + Municipio { + ibge_code: 4113304, + name: "Laranjeiras do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4113403, + name: "Leópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4113429, + name: "Lidianópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4113452, + name: "Lindoeste", + state: State::PR, + }, + Municipio { + ibge_code: 4113502, + name: "Loanda", + state: State::PR, + }, + Municipio { + ibge_code: 4113601, + name: "Lobato", + state: State::PR, + }, + Municipio { + ibge_code: 4113700, + name: "Londrina", + state: State::PR, + }, + Municipio { + ibge_code: 4113734, + name: "Luiziana", + state: State::PR, + }, + Municipio { + ibge_code: 4113759, + name: "Lunardelli", + state: State::PR, + }, + Municipio { + ibge_code: 4113809, + name: "Lupionópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4113908, + name: "Mallet", + state: State::PR, + }, + Municipio { + ibge_code: 4114005, + name: "Mamborê", + state: State::PR, + }, + Municipio { + ibge_code: 4114203, + name: "Mandaguari", + state: State::PR, + }, + Municipio { + ibge_code: 4114104, + name: "Mandaguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4114302, + name: "Mandirituba", + state: State::PR, + }, + Municipio { + ibge_code: 4114351, + name: "Manfrinópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4114401, + name: "Mangueirinha", + state: State::PR, + }, + Municipio { + ibge_code: 4114500, + name: "Manoel Ribas", + state: State::PR, + }, + Municipio { + ibge_code: 4114609, + name: "Marechal Cândido Rondon", + state: State::PR, + }, + Municipio { + ibge_code: 4114708, + name: "Maria Helena", + state: State::PR, + }, + Municipio { + ibge_code: 4114807, + name: "Marialva", + state: State::PR, + }, + Municipio { + ibge_code: 4115002, + name: "Marilena", + state: State::PR, + }, + Municipio { + ibge_code: 4115101, + name: "Mariluz", + state: State::PR, + }, + Municipio { + ibge_code: 4114906, + name: "Marilândia do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4115200, + name: "Maringá", + state: State::PR, + }, + Municipio { + ibge_code: 4115358, + name: "Maripá", + state: State::PR, + }, + Municipio { + ibge_code: 4115309, + name: "Mariópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4115408, + name: "Marmeleiro", + state: State::PR, + }, + Municipio { + ibge_code: 4115457, + name: "Marquinho", + state: State::PR, + }, + Municipio { + ibge_code: 4115507, + name: "Marumbi", + state: State::PR, + }, + Municipio { + ibge_code: 4115606, + name: "Matelândia", + state: State::PR, + }, + Municipio { + ibge_code: 4115705, + name: "Matinhos", + state: State::PR, + }, + Municipio { + ibge_code: 4115739, + name: "Mato Rico", + state: State::PR, + }, + Municipio { + ibge_code: 4115754, + name: "Mauá da Serra", + state: State::PR, + }, + Municipio { + ibge_code: 4115804, + name: "Medianeira", + state: State::PR, + }, + Municipio { + ibge_code: 4115853, + name: "Mercedes", + state: State::PR, + }, + Municipio { + ibge_code: 4115903, + name: "Mirador", + state: State::PR, + }, + Municipio { + ibge_code: 4116000, + name: "Miraselva", + state: State::PR, + }, + Municipio { + ibge_code: 4116059, + name: "Missal", + state: State::PR, + }, + Municipio { + ibge_code: 4116109, + name: "Moreira Sales", + state: State::PR, + }, + Municipio { + ibge_code: 4116208, + name: "Morretes", + state: State::PR, + }, + Municipio { + ibge_code: 4116307, + name: "Munhoz de Melo", + state: State::PR, + }, + Municipio { + ibge_code: 4116406, + name: "Nossa Senhora das Graças", + state: State::PR, + }, + Municipio { + ibge_code: 4116505, + name: "Nova Aliança do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4116604, + name: "Nova América da Colina", + state: State::PR, + }, + Municipio { + ibge_code: 4116703, + name: "Nova Aurora", + state: State::PR, + }, + Municipio { + ibge_code: 4116802, + name: "Nova Cantu", + state: State::PR, + }, + Municipio { + ibge_code: 4116901, + name: "Nova Esperança", + state: State::PR, + }, + Municipio { + ibge_code: 4116950, + name: "Nova Esperança do Sudoeste", + state: State::PR, + }, + Municipio { + ibge_code: 4117008, + name: "Nova Fátima", + state: State::PR, + }, + Municipio { + ibge_code: 4117057, + name: "Nova Laranjeiras", + state: State::PR, + }, + Municipio { + ibge_code: 4117107, + name: "Nova Londrina", + state: State::PR, + }, + Municipio { + ibge_code: 4117206, + name: "Nova Olímpia", + state: State::PR, + }, + Municipio { + ibge_code: 4117255, + name: "Nova Prata do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4117214, + name: "Nova Santa Bárbara", + state: State::PR, + }, + Municipio { + ibge_code: 4117222, + name: "Nova Santa Rosa", + state: State::PR, + }, + Municipio { + ibge_code: 4117271, + name: "Nova Tebas", + state: State::PR, + }, + Municipio { + ibge_code: 4117297, + name: "Novo Itacolomi", + state: State::PR, + }, + Municipio { + ibge_code: 4117305, + name: "Ortigueira", + state: State::PR, + }, + Municipio { + ibge_code: 4117404, + name: "Ourizona", + state: State::PR, + }, + Municipio { + ibge_code: 4117453, + name: "Ouro Verde do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4117503, + name: "Paiçandu", + state: State::PR, + }, + Municipio { + ibge_code: 4117602, + name: "Palmas", + state: State::PR, + }, + Municipio { + ibge_code: 4117701, + name: "Palmeira", + state: State::PR, + }, + Municipio { + ibge_code: 4117800, + name: "Palmital", + state: State::PR, + }, + Municipio { + ibge_code: 4117909, + name: "Palotina", + state: State::PR, + }, + Municipio { + ibge_code: 4118105, + name: "Paranacity", + state: State::PR, + }, + Municipio { + ibge_code: 4118204, + name: "Paranaguá", + state: State::PR, + }, + Municipio { + ibge_code: 4118303, + name: "Paranapoema", + state: State::PR, + }, + Municipio { + ibge_code: 4118402, + name: "Paranavaí", + state: State::PR, + }, + Municipio { + ibge_code: 4118006, + name: "Paraíso do Norte", + state: State::PR, + }, + Municipio { + ibge_code: 4118451, + name: "Pato Bragado", + state: State::PR, + }, + Municipio { + ibge_code: 4118501, + name: "Pato Branco", + state: State::PR, + }, + Municipio { + ibge_code: 4118600, + name: "Paula Freitas", + state: State::PR, + }, + Municipio { + ibge_code: 4118709, + name: "Paulo Frontin", + state: State::PR, + }, + Municipio { + ibge_code: 4118808, + name: "Peabiru", + state: State::PR, + }, + Municipio { + ibge_code: 4118857, + name: "Perobal", + state: State::PR, + }, + Municipio { + ibge_code: 4119152, + name: "Pinhais", + state: State::PR, + }, + Municipio { + ibge_code: 4119251, + name: "Pinhal de São Bento", + state: State::PR, + }, + Municipio { + ibge_code: 4119202, + name: "Pinhalão", + state: State::PR, + }, + Municipio { + ibge_code: 4119301, + name: "Pinhão", + state: State::PR, + }, + Municipio { + ibge_code: 4119509, + name: "Piraquara", + state: State::PR, + }, + Municipio { + ibge_code: 4119400, + name: "Piraí do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4119608, + name: "Pitanga", + state: State::PR, + }, + Municipio { + ibge_code: 4119657, + name: "Pitangueiras", + state: State::PR, + }, + Municipio { + ibge_code: 4119103, + name: "Piên", + state: State::PR, + }, + Municipio { + ibge_code: 4119707, + name: "Planaltina do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4119806, + name: "Planalto", + state: State::PR, + }, + Municipio { + ibge_code: 4119905, + name: "Ponta Grossa", + state: State::PR, + }, + Municipio { + ibge_code: 4119954, + name: "Pontal do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4120002, + name: "Porecatu", + state: State::PR, + }, + Municipio { + ibge_code: 4120101, + name: "Porto Amazonas", + state: State::PR, + }, + Municipio { + ibge_code: 4120150, + name: "Porto Barreiro", + state: State::PR, + }, + Municipio { + ibge_code: 4120200, + name: "Porto Rico", + state: State::PR, + }, + Municipio { + ibge_code: 4120309, + name: "Porto Vitória", + state: State::PR, + }, + Municipio { + ibge_code: 4120333, + name: "Prado Ferreira", + state: State::PR, + }, + Municipio { + ibge_code: 4120358, + name: "Pranchita", + state: State::PR, + }, + Municipio { + ibge_code: 4120408, + name: "Presidente Castelo Branco", + state: State::PR, + }, + Municipio { + ibge_code: 4120507, + name: "Primeiro de Maio", + state: State::PR, + }, + Municipio { + ibge_code: 4120606, + name: "Prudentópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4118907, + name: "Pérola", + state: State::PR, + }, + Municipio { + ibge_code: 4119004, + name: "Pérola d'Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4120655, + name: "Quarto Centenário", + state: State::PR, + }, + Municipio { + ibge_code: 4120705, + name: "Quatiguá", + state: State::PR, + }, + Municipio { + ibge_code: 4120804, + name: "Quatro Barras", + state: State::PR, + }, + Municipio { + ibge_code: 4120853, + name: "Quatro Pontes", + state: State::PR, + }, + Municipio { + ibge_code: 4120903, + name: "Quedas do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4121000, + name: "Querência do Norte", + state: State::PR, + }, + Municipio { + ibge_code: 4121109, + name: "Quinta do Sol", + state: State::PR, + }, + Municipio { + ibge_code: 4121208, + name: "Quitandinha", + state: State::PR, + }, + Municipio { + ibge_code: 4121257, + name: "Ramilândia", + state: State::PR, + }, + Municipio { + ibge_code: 4121307, + name: "Rancho Alegre", + state: State::PR, + }, + Municipio { + ibge_code: 4121356, + name: "Rancho Alegre D'Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4121406, + name: "Realeza", + state: State::PR, + }, + Municipio { + ibge_code: 4121505, + name: "Rebouças", + state: State::PR, + }, + Municipio { + ibge_code: 4121604, + name: "Renascença", + state: State::PR, + }, + Municipio { + ibge_code: 4121703, + name: "Reserva", + state: State::PR, + }, + Municipio { + ibge_code: 4121752, + name: "Reserva do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4121802, + name: "Ribeirão Claro", + state: State::PR, + }, + Municipio { + ibge_code: 4121901, + name: "Ribeirão do Pinhal", + state: State::PR, + }, + Municipio { + ibge_code: 4122008, + name: "Rio Azul", + state: State::PR, + }, + Municipio { + ibge_code: 4122107, + name: "Rio Bom", + state: State::PR, + }, + Municipio { + ibge_code: 4122156, + name: "Rio Bonito do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4122172, + name: "Rio Branco do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4122206, + name: "Rio Branco do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4122305, + name: "Rio Negro", + state: State::PR, + }, + Municipio { + ibge_code: 4122404, + name: "Rolândia", + state: State::PR, + }, + Municipio { + ibge_code: 4122503, + name: "Roncador", + state: State::PR, + }, + Municipio { + ibge_code: 4122602, + name: "Rondon", + state: State::PR, + }, + Municipio { + ibge_code: 4122651, + name: "Rosário do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4122701, + name: "Sabáudia", + state: State::PR, + }, + Municipio { + ibge_code: 4122800, + name: "Salgado Filho", + state: State::PR, + }, + Municipio { + ibge_code: 4122909, + name: "Salto do Itararé", + state: State::PR, + }, + Municipio { + ibge_code: 4123006, + name: "Salto do Lontra", + state: State::PR, + }, + Municipio { + ibge_code: 4123105, + name: "Santa Amélia", + state: State::PR, + }, + Municipio { + ibge_code: 4123204, + name: "Santa Cecília do Pavão", + state: State::PR, + }, + Municipio { + ibge_code: 4123303, + name: "Santa Cruz de Monte Castelo", + state: State::PR, + }, + Municipio { + ibge_code: 4123402, + name: "Santa Fé", + state: State::PR, + }, + Municipio { + ibge_code: 4123501, + name: "Santa Helena", + state: State::PR, + }, + Municipio { + ibge_code: 4123600, + name: "Santa Inês", + state: State::PR, + }, + Municipio { + ibge_code: 4123709, + name: "Santa Isabel do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4123808, + name: "Santa Izabel do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4123824, + name: "Santa Lúcia", + state: State::PR, + }, + Municipio { + ibge_code: 4123857, + name: "Santa Maria do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4123907, + name: "Santa Mariana", + state: State::PR, + }, + Municipio { + ibge_code: 4123956, + name: "Santa Mônica", + state: State::PR, + }, + Municipio { + ibge_code: 4124020, + name: "Santa Tereza do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4124053, + name: "Santa Terezinha de Itaipu", + state: State::PR, + }, + Municipio { + ibge_code: 4124004, + name: "Santana do Itararé", + state: State::PR, + }, + Municipio { + ibge_code: 4124103, + name: "Santo Antônio da Platina", + state: State::PR, + }, + Municipio { + ibge_code: 4124202, + name: "Santo Antônio do Caiuá", + state: State::PR, + }, + Municipio { + ibge_code: 4124301, + name: "Santo Antônio do Paraíso", + state: State::PR, + }, + Municipio { + ibge_code: 4124400, + name: "Santo Antônio do Sudoeste", + state: State::PR, + }, + Municipio { + ibge_code: 4124509, + name: "Santo Inácio", + state: State::PR, + }, + Municipio { + ibge_code: 4126207, + name: "Sapopema", + state: State::PR, + }, + Municipio { + ibge_code: 4126256, + name: "Sarandi", + state: State::PR, + }, + Municipio { + ibge_code: 4126272, + name: "Saudade do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4126306, + name: "Sengés", + state: State::PR, + }, + Municipio { + ibge_code: 4126355, + name: "Serranópolis do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4126405, + name: "Sertaneja", + state: State::PR, + }, + Municipio { + ibge_code: 4126504, + name: "Sertanópolis", + state: State::PR, + }, + Municipio { + ibge_code: 4126603, + name: "Siqueira Campos", + state: State::PR, + }, + Municipio { + ibge_code: 4126652, + name: "Sulina", + state: State::PR, + }, + Municipio { + ibge_code: 4124608, + name: "São Carlos do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4124707, + name: "São Jerônimo da Serra", + state: State::PR, + }, + Municipio { + ibge_code: 4125209, + name: "São Jorge d'Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4125308, + name: "São Jorge do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4125357, + name: "São Jorge do Patrocínio", + state: State::PR, + }, + Municipio { + ibge_code: 4125407, + name: "São José da Boa Vista", + state: State::PR, + }, + Municipio { + ibge_code: 4125456, + name: "São José das Palmeiras", + state: State::PR, + }, + Municipio { + ibge_code: 4125506, + name: "São José dos Pinhais", + state: State::PR, + }, + Municipio { + ibge_code: 4124806, + name: "São João", + state: State::PR, + }, + Municipio { + ibge_code: 4124905, + name: "São João do Caiuá", + state: State::PR, + }, + Municipio { + ibge_code: 4125001, + name: "São João do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4125100, + name: "São João do Triunfo", + state: State::PR, + }, + Municipio { + ibge_code: 4125555, + name: "São Manoel do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4125605, + name: "São Mateus do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4125704, + name: "São Miguel do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4125753, + name: "São Pedro do Iguaçu", + state: State::PR, + }, + Municipio { + ibge_code: 4125803, + name: "São Pedro do Ivaí", + state: State::PR, + }, + Municipio { + ibge_code: 4125902, + name: "São Pedro do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4126009, + name: "São Sebastião da Amoreira", + state: State::PR, + }, + Municipio { + ibge_code: 4126108, + name: "São Tomé", + state: State::PR, + }, + Municipio { + ibge_code: 4126678, + name: "Tamarana", + state: State::PR, + }, + Municipio { + ibge_code: 4126702, + name: "Tamboara", + state: State::PR, + }, + Municipio { + ibge_code: 4126801, + name: "Tapejara", + state: State::PR, + }, + Municipio { + ibge_code: 4126900, + name: "Tapira", + state: State::PR, + }, + Municipio { + ibge_code: 4127007, + name: "Teixeira Soares", + state: State::PR, + }, + Municipio { + ibge_code: 4127106, + name: "Telêmaco Borba", + state: State::PR, + }, + Municipio { + ibge_code: 4127205, + name: "Terra Boa", + state: State::PR, + }, + Municipio { + ibge_code: 4127304, + name: "Terra Rica", + state: State::PR, + }, + Municipio { + ibge_code: 4127403, + name: "Terra Roxa", + state: State::PR, + }, + Municipio { + ibge_code: 4127502, + name: "Tibagi", + state: State::PR, + }, + Municipio { + ibge_code: 4127601, + name: "Tijucas do Sul", + state: State::PR, + }, + Municipio { + ibge_code: 4127700, + name: "Toledo", + state: State::PR, + }, + Municipio { + ibge_code: 4127809, + name: "Tomazina", + state: State::PR, + }, + Municipio { + ibge_code: 4127858, + name: "Três Barras do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4127882, + name: "Tunas do Paraná", + state: State::PR, + }, + Municipio { + ibge_code: 4127908, + name: "Tuneiras do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4127957, + name: "Tupãssi", + state: State::PR, + }, + Municipio { + ibge_code: 4127965, + name: "Turvo", + state: State::PR, + }, + Municipio { + ibge_code: 4128005, + name: "Ubiratã", + state: State::PR, + }, + Municipio { + ibge_code: 4128104, + name: "Umuarama", + state: State::PR, + }, + Municipio { + ibge_code: 4128302, + name: "Uniflor", + state: State::PR, + }, + Municipio { + ibge_code: 4128203, + name: "União da Vitória", + state: State::PR, + }, + Municipio { + ibge_code: 4128401, + name: "Uraí", + state: State::PR, + }, + Municipio { + ibge_code: 4128534, + name: "Ventania", + state: State::PR, + }, + Municipio { + ibge_code: 4128559, + name: "Vera Cruz do Oeste", + state: State::PR, + }, + Municipio { + ibge_code: 4128609, + name: "Verê", + state: State::PR, + }, + Municipio { + ibge_code: 4128658, + name: "Virmond", + state: State::PR, + }, + Municipio { + ibge_code: 4128708, + name: "Vitorino", + state: State::PR, + }, + Municipio { + ibge_code: 4128500, + name: "Wenceslau Braz", + state: State::PR, + }, + Municipio { + ibge_code: 4128807, + name: "Xambrê", + state: State::PR, + }, + Municipio { + ibge_code: 4101150, + name: "Ângulo", + state: State::PR, + }, + Municipio { + ibge_code: 3300100, + name: "Angra dos Reis", + state: State::RJ, + }, + Municipio { + ibge_code: 3300159, + name: "Aperibé", + state: State::RJ, + }, + Municipio { + ibge_code: 3300209, + name: "Araruama", + state: State::RJ, + }, + Municipio { + ibge_code: 3300225, + name: "Areal", + state: State::RJ, + }, + Municipio { + ibge_code: 3300233, + name: "Armação dos Búzios", + state: State::RJ, + }, + Municipio { + ibge_code: 3300258, + name: "Arraial do Cabo", + state: State::RJ, + }, + Municipio { + ibge_code: 3300407, + name: "Barra Mansa", + state: State::RJ, + }, + Municipio { + ibge_code: 3300308, + name: "Barra do Piraí", + state: State::RJ, + }, + Municipio { + ibge_code: 3300456, + name: "Belford Roxo", + state: State::RJ, + }, + Municipio { + ibge_code: 3300506, + name: "Bom Jardim", + state: State::RJ, + }, + Municipio { + ibge_code: 3300605, + name: "Bom Jesus do Itabapoana", + state: State::RJ, + }, + Municipio { + ibge_code: 3300704, + name: "Cabo Frio", + state: State::RJ, + }, + Municipio { + ibge_code: 3300803, + name: "Cachoeiras de Macacu", + state: State::RJ, + }, + Municipio { + ibge_code: 3300902, + name: "Cambuci", + state: State::RJ, + }, + Municipio { + ibge_code: 3301009, + name: "Campos dos Goytacazes", + state: State::RJ, + }, + Municipio { + ibge_code: 3301108, + name: "Cantagalo", + state: State::RJ, + }, + Municipio { + ibge_code: 3300936, + name: "Carapebus", + state: State::RJ, + }, + Municipio { + ibge_code: 3301157, + name: "Cardoso Moreira", + state: State::RJ, + }, + Municipio { + ibge_code: 3301207, + name: "Carmo", + state: State::RJ, + }, + Municipio { + ibge_code: 3301306, + name: "Casimiro de Abreu", + state: State::RJ, + }, + Municipio { + ibge_code: 3300951, + name: "Comendador Levy Gasparian", + state: State::RJ, + }, + Municipio { + ibge_code: 3301405, + name: "Conceição de Macabu", + state: State::RJ, + }, + Municipio { + ibge_code: 3301504, + name: "Cordeiro", + state: State::RJ, + }, + Municipio { + ibge_code: 3301603, + name: "Duas Barras", + state: State::RJ, + }, + Municipio { + ibge_code: 3301702, + name: "Duque de Caxias", + state: State::RJ, + }, + Municipio { + ibge_code: 3301801, + name: "Engenheiro Paulo de Frontin", + state: State::RJ, + }, + Municipio { + ibge_code: 3301850, + name: "Guapimirim", + state: State::RJ, + }, + Municipio { + ibge_code: 3301876, + name: "Iguaba Grande", + state: State::RJ, + }, + Municipio { + ibge_code: 3301900, + name: "Itaboraí", + state: State::RJ, + }, + Municipio { + ibge_code: 3302007, + name: "Itaguaí", + state: State::RJ, + }, + Municipio { + ibge_code: 3302056, + name: "Italva", + state: State::RJ, + }, + Municipio { + ibge_code: 3302106, + name: "Itaocara", + state: State::RJ, + }, + Municipio { + ibge_code: 3302205, + name: "Itaperuna", + state: State::RJ, + }, + Municipio { + ibge_code: 3302254, + name: "Itatiaia", + state: State::RJ, + }, + Municipio { + ibge_code: 3302270, + name: "Japeri", + state: State::RJ, + }, + Municipio { + ibge_code: 3302304, + name: "Laje do Muriaé", + state: State::RJ, + }, + Municipio { + ibge_code: 3302403, + name: "Macaé", + state: State::RJ, + }, + Municipio { + ibge_code: 3302452, + name: "Macuco", + state: State::RJ, + }, + Municipio { + ibge_code: 3302502, + name: "Magé", + state: State::RJ, + }, + Municipio { + ibge_code: 3302601, + name: "Mangaratiba", + state: State::RJ, + }, + Municipio { + ibge_code: 3302700, + name: "Maricá", + state: State::RJ, + }, + Municipio { + ibge_code: 3302809, + name: "Mendes", + state: State::RJ, + }, + Municipio { + ibge_code: 3302858, + name: "Mesquita", + state: State::RJ, + }, + Municipio { + ibge_code: 3302908, + name: "Miguel Pereira", + state: State::RJ, + }, + Municipio { + ibge_code: 3303005, + name: "Miracema", + state: State::RJ, + }, + Municipio { + ibge_code: 3303104, + name: "Natividade", + state: State::RJ, + }, + Municipio { + ibge_code: 3303203, + name: "Nilópolis", + state: State::RJ, + }, + Municipio { + ibge_code: 3303302, + name: "Niterói", + state: State::RJ, + }, + Municipio { + ibge_code: 3303401, + name: "Nova Friburgo", + state: State::RJ, + }, + Municipio { + ibge_code: 3303500, + name: "Nova Iguaçu", + state: State::RJ, + }, + Municipio { + ibge_code: 3303609, + name: "Paracambi", + state: State::RJ, + }, + Municipio { + ibge_code: 3303807, + name: "Paraty", + state: State::RJ, + }, + Municipio { + ibge_code: 3303708, + name: "Paraíba do Sul", + state: State::RJ, + }, + Municipio { + ibge_code: 3303856, + name: "Paty do Alferes", + state: State::RJ, + }, + Municipio { + ibge_code: 3303906, + name: "Petrópolis", + state: State::RJ, + }, + Municipio { + ibge_code: 3303955, + name: "Pinheiral", + state: State::RJ, + }, + Municipio { + ibge_code: 3304003, + name: "Piraí", + state: State::RJ, + }, + Municipio { + ibge_code: 3304102, + name: "Porciúncula", + state: State::RJ, + }, + Municipio { + ibge_code: 3304110, + name: "Porto Real", + state: State::RJ, + }, + Municipio { + ibge_code: 3304128, + name: "Quatis", + state: State::RJ, + }, + Municipio { + ibge_code: 3304144, + name: "Queimados", + state: State::RJ, + }, + Municipio { + ibge_code: 3304151, + name: "Quissamã", + state: State::RJ, + }, + Municipio { + ibge_code: 3304201, + name: "Resende", + state: State::RJ, + }, + Municipio { + ibge_code: 3304300, + name: "Rio Bonito", + state: State::RJ, + }, + Municipio { + ibge_code: 3304409, + name: "Rio Claro", + state: State::RJ, + }, + Municipio { + ibge_code: 3304508, + name: "Rio das Flores", + state: State::RJ, + }, + Municipio { + ibge_code: 3304524, + name: "Rio das Ostras", + state: State::RJ, + }, + Municipio { + ibge_code: 3304557, + name: "Rio de Janeiro", + state: State::RJ, + }, + Municipio { + ibge_code: 3304607, + name: "Santa Maria Madalena", + state: State::RJ, + }, + Municipio { + ibge_code: 3304706, + name: "Santo Antônio de Pádua", + state: State::RJ, + }, + Municipio { + ibge_code: 3305406, + name: "Sapucaia", + state: State::RJ, + }, + Municipio { + ibge_code: 3305505, + name: "Saquarema", + state: State::RJ, + }, + Municipio { + ibge_code: 3305554, + name: "Seropédica", + state: State::RJ, + }, + Municipio { + ibge_code: 3305604, + name: "Silva Jardim", + state: State::RJ, + }, + Municipio { + ibge_code: 3305703, + name: "Sumidouro", + state: State::RJ, + }, + Municipio { + ibge_code: 3304805, + name: "São Fidélis", + state: State::RJ, + }, + Municipio { + ibge_code: 3304755, + name: "São Francisco de Itabapoana", + state: State::RJ, + }, + Municipio { + ibge_code: 3304904, + name: "São Gonçalo", + state: State::RJ, + }, + Municipio { + ibge_code: 3305133, + name: "São José de Ubá", + state: State::RJ, + }, + Municipio { + ibge_code: 3305158, + name: "São José do Vale do Rio Preto", + state: State::RJ, + }, + Municipio { + ibge_code: 3305000, + name: "São João da Barra", + state: State::RJ, + }, + Municipio { + ibge_code: 3305109, + name: "São João de Meriti", + state: State::RJ, + }, + Municipio { + ibge_code: 3305208, + name: "São Pedro da Aldeia", + state: State::RJ, + }, + Municipio { + ibge_code: 3305307, + name: "São Sebastião do Alto", + state: State::RJ, + }, + Municipio { + ibge_code: 3305752, + name: "Tanguá", + state: State::RJ, + }, + Municipio { + ibge_code: 3305802, + name: "Teresópolis", + state: State::RJ, + }, + Municipio { + ibge_code: 3305901, + name: "Trajano de Moraes", + state: State::RJ, + }, + Municipio { + ibge_code: 3306008, + name: "Três Rios", + state: State::RJ, + }, + Municipio { + ibge_code: 3306107, + name: "Valença", + state: State::RJ, + }, + Municipio { + ibge_code: 3306156, + name: "Varre-Sai", + state: State::RJ, + }, + Municipio { + ibge_code: 3306206, + name: "Vassouras", + state: State::RJ, + }, + Municipio { + ibge_code: 3306305, + name: "Volta Redonda", + state: State::RJ, + }, + Municipio { + ibge_code: 2400109, + name: "Acari", + state: State::RN, + }, + Municipio { + ibge_code: 2400307, + name: "Afonso Bezerra", + state: State::RN, + }, + Municipio { + ibge_code: 2400505, + name: "Alexandria", + state: State::RN, + }, + Municipio { + ibge_code: 2400604, + name: "Almino Afonso", + state: State::RN, + }, + Municipio { + ibge_code: 2400703, + name: "Alto do Rodrigues", + state: State::RN, + }, + Municipio { + ibge_code: 2400802, + name: "Angicos", + state: State::RN, + }, + Municipio { + ibge_code: 2400901, + name: "Antônio Martins", + state: State::RN, + }, + Municipio { + ibge_code: 2401008, + name: "Apodi", + state: State::RN, + }, + Municipio { + ibge_code: 2401107, + name: "Areia Branca", + state: State::RN, + }, + Municipio { + ibge_code: 2401206, + name: "Arez", + state: State::RN, + }, + Municipio { + ibge_code: 2400208, + name: "Assú", + state: State::RN, + }, + Municipio { + ibge_code: 2401453, + name: "Baraúna", + state: State::RN, + }, + Municipio { + ibge_code: 2401503, + name: "Barcelona", + state: State::RN, + }, + Municipio { + ibge_code: 2401404, + name: "Baía Formosa", + state: State::RN, + }, + Municipio { + ibge_code: 2401602, + name: "Bento Fernandes", + state: State::RN, + }, + Municipio { + ibge_code: 2401651, + name: "Bodó", + state: State::RN, + }, + Municipio { + ibge_code: 2401701, + name: "Bom Jesus", + state: State::RN, + }, + Municipio { + ibge_code: 2401800, + name: "Brejinho", + state: State::RN, + }, + Municipio { + ibge_code: 2402006, + name: "Caicó", + state: State::RN, + }, + Municipio { + ibge_code: 2401859, + name: "Caiçara do Norte", + state: State::RN, + }, + Municipio { + ibge_code: 2401909, + name: "Caiçara do Rio do Vento", + state: State::RN, + }, + Municipio { + ibge_code: 2401305, + name: "Campo Grande", + state: State::RN, + }, + Municipio { + ibge_code: 2402105, + name: "Campo Redondo", + state: State::RN, + }, + Municipio { + ibge_code: 2402204, + name: "Canguaretama", + state: State::RN, + }, + Municipio { + ibge_code: 2402303, + name: "Caraúbas", + state: State::RN, + }, + Municipio { + ibge_code: 2402501, + name: "Carnaubais", + state: State::RN, + }, + Municipio { + ibge_code: 2402402, + name: "Carnaúba dos Dantas", + state: State::RN, + }, + Municipio { + ibge_code: 2402600, + name: "Ceará-Mirim", + state: State::RN, + }, + Municipio { + ibge_code: 2402709, + name: "Cerro Corá", + state: State::RN, + }, + Municipio { + ibge_code: 2402808, + name: "Coronel Ezequiel", + state: State::RN, + }, + Municipio { + ibge_code: 2402907, + name: "Coronel João Pessoa", + state: State::RN, + }, + Municipio { + ibge_code: 2403004, + name: "Cruzeta", + state: State::RN, + }, + Municipio { + ibge_code: 2403103, + name: "Currais Novos", + state: State::RN, + }, + Municipio { + ibge_code: 2403202, + name: "Doutor Severiano", + state: State::RN, + }, + Municipio { + ibge_code: 2403301, + name: "Encanto", + state: State::RN, + }, + Municipio { + ibge_code: 2403400, + name: "Equador", + state: State::RN, + }, + Municipio { + ibge_code: 2403509, + name: "Espírito Santo", + state: State::RN, + }, + Municipio { + ibge_code: 2403608, + name: "Extremoz", + state: State::RN, + }, + Municipio { + ibge_code: 2403707, + name: "Felipe Guerra", + state: State::RN, + }, + Municipio { + ibge_code: 2403756, + name: "Fernando Pedroza", + state: State::RN, + }, + Municipio { + ibge_code: 2403806, + name: "Florânia", + state: State::RN, + }, + Municipio { + ibge_code: 2403905, + name: "Francisco Dantas", + state: State::RN, + }, + Municipio { + ibge_code: 2404002, + name: "Frutuoso Gomes", + state: State::RN, + }, + Municipio { + ibge_code: 2404101, + name: "Galinhos", + state: State::RN, + }, + Municipio { + ibge_code: 2404200, + name: "Goianinha", + state: State::RN, + }, + Municipio { + ibge_code: 2404309, + name: "Governador Dix-Sept Rosado", + state: State::RN, + }, + Municipio { + ibge_code: 2404408, + name: "Grossos", + state: State::RN, + }, + Municipio { + ibge_code: 2404507, + name: "Guamaré", + state: State::RN, + }, + Municipio { + ibge_code: 2404606, + name: "Ielmo Marinho", + state: State::RN, + }, + Municipio { + ibge_code: 2404705, + name: "Ipanguaçu", + state: State::RN, + }, + Municipio { + ibge_code: 2404804, + name: "Ipueira", + state: State::RN, + }, + Municipio { + ibge_code: 2404853, + name: "Itajá", + state: State::RN, + }, + Municipio { + ibge_code: 2404903, + name: "Itaú", + state: State::RN, + }, + Municipio { + ibge_code: 2405108, + name: "Jandaíra", + state: State::RN, + }, + Municipio { + ibge_code: 2405207, + name: "Janduís", + state: State::RN, + }, + Municipio { + ibge_code: 2405306, + name: "Januário Cicco", + state: State::RN, + }, + Municipio { + ibge_code: 2405405, + name: "Japi", + state: State::RN, + }, + Municipio { + ibge_code: 2405504, + name: "Jardim de Angicos", + state: State::RN, + }, + Municipio { + ibge_code: 2405603, + name: "Jardim de Piranhas", + state: State::RN, + }, + Municipio { + ibge_code: 2405702, + name: "Jardim do Seridó", + state: State::RN, + }, + Municipio { + ibge_code: 2405009, + name: "Jaçanã", + state: State::RN, + }, + Municipio { + ibge_code: 2406007, + name: "José da Penha", + state: State::RN, + }, + Municipio { + ibge_code: 2405801, + name: "João Câmara", + state: State::RN, + }, + Municipio { + ibge_code: 2405900, + name: "João Dias", + state: State::RN, + }, + Municipio { + ibge_code: 2406106, + name: "Jucurutu", + state: State::RN, + }, + Municipio { + ibge_code: 2406155, + name: "Jundiá", + state: State::RN, + }, + Municipio { + ibge_code: 2406502, + name: "Lagoa Nova", + state: State::RN, + }, + Municipio { + ibge_code: 2406601, + name: "Lagoa Salgada", + state: State::RN, + }, + Municipio { + ibge_code: 2406205, + name: "Lagoa d'Anta", + state: State::RN, + }, + Municipio { + ibge_code: 2406304, + name: "Lagoa de Pedras", + state: State::RN, + }, + Municipio { + ibge_code: 2406403, + name: "Lagoa de Velhos", + state: State::RN, + }, + Municipio { + ibge_code: 2406700, + name: "Lajes", + state: State::RN, + }, + Municipio { + ibge_code: 2406809, + name: "Lajes Pintadas", + state: State::RN, + }, + Municipio { + ibge_code: 2406908, + name: "Lucrécia", + state: State::RN, + }, + Municipio { + ibge_code: 2407005, + name: "Luís Gomes", + state: State::RN, + }, + Municipio { + ibge_code: 2407203, + name: "Macau", + state: State::RN, + }, + Municipio { + ibge_code: 2407104, + name: "Macaíba", + state: State::RN, + }, + Municipio { + ibge_code: 2407252, + name: "Major Sales", + state: State::RN, + }, + Municipio { + ibge_code: 2407302, + name: "Marcelino Vieira", + state: State::RN, + }, + Municipio { + ibge_code: 2407401, + name: "Martins", + state: State::RN, + }, + Municipio { + ibge_code: 2407500, + name: "Maxaranguape", + state: State::RN, + }, + Municipio { + ibge_code: 2407609, + name: "Messias Targino", + state: State::RN, + }, + Municipio { + ibge_code: 2407708, + name: "Montanhas", + state: State::RN, + }, + Municipio { + ibge_code: 2407807, + name: "Monte Alegre", + state: State::RN, + }, + Municipio { + ibge_code: 2407906, + name: "Monte das Gameleiras", + state: State::RN, + }, + Municipio { + ibge_code: 2408003, + name: "Mossoró", + state: State::RN, + }, + Municipio { + ibge_code: 2408102, + name: "Natal", + state: State::RN, + }, + Municipio { + ibge_code: 2408300, + name: "Nova Cruz", + state: State::RN, + }, + Municipio { + ibge_code: 2408201, + name: "Nísia Floresta", + state: State::RN, + }, + Municipio { + ibge_code: 2408409, + name: "Olho d'Água do Borges", + state: State::RN, + }, + Municipio { + ibge_code: 2408508, + name: "Ouro Branco", + state: State::RN, + }, + Municipio { + ibge_code: 2408607, + name: "Paraná", + state: State::RN, + }, + Municipio { + ibge_code: 2408805, + name: "Parazinho", + state: State::RN, + }, + Municipio { + ibge_code: 2408706, + name: "Paraú", + state: State::RN, + }, + Municipio { + ibge_code: 2408904, + name: "Parelhas", + state: State::RN, + }, + Municipio { + ibge_code: 2403251, + name: "Parnamirim", + state: State::RN, + }, + Municipio { + ibge_code: 2409100, + name: "Passa e Fica", + state: State::RN, + }, + Municipio { + ibge_code: 2409209, + name: "Passagem", + state: State::RN, + }, + Municipio { + ibge_code: 2409308, + name: "Patu", + state: State::RN, + }, + Municipio { + ibge_code: 2409407, + name: "Pau dos Ferros", + state: State::RN, + }, + Municipio { + ibge_code: 2409506, + name: "Pedra Grande", + state: State::RN, + }, + Municipio { + ibge_code: 2409605, + name: "Pedra Preta", + state: State::RN, + }, + Municipio { + ibge_code: 2409704, + name: "Pedro Avelino", + state: State::RN, + }, + Municipio { + ibge_code: 2409803, + name: "Pedro Velho", + state: State::RN, + }, + Municipio { + ibge_code: 2409902, + name: "Pendências", + state: State::RN, + }, + Municipio { + ibge_code: 2410009, + name: "Pilões", + state: State::RN, + }, + Municipio { + ibge_code: 2410207, + name: "Portalegre", + state: State::RN, + }, + Municipio { + ibge_code: 2410256, + name: "Porto do Mangue", + state: State::RN, + }, + Municipio { + ibge_code: 2410108, + name: "Poço Branco", + state: State::RN, + }, + Municipio { + ibge_code: 2410405, + name: "Pureza", + state: State::RN, + }, + Municipio { + ibge_code: 2410504, + name: "Rafael Fernandes", + state: State::RN, + }, + Municipio { + ibge_code: 2410603, + name: "Rafael Godeiro", + state: State::RN, + }, + Municipio { + ibge_code: 2410702, + name: "Riacho da Cruz", + state: State::RN, + }, + Municipio { + ibge_code: 2410801, + name: "Riacho de Santana", + state: State::RN, + }, + Municipio { + ibge_code: 2410900, + name: "Riachuelo", + state: State::RN, + }, + Municipio { + ibge_code: 2408953, + name: "Rio do Fogo", + state: State::RN, + }, + Municipio { + ibge_code: 2411007, + name: "Rodolfo Fernandes", + state: State::RN, + }, + Municipio { + ibge_code: 2411106, + name: "Ruy Barbosa", + state: State::RN, + }, + Municipio { + ibge_code: 2411205, + name: "Santa Cruz", + state: State::RN, + }, + Municipio { + ibge_code: 2409332, + name: "Santa Maria", + state: State::RN, + }, + Municipio { + ibge_code: 2411403, + name: "Santana do Matos", + state: State::RN, + }, + Municipio { + ibge_code: 2411429, + name: "Santana do Seridó", + state: State::RN, + }, + Municipio { + ibge_code: 2411502, + name: "Santo Antônio", + state: State::RN, + }, + Municipio { + ibge_code: 2413102, + name: "Senador Elói de Souza", + state: State::RN, + }, + Municipio { + ibge_code: 2413201, + name: "Senador Georgino Avelino", + state: State::RN, + }, + Municipio { + ibge_code: 2410306, + name: "Serra Caiada", + state: State::RN, + }, + Municipio { + ibge_code: 2413409, + name: "Serra Negra do Norte", + state: State::RN, + }, + Municipio { + ibge_code: 2413300, + name: "Serra de São Bento", + state: State::RN, + }, + Municipio { + ibge_code: 2413359, + name: "Serra do Mel", + state: State::RN, + }, + Municipio { + ibge_code: 2413508, + name: "Serrinha", + state: State::RN, + }, + Municipio { + ibge_code: 2413557, + name: "Serrinha dos Pintos", + state: State::RN, + }, + Municipio { + ibge_code: 2413607, + name: "Severiano Melo", + state: State::RN, + }, + Municipio { + ibge_code: 2411601, + name: "São Bento do Norte", + state: State::RN, + }, + Municipio { + ibge_code: 2411700, + name: "São Bento do Trairí", + state: State::RN, + }, + Municipio { + ibge_code: 2411809, + name: "São Fernando", + state: State::RN, + }, + Municipio { + ibge_code: 2411908, + name: "São Francisco do Oeste", + state: State::RN, + }, + Municipio { + ibge_code: 2412005, + name: "São Gonçalo do Amarante", + state: State::RN, + }, + Municipio { + ibge_code: 2412203, + name: "São José de Mipibu", + state: State::RN, + }, + Municipio { + ibge_code: 2412302, + name: "São José do Campestre", + state: State::RN, + }, + Municipio { + ibge_code: 2412401, + name: "São José do Seridó", + state: State::RN, + }, + Municipio { + ibge_code: 2412104, + name: "São João do Sabugi", + state: State::RN, + }, + Municipio { + ibge_code: 2412500, + name: "São Miguel", + state: State::RN, + }, + Municipio { + ibge_code: 2412559, + name: "São Miguel do Gostoso", + state: State::RN, + }, + Municipio { + ibge_code: 2412609, + name: "São Paulo do Potengi", + state: State::RN, + }, + Municipio { + ibge_code: 2412708, + name: "São Pedro", + state: State::RN, + }, + Municipio { + ibge_code: 2412807, + name: "São Rafael", + state: State::RN, + }, + Municipio { + ibge_code: 2412906, + name: "São Tomé", + state: State::RN, + }, + Municipio { + ibge_code: 2413003, + name: "São Vicente", + state: State::RN, + }, + Municipio { + ibge_code: 2413706, + name: "Sítio Novo", + state: State::RN, + }, + Municipio { + ibge_code: 2413805, + name: "Taboleiro Grande", + state: State::RN, + }, + Municipio { + ibge_code: 2413904, + name: "Taipu", + state: State::RN, + }, + Municipio { + ibge_code: 2414001, + name: "Tangará", + state: State::RN, + }, + Municipio { + ibge_code: 2414100, + name: "Tenente Ananias", + state: State::RN, + }, + Municipio { + ibge_code: 2414159, + name: "Tenente Laurentino Cruz", + state: State::RN, + }, + Municipio { + ibge_code: 2411056, + name: "Tibau", + state: State::RN, + }, + Municipio { + ibge_code: 2414209, + name: "Tibau do Sul", + state: State::RN, + }, + Municipio { + ibge_code: 2414308, + name: "Timbaúba dos Batistas", + state: State::RN, + }, + Municipio { + ibge_code: 2414407, + name: "Touros", + state: State::RN, + }, + Municipio { + ibge_code: 2414456, + name: "Triunfo Potiguar", + state: State::RN, + }, + Municipio { + ibge_code: 2414506, + name: "Umarizal", + state: State::RN, + }, + Municipio { + ibge_code: 2414605, + name: "Upanema", + state: State::RN, + }, + Municipio { + ibge_code: 2414753, + name: "Venha-Ver", + state: State::RN, + }, + Municipio { + ibge_code: 2414803, + name: "Vera Cruz", + state: State::RN, + }, + Municipio { + ibge_code: 2415008, + name: "Vila Flor", + state: State::RN, + }, + Municipio { + ibge_code: 2414902, + name: "Viçosa", + state: State::RN, + }, + Municipio { + ibge_code: 2414704, + name: "Várzea", + state: State::RN, + }, + Municipio { + ibge_code: 2400406, + name: "Água Nova", + state: State::RN, + }, + Municipio { + ibge_code: 1100015, + name: "Alta Floresta D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100379, + name: "Alto Alegre dos Parecis", + state: State::RO, + }, + Municipio { + ibge_code: 1100403, + name: "Alto Paraíso", + state: State::RO, + }, + Municipio { + ibge_code: 1100346, + name: "Alvorada D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100023, + name: "Ariquemes", + state: State::RO, + }, + Municipio { + ibge_code: 1100452, + name: "Buritis", + state: State::RO, + }, + Municipio { + ibge_code: 1100031, + name: "Cabixi", + state: State::RO, + }, + Municipio { + ibge_code: 1100601, + name: "Cacaulândia", + state: State::RO, + }, + Municipio { + ibge_code: 1100049, + name: "Cacoal", + state: State::RO, + }, + Municipio { + ibge_code: 1100700, + name: "Campo Novo de Rondônia", + state: State::RO, + }, + Municipio { + ibge_code: 1100809, + name: "Candeias do Jamari", + state: State::RO, + }, + Municipio { + ibge_code: 1100908, + name: "Castanheiras", + state: State::RO, + }, + Municipio { + ibge_code: 1100056, + name: "Cerejeiras", + state: State::RO, + }, + Municipio { + ibge_code: 1100924, + name: "Chupinguaia", + state: State::RO, + }, + Municipio { + ibge_code: 1100064, + name: "Colorado do Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100072, + name: "Corumbiara", + state: State::RO, + }, + Municipio { + ibge_code: 1100080, + name: "Costa Marques", + state: State::RO, + }, + Municipio { + ibge_code: 1100940, + name: "Cujubim", + state: State::RO, + }, + Municipio { + ibge_code: 1100098, + name: "Espigão D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1101005, + name: "Governador Jorge Teixeira", + state: State::RO, + }, + Municipio { + ibge_code: 1100106, + name: "Guajará-Mirim", + state: State::RO, + }, + Municipio { + ibge_code: 1101104, + name: "Itapuã do Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100114, + name: "Jaru", + state: State::RO, + }, + Municipio { + ibge_code: 1100122, + name: "Ji-Paraná", + state: State::RO, + }, + Municipio { + ibge_code: 1100130, + name: "Machadinho D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1101203, + name: "Ministro Andreazza", + state: State::RO, + }, + Municipio { + ibge_code: 1101302, + name: "Mirante da Serra", + state: State::RO, + }, + Municipio { + ibge_code: 1101401, + name: "Monte Negro", + state: State::RO, + }, + Municipio { + ibge_code: 1100148, + name: "Nova Brasilândia D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100338, + name: "Nova Mamoré", + state: State::RO, + }, + Municipio { + ibge_code: 1101435, + name: "Nova União", + state: State::RO, + }, + Municipio { + ibge_code: 1100502, + name: "Novo Horizonte do Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100155, + name: "Ouro Preto do Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1101450, + name: "Parecis", + state: State::RO, + }, + Municipio { + ibge_code: 1100189, + name: "Pimenta Bueno", + state: State::RO, + }, + Municipio { + ibge_code: 1101468, + name: "Pimenteiras do Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1100205, + name: "Porto Velho", + state: State::RO, + }, + Municipio { + ibge_code: 1100254, + name: "Presidente Médici", + state: State::RO, + }, + Municipio { + ibge_code: 1101476, + name: "Primavera de Rondônia", + state: State::RO, + }, + Municipio { + ibge_code: 1100262, + name: "Rio Crespo", + state: State::RO, + }, + Municipio { + ibge_code: 1100288, + name: "Rolim de Moura", + state: State::RO, + }, + Municipio { + ibge_code: 1100296, + name: "Santa Luzia D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1101500, + name: "Seringueiras", + state: State::RO, + }, + Municipio { + ibge_code: 1101484, + name: "São Felipe D'Oeste", + state: State::RO, + }, + Municipio { + ibge_code: 1101492, + name: "São Francisco do Guaporé", + state: State::RO, + }, + Municipio { + ibge_code: 1100320, + name: "São Miguel do Guaporé", + state: State::RO, + }, + Municipio { + ibge_code: 1101559, + name: "Teixeirópolis", + state: State::RO, + }, + Municipio { + ibge_code: 1101609, + name: "Theobroma", + state: State::RO, + }, + Municipio { + ibge_code: 1101708, + name: "Urupá", + state: State::RO, + }, + Municipio { + ibge_code: 1101757, + name: "Vale do Anari", + state: State::RO, + }, + Municipio { + ibge_code: 1101807, + name: "Vale do Paraíso", + state: State::RO, + }, + Municipio { + ibge_code: 1100304, + name: "Vilhena", + state: State::RO, + }, + Municipio { + ibge_code: 1400050, + name: "Alto Alegre", + state: State::RR, + }, + Municipio { + ibge_code: 1400027, + name: "Amajari", + state: State::RR, + }, + Municipio { + ibge_code: 1400100, + name: "Boa Vista", + state: State::RR, + }, + Municipio { + ibge_code: 1400159, + name: "Bonfim", + state: State::RR, + }, + Municipio { + ibge_code: 1400175, + name: "Cantá", + state: State::RR, + }, + Municipio { + ibge_code: 1400209, + name: "Caracaraí", + state: State::RR, + }, + Municipio { + ibge_code: 1400233, + name: "Caroebe", + state: State::RR, + }, + Municipio { + ibge_code: 1400282, + name: "Iracema", + state: State::RR, + }, + Municipio { + ibge_code: 1400308, + name: "Mucajaí", + state: State::RR, + }, + Municipio { + ibge_code: 1400407, + name: "Normandia", + state: State::RR, + }, + Municipio { + ibge_code: 1400456, + name: "Pacaraima", + state: State::RR, + }, + Municipio { + ibge_code: 1400472, + name: "Rorainópolis", + state: State::RR, + }, + Municipio { + ibge_code: 1400506, + name: "São João da Baliza", + state: State::RR, + }, + Municipio { + ibge_code: 1400605, + name: "São Luiz do Anauá", + state: State::RR, + }, + Municipio { + ibge_code: 1400704, + name: "Uiramutã", + state: State::RR, + }, + Municipio { + ibge_code: 4300034, + name: "Aceguá", + state: State::RS, + }, + Municipio { + ibge_code: 4300109, + name: "Agudo", + state: State::RS, + }, + Municipio { + ibge_code: 4300208, + name: "Ajuricaba", + state: State::RS, + }, + Municipio { + ibge_code: 4300307, + name: "Alecrim", + state: State::RS, + }, + Municipio { + ibge_code: 4300406, + name: "Alegrete", + state: State::RS, + }, + Municipio { + ibge_code: 4300455, + name: "Alegria", + state: State::RS, + }, + Municipio { + ibge_code: 4300471, + name: "Almirante Tamandaré do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4300505, + name: "Alpestre", + state: State::RS, + }, + Municipio { + ibge_code: 4300554, + name: "Alto Alegre", + state: State::RS, + }, + Municipio { + ibge_code: 4300570, + name: "Alto Feliz", + state: State::RS, + }, + Municipio { + ibge_code: 4300604, + name: "Alvorada", + state: State::RS, + }, + Municipio { + ibge_code: 4300638, + name: "Amaral Ferrador", + state: State::RS, + }, + Municipio { + ibge_code: 4300646, + name: "Ametista do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4300661, + name: "André da Rocha", + state: State::RS, + }, + Municipio { + ibge_code: 4300703, + name: "Anta Gorda", + state: State::RS, + }, + Municipio { + ibge_code: 4300802, + name: "Antônio Prado", + state: State::RS, + }, + Municipio { + ibge_code: 4300851, + name: "Arambaré", + state: State::RS, + }, + Municipio { + ibge_code: 4300877, + name: "Araricá", + state: State::RS, + }, + Municipio { + ibge_code: 4300901, + name: "Aratiba", + state: State::RS, + }, + Municipio { + ibge_code: 4301305, + name: "Arroio Grande", + state: State::RS, + }, + Municipio { + ibge_code: 4301008, + name: "Arroio do Meio", + state: State::RS, + }, + Municipio { + ibge_code: 4301073, + name: "Arroio do Padre", + state: State::RS, + }, + Municipio { + ibge_code: 4301057, + name: "Arroio do Sal", + state: State::RS, + }, + Municipio { + ibge_code: 4301206, + name: "Arroio do Tigre", + state: State::RS, + }, + Municipio { + ibge_code: 4301107, + name: "Arroio dos Ratos", + state: State::RS, + }, + Municipio { + ibge_code: 4301404, + name: "Arvorezinha", + state: State::RS, + }, + Municipio { + ibge_code: 4301503, + name: "Augusto Pestana", + state: State::RS, + }, + Municipio { + ibge_code: 4301602, + name: "Bagé", + state: State::RS, + }, + Municipio { + ibge_code: 4301636, + name: "Balneário Pinhal", + state: State::RS, + }, + Municipio { + ibge_code: 4301958, + name: "Barra Funda", + state: State::RS, + }, + Municipio { + ibge_code: 4301859, + name: "Barra do Guarita", + state: State::RS, + }, + Municipio { + ibge_code: 4301875, + name: "Barra do Quaraí", + state: State::RS, + }, + Municipio { + ibge_code: 4301909, + name: "Barra do Ribeiro", + state: State::RS, + }, + Municipio { + ibge_code: 4301925, + name: "Barra do Rio Azul", + state: State::RS, + }, + Municipio { + ibge_code: 4301800, + name: "Barracão", + state: State::RS, + }, + Municipio { + ibge_code: 4302006, + name: "Barros Cassal", + state: State::RS, + }, + Municipio { + ibge_code: 4301651, + name: "Barão", + state: State::RS, + }, + Municipio { + ibge_code: 4301701, + name: "Barão de Cotegipe", + state: State::RS, + }, + Municipio { + ibge_code: 4301750, + name: "Barão do Triunfo", + state: State::RS, + }, + Municipio { + ibge_code: 4302055, + name: "Benjamin Constant do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4302105, + name: "Bento Gonçalves", + state: State::RS, + }, + Municipio { + ibge_code: 4302154, + name: "Boa Vista das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4302204, + name: "Boa Vista do Buricá", + state: State::RS, + }, + Municipio { + ibge_code: 4302220, + name: "Boa Vista do Cadeado", + state: State::RS, + }, + Municipio { + ibge_code: 4302238, + name: "Boa Vista do Incra", + state: State::RS, + }, + Municipio { + ibge_code: 4302253, + name: "Boa Vista do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4302303, + name: "Bom Jesus", + state: State::RS, + }, + Municipio { + ibge_code: 4302352, + name: "Bom Princípio", + state: State::RS, + }, + Municipio { + ibge_code: 4302378, + name: "Bom Progresso", + state: State::RS, + }, + Municipio { + ibge_code: 4302402, + name: "Bom Retiro do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4302451, + name: "Boqueirão do Leão", + state: State::RS, + }, + Municipio { + ibge_code: 4302501, + name: "Bossoroca", + state: State::RS, + }, + Municipio { + ibge_code: 4302584, + name: "Bozano", + state: State::RS, + }, + Municipio { + ibge_code: 4302600, + name: "Braga", + state: State::RS, + }, + Municipio { + ibge_code: 4302659, + name: "Brochier", + state: State::RS, + }, + Municipio { + ibge_code: 4302709, + name: "Butiá", + state: State::RS, + }, + Municipio { + ibge_code: 4302907, + name: "Cacequi", + state: State::RS, + }, + Municipio { + ibge_code: 4303004, + name: "Cachoeira do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4303103, + name: "Cachoeirinha", + state: State::RS, + }, + Municipio { + ibge_code: 4303202, + name: "Cacique Doble", + state: State::RS, + }, + Municipio { + ibge_code: 4303301, + name: "Caibaté", + state: State::RS, + }, + Municipio { + ibge_code: 4303400, + name: "Caiçara", + state: State::RS, + }, + Municipio { + ibge_code: 4303509, + name: "Camaquã", + state: State::RS, + }, + Municipio { + ibge_code: 4303558, + name: "Camargo", + state: State::RS, + }, + Municipio { + ibge_code: 4303608, + name: "Cambará do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4303673, + name: "Campestre da Serra", + state: State::RS, + }, + Municipio { + ibge_code: 4303707, + name: "Campina das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4303806, + name: "Campinas do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4303905, + name: "Campo Bom", + state: State::RS, + }, + Municipio { + ibge_code: 4304002, + name: "Campo Novo", + state: State::RS, + }, + Municipio { + ibge_code: 4304101, + name: "Campos Borges", + state: State::RS, + }, + Municipio { + ibge_code: 4304200, + name: "Candelária", + state: State::RS, + }, + Municipio { + ibge_code: 4304358, + name: "Candiota", + state: State::RS, + }, + Municipio { + ibge_code: 4304408, + name: "Canela", + state: State::RS, + }, + Municipio { + ibge_code: 4304507, + name: "Canguçu", + state: State::RS, + }, + Municipio { + ibge_code: 4304606, + name: "Canoas", + state: State::RS, + }, + Municipio { + ibge_code: 4304614, + name: "Canudos do Vale", + state: State::RS, + }, + Municipio { + ibge_code: 4304689, + name: "Capela de Santana", + state: State::RS, + }, + Municipio { + ibge_code: 4304697, + name: "Capitão", + state: State::RS, + }, + Municipio { + ibge_code: 4304671, + name: "Capivari do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4304622, + name: "Capão Bonito do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4304630, + name: "Capão da Canoa", + state: State::RS, + }, + Municipio { + ibge_code: 4304655, + name: "Capão do Cipó", + state: State::RS, + }, + Municipio { + ibge_code: 4304663, + name: "Capão do Leão", + state: State::RS, + }, + Municipio { + ibge_code: 4304705, + name: "Carazinho", + state: State::RS, + }, + Municipio { + ibge_code: 4304713, + name: "Caraá", + state: State::RS, + }, + Municipio { + ibge_code: 4304804, + name: "Carlos Barbosa", + state: State::RS, + }, + Municipio { + ibge_code: 4304853, + name: "Carlos Gomes", + state: State::RS, + }, + Municipio { + ibge_code: 4304903, + name: "Casca", + state: State::RS, + }, + Municipio { + ibge_code: 4304952, + name: "Caseiros", + state: State::RS, + }, + Municipio { + ibge_code: 4305009, + name: "Catuípe", + state: State::RS, + }, + Municipio { + ibge_code: 4305108, + name: "Caxias do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4302808, + name: "Caçapava do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4305116, + name: "Centenário", + state: State::RS, + }, + Municipio { + ibge_code: 4305124, + name: "Cerrito", + state: State::RS, + }, + Municipio { + ibge_code: 4305132, + name: "Cerro Branco", + state: State::RS, + }, + Municipio { + ibge_code: 4305157, + name: "Cerro Grande", + state: State::RS, + }, + Municipio { + ibge_code: 4305173, + name: "Cerro Grande do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4305207, + name: "Cerro Largo", + state: State::RS, + }, + Municipio { + ibge_code: 4305306, + name: "Chapada", + state: State::RS, + }, + Municipio { + ibge_code: 4305355, + name: "Charqueadas", + state: State::RS, + }, + Municipio { + ibge_code: 4305371, + name: "Charrua", + state: State::RS, + }, + Municipio { + ibge_code: 4305405, + name: "Chiapetta", + state: State::RS, + }, + Municipio { + ibge_code: 4305447, + name: "Chuvisca", + state: State::RS, + }, + Municipio { + ibge_code: 4305439, + name: "Chuí", + state: State::RS, + }, + Municipio { + ibge_code: 4305454, + name: "Cidreira", + state: State::RS, + }, + Municipio { + ibge_code: 4305504, + name: "Ciríaco", + state: State::RS, + }, + Municipio { + ibge_code: 4305587, + name: "Colinas", + state: State::RS, + }, + Municipio { + ibge_code: 4305603, + name: "Colorado", + state: State::RS, + }, + Municipio { + ibge_code: 4305702, + name: "Condor", + state: State::RS, + }, + Municipio { + ibge_code: 4305801, + name: "Constantina", + state: State::RS, + }, + Municipio { + ibge_code: 4305835, + name: "Coqueiro Baixo", + state: State::RS, + }, + Municipio { + ibge_code: 4305850, + name: "Coqueiros do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4305871, + name: "Coronel Barros", + state: State::RS, + }, + Municipio { + ibge_code: 4305900, + name: "Coronel Bicaco", + state: State::RS, + }, + Municipio { + ibge_code: 4305934, + name: "Coronel Pilar", + state: State::RS, + }, + Municipio { + ibge_code: 4305959, + name: "Cotiporã", + state: State::RS, + }, + Municipio { + ibge_code: 4305975, + name: "Coxilha", + state: State::RS, + }, + Municipio { + ibge_code: 4306007, + name: "Crissiumal", + state: State::RS, + }, + Municipio { + ibge_code: 4306056, + name: "Cristal", + state: State::RS, + }, + Municipio { + ibge_code: 4306072, + name: "Cristal do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4306106, + name: "Cruz Alta", + state: State::RS, + }, + Municipio { + ibge_code: 4306130, + name: "Cruzaltense", + state: State::RS, + }, + Municipio { + ibge_code: 4306205, + name: "Cruzeiro do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4304309, + name: "Cândido Godói", + state: State::RS, + }, + Municipio { + ibge_code: 4306304, + name: "David Canabarro", + state: State::RS, + }, + Municipio { + ibge_code: 4306320, + name: "Derrubadas", + state: State::RS, + }, + Municipio { + ibge_code: 4306353, + name: "Dezesseis de Novembro", + state: State::RS, + }, + Municipio { + ibge_code: 4306379, + name: "Dilermando de Aguiar", + state: State::RS, + }, + Municipio { + ibge_code: 4306403, + name: "Dois Irmãos", + state: State::RS, + }, + Municipio { + ibge_code: 4306429, + name: "Dois Irmãos das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4306452, + name: "Dois Lajeados", + state: State::RS, + }, + Municipio { + ibge_code: 4306502, + name: "Dom Feliciano", + state: State::RS, + }, + Municipio { + ibge_code: 4306601, + name: "Dom Pedrito", + state: State::RS, + }, + Municipio { + ibge_code: 4306551, + name: "Dom Pedro de Alcântara", + state: State::RS, + }, + Municipio { + ibge_code: 4306700, + name: "Dona Francisca", + state: State::RS, + }, + Municipio { + ibge_code: 4306734, + name: "Doutor Maurício Cardoso", + state: State::RS, + }, + Municipio { + ibge_code: 4306759, + name: "Doutor Ricardo", + state: State::RS, + }, + Municipio { + ibge_code: 4306767, + name: "Eldorado do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4306809, + name: "Encantado", + state: State::RS, + }, + Municipio { + ibge_code: 4306908, + name: "Encruzilhada do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4306924, + name: "Engenho Velho", + state: State::RS, + }, + Municipio { + ibge_code: 4306957, + name: "Entre Rios do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4306932, + name: "Entre-Ijuís", + state: State::RS, + }, + Municipio { + ibge_code: 4306973, + name: "Erebango", + state: State::RS, + }, + Municipio { + ibge_code: 4307005, + name: "Erechim", + state: State::RS, + }, + Municipio { + ibge_code: 4307054, + name: "Ernestina", + state: State::RS, + }, + Municipio { + ibge_code: 4307203, + name: "Erval Grande", + state: State::RS, + }, + Municipio { + ibge_code: 4307302, + name: "Erval Seco", + state: State::RS, + }, + Municipio { + ibge_code: 4307401, + name: "Esmeralda", + state: State::RS, + }, + Municipio { + ibge_code: 4307450, + name: "Esperança do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4307500, + name: "Espumoso", + state: State::RS, + }, + Municipio { + ibge_code: 4307559, + name: "Estação", + state: State::RS, + }, + Municipio { + ibge_code: 4307708, + name: "Esteio", + state: State::RS, + }, + Municipio { + ibge_code: 4307807, + name: "Estrela", + state: State::RS, + }, + Municipio { + ibge_code: 4307815, + name: "Estrela Velha", + state: State::RS, + }, + Municipio { + ibge_code: 4307609, + name: "Estância Velha", + state: State::RS, + }, + Municipio { + ibge_code: 4307831, + name: "Eugênio de Castro", + state: State::RS, + }, + Municipio { + ibge_code: 4307864, + name: "Fagundes Varela", + state: State::RS, + }, + Municipio { + ibge_code: 4307906, + name: "Farroupilha", + state: State::RS, + }, + Municipio { + ibge_code: 4308003, + name: "Faxinal do Soturno", + state: State::RS, + }, + Municipio { + ibge_code: 4308052, + name: "Faxinalzinho", + state: State::RS, + }, + Municipio { + ibge_code: 4308078, + name: "Fazenda Vilanova", + state: State::RS, + }, + Municipio { + ibge_code: 4308102, + name: "Feliz", + state: State::RS, + }, + Municipio { + ibge_code: 4308201, + name: "Flores da Cunha", + state: State::RS, + }, + Municipio { + ibge_code: 4308250, + name: "Floriano Peixoto", + state: State::RS, + }, + Municipio { + ibge_code: 4308300, + name: "Fontoura Xavier", + state: State::RS, + }, + Municipio { + ibge_code: 4308409, + name: "Formigueiro", + state: State::RS, + }, + Municipio { + ibge_code: 4308433, + name: "Forquetinha", + state: State::RS, + }, + Municipio { + ibge_code: 4308458, + name: "Fortaleza dos Valos", + state: State::RS, + }, + Municipio { + ibge_code: 4308508, + name: "Frederico Westphalen", + state: State::RS, + }, + Municipio { + ibge_code: 4308607, + name: "Garibaldi", + state: State::RS, + }, + Municipio { + ibge_code: 4308656, + name: "Garruchos", + state: State::RS, + }, + Municipio { + ibge_code: 4308706, + name: "Gaurama", + state: State::RS, + }, + Municipio { + ibge_code: 4308805, + name: "General Câmara", + state: State::RS, + }, + Municipio { + ibge_code: 4308854, + name: "Gentil", + state: State::RS, + }, + Municipio { + ibge_code: 4308904, + name: "Getúlio Vargas", + state: State::RS, + }, + Municipio { + ibge_code: 4309001, + name: "Giruá", + state: State::RS, + }, + Municipio { + ibge_code: 4309050, + name: "Glorinha", + state: State::RS, + }, + Municipio { + ibge_code: 4309100, + name: "Gramado", + state: State::RS, + }, + Municipio { + ibge_code: 4309159, + name: "Gramado Xavier", + state: State::RS, + }, + Municipio { + ibge_code: 4309126, + name: "Gramado dos Loureiros", + state: State::RS, + }, + Municipio { + ibge_code: 4309209, + name: "Gravataí", + state: State::RS, + }, + Municipio { + ibge_code: 4309258, + name: "Guabiju", + state: State::RS, + }, + Municipio { + ibge_code: 4309407, + name: "Guaporé", + state: State::RS, + }, + Municipio { + ibge_code: 4309506, + name: "Guarani das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4309308, + name: "Guaíba", + state: State::RS, + }, + Municipio { + ibge_code: 4309555, + name: "Harmonia", + state: State::RS, + }, + Municipio { + ibge_code: 4307104, + name: "Herval", + state: State::RS, + }, + Municipio { + ibge_code: 4309571, + name: "Herveiras", + state: State::RS, + }, + Municipio { + ibge_code: 4309605, + name: "Horizontina", + state: State::RS, + }, + Municipio { + ibge_code: 4309654, + name: "Hulha Negra", + state: State::RS, + }, + Municipio { + ibge_code: 4309704, + name: "Humaitá", + state: State::RS, + }, + Municipio { + ibge_code: 4309753, + name: "Ibarama", + state: State::RS, + }, + Municipio { + ibge_code: 4309803, + name: "Ibiaçá", + state: State::RS, + }, + Municipio { + ibge_code: 4309902, + name: "Ibiraiaras", + state: State::RS, + }, + Municipio { + ibge_code: 4309951, + name: "Ibirapuitã", + state: State::RS, + }, + Municipio { + ibge_code: 4310009, + name: "Ibirubá", + state: State::RS, + }, + Municipio { + ibge_code: 4310108, + name: "Igrejinha", + state: State::RS, + }, + Municipio { + ibge_code: 4310207, + name: "Ijuí", + state: State::RS, + }, + Municipio { + ibge_code: 4310306, + name: "Ilópolis", + state: State::RS, + }, + Municipio { + ibge_code: 4310330, + name: "Imbé", + state: State::RS, + }, + Municipio { + ibge_code: 4310363, + name: "Imigrante", + state: State::RS, + }, + Municipio { + ibge_code: 4310405, + name: "Independência", + state: State::RS, + }, + Municipio { + ibge_code: 4310413, + name: "Inhacorá", + state: State::RS, + }, + Municipio { + ibge_code: 4310462, + name: "Ipiranga do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4310439, + name: "Ipê", + state: State::RS, + }, + Municipio { + ibge_code: 4310504, + name: "Iraí", + state: State::RS, + }, + Municipio { + ibge_code: 4310538, + name: "Itaara", + state: State::RS, + }, + Municipio { + ibge_code: 4310553, + name: "Itacurubi", + state: State::RS, + }, + Municipio { + ibge_code: 4310579, + name: "Itapuca", + state: State::RS, + }, + Municipio { + ibge_code: 4310603, + name: "Itaqui", + state: State::RS, + }, + Municipio { + ibge_code: 4310652, + name: "Itati", + state: State::RS, + }, + Municipio { + ibge_code: 4310702, + name: "Itatiba do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4310751, + name: "Ivorá", + state: State::RS, + }, + Municipio { + ibge_code: 4310801, + name: "Ivoti", + state: State::RS, + }, + Municipio { + ibge_code: 4310850, + name: "Jaboticaba", + state: State::RS, + }, + Municipio { + ibge_code: 4310876, + name: "Jacuizinho", + state: State::RS, + }, + Municipio { + ibge_code: 4310900, + name: "Jacutinga", + state: State::RS, + }, + Municipio { + ibge_code: 4311106, + name: "Jaguari", + state: State::RS, + }, + Municipio { + ibge_code: 4311007, + name: "Jaguarão", + state: State::RS, + }, + Municipio { + ibge_code: 4311122, + name: "Jaquirana", + state: State::RS, + }, + Municipio { + ibge_code: 4311130, + name: "Jari", + state: State::RS, + }, + Municipio { + ibge_code: 4311155, + name: "Jóia", + state: State::RS, + }, + Municipio { + ibge_code: 4311205, + name: "Júlio de Castilhos", + state: State::RS, + }, + Municipio { + ibge_code: 4311239, + name: "Lagoa Bonita do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4311304, + name: "Lagoa Vermelha", + state: State::RS, + }, + Municipio { + ibge_code: 4311270, + name: "Lagoa dos Três Cantos", + state: State::RS, + }, + Municipio { + ibge_code: 4311254, + name: "Lagoão", + state: State::RS, + }, + Municipio { + ibge_code: 4311403, + name: "Lajeado", + state: State::RS, + }, + Municipio { + ibge_code: 4311429, + name: "Lajeado do Bugre", + state: State::RS, + }, + Municipio { + ibge_code: 4311502, + name: "Lavras do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4311601, + name: "Liberato Salzano", + state: State::RS, + }, + Municipio { + ibge_code: 4311627, + name: "Lindolfo Collor", + state: State::RS, + }, + Municipio { + ibge_code: 4311643, + name: "Linha Nova", + state: State::RS, + }, + Municipio { + ibge_code: 4311700, + name: "Machadinho", + state: State::RS, + }, + Municipio { + ibge_code: 4311734, + name: "Mampituba", + state: State::RS, + }, + Municipio { + ibge_code: 4311759, + name: "Manoel Viana", + state: State::RS, + }, + Municipio { + ibge_code: 4311775, + name: "Maquiné", + state: State::RS, + }, + Municipio { + ibge_code: 4311791, + name: "Maratá", + state: State::RS, + }, + Municipio { + ibge_code: 4311809, + name: "Marau", + state: State::RS, + }, + Municipio { + ibge_code: 4311908, + name: "Marcelino Ramos", + state: State::RS, + }, + Municipio { + ibge_code: 4311981, + name: "Mariana Pimentel", + state: State::RS, + }, + Municipio { + ibge_code: 4312005, + name: "Mariano Moro", + state: State::RS, + }, + Municipio { + ibge_code: 4312054, + name: "Marques de Souza", + state: State::RS, + }, + Municipio { + ibge_code: 4312104, + name: "Mata", + state: State::RS, + }, + Municipio { + ibge_code: 4312138, + name: "Mato Castelhano", + state: State::RS, + }, + Municipio { + ibge_code: 4312153, + name: "Mato Leitão", + state: State::RS, + }, + Municipio { + ibge_code: 4312179, + name: "Mato Queimado", + state: State::RS, + }, + Municipio { + ibge_code: 4312203, + name: "Maximiliano de Almeida", + state: State::RS, + }, + Municipio { + ibge_code: 4311718, + name: "Maçambará", + state: State::RS, + }, + Municipio { + ibge_code: 4312252, + name: "Minas do Leão", + state: State::RS, + }, + Municipio { + ibge_code: 4312302, + name: "Miraguaí", + state: State::RS, + }, + Municipio { + ibge_code: 4312351, + name: "Montauri", + state: State::RS, + }, + Municipio { + ibge_code: 4312377, + name: "Monte Alegre dos Campos", + state: State::RS, + }, + Municipio { + ibge_code: 4312385, + name: "Monte Belo do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4312401, + name: "Montenegro", + state: State::RS, + }, + Municipio { + ibge_code: 4312427, + name: "Mormaço", + state: State::RS, + }, + Municipio { + ibge_code: 4312443, + name: "Morrinhos do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4312450, + name: "Morro Redondo", + state: State::RS, + }, + Municipio { + ibge_code: 4312476, + name: "Morro Reuter", + state: State::RS, + }, + Municipio { + ibge_code: 4312500, + name: "Mostardas", + state: State::RS, + }, + Municipio { + ibge_code: 4312617, + name: "Muitos Capões", + state: State::RS, + }, + Municipio { + ibge_code: 4312625, + name: "Muliterno", + state: State::RS, + }, + Municipio { + ibge_code: 4312609, + name: "Muçum", + state: State::RS, + }, + Municipio { + ibge_code: 4312674, + name: "Nicolau Vergueiro", + state: State::RS, + }, + Municipio { + ibge_code: 4312708, + name: "Nonoai", + state: State::RS, + }, + Municipio { + ibge_code: 4312757, + name: "Nova Alvorada", + state: State::RS, + }, + Municipio { + ibge_code: 4312807, + name: "Nova Araçá", + state: State::RS, + }, + Municipio { + ibge_code: 4312906, + name: "Nova Bassano", + state: State::RS, + }, + Municipio { + ibge_code: 4312955, + name: "Nova Boa Vista", + state: State::RS, + }, + Municipio { + ibge_code: 4313003, + name: "Nova Bréscia", + state: State::RS, + }, + Municipio { + ibge_code: 4313011, + name: "Nova Candelária", + state: State::RS, + }, + Municipio { + ibge_code: 4313037, + name: "Nova Esperança do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4313060, + name: "Nova Hartz", + state: State::RS, + }, + Municipio { + ibge_code: 4313102, + name: "Nova Palma", + state: State::RS, + }, + Municipio { + ibge_code: 4313201, + name: "Nova Petrópolis", + state: State::RS, + }, + Municipio { + ibge_code: 4313300, + name: "Nova Prata", + state: State::RS, + }, + Municipio { + ibge_code: 4313086, + name: "Nova Pádua", + state: State::RS, + }, + Municipio { + ibge_code: 4313334, + name: "Nova Ramada", + state: State::RS, + }, + Municipio { + ibge_code: 4313359, + name: "Nova Roma do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4313375, + name: "Nova Santa Rita", + state: State::RS, + }, + Municipio { + ibge_code: 4313490, + name: "Novo Barreiro", + state: State::RS, + }, + Municipio { + ibge_code: 4313391, + name: "Novo Cabrais", + state: State::RS, + }, + Municipio { + ibge_code: 4313409, + name: "Novo Hamburgo", + state: State::RS, + }, + Municipio { + ibge_code: 4313425, + name: "Novo Machado", + state: State::RS, + }, + Municipio { + ibge_code: 4313441, + name: "Novo Tiradentes", + state: State::RS, + }, + Municipio { + ibge_code: 4313466, + name: "Novo Xingu", + state: State::RS, + }, + Municipio { + ibge_code: 4312658, + name: "Não-Me-Toque", + state: State::RS, + }, + Municipio { + ibge_code: 4313508, + name: "Osório", + state: State::RS, + }, + Municipio { + ibge_code: 4313607, + name: "Paim Filho", + state: State::RS, + }, + Municipio { + ibge_code: 4313656, + name: "Palmares do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4313706, + name: "Palmeira das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4313805, + name: "Palmitinho", + state: State::RS, + }, + Municipio { + ibge_code: 4313904, + name: "Panambi", + state: State::RS, + }, + Municipio { + ibge_code: 4313953, + name: "Pantano Grande", + state: State::RS, + }, + Municipio { + ibge_code: 4314001, + name: "Paraí", + state: State::RS, + }, + Municipio { + ibge_code: 4314027, + name: "Paraíso do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4314035, + name: "Pareci Novo", + state: State::RS, + }, + Municipio { + ibge_code: 4314050, + name: "Parobé", + state: State::RS, + }, + Municipio { + ibge_code: 4314068, + name: "Passa Sete", + state: State::RS, + }, + Municipio { + ibge_code: 4314100, + name: "Passo Fundo", + state: State::RS, + }, + Municipio { + ibge_code: 4314076, + name: "Passo do Sobrado", + state: State::RS, + }, + Municipio { + ibge_code: 4314134, + name: "Paulo Bento", + state: State::RS, + }, + Municipio { + ibge_code: 4314159, + name: "Paverama", + state: State::RS, + }, + Municipio { + ibge_code: 4314175, + name: "Pedras Altas", + state: State::RS, + }, + Municipio { + ibge_code: 4314209, + name: "Pedro Osório", + state: State::RS, + }, + Municipio { + ibge_code: 4314308, + name: "Pejuçara", + state: State::RS, + }, + Municipio { + ibge_code: 4314407, + name: "Pelotas", + state: State::RS, + }, + Municipio { + ibge_code: 4314423, + name: "Picada Café", + state: State::RS, + }, + Municipio { + ibge_code: 4314456, + name: "Pinhal", + state: State::RS, + }, + Municipio { + ibge_code: 4314472, + name: "Pinhal Grande", + state: State::RS, + }, + Municipio { + ibge_code: 4314464, + name: "Pinhal da Serra", + state: State::RS, + }, + Municipio { + ibge_code: 4314498, + name: "Pinheirinho do Vale", + state: State::RS, + }, + Municipio { + ibge_code: 4314506, + name: "Pinheiro Machado", + state: State::RS, + }, + Municipio { + ibge_code: 4314548, + name: "Pinto Bandeira", + state: State::RS, + }, + Municipio { + ibge_code: 4314555, + name: "Pirapó", + state: State::RS, + }, + Municipio { + ibge_code: 4314605, + name: "Piratini", + state: State::RS, + }, + Municipio { + ibge_code: 4314704, + name: "Planalto", + state: State::RS, + }, + Municipio { + ibge_code: 4314787, + name: "Ponte Preta", + state: State::RS, + }, + Municipio { + ibge_code: 4314779, + name: "Pontão", + state: State::RS, + }, + Municipio { + ibge_code: 4314902, + name: "Porto Alegre", + state: State::RS, + }, + Municipio { + ibge_code: 4315008, + name: "Porto Lucena", + state: State::RS, + }, + Municipio { + ibge_code: 4315057, + name: "Porto Mauá", + state: State::RS, + }, + Municipio { + ibge_code: 4315073, + name: "Porto Vera Cruz", + state: State::RS, + }, + Municipio { + ibge_code: 4315107, + name: "Porto Xavier", + state: State::RS, + }, + Municipio { + ibge_code: 4314803, + name: "Portão", + state: State::RS, + }, + Municipio { + ibge_code: 4315131, + name: "Pouso Novo", + state: State::RS, + }, + Municipio { + ibge_code: 4314753, + name: "Poço das Antas", + state: State::RS, + }, + Municipio { + ibge_code: 4315149, + name: "Presidente Lucena", + state: State::RS, + }, + Municipio { + ibge_code: 4315156, + name: "Progresso", + state: State::RS, + }, + Municipio { + ibge_code: 4315172, + name: "Protásio Alves", + state: State::RS, + }, + Municipio { + ibge_code: 4315206, + name: "Putinga", + state: State::RS, + }, + Municipio { + ibge_code: 4315305, + name: "Quaraí", + state: State::RS, + }, + Municipio { + ibge_code: 4315313, + name: "Quatro Irmãos", + state: State::RS, + }, + Municipio { + ibge_code: 4315321, + name: "Quevedos", + state: State::RS, + }, + Municipio { + ibge_code: 4315354, + name: "Quinze de Novembro", + state: State::RS, + }, + Municipio { + ibge_code: 4315404, + name: "Redentora", + state: State::RS, + }, + Municipio { + ibge_code: 4315453, + name: "Relvado", + state: State::RS, + }, + Municipio { + ibge_code: 4315503, + name: "Restinga Sêca", + state: State::RS, + }, + Municipio { + ibge_code: 4315602, + name: "Rio Grande", + state: State::RS, + }, + Municipio { + ibge_code: 4315701, + name: "Rio Pardo", + state: State::RS, + }, + Municipio { + ibge_code: 4315552, + name: "Rio dos Índios", + state: State::RS, + }, + Municipio { + ibge_code: 4315750, + name: "Riozinho", + state: State::RS, + }, + Municipio { + ibge_code: 4315800, + name: "Roca Sales", + state: State::RS, + }, + Municipio { + ibge_code: 4315909, + name: "Rodeio Bonito", + state: State::RS, + }, + Municipio { + ibge_code: 4315958, + name: "Rolador", + state: State::RS, + }, + Municipio { + ibge_code: 4316006, + name: "Rolante", + state: State::RS, + }, + Municipio { + ibge_code: 4316105, + name: "Ronda Alta", + state: State::RS, + }, + Municipio { + ibge_code: 4316204, + name: "Rondinha", + state: State::RS, + }, + Municipio { + ibge_code: 4316303, + name: "Roque Gonzales", + state: State::RS, + }, + Municipio { + ibge_code: 4316402, + name: "Rosário do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316428, + name: "Sagrada Família", + state: State::RS, + }, + Municipio { + ibge_code: 4316436, + name: "Saldanha Marinho", + state: State::RS, + }, + Municipio { + ibge_code: 4316451, + name: "Salto do Jacuí", + state: State::RS, + }, + Municipio { + ibge_code: 4316477, + name: "Salvador das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4316501, + name: "Salvador do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316600, + name: "Sananduva", + state: State::RS, + }, + Municipio { + ibge_code: 4317103, + name: "Sant'Ana do Livramento", + state: State::RS, + }, + Municipio { + ibge_code: 4316709, + name: "Santa Bárbara do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316733, + name: "Santa Cecília do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316758, + name: "Santa Clara do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316808, + name: "Santa Cruz do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316972, + name: "Santa Margarida do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4316907, + name: "Santa Maria", + state: State::RS, + }, + Municipio { + ibge_code: 4316956, + name: "Santa Maria do Herval", + state: State::RS, + }, + Municipio { + ibge_code: 4317202, + name: "Santa Rosa", + state: State::RS, + }, + Municipio { + ibge_code: 4317251, + name: "Santa Tereza", + state: State::RS, + }, + Municipio { + ibge_code: 4317301, + name: "Santa Vitória do Palmar", + state: State::RS, + }, + Municipio { + ibge_code: 4317004, + name: "Santana da Boa Vista", + state: State::RS, + }, + Municipio { + ibge_code: 4317400, + name: "Santiago", + state: State::RS, + }, + Municipio { + ibge_code: 4317608, + name: "Santo Antônio da Patrulha", + state: State::RS, + }, + Municipio { + ibge_code: 4317707, + name: "Santo Antônio das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4317558, + name: "Santo Antônio do Palma", + state: State::RS, + }, + Municipio { + ibge_code: 4317756, + name: "Santo Antônio do Planalto", + state: State::RS, + }, + Municipio { + ibge_code: 4317806, + name: "Santo Augusto", + state: State::RS, + }, + Municipio { + ibge_code: 4317905, + name: "Santo Cristo", + state: State::RS, + }, + Municipio { + ibge_code: 4317954, + name: "Santo Expedito do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4317509, + name: "Santo Ângelo", + state: State::RS, + }, + Municipio { + ibge_code: 4319901, + name: "Sapiranga", + state: State::RS, + }, + Municipio { + ibge_code: 4320008, + name: "Sapucaia do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4320107, + name: "Sarandi", + state: State::RS, + }, + Municipio { + ibge_code: 4320206, + name: "Seberi", + state: State::RS, + }, + Municipio { + ibge_code: 4320230, + name: "Sede Nova", + state: State::RS, + }, + Municipio { + ibge_code: 4320263, + name: "Segredo", + state: State::RS, + }, + Municipio { + ibge_code: 4320305, + name: "Selbach", + state: State::RS, + }, + Municipio { + ibge_code: 4320321, + name: "Senador Salgado Filho", + state: State::RS, + }, + Municipio { + ibge_code: 4320354, + name: "Sentinela do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4320404, + name: "Serafina Corrêa", + state: State::RS, + }, + Municipio { + ibge_code: 4320503, + name: "Sertão", + state: State::RS, + }, + Municipio { + ibge_code: 4320552, + name: "Sertão Santana", + state: State::RS, + }, + Municipio { + ibge_code: 4320578, + name: "Sete de Setembro", + state: State::RS, + }, + Municipio { + ibge_code: 4320602, + name: "Severiano de Almeida", + state: State::RS, + }, + Municipio { + ibge_code: 4320651, + name: "Silveira Martins", + state: State::RS, + }, + Municipio { + ibge_code: 4320677, + name: "Sinimbu", + state: State::RS, + }, + Municipio { + ibge_code: 4320701, + name: "Sobradinho", + state: State::RS, + }, + Municipio { + ibge_code: 4320800, + name: "Soledade", + state: State::RS, + }, + Municipio { + ibge_code: 4318002, + name: "São Borja", + state: State::RS, + }, + Municipio { + ibge_code: 4318051, + name: "São Domingos do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4318101, + name: "São Francisco de Assis", + state: State::RS, + }, + Municipio { + ibge_code: 4318200, + name: "São Francisco de Paula", + state: State::RS, + }, + Municipio { + ibge_code: 4318309, + name: "São Gabriel", + state: State::RS, + }, + Municipio { + ibge_code: 4318408, + name: "São Jerônimo", + state: State::RS, + }, + Municipio { + ibge_code: 4318440, + name: "São Jorge", + state: State::RS, + }, + Municipio { + ibge_code: 4318457, + name: "São José das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4318465, + name: "São José do Herval", + state: State::RS, + }, + Municipio { + ibge_code: 4318481, + name: "São José do Hortêncio", + state: State::RS, + }, + Municipio { + ibge_code: 4318499, + name: "São José do Inhacorá", + state: State::RS, + }, + Municipio { + ibge_code: 4318507, + name: "São José do Norte", + state: State::RS, + }, + Municipio { + ibge_code: 4318606, + name: "São José do Ouro", + state: State::RS, + }, + Municipio { + ibge_code: 4318614, + name: "São José do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4318622, + name: "São José dos Ausentes", + state: State::RS, + }, + Municipio { + ibge_code: 4318424, + name: "São João da Urtiga", + state: State::RS, + }, + Municipio { + ibge_code: 4318432, + name: "São João do Polêsine", + state: State::RS, + }, + Municipio { + ibge_code: 4318705, + name: "São Leopoldo", + state: State::RS, + }, + Municipio { + ibge_code: 4318804, + name: "São Lourenço do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4318903, + name: "São Luiz Gonzaga", + state: State::RS, + }, + Municipio { + ibge_code: 4319000, + name: "São Marcos", + state: State::RS, + }, + Municipio { + ibge_code: 4319109, + name: "São Martinho", + state: State::RS, + }, + Municipio { + ibge_code: 4319125, + name: "São Martinho da Serra", + state: State::RS, + }, + Municipio { + ibge_code: 4319158, + name: "São Miguel das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4319208, + name: "São Nicolau", + state: State::RS, + }, + Municipio { + ibge_code: 4319307, + name: "São Paulo das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4319356, + name: "São Pedro da Serra", + state: State::RS, + }, + Municipio { + ibge_code: 4319364, + name: "São Pedro das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4319372, + name: "São Pedro do Butiá", + state: State::RS, + }, + Municipio { + ibge_code: 4319406, + name: "São Pedro do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4319505, + name: "São Sebastião do Caí", + state: State::RS, + }, + Municipio { + ibge_code: 4319604, + name: "São Sepé", + state: State::RS, + }, + Municipio { + ibge_code: 4319703, + name: "São Valentim", + state: State::RS, + }, + Municipio { + ibge_code: 4319711, + name: "São Valentim do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4319737, + name: "São Valério do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4319752, + name: "São Vendelino", + state: State::RS, + }, + Municipio { + ibge_code: 4319802, + name: "São Vicente do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4320453, + name: "Sério", + state: State::RS, + }, + Municipio { + ibge_code: 4320859, + name: "Tabaí", + state: State::RS, + }, + Municipio { + ibge_code: 4320909, + name: "Tapejara", + state: State::RS, + }, + Municipio { + ibge_code: 4321006, + name: "Tapera", + state: State::RS, + }, + Municipio { + ibge_code: 4321105, + name: "Tapes", + state: State::RS, + }, + Municipio { + ibge_code: 4321204, + name: "Taquara", + state: State::RS, + }, + Municipio { + ibge_code: 4321303, + name: "Taquari", + state: State::RS, + }, + Municipio { + ibge_code: 4321329, + name: "Taquaruçu do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4321352, + name: "Tavares", + state: State::RS, + }, + Municipio { + ibge_code: 4321402, + name: "Tenente Portela", + state: State::RS, + }, + Municipio { + ibge_code: 4321436, + name: "Terra de Areia", + state: State::RS, + }, + Municipio { + ibge_code: 4321451, + name: "Teutônia", + state: State::RS, + }, + Municipio { + ibge_code: 4321469, + name: "Tio Hugo", + state: State::RS, + }, + Municipio { + ibge_code: 4321477, + name: "Tiradentes do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4321493, + name: "Toropi", + state: State::RS, + }, + Municipio { + ibge_code: 4321501, + name: "Torres", + state: State::RS, + }, + Municipio { + ibge_code: 4321600, + name: "Tramandaí", + state: State::RS, + }, + Municipio { + ibge_code: 4321626, + name: "Travesseiro", + state: State::RS, + }, + Municipio { + ibge_code: 4321956, + name: "Trindade do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4322004, + name: "Triunfo", + state: State::RS, + }, + Municipio { + ibge_code: 4321634, + name: "Três Arroios", + state: State::RS, + }, + Municipio { + ibge_code: 4321667, + name: "Três Cachoeiras", + state: State::RS, + }, + Municipio { + ibge_code: 4321709, + name: "Três Coroas", + state: State::RS, + }, + Municipio { + ibge_code: 4321832, + name: "Três Forquilhas", + state: State::RS, + }, + Municipio { + ibge_code: 4321857, + name: "Três Palmeiras", + state: State::RS, + }, + Municipio { + ibge_code: 4321907, + name: "Três Passos", + state: State::RS, + }, + Municipio { + ibge_code: 4321808, + name: "Três de Maio", + state: State::RS, + }, + Municipio { + ibge_code: 4322103, + name: "Tucunduva", + state: State::RS, + }, + Municipio { + ibge_code: 4322152, + name: "Tunas", + state: State::RS, + }, + Municipio { + ibge_code: 4322186, + name: "Tupanci do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4322202, + name: "Tupanciretã", + state: State::RS, + }, + Municipio { + ibge_code: 4322251, + name: "Tupandi", + state: State::RS, + }, + Municipio { + ibge_code: 4322301, + name: "Tuparendi", + state: State::RS, + }, + Municipio { + ibge_code: 4322327, + name: "Turuçu", + state: State::RS, + }, + Municipio { + ibge_code: 4322343, + name: "Ubiretama", + state: State::RS, + }, + Municipio { + ibge_code: 4322376, + name: "Unistalda", + state: State::RS, + }, + Municipio { + ibge_code: 4322350, + name: "União da Serra", + state: State::RS, + }, + Municipio { + ibge_code: 4322400, + name: "Uruguaiana", + state: State::RS, + }, + Municipio { + ibge_code: 4322509, + name: "Vacaria", + state: State::RS, + }, + Municipio { + ibge_code: 4322541, + name: "Vale Real", + state: State::RS, + }, + Municipio { + ibge_code: 4322525, + name: "Vale Verde", + state: State::RS, + }, + Municipio { + ibge_code: 4322533, + name: "Vale do Sol", + state: State::RS, + }, + Municipio { + ibge_code: 4322558, + name: "Vanini", + state: State::RS, + }, + Municipio { + ibge_code: 4322608, + name: "Venâncio Aires", + state: State::RS, + }, + Municipio { + ibge_code: 4322707, + name: "Vera Cruz", + state: State::RS, + }, + Municipio { + ibge_code: 4322806, + name: "Veranópolis", + state: State::RS, + }, + Municipio { + ibge_code: 4322855, + name: "Vespasiano Corrêa", + state: State::RS, + }, + Municipio { + ibge_code: 4322905, + name: "Viadutos", + state: State::RS, + }, + Municipio { + ibge_code: 4323002, + name: "Viamão", + state: State::RS, + }, + Municipio { + ibge_code: 4323101, + name: "Vicente Dutra", + state: State::RS, + }, + Municipio { + ibge_code: 4323200, + name: "Victor Graeff", + state: State::RS, + }, + Municipio { + ibge_code: 4323309, + name: "Vila Flores", + state: State::RS, + }, + Municipio { + ibge_code: 4323358, + name: "Vila Lângaro", + state: State::RS, + }, + Municipio { + ibge_code: 4323408, + name: "Vila Maria", + state: State::RS, + }, + Municipio { + ibge_code: 4323457, + name: "Vila Nova do Sul", + state: State::RS, + }, + Municipio { + ibge_code: 4323507, + name: "Vista Alegre", + state: State::RS, + }, + Municipio { + ibge_code: 4323606, + name: "Vista Alegre do Prata", + state: State::RS, + }, + Municipio { + ibge_code: 4323705, + name: "Vista Gaúcha", + state: State::RS, + }, + Municipio { + ibge_code: 4323754, + name: "Vitória das Missões", + state: State::RS, + }, + Municipio { + ibge_code: 4323770, + name: "Westfália", + state: State::RS, + }, + Municipio { + ibge_code: 4323804, + name: "Xangri-lá", + state: State::RS, + }, + Municipio { + ibge_code: 4300059, + name: "Água Santa", + state: State::RS, + }, + Municipio { + ibge_code: 4301552, + name: "Áurea", + state: State::RS, + }, + Municipio { + ibge_code: 4200051, + name: "Abdon Batista", + state: State::SC, + }, + Municipio { + ibge_code: 4200101, + name: "Abelardo Luz", + state: State::SC, + }, + Municipio { + ibge_code: 4200200, + name: "Agrolândia", + state: State::SC, + }, + Municipio { + ibge_code: 4200309, + name: "Agronômica", + state: State::SC, + }, + Municipio { + ibge_code: 4200705, + name: "Alfredo Wagner", + state: State::SC, + }, + Municipio { + ibge_code: 4200754, + name: "Alto Bela Vista", + state: State::SC, + }, + Municipio { + ibge_code: 4200804, + name: "Anchieta", + state: State::SC, + }, + Municipio { + ibge_code: 4200903, + name: "Angelina", + state: State::SC, + }, + Municipio { + ibge_code: 4201000, + name: "Anita Garibaldi", + state: State::SC, + }, + Municipio { + ibge_code: 4201109, + name: "Anitápolis", + state: State::SC, + }, + Municipio { + ibge_code: 4201208, + name: "Antônio Carlos", + state: State::SC, + }, + Municipio { + ibge_code: 4201257, + name: "Apiúna", + state: State::SC, + }, + Municipio { + ibge_code: 4201273, + name: "Arabutã", + state: State::SC, + }, + Municipio { + ibge_code: 4201307, + name: "Araquari", + state: State::SC, + }, + Municipio { + ibge_code: 4201406, + name: "Araranguá", + state: State::SC, + }, + Municipio { + ibge_code: 4201505, + name: "Armazém", + state: State::SC, + }, + Municipio { + ibge_code: 4201604, + name: "Arroio Trinta", + state: State::SC, + }, + Municipio { + ibge_code: 4201653, + name: "Arvoredo", + state: State::SC, + }, + Municipio { + ibge_code: 4201703, + name: "Ascurra", + state: State::SC, + }, + Municipio { + ibge_code: 4201802, + name: "Atalanta", + state: State::SC, + }, + Municipio { + ibge_code: 4201901, + name: "Aurora", + state: State::SC, + }, + Municipio { + ibge_code: 4201950, + name: "Balneário Arroio do Silva", + state: State::SC, + }, + Municipio { + ibge_code: 4202057, + name: "Balneário Barra do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4202008, + name: "Balneário Camboriú", + state: State::SC, + }, + Municipio { + ibge_code: 4202073, + name: "Balneário Gaivota", + state: State::SC, + }, + Municipio { + ibge_code: 4212809, + name: "Balneário Piçarras", + state: State::SC, + }, + Municipio { + ibge_code: 4220000, + name: "Balneário Rincão", + state: State::SC, + }, + Municipio { + ibge_code: 4202081, + name: "Bandeirante", + state: State::SC, + }, + Municipio { + ibge_code: 4202099, + name: "Barra Bonita", + state: State::SC, + }, + Municipio { + ibge_code: 4202107, + name: "Barra Velha", + state: State::SC, + }, + Municipio { + ibge_code: 4202131, + name: "Bela Vista do Toldo", + state: State::SC, + }, + Municipio { + ibge_code: 4202156, + name: "Belmonte", + state: State::SC, + }, + Municipio { + ibge_code: 4202206, + name: "Benedito Novo", + state: State::SC, + }, + Municipio { + ibge_code: 4202305, + name: "Biguaçu", + state: State::SC, + }, + Municipio { + ibge_code: 4202404, + name: "Blumenau", + state: State::SC, + }, + Municipio { + ibge_code: 4202438, + name: "Bocaina do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4202503, + name: "Bom Jardim da Serra", + state: State::SC, + }, + Municipio { + ibge_code: 4202537, + name: "Bom Jesus", + state: State::SC, + }, + Municipio { + ibge_code: 4202578, + name: "Bom Jesus do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4202602, + name: "Bom Retiro", + state: State::SC, + }, + Municipio { + ibge_code: 4202453, + name: "Bombinhas", + state: State::SC, + }, + Municipio { + ibge_code: 4202701, + name: "Botuverá", + state: State::SC, + }, + Municipio { + ibge_code: 4202800, + name: "Braço do Norte", + state: State::SC, + }, + Municipio { + ibge_code: 4202859, + name: "Braço do Trombudo", + state: State::SC, + }, + Municipio { + ibge_code: 4202875, + name: "Brunópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4202909, + name: "Brusque", + state: State::SC, + }, + Municipio { + ibge_code: 4203105, + name: "Caibi", + state: State::SC, + }, + Municipio { + ibge_code: 4203154, + name: "Calmon", + state: State::SC, + }, + Municipio { + ibge_code: 4203204, + name: "Camboriú", + state: State::SC, + }, + Municipio { + ibge_code: 4203303, + name: "Campo Alegre", + state: State::SC, + }, + Municipio { + ibge_code: 4203402, + name: "Campo Belo do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4203501, + name: "Campo Erê", + state: State::SC, + }, + Municipio { + ibge_code: 4203600, + name: "Campos Novos", + state: State::SC, + }, + Municipio { + ibge_code: 4203709, + name: "Canelinha", + state: State::SC, + }, + Municipio { + ibge_code: 4203808, + name: "Canoinhas", + state: State::SC, + }, + Municipio { + ibge_code: 4203907, + name: "Capinzal", + state: State::SC, + }, + Municipio { + ibge_code: 4203956, + name: "Capivari de Baixo", + state: State::SC, + }, + Municipio { + ibge_code: 4203253, + name: "Capão Alto", + state: State::SC, + }, + Municipio { + ibge_code: 4204004, + name: "Catanduvas", + state: State::SC, + }, + Municipio { + ibge_code: 4204103, + name: "Caxambu do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4203006, + name: "Caçador", + state: State::SC, + }, + Municipio { + ibge_code: 4204152, + name: "Celso Ramos", + state: State::SC, + }, + Municipio { + ibge_code: 4204178, + name: "Cerro Negro", + state: State::SC, + }, + Municipio { + ibge_code: 4204194, + name: "Chapadão do Lageado", + state: State::SC, + }, + Municipio { + ibge_code: 4204202, + name: "Chapecó", + state: State::SC, + }, + Municipio { + ibge_code: 4204251, + name: "Cocal do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4204301, + name: "Concórdia", + state: State::SC, + }, + Municipio { + ibge_code: 4204350, + name: "Cordilheira Alta", + state: State::SC, + }, + Municipio { + ibge_code: 4204400, + name: "Coronel Freitas", + state: State::SC, + }, + Municipio { + ibge_code: 4204459, + name: "Coronel Martins", + state: State::SC, + }, + Municipio { + ibge_code: 4204558, + name: "Correia Pinto", + state: State::SC, + }, + Municipio { + ibge_code: 4204509, + name: "Corupá", + state: State::SC, + }, + Municipio { + ibge_code: 4204608, + name: "Criciúma", + state: State::SC, + }, + Municipio { + ibge_code: 4204707, + name: "Cunha Porã", + state: State::SC, + }, + Municipio { + ibge_code: 4204756, + name: "Cunhataí", + state: State::SC, + }, + Municipio { + ibge_code: 4204806, + name: "Curitibanos", + state: State::SC, + }, + Municipio { + ibge_code: 4204905, + name: "Descanso", + state: State::SC, + }, + Municipio { + ibge_code: 4205001, + name: "Dionísio Cerqueira", + state: State::SC, + }, + Municipio { + ibge_code: 4205100, + name: "Dona Emma", + state: State::SC, + }, + Municipio { + ibge_code: 4205159, + name: "Doutor Pedrinho", + state: State::SC, + }, + Municipio { + ibge_code: 4205175, + name: "Entre Rios", + state: State::SC, + }, + Municipio { + ibge_code: 4205191, + name: "Ermo", + state: State::SC, + }, + Municipio { + ibge_code: 4205209, + name: "Erval Velho", + state: State::SC, + }, + Municipio { + ibge_code: 4205308, + name: "Faxinal dos Guedes", + state: State::SC, + }, + Municipio { + ibge_code: 4205357, + name: "Flor do Sertão", + state: State::SC, + }, + Municipio { + ibge_code: 4205407, + name: "Florianópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4205431, + name: "Formosa do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4205456, + name: "Forquilhinha", + state: State::SC, + }, + Municipio { + ibge_code: 4205506, + name: "Fraiburgo", + state: State::SC, + }, + Municipio { + ibge_code: 4205555, + name: "Frei Rogério", + state: State::SC, + }, + Municipio { + ibge_code: 4205605, + name: "Galvão", + state: State::SC, + }, + Municipio { + ibge_code: 4205704, + name: "Garopaba", + state: State::SC, + }, + Municipio { + ibge_code: 4205803, + name: "Garuva", + state: State::SC, + }, + Municipio { + ibge_code: 4205902, + name: "Gaspar", + state: State::SC, + }, + Municipio { + ibge_code: 4206009, + name: "Governador Celso Ramos", + state: State::SC, + }, + Municipio { + ibge_code: 4206207, + name: "Gravatal", + state: State::SC, + }, + Municipio { + ibge_code: 4206108, + name: "Grão-Pará", + state: State::SC, + }, + Municipio { + ibge_code: 4206306, + name: "Guabiruba", + state: State::SC, + }, + Municipio { + ibge_code: 4206405, + name: "Guaraciaba", + state: State::SC, + }, + Municipio { + ibge_code: 4206504, + name: "Guaramirim", + state: State::SC, + }, + Municipio { + ibge_code: 4206603, + name: "Guarujá do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4206652, + name: "Guatambú", + state: State::SC, + }, + Municipio { + ibge_code: 4206702, + name: "Herval d'Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4206751, + name: "Ibiam", + state: State::SC, + }, + Municipio { + ibge_code: 4206801, + name: "Ibicaré", + state: State::SC, + }, + Municipio { + ibge_code: 4206900, + name: "Ibirama", + state: State::SC, + }, + Municipio { + ibge_code: 4207106, + name: "Ilhota", + state: State::SC, + }, + Municipio { + ibge_code: 4207205, + name: "Imaruí", + state: State::SC, + }, + Municipio { + ibge_code: 4207304, + name: "Imbituba", + state: State::SC, + }, + Municipio { + ibge_code: 4207403, + name: "Imbuia", + state: State::SC, + }, + Municipio { + ibge_code: 4207502, + name: "Indaial", + state: State::SC, + }, + Municipio { + ibge_code: 4207577, + name: "Iomerê", + state: State::SC, + }, + Municipio { + ibge_code: 4207601, + name: "Ipira", + state: State::SC, + }, + Municipio { + ibge_code: 4207650, + name: "Iporã do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4207684, + name: "Ipuaçu", + state: State::SC, + }, + Municipio { + ibge_code: 4207700, + name: "Ipumirim", + state: State::SC, + }, + Municipio { + ibge_code: 4207759, + name: "Iraceminha", + state: State::SC, + }, + Municipio { + ibge_code: 4207809, + name: "Irani", + state: State::SC, + }, + Municipio { + ibge_code: 4207858, + name: "Irati", + state: State::SC, + }, + Municipio { + ibge_code: 4207908, + name: "Irineópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4208104, + name: "Itaiópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4208203, + name: "Itajaí", + state: State::SC, + }, + Municipio { + ibge_code: 4208302, + name: "Itapema", + state: State::SC, + }, + Municipio { + ibge_code: 4208401, + name: "Itapiranga", + state: State::SC, + }, + Municipio { + ibge_code: 4208450, + name: "Itapoá", + state: State::SC, + }, + Municipio { + ibge_code: 4208500, + name: "Ituporanga", + state: State::SC, + }, + Municipio { + ibge_code: 4208005, + name: "Itá", + state: State::SC, + }, + Municipio { + ibge_code: 4207007, + name: "Içara", + state: State::SC, + }, + Municipio { + ibge_code: 4208609, + name: "Jaborá", + state: State::SC, + }, + Municipio { + ibge_code: 4208708, + name: "Jacinto Machado", + state: State::SC, + }, + Municipio { + ibge_code: 4208807, + name: "Jaguaruna", + state: State::SC, + }, + Municipio { + ibge_code: 4208906, + name: "Jaraguá do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4208955, + name: "Jardinópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4209003, + name: "Joaçaba", + state: State::SC, + }, + Municipio { + ibge_code: 4209102, + name: "Joinville", + state: State::SC, + }, + Municipio { + ibge_code: 4209151, + name: "José Boiteux", + state: State::SC, + }, + Municipio { + ibge_code: 4209177, + name: "Jupiá", + state: State::SC, + }, + Municipio { + ibge_code: 4209201, + name: "Lacerdópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4209300, + name: "Lages", + state: State::SC, + }, + Municipio { + ibge_code: 4209409, + name: "Laguna", + state: State::SC, + }, + Municipio { + ibge_code: 4209458, + name: "Lajeado Grande", + state: State::SC, + }, + Municipio { + ibge_code: 4209508, + name: "Laurentino", + state: State::SC, + }, + Municipio { + ibge_code: 4209607, + name: "Lauro Müller", + state: State::SC, + }, + Municipio { + ibge_code: 4209706, + name: "Lebon Régis", + state: State::SC, + }, + Municipio { + ibge_code: 4209805, + name: "Leoberto Leal", + state: State::SC, + }, + Municipio { + ibge_code: 4209854, + name: "Lindóia do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4209904, + name: "Lontras", + state: State::SC, + }, + Municipio { + ibge_code: 4210001, + name: "Luiz Alves", + state: State::SC, + }, + Municipio { + ibge_code: 4210035, + name: "Luzerna", + state: State::SC, + }, + Municipio { + ibge_code: 4210050, + name: "Macieira", + state: State::SC, + }, + Municipio { + ibge_code: 4210100, + name: "Mafra", + state: State::SC, + }, + Municipio { + ibge_code: 4210209, + name: "Major Gercino", + state: State::SC, + }, + Municipio { + ibge_code: 4210308, + name: "Major Vieira", + state: State::SC, + }, + Municipio { + ibge_code: 4210407, + name: "Maracajá", + state: State::SC, + }, + Municipio { + ibge_code: 4210506, + name: "Maravilha", + state: State::SC, + }, + Municipio { + ibge_code: 4210555, + name: "Marema", + state: State::SC, + }, + Municipio { + ibge_code: 4210605, + name: "Massaranduba", + state: State::SC, + }, + Municipio { + ibge_code: 4210704, + name: "Matos Costa", + state: State::SC, + }, + Municipio { + ibge_code: 4210803, + name: "Meleiro", + state: State::SC, + }, + Municipio { + ibge_code: 4210852, + name: "Mirim Doce", + state: State::SC, + }, + Municipio { + ibge_code: 4210902, + name: "Modelo", + state: State::SC, + }, + Municipio { + ibge_code: 4211009, + name: "Mondaí", + state: State::SC, + }, + Municipio { + ibge_code: 4211058, + name: "Monte Carlo", + state: State::SC, + }, + Municipio { + ibge_code: 4211108, + name: "Monte Castelo", + state: State::SC, + }, + Municipio { + ibge_code: 4211256, + name: "Morro Grande", + state: State::SC, + }, + Municipio { + ibge_code: 4211207, + name: "Morro da Fumaça", + state: State::SC, + }, + Municipio { + ibge_code: 4211306, + name: "Navegantes", + state: State::SC, + }, + Municipio { + ibge_code: 4211405, + name: "Nova Erechim", + state: State::SC, + }, + Municipio { + ibge_code: 4211454, + name: "Nova Itaberaba", + state: State::SC, + }, + Municipio { + ibge_code: 4211504, + name: "Nova Trento", + state: State::SC, + }, + Municipio { + ibge_code: 4211603, + name: "Nova Veneza", + state: State::SC, + }, + Municipio { + ibge_code: 4211652, + name: "Novo Horizonte", + state: State::SC, + }, + Municipio { + ibge_code: 4211702, + name: "Orleans", + state: State::SC, + }, + Municipio { + ibge_code: 4211751, + name: "Otacílio Costa", + state: State::SC, + }, + Municipio { + ibge_code: 4211801, + name: "Ouro", + state: State::SC, + }, + Municipio { + ibge_code: 4211850, + name: "Ouro Verde", + state: State::SC, + }, + Municipio { + ibge_code: 4211876, + name: "Paial", + state: State::SC, + }, + Municipio { + ibge_code: 4211892, + name: "Painel", + state: State::SC, + }, + Municipio { + ibge_code: 4211900, + name: "Palhoça", + state: State::SC, + }, + Municipio { + ibge_code: 4212007, + name: "Palma Sola", + state: State::SC, + }, + Municipio { + ibge_code: 4212056, + name: "Palmeira", + state: State::SC, + }, + Municipio { + ibge_code: 4212106, + name: "Palmitos", + state: State::SC, + }, + Municipio { + ibge_code: 4212205, + name: "Papanduva", + state: State::SC, + }, + Municipio { + ibge_code: 4212239, + name: "Paraíso", + state: State::SC, + }, + Municipio { + ibge_code: 4212254, + name: "Passo de Torres", + state: State::SC, + }, + Municipio { + ibge_code: 4212270, + name: "Passos Maia", + state: State::SC, + }, + Municipio { + ibge_code: 4212304, + name: "Paulo Lopes", + state: State::SC, + }, + Municipio { + ibge_code: 4212403, + name: "Pedras Grandes", + state: State::SC, + }, + Municipio { + ibge_code: 4212502, + name: "Penha", + state: State::SC, + }, + Municipio { + ibge_code: 4212601, + name: "Peritiba", + state: State::SC, + }, + Municipio { + ibge_code: 4212650, + name: "Pescaria Brava", + state: State::SC, + }, + Municipio { + ibge_code: 4212700, + name: "Petrolândia", + state: State::SC, + }, + Municipio { + ibge_code: 4212908, + name: "Pinhalzinho", + state: State::SC, + }, + Municipio { + ibge_code: 4213005, + name: "Pinheiro Preto", + state: State::SC, + }, + Municipio { + ibge_code: 4213104, + name: "Piratuba", + state: State::SC, + }, + Municipio { + ibge_code: 4213153, + name: "Planalto Alegre", + state: State::SC, + }, + Municipio { + ibge_code: 4213203, + name: "Pomerode", + state: State::SC, + }, + Municipio { + ibge_code: 4213302, + name: "Ponte Alta", + state: State::SC, + }, + Municipio { + ibge_code: 4213351, + name: "Ponte Alta do Norte", + state: State::SC, + }, + Municipio { + ibge_code: 4213401, + name: "Ponte Serrada", + state: State::SC, + }, + Municipio { + ibge_code: 4213500, + name: "Porto Belo", + state: State::SC, + }, + Municipio { + ibge_code: 4213609, + name: "Porto União", + state: State::SC, + }, + Municipio { + ibge_code: 4213708, + name: "Pouso Redondo", + state: State::SC, + }, + Municipio { + ibge_code: 4213807, + name: "Praia Grande", + state: State::SC, + }, + Municipio { + ibge_code: 4213906, + name: "Presidente Castello Branco", + state: State::SC, + }, + Municipio { + ibge_code: 4214003, + name: "Presidente Getúlio", + state: State::SC, + }, + Municipio { + ibge_code: 4214102, + name: "Presidente Nereu", + state: State::SC, + }, + Municipio { + ibge_code: 4214151, + name: "Princesa", + state: State::SC, + }, + Municipio { + ibge_code: 4214201, + name: "Quilombo", + state: State::SC, + }, + Municipio { + ibge_code: 4214300, + name: "Rancho Queimado", + state: State::SC, + }, + Municipio { + ibge_code: 4214904, + name: "Rio Fortuna", + state: State::SC, + }, + Municipio { + ibge_code: 4215000, + name: "Rio Negrinho", + state: State::SC, + }, + Municipio { + ibge_code: 4215059, + name: "Rio Rufino", + state: State::SC, + }, + Municipio { + ibge_code: 4214409, + name: "Rio das Antas", + state: State::SC, + }, + Municipio { + ibge_code: 4214508, + name: "Rio do Campo", + state: State::SC, + }, + Municipio { + ibge_code: 4214607, + name: "Rio do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4214805, + name: "Rio do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4214706, + name: "Rio dos Cedros", + state: State::SC, + }, + Municipio { + ibge_code: 4215075, + name: "Riqueza", + state: State::SC, + }, + Municipio { + ibge_code: 4215109, + name: "Rodeio", + state: State::SC, + }, + Municipio { + ibge_code: 4215208, + name: "Romelândia", + state: State::SC, + }, + Municipio { + ibge_code: 4215307, + name: "Salete", + state: State::SC, + }, + Municipio { + ibge_code: 4215356, + name: "Saltinho", + state: State::SC, + }, + Municipio { + ibge_code: 4215406, + name: "Salto Veloso", + state: State::SC, + }, + Municipio { + ibge_code: 4215455, + name: "Sangão", + state: State::SC, + }, + Municipio { + ibge_code: 4215505, + name: "Santa Cecília", + state: State::SC, + }, + Municipio { + ibge_code: 4215554, + name: "Santa Helena", + state: State::SC, + }, + Municipio { + ibge_code: 4215604, + name: "Santa Rosa de Lima", + state: State::SC, + }, + Municipio { + ibge_code: 4215653, + name: "Santa Rosa do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4215679, + name: "Santa Terezinha", + state: State::SC, + }, + Municipio { + ibge_code: 4215687, + name: "Santa Terezinha do Progresso", + state: State::SC, + }, + Municipio { + ibge_code: 4215695, + name: "Santiago do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4215703, + name: "Santo Amaro da Imperatriz", + state: State::SC, + }, + Municipio { + ibge_code: 4217303, + name: "Saudades", + state: State::SC, + }, + Municipio { + ibge_code: 4217402, + name: "Schroeder", + state: State::SC, + }, + Municipio { + ibge_code: 4217501, + name: "Seara", + state: State::SC, + }, + Municipio { + ibge_code: 4217550, + name: "Serra Alta", + state: State::SC, + }, + Municipio { + ibge_code: 4217600, + name: "Siderópolis", + state: State::SC, + }, + Municipio { + ibge_code: 4217709, + name: "Sombrio", + state: State::SC, + }, + Municipio { + ibge_code: 4217758, + name: "Sul Brasil", + state: State::SC, + }, + Municipio { + ibge_code: 4215802, + name: "São Bento do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4215752, + name: "São Bernardino", + state: State::SC, + }, + Municipio { + ibge_code: 4215901, + name: "São Bonifácio", + state: State::SC, + }, + Municipio { + ibge_code: 4216008, + name: "São Carlos", + state: State::SC, + }, + Municipio { + ibge_code: 4216057, + name: "São Cristóvão do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4216107, + name: "São Domingos", + state: State::SC, + }, + Municipio { + ibge_code: 4216206, + name: "São Francisco do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4216503, + name: "São Joaquim", + state: State::SC, + }, + Municipio { + ibge_code: 4216602, + name: "São José", + state: State::SC, + }, + Municipio { + ibge_code: 4216701, + name: "São José do Cedro", + state: State::SC, + }, + Municipio { + ibge_code: 4216800, + name: "São José do Cerrito", + state: State::SC, + }, + Municipio { + ibge_code: 4216305, + name: "São João Batista", + state: State::SC, + }, + Municipio { + ibge_code: 4216354, + name: "São João do Itaperiú", + state: State::SC, + }, + Municipio { + ibge_code: 4216255, + name: "São João do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4216404, + name: "São João do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4216909, + name: "São Lourenço do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4217006, + name: "São Ludgero", + state: State::SC, + }, + Municipio { + ibge_code: 4217105, + name: "São Martinho", + state: State::SC, + }, + Municipio { + ibge_code: 4217154, + name: "São Miguel da Boa Vista", + state: State::SC, + }, + Municipio { + ibge_code: 4217204, + name: "São Miguel do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4217253, + name: "São Pedro de Alcântara", + state: State::SC, + }, + Municipio { + ibge_code: 4217808, + name: "Taió", + state: State::SC, + }, + Municipio { + ibge_code: 4217907, + name: "Tangará", + state: State::SC, + }, + Municipio { + ibge_code: 4217956, + name: "Tigrinhos", + state: State::SC, + }, + Municipio { + ibge_code: 4218004, + name: "Tijucas", + state: State::SC, + }, + Municipio { + ibge_code: 4218103, + name: "Timbé do Sul", + state: State::SC, + }, + Municipio { + ibge_code: 4218202, + name: "Timbó", + state: State::SC, + }, + Municipio { + ibge_code: 4218251, + name: "Timbó Grande", + state: State::SC, + }, + Municipio { + ibge_code: 4218350, + name: "Treviso", + state: State::SC, + }, + Municipio { + ibge_code: 4218509, + name: "Treze Tílias", + state: State::SC, + }, + Municipio { + ibge_code: 4218400, + name: "Treze de Maio", + state: State::SC, + }, + Municipio { + ibge_code: 4218608, + name: "Trombudo Central", + state: State::SC, + }, + Municipio { + ibge_code: 4218301, + name: "Três Barras", + state: State::SC, + }, + Municipio { + ibge_code: 4218707, + name: "Tubarão", + state: State::SC, + }, + Municipio { + ibge_code: 4218756, + name: "Tunápolis", + state: State::SC, + }, + Municipio { + ibge_code: 4218806, + name: "Turvo", + state: State::SC, + }, + Municipio { + ibge_code: 4218855, + name: "União do Oeste", + state: State::SC, + }, + Municipio { + ibge_code: 4218905, + name: "Urubici", + state: State::SC, + }, + Municipio { + ibge_code: 4218954, + name: "Urupema", + state: State::SC, + }, + Municipio { + ibge_code: 4219002, + name: "Urussanga", + state: State::SC, + }, + Municipio { + ibge_code: 4219150, + name: "Vargem", + state: State::SC, + }, + Municipio { + ibge_code: 4219176, + name: "Vargem Bonita", + state: State::SC, + }, + Municipio { + ibge_code: 4219101, + name: "Vargeão", + state: State::SC, + }, + Municipio { + ibge_code: 4219200, + name: "Vidal Ramos", + state: State::SC, + }, + Municipio { + ibge_code: 4219309, + name: "Videira", + state: State::SC, + }, + Municipio { + ibge_code: 4219358, + name: "Vitor Meireles", + state: State::SC, + }, + Municipio { + ibge_code: 4219408, + name: "Witmarsum", + state: State::SC, + }, + Municipio { + ibge_code: 4219507, + name: "Xanxerê", + state: State::SC, + }, + Municipio { + ibge_code: 4219606, + name: "Xavantina", + state: State::SC, + }, + Municipio { + ibge_code: 4219705, + name: "Xaxim", + state: State::SC, + }, + Municipio { + ibge_code: 4219853, + name: "Zortéa", + state: State::SC, + }, + Municipio { + ibge_code: 4200408, + name: "Água Doce", + state: State::SC, + }, + Municipio { + ibge_code: 4200556, + name: "Águas Frias", + state: State::SC, + }, + Municipio { + ibge_code: 4200606, + name: "Águas Mornas", + state: State::SC, + }, + Municipio { + ibge_code: 4200507, + name: "Águas de Chapecó", + state: State::SC, + }, + Municipio { + ibge_code: 2800100, + name: "Amparo do São Francisco", + state: State::SE, + }, + Municipio { + ibge_code: 2800209, + name: "Aquidabã", + state: State::SE, + }, + Municipio { + ibge_code: 2800308, + name: "Aracaju", + state: State::SE, + }, + Municipio { + ibge_code: 2800407, + name: "Arauá", + state: State::SE, + }, + Municipio { + ibge_code: 2800506, + name: "Areia Branca", + state: State::SE, + }, + Municipio { + ibge_code: 2800605, + name: "Barra dos Coqueiros", + state: State::SE, + }, + Municipio { + ibge_code: 2800670, + name: "Boquim", + state: State::SE, + }, + Municipio { + ibge_code: 2800704, + name: "Brejo Grande", + state: State::SE, + }, + Municipio { + ibge_code: 2801009, + name: "Campo do Brito", + state: State::SE, + }, + Municipio { + ibge_code: 2801108, + name: "Canhoba", + state: State::SE, + }, + Municipio { + ibge_code: 2801207, + name: "Canindé de São Francisco", + state: State::SE, + }, + Municipio { + ibge_code: 2801306, + name: "Capela", + state: State::SE, + }, + Municipio { + ibge_code: 2801405, + name: "Carira", + state: State::SE, + }, + Municipio { + ibge_code: 2801504, + name: "Carmópolis", + state: State::SE, + }, + Municipio { + ibge_code: 2801603, + name: "Cedro de São João", + state: State::SE, + }, + Municipio { + ibge_code: 2801702, + name: "Cristinápolis", + state: State::SE, + }, + Municipio { + ibge_code: 2801900, + name: "Cumbe", + state: State::SE, + }, + Municipio { + ibge_code: 2802007, + name: "Divina Pastora", + state: State::SE, + }, + Municipio { + ibge_code: 2802106, + name: "Estância", + state: State::SE, + }, + Municipio { + ibge_code: 2802205, + name: "Feira Nova", + state: State::SE, + }, + Municipio { + ibge_code: 2802304, + name: "Frei Paulo", + state: State::SE, + }, + Municipio { + ibge_code: 2802403, + name: "Gararu", + state: State::SE, + }, + Municipio { + ibge_code: 2802502, + name: "General Maynard", + state: State::SE, + }, + Municipio { + ibge_code: 2802601, + name: "Graccho Cardoso", + state: State::SE, + }, + Municipio { + ibge_code: 2802700, + name: "Ilha das Flores", + state: State::SE, + }, + Municipio { + ibge_code: 2802809, + name: "Indiaroba", + state: State::SE, + }, + Municipio { + ibge_code: 2802908, + name: "Itabaiana", + state: State::SE, + }, + Municipio { + ibge_code: 2803005, + name: "Itabaianinha", + state: State::SE, + }, + Municipio { + ibge_code: 2803104, + name: "Itabi", + state: State::SE, + }, + Municipio { + ibge_code: 2803203, + name: "Itaporanga d'Ajuda", + state: State::SE, + }, + Municipio { + ibge_code: 2803302, + name: "Japaratuba", + state: State::SE, + }, + Municipio { + ibge_code: 2803401, + name: "Japoatã", + state: State::SE, + }, + Municipio { + ibge_code: 2803500, + name: "Lagarto", + state: State::SE, + }, + Municipio { + ibge_code: 2803609, + name: "Laranjeiras", + state: State::SE, + }, + Municipio { + ibge_code: 2803708, + name: "Macambira", + state: State::SE, + }, + Municipio { + ibge_code: 2803807, + name: "Malhada dos Bois", + state: State::SE, + }, + Municipio { + ibge_code: 2803906, + name: "Malhador", + state: State::SE, + }, + Municipio { + ibge_code: 2804003, + name: "Maruim", + state: State::SE, + }, + Municipio { + ibge_code: 2804102, + name: "Moita Bonita", + state: State::SE, + }, + Municipio { + ibge_code: 2804201, + name: "Monte Alegre de Sergipe", + state: State::SE, + }, + Municipio { + ibge_code: 2804300, + name: "Muribeca", + state: State::SE, + }, + Municipio { + ibge_code: 2804409, + name: "Neópolis", + state: State::SE, + }, + Municipio { + ibge_code: 2804458, + name: "Nossa Senhora Aparecida", + state: State::SE, + }, + Municipio { + ibge_code: 2804508, + name: "Nossa Senhora da Glória", + state: State::SE, + }, + Municipio { + ibge_code: 2804607, + name: "Nossa Senhora das Dores", + state: State::SE, + }, + Municipio { + ibge_code: 2804706, + name: "Nossa Senhora de Lourdes", + state: State::SE, + }, + Municipio { + ibge_code: 2804805, + name: "Nossa Senhora do Socorro", + state: State::SE, + }, + Municipio { + ibge_code: 2804904, + name: "Pacatuba", + state: State::SE, + }, + Municipio { + ibge_code: 2805000, + name: "Pedra Mole", + state: State::SE, + }, + Municipio { + ibge_code: 2805109, + name: "Pedrinhas", + state: State::SE, + }, + Municipio { + ibge_code: 2805208, + name: "Pinhão", + state: State::SE, + }, + Municipio { + ibge_code: 2805307, + name: "Pirambu", + state: State::SE, + }, + Municipio { + ibge_code: 2805604, + name: "Porto da Folha", + state: State::SE, + }, + Municipio { + ibge_code: 2805406, + name: "Poço Redondo", + state: State::SE, + }, + Municipio { + ibge_code: 2805505, + name: "Poço Verde", + state: State::SE, + }, + Municipio { + ibge_code: 2805703, + name: "Propriá", + state: State::SE, + }, + Municipio { + ibge_code: 2805901, + name: "Riachuelo", + state: State::SE, + }, + Municipio { + ibge_code: 2805802, + name: "Riachão do Dantas", + state: State::SE, + }, + Municipio { + ibge_code: 2806008, + name: "Ribeirópolis", + state: State::SE, + }, + Municipio { + ibge_code: 2806107, + name: "Rosário do Catete", + state: State::SE, + }, + Municipio { + ibge_code: 2806206, + name: "Salgado", + state: State::SE, + }, + Municipio { + ibge_code: 2806305, + name: "Santa Luzia do Itanhy", + state: State::SE, + }, + Municipio { + ibge_code: 2806503, + name: "Santa Rosa de Lima", + state: State::SE, + }, + Municipio { + ibge_code: 2806404, + name: "Santana do São Francisco", + state: State::SE, + }, + Municipio { + ibge_code: 2806602, + name: "Santo Amaro das Brotas", + state: State::SE, + }, + Municipio { + ibge_code: 2807105, + name: "Simão Dias", + state: State::SE, + }, + Municipio { + ibge_code: 2807204, + name: "Siriri", + state: State::SE, + }, + Municipio { + ibge_code: 2806701, + name: "São Cristóvão", + state: State::SE, + }, + Municipio { + ibge_code: 2806800, + name: "São Domingos", + state: State::SE, + }, + Municipio { + ibge_code: 2806909, + name: "São Francisco", + state: State::SE, + }, + Municipio { + ibge_code: 2807006, + name: "São Miguel do Aleixo", + state: State::SE, + }, + Municipio { + ibge_code: 2807303, + name: "Telha", + state: State::SE, + }, + Municipio { + ibge_code: 2807402, + name: "Tobias Barreto", + state: State::SE, + }, + Municipio { + ibge_code: 2807501, + name: "Tomar do Geru", + state: State::SE, + }, + Municipio { + ibge_code: 2807600, + name: "Umbaúba", + state: State::SE, + }, + Municipio { + ibge_code: 3500105, + name: "Adamantina", + state: State::SP, + }, + Municipio { + ibge_code: 3500204, + name: "Adolfo", + state: State::SP, + }, + Municipio { + ibge_code: 3500303, + name: "Aguaí", + state: State::SP, + }, + Municipio { + ibge_code: 3500709, + name: "Agudos", + state: State::SP, + }, + Municipio { + ibge_code: 3500758, + name: "Alambari", + state: State::SP, + }, + Municipio { + ibge_code: 3500808, + name: "Alfredo Marcondes", + state: State::SP, + }, + Municipio { + ibge_code: 3500907, + name: "Altair", + state: State::SP, + }, + Municipio { + ibge_code: 3501004, + name: "Altinópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3501103, + name: "Alto Alegre", + state: State::SP, + }, + Municipio { + ibge_code: 3501152, + name: "Alumínio", + state: State::SP, + }, + Municipio { + ibge_code: 3501509, + name: "Alvinlândia", + state: State::SP, + }, + Municipio { + ibge_code: 3501608, + name: "Americana", + state: State::SP, + }, + Municipio { + ibge_code: 3501905, + name: "Amparo", + state: State::SP, + }, + Municipio { + ibge_code: 3501707, + name: "Américo Brasiliense", + state: State::SP, + }, + Municipio { + ibge_code: 3501806, + name: "Américo de Campos", + state: State::SP, + }, + Municipio { + ibge_code: 3502002, + name: "Analândia", + state: State::SP, + }, + Municipio { + ibge_code: 3502101, + name: "Andradina", + state: State::SP, + }, + Municipio { + ibge_code: 3502200, + name: "Angatuba", + state: State::SP, + }, + Municipio { + ibge_code: 3502309, + name: "Anhembi", + state: State::SP, + }, + Municipio { + ibge_code: 3502408, + name: "Anhumas", + state: State::SP, + }, + Municipio { + ibge_code: 3502507, + name: "Aparecida", + state: State::SP, + }, + Municipio { + ibge_code: 3502606, + name: "Aparecida d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3502705, + name: "Apiaí", + state: State::SP, + }, + Municipio { + ibge_code: 3503000, + name: "Aramina", + state: State::SP, + }, + Municipio { + ibge_code: 3503109, + name: "Arandu", + state: State::SP, + }, + Municipio { + ibge_code: 3503158, + name: "Arapeí", + state: State::SP, + }, + Municipio { + ibge_code: 3503208, + name: "Araraquara", + state: State::SP, + }, + Municipio { + ibge_code: 3503307, + name: "Araras", + state: State::SP, + }, + Municipio { + ibge_code: 3502754, + name: "Araçariguama", + state: State::SP, + }, + Municipio { + ibge_code: 3502804, + name: "Araçatuba", + state: State::SP, + }, + Municipio { + ibge_code: 3502903, + name: "Araçoiaba da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3503356, + name: "Arco-Íris", + state: State::SP, + }, + Municipio { + ibge_code: 3503406, + name: "Arealva", + state: State::SP, + }, + Municipio { + ibge_code: 3503505, + name: "Areias", + state: State::SP, + }, + Municipio { + ibge_code: 3503604, + name: "Areiópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3503703, + name: "Ariranha", + state: State::SP, + }, + Municipio { + ibge_code: 3503802, + name: "Artur Nogueira", + state: State::SP, + }, + Municipio { + ibge_code: 3503901, + name: "Arujá", + state: State::SP, + }, + Municipio { + ibge_code: 3503950, + name: "Aspásia", + state: State::SP, + }, + Municipio { + ibge_code: 3504008, + name: "Assis", + state: State::SP, + }, + Municipio { + ibge_code: 3504107, + name: "Atibaia", + state: State::SP, + }, + Municipio { + ibge_code: 3504206, + name: "Auriflama", + state: State::SP, + }, + Municipio { + ibge_code: 3504404, + name: "Avanhandava", + state: State::SP, + }, + Municipio { + ibge_code: 3504503, + name: "Avaré", + state: State::SP, + }, + Municipio { + ibge_code: 3504305, + name: "Avaí", + state: State::SP, + }, + Municipio { + ibge_code: 3504602, + name: "Bady Bassitt", + state: State::SP, + }, + Municipio { + ibge_code: 3504701, + name: "Balbinos", + state: State::SP, + }, + Municipio { + ibge_code: 3504909, + name: "Bananal", + state: State::SP, + }, + Municipio { + ibge_code: 3505104, + name: "Barbosa", + state: State::SP, + }, + Municipio { + ibge_code: 3505203, + name: "Bariri", + state: State::SP, + }, + Municipio { + ibge_code: 3505302, + name: "Barra Bonita", + state: State::SP, + }, + Municipio { + ibge_code: 3505351, + name: "Barra do Chapéu", + state: State::SP, + }, + Municipio { + ibge_code: 3505401, + name: "Barra do Turvo", + state: State::SP, + }, + Municipio { + ibge_code: 3505500, + name: "Barretos", + state: State::SP, + }, + Municipio { + ibge_code: 3505609, + name: "Barrinha", + state: State::SP, + }, + Municipio { + ibge_code: 3505708, + name: "Barueri", + state: State::SP, + }, + Municipio { + ibge_code: 3505005, + name: "Barão de Antonina", + state: State::SP, + }, + Municipio { + ibge_code: 3505807, + name: "Bastos", + state: State::SP, + }, + Municipio { + ibge_code: 3505906, + name: "Batatais", + state: State::SP, + }, + Municipio { + ibge_code: 3506003, + name: "Bauru", + state: State::SP, + }, + Municipio { + ibge_code: 3506102, + name: "Bebedouro", + state: State::SP, + }, + Municipio { + ibge_code: 3506201, + name: "Bento de Abreu", + state: State::SP, + }, + Municipio { + ibge_code: 3506300, + name: "Bernardino de Campos", + state: State::SP, + }, + Municipio { + ibge_code: 3506359, + name: "Bertioga", + state: State::SP, + }, + Municipio { + ibge_code: 3506409, + name: "Bilac", + state: State::SP, + }, + Municipio { + ibge_code: 3506508, + name: "Birigui", + state: State::SP, + }, + Municipio { + ibge_code: 3506607, + name: "Biritiba Mirim", + state: State::SP, + }, + Municipio { + ibge_code: 3506706, + name: "Boa Esperança do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3506805, + name: "Bocaina", + state: State::SP, + }, + Municipio { + ibge_code: 3506904, + name: "Bofete", + state: State::SP, + }, + Municipio { + ibge_code: 3507001, + name: "Boituva", + state: State::SP, + }, + Municipio { + ibge_code: 3507100, + name: "Bom Jesus dos Perdões", + state: State::SP, + }, + Municipio { + ibge_code: 3507159, + name: "Bom Sucesso de Itararé", + state: State::SP, + }, + Municipio { + ibge_code: 3507308, + name: "Boracéia", + state: State::SP, + }, + Municipio { + ibge_code: 3507407, + name: "Borborema", + state: State::SP, + }, + Municipio { + ibge_code: 3507456, + name: "Borebi", + state: State::SP, + }, + Municipio { + ibge_code: 3507209, + name: "Borá", + state: State::SP, + }, + Municipio { + ibge_code: 3507506, + name: "Botucatu", + state: State::SP, + }, + Municipio { + ibge_code: 3507605, + name: "Bragança Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3507704, + name: "Braúna", + state: State::SP, + }, + Municipio { + ibge_code: 3507753, + name: "Brejo Alegre", + state: State::SP, + }, + Municipio { + ibge_code: 3507803, + name: "Brodowski", + state: State::SP, + }, + Municipio { + ibge_code: 3507902, + name: "Brotas", + state: State::SP, + }, + Municipio { + ibge_code: 3508009, + name: "Buri", + state: State::SP, + }, + Municipio { + ibge_code: 3508108, + name: "Buritama", + state: State::SP, + }, + Municipio { + ibge_code: 3508207, + name: "Buritizal", + state: State::SP, + }, + Municipio { + ibge_code: 3504800, + name: "Bálsamo", + state: State::SP, + }, + Municipio { + ibge_code: 3508405, + name: "Cabreúva", + state: State::SP, + }, + Municipio { + ibge_code: 3508306, + name: "Cabrália Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3508603, + name: "Cachoeira Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3508702, + name: "Caconde", + state: State::SP, + }, + Municipio { + ibge_code: 3508801, + name: "Cafelândia", + state: State::SP, + }, + Municipio { + ibge_code: 3508900, + name: "Caiabu", + state: State::SP, + }, + Municipio { + ibge_code: 3509007, + name: "Caieiras", + state: State::SP, + }, + Municipio { + ibge_code: 3509106, + name: "Caiuá", + state: State::SP, + }, + Municipio { + ibge_code: 3509205, + name: "Cajamar", + state: State::SP, + }, + Municipio { + ibge_code: 3509254, + name: "Cajati", + state: State::SP, + }, + Municipio { + ibge_code: 3509304, + name: "Cajobi", + state: State::SP, + }, + Municipio { + ibge_code: 3509403, + name: "Cajuru", + state: State::SP, + }, + Municipio { + ibge_code: 3509452, + name: "Campina do Monte Alegre", + state: State::SP, + }, + Municipio { + ibge_code: 3509502, + name: "Campinas", + state: State::SP, + }, + Municipio { + ibge_code: 3509601, + name: "Campo Limpo Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3509809, + name: "Campos Novos Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3509700, + name: "Campos do Jordão", + state: State::SP, + }, + Municipio { + ibge_code: 3509908, + name: "Cananéia", + state: State::SP, + }, + Municipio { + ibge_code: 3509957, + name: "Canas", + state: State::SP, + }, + Municipio { + ibge_code: 3510153, + name: "Canitar", + state: State::SP, + }, + Municipio { + ibge_code: 3510302, + name: "Capela do Alto", + state: State::SP, + }, + Municipio { + ibge_code: 3510401, + name: "Capivari", + state: State::SP, + }, + Municipio { + ibge_code: 3510203, + name: "Capão Bonito", + state: State::SP, + }, + Municipio { + ibge_code: 3510500, + name: "Caraguatatuba", + state: State::SP, + }, + Municipio { + ibge_code: 3510609, + name: "Carapicuíba", + state: State::SP, + }, + Municipio { + ibge_code: 3510708, + name: "Cardoso", + state: State::SP, + }, + Municipio { + ibge_code: 3510807, + name: "Casa Branca", + state: State::SP, + }, + Municipio { + ibge_code: 3511003, + name: "Castilho", + state: State::SP, + }, + Municipio { + ibge_code: 3511102, + name: "Catanduva", + state: State::SP, + }, + Municipio { + ibge_code: 3511201, + name: "Catiguá", + state: State::SP, + }, + Municipio { + ibge_code: 3508504, + name: "Caçapava", + state: State::SP, + }, + Municipio { + ibge_code: 3511300, + name: "Cedral", + state: State::SP, + }, + Municipio { + ibge_code: 3511409, + name: "Cerqueira César", + state: State::SP, + }, + Municipio { + ibge_code: 3511508, + name: "Cerquilho", + state: State::SP, + }, + Municipio { + ibge_code: 3511607, + name: "Cesário Lange", + state: State::SP, + }, + Municipio { + ibge_code: 3511706, + name: "Charqueada", + state: State::SP, + }, + Municipio { + ibge_code: 3557204, + name: "Chavantes", + state: State::SP, + }, + Municipio { + ibge_code: 3511904, + name: "Clementina", + state: State::SP, + }, + Municipio { + ibge_code: 3512001, + name: "Colina", + state: State::SP, + }, + Municipio { + ibge_code: 3512100, + name: "Colômbia", + state: State::SP, + }, + Municipio { + ibge_code: 3512209, + name: "Conchal", + state: State::SP, + }, + Municipio { + ibge_code: 3512308, + name: "Conchas", + state: State::SP, + }, + Municipio { + ibge_code: 3512407, + name: "Cordeirópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3512506, + name: "Coroados", + state: State::SP, + }, + Municipio { + ibge_code: 3512605, + name: "Coronel Macedo", + state: State::SP, + }, + Municipio { + ibge_code: 3512704, + name: "Corumbataí", + state: State::SP, + }, + Municipio { + ibge_code: 3512902, + name: "Cosmorama", + state: State::SP, + }, + Municipio { + ibge_code: 3512803, + name: "Cosmópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3513009, + name: "Cotia", + state: State::SP, + }, + Municipio { + ibge_code: 3513108, + name: "Cravinhos", + state: State::SP, + }, + Municipio { + ibge_code: 3513207, + name: "Cristais Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3513405, + name: "Cruzeiro", + state: State::SP, + }, + Municipio { + ibge_code: 3513306, + name: "Cruzália", + state: State::SP, + }, + Municipio { + ibge_code: 3513504, + name: "Cubatão", + state: State::SP, + }, + Municipio { + ibge_code: 3513603, + name: "Cunha", + state: State::SP, + }, + Municipio { + ibge_code: 3510906, + name: "Cássia dos Coqueiros", + state: State::SP, + }, + Municipio { + ibge_code: 3510005, + name: "Cândido Mota", + state: State::SP, + }, + Municipio { + ibge_code: 3510104, + name: "Cândido Rodrigues", + state: State::SP, + }, + Municipio { + ibge_code: 3513702, + name: "Descalvado", + state: State::SP, + }, + Municipio { + ibge_code: 3513801, + name: "Diadema", + state: State::SP, + }, + Municipio { + ibge_code: 3513850, + name: "Dirce Reis", + state: State::SP, + }, + Municipio { + ibge_code: 3513900, + name: "Divinolândia", + state: State::SP, + }, + Municipio { + ibge_code: 3514007, + name: "Dobrada", + state: State::SP, + }, + Municipio { + ibge_code: 3514106, + name: "Dois Córregos", + state: State::SP, + }, + Municipio { + ibge_code: 3514205, + name: "Dolcinópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3514304, + name: "Dourado", + state: State::SP, + }, + Municipio { + ibge_code: 3514403, + name: "Dracena", + state: State::SP, + }, + Municipio { + ibge_code: 3514502, + name: "Duartina", + state: State::SP, + }, + Municipio { + ibge_code: 3514601, + name: "Dumont", + state: State::SP, + }, + Municipio { + ibge_code: 3514700, + name: "Echaporã", + state: State::SP, + }, + Municipio { + ibge_code: 3514809, + name: "Eldorado", + state: State::SP, + }, + Municipio { + ibge_code: 3514908, + name: "Elias Fausto", + state: State::SP, + }, + Municipio { + ibge_code: 3514924, + name: "Elisiário", + state: State::SP, + }, + Municipio { + ibge_code: 3514957, + name: "Embaúba", + state: State::SP, + }, + Municipio { + ibge_code: 3515004, + name: "Embu das Artes", + state: State::SP, + }, + Municipio { + ibge_code: 3515103, + name: "Embu-Guaçu", + state: State::SP, + }, + Municipio { + ibge_code: 3515129, + name: "Emilianópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3515152, + name: "Engenheiro Coelho", + state: State::SP, + }, + Municipio { + ibge_code: 3515186, + name: "Espírito Santo do Pinhal", + state: State::SP, + }, + Municipio { + ibge_code: 3515194, + name: "Espírito Santo do Turvo", + state: State::SP, + }, + Municipio { + ibge_code: 3557303, + name: "Estiva Gerbi", + state: State::SP, + }, + Municipio { + ibge_code: 3515202, + name: "Estrela d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3515301, + name: "Estrela do Norte", + state: State::SP, + }, + Municipio { + ibge_code: 3515350, + name: "Euclides da Cunha Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3515400, + name: "Fartura", + state: State::SP, + }, + Municipio { + ibge_code: 3515608, + name: "Fernando Prestes", + state: State::SP, + }, + Municipio { + ibge_code: 3515509, + name: "Fernandópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3515657, + name: "Fernão", + state: State::SP, + }, + Municipio { + ibge_code: 3515707, + name: "Ferraz de Vasconcelos", + state: State::SP, + }, + Municipio { + ibge_code: 3515806, + name: "Flora Rica", + state: State::SP, + }, + Municipio { + ibge_code: 3515905, + name: "Floreal", + state: State::SP, + }, + Municipio { + ibge_code: 3516101, + name: "Florínea", + state: State::SP, + }, + Municipio { + ibge_code: 3516002, + name: "Flórida Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3516200, + name: "Franca", + state: State::SP, + }, + Municipio { + ibge_code: 3516309, + name: "Francisco Morato", + state: State::SP, + }, + Municipio { + ibge_code: 3516408, + name: "Franco da Rocha", + state: State::SP, + }, + Municipio { + ibge_code: 3516507, + name: "Gabriel Monteiro", + state: State::SP, + }, + Municipio { + ibge_code: 3516705, + name: "Garça", + state: State::SP, + }, + Municipio { + ibge_code: 3516804, + name: "Gastão Vidigal", + state: State::SP, + }, + Municipio { + ibge_code: 3516853, + name: "Gavião Peixoto", + state: State::SP, + }, + Municipio { + ibge_code: 3516903, + name: "General Salgado", + state: State::SP, + }, + Municipio { + ibge_code: 3517000, + name: "Getulina", + state: State::SP, + }, + Municipio { + ibge_code: 3517109, + name: "Glicério", + state: State::SP, + }, + Municipio { + ibge_code: 3517307, + name: "Guaimbê", + state: State::SP, + }, + Municipio { + ibge_code: 3517208, + name: "Guaiçara", + state: State::SP, + }, + Municipio { + ibge_code: 3517604, + name: "Guapiara", + state: State::SP, + }, + Municipio { + ibge_code: 3517505, + name: "Guapiaçu", + state: State::SP, + }, + Municipio { + ibge_code: 3517901, + name: "Guaraci", + state: State::SP, + }, + Municipio { + ibge_code: 3518008, + name: "Guarani d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3518107, + name: "Guarantã", + state: State::SP, + }, + Municipio { + ibge_code: 3518206, + name: "Guararapes", + state: State::SP, + }, + Municipio { + ibge_code: 3518305, + name: "Guararema", + state: State::SP, + }, + Municipio { + ibge_code: 3518404, + name: "Guaratinguetá", + state: State::SP, + }, + Municipio { + ibge_code: 3517802, + name: "Guaraçaí", + state: State::SP, + }, + Municipio { + ibge_code: 3518503, + name: "Guareí", + state: State::SP, + }, + Municipio { + ibge_code: 3518602, + name: "Guariba", + state: State::SP, + }, + Municipio { + ibge_code: 3518701, + name: "Guarujá", + state: State::SP, + }, + Municipio { + ibge_code: 3518800, + name: "Guarulhos", + state: State::SP, + }, + Municipio { + ibge_code: 3517703, + name: "Guará", + state: State::SP, + }, + Municipio { + ibge_code: 3518859, + name: "Guatapará", + state: State::SP, + }, + Municipio { + ibge_code: 3517406, + name: "Guaíra", + state: State::SP, + }, + Municipio { + ibge_code: 3518909, + name: "Guzolândia", + state: State::SP, + }, + Municipio { + ibge_code: 3516606, + name: "Gália", + state: State::SP, + }, + Municipio { + ibge_code: 3519006, + name: "Herculândia", + state: State::SP, + }, + Municipio { + ibge_code: 3519055, + name: "Holambra", + state: State::SP, + }, + Municipio { + ibge_code: 3519071, + name: "Hortolândia", + state: State::SP, + }, + Municipio { + ibge_code: 3519105, + name: "Iacanga", + state: State::SP, + }, + Municipio { + ibge_code: 3519204, + name: "Iacri", + state: State::SP, + }, + Municipio { + ibge_code: 3519253, + name: "Iaras", + state: State::SP, + }, + Municipio { + ibge_code: 3519303, + name: "Ibaté", + state: State::SP, + }, + Municipio { + ibge_code: 3519501, + name: "Ibirarema", + state: State::SP, + }, + Municipio { + ibge_code: 3519402, + name: "Ibirá", + state: State::SP, + }, + Municipio { + ibge_code: 3519600, + name: "Ibitinga", + state: State::SP, + }, + Municipio { + ibge_code: 3519709, + name: "Ibiúna", + state: State::SP, + }, + Municipio { + ibge_code: 3519808, + name: "Icém", + state: State::SP, + }, + Municipio { + ibge_code: 3519907, + name: "Iepê", + state: State::SP, + }, + Municipio { + ibge_code: 3520103, + name: "Igarapava", + state: State::SP, + }, + Municipio { + ibge_code: 3520202, + name: "Igaratá", + state: State::SP, + }, + Municipio { + ibge_code: 3520004, + name: "Igaraçu do Tietê", + state: State::SP, + }, + Municipio { + ibge_code: 3520301, + name: "Iguape", + state: State::SP, + }, + Municipio { + ibge_code: 3520426, + name: "Ilha Comprida", + state: State::SP, + }, + Municipio { + ibge_code: 3520442, + name: "Ilha Solteira", + state: State::SP, + }, + Municipio { + ibge_code: 3520400, + name: "Ilhabela", + state: State::SP, + }, + Municipio { + ibge_code: 3520509, + name: "Indaiatuba", + state: State::SP, + }, + Municipio { + ibge_code: 3520608, + name: "Indiana", + state: State::SP, + }, + Municipio { + ibge_code: 3520707, + name: "Indiaporã", + state: State::SP, + }, + Municipio { + ibge_code: 3520806, + name: "Inúbia Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3520905, + name: "Ipaussu", + state: State::SP, + }, + Municipio { + ibge_code: 3521002, + name: "Iperó", + state: State::SP, + }, + Municipio { + ibge_code: 3521101, + name: "Ipeúna", + state: State::SP, + }, + Municipio { + ibge_code: 3521150, + name: "Ipiguá", + state: State::SP, + }, + Municipio { + ibge_code: 3521200, + name: "Iporanga", + state: State::SP, + }, + Municipio { + ibge_code: 3521309, + name: "Ipuã", + state: State::SP, + }, + Municipio { + ibge_code: 3521408, + name: "Iracemápolis", + state: State::SP, + }, + Municipio { + ibge_code: 3521606, + name: "Irapuru", + state: State::SP, + }, + Municipio { + ibge_code: 3521507, + name: "Irapuã", + state: State::SP, + }, + Municipio { + ibge_code: 3521705, + name: "Itaberá", + state: State::SP, + }, + Municipio { + ibge_code: 3521903, + name: "Itajobi", + state: State::SP, + }, + Municipio { + ibge_code: 3522000, + name: "Itaju", + state: State::SP, + }, + Municipio { + ibge_code: 3522109, + name: "Itanhaém", + state: State::SP, + }, + Municipio { + ibge_code: 3522158, + name: "Itaoca", + state: State::SP, + }, + Municipio { + ibge_code: 3522208, + name: "Itapecerica da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3522307, + name: "Itapetininga", + state: State::SP, + }, + Municipio { + ibge_code: 3522406, + name: "Itapeva", + state: State::SP, + }, + Municipio { + ibge_code: 3522505, + name: "Itapevi", + state: State::SP, + }, + Municipio { + ibge_code: 3522604, + name: "Itapira", + state: State::SP, + }, + Municipio { + ibge_code: 3522653, + name: "Itapirapuã Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3522802, + name: "Itaporanga", + state: State::SP, + }, + Municipio { + ibge_code: 3523008, + name: "Itapura", + state: State::SP, + }, + Municipio { + ibge_code: 3522901, + name: "Itapuí", + state: State::SP, + }, + Municipio { + ibge_code: 3523107, + name: "Itaquaquecetuba", + state: State::SP, + }, + Municipio { + ibge_code: 3523206, + name: "Itararé", + state: State::SP, + }, + Municipio { + ibge_code: 3523305, + name: "Itariri", + state: State::SP, + }, + Municipio { + ibge_code: 3523404, + name: "Itatiba", + state: State::SP, + }, + Municipio { + ibge_code: 3523503, + name: "Itatinga", + state: State::SP, + }, + Municipio { + ibge_code: 3521804, + name: "Itaí", + state: State::SP, + }, + Municipio { + ibge_code: 3523602, + name: "Itirapina", + state: State::SP, + }, + Municipio { + ibge_code: 3523701, + name: "Itirapuã", + state: State::SP, + }, + Municipio { + ibge_code: 3523800, + name: "Itobi", + state: State::SP, + }, + Municipio { + ibge_code: 3523909, + name: "Itu", + state: State::SP, + }, + Municipio { + ibge_code: 3524006, + name: "Itupeva", + state: State::SP, + }, + Municipio { + ibge_code: 3524105, + name: "Ituverava", + state: State::SP, + }, + Municipio { + ibge_code: 3522703, + name: "Itápolis", + state: State::SP, + }, + Municipio { + ibge_code: 3524204, + name: "Jaborandi", + state: State::SP, + }, + Municipio { + ibge_code: 3524303, + name: "Jaboticabal", + state: State::SP, + }, + Municipio { + ibge_code: 3524402, + name: "Jacareí", + state: State::SP, + }, + Municipio { + ibge_code: 3524501, + name: "Jaci", + state: State::SP, + }, + Municipio { + ibge_code: 3524600, + name: "Jacupiranga", + state: State::SP, + }, + Municipio { + ibge_code: 3524709, + name: "Jaguariúna", + state: State::SP, + }, + Municipio { + ibge_code: 3524808, + name: "Jales", + state: State::SP, + }, + Municipio { + ibge_code: 3524907, + name: "Jambeiro", + state: State::SP, + }, + Municipio { + ibge_code: 3525003, + name: "Jandira", + state: State::SP, + }, + Municipio { + ibge_code: 3525102, + name: "Jardinópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3525201, + name: "Jarinu", + state: State::SP, + }, + Municipio { + ibge_code: 3525300, + name: "Jaú", + state: State::SP, + }, + Municipio { + ibge_code: 3525409, + name: "Jeriquara", + state: State::SP, + }, + Municipio { + ibge_code: 3525508, + name: "Joanópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3525706, + name: "José Bonifácio", + state: State::SP, + }, + Municipio { + ibge_code: 3525607, + name: "João Ramalho", + state: State::SP, + }, + Municipio { + ibge_code: 3525854, + name: "Jumirim", + state: State::SP, + }, + Municipio { + ibge_code: 3525904, + name: "Jundiaí", + state: State::SP, + }, + Municipio { + ibge_code: 3526001, + name: "Junqueirópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3526209, + name: "Juquitiba", + state: State::SP, + }, + Municipio { + ibge_code: 3526100, + name: "Juquiá", + state: State::SP, + }, + Municipio { + ibge_code: 3525805, + name: "Júlio Mesquita", + state: State::SP, + }, + Municipio { + ibge_code: 3526308, + name: "Lagoinha", + state: State::SP, + }, + Municipio { + ibge_code: 3526407, + name: "Laranjal Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3526605, + name: "Lavrinhas", + state: State::SP, + }, + Municipio { + ibge_code: 3526506, + name: "Lavínia", + state: State::SP, + }, + Municipio { + ibge_code: 3526704, + name: "Leme", + state: State::SP, + }, + Municipio { + ibge_code: 3526803, + name: "Lençóis Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3526902, + name: "Limeira", + state: State::SP, + }, + Municipio { + ibge_code: 3527009, + name: "Lindóia", + state: State::SP, + }, + Municipio { + ibge_code: 3527108, + name: "Lins", + state: State::SP, + }, + Municipio { + ibge_code: 3527207, + name: "Lorena", + state: State::SP, + }, + Municipio { + ibge_code: 3527256, + name: "Lourdes", + state: State::SP, + }, + Municipio { + ibge_code: 3527306, + name: "Louveira", + state: State::SP, + }, + Municipio { + ibge_code: 3527504, + name: "Lucianópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3527405, + name: "Lucélia", + state: State::SP, + }, + Municipio { + ibge_code: 3527702, + name: "Luiziânia", + state: State::SP, + }, + Municipio { + ibge_code: 3527801, + name: "Lupércio", + state: State::SP, + }, + Municipio { + ibge_code: 3527900, + name: "Lutécia", + state: State::SP, + }, + Municipio { + ibge_code: 3527603, + name: "Luís Antônio", + state: State::SP, + }, + Municipio { + ibge_code: 3528007, + name: "Macatuba", + state: State::SP, + }, + Municipio { + ibge_code: 3528106, + name: "Macaubal", + state: State::SP, + }, + Municipio { + ibge_code: 3528205, + name: "Macedônia", + state: State::SP, + }, + Municipio { + ibge_code: 3528304, + name: "Magda", + state: State::SP, + }, + Municipio { + ibge_code: 3528403, + name: "Mairinque", + state: State::SP, + }, + Municipio { + ibge_code: 3528502, + name: "Mairiporã", + state: State::SP, + }, + Municipio { + ibge_code: 3528601, + name: "Manduri", + state: State::SP, + }, + Municipio { + ibge_code: 3528700, + name: "Marabá Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3528809, + name: "Maracaí", + state: State::SP, + }, + Municipio { + ibge_code: 3528858, + name: "Marapoama", + state: State::SP, + }, + Municipio { + ibge_code: 3529104, + name: "Marinópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3528908, + name: "Mariápolis", + state: State::SP, + }, + Municipio { + ibge_code: 3529203, + name: "Martinópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3529005, + name: "Marília", + state: State::SP, + }, + Municipio { + ibge_code: 3529302, + name: "Matão", + state: State::SP, + }, + Municipio { + ibge_code: 3529401, + name: "Mauá", + state: State::SP, + }, + Municipio { + ibge_code: 3529500, + name: "Mendonça", + state: State::SP, + }, + Municipio { + ibge_code: 3529609, + name: "Meridiano", + state: State::SP, + }, + Municipio { + ibge_code: 3529658, + name: "Mesópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3529708, + name: "Miguelópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3529807, + name: "Mineiros do Tietê", + state: State::SP, + }, + Municipio { + ibge_code: 3530003, + name: "Mira Estrela", + state: State::SP, + }, + Municipio { + ibge_code: 3529906, + name: "Miracatu", + state: State::SP, + }, + Municipio { + ibge_code: 3530102, + name: "Mirandópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3530201, + name: "Mirante do Paranapanema", + state: State::SP, + }, + Municipio { + ibge_code: 3530300, + name: "Mirassol", + state: State::SP, + }, + Municipio { + ibge_code: 3530409, + name: "Mirassolândia", + state: State::SP, + }, + Municipio { + ibge_code: 3530508, + name: "Mococa", + state: State::SP, + }, + Municipio { + ibge_code: 3530706, + name: "Mogi Guaçu", + state: State::SP, + }, + Municipio { + ibge_code: 3530805, + name: "Mogi Mirim", + state: State::SP, + }, + Municipio { + ibge_code: 3530607, + name: "Mogi das Cruzes", + state: State::SP, + }, + Municipio { + ibge_code: 3530904, + name: "Mombuca", + state: State::SP, + }, + Municipio { + ibge_code: 3531100, + name: "Mongaguá", + state: State::SP, + }, + Municipio { + ibge_code: 3531209, + name: "Monte Alegre do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3531308, + name: "Monte Alto", + state: State::SP, + }, + Municipio { + ibge_code: 3531407, + name: "Monte Aprazível", + state: State::SP, + }, + Municipio { + ibge_code: 3531506, + name: "Monte Azul Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3531605, + name: "Monte Castelo", + state: State::SP, + }, + Municipio { + ibge_code: 3531803, + name: "Monte Mor", + state: State::SP, + }, + Municipio { + ibge_code: 3531704, + name: "Monteiro Lobato", + state: State::SP, + }, + Municipio { + ibge_code: 3531001, + name: "Monções", + state: State::SP, + }, + Municipio { + ibge_code: 3531902, + name: "Morro Agudo", + state: State::SP, + }, + Municipio { + ibge_code: 3532009, + name: "Morungaba", + state: State::SP, + }, + Municipio { + ibge_code: 3532058, + name: "Motuca", + state: State::SP, + }, + Municipio { + ibge_code: 3532108, + name: "Murutinga do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3532157, + name: "Nantes", + state: State::SP, + }, + Municipio { + ibge_code: 3532207, + name: "Narandiba", + state: State::SP, + }, + Municipio { + ibge_code: 3532306, + name: "Natividade da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3532405, + name: "Nazaré Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3532504, + name: "Neves Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3532603, + name: "Nhandeara", + state: State::SP, + }, + Municipio { + ibge_code: 3532702, + name: "Nipoã", + state: State::SP, + }, + Municipio { + ibge_code: 3532801, + name: "Nova Aliança", + state: State::SP, + }, + Municipio { + ibge_code: 3532827, + name: "Nova Campina", + state: State::SP, + }, + Municipio { + ibge_code: 3532843, + name: "Nova Canaã Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3532868, + name: "Nova Castilho", + state: State::SP, + }, + Municipio { + ibge_code: 3532900, + name: "Nova Europa", + state: State::SP, + }, + Municipio { + ibge_code: 3533007, + name: "Nova Granada", + state: State::SP, + }, + Municipio { + ibge_code: 3533106, + name: "Nova Guataporanga", + state: State::SP, + }, + Municipio { + ibge_code: 3533205, + name: "Nova Independência", + state: State::SP, + }, + Municipio { + ibge_code: 3533304, + name: "Nova Luzitânia", + state: State::SP, + }, + Municipio { + ibge_code: 3533403, + name: "Nova Odessa", + state: State::SP, + }, + Municipio { + ibge_code: 3533254, + name: "Novais", + state: State::SP, + }, + Municipio { + ibge_code: 3533502, + name: "Novo Horizonte", + state: State::SP, + }, + Municipio { + ibge_code: 3533601, + name: "Nuporanga", + state: State::SP, + }, + Municipio { + ibge_code: 3533700, + name: "Ocauçu", + state: State::SP, + }, + Municipio { + ibge_code: 3533908, + name: "Olímpia", + state: State::SP, + }, + Municipio { + ibge_code: 3534005, + name: "Onda Verde", + state: State::SP, + }, + Municipio { + ibge_code: 3534104, + name: "Oriente", + state: State::SP, + }, + Municipio { + ibge_code: 3534203, + name: "Orindiúva", + state: State::SP, + }, + Municipio { + ibge_code: 3534302, + name: "Orlândia", + state: State::SP, + }, + Municipio { + ibge_code: 3534401, + name: "Osasco", + state: State::SP, + }, + Municipio { + ibge_code: 3534500, + name: "Oscar Bressane", + state: State::SP, + }, + Municipio { + ibge_code: 3534609, + name: "Osvaldo Cruz", + state: State::SP, + }, + Municipio { + ibge_code: 3534708, + name: "Ourinhos", + state: State::SP, + }, + Municipio { + ibge_code: 3534807, + name: "Ouro Verde", + state: State::SP, + }, + Municipio { + ibge_code: 3534757, + name: "Ouroeste", + state: State::SP, + }, + Municipio { + ibge_code: 3534906, + name: "Pacaembu", + state: State::SP, + }, + Municipio { + ibge_code: 3535002, + name: "Palestina", + state: State::SP, + }, + Municipio { + ibge_code: 3535101, + name: "Palmares Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3535200, + name: "Palmeira d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3535309, + name: "Palmital", + state: State::SP, + }, + Municipio { + ibge_code: 3535408, + name: "Panorama", + state: State::SP, + }, + Municipio { + ibge_code: 3535507, + name: "Paraguaçu Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3535606, + name: "Paraibuna", + state: State::SP, + }, + Municipio { + ibge_code: 3535804, + name: "Paranapanema", + state: State::SP, + }, + Municipio { + ibge_code: 3535903, + name: "Paranapuã", + state: State::SP, + }, + Municipio { + ibge_code: 3536000, + name: "Parapuã", + state: State::SP, + }, + Municipio { + ibge_code: 3535705, + name: "Paraíso", + state: State::SP, + }, + Municipio { + ibge_code: 3536109, + name: "Pardinho", + state: State::SP, + }, + Municipio { + ibge_code: 3536208, + name: "Pariquera-Açu", + state: State::SP, + }, + Municipio { + ibge_code: 3536257, + name: "Parisi", + state: State::SP, + }, + Municipio { + ibge_code: 3536307, + name: "Patrocínio Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3536406, + name: "Paulicéia", + state: State::SP, + }, + Municipio { + ibge_code: 3536570, + name: "Paulistânia", + state: State::SP, + }, + Municipio { + ibge_code: 3536604, + name: "Paulo de Faria", + state: State::SP, + }, + Municipio { + ibge_code: 3536505, + name: "Paulínia", + state: State::SP, + }, + Municipio { + ibge_code: 3536703, + name: "Pederneiras", + state: State::SP, + }, + Municipio { + ibge_code: 3536802, + name: "Pedra Bela", + state: State::SP, + }, + Municipio { + ibge_code: 3536901, + name: "Pedranópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3537008, + name: "Pedregulho", + state: State::SP, + }, + Municipio { + ibge_code: 3537107, + name: "Pedreira", + state: State::SP, + }, + Municipio { + ibge_code: 3537156, + name: "Pedrinhas Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3537206, + name: "Pedro de Toledo", + state: State::SP, + }, + Municipio { + ibge_code: 3537305, + name: "Penápolis", + state: State::SP, + }, + Municipio { + ibge_code: 3537404, + name: "Pereira Barreto", + state: State::SP, + }, + Municipio { + ibge_code: 3537503, + name: "Pereiras", + state: State::SP, + }, + Municipio { + ibge_code: 3537602, + name: "Peruíbe", + state: State::SP, + }, + Municipio { + ibge_code: 3537701, + name: "Piacatu", + state: State::SP, + }, + Municipio { + ibge_code: 3537800, + name: "Piedade", + state: State::SP, + }, + Municipio { + ibge_code: 3537909, + name: "Pilar do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3538006, + name: "Pindamonhangaba", + state: State::SP, + }, + Municipio { + ibge_code: 3538105, + name: "Pindorama", + state: State::SP, + }, + Municipio { + ibge_code: 3538204, + name: "Pinhalzinho", + state: State::SP, + }, + Municipio { + ibge_code: 3538303, + name: "Piquerobi", + state: State::SP, + }, + Municipio { + ibge_code: 3538501, + name: "Piquete", + state: State::SP, + }, + Municipio { + ibge_code: 3538600, + name: "Piracaia", + state: State::SP, + }, + Municipio { + ibge_code: 3538709, + name: "Piracicaba", + state: State::SP, + }, + Municipio { + ibge_code: 3538808, + name: "Piraju", + state: State::SP, + }, + Municipio { + ibge_code: 3538907, + name: "Pirajuí", + state: State::SP, + }, + Municipio { + ibge_code: 3539004, + name: "Pirangi", + state: State::SP, + }, + Municipio { + ibge_code: 3539103, + name: "Pirapora do Bom Jesus", + state: State::SP, + }, + Municipio { + ibge_code: 3539202, + name: "Pirapozinho", + state: State::SP, + }, + Municipio { + ibge_code: 3539301, + name: "Pirassununga", + state: State::SP, + }, + Municipio { + ibge_code: 3539400, + name: "Piratininga", + state: State::SP, + }, + Municipio { + ibge_code: 3539509, + name: "Pitangueiras", + state: State::SP, + }, + Municipio { + ibge_code: 3539608, + name: "Planalto", + state: State::SP, + }, + Municipio { + ibge_code: 3539707, + name: "Platina", + state: State::SP, + }, + Municipio { + ibge_code: 3539905, + name: "Poloni", + state: State::SP, + }, + Municipio { + ibge_code: 3540002, + name: "Pompéia", + state: State::SP, + }, + Municipio { + ibge_code: 3540101, + name: "Pongaí", + state: State::SP, + }, + Municipio { + ibge_code: 3540200, + name: "Pontal", + state: State::SP, + }, + Municipio { + ibge_code: 3540259, + name: "Pontalinda", + state: State::SP, + }, + Municipio { + ibge_code: 3540309, + name: "Pontes Gestal", + state: State::SP, + }, + Municipio { + ibge_code: 3540408, + name: "Populina", + state: State::SP, + }, + Municipio { + ibge_code: 3540507, + name: "Porangaba", + state: State::SP, + }, + Municipio { + ibge_code: 3540606, + name: "Porto Feliz", + state: State::SP, + }, + Municipio { + ibge_code: 3540705, + name: "Porto Ferreira", + state: State::SP, + }, + Municipio { + ibge_code: 3540754, + name: "Potim", + state: State::SP, + }, + Municipio { + ibge_code: 3540804, + name: "Potirendaba", + state: State::SP, + }, + Municipio { + ibge_code: 3539806, + name: "Poá", + state: State::SP, + }, + Municipio { + ibge_code: 3540853, + name: "Pracinha", + state: State::SP, + }, + Municipio { + ibge_code: 3540903, + name: "Pradópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3541000, + name: "Praia Grande", + state: State::SP, + }, + Municipio { + ibge_code: 3541059, + name: "Pratânia", + state: State::SP, + }, + Municipio { + ibge_code: 3541109, + name: "Presidente Alves", + state: State::SP, + }, + Municipio { + ibge_code: 3541208, + name: "Presidente Bernardes", + state: State::SP, + }, + Municipio { + ibge_code: 3541307, + name: "Presidente Epitácio", + state: State::SP, + }, + Municipio { + ibge_code: 3541406, + name: "Presidente Prudente", + state: State::SP, + }, + Municipio { + ibge_code: 3541505, + name: "Presidente Venceslau", + state: State::SP, + }, + Municipio { + ibge_code: 3541604, + name: "Promissão", + state: State::SP, + }, + Municipio { + ibge_code: 3541653, + name: "Quadra", + state: State::SP, + }, + Municipio { + ibge_code: 3541703, + name: "Quatá", + state: State::SP, + }, + Municipio { + ibge_code: 3541802, + name: "Queiroz", + state: State::SP, + }, + Municipio { + ibge_code: 3541901, + name: "Queluz", + state: State::SP, + }, + Municipio { + ibge_code: 3542008, + name: "Quintana", + state: State::SP, + }, + Municipio { + ibge_code: 3542107, + name: "Rafard", + state: State::SP, + }, + Municipio { + ibge_code: 3542206, + name: "Rancharia", + state: State::SP, + }, + Municipio { + ibge_code: 3542305, + name: "Redenção da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3542404, + name: "Regente Feijó", + state: State::SP, + }, + Municipio { + ibge_code: 3542503, + name: "Reginópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3542602, + name: "Registro", + state: State::SP, + }, + Municipio { + ibge_code: 3542701, + name: "Restinga", + state: State::SP, + }, + Municipio { + ibge_code: 3542800, + name: "Ribeira", + state: State::SP, + }, + Municipio { + ibge_code: 3542909, + name: "Ribeirão Bonito", + state: State::SP, + }, + Municipio { + ibge_code: 3543006, + name: "Ribeirão Branco", + state: State::SP, + }, + Municipio { + ibge_code: 3543105, + name: "Ribeirão Corrente", + state: State::SP, + }, + Municipio { + ibge_code: 3543253, + name: "Ribeirão Grande", + state: State::SP, + }, + Municipio { + ibge_code: 3543303, + name: "Ribeirão Pires", + state: State::SP, + }, + Municipio { + ibge_code: 3543402, + name: "Ribeirão Preto", + state: State::SP, + }, + Municipio { + ibge_code: 3543204, + name: "Ribeirão do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3543238, + name: "Ribeirão dos Índios", + state: State::SP, + }, + Municipio { + ibge_code: 3543600, + name: "Rifaina", + state: State::SP, + }, + Municipio { + ibge_code: 3543709, + name: "Rincão", + state: State::SP, + }, + Municipio { + ibge_code: 3543808, + name: "Rinópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3543907, + name: "Rio Claro", + state: State::SP, + }, + Municipio { + ibge_code: 3544103, + name: "Rio Grande da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3544004, + name: "Rio das Pedras", + state: State::SP, + }, + Municipio { + ibge_code: 3544202, + name: "Riolândia", + state: State::SP, + }, + Municipio { + ibge_code: 3543501, + name: "Riversul", + state: State::SP, + }, + Municipio { + ibge_code: 3544251, + name: "Rosana", + state: State::SP, + }, + Municipio { + ibge_code: 3544301, + name: "Roseira", + state: State::SP, + }, + Municipio { + ibge_code: 3544509, + name: "Rubinéia", + state: State::SP, + }, + Municipio { + ibge_code: 3544400, + name: "Rubiácea", + state: State::SP, + }, + Municipio { + ibge_code: 3544608, + name: "Sabino", + state: State::SP, + }, + Municipio { + ibge_code: 3544707, + name: "Sagres", + state: State::SP, + }, + Municipio { + ibge_code: 3544806, + name: "Sales", + state: State::SP, + }, + Municipio { + ibge_code: 3544905, + name: "Sales Oliveira", + state: State::SP, + }, + Municipio { + ibge_code: 3545001, + name: "Salesópolis", + state: State::SP, + }, + Municipio { + ibge_code: 3545100, + name: "Salmourão", + state: State::SP, + }, + Municipio { + ibge_code: 3545159, + name: "Saltinho", + state: State::SP, + }, + Municipio { + ibge_code: 3545209, + name: "Salto", + state: State::SP, + }, + Municipio { + ibge_code: 3545407, + name: "Salto Grande", + state: State::SP, + }, + Municipio { + ibge_code: 3545308, + name: "Salto de Pirapora", + state: State::SP, + }, + Municipio { + ibge_code: 3545506, + name: "Sandovalina", + state: State::SP, + }, + Municipio { + ibge_code: 3545605, + name: "Santa Adélia", + state: State::SP, + }, + Municipio { + ibge_code: 3545704, + name: "Santa Albertina", + state: State::SP, + }, + Municipio { + ibge_code: 3546009, + name: "Santa Branca", + state: State::SP, + }, + Municipio { + ibge_code: 3545803, + name: "Santa Bárbara d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3546108, + name: "Santa Clara d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3546207, + name: "Santa Cruz da Conceição", + state: State::SP, + }, + Municipio { + ibge_code: 3546256, + name: "Santa Cruz da Esperança", + state: State::SP, + }, + Municipio { + ibge_code: 3546306, + name: "Santa Cruz das Palmeiras", + state: State::SP, + }, + Municipio { + ibge_code: 3546405, + name: "Santa Cruz do Rio Pardo", + state: State::SP, + }, + Municipio { + ibge_code: 3546504, + name: "Santa Ernestina", + state: State::SP, + }, + Municipio { + ibge_code: 3546603, + name: "Santa Fé do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3546702, + name: "Santa Gertrudes", + state: State::SP, + }, + Municipio { + ibge_code: 3546801, + name: "Santa Isabel", + state: State::SP, + }, + Municipio { + ibge_code: 3546900, + name: "Santa Lúcia", + state: State::SP, + }, + Municipio { + ibge_code: 3547007, + name: "Santa Maria da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3547106, + name: "Santa Mercedes", + state: State::SP, + }, + Municipio { + ibge_code: 3547403, + name: "Santa Rita d'Oeste", + state: State::SP, + }, + Municipio { + ibge_code: 3547502, + name: "Santa Rita do Passa Quatro", + state: State::SP, + }, + Municipio { + ibge_code: 3547601, + name: "Santa Rosa de Viterbo", + state: State::SP, + }, + Municipio { + ibge_code: 3547650, + name: "Santa Salete", + state: State::SP, + }, + Municipio { + ibge_code: 3547205, + name: "Santana da Ponte Pensa", + state: State::SP, + }, + Municipio { + ibge_code: 3547304, + name: "Santana de Parnaíba", + state: State::SP, + }, + Municipio { + ibge_code: 3547700, + name: "Santo Anastácio", + state: State::SP, + }, + Municipio { + ibge_code: 3547809, + name: "Santo André", + state: State::SP, + }, + Municipio { + ibge_code: 3547908, + name: "Santo Antônio da Alegria", + state: State::SP, + }, + Municipio { + ibge_code: 3548005, + name: "Santo Antônio de Posse", + state: State::SP, + }, + Municipio { + ibge_code: 3548054, + name: "Santo Antônio do Aracanguá", + state: State::SP, + }, + Municipio { + ibge_code: 3548104, + name: "Santo Antônio do Jardim", + state: State::SP, + }, + Municipio { + ibge_code: 3548203, + name: "Santo Antônio do Pinhal", + state: State::SP, + }, + Municipio { + ibge_code: 3548302, + name: "Santo Expedito", + state: State::SP, + }, + Municipio { + ibge_code: 3548500, + name: "Santos", + state: State::SP, + }, + Municipio { + ibge_code: 3548401, + name: "Santópolis do Aguapeí", + state: State::SP, + }, + Municipio { + ibge_code: 3551108, + name: "Sarapuí", + state: State::SP, + }, + Municipio { + ibge_code: 3551207, + name: "Sarutaiá", + state: State::SP, + }, + Municipio { + ibge_code: 3551306, + name: "Sebastianópolis do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3551405, + name: "Serra Azul", + state: State::SP, + }, + Municipio { + ibge_code: 3551603, + name: "Serra Negra", + state: State::SP, + }, + Municipio { + ibge_code: 3551504, + name: "Serrana", + state: State::SP, + }, + Municipio { + ibge_code: 3551702, + name: "Sertãozinho", + state: State::SP, + }, + Municipio { + ibge_code: 3551801, + name: "Sete Barras", + state: State::SP, + }, + Municipio { + ibge_code: 3551900, + name: "Severínia", + state: State::SP, + }, + Municipio { + ibge_code: 3552007, + name: "Silveiras", + state: State::SP, + }, + Municipio { + ibge_code: 3552106, + name: "Socorro", + state: State::SP, + }, + Municipio { + ibge_code: 3552205, + name: "Sorocaba", + state: State::SP, + }, + Municipio { + ibge_code: 3552304, + name: "Sud Mennucci", + state: State::SP, + }, + Municipio { + ibge_code: 3552403, + name: "Sumaré", + state: State::SP, + }, + Municipio { + ibge_code: 3552502, + name: "Suzano", + state: State::SP, + }, + Municipio { + ibge_code: 3552551, + name: "Suzanápolis", + state: State::SP, + }, + Municipio { + ibge_code: 3548609, + name: "São Bento do Sapucaí", + state: State::SP, + }, + Municipio { + ibge_code: 3548708, + name: "São Bernardo do Campo", + state: State::SP, + }, + Municipio { + ibge_code: 3548807, + name: "São Caetano do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3548906, + name: "São Carlos", + state: State::SP, + }, + Municipio { + ibge_code: 3549003, + name: "São Francisco", + state: State::SP, + }, + Municipio { + ibge_code: 3549409, + name: "São Joaquim da Barra", + state: State::SP, + }, + Municipio { + ibge_code: 3549508, + name: "São José da Bela Vista", + state: State::SP, + }, + Municipio { + ibge_code: 3549607, + name: "São José do Barreiro", + state: State::SP, + }, + Municipio { + ibge_code: 3549706, + name: "São José do Rio Pardo", + state: State::SP, + }, + Municipio { + ibge_code: 3549805, + name: "São José do Rio Preto", + state: State::SP, + }, + Municipio { + ibge_code: 3549904, + name: "São José dos Campos", + state: State::SP, + }, + Municipio { + ibge_code: 3549102, + name: "São João da Boa Vista", + state: State::SP, + }, + Municipio { + ibge_code: 3549201, + name: "São João das Duas Pontes", + state: State::SP, + }, + Municipio { + ibge_code: 3549250, + name: "São João de Iracema", + state: State::SP, + }, + Municipio { + ibge_code: 3549300, + name: "São João do Pau d'Alho", + state: State::SP, + }, + Municipio { + ibge_code: 3549953, + name: "São Lourenço da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3550001, + name: "São Luiz do Paraitinga", + state: State::SP, + }, + Municipio { + ibge_code: 3550100, + name: "São Manuel", + state: State::SP, + }, + Municipio { + ibge_code: 3550209, + name: "São Miguel Arcanjo", + state: State::SP, + }, + Municipio { + ibge_code: 3550308, + name: "São Paulo", + state: State::SP, + }, + Municipio { + ibge_code: 3550407, + name: "São Pedro", + state: State::SP, + }, + Municipio { + ibge_code: 3550506, + name: "São Pedro do Turvo", + state: State::SP, + }, + Municipio { + ibge_code: 3550605, + name: "São Roque", + state: State::SP, + }, + Municipio { + ibge_code: 3550704, + name: "São Sebastião", + state: State::SP, + }, + Municipio { + ibge_code: 3550803, + name: "São Sebastião da Grama", + state: State::SP, + }, + Municipio { + ibge_code: 3550902, + name: "São Simão", + state: State::SP, + }, + Municipio { + ibge_code: 3551009, + name: "São Vicente", + state: State::SP, + }, + Municipio { + ibge_code: 3552601, + name: "Tabapuã", + state: State::SP, + }, + Municipio { + ibge_code: 3552700, + name: "Tabatinga", + state: State::SP, + }, + Municipio { + ibge_code: 3552809, + name: "Taboão da Serra", + state: State::SP, + }, + Municipio { + ibge_code: 3552908, + name: "Taciba", + state: State::SP, + }, + Municipio { + ibge_code: 3553005, + name: "Taguaí", + state: State::SP, + }, + Municipio { + ibge_code: 3553104, + name: "Taiaçu", + state: State::SP, + }, + Municipio { + ibge_code: 3553203, + name: "Taiúva", + state: State::SP, + }, + Municipio { + ibge_code: 3553302, + name: "Tambaú", + state: State::SP, + }, + Municipio { + ibge_code: 3553401, + name: "Tanabi", + state: State::SP, + }, + Municipio { + ibge_code: 3553609, + name: "Tapiratiba", + state: State::SP, + }, + Municipio { + ibge_code: 3553500, + name: "Tapiraí", + state: State::SP, + }, + Municipio { + ibge_code: 3553658, + name: "Taquaral", + state: State::SP, + }, + Municipio { + ibge_code: 3553708, + name: "Taquaritinga", + state: State::SP, + }, + Municipio { + ibge_code: 3553807, + name: "Taquarituba", + state: State::SP, + }, + Municipio { + ibge_code: 3553856, + name: "Taquarivaí", + state: State::SP, + }, + Municipio { + ibge_code: 3553906, + name: "Tarabai", + state: State::SP, + }, + Municipio { + ibge_code: 3553955, + name: "Tarumã", + state: State::SP, + }, + Municipio { + ibge_code: 3554003, + name: "Tatuí", + state: State::SP, + }, + Municipio { + ibge_code: 3554102, + name: "Taubaté", + state: State::SP, + }, + Municipio { + ibge_code: 3554201, + name: "Tejupá", + state: State::SP, + }, + Municipio { + ibge_code: 3554300, + name: "Teodoro Sampaio", + state: State::SP, + }, + Municipio { + ibge_code: 3554409, + name: "Terra Roxa", + state: State::SP, + }, + Municipio { + ibge_code: 3554508, + name: "Tietê", + state: State::SP, + }, + Municipio { + ibge_code: 3554607, + name: "Timburi", + state: State::SP, + }, + Municipio { + ibge_code: 3554656, + name: "Torre de Pedra", + state: State::SP, + }, + Municipio { + ibge_code: 3554706, + name: "Torrinha", + state: State::SP, + }, + Municipio { + ibge_code: 3554755, + name: "Trabiju", + state: State::SP, + }, + Municipio { + ibge_code: 3554805, + name: "Tremembé", + state: State::SP, + }, + Municipio { + ibge_code: 3554904, + name: "Três Fronteiras", + state: State::SP, + }, + Municipio { + ibge_code: 3554953, + name: "Tuiuti", + state: State::SP, + }, + Municipio { + ibge_code: 3555109, + name: "Tupi Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3555000, + name: "Tupã", + state: State::SP, + }, + Municipio { + ibge_code: 3555208, + name: "Turiúba", + state: State::SP, + }, + Municipio { + ibge_code: 3555307, + name: "Turmalina", + state: State::SP, + }, + Municipio { + ibge_code: 3555356, + name: "Ubarana", + state: State::SP, + }, + Municipio { + ibge_code: 3555406, + name: "Ubatuba", + state: State::SP, + }, + Municipio { + ibge_code: 3555505, + name: "Ubirajara", + state: State::SP, + }, + Municipio { + ibge_code: 3555604, + name: "Uchoa", + state: State::SP, + }, + Municipio { + ibge_code: 3555703, + name: "União Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3555901, + name: "Uru", + state: State::SP, + }, + Municipio { + ibge_code: 3556008, + name: "Urupês", + state: State::SP, + }, + Municipio { + ibge_code: 3555802, + name: "Urânia", + state: State::SP, + }, + Municipio { + ibge_code: 3556107, + name: "Valentim Gentil", + state: State::SP, + }, + Municipio { + ibge_code: 3556206, + name: "Valinhos", + state: State::SP, + }, + Municipio { + ibge_code: 3556305, + name: "Valparaíso", + state: State::SP, + }, + Municipio { + ibge_code: 3556354, + name: "Vargem", + state: State::SP, + }, + Municipio { + ibge_code: 3556453, + name: "Vargem Grande Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3556404, + name: "Vargem Grande do Sul", + state: State::SP, + }, + Municipio { + ibge_code: 3556602, + name: "Vera Cruz", + state: State::SP, + }, + Municipio { + ibge_code: 3556701, + name: "Vinhedo", + state: State::SP, + }, + Municipio { + ibge_code: 3556800, + name: "Viradouro", + state: State::SP, + }, + Municipio { + ibge_code: 3556909, + name: "Vista Alegre do Alto", + state: State::SP, + }, + Municipio { + ibge_code: 3556958, + name: "Vitória Brasil", + state: State::SP, + }, + Municipio { + ibge_code: 3557006, + name: "Votorantim", + state: State::SP, + }, + Municipio { + ibge_code: 3557105, + name: "Votuporanga", + state: State::SP, + }, + Municipio { + ibge_code: 3556503, + name: "Várzea Paulista", + state: State::SP, + }, + Municipio { + ibge_code: 3557154, + name: "Zacarias", + state: State::SP, + }, + Municipio { + ibge_code: 3500402, + name: "Águas da Prata", + state: State::SP, + }, + Municipio { + ibge_code: 3500501, + name: "Águas de Lindóia", + state: State::SP, + }, + Municipio { + ibge_code: 3500550, + name: "Águas de Santa Bárbara", + state: State::SP, + }, + Municipio { + ibge_code: 3500600, + name: "Águas de São Pedro", + state: State::SP, + }, + Municipio { + ibge_code: 3501202, + name: "Álvares Florence", + state: State::SP, + }, + Municipio { + ibge_code: 3501301, + name: "Álvares Machado", + state: State::SP, + }, + Municipio { + ibge_code: 3501400, + name: "Álvaro de Carvalho", + state: State::SP, + }, + Municipio { + ibge_code: 3533809, + name: "Óleo", + state: State::SP, + }, + Municipio { + ibge_code: 1700251, + name: "Abreulândia", + state: State::TO, + }, + Municipio { + ibge_code: 1700301, + name: "Aguiarnópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1700350, + name: "Aliança do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1700400, + name: "Almas", + state: State::TO, + }, + Municipio { + ibge_code: 1700707, + name: "Alvorada", + state: State::TO, + }, + Municipio { + ibge_code: 1701002, + name: "Ananás", + state: State::TO, + }, + Municipio { + ibge_code: 1701051, + name: "Angico", + state: State::TO, + }, + Municipio { + ibge_code: 1701101, + name: "Aparecida do Rio Negro", + state: State::TO, + }, + Municipio { + ibge_code: 1701309, + name: "Aragominas", + state: State::TO, + }, + Municipio { + ibge_code: 1701903, + name: "Araguacema", + state: State::TO, + }, + Municipio { + ibge_code: 1702158, + name: "Araguanã", + state: State::TO, + }, + Municipio { + ibge_code: 1702208, + name: "Araguatins", + state: State::TO, + }, + Municipio { + ibge_code: 1702000, + name: "Araguaçu", + state: State::TO, + }, + Municipio { + ibge_code: 1702109, + name: "Araguaína", + state: State::TO, + }, + Municipio { + ibge_code: 1702307, + name: "Arapoema", + state: State::TO, + }, + Municipio { + ibge_code: 1702406, + name: "Arraias", + state: State::TO, + }, + Municipio { + ibge_code: 1702554, + name: "Augustinópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1702703, + name: "Aurora do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1702901, + name: "Axixá do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1703008, + name: "Babaçulândia", + state: State::TO, + }, + Municipio { + ibge_code: 1703057, + name: "Bandeirantes do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1703073, + name: "Barra do Ouro", + state: State::TO, + }, + Municipio { + ibge_code: 1703107, + name: "Barrolândia", + state: State::TO, + }, + Municipio { + ibge_code: 1703206, + name: "Bernardo Sayão", + state: State::TO, + }, + Municipio { + ibge_code: 1703305, + name: "Bom Jesus do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1703602, + name: "Brasilândia do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1703701, + name: "Brejinho de Nazaré", + state: State::TO, + }, + Municipio { + ibge_code: 1703800, + name: "Buriti do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1703826, + name: "Cachoeirinha", + state: State::TO, + }, + Municipio { + ibge_code: 1703842, + name: "Campos Lindos", + state: State::TO, + }, + Municipio { + ibge_code: 1703867, + name: "Cariri do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1703883, + name: "Carmolândia", + state: State::TO, + }, + Municipio { + ibge_code: 1703891, + name: "Carrasco Bonito", + state: State::TO, + }, + Municipio { + ibge_code: 1703909, + name: "Caseara", + state: State::TO, + }, + Municipio { + ibge_code: 1704105, + name: "Centenário", + state: State::TO, + }, + Municipio { + ibge_code: 1705102, + name: "Chapada da Natividade", + state: State::TO, + }, + Municipio { + ibge_code: 1704600, + name: "Chapada de Areia", + state: State::TO, + }, + Municipio { + ibge_code: 1705508, + name: "Colinas do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1716703, + name: "Colméia", + state: State::TO, + }, + Municipio { + ibge_code: 1705557, + name: "Combinado", + state: State::TO, + }, + Municipio { + ibge_code: 1705607, + name: "Conceição do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1706001, + name: "Couto Magalhães", + state: State::TO, + }, + Municipio { + ibge_code: 1706100, + name: "Cristalândia", + state: State::TO, + }, + Municipio { + ibge_code: 1706258, + name: "Crixás do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1706506, + name: "Darcinópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1707009, + name: "Dianópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1707108, + name: "Divinópolis do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1707207, + name: "Dois Irmãos do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1707306, + name: "Dueré", + state: State::TO, + }, + Municipio { + ibge_code: 1707405, + name: "Esperantina", + state: State::TO, + }, + Municipio { + ibge_code: 1707652, + name: "Figueirópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1707702, + name: "Filadélfia", + state: State::TO, + }, + Municipio { + ibge_code: 1708205, + name: "Formoso do Araguaia", + state: State::TO, + }, + Municipio { + ibge_code: 1707553, + name: "Fátima", + state: State::TO, + }, + Municipio { + ibge_code: 1708304, + name: "Goianorte", + state: State::TO, + }, + Municipio { + ibge_code: 1709005, + name: "Goiatins", + state: State::TO, + }, + Municipio { + ibge_code: 1709302, + name: "Guaraí", + state: State::TO, + }, + Municipio { + ibge_code: 1709500, + name: "Gurupi", + state: State::TO, + }, + Municipio { + ibge_code: 1709807, + name: "Ipueiras", + state: State::TO, + }, + Municipio { + ibge_code: 1710508, + name: "Itacajá", + state: State::TO, + }, + Municipio { + ibge_code: 1710706, + name: "Itaguatins", + state: State::TO, + }, + Municipio { + ibge_code: 1710904, + name: "Itapiratins", + state: State::TO, + }, + Municipio { + ibge_code: 1711100, + name: "Itaporã do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1711506, + name: "Jaú do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1711803, + name: "Juarina", + state: State::TO, + }, + Municipio { + ibge_code: 1711902, + name: "Lagoa da Confusão", + state: State::TO, + }, + Municipio { + ibge_code: 1711951, + name: "Lagoa do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1712009, + name: "Lajeado", + state: State::TO, + }, + Municipio { + ibge_code: 1712157, + name: "Lavandeira", + state: State::TO, + }, + Municipio { + ibge_code: 1712405, + name: "Lizarda", + state: State::TO, + }, + Municipio { + ibge_code: 1712454, + name: "Luzinópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1712504, + name: "Marianópolis do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1712702, + name: "Mateiros", + state: State::TO, + }, + Municipio { + ibge_code: 1712801, + name: "Maurilândia do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1713205, + name: "Miracema do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1713304, + name: "Miranorte", + state: State::TO, + }, + Municipio { + ibge_code: 1713700, + name: "Monte Santo do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1713601, + name: "Monte do Carmo", + state: State::TO, + }, + Municipio { + ibge_code: 1713957, + name: "Muricilândia", + state: State::TO, + }, + Municipio { + ibge_code: 1714203, + name: "Natividade", + state: State::TO, + }, + Municipio { + ibge_code: 1714302, + name: "Nazaré", + state: State::TO, + }, + Municipio { + ibge_code: 1714880, + name: "Nova Olinda", + state: State::TO, + }, + Municipio { + ibge_code: 1715002, + name: "Nova Rosalândia", + state: State::TO, + }, + Municipio { + ibge_code: 1715101, + name: "Novo Acordo", + state: State::TO, + }, + Municipio { + ibge_code: 1715150, + name: "Novo Alegre", + state: State::TO, + }, + Municipio { + ibge_code: 1715259, + name: "Novo Jardim", + state: State::TO, + }, + Municipio { + ibge_code: 1715507, + name: "Oliveira de Fátima", + state: State::TO, + }, + Municipio { + ibge_code: 1721000, + name: "Palmas", + state: State::TO, + }, + Municipio { + ibge_code: 1715705, + name: "Palmeirante", + state: State::TO, + }, + Municipio { + ibge_code: 1713809, + name: "Palmeiras do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1715754, + name: "Palmeirópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1716208, + name: "Paranã", + state: State::TO, + }, + Municipio { + ibge_code: 1716109, + name: "Paraíso do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1716307, + name: "Pau D'Arco", + state: State::TO, + }, + Municipio { + ibge_code: 1716505, + name: "Pedro Afonso", + state: State::TO, + }, + Municipio { + ibge_code: 1716604, + name: "Peixe", + state: State::TO, + }, + Municipio { + ibge_code: 1716653, + name: "Pequizeiro", + state: State::TO, + }, + Municipio { + ibge_code: 1717008, + name: "Pindorama do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1717206, + name: "Piraquê", + state: State::TO, + }, + Municipio { + ibge_code: 1717503, + name: "Pium", + state: State::TO, + }, + Municipio { + ibge_code: 1717800, + name: "Ponte Alta do Bom Jesus", + state: State::TO, + }, + Municipio { + ibge_code: 1717909, + name: "Ponte Alta do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1718006, + name: "Porto Alegre do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1718204, + name: "Porto Nacional", + state: State::TO, + }, + Municipio { + ibge_code: 1718303, + name: "Praia Norte", + state: State::TO, + }, + Municipio { + ibge_code: 1718402, + name: "Presidente Kennedy", + state: State::TO, + }, + Municipio { + ibge_code: 1718451, + name: "Pugmil", + state: State::TO, + }, + Municipio { + ibge_code: 1718501, + name: "Recursolândia", + state: State::TO, + }, + Municipio { + ibge_code: 1718550, + name: "Riachinho", + state: State::TO, + }, + Municipio { + ibge_code: 1718758, + name: "Rio Sono", + state: State::TO, + }, + Municipio { + ibge_code: 1718659, + name: "Rio da Conceição", + state: State::TO, + }, + Municipio { + ibge_code: 1718709, + name: "Rio dos Bois", + state: State::TO, + }, + Municipio { + ibge_code: 1718808, + name: "Sampaio", + state: State::TO, + }, + Municipio { + ibge_code: 1718840, + name: "Sandolândia", + state: State::TO, + }, + Municipio { + ibge_code: 1718865, + name: "Santa Fé do Araguaia", + state: State::TO, + }, + Municipio { + ibge_code: 1718881, + name: "Santa Maria do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1718899, + name: "Santa Rita do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1718907, + name: "Santa Rosa do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1719004, + name: "Santa Tereza do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720002, + name: "Santa Terezinha do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720655, + name: "Silvanópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1720853, + name: "Sucupira", + state: State::TO, + }, + Municipio { + ibge_code: 1720101, + name: "São Bento do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720150, + name: "São Félix do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720200, + name: "São Miguel do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720259, + name: "São Salvador do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720309, + name: "São Sebastião do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720499, + name: "São Valério", + state: State::TO, + }, + Municipio { + ibge_code: 1720804, + name: "Sítio Novo do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1708254, + name: "Tabocão", + state: State::TO, + }, + Municipio { + ibge_code: 1720903, + name: "Taguatinga", + state: State::TO, + }, + Municipio { + ibge_code: 1720937, + name: "Taipas do Tocantins", + state: State::TO, + }, + Municipio { + ibge_code: 1720978, + name: "Talismã", + state: State::TO, + }, + Municipio { + ibge_code: 1721208, + name: "Tocantinópolis", + state: State::TO, + }, + Municipio { + ibge_code: 1721109, + name: "Tocantínia", + state: State::TO, + }, + Municipio { + ibge_code: 1721257, + name: "Tupirama", + state: State::TO, + }, + Municipio { + ibge_code: 1721307, + name: "Tupiratins", + state: State::TO, + }, + Municipio { + ibge_code: 1722081, + name: "Wanderlândia", + state: State::TO, + }, + Municipio { + ibge_code: 1722107, + name: "Xambioá", + state: State::TO, + }, +]; diff --git a/core/src/rand.rs b/core/src/rand.rs index 188a568..7f44739 100644 --- a/core/src/rand.rs +++ b/core/src/rand.rs @@ -1,3 +1,45 @@ +//! Small non-cryptographic random sources used by document generators. + +const ZERO_SEED_FALLBACK: u64 = 0x9E37_79B9_7F4A_7C15; + +/// A minimal source of random bits for document generation. +/// +/// Implement this trait to inject an application-provided random source into +/// the `*_with_rng` generation functions. Document generation does not require +/// cryptographically secure randomness, but generated values must not be used +/// as secrets. +pub trait RandomSource { + /// Returns the next 64 random bits. + fn next_u64(&mut self) -> u64; +} + +/// A small deterministic random source initialized from a `u64` seed. +/// +/// Equal seeds produce equal streams. This generator is not cryptographically +/// secure. Seed zero is accepted. +#[derive(Debug, Clone)] +pub struct SeededRng { + state: u64, +} + +impl SeededRng { + /// Creates a deterministic random source from `seed`. + pub const fn new(seed: u64) -> Self { + Self { + state: if seed == 0 { ZERO_SEED_FALLBACK } else { seed }, + } + } +} + +impl RandomSource for SeededRng { + fn next_u64(&mut self) -> u64 { + self.state ^= self.state << 13; + self.state ^= self.state >> 7; + self.state ^= self.state << 17; + self.state + } +} + #[cfg(feature = "std")] pub(crate) fn simple_seed() -> u64 { use std::hash::{BuildHasher, Hasher}; @@ -14,9 +56,42 @@ pub(crate) fn simple_seed() -> u64 { .wrapping_add(1_442_695_040_888_963_407) } -pub(crate) fn xorshift64(mut state: u64) -> u64 { - state ^= state << 13; - state ^= state >> 7; - state ^= state << 17; - state +/// Uniformly samples `0..upper` using rejection sampling. +pub(crate) fn below(rng: &mut R, upper: u64) -> u64 { + assert!(upper > 0, "random upper bound must be positive"); + let threshold = upper.wrapping_neg() % upper; + loop { + let value = rng.next_u64(); + if value >= threshold { + return value % upper; + } + } +} + +pub(crate) fn below_u32(rng: &mut R, upper: u32) -> u32 { + u32::try_from(below(rng, u64::from(upper))).expect("bounded random value must fit in u32") +} + +pub(crate) fn below_u8(rng: &mut R, upper: u8) -> u8 { + u8::try_from(below(rng, u64::from(upper))).expect("bounded random value must fit in u8") +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn zero_seed_does_not_lock_the_generator() { + let mut rng = SeededRng::new(0); + assert_ne!(rng.next_u64(), 0); + assert_ne!(rng.next_u64(), 0); + } + + #[test] + fn bounded_values_stay_below_the_limit() { + let mut rng = SeededRng::new(42); + for _ in 0..100 { + assert!(below(&mut rng, 10) < 10); + } + } } diff --git a/core/src/rg.rs b/core/src/rg.rs index 109c3dc..e1dd064 100644 --- a/core/src/rg.rs +++ b/core/src/rg.rs @@ -24,7 +24,7 @@ use alloc::string::String; use alloc::vec::Vec; use core::fmt; -use crate::rand::{simple_seed, xorshift64}; +use crate::rand::{RandomSource, SeededRng, below_u8, simple_seed}; use crate::uf::State; const RG_MAX_LEN: usize = 14; @@ -60,6 +60,8 @@ impl fmt::Display for RgError { } } +impl core::error::Error for RgError {} + /// Per-UF formatting and validation spec. #[derive(Clone, Copy)] struct UfSpec { @@ -198,10 +200,9 @@ impl fmt::Debug for Rg { } } -/// Strip dots, dashes, slashes and whitespace. For SP, preserve a trailing -/// `'X'` (case-insensitive, normalized to uppercase). For other UFs, drop -/// non-digits. -pub fn remove_symbols(rg: &str, uf: State) -> String { +/// Normalizes a permissive RG input. For SP, preserves `X` case-insensitively; +/// for other UFs, retains only ASCII digits. +pub fn normalize(rg: &str, uf: State) -> String { let spec = uf_spec(uf); let mut out = String::with_capacity(rg.len()); for c in rg.chars() { @@ -214,11 +215,16 @@ pub fn remove_symbols(rg: &str, uf: State) -> String { out } +/// Compatibility alias for [`normalize`]. +pub fn remove_symbols(rg: &str, uf: State) -> String { + normalize(rg, uf) +} + /// Lenient validation - strips symbols, then checks length and (for SP) the /// check digit. -pub fn is_valid(rg: &str, uf: State) -> bool { +pub fn is_valid_lenient(rg: &str, uf: State) -> bool { let spec = uf_spec(uf); - let raw = remove_symbols(rg, uf); + let raw = normalize(rg, uf); if !validate_body_length(&raw, spec) { return false; } @@ -231,6 +237,13 @@ pub fn is_valid(rg: &str, uf: State) -> bool { true } +/// Compatibility alias for [`is_valid_lenient`]. +/// +/// Use [`is_valid_strict`] when punctuation and whitespace must be rejected. +pub fn is_valid(rg: &str, uf: State) -> bool { + is_valid_lenient(rg, uf) +} + /// Strict validation - input must be either the canonical formatted mask or /// the unformatted body. No leading/trailing whitespace, no extra symbols. pub fn is_valid_strict(rg: &str, uf: State) -> Result<(), RgError> { @@ -290,15 +303,33 @@ pub fn parse_strict(raw: &str, uf: State) -> Result { /// Generate a random valid RG. SP only; other UFs return /// `RgError::UnsupportedUfForGeneration`. +/// +/// This generation is not cryptographically secure. pub fn generate(uf: State) -> Result { + let mut rng = SeededRng::new(simple_seed()); + generate_with_rng(&mut rng, uf) +} + +/// Generate a deterministic valid RG from a seed. +/// +/// SP only; other UFs return `RgError::UnsupportedUfForGeneration`. This +/// generation is not cryptographically secure. Seed zero is accepted. +pub fn generate_with_seed(seed: u64, uf: State) -> Result { + let mut rng = SeededRng::new(seed); + generate_with_rng(&mut rng, uf) +} + +/// Generate a valid RG using an injected random source. +/// +/// SP only; other UFs return `RgError::UnsupportedUfForGeneration`. This +/// generation is not cryptographically secure. +pub fn generate_with_rng(rng: &mut R, uf: State) -> Result { if !matches!(uf, State::SP) { return Err(RgError::UnsupportedUfForGeneration); } - let mut seed = simple_seed(); let mut digits = [0u8; SP_BASE_LEN]; for d in &mut digits { - seed = xorshift64(seed); - *d = (seed % 10) as u8; + *d = below_u8(rng, 10); } let mut body = [0u8; 9]; for (i, &d) in digits.iter().enumerate() { @@ -315,19 +346,18 @@ impl Rg { bytes[..body.len()].copy_from_slice(body); Self { bytes, - len: body.len() as u8, + len: u8::try_from(body.len()).expect("RG body length must fit in u8"), uf, } } } fn validate_body_length(raw: &str, spec: UfSpec) -> bool { - match spec.body_len { - Some(n) => raw.len() == n as usize, - None => { - let n = raw.len(); - n >= STRUCTURAL_MIN_LEN as usize && n <= STRUCTURAL_MAX_LEN as usize - } + if let Some(n) = spec.body_len { + raw.len() == n as usize + } else { + let n = raw.len(); + n >= STRUCTURAL_MIN_LEN as usize && n <= STRUCTURAL_MAX_LEN as usize } } @@ -716,6 +746,14 @@ mod tests { } } + #[test] + fn seeded_generation_accepts_zero_and_is_deterministic() { + let first = generate_with_seed(0, State::SP).unwrap(); + let second = generate_with_seed(0, State::SP).unwrap(); + assert_eq!(first, second); + assert!(is_valid(first.as_str(), State::SP)); + } + #[test] fn generate_ok_others_err() { assert!(generate(State::SP).is_ok()); diff --git a/core/src/uf.rs b/core/src/uf.rs index 29eacef..d84c8e9 100644 --- a/core/src/uf.rs +++ b/core/src/uf.rs @@ -170,36 +170,8 @@ impl State { /// Parse from a two-letter abbreviation (case-insensitive). pub fn from_abbreviation(s: &str) -> Option { - match s.as_bytes() { - b"AC" | b"ac" | b"Ac" => Some(State::AC), - b"AL" | b"al" | b"Al" => Some(State::AL), - b"AM" | b"am" | b"Am" => Some(State::AM), - b"AP" | b"ap" | b"Ap" => Some(State::AP), - b"BA" | b"ba" | b"Ba" => Some(State::BA), - b"CE" | b"ce" | b"Ce" => Some(State::CE), - b"DF" | b"df" | b"Df" => Some(State::DF), - b"ES" | b"es" | b"Es" => Some(State::ES), - b"GO" | b"go" | b"Go" => Some(State::GO), - b"MA" | b"ma" | b"Ma" => Some(State::MA), - b"MG" | b"mg" | b"Mg" => Some(State::MG), - b"MS" | b"ms" | b"Ms" => Some(State::MS), - b"MT" | b"mt" | b"Mt" => Some(State::MT), - b"PA" | b"pa" | b"Pa" => Some(State::PA), - b"PB" | b"pb" | b"Pb" => Some(State::PB), - b"PE" | b"pe" | b"Pe" => Some(State::PE), - b"PI" | b"pi" | b"Pi" => Some(State::PI), - b"PR" | b"pr" | b"Pr" => Some(State::PR), - b"RJ" | b"rj" | b"Rj" => Some(State::RJ), - b"RN" | b"rn" | b"Rn" => Some(State::RN), - b"RO" | b"ro" | b"Ro" => Some(State::RO), - b"RR" | b"rr" | b"Rr" => Some(State::RR), - b"RS" | b"rs" | b"Rs" => Some(State::RS), - b"SC" | b"sc" | b"Sc" => Some(State::SC), - b"SE" | b"se" | b"Se" => Some(State::SE), - b"SP" | b"sp" | b"Sp" => Some(State::SP), - b"TO" | b"to" | b"To" => Some(State::TO), - _ => None, - } + ALL.into_iter() + .find(|state| state.abbreviation().eq_ignore_ascii_case(s)) } } @@ -241,9 +213,20 @@ mod tests { #[test] fn from_abbreviation_case_insensitive() { - assert_eq!(State::from_abbreviation("sp"), Some(State::SP)); - assert_eq!(State::from_abbreviation("SP"), Some(State::SP)); - assert_eq!(State::from_abbreviation("Sp"), Some(State::SP)); + for state in ALL { + let [first, second] = state.abbreviation().as_bytes() else { + unreachable!() + }; + for abbreviation in [ + [*first, *second], + [first.to_ascii_lowercase(), *second], + [*first, second.to_ascii_lowercase()], + [first.to_ascii_lowercase(), second.to_ascii_lowercase()], + ] { + let abbreviation = core::str::from_utf8(&abbreviation).unwrap(); + assert_eq!(State::from_abbreviation(abbreviation), Some(state)); + } + } assert_eq!(State::from_abbreviation("XX"), None); assert_eq!(State::from_abbreviation(""), None); } diff --git a/core/src/util.rs b/core/src/util.rs index 3a449f6..752f2ba 100644 --- a/core/src/util.rs +++ b/core/src/util.rs @@ -1,6 +1,6 @@ /// Returns `true` if all elements in the slice are equal. pub(crate) fn all_equal(bytes: &[u8]) -> bool { - bytes.iter().all(|&v| v == bytes[0]) + bytes.windows(2).all(|pair| pair[0] == pair[1]) } /// Generates boilerplate trait implementations for document structs. diff --git a/core/tests/cep_boundaries.rs b/core/tests/cep_boundaries.rs new file mode 100644 index 0000000..929aab7 --- /dev/null +++ b/core/tests/cep_boundaries.rs @@ -0,0 +1,127 @@ +use stdbr_core::cep::Cep; +use stdbr_core::uf::State; + +const OFFICIAL_RANGES: &str = include_str!("../../tests/fixtures/cep_ranges.csv"); + +fn state(cep: &str) -> Option { + cep.parse::().unwrap().state() +} + +#[test] +fn state_boundaries_follow_the_official_postal_blocks() { + let cases = [ + ("00999999", None), + ("01000000", Some(State::SP)), + ("19999999", Some(State::SP)), + ("20000000", Some(State::RJ)), + ("28999999", Some(State::RJ)), + ("29000000", Some(State::ES)), + ("29999999", Some(State::ES)), + ("30000000", Some(State::MG)), + ("39999999", Some(State::MG)), + ("40000000", Some(State::BA)), + ("48999999", Some(State::BA)), + ("49000000", Some(State::SE)), + ("49999999", Some(State::SE)), + ("50000000", Some(State::PE)), + ("56999999", Some(State::PE)), + ("57000000", Some(State::AL)), + ("57999999", Some(State::AL)), + ("58000000", Some(State::PB)), + ("58999999", Some(State::PB)), + ("59000000", Some(State::RN)), + ("59999999", Some(State::RN)), + ("60000000", Some(State::CE)), + ("63999999", Some(State::CE)), + ("64000000", Some(State::PI)), + ("64999999", Some(State::PI)), + ("65000000", Some(State::MA)), + ("65999999", Some(State::MA)), + ("66000000", Some(State::PA)), + ("68899999", Some(State::PA)), + ("68900000", Some(State::AP)), + ("68999999", Some(State::AP)), + ("69000000", Some(State::AM)), + ("69299999", Some(State::AM)), + ("69300000", Some(State::RR)), + ("69399999", Some(State::RR)), + ("69400000", Some(State::AM)), + ("69899999", Some(State::AM)), + ("69900000", Some(State::AC)), + ("69999999", Some(State::AC)), + ("70000000", Some(State::DF)), + ("72799999", Some(State::DF)), + ("72800000", Some(State::GO)), + ("72999999", Some(State::GO)), + ("73000000", Some(State::DF)), + ("73699999", Some(State::DF)), + ("73700000", Some(State::GO)), + ("76799999", Some(State::GO)), + ("76800000", Some(State::RO)), + ("76999999", Some(State::RO)), + ("77000000", Some(State::TO)), + ("77999999", Some(State::TO)), + ("78000000", Some(State::MT)), + ("78899999", Some(State::MT)), + ("78900000", None), + ("78999999", None), + ("79000000", Some(State::MS)), + ("79999999", Some(State::MS)), + ("80000000", Some(State::PR)), + ("87999999", Some(State::PR)), + ("88000000", Some(State::SC)), + ("89999999", Some(State::SC)), + ("90000000", Some(State::RS)), + ("99999999", Some(State::RS)), + ]; + + for (cep, expected) in cases { + assert_eq!(state(cep), expected, "state for CEP {cep}"); + } +} + +#[test] +fn seeded_state_generation_reaches_each_disjoint_segment() { + for target in [State::AM, State::DF, State::GO] { + let mut prefixes = [false; 2]; + for seed in 0..10_000 { + let cep = stdbr_core::cep::generate_for_state_with_seed(seed, target); + assert_eq!(cep.state(), Some(target), "generated CEP {cep}"); + + let value: u32 = cep.as_str().parse().unwrap(); + prefixes[0] |= match target { + State::AM => value <= 69_299_999, + State::DF => value <= 72_799_999, + State::GO => value <= 72_999_999, + _ => unreachable!(), + }; + prefixes[1] |= match target { + State::AM => value >= 69_400_000, + State::DF => value >= 73_000_000, + State::GO => value >= 73_700_000, + _ => unreachable!(), + }; + } + assert_eq!(prefixes, [true, true], "both segments for {target:?}"); + } +} + +#[test] +fn checked_in_correios_fixture_matches_state_lookup_boundaries() { + assert!(OFFICIAL_RANGES.contains("source_url=https://buscacepinter.correios.com.br/")); + + for line in OFFICIAL_RANGES.lines() { + if line.is_empty() || line.starts_with('#') || line.starts_with("uf,") { + continue; + } + let mut fields = line.split(','); + let abbreviation = fields.next().unwrap(); + let start = fields.next().unwrap(); + let end = fields.next().unwrap(); + assert!(fields.next().is_none(), "unexpected fixture row: {line}"); + + let expected = State::from_abbreviation(abbreviation).unwrap(); + assert_eq!(state(start), Some(expected), "fixture start {line}"); + assert_eq!(state(end), Some(expected), "fixture end {line}"); + } +} diff --git a/core/tests/features.rs b/core/tests/features.rs new file mode 100644 index 0000000..ce95e6a --- /dev/null +++ b/core/tests/features.rs @@ -0,0 +1,11 @@ +#[cfg(feature = "municipio")] +#[test] +fn default_features_expose_municipio_dataset() { + assert!(!stdbr_core::municipio::ALL.is_empty()); +} + +#[cfg(not(feature = "municipio"))] +#[test] +fn core_apis_compile_without_municipio_dataset() { + assert_eq!(stdbr_core::uf::ALL.len(), 27); +} diff --git a/core/tests/parity.rs b/core/tests/parity.rs index f318673..120525f 100644 --- a/core/tests/parity.rs +++ b/core/tests/parity.rs @@ -4,14 +4,19 @@ )] use serde_json::Value; +#[cfg(feature = "municipio")] use std::collections::HashMap; -use stdbr_core::{cep, cnpj, cpf, municipio, rg, uf}; +#[cfg(feature = "municipio")] +use stdbr_core::municipio; +use stdbr_core::{cep, cnpj, cpf, rg, uf}; fn golden() -> Value { - let path = - std::env::var("GOLDEN_JSON").unwrap_or_else(|_| "tests/parity/golden.json".to_string()); + let path = std::env::var_os("GOLDEN_JSON").map_or_else( + || std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("../tests/parity/golden.json"), + std::path::PathBuf::from, + ); let json = std::fs::read_to_string(&path) - .unwrap_or_else(|e| panic!("failed to read {path}: {e} (run via bazel test)")); + .unwrap_or_else(|e| panic!("failed to read {}: {e}", path.display())); serde_json::from_str(&json).expect("failed to parse golden.json") } @@ -485,12 +490,14 @@ fn uf_from_abbreviation() { // ── Municipio ──────────────────────────────────────────────────────── #[test] +#[cfg(feature = "municipio")] fn municipio_count() { let expected = golden()["municipio"]["count"].as_u64().unwrap() as usize; assert_eq!(municipio::ALL.len(), expected); } #[test] +#[cfg(feature = "municipio")] fn municipio_from_ibge_code() { let cases = &golden()["municipio"]["from_ibge_code"]; for case in cases.as_array().unwrap() { @@ -508,6 +515,7 @@ fn municipio_from_ibge_code() { } #[test] +#[cfg(feature = "municipio")] fn municipio_capital_of() { let cases = &golden()["municipio"]["capital_of"]; for case in cases.as_array().unwrap() { @@ -523,6 +531,7 @@ fn municipio_capital_of() { } #[test] +#[cfg(feature = "municipio")] fn municipio_search_by_name() { let cases = &golden()["municipio"]["search_by_name"]; for case in cases.as_array().unwrap() { @@ -540,6 +549,7 @@ fn municipio_search_by_name() { } #[test] +#[cfg(feature = "municipio")] fn municipio_by_state_count() { let cases = &golden()["municipio"]["by_state_count"]; for case in cases.as_array().unwrap() { @@ -556,6 +566,7 @@ fn municipio_by_state_count() { // ── Municipio IBGE sync ────────────────────────────────────────────── +#[cfg(feature = "municipio")] fn ibge_source() -> Vec<(u32, String, String)> { let g = golden(); let arr = g["municipio"]["ibge_source"] @@ -572,6 +583,7 @@ fn ibge_source() -> Vec<(u32, String, String)> { } #[test] +#[cfg(feature = "municipio")] fn ibge_count_matches() { let ibge = ibge_source(); assert_eq!( @@ -584,6 +596,7 @@ fn ibge_count_matches() { } #[test] +#[cfg(feature = "municipio")] fn ibge_every_entry_exists_in_hardcoded() { let ibge = ibge_source(); let hardcoded: HashMap = @@ -603,6 +616,7 @@ fn ibge_every_entry_exists_in_hardcoded() { } #[test] +#[cfg(feature = "municipio")] fn ibge_every_hardcoded_exists_in_source() { let ibge = ibge_source(); let ibge_ids: HashMap = ibge.iter().map(|(id, n, u)| (*id, (n, u))).collect(); @@ -621,6 +635,7 @@ fn ibge_every_hardcoded_exists_in_source() { } #[test] +#[cfg(feature = "municipio")] fn ibge_names_match() { let ibge = ibge_source(); let ibge_map: HashMap = ibge @@ -647,6 +662,7 @@ fn ibge_names_match() { } #[test] +#[cfg(feature = "municipio")] fn ibge_states_match() { let ibge = ibge_source(); let ibge_map: HashMap = ibge diff --git a/core/tests/properties.rs b/core/tests/properties.rs new file mode 100644 index 0000000..ec8e564 --- /dev/null +++ b/core/tests/properties.rs @@ -0,0 +1,179 @@ +use stdbr_core::rand::SeededRng; +use stdbr_core::{cep, cnpj, cpf, municipio, rg, uf}; + +const SEEDS: core::ops::Range = 0..512; + +fn mutate_digit(value: &str, index: usize) -> String { + let mut bytes = value.as_bytes().to_vec(); + bytes[index] = b'0' + (bytes[index] - b'0' + 1) % 10; + String::from_utf8(bytes).unwrap() +} + +#[test] +fn seeded_and_injected_generation_roundtrip() { + for seed in SEEDS { + let cpf = cpf::generate_with_seed(seed); + let mut rng = SeededRng::new(seed); + assert_eq!(cpf, cpf::generate_with_rng(&mut rng), "CPF seed {seed}"); + assert!(cpf::is_valid_strict(cpf.as_str()).is_ok()); + assert_eq!(cpf.as_str().parse::().unwrap(), cpf); + assert_eq!(cpf.to_string().parse::().unwrap(), cpf); + + for kind in [cnpj::CnpjKind::Numeric, cnpj::CnpjKind::Alphanumeric] { + let cnpj = cnpj::generate_with_seed(seed, kind); + let mut rng = SeededRng::new(seed); + assert_eq!( + cnpj, + cnpj::generate_with_rng(&mut rng, kind), + "CNPJ seed {seed}, kind {kind:?}" + ); + assert!(cnpj::is_valid_strict(cnpj.as_str()).is_ok()); + assert_eq!(cnpj.as_str().parse::().unwrap(), cnpj); + assert_eq!(cnpj.to_string().parse::().unwrap(), cnpj); + } + + let cep = cep::generate_cep_with_seed(seed); + let mut rng = SeededRng::new(seed); + assert_eq!(cep, cep::generate_cep_with_rng(&mut rng), "CEP seed {seed}"); + assert!(cep::is_valid_strict(cep.as_str()).is_ok()); + assert_eq!(cep.as_str().parse::().unwrap(), cep); + assert_eq!(cep.to_string().parse::().unwrap(), cep); + + let rg = rg::generate_with_seed(seed, uf::State::SP).unwrap(); + let mut rng = SeededRng::new(seed); + assert_eq!( + rg, + rg::generate_with_rng(&mut rng, uf::State::SP).unwrap(), + "RG seed {seed}" + ); + assert!(rg::is_valid_strict(rg.as_str(), uf::State::SP).is_ok()); + assert_eq!(rg::parse_strict(rg.as_str(), uf::State::SP).unwrap(), rg); + } +} + +#[test] +fn seeded_specialized_generation_respects_requested_domain() { + let fiscal_regions = [ + cpf::FiscalRegion::Rs, + cpf::FiscalRegion::DfGoMsMtTo, + cpf::FiscalRegion::AcAmApPaRoRr, + cpf::FiscalRegion::CeMaPi, + cpf::FiscalRegion::AlPbPeRn, + cpf::FiscalRegion::BaSe, + cpf::FiscalRegion::Mg, + cpf::FiscalRegion::EsRj, + cpf::FiscalRegion::Sp, + cpf::FiscalRegion::PrSc, + ]; + + for seed in 0..128 { + for region in fiscal_regions { + let value = cpf::generate_for_region_with_seed(seed, region); + let mut rng = SeededRng::new(seed); + assert_eq!(value, cpf::generate_for_region_with_rng(&mut rng, region)); + assert_eq!(value.fiscal_region(), region); + } + + for state in uf::ALL { + let value = cep::generate_for_state_with_seed(seed, state); + let mut rng = SeededRng::new(seed); + assert_eq!(value, cep::generate_for_state_with_rng(&mut rng, state)); + assert_eq!(value.state(), Some(state), "CEP {value}, seed {seed}"); + } + } +} + +#[test] +fn changing_any_check_digit_rejects_generated_documents() { + for seed in SEEDS { + let cpf = cpf::generate_with_seed(seed); + for index in 9..11 { + let mutated = mutate_digit(cpf.as_str(), index); + assert!( + !cpf::is_valid(&mutated), + "CPF mutation {mutated}, seed {seed}" + ); + assert!(mutated.parse::().is_err()); + } + + for kind in [cnpj::CnpjKind::Numeric, cnpj::CnpjKind::Alphanumeric] { + let cnpj = cnpj::generate_with_seed(seed, kind); + for index in 12..14 { + let mutated = mutate_digit(cnpj.as_str(), index); + assert!( + !cnpj::is_valid(&mutated), + "CNPJ mutation {mutated}, seed {seed}" + ); + assert!(mutated.parse::().is_err()); + } + } + + let rg = rg::generate_with_seed(seed, uf::State::SP).unwrap(); + let mut mutated = rg.as_str().as_bytes().to_vec(); + mutated[8] = if mutated[8] == b'X' { + b'0' + } else { + b'0' + (mutated[8] - b'0' + 1) % 10 + }; + let mutated = String::from_utf8(mutated).unwrap(); + assert!(!rg::is_valid(&mutated, uf::State::SP)); + assert!(rg::parse_strict(&mutated, uf::State::SP).is_err()); + } +} + +fn exercise_public_parsers(input: &str) { + let _ = input.parse::(); + let _ = cpf::is_valid(input); + let _ = cpf::is_valid_strict(input); + let _ = cpf::format_cpf(input); + let _ = cpf::compute_check_digits(input); + + let _ = input.parse::(); + let _ = cnpj::is_valid(input); + let _ = cnpj::is_valid_strict(input); + let _ = cnpj::format_cnpj(input); + let _ = cnpj::compute_check_digits(input); + + let _ = input.parse::(); + let _ = cep::is_valid(input); + let _ = cep::is_valid_strict(input); + let _ = cep::format_cep(input); + + for state in uf::ALL { + let _ = rg::is_valid(input, state); + let _ = rg::is_valid_strict(input, state); + let _ = rg::parse_strict(input, state); + let _ = rg::format_rg(input, state); + let _ = rg::compute_check_digit(input, state); + } + + let _ = municipio::Municipio::search_by_name(input).take(2).count(); +} + +#[test] +fn unicode_and_size_corpus_never_panics() { + let corpus = [ + "", + "\0", + "ASCII", + "012345678901234567", + "acentuação", + "A\u{0303}", + "1234567890", + "١٢٣٤٥٦٧٨٩٠", + "中文", + "🦀🇧🇷", + "\u{200d}\u{fe0f}\u{00a0}", + ]; + for input in corpus { + exercise_public_parsers(input); + } + + let atoms = ['0', 'X', '.', '-', 'á', '\u{0301}', '界', '🦀', '\0']; + for size in 0..=128 { + let input: String = (0..size) + .map(|index| atoms[(index * 17 + size * 31) % atoms.len()]) + .collect(); + exercise_public_parsers(&input); + } +} diff --git a/core/tests/rng.rs b/core/tests/rng.rs new file mode 100644 index 0000000..266fea7 --- /dev/null +++ b/core/tests/rng.rs @@ -0,0 +1,95 @@ +use stdbr_core::rand::{RandomSource, SeededRng}; +use stdbr_core::{cep, cnpj, cpf, rg, uf}; + +#[derive(Clone)] +struct TestRng(u64); + +impl RandomSource for TestRng { + fn next_u64(&mut self) -> u64 { + self.0 = self + .0 + .wrapping_mul(6_364_136_223_846_793_005) + .wrapping_add(1_442_695_040_888_963_407); + self.0 + } +} + +#[test] +fn seeded_rng_makes_all_generators_deterministic() { + let mut first = SeededRng::new(42); + let mut second = SeededRng::new(42); + + assert_eq!( + cpf::generate_with_rng(&mut first), + cpf::generate_with_rng(&mut second) + ); + assert_eq!( + cnpj::generate_with_rng(&mut first, cnpj::CnpjKind::Alphanumeric), + cnpj::generate_with_rng(&mut second, cnpj::CnpjKind::Alphanumeric) + ); + assert_eq!( + cep::generate_cep_with_rng(&mut first), + cep::generate_cep_with_rng(&mut second) + ); + assert_eq!( + rg::generate_with_rng(&mut first, uf::State::SP), + rg::generate_with_rng(&mut second, uf::State::SP) + ); +} + +#[test] +fn generators_accept_an_application_random_source() { + let mut first = TestRng(7); + let mut second = first.clone(); + + let cpf = cpf::generate_for_region_with_rng(&mut first, cpf::FiscalRegion::Sp); + assert_eq!( + cpf, + cpf::generate_for_region_with_rng(&mut second, cpf::FiscalRegion::Sp) + ); + assert_eq!(cpf.fiscal_region(), cpf::FiscalRegion::Sp); + + let cep = cep::generate_for_state_with_rng(&mut first, uf::State::GO); + assert_eq!( + cep, + cep::generate_for_state_with_rng(&mut second, uf::State::GO) + ); + assert_eq!(cep.state(), Some(uf::State::GO)); +} + +#[test] +fn public_errors_implement_core_error() { + fn assert_error() {} + + assert_error::(); + assert_error::(); + assert_error::(); + assert_error::(); +} + +#[test] +fn explicit_lenient_names_preserve_compatibility_aliases() { + assert_eq!(cpf::normalize("529.982.247-25"), "52998224725"); + assert_eq!( + cpf::is_valid_lenient("529$982#247!25"), + cpf::is_valid("529$982#247!25") + ); + + assert_eq!(cnpj::normalize("11.222.333/0001-81"), "11222333000181"); + assert_eq!( + cnpj::is_valid_lenient("11$222#333!0001@81"), + cnpj::is_valid("11$222#333!0001@81") + ); + + assert_eq!(cep::normalize("01310-100"), "01310100"); + assert_eq!( + cep::is_valid_lenient("01310$100"), + cep::is_valid("01310$100") + ); + + assert_eq!(rg::normalize("29.465.327-2", uf::State::SP), "294653272"); + assert_eq!( + rg::is_valid_lenient("29$465#327!2", uf::State::SP), + rg::is_valid("29$465#327!2", uf::State::SP) + ); +} diff --git a/flake.nix b/flake.nix index 095f11d..29633e2 100644 --- a/flake.nix +++ b/flake.nix @@ -41,7 +41,16 @@ overlays = [ (import inputs.rust-overlay) ]; }; - rustToolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml; + rustToolchain = (pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml).override { + extensions = [ "llvm-tools-preview" ]; + }; + fuzzToolchain = pkgs.rust-bin.nightly.latest.minimal; + msrvToolchain = pkgs.rust-bin.stable."1.85.0".minimal; + semverToolchain = pkgs.rust-bin.stable."1.91.0".minimal; + nativeToolchain = pkgs.symlinkJoin { + name = "stdbr-native-toolchain"; + paths = [ pkgs.gcc pkgs.binutils ]; + }; in { _module.args.pkgs = pkgs; @@ -55,6 +64,19 @@ }; }; + checks.quality-static = pkgs.runCommand "stdbr-quality-static" + { + nativeBuildInputs = with pkgs; [ actionlint shellcheck ]; + } '' + shellcheck ${./tools/quality/quality.sh} + actionlint \ + ${./.github/workflows/ci.yml} \ + ${./.github/workflows/ibge-sync.yml} \ + ${./.github/workflows/publish-test.yml} \ + ${./.github/workflows/release.yml} + touch $out + ''; + devshells.default = { name = "stdbr"; @@ -64,7 +86,7 @@ bazel_7 bazel-buildtools - gcc + nativeToolchain pkg-config openssl cacert @@ -72,11 +94,17 @@ jdk - rust-cbindgen python3 maturin wasm-pack nodejs + + cargo-audit + cargo-fuzz + cargo-llvm-cov + cargo-semver-checks + actionlint + shellcheck ] ++ lib.optionals pkgs.stdenv.isDarwin [ pkgs.libiconv pkgs.darwin.apple_sdk.frameworks.Security @@ -84,7 +112,18 @@ ]; env = [ - { name = "CC"; value = "${pkgs.gcc}/bin/gcc"; } + { + name = "PATH"; + prefix = "${nativeToolchain}/bin"; + } + { name = "CC"; value = "${nativeToolchain}/bin/gcc"; } + { name = "AR"; value = "${nativeToolchain}/bin/ar"; } + { name = "CBINDGEN"; value = lib.getExe pkgs.rust-cbindgen; } + { name = "FUZZ_CARGO"; value = "${fuzzToolchain}/bin/cargo"; } + { name = "FUZZ_RUSTC"; value = "${fuzzToolchain}/bin/rustc"; } + { name = "MSRV_CARGO"; value = "${msrvToolchain}/bin/cargo"; } + { name = "MSRV_RUSTC"; value = "${msrvToolchain}/bin/rustc"; } + { name = "SEMVER_TOOLCHAIN_BIN"; value = "${semverToolchain}/bin"; } { name = "RUST_SRC_PATH"; value = "${rustToolchain}/lib/rustlib/src/rust/library"; } ]; @@ -97,7 +136,7 @@ } { name = "check"; - command = "bazel test //..."; + command = "bazel test //:all_tests"; help = "Run all tests"; category = "bazel"; } @@ -107,6 +146,12 @@ help = "Format all files (rustfmt + nixpkgs-fmt + buildifier)"; category = "dev"; } + { + name = "quality"; + command = ''"$PRJ_ROOT/tools/quality/quality.sh" all "$@"''; + help = "Run all local quality gates with bounded resources"; + category = "dev"; + } { name = "clean"; command = "bazel clean --expunge"; diff --git a/fuzz/.gitignore b/fuzz/.gitignore new file mode 100644 index 0000000..f9f5847 --- /dev/null +++ b/fuzz/.gitignore @@ -0,0 +1,3 @@ +/artifacts/ +/coverage/ +/target/ diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock new file mode 100644 index 0000000..ce79ad6 --- /dev/null +++ b/fuzz/Cargo.lock @@ -0,0 +1,94 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" + +[[package]] +name = "cc" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "find-msvc-tools" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" + +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi", +] + +[[package]] +name = "jobserver" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" +dependencies = [ + "getrandom", + "libc", +] + +[[package]] +name = "libc" +version = "0.2.189" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" + +[[package]] +name = "libfuzzer-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9fd2f41a1cba099f79a0b6b6c35656cf7c03351a7bae8ff0f28f25270f929d2" +dependencies = [ + "arbitrary", + "cc", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "shlex" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" + +[[package]] +name = "stdbr-core" +version = "0.3.1" + +[[package]] +name = "stdbr-fuzz" +version = "0.0.0" +dependencies = [ + "libfuzzer-sys", + "stdbr-core", +] diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml new file mode 100644 index 0000000..7de908e --- /dev/null +++ b/fuzz/Cargo.toml @@ -0,0 +1,44 @@ +[package] +name = "stdbr-fuzz" +version = "0.0.0" +publish = false +edition = "2024" + +[package.metadata] +cargo-fuzz = true + +[dependencies] +libfuzzer-sys = "0.4" +stdbr-core = { path = "../core" } + +[[bin]] +name = "cpf" +path = "fuzz_targets/cpf.rs" +test = false +doc = false +bench = false + +[[bin]] +name = "cnpj" +path = "fuzz_targets/cnpj.rs" +test = false +doc = false +bench = false + +[[bin]] +name = "cep" +path = "fuzz_targets/cep.rs" +test = false +doc = false +bench = false + +[[bin]] +name = "rg" +path = "fuzz_targets/rg.rs" +test = false +doc = false +bench = false + +[workspace] +members = ["."] +resolver = "2" diff --git a/fuzz/corpus/cep/valid-formatted b/fuzz/corpus/cep/valid-formatted new file mode 100644 index 0000000..937b30e --- /dev/null +++ b/fuzz/corpus/cep/valid-formatted @@ -0,0 +1 @@ +01310-100 diff --git a/fuzz/corpus/cnpj/valid-formatted b/fuzz/corpus/cnpj/valid-formatted new file mode 100644 index 0000000..a452182 --- /dev/null +++ b/fuzz/corpus/cnpj/valid-formatted @@ -0,0 +1 @@ +11.222.333/0001-81 diff --git a/fuzz/corpus/cpf/valid-formatted b/fuzz/corpus/cpf/valid-formatted new file mode 100644 index 0000000..54499aa --- /dev/null +++ b/fuzz/corpus/cpf/valid-formatted @@ -0,0 +1 @@ +529.982.247-25 diff --git a/fuzz/corpus/rg/valid-formatted b/fuzz/corpus/rg/valid-formatted new file mode 100644 index 0000000..945587f --- /dev/null +++ b/fuzz/corpus/rg/valid-formatted @@ -0,0 +1 @@ +29.465.327-2 diff --git a/fuzz/fuzz_targets/cep.rs b/fuzz/fuzz_targets/cep.rs new file mode 100644 index 0000000..22f3417 --- /dev/null +++ b/fuzz/fuzz_targets/cep.rs @@ -0,0 +1,28 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; +use stdbr_core::cep; + +fn exercise(input: &str) { + let _ = cep::normalize(input); + let _ = cep::is_valid(input); + let _ = cep::is_valid_strict(input); + let _ = cep::format_cep(input); + + if let Ok(document) = input.parse::() { + let _ = document.as_str(); + let _ = document.to_string(); + let _ = document.formatted(); + let _ = document.masked(); + let _ = document.digits(); + let _ = document.postal_region(); + let _ = document.state(); + } +} + +fuzz_target!(|data: &[u8]| { + if let Ok(input) = core::str::from_utf8(data) { + exercise(input); + } + exercise(&String::from_utf8_lossy(data)); +}); diff --git a/fuzz/fuzz_targets/cnpj.rs b/fuzz/fuzz_targets/cnpj.rs new file mode 100644 index 0000000..c40390f --- /dev/null +++ b/fuzz/fuzz_targets/cnpj.rs @@ -0,0 +1,30 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; +use stdbr_core::cnpj; + +fn exercise(input: &str) { + let _ = cnpj::normalize(input); + let _ = cnpj::is_valid(input); + let _ = cnpj::is_valid_strict(input); + let _ = cnpj::format_cnpj(input); + let _ = cnpj::compute_check_digits(input); + + if let Ok(document) = input.parse::() { + let _ = document.as_str(); + let _ = document.to_string(); + let _ = document.masked(); + let _ = document.kind(); + let _ = document.raiz(); + let _ = document.ordem(); + let _ = document.establishment_type(); + let _ = document.check_digits(); + } +} + +fuzz_target!(|data: &[u8]| { + if let Ok(input) = core::str::from_utf8(data) { + exercise(input); + } + exercise(&String::from_utf8_lossy(data)); +}); diff --git a/fuzz/fuzz_targets/cpf.rs b/fuzz/fuzz_targets/cpf.rs new file mode 100644 index 0000000..cf72ea7 --- /dev/null +++ b/fuzz/fuzz_targets/cpf.rs @@ -0,0 +1,27 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; +use stdbr_core::cpf; + +fn exercise(input: &str) { + let _ = cpf::normalize(input); + let _ = cpf::is_valid(input); + let _ = cpf::is_valid_strict(input); + let _ = cpf::format_cpf(input); + let _ = cpf::compute_check_digits(input); + + if let Ok(document) = input.parse::() { + let _ = document.as_str(); + let _ = document.to_string(); + let _ = document.masked(); + let _ = document.check_digits(); + let _ = document.fiscal_region(); + } +} + +fuzz_target!(|data: &[u8]| { + if let Ok(input) = core::str::from_utf8(data) { + exercise(input); + } + exercise(&String::from_utf8_lossy(data)); +}); diff --git a/fuzz/fuzz_targets/rg.rs b/fuzz/fuzz_targets/rg.rs new file mode 100644 index 0000000..cee7b3c --- /dev/null +++ b/fuzz/fuzz_targets/rg.rs @@ -0,0 +1,31 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; +use stdbr_core::{rg, uf}; + +fn exercise(input: &str) { + for state in uf::ALL { + let _ = rg::normalize(input, state); + let _ = rg::is_valid(input, state); + let _ = rg::is_valid_strict(input, state); + let _ = rg::format_rg(input, state); + let _ = rg::compute_check_digit(input, state); + + if let Ok(document) = rg::parse_strict(input, state) { + let _ = document.as_str(); + let _ = document.to_string(); + let _ = document.formatted(); + let _ = document.masked(); + let _ = document.body(); + let _ = document.check_digit(); + let _ = document.uf(); + } + } +} + +fuzz_target!(|data: &[u8]| { + if let Ok(input) = core::str::from_utf8(data) { + exercise(input); + } + exercise(&String::from_utf8_lossy(data)); +}); diff --git a/plugins/polars/Cargo.toml b/plugins/polars/Cargo.toml index 901001f..856c505 100644 --- a/plugins/polars/Cargo.toml +++ b/plugins/polars/Cargo.toml @@ -3,7 +3,7 @@ name = "polars-stdbr" version = "0.0.1" edition = "2024" rust-version = "1.88.0" -license = "MIT OR Apache-2.0" +license = "Apache-2.0" [lib] name = "polars_stdbr" diff --git a/plugins/polars/pyproject.toml b/plugins/polars/pyproject.toml index 82705b0..29d341a 100644 --- a/plugins/polars/pyproject.toml +++ b/plugins/polars/pyproject.toml @@ -8,7 +8,7 @@ requires-python = ">=3.9" dependencies = ["polars>=1.0"] dynamic = ["version"] description = "Polars expression plugin for Brazilian document validation (CPF, CNPJ, CEP)" -license = { text = "MIT OR Apache-2.0" } +license = "Apache-2.0" [tool.maturin] python-source = "." diff --git a/plugins/polars/src/expressions.rs b/plugins/polars/src/expressions.rs index b95d346..48d7bed 100644 --- a/plugins/polars/src/expressions.rs +++ b/plugins/polars/src/expressions.rs @@ -2,7 +2,6 @@ use polars::prelude::*; use pyo3_polars::derive::polars_expr; use stdbr_core::{cep, cnpj, cpf}; - #[polars_expr(output_type=Boolean)] fn cpf_is_valid(inputs: &[Series]) -> PolarsResult { let ca = inputs[0].str()?; diff --git a/release-please-config.json b/release-please-config.json index a918fd6..dc3ad6e 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -8,9 +8,8 @@ "changelog-path": "CHANGELOG.md", "bump-minor-pre-major": true, "bump-patch-for-minor-pre-major": true, - "prerelease": true, - "prerelease-type": "next", - "versioning-strategy": "prerelease", + "prerelease": false, + "versioning-strategy": "default", "plugins": ["cargo-workspace"], "extra-files": [ { @@ -18,6 +17,16 @@ "path": "bindings/nodejs/package.json", "jsonpath": "$.version" }, + { + "type": "json", + "path": "bindings/nodejs/package-lock.json", + "jsonpath": "$.version" + }, + { + "type": "json", + "path": "bindings/nodejs/package-lock.json", + "jsonpath": "$.packages[''].version" + }, { "type": "json", "path": "bindings/nodejs/npm/darwin-arm64/package.json", diff --git a/src/lib.rs b/src/lib.rs index baa4ad7..37257fb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1,3 @@ +#![cfg_attr(not(feature = "std"), no_std)] + pub use stdbr_core::*; diff --git a/tests/fixtures/BUILD.bazel b/tests/fixtures/BUILD.bazel new file mode 100644 index 0000000..f0c0247 --- /dev/null +++ b/tests/fixtures/BUILD.bazel @@ -0,0 +1,4 @@ +exports_files( + ["cep_ranges.csv"], + visibility = ["//visibility:public"], +) diff --git a/tests/fixtures/cep_ranges.csv b/tests/fixtures/cep_ranges.csv new file mode 100644 index 0000000..4b392c4 --- /dev/null +++ b/tests/fixtures/cep_ranges.csv @@ -0,0 +1,35 @@ +# source_name=Empresa Brasileira de Correios e Telegrafos - Busca Faixa CEP por UF/Localidade +# source_url=https://buscacepinter.correios.com.br/app/faixa_cep_uf_localidade/index.php +# retrieved_at=2026-09-08 +# scope=Inclusive state-level CEP ranges; split rows preserve non-contiguous ranges. +uf,start,end +AC,69900000,69999999 +AL,57000000,57999999 +AM,69000000,69299999 +AM,69400000,69899999 +AP,68900000,68999999 +BA,40000000,48999999 +CE,60000000,63999999 +DF,70000000,72799999 +DF,73000000,73699999 +ES,29000000,29999999 +GO,72800000,72999999 +GO,73700000,76799999 +MA,65000000,65999999 +MG,30000000,39999999 +MS,79000000,79999999 +MT,78000000,78899999 +PA,66000000,68899999 +PB,58000000,58999999 +PE,50000000,56999999 +PI,64000000,64999999 +PR,80000000,87999999 +RJ,20000000,28999999 +RN,59000000,59999999 +RO,76800000,76999999 +RR,69300000,69399999 +RS,90000000,99999999 +SC,88000000,89999999 +SE,49000000,49999999 +SP,01000000,19999999 +TO,77000000,77999999 diff --git a/tests/package/crates/smoke.sh b/tests/package/crates/smoke.sh new file mode 100755 index 0000000..d23e799 --- /dev/null +++ b/tests/package/crates/smoke.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +set -euo pipefail + +artifact_dir=${1:?crate artifact directory is required} +expected_version=${2:-} +work_dir=$(mktemp -d) +trap 'rm -rf "$work_dir"' EXIT + +archives=("$artifact_dir"/*.crate) +if [[ ${#archives[@]} -ne 2 ]]; then + echo "expected 2 crate archives, found ${#archives[@]}" >&2 + exit 1 +fi + +for archive in "${archives[@]}"; do + tar -xzf "$archive" -C "$work_dir" +done + +core_dirs=("$work_dir"/stdbr-core-*) +root_dirs=("$work_dir"/stdbr-*) +core_dir=${core_dirs[0]} +root_dir='' +for candidate in "${root_dirs[@]}"; do + if [[ $(basename "$candidate") != stdbr-core-* ]]; then + root_dir=$candidate + fi +done +test -d "$core_dir" +test -n "$root_dir" +test -f "$core_dir/LICENSE" +test -f "$root_dir/LICENSE" + +if [[ -n "$expected_version" ]]; then + [[ $(basename "$core_dir") == "stdbr-core-$expected_version" ]] + [[ $(basename "$root_dir") == "stdbr-$expected_version" ]] +fi + +mkdir -p "$work_dir/consumer/src" "$work_dir/cargo-home" "$work_dir/target" +cat > "$work_dir/consumer/Cargo.toml" < "$work_dir/consumer/src/main.rs" <<'EOF' +fn main() { + assert!(stdbr::cpf::is_valid("52998224725")); +} +EOF + +CARGO_HOME="$work_dir/cargo-home" CARGO_TARGET_DIR="$work_dir/target" \ + cargo run --offline --manifest-path "$work_dir/consumer/Cargo.toml" diff --git a/tests/package/ffi/smoke.ps1 b/tests/package/ffi/smoke.ps1 new file mode 100644 index 0000000..d31cd8c --- /dev/null +++ b/tests/package/ffi/smoke.ps1 @@ -0,0 +1,36 @@ +param( + [Parameter(Mandatory = $true)][string]$ArtifactDirectory, + [Parameter(Mandatory = $true)][string]$Target +) + +$ErrorActionPreference = "Stop" +$archive = Join-Path $ArtifactDirectory "stdbr-ffi-$Target.tar.gz" +if (-not (Test-Path $archive -PathType Leaf)) { throw "missing FFI archive: $archive" } + +$temporaryDirectory = Join-Path ([System.IO.Path]::GetTempPath()) ("stdbr-ffi-smoke-" + [guid]::NewGuid()) +New-Item -ItemType Directory -Path $temporaryDirectory | Out-Null +try { + tar -xzf $archive -C $temporaryDirectory + if ($LASTEXITCODE -ne 0) { throw "could not extract $archive" } + $packageDirectory = Join-Path $temporaryDirectory "stdbr-ffi-$Target" + foreach ($file in @("stdbr.h", "stdbr_ffi.dll", "stdbr_ffi.lib", "LICENSE")) { + if (-not (Test-Path (Join-Path $packageDirectory $file) -PathType Leaf)) { + throw "missing $file in FFI archive" + } + } + + $env:PATH = "$packageDirectory;$env:PATH" + Add-Type @' +using System.Runtime.InteropServices; +public static class StdbrFfi { + [DllImport("stdbr_ffi.dll", CallingConvention = CallingConvention.Cdecl)] + [return: MarshalAs(UnmanagedType.I1)] + public static extern bool stdbr_cpf_is_valid([MarshalAs(UnmanagedType.LPStr)] string value); +} +'@ + if (-not [StdbrFfi]::stdbr_cpf_is_valid("52998224725")) { + throw "stdbr_cpf_is_valid rejected a valid CPF" + } +} finally { + Remove-Item -Recurse -Force $temporaryDirectory +} diff --git a/tests/package/ffi/smoke.sh b/tests/package/ffi/smoke.sh new file mode 100755 index 0000000..dc02584 --- /dev/null +++ b/tests/package/ffi/smoke.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail + +artifact_dir=${1:?FFI artifact directory is required} +target=${2:?Rust target is required} +archive="$artifact_dir/stdbr-ffi-$target.tar.gz" +work_dir=$(mktemp -d) +trap 'rm -rf "$work_dir"' EXIT + +test -f "$archive" +tar -xzf "$archive" -C "$work_dir" +package_dir="$work_dir/stdbr-ffi-$target" +test -f "$package_dir/stdbr.h" +test -f "$package_dir/LICENSE" + +case "$target" in + *-linux-*) + test -f "$package_dir/libstdbr_ffi.a" + test -f "$package_dir/libstdbr_ffi.so" + runtime_variable=LD_LIBRARY_PATH + ;; + *-apple-darwin) + test -f "$package_dir/libstdbr_ffi.a" + test -f "$package_dir/libstdbr_ffi.dylib" + runtime_variable=DYLD_LIBRARY_PATH + ;; + *) echo "unsupported Unix FFI target: $target" >&2; exit 1 ;; +esac + +cat > "$work_dir/smoke.c" <<'EOF' +#include "stdbr.h" + +int main(void) { + return stdbr_cpf_is_valid("52998224725") ? 0 : 1; +} +EOF + +cc "$work_dir/smoke.c" -I"$package_dir" -L"$package_dir" -lstdbr_ffi -o "$work_dir/smoke" +env "$runtime_variable=$package_dir" "$work_dir/smoke" diff --git a/tests/package/node/smoke.mjs b/tests/package/node/smoke.mjs new file mode 100644 index 0000000..b53959e --- /dev/null +++ b/tests/package/node/smoke.mjs @@ -0,0 +1,71 @@ +import assert from "node:assert/strict"; +import { mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join, resolve } from "node:path"; +import { spawnSync } from "node:child_process"; +import { createRequire } from "node:module"; +import { pathToFileURL } from "node:url"; + +const [artifactDirectory, hostPlatform, expectedVersion = ""] = process.argv.slice(2); +if (!artifactDirectory || !hostPlatform) { + throw new Error("usage: smoke-npm.mjs ARTIFACT_DIR HOST_PLATFORM [EXPECTED_VERSION]"); +} + +const expectedPlatforms = [ + "darwin-arm64", + "darwin-x64", + "linux-arm64-gnu", + "linux-x64-gnu", + "linux-x64-musl", + "win32-x64-msvc", +]; +const temporaryDirectory = await mkdtemp(join(tmpdir(), "stdbr-npm-smoke-")); +const npm = process.platform === "win32" ? "npm.cmd" : "npm"; + +try { + const archives = (await readdir(resolve(artifactDirectory))) + .filter((name) => name.endsWith(".tgz")) + .map((name) => resolve(artifactDirectory, name)); + assert.equal(archives.length, 7, "expected the main tgz and six platform tgz files"); + + await writeFile(join(temporaryDirectory, "package.json"), JSON.stringify({ private: true })); + const result = spawnSync( + npm, + ["install", "--force", "--ignore-scripts", "--no-audit", "--no-fund", "--no-package-lock", ...archives], + { + cwd: temporaryDirectory, + encoding: "utf8", + env: { ...process.env, npm_config_cache: join(temporaryDirectory, ".npm-cache") }, + }, + ); + if (result.status !== 0) throw new Error(`${result.stdout}${result.stderr}`); + + const mainManifest = JSON.parse( + await readFile(join(temporaryDirectory, "node_modules", "@stdbr", "stdbr", "package.json"), "utf8"), + ); + await readFile(join(temporaryDirectory, "node_modules", "@stdbr", "stdbr", "LICENSE")); + if (expectedVersion) assert.equal(mainManifest.version, expectedVersion); + + for (const platform of expectedPlatforms) { + const packageDirectory = join(temporaryDirectory, "node_modules", "@stdbr", `stdbr-${platform}`); + const manifest = JSON.parse(await readFile(join(packageDirectory, "package.json"), "utf8")); + await readFile(join(packageDirectory, "LICENSE")); + assert.equal(manifest.name, `@stdbr/stdbr-${platform}`); + assert.equal(mainManifest.optionalDependencies[manifest.name], manifest.version); + if (expectedVersion) assert.equal(manifest.version, expectedVersion); + await readFile(join(packageDirectory, `stdbr.${platform}.node`)); + } + + const require = createRequire(join(temporaryDirectory, "package.json")); + const stdbr = require("@stdbr/stdbr"); + assert.equal(stdbr.cpfIsValid("52998224725"), true); + const esm = await import(pathToFileURL(join(temporaryDirectory, "node_modules", "@stdbr", "stdbr", "index.js")).href); + assert.equal(esm.cpfIsValid("52998224725"), true); + const libc = process.platform === "linux" + ? process.report.getReport().header.glibcVersionRuntime ? "-gnu" : "-musl" + : ""; + const toolchain = process.platform === "win32" ? "-msvc" : ""; + assert.equal(hostPlatform, `${process.platform}-${process.arch}${libc}${toolchain}`); +} finally { + await rm(temporaryDirectory, { recursive: true, force: true }); +} diff --git a/tests/package/python/smoke.py b/tests/package/python/smoke.py new file mode 100644 index 0000000..07becef --- /dev/null +++ b/tests/package/python/smoke.py @@ -0,0 +1,63 @@ +from __future__ import annotations + +import os +from pathlib import Path +import shutil +import subprocess +import sys +import tempfile + + +kind, artifact_directory, *rest = sys.argv[1:] +expected_version = rest[0] if rest else "" +repository_root = Path(__file__).resolve().parents[3] +artifacts = list(Path(artifact_directory).glob("*.whl" if kind == "wheel" else "*.tar.gz")) +if len(artifacts) != 1: + raise SystemExit(f"expected exactly one {kind} artifact, found {len(artifacts)}") + +temporary_directory = Path(tempfile.mkdtemp(prefix="stdbr-python-smoke-")) +try: + environment = os.environ.copy() + environment.pop("PYTHONPATH", None) + virtualenv = temporary_directory / "venv" + subprocess.run([sys.executable, "-m", "venv", str(virtualenv)], check=True, env=environment) + python = virtualenv / ("Scripts/python.exe" if os.name == "nt" else "bin/python") + subprocess.run( + [str(python), "-m", "pip", "install", "--no-cache-dir", str(artifacts[0].resolve())], + check=True, + cwd=temporary_directory, + env=environment, + ) + check = ( + "import importlib.metadata, pathlib, stdbr; " + "assert stdbr.cpf_is_valid('52998224725'); " + "assert any(pathlib.Path(p).name == 'LICENSE' for p in importlib.metadata.files('stdbr')); " + f"assert not {expected_version!r} or importlib.metadata.version('stdbr') == {expected_version!r}" + ) + subprocess.run([str(python), "-c", check], check=True, cwd=temporary_directory, env=environment) + subprocess.run( + [str(python), str(repository_root / "bindings/python/tests/wheel.py")], + check=True, + cwd=temporary_directory, + env=environment, + ) + subprocess.run( + [str(python), "-m", "pip", "install", "mypy==1.19.1"], + check=True, + cwd=temporary_directory, + env=environment, + ) + subprocess.run( + [ + str(python), + "-m", + "mypy", + "--strict", + str(repository_root / "bindings/python/tests/typing_smoke.py"), + ], + check=True, + cwd=temporary_directory, + env=environment, + ) +finally: + shutil.rmtree(temporary_directory, ignore_errors=True) diff --git a/tests/package/wasm/smoke.mjs b/tests/package/wasm/smoke.mjs new file mode 100644 index 0000000..c24572f --- /dev/null +++ b/tests/package/wasm/smoke.mjs @@ -0,0 +1,38 @@ +import assert from "node:assert/strict"; +import { mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join, resolve } from "node:path"; +import { pathToFileURL } from "node:url"; +import { spawnSync } from "node:child_process"; + +const [artifactDirectory, expectedVersion = ""] = process.argv.slice(2); +if (!artifactDirectory) throw new Error("usage: smoke-wasm.mjs ARTIFACT_DIR [EXPECTED_VERSION]"); + +const archives = (await readdir(resolve(artifactDirectory))).filter((name) => name.endsWith(".tgz")); +assert.equal(archives.length, 1, "expected exactly one WASM tgz"); +const temporaryDirectory = await mkdtemp(join(tmpdir(), "stdbr-wasm-smoke-")); + +try { + await writeFile(join(temporaryDirectory, "package.json"), JSON.stringify({ private: true, type: "module" })); + const npm = process.platform === "win32" ? "npm.cmd" : "npm"; + const result = spawnSync( + npm, + ["install", "--ignore-scripts", "--no-audit", "--no-fund", "--no-package-lock", resolve(artifactDirectory, archives[0])], + { cwd: temporaryDirectory, encoding: "utf8", env: { ...process.env, npm_config_cache: join(temporaryDirectory, ".npm-cache") } }, + ); + if (result.status !== 0) throw new Error(`${result.stdout}${result.stderr}`); + + const packageDirectory = join(temporaryDirectory, "node_modules", "@stdbr", "wasm"); + const manifest = JSON.parse(await readFile(join(packageDirectory, "package.json"), "utf8")); + assert.equal(manifest.name, "@stdbr/wasm"); + await readFile(join(packageDirectory, "LICENSE")); + if (expectedVersion) assert.equal(manifest.version, expectedVersion); + + const wasmFile = (await readdir(packageDirectory)).find((name) => name.endsWith("_bg.wasm")); + assert.ok(wasmFile, "web package must contain its wasm binary"); + const module = await import(pathToFileURL(join(packageDirectory, manifest.module ?? manifest.main)).href); + await module.default(await readFile(join(packageDirectory, wasmFile))); + assert.equal(module.cpfIsValid("52998224725"), true); +} finally { + await rm(temporaryDirectory, { recursive: true, force: true }); +} diff --git a/tests/parity/BUILD.bazel b/tests/parity/BUILD.bazel index 1bed174..d03bc28 100644 --- a/tests/parity/BUILD.bazel +++ b/tests/parity/BUILD.bazel @@ -1,5 +1,5 @@ -load("@rules_rust//rust:defs.bzl", "rust_test") load("@bazel_skylib//rules:write_file.bzl", "write_file") +load("@rules_rust//rust:defs.bzl", "rust_test") GOLDEN_ENV = {"GOLDEN_JSON": "$(rootpath :gen_golden)"} @@ -12,21 +12,24 @@ filegroup( rust_test( name = "parity_rust", srcs = ["//core:tests/parity.rs"], - deps = ["//core:stdbr-core", "@crates//:serde_json"], data = [":gen_golden"], env = GOLDEN_ENV, + deps = [ + "//core:stdbr-core", + "@crates//:serde_json", + ], ) cc_test( name = "parity_ffi_c", srcs = ["//bindings/ffi-c:test_parity.c"], + data = [":gen_golden"], + env = GOLDEN_ENV, deps = [ "//bindings/ffi-c:stdbr-ffi-static", "//bindings/ffi-c:stdbr-header", "@cjson", ], - data = [":gen_golden"], - env = GOLDEN_ENV, ) write_file( @@ -49,12 +52,12 @@ sh_test( data = [ ":gen_golden", "//bindings/nodejs:stdbr-node", - "//bindings/nodejs:test_parity.js", + "//bindings/nodejs:tests/parity.mjs", ], env = { "GOLDEN_JSON": "$(rootpath :gen_golden)", "STDBR_NODE": "$(rootpath //bindings/nodejs:stdbr-node)", - "STDBR_TEST_JS": "$(rootpath //bindings/nodejs:test_parity.js)", + "STDBR_TEST_JS": "$(rootpath //bindings/nodejs:tests/parity.mjs)", }, ) @@ -78,12 +81,12 @@ sh_test( data = [ ":gen_golden", "//bindings/python:stdbr-pymodule", - "//bindings/python:test_parity.py", + "//bindings/python:tests/parity.py", ], env = { "GOLDEN_JSON": "$(rootpath :gen_golden)", "STDBR_PYMODULE": "$(rootpath //bindings/python:stdbr-pymodule)", - "STDBR_TEST_PY": "$(rootpath //bindings/python:test_parity.py)", + "STDBR_TEST_PY": "$(rootpath //bindings/python:tests/parity.py)", }, ) @@ -95,7 +98,7 @@ write_file( "set -euo pipefail", 'RUNFILES="${TEST_SRCDIR}/${TEST_WORKSPACE}"', 'export GOLDEN_JSON="${RUNFILES}/${GOLDEN_JSON}"', - 'for f in $WASM_PKG_FILES; do', + "for f in $WASM_PKG_FILES; do", ' case "$f" in *.js) export WASM_PKG="${RUNFILES}/$f"; break;; esac', "done", 'exec node --test "${RUNFILES}/${STDBR_TEST_JS}"', @@ -109,11 +112,11 @@ sh_test( data = [ ":gen_golden", "//bindings/wasm:stdbr-wasm", - "//bindings/wasm:test_parity.js", + "//bindings/wasm:tests/parity.mjs", ], env = { "GOLDEN_JSON": "$(rootpath :gen_golden)", "WASM_PKG_FILES": "$(rootpaths //bindings/wasm:stdbr-wasm)", - "STDBR_TEST_JS": "$(rootpath //bindings/wasm:test_parity.js)", + "STDBR_TEST_JS": "$(rootpath //bindings/wasm:tests/parity.mjs)", }, ) diff --git a/tools/bench/BUILD.bazel b/tools/bench/BUILD.bazel new file mode 100644 index 0000000..8089187 --- /dev/null +++ b/tools/bench/BUILD.bazel @@ -0,0 +1,8 @@ +load("@rules_rust//rust:defs.bzl", "rust_binary") + +rust_binary( + name = "stdbr-bench", + srcs = ["main.rs"], + tags = ["manual"], + deps = ["//core:stdbr-core"], +) diff --git a/tools/bench/main.rs b/tools/bench/main.rs new file mode 100644 index 0000000..8c299fe --- /dev/null +++ b/tools/bench/main.rs @@ -0,0 +1,63 @@ +use std::hint::black_box; +use std::time::Instant; +use stdbr_core::{cnpj, cpf, municipio}; + +fn argument(index: usize, default: usize) -> usize { + std::env::args() + .nth(index) + .map(|value| { + value + .parse() + .expect("benchmark arguments must be positive integers") + }) + .unwrap_or(default) +} + +fn main() { + let validation_items = argument(1, 100_000); + let search_iterations = argument(2, 1_000); + + let cpfs: Vec<_> = (0..validation_items) + .map(|seed| cpf::generate_with_seed(seed as u64).as_str().to_owned()) + .collect(); + let cnpjs: Vec<_> = (0..validation_items) + .map(|seed| { + cnpj::generate_with_seed(seed as u64, cnpj::CnpjKind::Alphanumeric) + .as_str() + .to_owned() + }) + .collect(); + + let started = Instant::now(); + let valid = cpfs + .iter() + .filter(|value| cpf::is_valid(black_box(value))) + .count() + + cnpjs + .iter() + .filter(|value| cnpj::is_valid(black_box(value))) + .count(); + let elapsed = started.elapsed(); + black_box(valid); + println!( + "batch validation: {} items in {:?} ({:.0} items/s)", + validation_items * 2, + elapsed, + validation_items as f64 * 2.0 / elapsed.as_secs_f64() + ); + + let queries = ["sao", "porto", "santa", "rio", "belo", "ac"]; + let started = Instant::now(); + let mut matches = 0usize; + for index in 0..search_iterations { + matches += + municipio::Municipio::search_by_name(black_box(queries[index % queries.len()])).count(); + } + let elapsed = started.elapsed(); + black_box(matches); + println!( + "municipal search: {search_iterations} queries in {:?} ({:.0} queries/s)", + elapsed, + search_iterations as f64 / elapsed.as_secs_f64() + ); +} diff --git a/tools/municipio_gen/BUILD.bazel b/tools/municipio_gen/BUILD.bazel new file mode 100644 index 0000000..d4d90b3 --- /dev/null +++ b/tools/municipio_gen/BUILD.bazel @@ -0,0 +1,31 @@ +load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "municipio_gen_lib", + srcs = ["src/lib.rs"], + deps = ["@crates//:serde_json"], +) + +rust_binary( + name = "municipio_gen", + srcs = ["src/main.rs"], + deps = [":municipio_gen_lib"], +) + +alias( + name = "generate", + actual = ":municipio_gen", +) + +rust_test( + name = "drift_test", + srcs = ["tests/drift.rs"], + compile_data = [ + "ibge_municipios.json", + "tests/ibge_api_fixture.json", + "//core:src/municipio/generated.rs", + ], + deps = [":municipio_gen_lib"], +) diff --git a/tools/municipio_gen/ibge_municipios.json b/tools/municipio_gen/ibge_municipios.json new file mode 100644 index 0000000..3ffb582 --- /dev/null +++ b/tools/municipio_gen/ibge_municipios.json @@ -0,0 +1,27857 @@ +[ + { + "id": 1200013, + "nome": "Acrelândia", + "uf": "AC" + }, + { + "id": 1200054, + "nome": "Assis Brasil", + "uf": "AC" + }, + { + "id": 1200104, + "nome": "Brasiléia", + "uf": "AC" + }, + { + "id": 1200138, + "nome": "Bujari", + "uf": "AC" + }, + { + "id": 1200179, + "nome": "Capixaba", + "uf": "AC" + }, + { + "id": 1200203, + "nome": "Cruzeiro do Sul", + "uf": "AC" + }, + { + "id": 1200252, + "nome": "Epitaciolândia", + "uf": "AC" + }, + { + "id": 1200302, + "nome": "Feijó", + "uf": "AC" + }, + { + "id": 1200328, + "nome": "Jordão", + "uf": "AC" + }, + { + "id": 1200344, + "nome": "Manoel Urbano", + "uf": "AC" + }, + { + "id": 1200351, + "nome": "Marechal Thaumaturgo", + "uf": "AC" + }, + { + "id": 1200336, + "nome": "Mâncio Lima", + "uf": "AC" + }, + { + "id": 1200385, + "nome": "Plácido de Castro", + "uf": "AC" + }, + { + "id": 1200807, + "nome": "Porto Acre", + "uf": "AC" + }, + { + "id": 1200393, + "nome": "Porto Walter", + "uf": "AC" + }, + { + "id": 1200401, + "nome": "Rio Branco", + "uf": "AC" + }, + { + "id": 1200427, + "nome": "Rodrigues Alves", + "uf": "AC" + }, + { + "id": 1200435, + "nome": "Santa Rosa do Purus", + "uf": "AC" + }, + { + "id": 1200500, + "nome": "Sena Madureira", + "uf": "AC" + }, + { + "id": 1200450, + "nome": "Senador Guiomard", + "uf": "AC" + }, + { + "id": 1200609, + "nome": "Tarauacá", + "uf": "AC" + }, + { + "id": 1200708, + "nome": "Xapuri", + "uf": "AC" + }, + { + "id": 2700201, + "nome": "Anadia", + "uf": "AL" + }, + { + "id": 2700300, + "nome": "Arapiraca", + "uf": "AL" + }, + { + "id": 2700409, + "nome": "Atalaia", + "uf": "AL" + }, + { + "id": 2700508, + "nome": "Barra de Santo Antônio", + "uf": "AL" + }, + { + "id": 2700607, + "nome": "Barra de São Miguel", + "uf": "AL" + }, + { + "id": 2700706, + "nome": "Batalha", + "uf": "AL" + }, + { + "id": 2700904, + "nome": "Belo Monte", + "uf": "AL" + }, + { + "id": 2700805, + "nome": "Belém", + "uf": "AL" + }, + { + "id": 2701001, + "nome": "Boca da Mata", + "uf": "AL" + }, + { + "id": 2701100, + "nome": "Branquinha", + "uf": "AL" + }, + { + "id": 2701209, + "nome": "Cacimbinhas", + "uf": "AL" + }, + { + "id": 2701308, + "nome": "Cajueiro", + "uf": "AL" + }, + { + "id": 2701357, + "nome": "Campestre", + "uf": "AL" + }, + { + "id": 2701407, + "nome": "Campo Alegre", + "uf": "AL" + }, + { + "id": 2701506, + "nome": "Campo Grande", + "uf": "AL" + }, + { + "id": 2701605, + "nome": "Canapi", + "uf": "AL" + }, + { + "id": 2701704, + "nome": "Capela", + "uf": "AL" + }, + { + "id": 2701803, + "nome": "Carneiros", + "uf": "AL" + }, + { + "id": 2701902, + "nome": "Chã Preta", + "uf": "AL" + }, + { + "id": 2702009, + "nome": "Coité do Nóia", + "uf": "AL" + }, + { + "id": 2702108, + "nome": "Colônia Leopoldina", + "uf": "AL" + }, + { + "id": 2702207, + "nome": "Coqueiro Seco", + "uf": "AL" + }, + { + "id": 2702306, + "nome": "Coruripe", + "uf": "AL" + }, + { + "id": 2702355, + "nome": "Craíbas", + "uf": "AL" + }, + { + "id": 2702405, + "nome": "Delmiro Gouveia", + "uf": "AL" + }, + { + "id": 2702504, + "nome": "Dois Riachos", + "uf": "AL" + }, + { + "id": 2702553, + "nome": "Estrela de Alagoas", + "uf": "AL" + }, + { + "id": 2702603, + "nome": "Feira Grande", + "uf": "AL" + }, + { + "id": 2702702, + "nome": "Feliz Deserto", + "uf": "AL" + }, + { + "id": 2702801, + "nome": "Flexeiras", + "uf": "AL" + }, + { + "id": 2702900, + "nome": "Girau do Ponciano", + "uf": "AL" + }, + { + "id": 2703007, + "nome": "Ibateguara", + "uf": "AL" + }, + { + "id": 2703106, + "nome": "Igaci", + "uf": "AL" + }, + { + "id": 2703205, + "nome": "Igreja Nova", + "uf": "AL" + }, + { + "id": 2703304, + "nome": "Inhapi", + "uf": "AL" + }, + { + "id": 2703403, + "nome": "Jacaré dos Homens", + "uf": "AL" + }, + { + "id": 2703502, + "nome": "Jacuípe", + "uf": "AL" + }, + { + "id": 2703601, + "nome": "Japaratinga", + "uf": "AL" + }, + { + "id": 2703700, + "nome": "Jaramataia", + "uf": "AL" + }, + { + "id": 2703759, + "nome": "Jequiá da Praia", + "uf": "AL" + }, + { + "id": 2703809, + "nome": "Joaquim Gomes", + "uf": "AL" + }, + { + "id": 2703908, + "nome": "Jundiá", + "uf": "AL" + }, + { + "id": 2704005, + "nome": "Junqueiro", + "uf": "AL" + }, + { + "id": 2704104, + "nome": "Lagoa da Canoa", + "uf": "AL" + }, + { + "id": 2704203, + "nome": "Limoeiro de Anadia", + "uf": "AL" + }, + { + "id": 2704302, + "nome": "Maceió", + "uf": "AL" + }, + { + "id": 2704401, + "nome": "Major Isidoro", + "uf": "AL" + }, + { + "id": 2704906, + "nome": "Mar Vermelho", + "uf": "AL" + }, + { + "id": 2704500, + "nome": "Maragogi", + "uf": "AL" + }, + { + "id": 2704609, + "nome": "Maravilha", + "uf": "AL" + }, + { + "id": 2704708, + "nome": "Marechal Deodoro", + "uf": "AL" + }, + { + "id": 2704807, + "nome": "Maribondo", + "uf": "AL" + }, + { + "id": 2705002, + "nome": "Mata Grande", + "uf": "AL" + }, + { + "id": 2705101, + "nome": "Matriz de Camaragibe", + "uf": "AL" + }, + { + "id": 2705200, + "nome": "Messias", + "uf": "AL" + }, + { + "id": 2705309, + "nome": "Minador do Negrão", + "uf": "AL" + }, + { + "id": 2705408, + "nome": "Monteirópolis", + "uf": "AL" + }, + { + "id": 2705507, + "nome": "Murici", + "uf": "AL" + }, + { + "id": 2705606, + "nome": "Novo Lino", + "uf": "AL" + }, + { + "id": 2705903, + "nome": "Olho d'Água Grande", + "uf": "AL" + }, + { + "id": 2705705, + "nome": "Olho d'Água das Flores", + "uf": "AL" + }, + { + "id": 2705804, + "nome": "Olho d'Água do Casado", + "uf": "AL" + }, + { + "id": 2706000, + "nome": "Olivença", + "uf": "AL" + }, + { + "id": 2706109, + "nome": "Ouro Branco", + "uf": "AL" + }, + { + "id": 2706208, + "nome": "Palestina", + "uf": "AL" + }, + { + "id": 2706307, + "nome": "Palmeira dos Índios", + "uf": "AL" + }, + { + "id": 2706422, + "nome": "Pariconha", + "uf": "AL" + }, + { + "id": 2706448, + "nome": "Paripueira", + "uf": "AL" + }, + { + "id": 2706505, + "nome": "Passo de Camaragibe", + "uf": "AL" + }, + { + "id": 2706604, + "nome": "Paulo Jacinto", + "uf": "AL" + }, + { + "id": 2706703, + "nome": "Penedo", + "uf": "AL" + }, + { + "id": 2706802, + "nome": "Piaçabuçu", + "uf": "AL" + }, + { + "id": 2706901, + "nome": "Pilar", + "uf": "AL" + }, + { + "id": 2707008, + "nome": "Pindoba", + "uf": "AL" + }, + { + "id": 2707107, + "nome": "Piranhas", + "uf": "AL" + }, + { + "id": 2707305, + "nome": "Porto Calvo", + "uf": "AL" + }, + { + "id": 2707503, + "nome": "Porto Real do Colégio", + "uf": "AL" + }, + { + "id": 2707404, + "nome": "Porto de Pedras", + "uf": "AL" + }, + { + "id": 2707206, + "nome": "Poço das Trincheiras", + "uf": "AL" + }, + { + "id": 2706406, + "nome": "Pão de Açúcar", + "uf": "AL" + }, + { + "id": 2707602, + "nome": "Quebrangulo", + "uf": "AL" + }, + { + "id": 2707701, + "nome": "Rio Largo", + "uf": "AL" + }, + { + "id": 2707800, + "nome": "Roteiro", + "uf": "AL" + }, + { + "id": 2707909, + "nome": "Santa Luzia do Norte", + "uf": "AL" + }, + { + "id": 2708006, + "nome": "Santana do Ipanema", + "uf": "AL" + }, + { + "id": 2708105, + "nome": "Santana do Mundaú", + "uf": "AL" + }, + { + "id": 2708907, + "nome": "Satuba", + "uf": "AL" + }, + { + "id": 2708956, + "nome": "Senador Rui Palmeira", + "uf": "AL" + }, + { + "id": 2708204, + "nome": "São Brás", + "uf": "AL" + }, + { + "id": 2708303, + "nome": "São José da Laje", + "uf": "AL" + }, + { + "id": 2708402, + "nome": "São José da Tapera", + "uf": "AL" + }, + { + "id": 2708501, + "nome": "São Luís do Quitunde", + "uf": "AL" + }, + { + "id": 2708600, + "nome": "São Miguel dos Campos", + "uf": "AL" + }, + { + "id": 2708709, + "nome": "São Miguel dos Milagres", + "uf": "AL" + }, + { + "id": 2708808, + "nome": "São Sebastião", + "uf": "AL" + }, + { + "id": 2709004, + "nome": "Tanque d'Arca", + "uf": "AL" + }, + { + "id": 2709103, + "nome": "Taquarana", + "uf": "AL" + }, + { + "id": 2709152, + "nome": "Teotônio Vilela", + "uf": "AL" + }, + { + "id": 2709202, + "nome": "Traipu", + "uf": "AL" + }, + { + "id": 2709301, + "nome": "União dos Palmares", + "uf": "AL" + }, + { + "id": 2709400, + "nome": "Viçosa", + "uf": "AL" + }, + { + "id": 2700102, + "nome": "Água Branca", + "uf": "AL" + }, + { + "id": 1300029, + "nome": "Alvarães", + "uf": "AM" + }, + { + "id": 1300060, + "nome": "Amaturá", + "uf": "AM" + }, + { + "id": 1300086, + "nome": "Anamã", + "uf": "AM" + }, + { + "id": 1300102, + "nome": "Anori", + "uf": "AM" + }, + { + "id": 1300144, + "nome": "Apuí", + "uf": "AM" + }, + { + "id": 1300201, + "nome": "Atalaia do Norte", + "uf": "AM" + }, + { + "id": 1300300, + "nome": "Autazes", + "uf": "AM" + }, + { + "id": 1300409, + "nome": "Barcelos", + "uf": "AM" + }, + { + "id": 1300508, + "nome": "Barreirinha", + "uf": "AM" + }, + { + "id": 1300607, + "nome": "Benjamin Constant", + "uf": "AM" + }, + { + "id": 1300631, + "nome": "Beruri", + "uf": "AM" + }, + { + "id": 1300680, + "nome": "Boa Vista do Ramos", + "uf": "AM" + }, + { + "id": 1300706, + "nome": "Boca do Acre", + "uf": "AM" + }, + { + "id": 1300805, + "nome": "Borba", + "uf": "AM" + }, + { + "id": 1300839, + "nome": "Caapiranga", + "uf": "AM" + }, + { + "id": 1300904, + "nome": "Canutama", + "uf": "AM" + }, + { + "id": 1301001, + "nome": "Carauari", + "uf": "AM" + }, + { + "id": 1301100, + "nome": "Careiro", + "uf": "AM" + }, + { + "id": 1301159, + "nome": "Careiro da Várzea", + "uf": "AM" + }, + { + "id": 1301209, + "nome": "Coari", + "uf": "AM" + }, + { + "id": 1301308, + "nome": "Codajás", + "uf": "AM" + }, + { + "id": 1301407, + "nome": "Eirunepé", + "uf": "AM" + }, + { + "id": 1301506, + "nome": "Envira", + "uf": "AM" + }, + { + "id": 1301605, + "nome": "Fonte Boa", + "uf": "AM" + }, + { + "id": 1301654, + "nome": "Guajará", + "uf": "AM" + }, + { + "id": 1301704, + "nome": "Humaitá", + "uf": "AM" + }, + { + "id": 1301803, + "nome": "Ipixuna", + "uf": "AM" + }, + { + "id": 1301852, + "nome": "Iranduba", + "uf": "AM" + }, + { + "id": 1301902, + "nome": "Itacoatiara", + "uf": "AM" + }, + { + "id": 1301951, + "nome": "Itamarati", + "uf": "AM" + }, + { + "id": 1302009, + "nome": "Itapiranga", + "uf": "AM" + }, + { + "id": 1302108, + "nome": "Japurá", + "uf": "AM" + }, + { + "id": 1302207, + "nome": "Juruá", + "uf": "AM" + }, + { + "id": 1302306, + "nome": "Jutaí", + "uf": "AM" + }, + { + "id": 1302405, + "nome": "Lábrea", + "uf": "AM" + }, + { + "id": 1302504, + "nome": "Manacapuru", + "uf": "AM" + }, + { + "id": 1302553, + "nome": "Manaquiri", + "uf": "AM" + }, + { + "id": 1302603, + "nome": "Manaus", + "uf": "AM" + }, + { + "id": 1302702, + "nome": "Manicoré", + "uf": "AM" + }, + { + "id": 1302801, + "nome": "Maraã", + "uf": "AM" + }, + { + "id": 1302900, + "nome": "Maués", + "uf": "AM" + }, + { + "id": 1303007, + "nome": "Nhamundá", + "uf": "AM" + }, + { + "id": 1303106, + "nome": "Nova Olinda do Norte", + "uf": "AM" + }, + { + "id": 1303205, + "nome": "Novo Airão", + "uf": "AM" + }, + { + "id": 1303304, + "nome": "Novo Aripuanã", + "uf": "AM" + }, + { + "id": 1303403, + "nome": "Parintins", + "uf": "AM" + }, + { + "id": 1303502, + "nome": "Pauini", + "uf": "AM" + }, + { + "id": 1303536, + "nome": "Presidente Figueiredo", + "uf": "AM" + }, + { + "id": 1303569, + "nome": "Rio Preto da Eva", + "uf": "AM" + }, + { + "id": 1303601, + "nome": "Santa Isabel do Rio Negro", + "uf": "AM" + }, + { + "id": 1303700, + "nome": "Santo Antônio do Içá", + "uf": "AM" + }, + { + "id": 1304005, + "nome": "Silves", + "uf": "AM" + }, + { + "id": 1303809, + "nome": "São Gabriel da Cachoeira", + "uf": "AM" + }, + { + "id": 1303908, + "nome": "São Paulo de Olivença", + "uf": "AM" + }, + { + "id": 1303957, + "nome": "São Sebastião do Uatumã", + "uf": "AM" + }, + { + "id": 1304062, + "nome": "Tabatinga", + "uf": "AM" + }, + { + "id": 1304104, + "nome": "Tapauá", + "uf": "AM" + }, + { + "id": 1304203, + "nome": "Tefé", + "uf": "AM" + }, + { + "id": 1304237, + "nome": "Tonantins", + "uf": "AM" + }, + { + "id": 1304260, + "nome": "Uarini", + "uf": "AM" + }, + { + "id": 1304302, + "nome": "Urucará", + "uf": "AM" + }, + { + "id": 1304401, + "nome": "Urucurituba", + "uf": "AM" + }, + { + "id": 1600105, + "nome": "Amapá", + "uf": "AP" + }, + { + "id": 1600204, + "nome": "Calçoene", + "uf": "AP" + }, + { + "id": 1600212, + "nome": "Cutias", + "uf": "AP" + }, + { + "id": 1600238, + "nome": "Ferreira Gomes", + "uf": "AP" + }, + { + "id": 1600253, + "nome": "Itaubal", + "uf": "AP" + }, + { + "id": 1600279, + "nome": "Laranjal do Jari", + "uf": "AP" + }, + { + "id": 1600303, + "nome": "Macapá", + "uf": "AP" + }, + { + "id": 1600402, + "nome": "Mazagão", + "uf": "AP" + }, + { + "id": 1600501, + "nome": "Oiapoque", + "uf": "AP" + }, + { + "id": 1600154, + "nome": "Pedra Branca do Amapari", + "uf": "AP" + }, + { + "id": 1600535, + "nome": "Porto Grande", + "uf": "AP" + }, + { + "id": 1600550, + "nome": "Pracuúba", + "uf": "AP" + }, + { + "id": 1600600, + "nome": "Santana", + "uf": "AP" + }, + { + "id": 1600055, + "nome": "Serra do Navio", + "uf": "AP" + }, + { + "id": 1600709, + "nome": "Tartarugalzinho", + "uf": "AP" + }, + { + "id": 1600808, + "nome": "Vitória do Jari", + "uf": "AP" + }, + { + "id": 2900207, + "nome": "Abaré", + "uf": "BA" + }, + { + "id": 2900108, + "nome": "Abaíra", + "uf": "BA" + }, + { + "id": 2900306, + "nome": "Acajutiba", + "uf": "BA" + }, + { + "id": 2900355, + "nome": "Adustina", + "uf": "BA" + }, + { + "id": 2900603, + "nome": "Aiquara", + "uf": "BA" + }, + { + "id": 2900702, + "nome": "Alagoinhas", + "uf": "BA" + }, + { + "id": 2900801, + "nome": "Alcobaça", + "uf": "BA" + }, + { + "id": 2900900, + "nome": "Almadina", + "uf": "BA" + }, + { + "id": 2901007, + "nome": "Amargosa", + "uf": "BA" + }, + { + "id": 2901106, + "nome": "Amélia Rodrigues", + "uf": "BA" + }, + { + "id": 2901155, + "nome": "América Dourada", + "uf": "BA" + }, + { + "id": 2901205, + "nome": "Anagé", + "uf": "BA" + }, + { + "id": 2901304, + "nome": "Andaraí", + "uf": "BA" + }, + { + "id": 2901353, + "nome": "Andorinha", + "uf": "BA" + }, + { + "id": 2901403, + "nome": "Angical", + "uf": "BA" + }, + { + "id": 2901502, + "nome": "Anguera", + "uf": "BA" + }, + { + "id": 2901601, + "nome": "Antas", + "uf": "BA" + }, + { + "id": 2901700, + "nome": "Antônio Cardoso", + "uf": "BA" + }, + { + "id": 2901809, + "nome": "Antônio Gonçalves", + "uf": "BA" + }, + { + "id": 2901908, + "nome": "Aporá", + "uf": "BA" + }, + { + "id": 2901957, + "nome": "Apuarema", + "uf": "BA" + }, + { + "id": 2902005, + "nome": "Aracatu", + "uf": "BA" + }, + { + "id": 2902104, + "nome": "Araci", + "uf": "BA" + }, + { + "id": 2902203, + "nome": "Aramari", + "uf": "BA" + }, + { + "id": 2902252, + "nome": "Arataca", + "uf": "BA" + }, + { + "id": 2902302, + "nome": "Aratuípe", + "uf": "BA" + }, + { + "id": 2902054, + "nome": "Araçás", + "uf": "BA" + }, + { + "id": 2902401, + "nome": "Aurelino Leal", + "uf": "BA" + }, + { + "id": 2902500, + "nome": "Baianópolis", + "uf": "BA" + }, + { + "id": 2902609, + "nome": "Baixa Grande", + "uf": "BA" + }, + { + "id": 2902658, + "nome": "Banzaê", + "uf": "BA" + }, + { + "id": 2902708, + "nome": "Barra", + "uf": "BA" + }, + { + "id": 2902807, + "nome": "Barra da Estiva", + "uf": "BA" + }, + { + "id": 2902906, + "nome": "Barra do Choça", + "uf": "BA" + }, + { + "id": 2903003, + "nome": "Barra do Mendes", + "uf": "BA" + }, + { + "id": 2903102, + "nome": "Barra do Rocha", + "uf": "BA" + }, + { + "id": 2903201, + "nome": "Barreiras", + "uf": "BA" + }, + { + "id": 2903235, + "nome": "Barro Alto", + "uf": "BA" + }, + { + "id": 2903300, + "nome": "Barro Preto", + "uf": "BA" + }, + { + "id": 2903276, + "nome": "Barrocas", + "uf": "BA" + }, + { + "id": 2903409, + "nome": "Belmonte", + "uf": "BA" + }, + { + "id": 2903508, + "nome": "Belo Campo", + "uf": "BA" + }, + { + "id": 2903607, + "nome": "Biritinga", + "uf": "BA" + }, + { + "id": 2903706, + "nome": "Boa Nova", + "uf": "BA" + }, + { + "id": 2903805, + "nome": "Boa Vista do Tupim", + "uf": "BA" + }, + { + "id": 2903904, + "nome": "Bom Jesus da Lapa", + "uf": "BA" + }, + { + "id": 2903953, + "nome": "Bom Jesus da Serra", + "uf": "BA" + }, + { + "id": 2904001, + "nome": "Boninal", + "uf": "BA" + }, + { + "id": 2904050, + "nome": "Bonito", + "uf": "BA" + }, + { + "id": 2904100, + "nome": "Boquira", + "uf": "BA" + }, + { + "id": 2904209, + "nome": "Botuporã", + "uf": "BA" + }, + { + "id": 2904407, + "nome": "Brejolândia", + "uf": "BA" + }, + { + "id": 2904308, + "nome": "Brejões", + "uf": "BA" + }, + { + "id": 2904506, + "nome": "Brotas de Macaúbas", + "uf": "BA" + }, + { + "id": 2904605, + "nome": "Brumado", + "uf": "BA" + }, + { + "id": 2904704, + "nome": "Buerarema", + "uf": "BA" + }, + { + "id": 2904753, + "nome": "Buritirama", + "uf": "BA" + }, + { + "id": 2904803, + "nome": "Caatiba", + "uf": "BA" + }, + { + "id": 2904852, + "nome": "Cabaceiras do Paraguaçu", + "uf": "BA" + }, + { + "id": 2904902, + "nome": "Cachoeira", + "uf": "BA" + }, + { + "id": 2905008, + "nome": "Caculé", + "uf": "BA" + }, + { + "id": 2905156, + "nome": "Caetanos", + "uf": "BA" + }, + { + "id": 2905206, + "nome": "Caetité", + "uf": "BA" + }, + { + "id": 2905305, + "nome": "Cafarnaum", + "uf": "BA" + }, + { + "id": 2905404, + "nome": "Cairu", + "uf": "BA" + }, + { + "id": 2905503, + "nome": "Caldeirão Grande", + "uf": "BA" + }, + { + "id": 2905602, + "nome": "Camacan", + "uf": "BA" + }, + { + "id": 2905800, + "nome": "Camamu", + "uf": "BA" + }, + { + "id": 2905701, + "nome": "Camaçari", + "uf": "BA" + }, + { + "id": 2905909, + "nome": "Campo Alegre de Lourdes", + "uf": "BA" + }, + { + "id": 2906006, + "nome": "Campo Formoso", + "uf": "BA" + }, + { + "id": 2906204, + "nome": "Canarana", + "uf": "BA" + }, + { + "id": 2906303, + "nome": "Canavieiras", + "uf": "BA" + }, + { + "id": 2906402, + "nome": "Candeal", + "uf": "BA" + }, + { + "id": 2906501, + "nome": "Candeias", + "uf": "BA" + }, + { + "id": 2906600, + "nome": "Candiba", + "uf": "BA" + }, + { + "id": 2906808, + "nome": "Cansanção", + "uf": "BA" + }, + { + "id": 2906824, + "nome": "Canudos", + "uf": "BA" + }, + { + "id": 2906105, + "nome": "Canápolis", + "uf": "BA" + }, + { + "id": 2906857, + "nome": "Capela do Alto Alegre", + "uf": "BA" + }, + { + "id": 2906873, + "nome": "Capim Grosso", + "uf": "BA" + }, + { + "id": 2906907, + "nome": "Caravelas", + "uf": "BA" + }, + { + "id": 2906899, + "nome": "Caraíbas", + "uf": "BA" + }, + { + "id": 2907004, + "nome": "Cardeal da Silva", + "uf": "BA" + }, + { + "id": 2907103, + "nome": "Carinhanha", + "uf": "BA" + }, + { + "id": 2907202, + "nome": "Casa Nova", + "uf": "BA" + }, + { + "id": 2907301, + "nome": "Castro Alves", + "uf": "BA" + }, + { + "id": 2907400, + "nome": "Catolândia", + "uf": "BA" + }, + { + "id": 2907509, + "nome": "Catu", + "uf": "BA" + }, + { + "id": 2907558, + "nome": "Caturama", + "uf": "BA" + }, + { + "id": 2905107, + "nome": "Caém", + "uf": "BA" + }, + { + "id": 2907608, + "nome": "Central", + "uf": "BA" + }, + { + "id": 2907707, + "nome": "Chorrochó", + "uf": "BA" + }, + { + "id": 2907905, + "nome": "Cipó", + "uf": "BA" + }, + { + "id": 2908002, + "nome": "Coaraci", + "uf": "BA" + }, + { + "id": 2908101, + "nome": "Cocos", + "uf": "BA" + }, + { + "id": 2908200, + "nome": "Conceição da Feira", + "uf": "BA" + }, + { + "id": 2908309, + "nome": "Conceição do Almeida", + "uf": "BA" + }, + { + "id": 2908408, + "nome": "Conceição do Coité", + "uf": "BA" + }, + { + "id": 2908507, + "nome": "Conceição do Jacuípe", + "uf": "BA" + }, + { + "id": 2908606, + "nome": "Conde", + "uf": "BA" + }, + { + "id": 2908705, + "nome": "Condeúba", + "uf": "BA" + }, + { + "id": 2908804, + "nome": "Contendas do Sincorá", + "uf": "BA" + }, + { + "id": 2908903, + "nome": "Coração de Maria", + "uf": "BA" + }, + { + "id": 2909000, + "nome": "Cordeiros", + "uf": "BA" + }, + { + "id": 2909109, + "nome": "Coribe", + "uf": "BA" + }, + { + "id": 2909208, + "nome": "Coronel João Sá", + "uf": "BA" + }, + { + "id": 2909307, + "nome": "Correntina", + "uf": "BA" + }, + { + "id": 2909406, + "nome": "Cotegipe", + "uf": "BA" + }, + { + "id": 2909505, + "nome": "Cravolândia", + "uf": "BA" + }, + { + "id": 2909703, + "nome": "Cristópolis", + "uf": "BA" + }, + { + "id": 2909604, + "nome": "Crisópolis", + "uf": "BA" + }, + { + "id": 2909802, + "nome": "Cruz das Almas", + "uf": "BA" + }, + { + "id": 2909901, + "nome": "Curaçá", + "uf": "BA" + }, + { + "id": 2906709, + "nome": "Cândido Sales", + "uf": "BA" + }, + { + "id": 2907806, + "nome": "Cícero Dantas", + "uf": "BA" + }, + { + "id": 2910057, + "nome": "Dias d'Ávila", + "uf": "BA" + }, + { + "id": 2910107, + "nome": "Dom Basílio", + "uf": "BA" + }, + { + "id": 2910206, + "nome": "Dom Macedo Costa", + "uf": "BA" + }, + { + "id": 2910008, + "nome": "Dário Meira", + "uf": "BA" + }, + { + "id": 2910305, + "nome": "Elísio Medrado", + "uf": "BA" + }, + { + "id": 2910404, + "nome": "Encruzilhada", + "uf": "BA" + }, + { + "id": 2910503, + "nome": "Entre Rios", + "uf": "BA" + }, + { + "id": 2910602, + "nome": "Esplanada", + "uf": "BA" + }, + { + "id": 2910701, + "nome": "Euclides da Cunha", + "uf": "BA" + }, + { + "id": 2910727, + "nome": "Eunápolis", + "uf": "BA" + }, + { + "id": 2910776, + "nome": "Feira da Mata", + "uf": "BA" + }, + { + "id": 2910800, + "nome": "Feira de Santana", + "uf": "BA" + }, + { + "id": 2910859, + "nome": "Filadélfia", + "uf": "BA" + }, + { + "id": 2910909, + "nome": "Firmino Alves", + "uf": "BA" + }, + { + "id": 2911006, + "nome": "Floresta Azul", + "uf": "BA" + }, + { + "id": 2911105, + "nome": "Formosa do Rio Preto", + "uf": "BA" + }, + { + "id": 2910750, + "nome": "Fátima", + "uf": "BA" + }, + { + "id": 2911204, + "nome": "Gandu", + "uf": "BA" + }, + { + "id": 2911253, + "nome": "Gavião", + "uf": "BA" + }, + { + "id": 2911303, + "nome": "Gentio do Ouro", + "uf": "BA" + }, + { + "id": 2911402, + "nome": "Glória", + "uf": "BA" + }, + { + "id": 2911501, + "nome": "Gongogi", + "uf": "BA" + }, + { + "id": 2911600, + "nome": "Governador Mangabeira", + "uf": "BA" + }, + { + "id": 2911659, + "nome": "Guajeru", + "uf": "BA" + }, + { + "id": 2911709, + "nome": "Guanambi", + "uf": "BA" + }, + { + "id": 2911808, + "nome": "Guaratinga", + "uf": "BA" + }, + { + "id": 2911857, + "nome": "Heliópolis", + "uf": "BA" + }, + { + "id": 2911907, + "nome": "Iaçu", + "uf": "BA" + }, + { + "id": 2912004, + "nome": "Ibiassucê", + "uf": "BA" + }, + { + "id": 2912103, + "nome": "Ibicaraí", + "uf": "BA" + }, + { + "id": 2912202, + "nome": "Ibicoara", + "uf": "BA" + }, + { + "id": 2912301, + "nome": "Ibicuí", + "uf": "BA" + }, + { + "id": 2912400, + "nome": "Ibipeba", + "uf": "BA" + }, + { + "id": 2912509, + "nome": "Ibipitanga", + "uf": "BA" + }, + { + "id": 2912608, + "nome": "Ibiquera", + "uf": "BA" + }, + { + "id": 2912707, + "nome": "Ibirapitanga", + "uf": "BA" + }, + { + "id": 2912806, + "nome": "Ibirapuã", + "uf": "BA" + }, + { + "id": 2912905, + "nome": "Ibirataia", + "uf": "BA" + }, + { + "id": 2913002, + "nome": "Ibitiara", + "uf": "BA" + }, + { + "id": 2913101, + "nome": "Ibititá", + "uf": "BA" + }, + { + "id": 2913200, + "nome": "Ibotirama", + "uf": "BA" + }, + { + "id": 2913309, + "nome": "Ichu", + "uf": "BA" + }, + { + "id": 2913408, + "nome": "Igaporã", + "uf": "BA" + }, + { + "id": 2913457, + "nome": "Igrapiúna", + "uf": "BA" + }, + { + "id": 2913507, + "nome": "Iguaí", + "uf": "BA" + }, + { + "id": 2913606, + "nome": "Ilhéus", + "uf": "BA" + }, + { + "id": 2913705, + "nome": "Inhambupe", + "uf": "BA" + }, + { + "id": 2913804, + "nome": "Ipecaetá", + "uf": "BA" + }, + { + "id": 2913903, + "nome": "Ipiaú", + "uf": "BA" + }, + { + "id": 2914000, + "nome": "Ipirá", + "uf": "BA" + }, + { + "id": 2914109, + "nome": "Ipupiara", + "uf": "BA" + }, + { + "id": 2914208, + "nome": "Irajuba", + "uf": "BA" + }, + { + "id": 2914307, + "nome": "Iramaia", + "uf": "BA" + }, + { + "id": 2914406, + "nome": "Iraquara", + "uf": "BA" + }, + { + "id": 2914505, + "nome": "Irará", + "uf": "BA" + }, + { + "id": 2914604, + "nome": "Irecê", + "uf": "BA" + }, + { + "id": 2914653, + "nome": "Itabela", + "uf": "BA" + }, + { + "id": 2914703, + "nome": "Itaberaba", + "uf": "BA" + }, + { + "id": 2914802, + "nome": "Itabuna", + "uf": "BA" + }, + { + "id": 2914901, + "nome": "Itacaré", + "uf": "BA" + }, + { + "id": 2915007, + "nome": "Itaeté", + "uf": "BA" + }, + { + "id": 2915106, + "nome": "Itagi", + "uf": "BA" + }, + { + "id": 2915205, + "nome": "Itagibá", + "uf": "BA" + }, + { + "id": 2915304, + "nome": "Itagimirim", + "uf": "BA" + }, + { + "id": 2915353, + "nome": "Itaguaçu da Bahia", + "uf": "BA" + }, + { + "id": 2915403, + "nome": "Itaju do Colônia", + "uf": "BA" + }, + { + "id": 2915502, + "nome": "Itajuípe", + "uf": "BA" + }, + { + "id": 2915601, + "nome": "Itamaraju", + "uf": "BA" + }, + { + "id": 2915700, + "nome": "Itamari", + "uf": "BA" + }, + { + "id": 2915809, + "nome": "Itambé", + "uf": "BA" + }, + { + "id": 2915908, + "nome": "Itanagra", + "uf": "BA" + }, + { + "id": 2916005, + "nome": "Itanhém", + "uf": "BA" + }, + { + "id": 2916104, + "nome": "Itaparica", + "uf": "BA" + }, + { + "id": 2916302, + "nome": "Itapebi", + "uf": "BA" + }, + { + "id": 2916401, + "nome": "Itapetinga", + "uf": "BA" + }, + { + "id": 2916500, + "nome": "Itapicuru", + "uf": "BA" + }, + { + "id": 2916609, + "nome": "Itapitanga", + "uf": "BA" + }, + { + "id": 2916203, + "nome": "Itapé", + "uf": "BA" + }, + { + "id": 2916708, + "nome": "Itaquara", + "uf": "BA" + }, + { + "id": 2916807, + "nome": "Itarantim", + "uf": "BA" + }, + { + "id": 2916856, + "nome": "Itatim", + "uf": "BA" + }, + { + "id": 2916906, + "nome": "Itiruçu", + "uf": "BA" + }, + { + "id": 2917003, + "nome": "Itiúba", + "uf": "BA" + }, + { + "id": 2917102, + "nome": "Itororó", + "uf": "BA" + }, + { + "id": 2917201, + "nome": "Ituaçu", + "uf": "BA" + }, + { + "id": 2917300, + "nome": "Ituberá", + "uf": "BA" + }, + { + "id": 2917334, + "nome": "Iuiu", + "uf": "BA" + }, + { + "id": 2917359, + "nome": "Jaborandi", + "uf": "BA" + }, + { + "id": 2917409, + "nome": "Jacaraci", + "uf": "BA" + }, + { + "id": 2917508, + "nome": "Jacobina", + "uf": "BA" + }, + { + "id": 2917607, + "nome": "Jaguaquara", + "uf": "BA" + }, + { + "id": 2917706, + "nome": "Jaguarari", + "uf": "BA" + }, + { + "id": 2917805, + "nome": "Jaguaripe", + "uf": "BA" + }, + { + "id": 2917904, + "nome": "Jandaíra", + "uf": "BA" + }, + { + "id": 2918001, + "nome": "Jequié", + "uf": "BA" + }, + { + "id": 2918100, + "nome": "Jeremoabo", + "uf": "BA" + }, + { + "id": 2918209, + "nome": "Jiquiriçá", + "uf": "BA" + }, + { + "id": 2918308, + "nome": "Jitaúna", + "uf": "BA" + }, + { + "id": 2918357, + "nome": "João Dourado", + "uf": "BA" + }, + { + "id": 2918407, + "nome": "Juazeiro", + "uf": "BA" + }, + { + "id": 2918456, + "nome": "Jucuruçu", + "uf": "BA" + }, + { + "id": 2918506, + "nome": "Jussara", + "uf": "BA" + }, + { + "id": 2918555, + "nome": "Jussari", + "uf": "BA" + }, + { + "id": 2918605, + "nome": "Jussiape", + "uf": "BA" + }, + { + "id": 2918704, + "nome": "Lafaiete Coutinho", + "uf": "BA" + }, + { + "id": 2918753, + "nome": "Lagoa Real", + "uf": "BA" + }, + { + "id": 2918803, + "nome": "Laje", + "uf": "BA" + }, + { + "id": 2919009, + "nome": "Lajedinho", + "uf": "BA" + }, + { + "id": 2919058, + "nome": "Lajedo do Tabocal", + "uf": "BA" + }, + { + "id": 2918902, + "nome": "Lajedão", + "uf": "BA" + }, + { + "id": 2919108, + "nome": "Lamarão", + "uf": "BA" + }, + { + "id": 2919157, + "nome": "Lapão", + "uf": "BA" + }, + { + "id": 2919207, + "nome": "Lauro de Freitas", + "uf": "BA" + }, + { + "id": 2919306, + "nome": "Lençóis", + "uf": "BA" + }, + { + "id": 2919405, + "nome": "Licínio de Almeida", + "uf": "BA" + }, + { + "id": 2919504, + "nome": "Livramento de Nossa Senhora", + "uf": "BA" + }, + { + "id": 2919553, + "nome": "Luís Eduardo Magalhães", + "uf": "BA" + }, + { + "id": 2919603, + "nome": "Macajuba", + "uf": "BA" + }, + { + "id": 2919702, + "nome": "Macarani", + "uf": "BA" + }, + { + "id": 2919801, + "nome": "Macaúbas", + "uf": "BA" + }, + { + "id": 2919900, + "nome": "Macururé", + "uf": "BA" + }, + { + "id": 2919926, + "nome": "Madre de Deus", + "uf": "BA" + }, + { + "id": 2919959, + "nome": "Maetinga", + "uf": "BA" + }, + { + "id": 2920007, + "nome": "Maiquinique", + "uf": "BA" + }, + { + "id": 2920106, + "nome": "Mairi", + "uf": "BA" + }, + { + "id": 2920205, + "nome": "Malhada", + "uf": "BA" + }, + { + "id": 2920304, + "nome": "Malhada de Pedras", + "uf": "BA" + }, + { + "id": 2920403, + "nome": "Manoel Vitorino", + "uf": "BA" + }, + { + "id": 2920452, + "nome": "Mansidão", + "uf": "BA" + }, + { + "id": 2920502, + "nome": "Maracás", + "uf": "BA" + }, + { + "id": 2920601, + "nome": "Maragogipe", + "uf": "BA" + }, + { + "id": 2920700, + "nome": "Maraú", + "uf": "BA" + }, + { + "id": 2920809, + "nome": "Marcionílio Souza", + "uf": "BA" + }, + { + "id": 2920908, + "nome": "Mascote", + "uf": "BA" + }, + { + "id": 2921005, + "nome": "Mata de São João", + "uf": "BA" + }, + { + "id": 2921054, + "nome": "Matina", + "uf": "BA" + }, + { + "id": 2921104, + "nome": "Medeiros Neto", + "uf": "BA" + }, + { + "id": 2921203, + "nome": "Miguel Calmon", + "uf": "BA" + }, + { + "id": 2921302, + "nome": "Milagres", + "uf": "BA" + }, + { + "id": 2921401, + "nome": "Mirangaba", + "uf": "BA" + }, + { + "id": 2921450, + "nome": "Mirante", + "uf": "BA" + }, + { + "id": 2921500, + "nome": "Monte Santo", + "uf": "BA" + }, + { + "id": 2921609, + "nome": "Morpará", + "uf": "BA" + }, + { + "id": 2921708, + "nome": "Morro do Chapéu", + "uf": "BA" + }, + { + "id": 2921807, + "nome": "Mortugaba", + "uf": "BA" + }, + { + "id": 2921906, + "nome": "Mucugê", + "uf": "BA" + }, + { + "id": 2922003, + "nome": "Mucuri", + "uf": "BA" + }, + { + "id": 2922052, + "nome": "Mulungu do Morro", + "uf": "BA" + }, + { + "id": 2922102, + "nome": "Mundo Novo", + "uf": "BA" + }, + { + "id": 2922201, + "nome": "Muniz Ferreira", + "uf": "BA" + }, + { + "id": 2922250, + "nome": "Muquém do São Francisco", + "uf": "BA" + }, + { + "id": 2922300, + "nome": "Muritiba", + "uf": "BA" + }, + { + "id": 2922409, + "nome": "Mutuípe", + "uf": "BA" + }, + { + "id": 2922508, + "nome": "Nazaré", + "uf": "BA" + }, + { + "id": 2922607, + "nome": "Nilo Peçanha", + "uf": "BA" + }, + { + "id": 2922656, + "nome": "Nordestina", + "uf": "BA" + }, + { + "id": 2922706, + "nome": "Nova Canaã", + "uf": "BA" + }, + { + "id": 2922730, + "nome": "Nova Fátima", + "uf": "BA" + }, + { + "id": 2922755, + "nome": "Nova Ibiá", + "uf": "BA" + }, + { + "id": 2922805, + "nome": "Nova Itarana", + "uf": "BA" + }, + { + "id": 2922854, + "nome": "Nova Redenção", + "uf": "BA" + }, + { + "id": 2922904, + "nome": "Nova Soure", + "uf": "BA" + }, + { + "id": 2923001, + "nome": "Nova Viçosa", + "uf": "BA" + }, + { + "id": 2923035, + "nome": "Novo Horizonte", + "uf": "BA" + }, + { + "id": 2923050, + "nome": "Novo Triunfo", + "uf": "BA" + }, + { + "id": 2923100, + "nome": "Olindina", + "uf": "BA" + }, + { + "id": 2923209, + "nome": "Oliveira dos Brejinhos", + "uf": "BA" + }, + { + "id": 2923308, + "nome": "Ouriçangas", + "uf": "BA" + }, + { + "id": 2923357, + "nome": "Ourolândia", + "uf": "BA" + }, + { + "id": 2923407, + "nome": "Palmas de Monte Alto", + "uf": "BA" + }, + { + "id": 2923506, + "nome": "Palmeiras", + "uf": "BA" + }, + { + "id": 2923605, + "nome": "Paramirim", + "uf": "BA" + }, + { + "id": 2923704, + "nome": "Paratinga", + "uf": "BA" + }, + { + "id": 2923803, + "nome": "Paripiranga", + "uf": "BA" + }, + { + "id": 2923902, + "nome": "Pau Brasil", + "uf": "BA" + }, + { + "id": 2924009, + "nome": "Paulo Afonso", + "uf": "BA" + }, + { + "id": 2924207, + "nome": "Pedro Alexandre", + "uf": "BA" + }, + { + "id": 2924108, + "nome": "Pedrão", + "uf": "BA" + }, + { + "id": 2924306, + "nome": "Piatã", + "uf": "BA" + }, + { + "id": 2924405, + "nome": "Pilão Arcado", + "uf": "BA" + }, + { + "id": 2924504, + "nome": "Pindaí", + "uf": "BA" + }, + { + "id": 2924603, + "nome": "Pindobaçu", + "uf": "BA" + }, + { + "id": 2924652, + "nome": "Pintadas", + "uf": "BA" + }, + { + "id": 2924678, + "nome": "Piraí do Norte", + "uf": "BA" + }, + { + "id": 2924702, + "nome": "Piripá", + "uf": "BA" + }, + { + "id": 2924801, + "nome": "Piritiba", + "uf": "BA" + }, + { + "id": 2924900, + "nome": "Planaltino", + "uf": "BA" + }, + { + "id": 2925006, + "nome": "Planalto", + "uf": "BA" + }, + { + "id": 2925204, + "nome": "Pojuca", + "uf": "BA" + }, + { + "id": 2925253, + "nome": "Ponto Novo", + "uf": "BA" + }, + { + "id": 2925303, + "nome": "Porto Seguro", + "uf": "BA" + }, + { + "id": 2925402, + "nome": "Potiraguá", + "uf": "BA" + }, + { + "id": 2925105, + "nome": "Poções", + "uf": "BA" + }, + { + "id": 2925501, + "nome": "Prado", + "uf": "BA" + }, + { + "id": 2925600, + "nome": "Presidente Dutra", + "uf": "BA" + }, + { + "id": 2925709, + "nome": "Presidente Jânio Quadros", + "uf": "BA" + }, + { + "id": 2925758, + "nome": "Presidente Tancredo Neves", + "uf": "BA" + }, + { + "id": 2924058, + "nome": "Pé de Serra", + "uf": "BA" + }, + { + "id": 2925808, + "nome": "Queimadas", + "uf": "BA" + }, + { + "id": 2925907, + "nome": "Quijingue", + "uf": "BA" + }, + { + "id": 2925931, + "nome": "Quixabeira", + "uf": "BA" + }, + { + "id": 2925956, + "nome": "Rafael Jambeiro", + "uf": "BA" + }, + { + "id": 2926004, + "nome": "Remanso", + "uf": "BA" + }, + { + "id": 2926103, + "nome": "Retirolândia", + "uf": "BA" + }, + { + "id": 2926400, + "nome": "Riacho de Santana", + "uf": "BA" + }, + { + "id": 2926202, + "nome": "Riachão das Neves", + "uf": "BA" + }, + { + "id": 2926301, + "nome": "Riachão do Jacuípe", + "uf": "BA" + }, + { + "id": 2926509, + "nome": "Ribeira do Amparo", + "uf": "BA" + }, + { + "id": 2926608, + "nome": "Ribeira do Pombal", + "uf": "BA" + }, + { + "id": 2926657, + "nome": "Ribeirão do Largo", + "uf": "BA" + }, + { + "id": 2927002, + "nome": "Rio Real", + "uf": "BA" + }, + { + "id": 2926707, + "nome": "Rio de Contas", + "uf": "BA" + }, + { + "id": 2926806, + "nome": "Rio do Antônio", + "uf": "BA" + }, + { + "id": 2926905, + "nome": "Rio do Pires", + "uf": "BA" + }, + { + "id": 2927101, + "nome": "Rodelas", + "uf": "BA" + }, + { + "id": 2927200, + "nome": "Ruy Barbosa", + "uf": "BA" + }, + { + "id": 2927309, + "nome": "Salinas da Margarida", + "uf": "BA" + }, + { + "id": 2927408, + "nome": "Salvador", + "uf": "BA" + }, + { + "id": 2927606, + "nome": "Santa Brígida", + "uf": "BA" + }, + { + "id": 2927507, + "nome": "Santa Bárbara", + "uf": "BA" + }, + { + "id": 2927705, + "nome": "Santa Cruz Cabrália", + "uf": "BA" + }, + { + "id": 2927804, + "nome": "Santa Cruz da Vitória", + "uf": "BA" + }, + { + "id": 2927903, + "nome": "Santa Inês", + "uf": "BA" + }, + { + "id": 2928059, + "nome": "Santa Luzia", + "uf": "BA" + }, + { + "id": 2928109, + "nome": "Santa Maria da Vitória", + "uf": "BA" + }, + { + "id": 2928406, + "nome": "Santa Rita de Cássia", + "uf": "BA" + }, + { + "id": 2928505, + "nome": "Santa Terezinha", + "uf": "BA" + }, + { + "id": 2928000, + "nome": "Santaluz", + "uf": "BA" + }, + { + "id": 2928208, + "nome": "Santana", + "uf": "BA" + }, + { + "id": 2928307, + "nome": "Santanópolis", + "uf": "BA" + }, + { + "id": 2928604, + "nome": "Santo Amaro", + "uf": "BA" + }, + { + "id": 2928703, + "nome": "Santo Antônio de Jesus", + "uf": "BA" + }, + { + "id": 2928802, + "nome": "Santo Estêvão", + "uf": "BA" + }, + { + "id": 2929602, + "nome": "Sapeaçu", + "uf": "BA" + }, + { + "id": 2929750, + "nome": "Saubara", + "uf": "BA" + }, + { + "id": 2929800, + "nome": "Saúde", + "uf": "BA" + }, + { + "id": 2929909, + "nome": "Seabra", + "uf": "BA" + }, + { + "id": 2930006, + "nome": "Sebastião Laranjeiras", + "uf": "BA" + }, + { + "id": 2930105, + "nome": "Senhor do Bonfim", + "uf": "BA" + }, + { + "id": 2930204, + "nome": "Sento Sé", + "uf": "BA" + }, + { + "id": 2930303, + "nome": "Serra Dourada", + "uf": "BA" + }, + { + "id": 2930402, + "nome": "Serra Preta", + "uf": "BA" + }, + { + "id": 2930154, + "nome": "Serra do Ramalho", + "uf": "BA" + }, + { + "id": 2930501, + "nome": "Serrinha", + "uf": "BA" + }, + { + "id": 2930600, + "nome": "Serrolândia", + "uf": "BA" + }, + { + "id": 2930709, + "nome": "Simões Filho", + "uf": "BA" + }, + { + "id": 2930774, + "nome": "Sobradinho", + "uf": "BA" + }, + { + "id": 2930808, + "nome": "Souto Soares", + "uf": "BA" + }, + { + "id": 2929701, + "nome": "Sátiro Dias", + "uf": "BA" + }, + { + "id": 2928901, + "nome": "São Desidério", + "uf": "BA" + }, + { + "id": 2928950, + "nome": "São Domingos", + "uf": "BA" + }, + { + "id": 2929107, + "nome": "São Felipe", + "uf": "BA" + }, + { + "id": 2929206, + "nome": "São Francisco do Conde", + "uf": "BA" + }, + { + "id": 2929008, + "nome": "São Félix", + "uf": "BA" + }, + { + "id": 2929057, + "nome": "São Félix do Coribe", + "uf": "BA" + }, + { + "id": 2929255, + "nome": "São Gabriel", + "uf": "BA" + }, + { + "id": 2929305, + "nome": "São Gonçalo dos Campos", + "uf": "BA" + }, + { + "id": 2929354, + "nome": "São José da Vitória", + "uf": "BA" + }, + { + "id": 2929370, + "nome": "São José do Jacuípe", + "uf": "BA" + }, + { + "id": 2929404, + "nome": "São Miguel das Matas", + "uf": "BA" + }, + { + "id": 2929503, + "nome": "São Sebastião do Passé", + "uf": "BA" + }, + { + "id": 2930758, + "nome": "Sítio do Mato", + "uf": "BA" + }, + { + "id": 2930766, + "nome": "Sítio do Quinto", + "uf": "BA" + }, + { + "id": 2930907, + "nome": "Tabocas do Brejo Velho", + "uf": "BA" + }, + { + "id": 2931004, + "nome": "Tanhaçu", + "uf": "BA" + }, + { + "id": 2931053, + "nome": "Tanque Novo", + "uf": "BA" + }, + { + "id": 2931103, + "nome": "Tanquinho", + "uf": "BA" + }, + { + "id": 2931202, + "nome": "Taperoá", + "uf": "BA" + }, + { + "id": 2931301, + "nome": "Tapiramutá", + "uf": "BA" + }, + { + "id": 2931350, + "nome": "Teixeira de Freitas", + "uf": "BA" + }, + { + "id": 2931400, + "nome": "Teodoro Sampaio", + "uf": "BA" + }, + { + "id": 2931509, + "nome": "Teofilândia", + "uf": "BA" + }, + { + "id": 2931608, + "nome": "Teolândia", + "uf": "BA" + }, + { + "id": 2931707, + "nome": "Terra Nova", + "uf": "BA" + }, + { + "id": 2931806, + "nome": "Tremedal", + "uf": "BA" + }, + { + "id": 2931905, + "nome": "Tucano", + "uf": "BA" + }, + { + "id": 2932002, + "nome": "Uauá", + "uf": "BA" + }, + { + "id": 2932200, + "nome": "Ubaitaba", + "uf": "BA" + }, + { + "id": 2932309, + "nome": "Ubatã", + "uf": "BA" + }, + { + "id": 2932101, + "nome": "Ubaíra", + "uf": "BA" + }, + { + "id": 2932408, + "nome": "Uibaí", + "uf": "BA" + }, + { + "id": 2932457, + "nome": "Umburanas", + "uf": "BA" + }, + { + "id": 2932507, + "nome": "Una", + "uf": "BA" + }, + { + "id": 2932606, + "nome": "Urandi", + "uf": "BA" + }, + { + "id": 2932705, + "nome": "Uruçuca", + "uf": "BA" + }, + { + "id": 2932804, + "nome": "Utinga", + "uf": "BA" + }, + { + "id": 2933000, + "nome": "Valente", + "uf": "BA" + }, + { + "id": 2932903, + "nome": "Valença", + "uf": "BA" + }, + { + "id": 2933174, + "nome": "Varzedo", + "uf": "BA" + }, + { + "id": 2933208, + "nome": "Vera Cruz", + "uf": "BA" + }, + { + "id": 2933257, + "nome": "Vereda", + "uf": "BA" + }, + { + "id": 2933307, + "nome": "Vitória da Conquista", + "uf": "BA" + }, + { + "id": 2933158, + "nome": "Várzea Nova", + "uf": "BA" + }, + { + "id": 2933059, + "nome": "Várzea da Roça", + "uf": "BA" + }, + { + "id": 2933109, + "nome": "Várzea do Poço", + "uf": "BA" + }, + { + "id": 2933406, + "nome": "Wagner", + "uf": "BA" + }, + { + "id": 2933455, + "nome": "Wanderley", + "uf": "BA" + }, + { + "id": 2933505, + "nome": "Wenceslau Guimarães", + "uf": "BA" + }, + { + "id": 2933604, + "nome": "Xique-Xique", + "uf": "BA" + }, + { + "id": 2900405, + "nome": "Água Fria", + "uf": "BA" + }, + { + "id": 2900504, + "nome": "Érico Cardoso", + "uf": "BA" + }, + { + "id": 2300101, + "nome": "Abaiara", + "uf": "CE" + }, + { + "id": 2300150, + "nome": "Acarape", + "uf": "CE" + }, + { + "id": 2300200, + "nome": "Acaraú", + "uf": "CE" + }, + { + "id": 2300309, + "nome": "Acopiara", + "uf": "CE" + }, + { + "id": 2300408, + "nome": "Aiuaba", + "uf": "CE" + }, + { + "id": 2300507, + "nome": "Alcântaras", + "uf": "CE" + }, + { + "id": 2300606, + "nome": "Altaneira", + "uf": "CE" + }, + { + "id": 2300705, + "nome": "Alto Santo", + "uf": "CE" + }, + { + "id": 2300754, + "nome": "Amontada", + "uf": "CE" + }, + { + "id": 2300804, + "nome": "Antonina do Norte", + "uf": "CE" + }, + { + "id": 2300903, + "nome": "Apuiarés", + "uf": "CE" + }, + { + "id": 2301000, + "nome": "Aquiraz", + "uf": "CE" + }, + { + "id": 2301109, + "nome": "Aracati", + "uf": "CE" + }, + { + "id": 2301208, + "nome": "Aracoiaba", + "uf": "CE" + }, + { + "id": 2301257, + "nome": "Ararendá", + "uf": "CE" + }, + { + "id": 2301307, + "nome": "Araripe", + "uf": "CE" + }, + { + "id": 2301406, + "nome": "Aratuba", + "uf": "CE" + }, + { + "id": 2301505, + "nome": "Arneiroz", + "uf": "CE" + }, + { + "id": 2301604, + "nome": "Assaré", + "uf": "CE" + }, + { + "id": 2301703, + "nome": "Aurora", + "uf": "CE" + }, + { + "id": 2301802, + "nome": "Baixio", + "uf": "CE" + }, + { + "id": 2301851, + "nome": "Banabuiú", + "uf": "CE" + }, + { + "id": 2301901, + "nome": "Barbalha", + "uf": "CE" + }, + { + "id": 2301950, + "nome": "Barreira", + "uf": "CE" + }, + { + "id": 2302008, + "nome": "Barro", + "uf": "CE" + }, + { + "id": 2302057, + "nome": "Barroquinha", + "uf": "CE" + }, + { + "id": 2302107, + "nome": "Baturité", + "uf": "CE" + }, + { + "id": 2302206, + "nome": "Beberibe", + "uf": "CE" + }, + { + "id": 2302305, + "nome": "Bela Cruz", + "uf": "CE" + }, + { + "id": 2302404, + "nome": "Boa Viagem", + "uf": "CE" + }, + { + "id": 2302503, + "nome": "Brejo Santo", + "uf": "CE" + }, + { + "id": 2302602, + "nome": "Camocim", + "uf": "CE" + }, + { + "id": 2302701, + "nome": "Campos Sales", + "uf": "CE" + }, + { + "id": 2302800, + "nome": "Canindé", + "uf": "CE" + }, + { + "id": 2302909, + "nome": "Capistrano", + "uf": "CE" + }, + { + "id": 2303006, + "nome": "Caridade", + "uf": "CE" + }, + { + "id": 2303204, + "nome": "Caririaçu", + "uf": "CE" + }, + { + "id": 2303105, + "nome": "Cariré", + "uf": "CE" + }, + { + "id": 2303303, + "nome": "Cariús", + "uf": "CE" + }, + { + "id": 2303402, + "nome": "Carnaubal", + "uf": "CE" + }, + { + "id": 2303501, + "nome": "Cascavel", + "uf": "CE" + }, + { + "id": 2303600, + "nome": "Catarina", + "uf": "CE" + }, + { + "id": 2303659, + "nome": "Catunda", + "uf": "CE" + }, + { + "id": 2303709, + "nome": "Caucaia", + "uf": "CE" + }, + { + "id": 2303808, + "nome": "Cedro", + "uf": "CE" + }, + { + "id": 2303907, + "nome": "Chaval", + "uf": "CE" + }, + { + "id": 2303956, + "nome": "Chorozinho", + "uf": "CE" + }, + { + "id": 2303931, + "nome": "Choró", + "uf": "CE" + }, + { + "id": 2304004, + "nome": "Coreaú", + "uf": "CE" + }, + { + "id": 2304103, + "nome": "Crateús", + "uf": "CE" + }, + { + "id": 2304202, + "nome": "Crato", + "uf": "CE" + }, + { + "id": 2304236, + "nome": "Croatá", + "uf": "CE" + }, + { + "id": 2304251, + "nome": "Cruz", + "uf": "CE" + }, + { + "id": 2304269, + "nome": "Deputado Irapuan Pinheiro", + "uf": "CE" + }, + { + "id": 2304277, + "nome": "Ereré", + "uf": "CE" + }, + { + "id": 2304285, + "nome": "Eusébio", + "uf": "CE" + }, + { + "id": 2304301, + "nome": "Farias Brito", + "uf": "CE" + }, + { + "id": 2304350, + "nome": "Forquilha", + "uf": "CE" + }, + { + "id": 2304400, + "nome": "Fortaleza", + "uf": "CE" + }, + { + "id": 2304459, + "nome": "Fortim", + "uf": "CE" + }, + { + "id": 2304509, + "nome": "Frecheirinha", + "uf": "CE" + }, + { + "id": 2304608, + "nome": "General Sampaio", + "uf": "CE" + }, + { + "id": 2304707, + "nome": "Granja", + "uf": "CE" + }, + { + "id": 2304806, + "nome": "Granjeiro", + "uf": "CE" + }, + { + "id": 2304657, + "nome": "Graça", + "uf": "CE" + }, + { + "id": 2304905, + "nome": "Groaíras", + "uf": "CE" + }, + { + "id": 2304954, + "nome": "Guaiúba", + "uf": "CE" + }, + { + "id": 2305001, + "nome": "Guaraciaba do Norte", + "uf": "CE" + }, + { + "id": 2305100, + "nome": "Guaramiranga", + "uf": "CE" + }, + { + "id": 2305209, + "nome": "Hidrolândia", + "uf": "CE" + }, + { + "id": 2305233, + "nome": "Horizonte", + "uf": "CE" + }, + { + "id": 2305266, + "nome": "Ibaretama", + "uf": "CE" + }, + { + "id": 2305308, + "nome": "Ibiapina", + "uf": "CE" + }, + { + "id": 2305332, + "nome": "Ibicuitinga", + "uf": "CE" + }, + { + "id": 2305357, + "nome": "Icapuí", + "uf": "CE" + }, + { + "id": 2305407, + "nome": "Icó", + "uf": "CE" + }, + { + "id": 2305506, + "nome": "Iguatu", + "uf": "CE" + }, + { + "id": 2305605, + "nome": "Independência", + "uf": "CE" + }, + { + "id": 2305654, + "nome": "Ipaporanga", + "uf": "CE" + }, + { + "id": 2305704, + "nome": "Ipaumirim", + "uf": "CE" + }, + { + "id": 2305803, + "nome": "Ipu", + "uf": "CE" + }, + { + "id": 2305902, + "nome": "Ipueiras", + "uf": "CE" + }, + { + "id": 2306009, + "nome": "Iracema", + "uf": "CE" + }, + { + "id": 2306108, + "nome": "Irauçuba", + "uf": "CE" + }, + { + "id": 2306256, + "nome": "Itaitinga", + "uf": "CE" + }, + { + "id": 2306207, + "nome": "Itaiçaba", + "uf": "CE" + }, + { + "id": 2306306, + "nome": "Itapajé", + "uf": "CE" + }, + { + "id": 2306405, + "nome": "Itapipoca", + "uf": "CE" + }, + { + "id": 2306504, + "nome": "Itapiúna", + "uf": "CE" + }, + { + "id": 2306553, + "nome": "Itarema", + "uf": "CE" + }, + { + "id": 2306603, + "nome": "Itatira", + "uf": "CE" + }, + { + "id": 2306702, + "nome": "Jaguaretama", + "uf": "CE" + }, + { + "id": 2306801, + "nome": "Jaguaribara", + "uf": "CE" + }, + { + "id": 2306900, + "nome": "Jaguaribe", + "uf": "CE" + }, + { + "id": 2307007, + "nome": "Jaguaruana", + "uf": "CE" + }, + { + "id": 2307106, + "nome": "Jardim", + "uf": "CE" + }, + { + "id": 2307205, + "nome": "Jati", + "uf": "CE" + }, + { + "id": 2307254, + "nome": "Jijoca de Jericoacoara", + "uf": "CE" + }, + { + "id": 2307304, + "nome": "Juazeiro do Norte", + "uf": "CE" + }, + { + "id": 2307403, + "nome": "Jucás", + "uf": "CE" + }, + { + "id": 2307502, + "nome": "Lavras da Mangabeira", + "uf": "CE" + }, + { + "id": 2307601, + "nome": "Limoeiro do Norte", + "uf": "CE" + }, + { + "id": 2307635, + "nome": "Madalena", + "uf": "CE" + }, + { + "id": 2307650, + "nome": "Maracanaú", + "uf": "CE" + }, + { + "id": 2307700, + "nome": "Maranguape", + "uf": "CE" + }, + { + "id": 2307809, + "nome": "Marco", + "uf": "CE" + }, + { + "id": 2307908, + "nome": "Martinópole", + "uf": "CE" + }, + { + "id": 2308005, + "nome": "Massapê", + "uf": "CE" + }, + { + "id": 2308104, + "nome": "Mauriti", + "uf": "CE" + }, + { + "id": 2308203, + "nome": "Meruoca", + "uf": "CE" + }, + { + "id": 2308302, + "nome": "Milagres", + "uf": "CE" + }, + { + "id": 2308351, + "nome": "Milhã", + "uf": "CE" + }, + { + "id": 2308377, + "nome": "Miraíma", + "uf": "CE" + }, + { + "id": 2308401, + "nome": "Missão Velha", + "uf": "CE" + }, + { + "id": 2308500, + "nome": "Mombaça", + "uf": "CE" + }, + { + "id": 2308609, + "nome": "Monsenhor Tabosa", + "uf": "CE" + }, + { + "id": 2308708, + "nome": "Morada Nova", + "uf": "CE" + }, + { + "id": 2308807, + "nome": "Moraújo", + "uf": "CE" + }, + { + "id": 2308906, + "nome": "Morrinhos", + "uf": "CE" + }, + { + "id": 2309003, + "nome": "Mucambo", + "uf": "CE" + }, + { + "id": 2309102, + "nome": "Mulungu", + "uf": "CE" + }, + { + "id": 2309201, + "nome": "Nova Olinda", + "uf": "CE" + }, + { + "id": 2309300, + "nome": "Nova Russas", + "uf": "CE" + }, + { + "id": 2309409, + "nome": "Novo Oriente", + "uf": "CE" + }, + { + "id": 2309458, + "nome": "Ocara", + "uf": "CE" + }, + { + "id": 2309508, + "nome": "Orós", + "uf": "CE" + }, + { + "id": 2309607, + "nome": "Pacajus", + "uf": "CE" + }, + { + "id": 2309706, + "nome": "Pacatuba", + "uf": "CE" + }, + { + "id": 2309805, + "nome": "Pacoti", + "uf": "CE" + }, + { + "id": 2309904, + "nome": "Pacujá", + "uf": "CE" + }, + { + "id": 2310001, + "nome": "Palhano", + "uf": "CE" + }, + { + "id": 2310100, + "nome": "Palmácia", + "uf": "CE" + }, + { + "id": 2310209, + "nome": "Paracuru", + "uf": "CE" + }, + { + "id": 2310258, + "nome": "Paraipaba", + "uf": "CE" + }, + { + "id": 2310308, + "nome": "Parambu", + "uf": "CE" + }, + { + "id": 2310407, + "nome": "Paramoti", + "uf": "CE" + }, + { + "id": 2310506, + "nome": "Pedra Branca", + "uf": "CE" + }, + { + "id": 2310605, + "nome": "Penaforte", + "uf": "CE" + }, + { + "id": 2310704, + "nome": "Pentecoste", + "uf": "CE" + }, + { + "id": 2310803, + "nome": "Pereiro", + "uf": "CE" + }, + { + "id": 2310852, + "nome": "Pindoretama", + "uf": "CE" + }, + { + "id": 2310902, + "nome": "Piquet Carneiro", + "uf": "CE" + }, + { + "id": 2310951, + "nome": "Pires Ferreira", + "uf": "CE" + }, + { + "id": 2311009, + "nome": "Poranga", + "uf": "CE" + }, + { + "id": 2311108, + "nome": "Porteiras", + "uf": "CE" + }, + { + "id": 2311207, + "nome": "Potengi", + "uf": "CE" + }, + { + "id": 2311231, + "nome": "Potiretama", + "uf": "CE" + }, + { + "id": 2311264, + "nome": "Quiterianópolis", + "uf": "CE" + }, + { + "id": 2311306, + "nome": "Quixadá", + "uf": "CE" + }, + { + "id": 2311355, + "nome": "Quixelô", + "uf": "CE" + }, + { + "id": 2311405, + "nome": "Quixeramobim", + "uf": "CE" + }, + { + "id": 2311504, + "nome": "Quixeré", + "uf": "CE" + }, + { + "id": 2311603, + "nome": "Redenção", + "uf": "CE" + }, + { + "id": 2311702, + "nome": "Reriutaba", + "uf": "CE" + }, + { + "id": 2311801, + "nome": "Russas", + "uf": "CE" + }, + { + "id": 2311900, + "nome": "Saboeiro", + "uf": "CE" + }, + { + "id": 2311959, + "nome": "Salitre", + "uf": "CE" + }, + { + "id": 2312205, + "nome": "Santa Quitéria", + "uf": "CE" + }, + { + "id": 2312007, + "nome": "Santana do Acaraú", + "uf": "CE" + }, + { + "id": 2312106, + "nome": "Santana do Cariri", + "uf": "CE" + }, + { + "id": 2312700, + "nome": "Senador Pompeu", + "uf": "CE" + }, + { + "id": 2312809, + "nome": "Senador Sá", + "uf": "CE" + }, + { + "id": 2312908, + "nome": "Sobral", + "uf": "CE" + }, + { + "id": 2313005, + "nome": "Solonópole", + "uf": "CE" + }, + { + "id": 2312304, + "nome": "São Benedito", + "uf": "CE" + }, + { + "id": 2312403, + "nome": "São Gonçalo do Amarante", + "uf": "CE" + }, + { + "id": 2312502, + "nome": "São João do Jaguaribe", + "uf": "CE" + }, + { + "id": 2312601, + "nome": "São Luís do Curu", + "uf": "CE" + }, + { + "id": 2313104, + "nome": "Tabuleiro do Norte", + "uf": "CE" + }, + { + "id": 2313203, + "nome": "Tamboril", + "uf": "CE" + }, + { + "id": 2313252, + "nome": "Tarrafas", + "uf": "CE" + }, + { + "id": 2313302, + "nome": "Tauá", + "uf": "CE" + }, + { + "id": 2313351, + "nome": "Tejuçuoca", + "uf": "CE" + }, + { + "id": 2313401, + "nome": "Tianguá", + "uf": "CE" + }, + { + "id": 2313500, + "nome": "Trairi", + "uf": "CE" + }, + { + "id": 2313559, + "nome": "Tururu", + "uf": "CE" + }, + { + "id": 2313609, + "nome": "Ubajara", + "uf": "CE" + }, + { + "id": 2313708, + "nome": "Umari", + "uf": "CE" + }, + { + "id": 2313757, + "nome": "Umirim", + "uf": "CE" + }, + { + "id": 2313807, + "nome": "Uruburetama", + "uf": "CE" + }, + { + "id": 2313906, + "nome": "Uruoca", + "uf": "CE" + }, + { + "id": 2313955, + "nome": "Varjota", + "uf": "CE" + }, + { + "id": 2314102, + "nome": "Viçosa do Ceará", + "uf": "CE" + }, + { + "id": 2314003, + "nome": "Várzea Alegre", + "uf": "CE" + }, + { + "id": 5300108, + "nome": "Brasília", + "uf": "DF" + }, + { + "id": 3200102, + "nome": "Afonso Cláudio", + "uf": "ES" + }, + { + "id": 3200201, + "nome": "Alegre", + "uf": "ES" + }, + { + "id": 3200300, + "nome": "Alfredo Chaves", + "uf": "ES" + }, + { + "id": 3200359, + "nome": "Alto Rio Novo", + "uf": "ES" + }, + { + "id": 3200409, + "nome": "Anchieta", + "uf": "ES" + }, + { + "id": 3200508, + "nome": "Apiacá", + "uf": "ES" + }, + { + "id": 3200607, + "nome": "Aracruz", + "uf": "ES" + }, + { + "id": 3200706, + "nome": "Atílio Vivácqua", + "uf": "ES" + }, + { + "id": 3200805, + "nome": "Baixo Guandu", + "uf": "ES" + }, + { + "id": 3200904, + "nome": "Barra de São Francisco", + "uf": "ES" + }, + { + "id": 3201001, + "nome": "Boa Esperança", + "uf": "ES" + }, + { + "id": 3201100, + "nome": "Bom Jesus do Norte", + "uf": "ES" + }, + { + "id": 3201159, + "nome": "Brejetuba", + "uf": "ES" + }, + { + "id": 3201209, + "nome": "Cachoeiro de Itapemirim", + "uf": "ES" + }, + { + "id": 3201308, + "nome": "Cariacica", + "uf": "ES" + }, + { + "id": 3201407, + "nome": "Castelo", + "uf": "ES" + }, + { + "id": 3201506, + "nome": "Colatina", + "uf": "ES" + }, + { + "id": 3201605, + "nome": "Conceição da Barra", + "uf": "ES" + }, + { + "id": 3201704, + "nome": "Conceição do Castelo", + "uf": "ES" + }, + { + "id": 3201803, + "nome": "Divino de São Lourenço", + "uf": "ES" + }, + { + "id": 3201902, + "nome": "Domingos Martins", + "uf": "ES" + }, + { + "id": 3202009, + "nome": "Dores do Rio Preto", + "uf": "ES" + }, + { + "id": 3202108, + "nome": "Ecoporanga", + "uf": "ES" + }, + { + "id": 3202207, + "nome": "Fundão", + "uf": "ES" + }, + { + "id": 3202256, + "nome": "Governador Lindenberg", + "uf": "ES" + }, + { + "id": 3202405, + "nome": "Guarapari", + "uf": "ES" + }, + { + "id": 3202306, + "nome": "Guaçuí", + "uf": "ES" + }, + { + "id": 3202454, + "nome": "Ibatiba", + "uf": "ES" + }, + { + "id": 3202504, + "nome": "Ibiraçu", + "uf": "ES" + }, + { + "id": 3202553, + "nome": "Ibitirama", + "uf": "ES" + }, + { + "id": 3202603, + "nome": "Iconha", + "uf": "ES" + }, + { + "id": 3202652, + "nome": "Irupi", + "uf": "ES" + }, + { + "id": 3202702, + "nome": "Itaguaçu", + "uf": "ES" + }, + { + "id": 3202801, + "nome": "Itapemirim", + "uf": "ES" + }, + { + "id": 3202900, + "nome": "Itarana", + "uf": "ES" + }, + { + "id": 3203007, + "nome": "Iúna", + "uf": "ES" + }, + { + "id": 3203056, + "nome": "Jaguaré", + "uf": "ES" + }, + { + "id": 3203106, + "nome": "Jerônimo Monteiro", + "uf": "ES" + }, + { + "id": 3203130, + "nome": "João Neiva", + "uf": "ES" + }, + { + "id": 3203163, + "nome": "Laranja da Terra", + "uf": "ES" + }, + { + "id": 3203205, + "nome": "Linhares", + "uf": "ES" + }, + { + "id": 3203304, + "nome": "Mantenópolis", + "uf": "ES" + }, + { + "id": 3203320, + "nome": "Marataízes", + "uf": "ES" + }, + { + "id": 3203346, + "nome": "Marechal Floriano", + "uf": "ES" + }, + { + "id": 3203353, + "nome": "Marilândia", + "uf": "ES" + }, + { + "id": 3203403, + "nome": "Mimoso do Sul", + "uf": "ES" + }, + { + "id": 3203502, + "nome": "Montanha", + "uf": "ES" + }, + { + "id": 3203601, + "nome": "Mucurici", + "uf": "ES" + }, + { + "id": 3203700, + "nome": "Muniz Freire", + "uf": "ES" + }, + { + "id": 3203809, + "nome": "Muqui", + "uf": "ES" + }, + { + "id": 3203908, + "nome": "Nova Venécia", + "uf": "ES" + }, + { + "id": 3204005, + "nome": "Pancas", + "uf": "ES" + }, + { + "id": 3204054, + "nome": "Pedro Canário", + "uf": "ES" + }, + { + "id": 3204104, + "nome": "Pinheiros", + "uf": "ES" + }, + { + "id": 3204203, + "nome": "Piúma", + "uf": "ES" + }, + { + "id": 3204252, + "nome": "Ponto Belo", + "uf": "ES" + }, + { + "id": 3204302, + "nome": "Presidente Kennedy", + "uf": "ES" + }, + { + "id": 3204351, + "nome": "Rio Bananal", + "uf": "ES" + }, + { + "id": 3204401, + "nome": "Rio Novo do Sul", + "uf": "ES" + }, + { + "id": 3204500, + "nome": "Santa Leopoldina", + "uf": "ES" + }, + { + "id": 3204559, + "nome": "Santa Maria de Jetibá", + "uf": "ES" + }, + { + "id": 3204609, + "nome": "Santa Teresa", + "uf": "ES" + }, + { + "id": 3205002, + "nome": "Serra", + "uf": "ES" + }, + { + "id": 3205010, + "nome": "Sooretama", + "uf": "ES" + }, + { + "id": 3204658, + "nome": "São Domingos do Norte", + "uf": "ES" + }, + { + "id": 3204708, + "nome": "São Gabriel da Palha", + "uf": "ES" + }, + { + "id": 3204807, + "nome": "São José do Calçado", + "uf": "ES" + }, + { + "id": 3204906, + "nome": "São Mateus", + "uf": "ES" + }, + { + "id": 3204955, + "nome": "São Roque do Canaã", + "uf": "ES" + }, + { + "id": 3205036, + "nome": "Vargem Alta", + "uf": "ES" + }, + { + "id": 3205069, + "nome": "Venda Nova do Imigrante", + "uf": "ES" + }, + { + "id": 3205101, + "nome": "Viana", + "uf": "ES" + }, + { + "id": 3205150, + "nome": "Vila Pavão", + "uf": "ES" + }, + { + "id": 3205176, + "nome": "Vila Valério", + "uf": "ES" + }, + { + "id": 3205200, + "nome": "Vila Velha", + "uf": "ES" + }, + { + "id": 3205309, + "nome": "Vitória", + "uf": "ES" + }, + { + "id": 3200169, + "nome": "Água Doce do Norte", + "uf": "ES" + }, + { + "id": 3200136, + "nome": "Águia Branca", + "uf": "ES" + }, + { + "id": 5200050, + "nome": "Abadia de Goiás", + "uf": "GO" + }, + { + "id": 5200100, + "nome": "Abadiânia", + "uf": "GO" + }, + { + "id": 5200134, + "nome": "Acreúna", + "uf": "GO" + }, + { + "id": 5200159, + "nome": "Adelândia", + "uf": "GO" + }, + { + "id": 5200308, + "nome": "Alexânia", + "uf": "GO" + }, + { + "id": 5200506, + "nome": "Aloândia", + "uf": "GO" + }, + { + "id": 5200555, + "nome": "Alto Horizonte", + "uf": "GO" + }, + { + "id": 5200605, + "nome": "Alto Paraíso de Goiás", + "uf": "GO" + }, + { + "id": 5200803, + "nome": "Alvorada do Norte", + "uf": "GO" + }, + { + "id": 5200829, + "nome": "Amaralina", + "uf": "GO" + }, + { + "id": 5200852, + "nome": "Americano do Brasil", + "uf": "GO" + }, + { + "id": 5200902, + "nome": "Amorinópolis", + "uf": "GO" + }, + { + "id": 5201207, + "nome": "Anhanguera", + "uf": "GO" + }, + { + "id": 5201306, + "nome": "Anicuns", + "uf": "GO" + }, + { + "id": 5201108, + "nome": "Anápolis", + "uf": "GO" + }, + { + "id": 5201405, + "nome": "Aparecida de Goiânia", + "uf": "GO" + }, + { + "id": 5201454, + "nome": "Aparecida do Rio Doce", + "uf": "GO" + }, + { + "id": 5201504, + "nome": "Aporé", + "uf": "GO" + }, + { + "id": 5201702, + "nome": "Aragarças", + "uf": "GO" + }, + { + "id": 5201801, + "nome": "Aragoiânia", + "uf": "GO" + }, + { + "id": 5202155, + "nome": "Araguapaz", + "uf": "GO" + }, + { + "id": 5201603, + "nome": "Araçu", + "uf": "GO" + }, + { + "id": 5202353, + "nome": "Arenópolis", + "uf": "GO" + }, + { + "id": 5202502, + "nome": "Aruanã", + "uf": "GO" + }, + { + "id": 5202601, + "nome": "Aurilândia", + "uf": "GO" + }, + { + "id": 5202809, + "nome": "Avelinópolis", + "uf": "GO" + }, + { + "id": 5203104, + "nome": "Baliza", + "uf": "GO" + }, + { + "id": 5203203, + "nome": "Barro Alto", + "uf": "GO" + }, + { + "id": 5203302, + "nome": "Bela Vista de Goiás", + "uf": "GO" + }, + { + "id": 5203401, + "nome": "Bom Jardim de Goiás", + "uf": "GO" + }, + { + "id": 5203500, + "nome": "Bom Jesus de Goiás", + "uf": "GO" + }, + { + "id": 5203559, + "nome": "Bonfinópolis", + "uf": "GO" + }, + { + "id": 5203575, + "nome": "Bonópolis", + "uf": "GO" + }, + { + "id": 5203609, + "nome": "Brazabrantes", + "uf": "GO" + }, + { + "id": 5203807, + "nome": "Britânia", + "uf": "GO" + }, + { + "id": 5203906, + "nome": "Buriti Alegre", + "uf": "GO" + }, + { + "id": 5203939, + "nome": "Buriti de Goiás", + "uf": "GO" + }, + { + "id": 5203962, + "nome": "Buritinópolis", + "uf": "GO" + }, + { + "id": 5204003, + "nome": "Cabeceiras", + "uf": "GO" + }, + { + "id": 5204102, + "nome": "Cachoeira Alta", + "uf": "GO" + }, + { + "id": 5204250, + "nome": "Cachoeira Dourada", + "uf": "GO" + }, + { + "id": 5204201, + "nome": "Cachoeira de Goiás", + "uf": "GO" + }, + { + "id": 5204409, + "nome": "Caiapônia", + "uf": "GO" + }, + { + "id": 5204508, + "nome": "Caldas Novas", + "uf": "GO" + }, + { + "id": 5204557, + "nome": "Caldazinha", + "uf": "GO" + }, + { + "id": 5204607, + "nome": "Campestre de Goiás", + "uf": "GO" + }, + { + "id": 5204656, + "nome": "Campinaçu", + "uf": "GO" + }, + { + "id": 5204706, + "nome": "Campinorte", + "uf": "GO" + }, + { + "id": 5204805, + "nome": "Campo Alegre de Goiás", + "uf": "GO" + }, + { + "id": 5204854, + "nome": "Campo Limpo de Goiás", + "uf": "GO" + }, + { + "id": 5204904, + "nome": "Campos Belos", + "uf": "GO" + }, + { + "id": 5204953, + "nome": "Campos Verdes", + "uf": "GO" + }, + { + "id": 5205000, + "nome": "Carmo do Rio Verde", + "uf": "GO" + }, + { + "id": 5205059, + "nome": "Castelândia", + "uf": "GO" + }, + { + "id": 5205109, + "nome": "Catalão", + "uf": "GO" + }, + { + "id": 5205208, + "nome": "Caturaí", + "uf": "GO" + }, + { + "id": 5205307, + "nome": "Cavalcante", + "uf": "GO" + }, + { + "id": 5204300, + "nome": "Caçu", + "uf": "GO" + }, + { + "id": 5205406, + "nome": "Ceres", + "uf": "GO" + }, + { + "id": 5205455, + "nome": "Cezarina", + "uf": "GO" + }, + { + "id": 5205471, + "nome": "Chapadão do Céu", + "uf": "GO" + }, + { + "id": 5205497, + "nome": "Cidade Ocidental", + "uf": "GO" + }, + { + "id": 5205513, + "nome": "Cocalzinho de Goiás", + "uf": "GO" + }, + { + "id": 5205521, + "nome": "Colinas do Sul", + "uf": "GO" + }, + { + "id": 5205901, + "nome": "Corumbaíba", + "uf": "GO" + }, + { + "id": 5205802, + "nome": "Corumbá de Goiás", + "uf": "GO" + }, + { + "id": 5206206, + "nome": "Cristalina", + "uf": "GO" + }, + { + "id": 5206305, + "nome": "Cristianópolis", + "uf": "GO" + }, + { + "id": 5206404, + "nome": "Crixás", + "uf": "GO" + }, + { + "id": 5206503, + "nome": "Cromínia", + "uf": "GO" + }, + { + "id": 5206602, + "nome": "Cumari", + "uf": "GO" + }, + { + "id": 5205703, + "nome": "Córrego do Ouro", + "uf": "GO" + }, + { + "id": 5206701, + "nome": "Damianópolis", + "uf": "GO" + }, + { + "id": 5206800, + "nome": "Damolândia", + "uf": "GO" + }, + { + "id": 5206909, + "nome": "Davinópolis", + "uf": "GO" + }, + { + "id": 5207105, + "nome": "Diorama", + "uf": "GO" + }, + { + "id": 5208301, + "nome": "Divinópolis de Goiás", + "uf": "GO" + }, + { + "id": 5207253, + "nome": "Doverlândia", + "uf": "GO" + }, + { + "id": 5207352, + "nome": "Edealina", + "uf": "GO" + }, + { + "id": 5207402, + "nome": "Edéia", + "uf": "GO" + }, + { + "id": 5207501, + "nome": "Estrela do Norte", + "uf": "GO" + }, + { + "id": 5207535, + "nome": "Faina", + "uf": "GO" + }, + { + "id": 5207600, + "nome": "Fazenda Nova", + "uf": "GO" + }, + { + "id": 5207808, + "nome": "Firminópolis", + "uf": "GO" + }, + { + "id": 5207907, + "nome": "Flores de Goiás", + "uf": "GO" + }, + { + "id": 5208004, + "nome": "Formosa", + "uf": "GO" + }, + { + "id": 5208103, + "nome": "Formoso", + "uf": "GO" + }, + { + "id": 5208152, + "nome": "Gameleira de Goiás", + "uf": "GO" + }, + { + "id": 5208509, + "nome": "Goiandira", + "uf": "GO" + }, + { + "id": 5208806, + "nome": "Goianira", + "uf": "GO" + }, + { + "id": 5208400, + "nome": "Goianápolis", + "uf": "GO" + }, + { + "id": 5208608, + "nome": "Goianésia", + "uf": "GO" + }, + { + "id": 5209101, + "nome": "Goiatuba", + "uf": "GO" + }, + { + "id": 5208905, + "nome": "Goiás", + "uf": "GO" + }, + { + "id": 5208707, + "nome": "Goiânia", + "uf": "GO" + }, + { + "id": 5209150, + "nome": "Gouvelândia", + "uf": "GO" + }, + { + "id": 5209200, + "nome": "Guapó", + "uf": "GO" + }, + { + "id": 5209408, + "nome": "Guarani de Goiás", + "uf": "GO" + }, + { + "id": 5209291, + "nome": "Guaraíta", + "uf": "GO" + }, + { + "id": 5209457, + "nome": "Guarinos", + "uf": "GO" + }, + { + "id": 5209606, + "nome": "Heitoraí", + "uf": "GO" + }, + { + "id": 5209804, + "nome": "Hidrolina", + "uf": "GO" + }, + { + "id": 5209705, + "nome": "Hidrolândia", + "uf": "GO" + }, + { + "id": 5209903, + "nome": "Iaciara", + "uf": "GO" + }, + { + "id": 5209937, + "nome": "Inaciolândia", + "uf": "GO" + }, + { + "id": 5209952, + "nome": "Indiara", + "uf": "GO" + }, + { + "id": 5210000, + "nome": "Inhumas", + "uf": "GO" + }, + { + "id": 5210109, + "nome": "Ipameri", + "uf": "GO" + }, + { + "id": 5210158, + "nome": "Ipiranga de Goiás", + "uf": "GO" + }, + { + "id": 5210208, + "nome": "Iporá", + "uf": "GO" + }, + { + "id": 5210307, + "nome": "Israelândia", + "uf": "GO" + }, + { + "id": 5210406, + "nome": "Itaberaí", + "uf": "GO" + }, + { + "id": 5210562, + "nome": "Itaguari", + "uf": "GO" + }, + { + "id": 5210604, + "nome": "Itaguaru", + "uf": "GO" + }, + { + "id": 5210802, + "nome": "Itajá", + "uf": "GO" + }, + { + "id": 5210901, + "nome": "Itapaci", + "uf": "GO" + }, + { + "id": 5211008, + "nome": "Itapirapuã", + "uf": "GO" + }, + { + "id": 5211206, + "nome": "Itapuranga", + "uf": "GO" + }, + { + "id": 5211305, + "nome": "Itarumã", + "uf": "GO" + }, + { + "id": 5211404, + "nome": "Itauçu", + "uf": "GO" + }, + { + "id": 5211503, + "nome": "Itumbiara", + "uf": "GO" + }, + { + "id": 5211602, + "nome": "Ivolândia", + "uf": "GO" + }, + { + "id": 5211701, + "nome": "Jandaia", + "uf": "GO" + }, + { + "id": 5211800, + "nome": "Jaraguá", + "uf": "GO" + }, + { + "id": 5211909, + "nome": "Jataí", + "uf": "GO" + }, + { + "id": 5212006, + "nome": "Jaupaci", + "uf": "GO" + }, + { + "id": 5212055, + "nome": "Jesúpolis", + "uf": "GO" + }, + { + "id": 5212105, + "nome": "Joviânia", + "uf": "GO" + }, + { + "id": 5212204, + "nome": "Jussara", + "uf": "GO" + }, + { + "id": 5212253, + "nome": "Lagoa Santa", + "uf": "GO" + }, + { + "id": 5212303, + "nome": "Leopoldo de Bulhões", + "uf": "GO" + }, + { + "id": 5212501, + "nome": "Luziânia", + "uf": "GO" + }, + { + "id": 5212600, + "nome": "Mairipotaba", + "uf": "GO" + }, + { + "id": 5212709, + "nome": "Mambaí", + "uf": "GO" + }, + { + "id": 5212808, + "nome": "Mara Rosa", + "uf": "GO" + }, + { + "id": 5212907, + "nome": "Marzagão", + "uf": "GO" + }, + { + "id": 5212956, + "nome": "Matrinchã", + "uf": "GO" + }, + { + "id": 5213004, + "nome": "Maurilândia", + "uf": "GO" + }, + { + "id": 5213053, + "nome": "Mimoso de Goiás", + "uf": "GO" + }, + { + "id": 5213087, + "nome": "Minaçu", + "uf": "GO" + }, + { + "id": 5213103, + "nome": "Mineiros", + "uf": "GO" + }, + { + "id": 5213400, + "nome": "Moiporá", + "uf": "GO" + }, + { + "id": 5213509, + "nome": "Monte Alegre de Goiás", + "uf": "GO" + }, + { + "id": 5213707, + "nome": "Montes Claros de Goiás", + "uf": "GO" + }, + { + "id": 5213756, + "nome": "Montividiu", + "uf": "GO" + }, + { + "id": 5213772, + "nome": "Montividiu do Norte", + "uf": "GO" + }, + { + "id": 5213806, + "nome": "Morrinhos", + "uf": "GO" + }, + { + "id": 5213855, + "nome": "Morro Agudo de Goiás", + "uf": "GO" + }, + { + "id": 5213905, + "nome": "Mossâmedes", + "uf": "GO" + }, + { + "id": 5214002, + "nome": "Mozarlândia", + "uf": "GO" + }, + { + "id": 5214051, + "nome": "Mundo Novo", + "uf": "GO" + }, + { + "id": 5214101, + "nome": "Mutunópolis", + "uf": "GO" + }, + { + "id": 5214408, + "nome": "Nazário", + "uf": "GO" + }, + { + "id": 5214507, + "nome": "Nerópolis", + "uf": "GO" + }, + { + "id": 5214606, + "nome": "Niquelândia", + "uf": "GO" + }, + { + "id": 5214705, + "nome": "Nova América", + "uf": "GO" + }, + { + "id": 5214804, + "nome": "Nova Aurora", + "uf": "GO" + }, + { + "id": 5214838, + "nome": "Nova Crixás", + "uf": "GO" + }, + { + "id": 5214861, + "nome": "Nova Glória", + "uf": "GO" + }, + { + "id": 5214879, + "nome": "Nova Iguaçu de Goiás", + "uf": "GO" + }, + { + "id": 5214903, + "nome": "Nova Roma", + "uf": "GO" + }, + { + "id": 5215009, + "nome": "Nova Veneza", + "uf": "GO" + }, + { + "id": 5215207, + "nome": "Novo Brasil", + "uf": "GO" + }, + { + "id": 5215231, + "nome": "Novo Gama", + "uf": "GO" + }, + { + "id": 5215256, + "nome": "Novo Planalto", + "uf": "GO" + }, + { + "id": 5215306, + "nome": "Orizona", + "uf": "GO" + }, + { + "id": 5215405, + "nome": "Ouro Verde de Goiás", + "uf": "GO" + }, + { + "id": 5215504, + "nome": "Ouvidor", + "uf": "GO" + }, + { + "id": 5215603, + "nome": "Padre Bernardo", + "uf": "GO" + }, + { + "id": 5215652, + "nome": "Palestina de Goiás", + "uf": "GO" + }, + { + "id": 5215702, + "nome": "Palmeiras de Goiás", + "uf": "GO" + }, + { + "id": 5215801, + "nome": "Palmelo", + "uf": "GO" + }, + { + "id": 5215900, + "nome": "Palminópolis", + "uf": "GO" + }, + { + "id": 5216007, + "nome": "Panamá", + "uf": "GO" + }, + { + "id": 5216304, + "nome": "Paranaiguara", + "uf": "GO" + }, + { + "id": 5216403, + "nome": "Paraúna", + "uf": "GO" + }, + { + "id": 5216452, + "nome": "Perolândia", + "uf": "GO" + }, + { + "id": 5216809, + "nome": "Petrolina de Goiás", + "uf": "GO" + }, + { + "id": 5216908, + "nome": "Pilar de Goiás", + "uf": "GO" + }, + { + "id": 5217104, + "nome": "Piracanjuba", + "uf": "GO" + }, + { + "id": 5217203, + "nome": "Piranhas", + "uf": "GO" + }, + { + "id": 5217302, + "nome": "Pirenópolis", + "uf": "GO" + }, + { + "id": 5217401, + "nome": "Pires do Rio", + "uf": "GO" + }, + { + "id": 5217609, + "nome": "Planaltina", + "uf": "GO" + }, + { + "id": 5217708, + "nome": "Pontalina", + "uf": "GO" + }, + { + "id": 5218003, + "nome": "Porangatu", + "uf": "GO" + }, + { + "id": 5218052, + "nome": "Porteirão", + "uf": "GO" + }, + { + "id": 5218102, + "nome": "Portelândia", + "uf": "GO" + }, + { + "id": 5218300, + "nome": "Posse", + "uf": "GO" + }, + { + "id": 5218391, + "nome": "Professor Jamil", + "uf": "GO" + }, + { + "id": 5218508, + "nome": "Quirinópolis", + "uf": "GO" + }, + { + "id": 5218607, + "nome": "Rialma", + "uf": "GO" + }, + { + "id": 5218706, + "nome": "Rianápolis", + "uf": "GO" + }, + { + "id": 5218789, + "nome": "Rio Quente", + "uf": "GO" + }, + { + "id": 5218805, + "nome": "Rio Verde", + "uf": "GO" + }, + { + "id": 5218904, + "nome": "Rubiataba", + "uf": "GO" + }, + { + "id": 5219001, + "nome": "Sanclerlândia", + "uf": "GO" + }, + { + "id": 5219100, + "nome": "Santa Bárbara de Goiás", + "uf": "GO" + }, + { + "id": 5219209, + "nome": "Santa Cruz de Goiás", + "uf": "GO" + }, + { + "id": 5219258, + "nome": "Santa Fé de Goiás", + "uf": "GO" + }, + { + "id": 5219308, + "nome": "Santa Helena de Goiás", + "uf": "GO" + }, + { + "id": 5219357, + "nome": "Santa Isabel", + "uf": "GO" + }, + { + "id": 5219407, + "nome": "Santa Rita do Araguaia", + "uf": "GO" + }, + { + "id": 5219456, + "nome": "Santa Rita do Novo Destino", + "uf": "GO" + }, + { + "id": 5219506, + "nome": "Santa Rosa de Goiás", + "uf": "GO" + }, + { + "id": 5219605, + "nome": "Santa Tereza de Goiás", + "uf": "GO" + }, + { + "id": 5219704, + "nome": "Santa Terezinha de Goiás", + "uf": "GO" + }, + { + "id": 5219712, + "nome": "Santo Antônio da Barra", + "uf": "GO" + }, + { + "id": 5219738, + "nome": "Santo Antônio de Goiás", + "uf": "GO" + }, + { + "id": 5219753, + "nome": "Santo Antônio do Descoberto", + "uf": "GO" + }, + { + "id": 5220454, + "nome": "Senador Canedo", + "uf": "GO" + }, + { + "id": 5220504, + "nome": "Serranópolis", + "uf": "GO" + }, + { + "id": 5220603, + "nome": "Silvânia", + "uf": "GO" + }, + { + "id": 5220686, + "nome": "Simolândia", + "uf": "GO" + }, + { + "id": 5219803, + "nome": "São Domingos", + "uf": "GO" + }, + { + "id": 5219902, + "nome": "São Francisco de Goiás", + "uf": "GO" + }, + { + "id": 5220009, + "nome": "São João d'Aliança", + "uf": "GO" + }, + { + "id": 5220058, + "nome": "São João da Paraúna", + "uf": "GO" + }, + { + "id": 5220157, + "nome": "São Luiz do Norte", + "uf": "GO" + }, + { + "id": 5220108, + "nome": "São Luís de Montes Belos", + "uf": "GO" + }, + { + "id": 5220207, + "nome": "São Miguel do Araguaia", + "uf": "GO" + }, + { + "id": 5220264, + "nome": "São Miguel do Passa Quatro", + "uf": "GO" + }, + { + "id": 5220280, + "nome": "São Patrício", + "uf": "GO" + }, + { + "id": 5220405, + "nome": "São Simão", + "uf": "GO" + }, + { + "id": 5220702, + "nome": "Sítio d'Abadia", + "uf": "GO" + }, + { + "id": 5221007, + "nome": "Taquaral de Goiás", + "uf": "GO" + }, + { + "id": 5221080, + "nome": "Teresina de Goiás", + "uf": "GO" + }, + { + "id": 5221197, + "nome": "Terezópolis de Goiás", + "uf": "GO" + }, + { + "id": 5221403, + "nome": "Trindade", + "uf": "GO" + }, + { + "id": 5221452, + "nome": "Trombas", + "uf": "GO" + }, + { + "id": 5221304, + "nome": "Três Ranchos", + "uf": "GO" + }, + { + "id": 5221551, + "nome": "Turvelândia", + "uf": "GO" + }, + { + "id": 5221502, + "nome": "Turvânia", + "uf": "GO" + }, + { + "id": 5221577, + "nome": "Uirapuru", + "uf": "GO" + }, + { + "id": 5221700, + "nome": "Uruana", + "uf": "GO" + }, + { + "id": 5221601, + "nome": "Uruaçu", + "uf": "GO" + }, + { + "id": 5221809, + "nome": "Urutaí", + "uf": "GO" + }, + { + "id": 5221858, + "nome": "Valparaíso de Goiás", + "uf": "GO" + }, + { + "id": 5221908, + "nome": "Varjão", + "uf": "GO" + }, + { + "id": 5222005, + "nome": "Vianópolis", + "uf": "GO" + }, + { + "id": 5222054, + "nome": "Vicentinópolis", + "uf": "GO" + }, + { + "id": 5222203, + "nome": "Vila Boa", + "uf": "GO" + }, + { + "id": 5222302, + "nome": "Vila Propício", + "uf": "GO" + }, + { + "id": 5200175, + "nome": "Água Fria de Goiás", + "uf": "GO" + }, + { + "id": 5200209, + "nome": "Água Limpa", + "uf": "GO" + }, + { + "id": 5200258, + "nome": "Águas Lindas de Goiás", + "uf": "GO" + }, + { + "id": 2100105, + "nome": "Afonso Cunha", + "uf": "MA" + }, + { + "id": 2100204, + "nome": "Alcântara", + "uf": "MA" + }, + { + "id": 2100303, + "nome": "Aldeias Altas", + "uf": "MA" + }, + { + "id": 2100402, + "nome": "Altamira do Maranhão", + "uf": "MA" + }, + { + "id": 2100436, + "nome": "Alto Alegre do Maranhão", + "uf": "MA" + }, + { + "id": 2100477, + "nome": "Alto Alegre do Pindaré", + "uf": "MA" + }, + { + "id": 2100501, + "nome": "Alto Parnaíba", + "uf": "MA" + }, + { + "id": 2100550, + "nome": "Amapá do Maranhão", + "uf": "MA" + }, + { + "id": 2100600, + "nome": "Amarante do Maranhão", + "uf": "MA" + }, + { + "id": 2100709, + "nome": "Anajatuba", + "uf": "MA" + }, + { + "id": 2100808, + "nome": "Anapurus", + "uf": "MA" + }, + { + "id": 2100832, + "nome": "Apicum-Açu", + "uf": "MA" + }, + { + "id": 2100873, + "nome": "Araguanã", + "uf": "MA" + }, + { + "id": 2100907, + "nome": "Araioses", + "uf": "MA" + }, + { + "id": 2100956, + "nome": "Arame", + "uf": "MA" + }, + { + "id": 2101004, + "nome": "Arari", + "uf": "MA" + }, + { + "id": 2101103, + "nome": "Axixá", + "uf": "MA" + }, + { + "id": 2100055, + "nome": "Açailândia", + "uf": "MA" + }, + { + "id": 2101202, + "nome": "Bacabal", + "uf": "MA" + }, + { + "id": 2101251, + "nome": "Bacabeira", + "uf": "MA" + }, + { + "id": 2101301, + "nome": "Bacuri", + "uf": "MA" + }, + { + "id": 2101350, + "nome": "Bacurituba", + "uf": "MA" + }, + { + "id": 2101400, + "nome": "Balsas", + "uf": "MA" + }, + { + "id": 2101608, + "nome": "Barra do Corda", + "uf": "MA" + }, + { + "id": 2101707, + "nome": "Barreirinhas", + "uf": "MA" + }, + { + "id": 2101509, + "nome": "Barão de Grajaú", + "uf": "MA" + }, + { + "id": 2101772, + "nome": "Bela Vista do Maranhão", + "uf": "MA" + }, + { + "id": 2101731, + "nome": "Belágua", + "uf": "MA" + }, + { + "id": 2101806, + "nome": "Benedito Leite", + "uf": "MA" + }, + { + "id": 2101905, + "nome": "Bequimão", + "uf": "MA" + }, + { + "id": 2101939, + "nome": "Bernardo do Mearim", + "uf": "MA" + }, + { + "id": 2101970, + "nome": "Boa Vista do Gurupi", + "uf": "MA" + }, + { + "id": 2102002, + "nome": "Bom Jardim", + "uf": "MA" + }, + { + "id": 2102036, + "nome": "Bom Jesus das Selvas", + "uf": "MA" + }, + { + "id": 2102077, + "nome": "Bom Lugar", + "uf": "MA" + }, + { + "id": 2102101, + "nome": "Brejo", + "uf": "MA" + }, + { + "id": 2102150, + "nome": "Brejo de Areia", + "uf": "MA" + }, + { + "id": 2102200, + "nome": "Buriti", + "uf": "MA" + }, + { + "id": 2102309, + "nome": "Buriti Bravo", + "uf": "MA" + }, + { + "id": 2102325, + "nome": "Buriticupu", + "uf": "MA" + }, + { + "id": 2102358, + "nome": "Buritirana", + "uf": "MA" + }, + { + "id": 2102374, + "nome": "Cachoeira Grande", + "uf": "MA" + }, + { + "id": 2102408, + "nome": "Cajapió", + "uf": "MA" + }, + { + "id": 2102507, + "nome": "Cajari", + "uf": "MA" + }, + { + "id": 2102556, + "nome": "Campestre do Maranhão", + "uf": "MA" + }, + { + "id": 2102705, + "nome": "Cantanhede", + "uf": "MA" + }, + { + "id": 2102754, + "nome": "Capinzal do Norte", + "uf": "MA" + }, + { + "id": 2102804, + "nome": "Carolina", + "uf": "MA" + }, + { + "id": 2102903, + "nome": "Carutapera", + "uf": "MA" + }, + { + "id": 2103000, + "nome": "Caxias", + "uf": "MA" + }, + { + "id": 2103109, + "nome": "Cedral", + "uf": "MA" + }, + { + "id": 2103125, + "nome": "Central do Maranhão", + "uf": "MA" + }, + { + "id": 2103174, + "nome": "Centro Novo do Maranhão", + "uf": "MA" + }, + { + "id": 2103158, + "nome": "Centro do Guilherme", + "uf": "MA" + }, + { + "id": 2103208, + "nome": "Chapadinha", + "uf": "MA" + }, + { + "id": 2103257, + "nome": "Cidelândia", + "uf": "MA" + }, + { + "id": 2103307, + "nome": "Codó", + "uf": "MA" + }, + { + "id": 2103406, + "nome": "Coelho Neto", + "uf": "MA" + }, + { + "id": 2103505, + "nome": "Colinas", + "uf": "MA" + }, + { + "id": 2103554, + "nome": "Conceição do Lago-Açu", + "uf": "MA" + }, + { + "id": 2103604, + "nome": "Coroatá", + "uf": "MA" + }, + { + "id": 2103703, + "nome": "Cururupu", + "uf": "MA" + }, + { + "id": 2102606, + "nome": "Cândido Mendes", + "uf": "MA" + }, + { + "id": 2103752, + "nome": "Davinópolis", + "uf": "MA" + }, + { + "id": 2103802, + "nome": "Dom Pedro", + "uf": "MA" + }, + { + "id": 2103901, + "nome": "Duque Bacelar", + "uf": "MA" + }, + { + "id": 2104008, + "nome": "Esperantinópolis", + "uf": "MA" + }, + { + "id": 2104057, + "nome": "Estreito", + "uf": "MA" + }, + { + "id": 2104073, + "nome": "Feira Nova do Maranhão", + "uf": "MA" + }, + { + "id": 2104081, + "nome": "Fernando Falcão", + "uf": "MA" + }, + { + "id": 2104099, + "nome": "Formosa da Serra Negra", + "uf": "MA" + }, + { + "id": 2104107, + "nome": "Fortaleza dos Nogueiras", + "uf": "MA" + }, + { + "id": 2104206, + "nome": "Fortuna", + "uf": "MA" + }, + { + "id": 2104305, + "nome": "Godofredo Viana", + "uf": "MA" + }, + { + "id": 2104404, + "nome": "Gonçalves Dias", + "uf": "MA" + }, + { + "id": 2104503, + "nome": "Governador Archer", + "uf": "MA" + }, + { + "id": 2104552, + "nome": "Governador Edison Lobão", + "uf": "MA" + }, + { + "id": 2104602, + "nome": "Governador Eugênio Barros", + "uf": "MA" + }, + { + "id": 2104628, + "nome": "Governador Luiz Rocha", + "uf": "MA" + }, + { + "id": 2104651, + "nome": "Governador Newton Bello", + "uf": "MA" + }, + { + "id": 2104677, + "nome": "Governador Nunes Freire", + "uf": "MA" + }, + { + "id": 2104800, + "nome": "Grajaú", + "uf": "MA" + }, + { + "id": 2104701, + "nome": "Graça Aranha", + "uf": "MA" + }, + { + "id": 2104909, + "nome": "Guimarães", + "uf": "MA" + }, + { + "id": 2105005, + "nome": "Humberto de Campos", + "uf": "MA" + }, + { + "id": 2105104, + "nome": "Icatu", + "uf": "MA" + }, + { + "id": 2105203, + "nome": "Igarapé Grande", + "uf": "MA" + }, + { + "id": 2105153, + "nome": "Igarapé do Meio", + "uf": "MA" + }, + { + "id": 2105302, + "nome": "Imperatriz", + "uf": "MA" + }, + { + "id": 2105351, + "nome": "Itaipava do Grajaú", + "uf": "MA" + }, + { + "id": 2105401, + "nome": "Itapecuru Mirim", + "uf": "MA" + }, + { + "id": 2105427, + "nome": "Itinga do Maranhão", + "uf": "MA" + }, + { + "id": 2105450, + "nome": "Jatobá", + "uf": "MA" + }, + { + "id": 2105476, + "nome": "Jenipapo dos Vieiras", + "uf": "MA" + }, + { + "id": 2105609, + "nome": "Joselândia", + "uf": "MA" + }, + { + "id": 2105500, + "nome": "João Lisboa", + "uf": "MA" + }, + { + "id": 2105658, + "nome": "Junco do Maranhão", + "uf": "MA" + }, + { + "id": 2105906, + "nome": "Lago Verde", + "uf": "MA" + }, + { + "id": 2105708, + "nome": "Lago da Pedra", + "uf": "MA" + }, + { + "id": 2105807, + "nome": "Lago do Junco", + "uf": "MA" + }, + { + "id": 2105948, + "nome": "Lago dos Rodrigues", + "uf": "MA" + }, + { + "id": 2105963, + "nome": "Lagoa Grande do Maranhão", + "uf": "MA" + }, + { + "id": 2105922, + "nome": "Lagoa do Mato", + "uf": "MA" + }, + { + "id": 2105989, + "nome": "Lajeado Novo", + "uf": "MA" + }, + { + "id": 2106003, + "nome": "Lima Campos", + "uf": "MA" + }, + { + "id": 2106102, + "nome": "Loreto", + "uf": "MA" + }, + { + "id": 2106201, + "nome": "Luís Domingues", + "uf": "MA" + }, + { + "id": 2106300, + "nome": "Magalhães de Almeida", + "uf": "MA" + }, + { + "id": 2106326, + "nome": "Maracaçumé", + "uf": "MA" + }, + { + "id": 2106359, + "nome": "Marajá do Sena", + "uf": "MA" + }, + { + "id": 2106375, + "nome": "Maranhãozinho", + "uf": "MA" + }, + { + "id": 2106409, + "nome": "Mata Roma", + "uf": "MA" + }, + { + "id": 2106508, + "nome": "Matinha", + "uf": "MA" + }, + { + "id": 2106607, + "nome": "Matões", + "uf": "MA" + }, + { + "id": 2106631, + "nome": "Matões do Norte", + "uf": "MA" + }, + { + "id": 2106672, + "nome": "Milagres do Maranhão", + "uf": "MA" + }, + { + "id": 2106706, + "nome": "Mirador", + "uf": "MA" + }, + { + "id": 2106755, + "nome": "Miranda do Norte", + "uf": "MA" + }, + { + "id": 2106805, + "nome": "Mirinzal", + "uf": "MA" + }, + { + "id": 2107001, + "nome": "Montes Altos", + "uf": "MA" + }, + { + "id": 2106904, + "nome": "Monção", + "uf": "MA" + }, + { + "id": 2107100, + "nome": "Morros", + "uf": "MA" + }, + { + "id": 2107209, + "nome": "Nina Rodrigues", + "uf": "MA" + }, + { + "id": 2107258, + "nome": "Nova Colinas", + "uf": "MA" + }, + { + "id": 2107308, + "nome": "Nova Iorque", + "uf": "MA" + }, + { + "id": 2107357, + "nome": "Nova Olinda do Maranhão", + "uf": "MA" + }, + { + "id": 2107407, + "nome": "Olho d'Água das Cunhãs", + "uf": "MA" + }, + { + "id": 2107456, + "nome": "Olinda Nova do Maranhão", + "uf": "MA" + }, + { + "id": 2107605, + "nome": "Palmeirândia", + "uf": "MA" + }, + { + "id": 2107704, + "nome": "Paraibano", + "uf": "MA" + }, + { + "id": 2107803, + "nome": "Parnarama", + "uf": "MA" + }, + { + "id": 2107902, + "nome": "Passagem Franca", + "uf": "MA" + }, + { + "id": 2108009, + "nome": "Pastos Bons", + "uf": "MA" + }, + { + "id": 2108058, + "nome": "Paulino Neves", + "uf": "MA" + }, + { + "id": 2108108, + "nome": "Paulo Ramos", + "uf": "MA" + }, + { + "id": 2107506, + "nome": "Paço do Lumiar", + "uf": "MA" + }, + { + "id": 2108207, + "nome": "Pedreiras", + "uf": "MA" + }, + { + "id": 2108256, + "nome": "Pedro do Rosário", + "uf": "MA" + }, + { + "id": 2108306, + "nome": "Penalva", + "uf": "MA" + }, + { + "id": 2108405, + "nome": "Peri Mirim", + "uf": "MA" + }, + { + "id": 2108454, + "nome": "Peritoró", + "uf": "MA" + }, + { + "id": 2108504, + "nome": "Pindaré-Mirim", + "uf": "MA" + }, + { + "id": 2108603, + "nome": "Pinheiro", + "uf": "MA" + }, + { + "id": 2108702, + "nome": "Pio XII", + "uf": "MA" + }, + { + "id": 2108801, + "nome": "Pirapemas", + "uf": "MA" + }, + { + "id": 2109007, + "nome": "Porto Franco", + "uf": "MA" + }, + { + "id": 2109056, + "nome": "Porto Rico do Maranhão", + "uf": "MA" + }, + { + "id": 2108900, + "nome": "Poção de Pedras", + "uf": "MA" + }, + { + "id": 2109106, + "nome": "Presidente Dutra", + "uf": "MA" + }, + { + "id": 2109205, + "nome": "Presidente Juscelino", + "uf": "MA" + }, + { + "id": 2109239, + "nome": "Presidente Médici", + "uf": "MA" + }, + { + "id": 2109270, + "nome": "Presidente Sarney", + "uf": "MA" + }, + { + "id": 2109304, + "nome": "Presidente Vargas", + "uf": "MA" + }, + { + "id": 2109403, + "nome": "Primeira Cruz", + "uf": "MA" + }, + { + "id": 2109452, + "nome": "Raposa", + "uf": "MA" + }, + { + "id": 2109502, + "nome": "Riachão", + "uf": "MA" + }, + { + "id": 2109551, + "nome": "Ribamar Fiquene", + "uf": "MA" + }, + { + "id": 2109601, + "nome": "Rosário", + "uf": "MA" + }, + { + "id": 2109700, + "nome": "Sambaíba", + "uf": "MA" + }, + { + "id": 2109759, + "nome": "Santa Filomena do Maranhão", + "uf": "MA" + }, + { + "id": 2109809, + "nome": "Santa Helena", + "uf": "MA" + }, + { + "id": 2109908, + "nome": "Santa Inês", + "uf": "MA" + }, + { + "id": 2110005, + "nome": "Santa Luzia", + "uf": "MA" + }, + { + "id": 2110039, + "nome": "Santa Luzia do Paruá", + "uf": "MA" + }, + { + "id": 2110104, + "nome": "Santa Quitéria do Maranhão", + "uf": "MA" + }, + { + "id": 2110203, + "nome": "Santa Rita", + "uf": "MA" + }, + { + "id": 2110237, + "nome": "Santana do Maranhão", + "uf": "MA" + }, + { + "id": 2110278, + "nome": "Santo Amaro do Maranhão", + "uf": "MA" + }, + { + "id": 2110302, + "nome": "Santo Antônio dos Lopes", + "uf": "MA" + }, + { + "id": 2111722, + "nome": "Satubinha", + "uf": "MA" + }, + { + "id": 2111748, + "nome": "Senador Alexandre Costa", + "uf": "MA" + }, + { + "id": 2111763, + "nome": "Senador La Rocque", + "uf": "MA" + }, + { + "id": 2111789, + "nome": "Serrano do Maranhão", + "uf": "MA" + }, + { + "id": 2111904, + "nome": "Sucupira do Norte", + "uf": "MA" + }, + { + "id": 2111953, + "nome": "Sucupira do Riachão", + "uf": "MA" + }, + { + "id": 2110401, + "nome": "São Benedito do Rio Preto", + "uf": "MA" + }, + { + "id": 2110500, + "nome": "São Bento", + "uf": "MA" + }, + { + "id": 2110609, + "nome": "São Bernardo", + "uf": "MA" + }, + { + "id": 2110658, + "nome": "São Domingos do Azeitão", + "uf": "MA" + }, + { + "id": 2110708, + "nome": "São Domingos do Maranhão", + "uf": "MA" + }, + { + "id": 2110856, + "nome": "São Francisco do Brejão", + "uf": "MA" + }, + { + "id": 2110906, + "nome": "São Francisco do Maranhão", + "uf": "MA" + }, + { + "id": 2110807, + "nome": "São Félix de Balsas", + "uf": "MA" + }, + { + "id": 2111201, + "nome": "São José de Ribamar", + "uf": "MA" + }, + { + "id": 2111250, + "nome": "São José dos Basílios", + "uf": "MA" + }, + { + "id": 2111003, + "nome": "São João Batista", + "uf": "MA" + }, + { + "id": 2111029, + "nome": "São João do Carú", + "uf": "MA" + }, + { + "id": 2111052, + "nome": "São João do Paraíso", + "uf": "MA" + }, + { + "id": 2111078, + "nome": "São João do Soter", + "uf": "MA" + }, + { + "id": 2111102, + "nome": "São João dos Patos", + "uf": "MA" + }, + { + "id": 2111300, + "nome": "São Luís", + "uf": "MA" + }, + { + "id": 2111409, + "nome": "São Luís Gonzaga do Maranhão", + "uf": "MA" + }, + { + "id": 2111508, + "nome": "São Mateus do Maranhão", + "uf": "MA" + }, + { + "id": 2111532, + "nome": "São Pedro da Água Branca", + "uf": "MA" + }, + { + "id": 2111573, + "nome": "São Pedro dos Crentes", + "uf": "MA" + }, + { + "id": 2111607, + "nome": "São Raimundo das Mangabeiras", + "uf": "MA" + }, + { + "id": 2111631, + "nome": "São Raimundo do Doca Bezerra", + "uf": "MA" + }, + { + "id": 2111672, + "nome": "São Roberto", + "uf": "MA" + }, + { + "id": 2111706, + "nome": "São Vicente Ferrer", + "uf": "MA" + }, + { + "id": 2111805, + "nome": "Sítio Novo", + "uf": "MA" + }, + { + "id": 2112001, + "nome": "Tasso Fragoso", + "uf": "MA" + }, + { + "id": 2112100, + "nome": "Timbiras", + "uf": "MA" + }, + { + "id": 2112209, + "nome": "Timon", + "uf": "MA" + }, + { + "id": 2112233, + "nome": "Trizidela do Vale", + "uf": "MA" + }, + { + "id": 2112274, + "nome": "Tufilândia", + "uf": "MA" + }, + { + "id": 2112308, + "nome": "Tuntum", + "uf": "MA" + }, + { + "id": 2112407, + "nome": "Turiaçu", + "uf": "MA" + }, + { + "id": 2112456, + "nome": "Turilândia", + "uf": "MA" + }, + { + "id": 2112506, + "nome": "Tutóia", + "uf": "MA" + }, + { + "id": 2112605, + "nome": "Urbano Santos", + "uf": "MA" + }, + { + "id": 2112704, + "nome": "Vargem Grande", + "uf": "MA" + }, + { + "id": 2112803, + "nome": "Viana", + "uf": "MA" + }, + { + "id": 2112852, + "nome": "Vila Nova dos Martírios", + "uf": "MA" + }, + { + "id": 2113009, + "nome": "Vitorino Freire", + "uf": "MA" + }, + { + "id": 2112902, + "nome": "Vitória do Mearim", + "uf": "MA" + }, + { + "id": 2114007, + "nome": "Zé Doca", + "uf": "MA" + }, + { + "id": 2100154, + "nome": "Água Doce do Maranhão", + "uf": "MA" + }, + { + "id": 3100104, + "nome": "Abadia dos Dourados", + "uf": "MG" + }, + { + "id": 3100203, + "nome": "Abaeté", + "uf": "MG" + }, + { + "id": 3100302, + "nome": "Abre Campo", + "uf": "MG" + }, + { + "id": 3100401, + "nome": "Acaiaca", + "uf": "MG" + }, + { + "id": 3100807, + "nome": "Aguanil", + "uf": "MG" + }, + { + "id": 3101102, + "nome": "Aimorés", + "uf": "MG" + }, + { + "id": 3101201, + "nome": "Aiuruoca", + "uf": "MG" + }, + { + "id": 3101300, + "nome": "Alagoa", + "uf": "MG" + }, + { + "id": 3101409, + "nome": "Albertina", + "uf": "MG" + }, + { + "id": 3101607, + "nome": "Alfenas", + "uf": "MG" + }, + { + "id": 3101631, + "nome": "Alfredo Vasconcelos", + "uf": "MG" + }, + { + "id": 3101706, + "nome": "Almenara", + "uf": "MG" + }, + { + "id": 3101805, + "nome": "Alpercata", + "uf": "MG" + }, + { + "id": 3101904, + "nome": "Alpinópolis", + "uf": "MG" + }, + { + "id": 3102001, + "nome": "Alterosa", + "uf": "MG" + }, + { + "id": 3102050, + "nome": "Alto Caparaó", + "uf": "MG" + }, + { + "id": 3153509, + "nome": "Alto Jequitibá", + "uf": "MG" + }, + { + "id": 3102100, + "nome": "Alto Rio Doce", + "uf": "MG" + }, + { + "id": 3102209, + "nome": "Alvarenga", + "uf": "MG" + }, + { + "id": 3102308, + "nome": "Alvinópolis", + "uf": "MG" + }, + { + "id": 3102407, + "nome": "Alvorada de Minas", + "uf": "MG" + }, + { + "id": 3101508, + "nome": "Além Paraíba", + "uf": "MG" + }, + { + "id": 3102506, + "nome": "Amparo do Serra", + "uf": "MG" + }, + { + "id": 3102605, + "nome": "Andradas", + "uf": "MG" + }, + { + "id": 3102803, + "nome": "Andrelândia", + "uf": "MG" + }, + { + "id": 3102852, + "nome": "Angelândia", + "uf": "MG" + }, + { + "id": 3102902, + "nome": "Antônio Carlos", + "uf": "MG" + }, + { + "id": 3103009, + "nome": "Antônio Dias", + "uf": "MG" + }, + { + "id": 3103108, + "nome": "Antônio Prado de Minas", + "uf": "MG" + }, + { + "id": 3103306, + "nome": "Aracitaba", + "uf": "MG" + }, + { + "id": 3103504, + "nome": "Araguari", + "uf": "MG" + }, + { + "id": 3103603, + "nome": "Arantina", + "uf": "MG" + }, + { + "id": 3103702, + "nome": "Araponga", + "uf": "MG" + }, + { + "id": 3103751, + "nome": "Araporã", + "uf": "MG" + }, + { + "id": 3103801, + "nome": "Arapuá", + "uf": "MG" + }, + { + "id": 3104007, + "nome": "Araxá", + "uf": "MG" + }, + { + "id": 3103207, + "nome": "Araçaí", + "uf": "MG" + }, + { + "id": 3103405, + "nome": "Araçuaí", + "uf": "MG" + }, + { + "id": 3103900, + "nome": "Araújos", + "uf": "MG" + }, + { + "id": 3104106, + "nome": "Arceburgo", + "uf": "MG" + }, + { + "id": 3104205, + "nome": "Arcos", + "uf": "MG" + }, + { + "id": 3104304, + "nome": "Areado", + "uf": "MG" + }, + { + "id": 3104403, + "nome": "Argirita", + "uf": "MG" + }, + { + "id": 3104452, + "nome": "Aricanduva", + "uf": "MG" + }, + { + "id": 3104502, + "nome": "Arinos", + "uf": "MG" + }, + { + "id": 3104601, + "nome": "Astolfo Dutra", + "uf": "MG" + }, + { + "id": 3104700, + "nome": "Ataléia", + "uf": "MG" + }, + { + "id": 3104809, + "nome": "Augusto de Lima", + "uf": "MG" + }, + { + "id": 3100500, + "nome": "Açucena", + "uf": "MG" + }, + { + "id": 3104908, + "nome": "Baependi", + "uf": "MG" + }, + { + "id": 3105004, + "nome": "Baldim", + "uf": "MG" + }, + { + "id": 3105103, + "nome": "Bambuí", + "uf": "MG" + }, + { + "id": 3105202, + "nome": "Bandeira", + "uf": "MG" + }, + { + "id": 3105301, + "nome": "Bandeira do Sul", + "uf": "MG" + }, + { + "id": 3105608, + "nome": "Barbacena", + "uf": "MG" + }, + { + "id": 3105707, + "nome": "Barra Longa", + "uf": "MG" + }, + { + "id": 3105905, + "nome": "Barroso", + "uf": "MG" + }, + { + "id": 3105400, + "nome": "Barão de Cocais", + "uf": "MG" + }, + { + "id": 3105509, + "nome": "Barão do Monte Alto", + "uf": "MG" + }, + { + "id": 3106002, + "nome": "Bela Vista de Minas", + "uf": "MG" + }, + { + "id": 3106101, + "nome": "Belmiro Braga", + "uf": "MG" + }, + { + "id": 3106200, + "nome": "Belo Horizonte", + "uf": "MG" + }, + { + "id": 3106309, + "nome": "Belo Oriente", + "uf": "MG" + }, + { + "id": 3106408, + "nome": "Belo Vale", + "uf": "MG" + }, + { + "id": 3106507, + "nome": "Berilo", + "uf": "MG" + }, + { + "id": 3106655, + "nome": "Berizal", + "uf": "MG" + }, + { + "id": 3106606, + "nome": "Bertópolis", + "uf": "MG" + }, + { + "id": 3106705, + "nome": "Betim", + "uf": "MG" + }, + { + "id": 3106804, + "nome": "Bias Fortes", + "uf": "MG" + }, + { + "id": 3106903, + "nome": "Bicas", + "uf": "MG" + }, + { + "id": 3107000, + "nome": "Biquinhas", + "uf": "MG" + }, + { + "id": 3107109, + "nome": "Boa Esperança", + "uf": "MG" + }, + { + "id": 3107208, + "nome": "Bocaina de Minas", + "uf": "MG" + }, + { + "id": 3107307, + "nome": "Bocaiúva", + "uf": "MG" + }, + { + "id": 3107406, + "nome": "Bom Despacho", + "uf": "MG" + }, + { + "id": 3107505, + "nome": "Bom Jardim de Minas", + "uf": "MG" + }, + { + "id": 3107604, + "nome": "Bom Jesus da Penha", + "uf": "MG" + }, + { + "id": 3107703, + "nome": "Bom Jesus do Amparo", + "uf": "MG" + }, + { + "id": 3107802, + "nome": "Bom Jesus do Galho", + "uf": "MG" + }, + { + "id": 3107901, + "nome": "Bom Repouso", + "uf": "MG" + }, + { + "id": 3108008, + "nome": "Bom Sucesso", + "uf": "MG" + }, + { + "id": 3108107, + "nome": "Bonfim", + "uf": "MG" + }, + { + "id": 3108206, + "nome": "Bonfinópolis de Minas", + "uf": "MG" + }, + { + "id": 3108255, + "nome": "Bonito de Minas", + "uf": "MG" + }, + { + "id": 3108305, + "nome": "Borda da Mata", + "uf": "MG" + }, + { + "id": 3108404, + "nome": "Botelhos", + "uf": "MG" + }, + { + "id": 3108503, + "nome": "Botumirim", + "uf": "MG" + }, + { + "id": 3108552, + "nome": "Brasilândia de Minas", + "uf": "MG" + }, + { + "id": 3108602, + "nome": "Brasília de Minas", + "uf": "MG" + }, + { + "id": 3108909, + "nome": "Brazópolis", + "uf": "MG" + }, + { + "id": 3108800, + "nome": "Braúnas", + "uf": "MG" + }, + { + "id": 3109006, + "nome": "Brumadinho", + "uf": "MG" + }, + { + "id": 3108701, + "nome": "Brás Pires", + "uf": "MG" + }, + { + "id": 3109105, + "nome": "Bueno Brandão", + "uf": "MG" + }, + { + "id": 3109204, + "nome": "Buenópolis", + "uf": "MG" + }, + { + "id": 3109253, + "nome": "Bugre", + "uf": "MG" + }, + { + "id": 3109303, + "nome": "Buritis", + "uf": "MG" + }, + { + "id": 3109402, + "nome": "Buritizeiro", + "uf": "MG" + }, + { + "id": 3109451, + "nome": "Cabeceira Grande", + "uf": "MG" + }, + { + "id": 3109501, + "nome": "Cabo Verde", + "uf": "MG" + }, + { + "id": 3109808, + "nome": "Cachoeira Dourada", + "uf": "MG" + }, + { + "id": 3109600, + "nome": "Cachoeira da Prata", + "uf": "MG" + }, + { + "id": 3109709, + "nome": "Cachoeira de Minas", + "uf": "MG" + }, + { + "id": 3102704, + "nome": "Cachoeira de Pajeú", + "uf": "MG" + }, + { + "id": 3109907, + "nome": "Caetanópolis", + "uf": "MG" + }, + { + "id": 3110004, + "nome": "Caeté", + "uf": "MG" + }, + { + "id": 3110103, + "nome": "Caiana", + "uf": "MG" + }, + { + "id": 3110202, + "nome": "Cajuri", + "uf": "MG" + }, + { + "id": 3110301, + "nome": "Caldas", + "uf": "MG" + }, + { + "id": 3110400, + "nome": "Camacho", + "uf": "MG" + }, + { + "id": 3110509, + "nome": "Camanducaia", + "uf": "MG" + }, + { + "id": 3110707, + "nome": "Cambuquira", + "uf": "MG" + }, + { + "id": 3110608, + "nome": "Cambuí", + "uf": "MG" + }, + { + "id": 3110905, + "nome": "Campanha", + "uf": "MG" + }, + { + "id": 3110806, + "nome": "Campanário", + "uf": "MG" + }, + { + "id": 3111002, + "nome": "Campestre", + "uf": "MG" + }, + { + "id": 3111101, + "nome": "Campina Verde", + "uf": "MG" + }, + { + "id": 3111150, + "nome": "Campo Azul", + "uf": "MG" + }, + { + "id": 3111200, + "nome": "Campo Belo", + "uf": "MG" + }, + { + "id": 3111408, + "nome": "Campo Florido", + "uf": "MG" + }, + { + "id": 3111309, + "nome": "Campo do Meio", + "uf": "MG" + }, + { + "id": 3111507, + "nome": "Campos Altos", + "uf": "MG" + }, + { + "id": 3111606, + "nome": "Campos Gerais", + "uf": "MG" + }, + { + "id": 3111903, + "nome": "Cana Verde", + "uf": "MG" + }, + { + "id": 3111705, + "nome": "Canaã", + "uf": "MG" + }, + { + "id": 3112000, + "nome": "Candeias", + "uf": "MG" + }, + { + "id": 3112059, + "nome": "Cantagalo", + "uf": "MG" + }, + { + "id": 3111804, + "nome": "Canápolis", + "uf": "MG" + }, + { + "id": 3112109, + "nome": "Caparaó", + "uf": "MG" + }, + { + "id": 3112208, + "nome": "Capela Nova", + "uf": "MG" + }, + { + "id": 3112307, + "nome": "Capelinha", + "uf": "MG" + }, + { + "id": 3112406, + "nome": "Capetinga", + "uf": "MG" + }, + { + "id": 3112505, + "nome": "Capim Branco", + "uf": "MG" + }, + { + "id": 3112604, + "nome": "Capinópolis", + "uf": "MG" + }, + { + "id": 3112653, + "nome": "Capitão Andrade", + "uf": "MG" + }, + { + "id": 3112703, + "nome": "Capitão Enéas", + "uf": "MG" + }, + { + "id": 3112802, + "nome": "Capitólio", + "uf": "MG" + }, + { + "id": 3112901, + "nome": "Caputira", + "uf": "MG" + }, + { + "id": 3113107, + "nome": "Caranaíba", + "uf": "MG" + }, + { + "id": 3113206, + "nome": "Carandaí", + "uf": "MG" + }, + { + "id": 3113305, + "nome": "Carangola", + "uf": "MG" + }, + { + "id": 3113404, + "nome": "Caratinga", + "uf": "MG" + }, + { + "id": 3113008, + "nome": "Caraí", + "uf": "MG" + }, + { + "id": 3113503, + "nome": "Carbonita", + "uf": "MG" + }, + { + "id": 3113602, + "nome": "Careaçu", + "uf": "MG" + }, + { + "id": 3113701, + "nome": "Carlos Chagas", + "uf": "MG" + }, + { + "id": 3113909, + "nome": "Carmo da Cachoeira", + "uf": "MG" + }, + { + "id": 3114006, + "nome": "Carmo da Mata", + "uf": "MG" + }, + { + "id": 3114105, + "nome": "Carmo de Minas", + "uf": "MG" + }, + { + "id": 3114204, + "nome": "Carmo do Cajuru", + "uf": "MG" + }, + { + "id": 3114303, + "nome": "Carmo do Paranaíba", + "uf": "MG" + }, + { + "id": 3114402, + "nome": "Carmo do Rio Claro", + "uf": "MG" + }, + { + "id": 3113800, + "nome": "Carmésia", + "uf": "MG" + }, + { + "id": 3114501, + "nome": "Carmópolis de Minas", + "uf": "MG" + }, + { + "id": 3114550, + "nome": "Carneirinho", + "uf": "MG" + }, + { + "id": 3114600, + "nome": "Carrancas", + "uf": "MG" + }, + { + "id": 3114808, + "nome": "Carvalhos", + "uf": "MG" + }, + { + "id": 3114709, + "nome": "Carvalhópolis", + "uf": "MG" + }, + { + "id": 3114907, + "nome": "Casa Grande", + "uf": "MG" + }, + { + "id": 3115003, + "nome": "Cascalho Rico", + "uf": "MG" + }, + { + "id": 3115300, + "nome": "Cataguases", + "uf": "MG" + }, + { + "id": 3115359, + "nome": "Catas Altas", + "uf": "MG" + }, + { + "id": 3115409, + "nome": "Catas Altas da Noruega", + "uf": "MG" + }, + { + "id": 3115458, + "nome": "Catuji", + "uf": "MG" + }, + { + "id": 3115474, + "nome": "Catuti", + "uf": "MG" + }, + { + "id": 3115508, + "nome": "Caxambu", + "uf": "MG" + }, + { + "id": 3115607, + "nome": "Cedro do Abaeté", + "uf": "MG" + }, + { + "id": 3115706, + "nome": "Central de Minas", + "uf": "MG" + }, + { + "id": 3115805, + "nome": "Centralina", + "uf": "MG" + }, + { + "id": 3116001, + "nome": "Chalé", + "uf": "MG" + }, + { + "id": 3116159, + "nome": "Chapada Gaúcha", + "uf": "MG" + }, + { + "id": 3116100, + "nome": "Chapada do Norte", + "uf": "MG" + }, + { + "id": 3116209, + "nome": "Chiador", + "uf": "MG" + }, + { + "id": 3115904, + "nome": "Chácara", + "uf": "MG" + }, + { + "id": 3116308, + "nome": "Cipotânea", + "uf": "MG" + }, + { + "id": 3116407, + "nome": "Claraval", + "uf": "MG" + }, + { + "id": 3116506, + "nome": "Claro dos Poções", + "uf": "MG" + }, + { + "id": 3116605, + "nome": "Cláudio", + "uf": "MG" + }, + { + "id": 3116704, + "nome": "Coimbra", + "uf": "MG" + }, + { + "id": 3116803, + "nome": "Coluna", + "uf": "MG" + }, + { + "id": 3116902, + "nome": "Comendador Gomes", + "uf": "MG" + }, + { + "id": 3117009, + "nome": "Comercinho", + "uf": "MG" + }, + { + "id": 3117108, + "nome": "Conceição da Aparecida", + "uf": "MG" + }, + { + "id": 3115201, + "nome": "Conceição da Barra de Minas", + "uf": "MG" + }, + { + "id": 3117306, + "nome": "Conceição das Alagoas", + "uf": "MG" + }, + { + "id": 3117207, + "nome": "Conceição das Pedras", + "uf": "MG" + }, + { + "id": 3117405, + "nome": "Conceição de Ipanema", + "uf": "MG" + }, + { + "id": 3117504, + "nome": "Conceição do Mato Dentro", + "uf": "MG" + }, + { + "id": 3117603, + "nome": "Conceição do Pará", + "uf": "MG" + }, + { + "id": 3117702, + "nome": "Conceição do Rio Verde", + "uf": "MG" + }, + { + "id": 3117801, + "nome": "Conceição dos Ouros", + "uf": "MG" + }, + { + "id": 3117876, + "nome": "Confins", + "uf": "MG" + }, + { + "id": 3117900, + "nome": "Congonhal", + "uf": "MG" + }, + { + "id": 3118007, + "nome": "Congonhas", + "uf": "MG" + }, + { + "id": 3118106, + "nome": "Congonhas do Norte", + "uf": "MG" + }, + { + "id": 3118205, + "nome": "Conquista", + "uf": "MG" + }, + { + "id": 3118304, + "nome": "Conselheiro Lafaiete", + "uf": "MG" + }, + { + "id": 3118403, + "nome": "Conselheiro Pena", + "uf": "MG" + }, + { + "id": 3118502, + "nome": "Consolação", + "uf": "MG" + }, + { + "id": 3118601, + "nome": "Contagem", + "uf": "MG" + }, + { + "id": 3118700, + "nome": "Coqueiral", + "uf": "MG" + }, + { + "id": 3118809, + "nome": "Coração de Jesus", + "uf": "MG" + }, + { + "id": 3118908, + "nome": "Cordisburgo", + "uf": "MG" + }, + { + "id": 3119005, + "nome": "Cordislândia", + "uf": "MG" + }, + { + "id": 3119104, + "nome": "Corinto", + "uf": "MG" + }, + { + "id": 3119203, + "nome": "Coroaci", + "uf": "MG" + }, + { + "id": 3119302, + "nome": "Coromandel", + "uf": "MG" + }, + { + "id": 3119401, + "nome": "Coronel Fabriciano", + "uf": "MG" + }, + { + "id": 3119500, + "nome": "Coronel Murta", + "uf": "MG" + }, + { + "id": 3119609, + "nome": "Coronel Pacheco", + "uf": "MG" + }, + { + "id": 3119708, + "nome": "Coronel Xavier Chaves", + "uf": "MG" + }, + { + "id": 3120102, + "nome": "Couto de Magalhães de Minas", + "uf": "MG" + }, + { + "id": 3120201, + "nome": "Cristais", + "uf": "MG" + }, + { + "id": 3120409, + "nome": "Cristiano Otoni", + "uf": "MG" + }, + { + "id": 3120508, + "nome": "Cristina", + "uf": "MG" + }, + { + "id": 3120300, + "nome": "Cristália", + "uf": "MG" + }, + { + "id": 3120151, + "nome": "Crisólita", + "uf": "MG" + }, + { + "id": 3120607, + "nome": "Crucilândia", + "uf": "MG" + }, + { + "id": 3120706, + "nome": "Cruzeiro da Fortaleza", + "uf": "MG" + }, + { + "id": 3120805, + "nome": "Cruzília", + "uf": "MG" + }, + { + "id": 3120839, + "nome": "Cuparaque", + "uf": "MG" + }, + { + "id": 3120870, + "nome": "Curral de Dentro", + "uf": "MG" + }, + { + "id": 3120904, + "nome": "Curvelo", + "uf": "MG" + }, + { + "id": 3115102, + "nome": "Cássia", + "uf": "MG" + }, + { + "id": 3119807, + "nome": "Córrego Danta", + "uf": "MG" + }, + { + "id": 3119955, + "nome": "Córrego Fundo", + "uf": "MG" + }, + { + "id": 3120003, + "nome": "Córrego Novo", + "uf": "MG" + }, + { + "id": 3119906, + "nome": "Córrego do Bom Jesus", + "uf": "MG" + }, + { + "id": 3117836, + "nome": "Cônego Marinho", + "uf": "MG" + }, + { + "id": 3121001, + "nome": "Datas", + "uf": "MG" + }, + { + "id": 3121100, + "nome": "Delfim Moreira", + "uf": "MG" + }, + { + "id": 3121209, + "nome": "Delfinópolis", + "uf": "MG" + }, + { + "id": 3121258, + "nome": "Delta", + "uf": "MG" + }, + { + "id": 3121308, + "nome": "Descoberto", + "uf": "MG" + }, + { + "id": 3121407, + "nome": "Desterro de Entre Rios", + "uf": "MG" + }, + { + "id": 3121506, + "nome": "Desterro do Melo", + "uf": "MG" + }, + { + "id": 3121605, + "nome": "Diamantina", + "uf": "MG" + }, + { + "id": 3121704, + "nome": "Diogo de Vasconcelos", + "uf": "MG" + }, + { + "id": 3121803, + "nome": "Dionísio", + "uf": "MG" + }, + { + "id": 3122009, + "nome": "Divino", + "uf": "MG" + }, + { + "id": 3122108, + "nome": "Divino das Laranjeiras", + "uf": "MG" + }, + { + "id": 3122207, + "nome": "Divinolândia de Minas", + "uf": "MG" + }, + { + "id": 3121902, + "nome": "Divinésia", + "uf": "MG" + }, + { + "id": 3122306, + "nome": "Divinópolis", + "uf": "MG" + }, + { + "id": 3122355, + "nome": "Divisa Alegre", + "uf": "MG" + }, + { + "id": 3122405, + "nome": "Divisa Nova", + "uf": "MG" + }, + { + "id": 3122454, + "nome": "Divisópolis", + "uf": "MG" + }, + { + "id": 3122470, + "nome": "Dom Bosco", + "uf": "MG" + }, + { + "id": 3122504, + "nome": "Dom Cavati", + "uf": "MG" + }, + { + "id": 3122603, + "nome": "Dom Joaquim", + "uf": "MG" + }, + { + "id": 3122702, + "nome": "Dom Silvério", + "uf": "MG" + }, + { + "id": 3122801, + "nome": "Dom Viçoso", + "uf": "MG" + }, + { + "id": 3122900, + "nome": "Dona Euzébia", + "uf": "MG" + }, + { + "id": 3123007, + "nome": "Dores de Campos", + "uf": "MG" + }, + { + "id": 3123106, + "nome": "Dores de Guanhães", + "uf": "MG" + }, + { + "id": 3123205, + "nome": "Dores do Indaiá", + "uf": "MG" + }, + { + "id": 3123304, + "nome": "Dores do Turvo", + "uf": "MG" + }, + { + "id": 3123403, + "nome": "Doresópolis", + "uf": "MG" + }, + { + "id": 3123502, + "nome": "Douradoquara", + "uf": "MG" + }, + { + "id": 3123528, + "nome": "Durandé", + "uf": "MG" + }, + { + "id": 3123601, + "nome": "Elói Mendes", + "uf": "MG" + }, + { + "id": 3123700, + "nome": "Engenheiro Caldas", + "uf": "MG" + }, + { + "id": 3123809, + "nome": "Engenheiro Navarro", + "uf": "MG" + }, + { + "id": 3123858, + "nome": "Entre Folhas", + "uf": "MG" + }, + { + "id": 3123908, + "nome": "Entre Rios de Minas", + "uf": "MG" + }, + { + "id": 3124005, + "nome": "Ervália", + "uf": "MG" + }, + { + "id": 3124104, + "nome": "Esmeraldas", + "uf": "MG" + }, + { + "id": 3124203, + "nome": "Espera Feliz", + "uf": "MG" + }, + { + "id": 3124302, + "nome": "Espinosa", + "uf": "MG" + }, + { + "id": 3124401, + "nome": "Espírito Santo do Dourado", + "uf": "MG" + }, + { + "id": 3124500, + "nome": "Estiva", + "uf": "MG" + }, + { + "id": 3124609, + "nome": "Estrela Dalva", + "uf": "MG" + }, + { + "id": 3124708, + "nome": "Estrela do Indaiá", + "uf": "MG" + }, + { + "id": 3124807, + "nome": "Estrela do Sul", + "uf": "MG" + }, + { + "id": 3124906, + "nome": "Eugenópolis", + "uf": "MG" + }, + { + "id": 3125002, + "nome": "Ewbank da Câmara", + "uf": "MG" + }, + { + "id": 3125101, + "nome": "Extrema", + "uf": "MG" + }, + { + "id": 3125200, + "nome": "Fama", + "uf": "MG" + }, + { + "id": 3125309, + "nome": "Faria Lemos", + "uf": "MG" + }, + { + "id": 3125606, + "nome": "Felisburgo", + "uf": "MG" + }, + { + "id": 3125705, + "nome": "Felixlândia", + "uf": "MG" + }, + { + "id": 3125408, + "nome": "Felício dos Santos", + "uf": "MG" + }, + { + "id": 3125804, + "nome": "Fernandes Tourinho", + "uf": "MG" + }, + { + "id": 3125903, + "nome": "Ferros", + "uf": "MG" + }, + { + "id": 3125952, + "nome": "Fervedouro", + "uf": "MG" + }, + { + "id": 3126000, + "nome": "Florestal", + "uf": "MG" + }, + { + "id": 3126109, + "nome": "Formiga", + "uf": "MG" + }, + { + "id": 3126208, + "nome": "Formoso", + "uf": "MG" + }, + { + "id": 3126307, + "nome": "Fortaleza de Minas", + "uf": "MG" + }, + { + "id": 3126406, + "nome": "Fortuna de Minas", + "uf": "MG" + }, + { + "id": 3126505, + "nome": "Francisco Badaró", + "uf": "MG" + }, + { + "id": 3126604, + "nome": "Francisco Dumont", + "uf": "MG" + }, + { + "id": 3126703, + "nome": "Francisco Sá", + "uf": "MG" + }, + { + "id": 3126752, + "nome": "Franciscópolis", + "uf": "MG" + }, + { + "id": 3126802, + "nome": "Frei Gaspar", + "uf": "MG" + }, + { + "id": 3126901, + "nome": "Frei Inocêncio", + "uf": "MG" + }, + { + "id": 3126950, + "nome": "Frei Lagonegro", + "uf": "MG" + }, + { + "id": 3127008, + "nome": "Fronteira", + "uf": "MG" + }, + { + "id": 3127057, + "nome": "Fronteira dos Vales", + "uf": "MG" + }, + { + "id": 3127073, + "nome": "Fruta de Leite", + "uf": "MG" + }, + { + "id": 3127107, + "nome": "Frutal", + "uf": "MG" + }, + { + "id": 3127206, + "nome": "Funilândia", + "uf": "MG" + }, + { + "id": 3127305, + "nome": "Galiléia", + "uf": "MG" + }, + { + "id": 3127339, + "nome": "Gameleiras", + "uf": "MG" + }, + { + "id": 3127354, + "nome": "Glaucilândia", + "uf": "MG" + }, + { + "id": 3127370, + "nome": "Goiabeira", + "uf": "MG" + }, + { + "id": 3127388, + "nome": "Goianá", + "uf": "MG" + }, + { + "id": 3127503, + "nome": "Gonzaga", + "uf": "MG" + }, + { + "id": 3127404, + "nome": "Gonçalves", + "uf": "MG" + }, + { + "id": 3127602, + "nome": "Gouveia", + "uf": "MG" + }, + { + "id": 3127701, + "nome": "Governador Valadares", + "uf": "MG" + }, + { + "id": 3127909, + "nome": "Grupiara", + "uf": "MG" + }, + { + "id": 3127800, + "nome": "Grão Mogol", + "uf": "MG" + }, + { + "id": 3128006, + "nome": "Guanhães", + "uf": "MG" + }, + { + "id": 3128105, + "nome": "Guapé", + "uf": "MG" + }, + { + "id": 3128204, + "nome": "Guaraciaba", + "uf": "MG" + }, + { + "id": 3128253, + "nome": "Guaraciama", + "uf": "MG" + }, + { + "id": 3128402, + "nome": "Guarani", + "uf": "MG" + }, + { + "id": 3128303, + "nome": "Guaranésia", + "uf": "MG" + }, + { + "id": 3128501, + "nome": "Guarará", + "uf": "MG" + }, + { + "id": 3128600, + "nome": "Guarda-Mor", + "uf": "MG" + }, + { + "id": 3128709, + "nome": "Guaxupé", + "uf": "MG" + }, + { + "id": 3128808, + "nome": "Guidoval", + "uf": "MG" + }, + { + "id": 3128907, + "nome": "Guimarânia", + "uf": "MG" + }, + { + "id": 3129004, + "nome": "Guiricema", + "uf": "MG" + }, + { + "id": 3129103, + "nome": "Gurinhatã", + "uf": "MG" + }, + { + "id": 3129202, + "nome": "Heliodora", + "uf": "MG" + }, + { + "id": 3129301, + "nome": "Iapu", + "uf": "MG" + }, + { + "id": 3129400, + "nome": "Ibertioga", + "uf": "MG" + }, + { + "id": 3129608, + "nome": "Ibiaí", + "uf": "MG" + }, + { + "id": 3129657, + "nome": "Ibiracatu", + "uf": "MG" + }, + { + "id": 3129707, + "nome": "Ibiraci", + "uf": "MG" + }, + { + "id": 3129806, + "nome": "Ibirité", + "uf": "MG" + }, + { + "id": 3129905, + "nome": "Ibitiúra de Minas", + "uf": "MG" + }, + { + "id": 3130002, + "nome": "Ibituruna", + "uf": "MG" + }, + { + "id": 3129509, + "nome": "Ibiá", + "uf": "MG" + }, + { + "id": 3130051, + "nome": "Icaraí de Minas", + "uf": "MG" + }, + { + "id": 3130101, + "nome": "Igarapé", + "uf": "MG" + }, + { + "id": 3130200, + "nome": "Igaratinga", + "uf": "MG" + }, + { + "id": 3130309, + "nome": "Iguatama", + "uf": "MG" + }, + { + "id": 3130408, + "nome": "Ijaci", + "uf": "MG" + }, + { + "id": 3130507, + "nome": "Ilicínea", + "uf": "MG" + }, + { + "id": 3130556, + "nome": "Imbé de Minas", + "uf": "MG" + }, + { + "id": 3130606, + "nome": "Inconfidentes", + "uf": "MG" + }, + { + "id": 3130655, + "nome": "Indaiabira", + "uf": "MG" + }, + { + "id": 3130705, + "nome": "Indianópolis", + "uf": "MG" + }, + { + "id": 3130804, + "nome": "Ingaí", + "uf": "MG" + }, + { + "id": 3130903, + "nome": "Inhapim", + "uf": "MG" + }, + { + "id": 3131000, + "nome": "Inhaúma", + "uf": "MG" + }, + { + "id": 3131109, + "nome": "Inimutaba", + "uf": "MG" + }, + { + "id": 3131158, + "nome": "Ipaba", + "uf": "MG" + }, + { + "id": 3131208, + "nome": "Ipanema", + "uf": "MG" + }, + { + "id": 3131307, + "nome": "Ipatinga", + "uf": "MG" + }, + { + "id": 3131406, + "nome": "Ipiaçu", + "uf": "MG" + }, + { + "id": 3131505, + "nome": "Ipuiúna", + "uf": "MG" + }, + { + "id": 3131604, + "nome": "Iraí de Minas", + "uf": "MG" + }, + { + "id": 3131703, + "nome": "Itabira", + "uf": "MG" + }, + { + "id": 3131802, + "nome": "Itabirinha", + "uf": "MG" + }, + { + "id": 3131901, + "nome": "Itabirito", + "uf": "MG" + }, + { + "id": 3132008, + "nome": "Itacambira", + "uf": "MG" + }, + { + "id": 3132107, + "nome": "Itacarambi", + "uf": "MG" + }, + { + "id": 3132206, + "nome": "Itaguara", + "uf": "MG" + }, + { + "id": 3132305, + "nome": "Itaipé", + "uf": "MG" + }, + { + "id": 3132404, + "nome": "Itajubá", + "uf": "MG" + }, + { + "id": 3132503, + "nome": "Itamarandiba", + "uf": "MG" + }, + { + "id": 3132602, + "nome": "Itamarati de Minas", + "uf": "MG" + }, + { + "id": 3132701, + "nome": "Itambacuri", + "uf": "MG" + }, + { + "id": 3132800, + "nome": "Itambé do Mato Dentro", + "uf": "MG" + }, + { + "id": 3132909, + "nome": "Itamogi", + "uf": "MG" + }, + { + "id": 3133006, + "nome": "Itamonte", + "uf": "MG" + }, + { + "id": 3133105, + "nome": "Itanhandu", + "uf": "MG" + }, + { + "id": 3133204, + "nome": "Itanhomi", + "uf": "MG" + }, + { + "id": 3133303, + "nome": "Itaobim", + "uf": "MG" + }, + { + "id": 3133402, + "nome": "Itapagipe", + "uf": "MG" + }, + { + "id": 3133501, + "nome": "Itapecerica", + "uf": "MG" + }, + { + "id": 3133600, + "nome": "Itapeva", + "uf": "MG" + }, + { + "id": 3133709, + "nome": "Itatiaiuçu", + "uf": "MG" + }, + { + "id": 3133907, + "nome": "Itaverava", + "uf": "MG" + }, + { + "id": 3133758, + "nome": "Itaú de Minas", + "uf": "MG" + }, + { + "id": 3133808, + "nome": "Itaúna", + "uf": "MG" + }, + { + "id": 3134004, + "nome": "Itinga", + "uf": "MG" + }, + { + "id": 3134103, + "nome": "Itueta", + "uf": "MG" + }, + { + "id": 3134202, + "nome": "Ituiutaba", + "uf": "MG" + }, + { + "id": 3134301, + "nome": "Itumirim", + "uf": "MG" + }, + { + "id": 3134400, + "nome": "Iturama", + "uf": "MG" + }, + { + "id": 3134509, + "nome": "Itutinga", + "uf": "MG" + }, + { + "id": 3134608, + "nome": "Jaboticatubas", + "uf": "MG" + }, + { + "id": 3134707, + "nome": "Jacinto", + "uf": "MG" + }, + { + "id": 3134905, + "nome": "Jacutinga", + "uf": "MG" + }, + { + "id": 3134806, + "nome": "Jacuí", + "uf": "MG" + }, + { + "id": 3135001, + "nome": "Jaguaraçu", + "uf": "MG" + }, + { + "id": 3135076, + "nome": "Jampruca", + "uf": "MG" + }, + { + "id": 3135100, + "nome": "Janaúba", + "uf": "MG" + }, + { + "id": 3135209, + "nome": "Januária", + "uf": "MG" + }, + { + "id": 3135308, + "nome": "Japaraíba", + "uf": "MG" + }, + { + "id": 3135357, + "nome": "Japonvar", + "uf": "MG" + }, + { + "id": 3135050, + "nome": "Jaíba", + "uf": "MG" + }, + { + "id": 3135407, + "nome": "Jeceaba", + "uf": "MG" + }, + { + "id": 3135456, + "nome": "Jenipapo de Minas", + "uf": "MG" + }, + { + "id": 3135506, + "nome": "Jequeri", + "uf": "MG" + }, + { + "id": 3135605, + "nome": "Jequitaí", + "uf": "MG" + }, + { + "id": 3135704, + "nome": "Jequitibá", + "uf": "MG" + }, + { + "id": 3135803, + "nome": "Jequitinhonha", + "uf": "MG" + }, + { + "id": 3135902, + "nome": "Jesuânia", + "uf": "MG" + }, + { + "id": 3136108, + "nome": "Joanésia", + "uf": "MG" + }, + { + "id": 3136405, + "nome": "Joaquim Felício", + "uf": "MG" + }, + { + "id": 3136009, + "nome": "Joaíma", + "uf": "MG" + }, + { + "id": 3136504, + "nome": "Jordânia", + "uf": "MG" + }, + { + "id": 3136579, + "nome": "Josenópolis", + "uf": "MG" + }, + { + "id": 3136520, + "nome": "José Gonçalves de Minas", + "uf": "MG" + }, + { + "id": 3136553, + "nome": "José Raydan", + "uf": "MG" + }, + { + "id": 3136207, + "nome": "João Monlevade", + "uf": "MG" + }, + { + "id": 3136306, + "nome": "João Pinheiro", + "uf": "MG" + }, + { + "id": 3136652, + "nome": "Juatuba", + "uf": "MG" + }, + { + "id": 3136702, + "nome": "Juiz de Fora", + "uf": "MG" + }, + { + "id": 3136801, + "nome": "Juramento", + "uf": "MG" + }, + { + "id": 3136900, + "nome": "Juruaia", + "uf": "MG" + }, + { + "id": 3136959, + "nome": "Juvenília", + "uf": "MG" + }, + { + "id": 3137007, + "nome": "Ladainha", + "uf": "MG" + }, + { + "id": 3137106, + "nome": "Lagamar", + "uf": "MG" + }, + { + "id": 3137403, + "nome": "Lagoa Dourada", + "uf": "MG" + }, + { + "id": 3137502, + "nome": "Lagoa Formosa", + "uf": "MG" + }, + { + "id": 3137536, + "nome": "Lagoa Grande", + "uf": "MG" + }, + { + "id": 3137601, + "nome": "Lagoa Santa", + "uf": "MG" + }, + { + "id": 3137205, + "nome": "Lagoa da Prata", + "uf": "MG" + }, + { + "id": 3137304, + "nome": "Lagoa dos Patos", + "uf": "MG" + }, + { + "id": 3137700, + "nome": "Lajinha", + "uf": "MG" + }, + { + "id": 3137809, + "nome": "Lambari", + "uf": "MG" + }, + { + "id": 3137908, + "nome": "Lamim", + "uf": "MG" + }, + { + "id": 3138005, + "nome": "Laranjal", + "uf": "MG" + }, + { + "id": 3138104, + "nome": "Lassance", + "uf": "MG" + }, + { + "id": 3138203, + "nome": "Lavras", + "uf": "MG" + }, + { + "id": 3138302, + "nome": "Leandro Ferreira", + "uf": "MG" + }, + { + "id": 3138351, + "nome": "Leme do Prado", + "uf": "MG" + }, + { + "id": 3138401, + "nome": "Leopoldina", + "uf": "MG" + }, + { + "id": 3138500, + "nome": "Liberdade", + "uf": "MG" + }, + { + "id": 3138609, + "nome": "Lima Duarte", + "uf": "MG" + }, + { + "id": 3138625, + "nome": "Limeira do Oeste", + "uf": "MG" + }, + { + "id": 3138658, + "nome": "Lontra", + "uf": "MG" + }, + { + "id": 3138674, + "nome": "Luisburgo", + "uf": "MG" + }, + { + "id": 3138682, + "nome": "Luislândia", + "uf": "MG" + }, + { + "id": 3138708, + "nome": "Luminárias", + "uf": "MG" + }, + { + "id": 3138807, + "nome": "Luz", + "uf": "MG" + }, + { + "id": 3138906, + "nome": "Machacalis", + "uf": "MG" + }, + { + "id": 3139003, + "nome": "Machado", + "uf": "MG" + }, + { + "id": 3139102, + "nome": "Madre de Deus de Minas", + "uf": "MG" + }, + { + "id": 3139201, + "nome": "Malacacheta", + "uf": "MG" + }, + { + "id": 3139250, + "nome": "Mamonas", + "uf": "MG" + }, + { + "id": 3139300, + "nome": "Manga", + "uf": "MG" + }, + { + "id": 3139409, + "nome": "Manhuaçu", + "uf": "MG" + }, + { + "id": 3139508, + "nome": "Manhumirim", + "uf": "MG" + }, + { + "id": 3139607, + "nome": "Mantena", + "uf": "MG" + }, + { + "id": 3139805, + "nome": "Mar de Espanha", + "uf": "MG" + }, + { + "id": 3139706, + "nome": "Maravilhas", + "uf": "MG" + }, + { + "id": 3139904, + "nome": "Maria da Fé", + "uf": "MG" + }, + { + "id": 3140001, + "nome": "Mariana", + "uf": "MG" + }, + { + "id": 3140100, + "nome": "Marilac", + "uf": "MG" + }, + { + "id": 3140209, + "nome": "Maripá de Minas", + "uf": "MG" + }, + { + "id": 3140308, + "nome": "Marliéria", + "uf": "MG" + }, + { + "id": 3140407, + "nome": "Marmelópolis", + "uf": "MG" + }, + { + "id": 3140506, + "nome": "Martinho Campos", + "uf": "MG" + }, + { + "id": 3140530, + "nome": "Martins Soares", + "uf": "MG" + }, + { + "id": 3140555, + "nome": "Mata Verde", + "uf": "MG" + }, + { + "id": 3140605, + "nome": "Materlândia", + "uf": "MG" + }, + { + "id": 3140704, + "nome": "Mateus Leme", + "uf": "MG" + }, + { + "id": 3171501, + "nome": "Mathias Lobato", + "uf": "MG" + }, + { + "id": 3140803, + "nome": "Matias Barbosa", + "uf": "MG" + }, + { + "id": 3140852, + "nome": "Matias Cardoso", + "uf": "MG" + }, + { + "id": 3140902, + "nome": "Matipó", + "uf": "MG" + }, + { + "id": 3141009, + "nome": "Mato Verde", + "uf": "MG" + }, + { + "id": 3141108, + "nome": "Matozinhos", + "uf": "MG" + }, + { + "id": 3141207, + "nome": "Matutina", + "uf": "MG" + }, + { + "id": 3141306, + "nome": "Medeiros", + "uf": "MG" + }, + { + "id": 3141405, + "nome": "Medina", + "uf": "MG" + }, + { + "id": 3141504, + "nome": "Mendes Pimentel", + "uf": "MG" + }, + { + "id": 3141603, + "nome": "Mercês", + "uf": "MG" + }, + { + "id": 3141702, + "nome": "Mesquita", + "uf": "MG" + }, + { + "id": 3141801, + "nome": "Minas Novas", + "uf": "MG" + }, + { + "id": 3141900, + "nome": "Minduri", + "uf": "MG" + }, + { + "id": 3142007, + "nome": "Mirabela", + "uf": "MG" + }, + { + "id": 3142106, + "nome": "Miradouro", + "uf": "MG" + }, + { + "id": 3142254, + "nome": "Miravânia", + "uf": "MG" + }, + { + "id": 3142205, + "nome": "Miraí", + "uf": "MG" + }, + { + "id": 3142304, + "nome": "Moeda", + "uf": "MG" + }, + { + "id": 3142403, + "nome": "Moema", + "uf": "MG" + }, + { + "id": 3142502, + "nome": "Monjolos", + "uf": "MG" + }, + { + "id": 3142601, + "nome": "Monsenhor Paulo", + "uf": "MG" + }, + { + "id": 3142700, + "nome": "Montalvânia", + "uf": "MG" + }, + { + "id": 3142809, + "nome": "Monte Alegre de Minas", + "uf": "MG" + }, + { + "id": 3142908, + "nome": "Monte Azul", + "uf": "MG" + }, + { + "id": 3143005, + "nome": "Monte Belo", + "uf": "MG" + }, + { + "id": 3143104, + "nome": "Monte Carmelo", + "uf": "MG" + }, + { + "id": 3143153, + "nome": "Monte Formoso", + "uf": "MG" + }, + { + "id": 3143203, + "nome": "Monte Santo de Minas", + "uf": "MG" + }, + { + "id": 3143401, + "nome": "Monte Sião", + "uf": "MG" + }, + { + "id": 3143302, + "nome": "Montes Claros", + "uf": "MG" + }, + { + "id": 3143450, + "nome": "Montezuma", + "uf": "MG" + }, + { + "id": 3143500, + "nome": "Morada Nova de Minas", + "uf": "MG" + }, + { + "id": 3143609, + "nome": "Morro da Garça", + "uf": "MG" + }, + { + "id": 3143708, + "nome": "Morro do Pilar", + "uf": "MG" + }, + { + "id": 3143807, + "nome": "Munhoz", + "uf": "MG" + }, + { + "id": 3143906, + "nome": "Muriaé", + "uf": "MG" + }, + { + "id": 3144003, + "nome": "Mutum", + "uf": "MG" + }, + { + "id": 3144102, + "nome": "Muzambinho", + "uf": "MG" + }, + { + "id": 3140159, + "nome": "Mário Campos", + "uf": "MG" + }, + { + "id": 3144201, + "nome": "Nacip Raydan", + "uf": "MG" + }, + { + "id": 3144300, + "nome": "Nanuque", + "uf": "MG" + }, + { + "id": 3144359, + "nome": "Naque", + "uf": "MG" + }, + { + "id": 3144375, + "nome": "Natalândia", + "uf": "MG" + }, + { + "id": 3144409, + "nome": "Natércia", + "uf": "MG" + }, + { + "id": 3144508, + "nome": "Nazareno", + "uf": "MG" + }, + { + "id": 3144607, + "nome": "Nepomuceno", + "uf": "MG" + }, + { + "id": 3144656, + "nome": "Ninheira", + "uf": "MG" + }, + { + "id": 3144672, + "nome": "Nova Belém", + "uf": "MG" + }, + { + "id": 3144706, + "nome": "Nova Era", + "uf": "MG" + }, + { + "id": 3144805, + "nome": "Nova Lima", + "uf": "MG" + }, + { + "id": 3144904, + "nome": "Nova Módica", + "uf": "MG" + }, + { + "id": 3145000, + "nome": "Nova Ponte", + "uf": "MG" + }, + { + "id": 3145059, + "nome": "Nova Porteirinha", + "uf": "MG" + }, + { + "id": 3145109, + "nome": "Nova Resende", + "uf": "MG" + }, + { + "id": 3145208, + "nome": "Nova Serrana", + "uf": "MG" + }, + { + "id": 3136603, + "nome": "Nova União", + "uf": "MG" + }, + { + "id": 3145307, + "nome": "Novo Cruzeiro", + "uf": "MG" + }, + { + "id": 3145356, + "nome": "Novo Oriente de Minas", + "uf": "MG" + }, + { + "id": 3145372, + "nome": "Novorizonte", + "uf": "MG" + }, + { + "id": 3145406, + "nome": "Olaria", + "uf": "MG" + }, + { + "id": 3145455, + "nome": "Olhos-d'Água", + "uf": "MG" + }, + { + "id": 3145604, + "nome": "Oliveira", + "uf": "MG" + }, + { + "id": 3145703, + "nome": "Oliveira Fortes", + "uf": "MG" + }, + { + "id": 3145505, + "nome": "Olímpio Noronha", + "uf": "MG" + }, + { + "id": 3145802, + "nome": "Onça de Pitangui", + "uf": "MG" + }, + { + "id": 3145851, + "nome": "Oratórios", + "uf": "MG" + }, + { + "id": 3145877, + "nome": "Orizânia", + "uf": "MG" + }, + { + "id": 3145901, + "nome": "Ouro Branco", + "uf": "MG" + }, + { + "id": 3146008, + "nome": "Ouro Fino", + "uf": "MG" + }, + { + "id": 3146107, + "nome": "Ouro Preto", + "uf": "MG" + }, + { + "id": 3146206, + "nome": "Ouro Verde de Minas", + "uf": "MG" + }, + { + "id": 3146255, + "nome": "Padre Carvalho", + "uf": "MG" + }, + { + "id": 3146305, + "nome": "Padre Paraíso", + "uf": "MG" + }, + { + "id": 3146552, + "nome": "Pai Pedro", + "uf": "MG" + }, + { + "id": 3146404, + "nome": "Paineiras", + "uf": "MG" + }, + { + "id": 3146503, + "nome": "Pains", + "uf": "MG" + }, + { + "id": 3146602, + "nome": "Paiva", + "uf": "MG" + }, + { + "id": 3146701, + "nome": "Palma", + "uf": "MG" + }, + { + "id": 3146750, + "nome": "Palmópolis", + "uf": "MG" + }, + { + "id": 3146909, + "nome": "Papagaios", + "uf": "MG" + }, + { + "id": 3147006, + "nome": "Paracatu", + "uf": "MG" + }, + { + "id": 3147204, + "nome": "Paraguaçu", + "uf": "MG" + }, + { + "id": 3147303, + "nome": "Paraisópolis", + "uf": "MG" + }, + { + "id": 3147402, + "nome": "Paraopeba", + "uf": "MG" + }, + { + "id": 3147105, + "nome": "Pará de Minas", + "uf": "MG" + }, + { + "id": 3147600, + "nome": "Passa Quatro", + "uf": "MG" + }, + { + "id": 3147709, + "nome": "Passa Tempo", + "uf": "MG" + }, + { + "id": 3147808, + "nome": "Passa Vinte", + "uf": "MG" + }, + { + "id": 3147501, + "nome": "Passabém", + "uf": "MG" + }, + { + "id": 3147907, + "nome": "Passos", + "uf": "MG" + }, + { + "id": 3147956, + "nome": "Patis", + "uf": "MG" + }, + { + "id": 3148004, + "nome": "Patos de Minas", + "uf": "MG" + }, + { + "id": 3148103, + "nome": "Patrocínio", + "uf": "MG" + }, + { + "id": 3148202, + "nome": "Patrocínio do Muriaé", + "uf": "MG" + }, + { + "id": 3148301, + "nome": "Paula Cândido", + "uf": "MG" + }, + { + "id": 3148400, + "nome": "Paulistas", + "uf": "MG" + }, + { + "id": 3148509, + "nome": "Pavão", + "uf": "MG" + }, + { + "id": 3148707, + "nome": "Pedra Azul", + "uf": "MG" + }, + { + "id": 3148756, + "nome": "Pedra Bonita", + "uf": "MG" + }, + { + "id": 3149002, + "nome": "Pedra Dourada", + "uf": "MG" + }, + { + "id": 3148806, + "nome": "Pedra do Anta", + "uf": "MG" + }, + { + "id": 3148905, + "nome": "Pedra do Indaiá", + "uf": "MG" + }, + { + "id": 3149101, + "nome": "Pedralva", + "uf": "MG" + }, + { + "id": 3149150, + "nome": "Pedras de Maria da Cruz", + "uf": "MG" + }, + { + "id": 3149200, + "nome": "Pedrinópolis", + "uf": "MG" + }, + { + "id": 3149309, + "nome": "Pedro Leopoldo", + "uf": "MG" + }, + { + "id": 3149408, + "nome": "Pedro Teixeira", + "uf": "MG" + }, + { + "id": 3149507, + "nome": "Pequeri", + "uf": "MG" + }, + { + "id": 3149606, + "nome": "Pequi", + "uf": "MG" + }, + { + "id": 3149705, + "nome": "Perdigão", + "uf": "MG" + }, + { + "id": 3149804, + "nome": "Perdizes", + "uf": "MG" + }, + { + "id": 3149903, + "nome": "Perdões", + "uf": "MG" + }, + { + "id": 3149952, + "nome": "Periquito", + "uf": "MG" + }, + { + "id": 3150000, + "nome": "Pescador", + "uf": "MG" + }, + { + "id": 3148608, + "nome": "Peçanha", + "uf": "MG" + }, + { + "id": 3150109, + "nome": "Piau", + "uf": "MG" + }, + { + "id": 3150158, + "nome": "Piedade de Caratinga", + "uf": "MG" + }, + { + "id": 3150208, + "nome": "Piedade de Ponte Nova", + "uf": "MG" + }, + { + "id": 3150307, + "nome": "Piedade do Rio Grande", + "uf": "MG" + }, + { + "id": 3150406, + "nome": "Piedade dos Gerais", + "uf": "MG" + }, + { + "id": 3150505, + "nome": "Pimenta", + "uf": "MG" + }, + { + "id": 3150539, + "nome": "Pingo-d'Água", + "uf": "MG" + }, + { + "id": 3150570, + "nome": "Pintópolis", + "uf": "MG" + }, + { + "id": 3150604, + "nome": "Piracema", + "uf": "MG" + }, + { + "id": 3150703, + "nome": "Pirajuba", + "uf": "MG" + }, + { + "id": 3150802, + "nome": "Piranga", + "uf": "MG" + }, + { + "id": 3151008, + "nome": "Piranguinho", + "uf": "MG" + }, + { + "id": 3150901, + "nome": "Piranguçu", + "uf": "MG" + }, + { + "id": 3151107, + "nome": "Pirapetinga", + "uf": "MG" + }, + { + "id": 3151206, + "nome": "Pirapora", + "uf": "MG" + }, + { + "id": 3151305, + "nome": "Piraúba", + "uf": "MG" + }, + { + "id": 3151404, + "nome": "Pitangui", + "uf": "MG" + }, + { + "id": 3151503, + "nome": "Piumhi", + "uf": "MG" + }, + { + "id": 3151602, + "nome": "Planura", + "uf": "MG" + }, + { + "id": 3151909, + "nome": "Pocrane", + "uf": "MG" + }, + { + "id": 3152006, + "nome": "Pompéu", + "uf": "MG" + }, + { + "id": 3152105, + "nome": "Ponte Nova", + "uf": "MG" + }, + { + "id": 3152131, + "nome": "Ponto Chique", + "uf": "MG" + }, + { + "id": 3152170, + "nome": "Ponto dos Volantes", + "uf": "MG" + }, + { + "id": 3152204, + "nome": "Porteirinha", + "uf": "MG" + }, + { + "id": 3152303, + "nome": "Porto Firme", + "uf": "MG" + }, + { + "id": 3152402, + "nome": "Poté", + "uf": "MG" + }, + { + "id": 3152501, + "nome": "Pouso Alegre", + "uf": "MG" + }, + { + "id": 3152600, + "nome": "Pouso Alto", + "uf": "MG" + }, + { + "id": 3151701, + "nome": "Poço Fundo", + "uf": "MG" + }, + { + "id": 3151800, + "nome": "Poços de Caldas", + "uf": "MG" + }, + { + "id": 3152709, + "nome": "Prados", + "uf": "MG" + }, + { + "id": 3152808, + "nome": "Prata", + "uf": "MG" + }, + { + "id": 3153004, + "nome": "Pratinha", + "uf": "MG" + }, + { + "id": 3152907, + "nome": "Pratápolis", + "uf": "MG" + }, + { + "id": 3153103, + "nome": "Presidente Bernardes", + "uf": "MG" + }, + { + "id": 3153202, + "nome": "Presidente Juscelino", + "uf": "MG" + }, + { + "id": 3153301, + "nome": "Presidente Kubitschek", + "uf": "MG" + }, + { + "id": 3153400, + "nome": "Presidente Olegário", + "uf": "MG" + }, + { + "id": 3153608, + "nome": "Prudente de Morais", + "uf": "MG" + }, + { + "id": 3153707, + "nome": "Quartel Geral", + "uf": "MG" + }, + { + "id": 3153806, + "nome": "Queluzito", + "uf": "MG" + }, + { + "id": 3153905, + "nome": "Raposos", + "uf": "MG" + }, + { + "id": 3154002, + "nome": "Raul Soares", + "uf": "MG" + }, + { + "id": 3154101, + "nome": "Recreio", + "uf": "MG" + }, + { + "id": 3154150, + "nome": "Reduto", + "uf": "MG" + }, + { + "id": 3154200, + "nome": "Resende Costa", + "uf": "MG" + }, + { + "id": 3154309, + "nome": "Resplendor", + "uf": "MG" + }, + { + "id": 3154408, + "nome": "Ressaquinha", + "uf": "MG" + }, + { + "id": 3154457, + "nome": "Riachinho", + "uf": "MG" + }, + { + "id": 3154507, + "nome": "Riacho dos Machados", + "uf": "MG" + }, + { + "id": 3154705, + "nome": "Ribeirão Vermelho", + "uf": "MG" + }, + { + "id": 3154606, + "nome": "Ribeirão das Neves", + "uf": "MG" + }, + { + "id": 3154804, + "nome": "Rio Acima", + "uf": "MG" + }, + { + "id": 3154903, + "nome": "Rio Casca", + "uf": "MG" + }, + { + "id": 3155009, + "nome": "Rio Doce", + "uf": "MG" + }, + { + "id": 3155207, + "nome": "Rio Espera", + "uf": "MG" + }, + { + "id": 3155306, + "nome": "Rio Manso", + "uf": "MG" + }, + { + "id": 3155405, + "nome": "Rio Novo", + "uf": "MG" + }, + { + "id": 3155504, + "nome": "Rio Paranaíba", + "uf": "MG" + }, + { + "id": 3155603, + "nome": "Rio Pardo de Minas", + "uf": "MG" + }, + { + "id": 3155702, + "nome": "Rio Piracicaba", + "uf": "MG" + }, + { + "id": 3155801, + "nome": "Rio Pomba", + "uf": "MG" + }, + { + "id": 3155900, + "nome": "Rio Preto", + "uf": "MG" + }, + { + "id": 3156007, + "nome": "Rio Vermelho", + "uf": "MG" + }, + { + "id": 3155108, + "nome": "Rio do Prado", + "uf": "MG" + }, + { + "id": 3156106, + "nome": "Ritápolis", + "uf": "MG" + }, + { + "id": 3156205, + "nome": "Rochedo de Minas", + "uf": "MG" + }, + { + "id": 3156304, + "nome": "Rodeiro", + "uf": "MG" + }, + { + "id": 3156403, + "nome": "Romaria", + "uf": "MG" + }, + { + "id": 3156452, + "nome": "Rosário da Limeira", + "uf": "MG" + }, + { + "id": 3156502, + "nome": "Rubelita", + "uf": "MG" + }, + { + "id": 3156601, + "nome": "Rubim", + "uf": "MG" + }, + { + "id": 3156700, + "nome": "Sabará", + "uf": "MG" + }, + { + "id": 3156809, + "nome": "Sabinópolis", + "uf": "MG" + }, + { + "id": 3156908, + "nome": "Sacramento", + "uf": "MG" + }, + { + "id": 3157005, + "nome": "Salinas", + "uf": "MG" + }, + { + "id": 3157104, + "nome": "Salto da Divisa", + "uf": "MG" + }, + { + "id": 3157203, + "nome": "Santa Bárbara", + "uf": "MG" + }, + { + "id": 3157252, + "nome": "Santa Bárbara do Leste", + "uf": "MG" + }, + { + "id": 3157278, + "nome": "Santa Bárbara do Monte Verde", + "uf": "MG" + }, + { + "id": 3157302, + "nome": "Santa Bárbara do Tugúrio", + "uf": "MG" + }, + { + "id": 3157336, + "nome": "Santa Cruz de Minas", + "uf": "MG" + }, + { + "id": 3157377, + "nome": "Santa Cruz de Salinas", + "uf": "MG" + }, + { + "id": 3157401, + "nome": "Santa Cruz do Escalvado", + "uf": "MG" + }, + { + "id": 3157500, + "nome": "Santa Efigênia de Minas", + "uf": "MG" + }, + { + "id": 3157609, + "nome": "Santa Fé de Minas", + "uf": "MG" + }, + { + "id": 3157658, + "nome": "Santa Helena de Minas", + "uf": "MG" + }, + { + "id": 3157708, + "nome": "Santa Juliana", + "uf": "MG" + }, + { + "id": 3157807, + "nome": "Santa Luzia", + "uf": "MG" + }, + { + "id": 3157906, + "nome": "Santa Margarida", + "uf": "MG" + }, + { + "id": 3158003, + "nome": "Santa Maria de Itabira", + "uf": "MG" + }, + { + "id": 3158102, + "nome": "Santa Maria do Salto", + "uf": "MG" + }, + { + "id": 3158201, + "nome": "Santa Maria do Suaçuí", + "uf": "MG" + }, + { + "id": 3159209, + "nome": "Santa Rita de Caldas", + "uf": "MG" + }, + { + "id": 3159407, + "nome": "Santa Rita de Ibitipoca", + "uf": "MG" + }, + { + "id": 3159308, + "nome": "Santa Rita de Jacutinga", + "uf": "MG" + }, + { + "id": 3159357, + "nome": "Santa Rita de Minas", + "uf": "MG" + }, + { + "id": 3159506, + "nome": "Santa Rita do Itueto", + "uf": "MG" + }, + { + "id": 3159605, + "nome": "Santa Rita do Sapucaí", + "uf": "MG" + }, + { + "id": 3159704, + "nome": "Santa Rosa da Serra", + "uf": "MG" + }, + { + "id": 3159803, + "nome": "Santa Vitória", + "uf": "MG" + }, + { + "id": 3158300, + "nome": "Santana da Vargem", + "uf": "MG" + }, + { + "id": 3158409, + "nome": "Santana de Cataguases", + "uf": "MG" + }, + { + "id": 3158508, + "nome": "Santana de Pirapama", + "uf": "MG" + }, + { + "id": 3158607, + "nome": "Santana do Deserto", + "uf": "MG" + }, + { + "id": 3158706, + "nome": "Santana do Garambéu", + "uf": "MG" + }, + { + "id": 3158805, + "nome": "Santana do Jacaré", + "uf": "MG" + }, + { + "id": 3158904, + "nome": "Santana do Manhuaçu", + "uf": "MG" + }, + { + "id": 3158953, + "nome": "Santana do Paraíso", + "uf": "MG" + }, + { + "id": 3159001, + "nome": "Santana do Riacho", + "uf": "MG" + }, + { + "id": 3159100, + "nome": "Santana dos Montes", + "uf": "MG" + }, + { + "id": 3159902, + "nome": "Santo Antônio do Amparo", + "uf": "MG" + }, + { + "id": 3160009, + "nome": "Santo Antônio do Aventureiro", + "uf": "MG" + }, + { + "id": 3160108, + "nome": "Santo Antônio do Grama", + "uf": "MG" + }, + { + "id": 3160207, + "nome": "Santo Antônio do Itambé", + "uf": "MG" + }, + { + "id": 3160306, + "nome": "Santo Antônio do Jacinto", + "uf": "MG" + }, + { + "id": 3160405, + "nome": "Santo Antônio do Monte", + "uf": "MG" + }, + { + "id": 3160454, + "nome": "Santo Antônio do Retiro", + "uf": "MG" + }, + { + "id": 3160504, + "nome": "Santo Antônio do Rio Abaixo", + "uf": "MG" + }, + { + "id": 3160603, + "nome": "Santo Hipólito", + "uf": "MG" + }, + { + "id": 3160702, + "nome": "Santos Dumont", + "uf": "MG" + }, + { + "id": 3165404, + "nome": "Sapucaí-Mirim", + "uf": "MG" + }, + { + "id": 3165503, + "nome": "Sardoá", + "uf": "MG" + }, + { + "id": 3165537, + "nome": "Sarzedo", + "uf": "MG" + }, + { + "id": 3165560, + "nome": "Sem-Peixe", + "uf": "MG" + }, + { + "id": 3165578, + "nome": "Senador Amaral", + "uf": "MG" + }, + { + "id": 3165602, + "nome": "Senador Cortes", + "uf": "MG" + }, + { + "id": 3165701, + "nome": "Senador Firmino", + "uf": "MG" + }, + { + "id": 3165800, + "nome": "Senador José Bento", + "uf": "MG" + }, + { + "id": 3165909, + "nome": "Senador Modestino Gonçalves", + "uf": "MG" + }, + { + "id": 3166006, + "nome": "Senhora de Oliveira", + "uf": "MG" + }, + { + "id": 3166105, + "nome": "Senhora do Porto", + "uf": "MG" + }, + { + "id": 3166204, + "nome": "Senhora dos Remédios", + "uf": "MG" + }, + { + "id": 3166303, + "nome": "Sericita", + "uf": "MG" + }, + { + "id": 3166402, + "nome": "Seritinga", + "uf": "MG" + }, + { + "id": 3166501, + "nome": "Serra Azul de Minas", + "uf": "MG" + }, + { + "id": 3166600, + "nome": "Serra da Saudade", + "uf": "MG" + }, + { + "id": 3166808, + "nome": "Serra do Salitre", + "uf": "MG" + }, + { + "id": 3166709, + "nome": "Serra dos Aimorés", + "uf": "MG" + }, + { + "id": 3166907, + "nome": "Serrania", + "uf": "MG" + }, + { + "id": 3167004, + "nome": "Serranos", + "uf": "MG" + }, + { + "id": 3166956, + "nome": "Serranópolis de Minas", + "uf": "MG" + }, + { + "id": 3167103, + "nome": "Serro", + "uf": "MG" + }, + { + "id": 3167202, + "nome": "Sete Lagoas", + "uf": "MG" + }, + { + "id": 3165552, + "nome": "Setubinha", + "uf": "MG" + }, + { + "id": 3167301, + "nome": "Silveirânia", + "uf": "MG" + }, + { + "id": 3167400, + "nome": "Silvianópolis", + "uf": "MG" + }, + { + "id": 3167608, + "nome": "Simonésia", + "uf": "MG" + }, + { + "id": 3167509, + "nome": "Simão Pereira", + "uf": "MG" + }, + { + "id": 3167707, + "nome": "Sobrália", + "uf": "MG" + }, + { + "id": 3167806, + "nome": "Soledade de Minas", + "uf": "MG" + }, + { + "id": 3160801, + "nome": "São Bento Abade", + "uf": "MG" + }, + { + "id": 3160900, + "nome": "São Brás do Suaçuí", + "uf": "MG" + }, + { + "id": 3160959, + "nome": "São Domingos das Dores", + "uf": "MG" + }, + { + "id": 3161007, + "nome": "São Domingos do Prata", + "uf": "MG" + }, + { + "id": 3161106, + "nome": "São Francisco", + "uf": "MG" + }, + { + "id": 3161205, + "nome": "São Francisco de Paula", + "uf": "MG" + }, + { + "id": 3161304, + "nome": "São Francisco de Sales", + "uf": "MG" + }, + { + "id": 3161403, + "nome": "São Francisco do Glória", + "uf": "MG" + }, + { + "id": 3161056, + "nome": "São Félix de Minas", + "uf": "MG" + }, + { + "id": 3161502, + "nome": "São Geraldo", + "uf": "MG" + }, + { + "id": 3161601, + "nome": "São Geraldo da Piedade", + "uf": "MG" + }, + { + "id": 3161650, + "nome": "São Geraldo do Baixio", + "uf": "MG" + }, + { + "id": 3161700, + "nome": "São Gonçalo do Abaeté", + "uf": "MG" + }, + { + "id": 3161809, + "nome": "São Gonçalo do Pará", + "uf": "MG" + }, + { + "id": 3161908, + "nome": "São Gonçalo do Rio Abaixo", + "uf": "MG" + }, + { + "id": 3125507, + "nome": "São Gonçalo do Rio Preto", + "uf": "MG" + }, + { + "id": 3162005, + "nome": "São Gonçalo do Sapucaí", + "uf": "MG" + }, + { + "id": 3162104, + "nome": "São Gotardo", + "uf": "MG" + }, + { + "id": 3162922, + "nome": "São Joaquim de Bicas", + "uf": "MG" + }, + { + "id": 3162948, + "nome": "São José da Barra", + "uf": "MG" + }, + { + "id": 3162955, + "nome": "São José da Lapa", + "uf": "MG" + }, + { + "id": 3163003, + "nome": "São José da Safira", + "uf": "MG" + }, + { + "id": 3163102, + "nome": "São José da Varginha", + "uf": "MG" + }, + { + "id": 3163201, + "nome": "São José do Alegre", + "uf": "MG" + }, + { + "id": 3163300, + "nome": "São José do Divino", + "uf": "MG" + }, + { + "id": 3163409, + "nome": "São José do Goiabal", + "uf": "MG" + }, + { + "id": 3163508, + "nome": "São José do Jacuri", + "uf": "MG" + }, + { + "id": 3163607, + "nome": "São José do Mantimento", + "uf": "MG" + }, + { + "id": 3162203, + "nome": "São João Batista do Glória", + "uf": "MG" + }, + { + "id": 3162807, + "nome": "São João Evangelista", + "uf": "MG" + }, + { + "id": 3162906, + "nome": "São João Nepomuceno", + "uf": "MG" + }, + { + "id": 3162252, + "nome": "São João da Lagoa", + "uf": "MG" + }, + { + "id": 3162302, + "nome": "São João da Mata", + "uf": "MG" + }, + { + "id": 3162401, + "nome": "São João da Ponte", + "uf": "MG" + }, + { + "id": 3162450, + "nome": "São João das Missões", + "uf": "MG" + }, + { + "id": 3162500, + "nome": "São João del Rei", + "uf": "MG" + }, + { + "id": 3162559, + "nome": "São João do Manhuaçu", + "uf": "MG" + }, + { + "id": 3162575, + "nome": "São João do Manteninha", + "uf": "MG" + }, + { + "id": 3162609, + "nome": "São João do Oriente", + "uf": "MG" + }, + { + "id": 3162658, + "nome": "São João do Pacuí", + "uf": "MG" + }, + { + "id": 3162708, + "nome": "São João do Paraíso", + "uf": "MG" + }, + { + "id": 3163706, + "nome": "São Lourenço", + "uf": "MG" + }, + { + "id": 3163805, + "nome": "São Miguel do Anta", + "uf": "MG" + }, + { + "id": 3163904, + "nome": "São Pedro da União", + "uf": "MG" + }, + { + "id": 3164100, + "nome": "São Pedro do Suaçuí", + "uf": "MG" + }, + { + "id": 3164001, + "nome": "São Pedro dos Ferros", + "uf": "MG" + }, + { + "id": 3164209, + "nome": "São Romão", + "uf": "MG" + }, + { + "id": 3164308, + "nome": "São Roque de Minas", + "uf": "MG" + }, + { + "id": 3164407, + "nome": "São Sebastião da Bela Vista", + "uf": "MG" + }, + { + "id": 3164431, + "nome": "São Sebastião da Vargem Alegre", + "uf": "MG" + }, + { + "id": 3164472, + "nome": "São Sebastião do Anta", + "uf": "MG" + }, + { + "id": 3164506, + "nome": "São Sebastião do Maranhão", + "uf": "MG" + }, + { + "id": 3164605, + "nome": "São Sebastião do Oeste", + "uf": "MG" + }, + { + "id": 3164704, + "nome": "São Sebastião do Paraíso", + "uf": "MG" + }, + { + "id": 3164803, + "nome": "São Sebastião do Rio Preto", + "uf": "MG" + }, + { + "id": 3164902, + "nome": "São Sebastião do Rio Verde", + "uf": "MG" + }, + { + "id": 3165008, + "nome": "São Tiago", + "uf": "MG" + }, + { + "id": 3165107, + "nome": "São Tomás de Aquino", + "uf": "MG" + }, + { + "id": 3165206, + "nome": "São Tomé das Letras", + "uf": "MG" + }, + { + "id": 3165305, + "nome": "São Vicente de Minas", + "uf": "MG" + }, + { + "id": 3167905, + "nome": "Tabuleiro", + "uf": "MG" + }, + { + "id": 3168002, + "nome": "Taiobeiras", + "uf": "MG" + }, + { + "id": 3168051, + "nome": "Taparuba", + "uf": "MG" + }, + { + "id": 3168101, + "nome": "Tapira", + "uf": "MG" + }, + { + "id": 3168200, + "nome": "Tapiraí", + "uf": "MG" + }, + { + "id": 3168309, + "nome": "Taquaraçu de Minas", + "uf": "MG" + }, + { + "id": 3168408, + "nome": "Tarumirim", + "uf": "MG" + }, + { + "id": 3168507, + "nome": "Teixeiras", + "uf": "MG" + }, + { + "id": 3168606, + "nome": "Teófilo Otoni", + "uf": "MG" + }, + { + "id": 3168705, + "nome": "Timóteo", + "uf": "MG" + }, + { + "id": 3168804, + "nome": "Tiradentes", + "uf": "MG" + }, + { + "id": 3168903, + "nome": "Tiros", + "uf": "MG" + }, + { + "id": 3169000, + "nome": "Tocantins", + "uf": "MG" + }, + { + "id": 3169059, + "nome": "Tocos do Moji", + "uf": "MG" + }, + { + "id": 3169109, + "nome": "Toledo", + "uf": "MG" + }, + { + "id": 3169208, + "nome": "Tombos", + "uf": "MG" + }, + { + "id": 3169307, + "nome": "Três Corações", + "uf": "MG" + }, + { + "id": 3169356, + "nome": "Três Marias", + "uf": "MG" + }, + { + "id": 3169406, + "nome": "Três Pontas", + "uf": "MG" + }, + { + "id": 3169505, + "nome": "Tumiritinga", + "uf": "MG" + }, + { + "id": 3169604, + "nome": "Tupaciguara", + "uf": "MG" + }, + { + "id": 3169703, + "nome": "Turmalina", + "uf": "MG" + }, + { + "id": 3169802, + "nome": "Turvolândia", + "uf": "MG" + }, + { + "id": 3170057, + "nome": "Ubaporanga", + "uf": "MG" + }, + { + "id": 3170008, + "nome": "Ubaí", + "uf": "MG" + }, + { + "id": 3170107, + "nome": "Uberaba", + "uf": "MG" + }, + { + "id": 3170206, + "nome": "Uberlândia", + "uf": "MG" + }, + { + "id": 3169901, + "nome": "Ubá", + "uf": "MG" + }, + { + "id": 3170305, + "nome": "Umburatiba", + "uf": "MG" + }, + { + "id": 3170404, + "nome": "Unaí", + "uf": "MG" + }, + { + "id": 3170438, + "nome": "União de Minas", + "uf": "MG" + }, + { + "id": 3170479, + "nome": "Uruana de Minas", + "uf": "MG" + }, + { + "id": 3170529, + "nome": "Urucuia", + "uf": "MG" + }, + { + "id": 3170503, + "nome": "Urucânia", + "uf": "MG" + }, + { + "id": 3170578, + "nome": "Vargem Alegre", + "uf": "MG" + }, + { + "id": 3170602, + "nome": "Vargem Bonita", + "uf": "MG" + }, + { + "id": 3170651, + "nome": "Vargem Grande do Rio Pardo", + "uf": "MG" + }, + { + "id": 3170701, + "nome": "Varginha", + "uf": "MG" + }, + { + "id": 3170750, + "nome": "Varjão de Minas", + "uf": "MG" + }, + { + "id": 3170909, + "nome": "Varzelândia", + "uf": "MG" + }, + { + "id": 3171006, + "nome": "Vazante", + "uf": "MG" + }, + { + "id": 3171030, + "nome": "Verdelândia", + "uf": "MG" + }, + { + "id": 3171071, + "nome": "Veredinha", + "uf": "MG" + }, + { + "id": 3171154, + "nome": "Vermelho Novo", + "uf": "MG" + }, + { + "id": 3171105, + "nome": "Veríssimo", + "uf": "MG" + }, + { + "id": 3171204, + "nome": "Vespasiano", + "uf": "MG" + }, + { + "id": 3171402, + "nome": "Vieiras", + "uf": "MG" + }, + { + "id": 3171600, + "nome": "Virgem da Lapa", + "uf": "MG" + }, + { + "id": 3171808, + "nome": "Virginópolis", + "uf": "MG" + }, + { + "id": 3171907, + "nome": "Virgolândia", + "uf": "MG" + }, + { + "id": 3171709, + "nome": "Virgínia", + "uf": "MG" + }, + { + "id": 3172004, + "nome": "Visconde do Rio Branco", + "uf": "MG" + }, + { + "id": 3171303, + "nome": "Viçosa", + "uf": "MG" + }, + { + "id": 3172103, + "nome": "Volta Grande", + "uf": "MG" + }, + { + "id": 3170800, + "nome": "Várzea da Palma", + "uf": "MG" + }, + { + "id": 3172202, + "nome": "Wenceslau Braz", + "uf": "MG" + }, + { + "id": 3100609, + "nome": "Água Boa", + "uf": "MG" + }, + { + "id": 3100708, + "nome": "Água Comprida", + "uf": "MG" + }, + { + "id": 3100906, + "nome": "Águas Formosas", + "uf": "MG" + }, + { + "id": 3101003, + "nome": "Águas Vermelhas", + "uf": "MG" + }, + { + "id": 5000252, + "nome": "Alcinópolis", + "uf": "MS" + }, + { + "id": 5000609, + "nome": "Amambai", + "uf": "MS" + }, + { + "id": 5000708, + "nome": "Anastácio", + "uf": "MS" + }, + { + "id": 5000807, + "nome": "Anaurilândia", + "uf": "MS" + }, + { + "id": 5000856, + "nome": "Angélica", + "uf": "MS" + }, + { + "id": 5000906, + "nome": "Antônio João", + "uf": "MS" + }, + { + "id": 5001003, + "nome": "Aparecida do Taboado", + "uf": "MS" + }, + { + "id": 5001102, + "nome": "Aquidauana", + "uf": "MS" + }, + { + "id": 5001243, + "nome": "Aral Moreira", + "uf": "MS" + }, + { + "id": 5001508, + "nome": "Bandeirantes", + "uf": "MS" + }, + { + "id": 5001904, + "nome": "Bataguassu", + "uf": "MS" + }, + { + "id": 5002001, + "nome": "Batayporã", + "uf": "MS" + }, + { + "id": 5002100, + "nome": "Bela Vista", + "uf": "MS" + }, + { + "id": 5002159, + "nome": "Bodoquena", + "uf": "MS" + }, + { + "id": 5002209, + "nome": "Bonito", + "uf": "MS" + }, + { + "id": 5002308, + "nome": "Brasilândia", + "uf": "MS" + }, + { + "id": 5002407, + "nome": "Caarapó", + "uf": "MS" + }, + { + "id": 5002605, + "nome": "Camapuã", + "uf": "MS" + }, + { + "id": 5002704, + "nome": "Campo Grande", + "uf": "MS" + }, + { + "id": 5002803, + "nome": "Caracol", + "uf": "MS" + }, + { + "id": 5002902, + "nome": "Cassilândia", + "uf": "MS" + }, + { + "id": 5002951, + "nome": "Chapadão do Sul", + "uf": "MS" + }, + { + "id": 5003108, + "nome": "Corguinho", + "uf": "MS" + }, + { + "id": 5003157, + "nome": "Coronel Sapucaia", + "uf": "MS" + }, + { + "id": 5003207, + "nome": "Corumbá", + "uf": "MS" + }, + { + "id": 5003256, + "nome": "Costa Rica", + "uf": "MS" + }, + { + "id": 5003306, + "nome": "Coxim", + "uf": "MS" + }, + { + "id": 5003454, + "nome": "Deodápolis", + "uf": "MS" + }, + { + "id": 5003488, + "nome": "Dois Irmãos do Buriti", + "uf": "MS" + }, + { + "id": 5003504, + "nome": "Douradina", + "uf": "MS" + }, + { + "id": 5003702, + "nome": "Dourados", + "uf": "MS" + }, + { + "id": 5003751, + "nome": "Eldorado", + "uf": "MS" + }, + { + "id": 5003900, + "nome": "Figueirão", + "uf": "MS" + }, + { + "id": 5003801, + "nome": "Fátima do Sul", + "uf": "MS" + }, + { + "id": 5004007, + "nome": "Glória de Dourados", + "uf": "MS" + }, + { + "id": 5004106, + "nome": "Guia Lopes da Laguna", + "uf": "MS" + }, + { + "id": 5004304, + "nome": "Iguatemi", + "uf": "MS" + }, + { + "id": 5004403, + "nome": "Inocência", + "uf": "MS" + }, + { + "id": 5004502, + "nome": "Itaporã", + "uf": "MS" + }, + { + "id": 5004601, + "nome": "Itaquiraí", + "uf": "MS" + }, + { + "id": 5004700, + "nome": "Ivinhema", + "uf": "MS" + }, + { + "id": 5004809, + "nome": "Japorã", + "uf": "MS" + }, + { + "id": 5004908, + "nome": "Jaraguari", + "uf": "MS" + }, + { + "id": 5005004, + "nome": "Jardim", + "uf": "MS" + }, + { + "id": 5005103, + "nome": "Jateí", + "uf": "MS" + }, + { + "id": 5005152, + "nome": "Juti", + "uf": "MS" + }, + { + "id": 5005202, + "nome": "Ladário", + "uf": "MS" + }, + { + "id": 5005251, + "nome": "Laguna Carapã", + "uf": "MS" + }, + { + "id": 5005400, + "nome": "Maracaju", + "uf": "MS" + }, + { + "id": 5005608, + "nome": "Miranda", + "uf": "MS" + }, + { + "id": 5005681, + "nome": "Mundo Novo", + "uf": "MS" + }, + { + "id": 5005707, + "nome": "Naviraí", + "uf": "MS" + }, + { + "id": 5005806, + "nome": "Nioaque", + "uf": "MS" + }, + { + "id": 5006002, + "nome": "Nova Alvorada do Sul", + "uf": "MS" + }, + { + "id": 5006200, + "nome": "Nova Andradina", + "uf": "MS" + }, + { + "id": 5006259, + "nome": "Novo Horizonte do Sul", + "uf": "MS" + }, + { + "id": 5006309, + "nome": "Paranaíba", + "uf": "MS" + }, + { + "id": 5006358, + "nome": "Paranhos", + "uf": "MS" + }, + { + "id": 5006275, + "nome": "Paraíso das Águas", + "uf": "MS" + }, + { + "id": 5006408, + "nome": "Pedro Gomes", + "uf": "MS" + }, + { + "id": 5006606, + "nome": "Ponta Porã", + "uf": "MS" + }, + { + "id": 5006903, + "nome": "Porto Murtinho", + "uf": "MS" + }, + { + "id": 5007109, + "nome": "Ribas do Rio Pardo", + "uf": "MS" + }, + { + "id": 5007208, + "nome": "Rio Brilhante", + "uf": "MS" + }, + { + "id": 5007307, + "nome": "Rio Negro", + "uf": "MS" + }, + { + "id": 5007406, + "nome": "Rio Verde de Mato Grosso", + "uf": "MS" + }, + { + "id": 5007505, + "nome": "Rochedo", + "uf": "MS" + }, + { + "id": 5007554, + "nome": "Santa Rita do Pardo", + "uf": "MS" + }, + { + "id": 5007802, + "nome": "Selvíria", + "uf": "MS" + }, + { + "id": 5007703, + "nome": "Sete Quedas", + "uf": "MS" + }, + { + "id": 5007901, + "nome": "Sidrolândia", + "uf": "MS" + }, + { + "id": 5007935, + "nome": "Sonora", + "uf": "MS" + }, + { + "id": 5007695, + "nome": "São Gabriel do Oeste", + "uf": "MS" + }, + { + "id": 5007950, + "nome": "Tacuru", + "uf": "MS" + }, + { + "id": 5007976, + "nome": "Taquarussu", + "uf": "MS" + }, + { + "id": 5008008, + "nome": "Terenos", + "uf": "MS" + }, + { + "id": 5008305, + "nome": "Três Lagoas", + "uf": "MS" + }, + { + "id": 5008404, + "nome": "Vicentina", + "uf": "MS" + }, + { + "id": 5000203, + "nome": "Água Clara", + "uf": "MS" + }, + { + "id": 5100102, + "nome": "Acorizal", + "uf": "MT" + }, + { + "id": 5100250, + "nome": "Alta Floresta", + "uf": "MT" + }, + { + "id": 5100300, + "nome": "Alto Araguaia", + "uf": "MT" + }, + { + "id": 5100359, + "nome": "Alto Boa Vista", + "uf": "MT" + }, + { + "id": 5100409, + "nome": "Alto Garças", + "uf": "MT" + }, + { + "id": 5100508, + "nome": "Alto Paraguai", + "uf": "MT" + }, + { + "id": 5100607, + "nome": "Alto Taquari", + "uf": "MT" + }, + { + "id": 5100805, + "nome": "Apiacás", + "uf": "MT" + }, + { + "id": 5101001, + "nome": "Araguaiana", + "uf": "MT" + }, + { + "id": 5101209, + "nome": "Araguainha", + "uf": "MT" + }, + { + "id": 5101258, + "nome": "Araputanga", + "uf": "MT" + }, + { + "id": 5101308, + "nome": "Arenápolis", + "uf": "MT" + }, + { + "id": 5101407, + "nome": "Aripuanã", + "uf": "MT" + }, + { + "id": 5101704, + "nome": "Barra do Bugres", + "uf": "MT" + }, + { + "id": 5101803, + "nome": "Barra do Garças", + "uf": "MT" + }, + { + "id": 5101605, + "nome": "Barão de Melgaço", + "uf": "MT" + }, + { + "id": 5101837, + "nome": "Boa Esperança do Norte", + "uf": "MT" + }, + { + "id": 5101852, + "nome": "Bom Jesus do Araguaia", + "uf": "MT" + }, + { + "id": 5101902, + "nome": "Brasnorte", + "uf": "MT" + }, + { + "id": 5102603, + "nome": "Campinápolis", + "uf": "MT" + }, + { + "id": 5102637, + "nome": "Campo Novo do Parecis", + "uf": "MT" + }, + { + "id": 5102678, + "nome": "Campo Verde", + "uf": "MT" + }, + { + "id": 5102686, + "nome": "Campos de Júlio", + "uf": "MT" + }, + { + "id": 5102694, + "nome": "Canabrava do Norte", + "uf": "MT" + }, + { + "id": 5102702, + "nome": "Canarana", + "uf": "MT" + }, + { + "id": 5102793, + "nome": "Carlinda", + "uf": "MT" + }, + { + "id": 5102850, + "nome": "Castanheira", + "uf": "MT" + }, + { + "id": 5103007, + "nome": "Chapada dos Guimarães", + "uf": "MT" + }, + { + "id": 5103056, + "nome": "Cláudia", + "uf": "MT" + }, + { + "id": 5103106, + "nome": "Cocalinho", + "uf": "MT" + }, + { + "id": 5103254, + "nome": "Colniza", + "uf": "MT" + }, + { + "id": 5103205, + "nome": "Colíder", + "uf": "MT" + }, + { + "id": 5103304, + "nome": "Comodoro", + "uf": "MT" + }, + { + "id": 5103353, + "nome": "Confresa", + "uf": "MT" + }, + { + "id": 5103361, + "nome": "Conquista D'Oeste", + "uf": "MT" + }, + { + "id": 5103379, + "nome": "Cotriguaçu", + "uf": "MT" + }, + { + "id": 5103403, + "nome": "Cuiabá", + "uf": "MT" + }, + { + "id": 5103437, + "nome": "Curvelândia", + "uf": "MT" + }, + { + "id": 5102504, + "nome": "Cáceres", + "uf": "MT" + }, + { + "id": 5103452, + "nome": "Denise", + "uf": "MT" + }, + { + "id": 5103502, + "nome": "Diamantino", + "uf": "MT" + }, + { + "id": 5103601, + "nome": "Dom Aquino", + "uf": "MT" + }, + { + "id": 5103700, + "nome": "Feliz Natal", + "uf": "MT" + }, + { + "id": 5103809, + "nome": "Figueirópolis D'Oeste", + "uf": "MT" + }, + { + "id": 5103858, + "nome": "Gaúcha do Norte", + "uf": "MT" + }, + { + "id": 5103908, + "nome": "General Carneiro", + "uf": "MT" + }, + { + "id": 5103957, + "nome": "Glória D'Oeste", + "uf": "MT" + }, + { + "id": 5104104, + "nome": "Guarantã do Norte", + "uf": "MT" + }, + { + "id": 5104203, + "nome": "Guiratinga", + "uf": "MT" + }, + { + "id": 5104500, + "nome": "Indiavaí", + "uf": "MT" + }, + { + "id": 5104526, + "nome": "Ipiranga do Norte", + "uf": "MT" + }, + { + "id": 5104542, + "nome": "Itanhangá", + "uf": "MT" + }, + { + "id": 5104559, + "nome": "Itaúba", + "uf": "MT" + }, + { + "id": 5104609, + "nome": "Itiquira", + "uf": "MT" + }, + { + "id": 5104807, + "nome": "Jaciara", + "uf": "MT" + }, + { + "id": 5104906, + "nome": "Jangada", + "uf": "MT" + }, + { + "id": 5105002, + "nome": "Jauru", + "uf": "MT" + }, + { + "id": 5105101, + "nome": "Juara", + "uf": "MT" + }, + { + "id": 5105176, + "nome": "Juruena", + "uf": "MT" + }, + { + "id": 5105200, + "nome": "Juscimeira", + "uf": "MT" + }, + { + "id": 5105150, + "nome": "Juína", + "uf": "MT" + }, + { + "id": 5105234, + "nome": "Lambari D'Oeste", + "uf": "MT" + }, + { + "id": 5105259, + "nome": "Lucas do Rio Verde", + "uf": "MT" + }, + { + "id": 5105309, + "nome": "Luciara", + "uf": "MT" + }, + { + "id": 5105580, + "nome": "Marcelândia", + "uf": "MT" + }, + { + "id": 5105606, + "nome": "Matupá", + "uf": "MT" + }, + { + "id": 5105622, + "nome": "Mirassol d'Oeste", + "uf": "MT" + }, + { + "id": 5105903, + "nome": "Nobres", + "uf": "MT" + }, + { + "id": 5106000, + "nome": "Nortelândia", + "uf": "MT" + }, + { + "id": 5106109, + "nome": "Nossa Senhora do Livramento", + "uf": "MT" + }, + { + "id": 5106158, + "nome": "Nova Bandeirantes", + "uf": "MT" + }, + { + "id": 5106208, + "nome": "Nova Brasilândia", + "uf": "MT" + }, + { + "id": 5106216, + "nome": "Nova Canaã do Norte", + "uf": "MT" + }, + { + "id": 5108808, + "nome": "Nova Guarita", + "uf": "MT" + }, + { + "id": 5106182, + "nome": "Nova Lacerda", + "uf": "MT" + }, + { + "id": 5108857, + "nome": "Nova Marilândia", + "uf": "MT" + }, + { + "id": 5108907, + "nome": "Nova Maringá", + "uf": "MT" + }, + { + "id": 5108956, + "nome": "Nova Monte Verde", + "uf": "MT" + }, + { + "id": 5106224, + "nome": "Nova Mutum", + "uf": "MT" + }, + { + "id": 5106174, + "nome": "Nova Nazaré", + "uf": "MT" + }, + { + "id": 5106232, + "nome": "Nova Olímpia", + "uf": "MT" + }, + { + "id": 5106190, + "nome": "Nova Santa Helena", + "uf": "MT" + }, + { + "id": 5106240, + "nome": "Nova Ubiratã", + "uf": "MT" + }, + { + "id": 5106257, + "nome": "Nova Xavantina", + "uf": "MT" + }, + { + "id": 5106273, + "nome": "Novo Horizonte do Norte", + "uf": "MT" + }, + { + "id": 5106265, + "nome": "Novo Mundo", + "uf": "MT" + }, + { + "id": 5106315, + "nome": "Novo Santo Antônio", + "uf": "MT" + }, + { + "id": 5106281, + "nome": "Novo São Joaquim", + "uf": "MT" + }, + { + "id": 5106307, + "nome": "Paranatinga", + "uf": "MT" + }, + { + "id": 5106299, + "nome": "Paranaíta", + "uf": "MT" + }, + { + "id": 5106372, + "nome": "Pedra Preta", + "uf": "MT" + }, + { + "id": 5106422, + "nome": "Peixoto de Azevedo", + "uf": "MT" + }, + { + "id": 5106455, + "nome": "Planalto da Serra", + "uf": "MT" + }, + { + "id": 5106505, + "nome": "Poconé", + "uf": "MT" + }, + { + "id": 5106653, + "nome": "Pontal do Araguaia", + "uf": "MT" + }, + { + "id": 5106703, + "nome": "Ponte Branca", + "uf": "MT" + }, + { + "id": 5106752, + "nome": "Pontes e Lacerda", + "uf": "MT" + }, + { + "id": 5106778, + "nome": "Porto Alegre do Norte", + "uf": "MT" + }, + { + "id": 5106828, + "nome": "Porto Esperidião", + "uf": "MT" + }, + { + "id": 5106851, + "nome": "Porto Estrela", + "uf": "MT" + }, + { + "id": 5106802, + "nome": "Porto dos Gaúchos", + "uf": "MT" + }, + { + "id": 5107008, + "nome": "Poxoréu", + "uf": "MT" + }, + { + "id": 5107040, + "nome": "Primavera do Leste", + "uf": "MT" + }, + { + "id": 5107065, + "nome": "Querência", + "uf": "MT" + }, + { + "id": 5107156, + "nome": "Reserva do Cabaçal", + "uf": "MT" + }, + { + "id": 5107180, + "nome": "Ribeirão Cascalheira", + "uf": "MT" + }, + { + "id": 5107198, + "nome": "Ribeirãozinho", + "uf": "MT" + }, + { + "id": 5107206, + "nome": "Rio Branco", + "uf": "MT" + }, + { + "id": 5107578, + "nome": "Rondolândia", + "uf": "MT" + }, + { + "id": 5107602, + "nome": "Rondonópolis", + "uf": "MT" + }, + { + "id": 5107701, + "nome": "Rosário Oeste", + "uf": "MT" + }, + { + "id": 5107750, + "nome": "Salto do Céu", + "uf": "MT" + }, + { + "id": 5107248, + "nome": "Santa Carmem", + "uf": "MT" + }, + { + "id": 5107743, + "nome": "Santa Cruz do Xingu", + "uf": "MT" + }, + { + "id": 5107768, + "nome": "Santa Rita do Trivelato", + "uf": "MT" + }, + { + "id": 5107776, + "nome": "Santa Terezinha", + "uf": "MT" + }, + { + "id": 5107263, + "nome": "Santo Afonso", + "uf": "MT" + }, + { + "id": 5107800, + "nome": "Santo Antônio de Leverger", + "uf": "MT" + }, + { + "id": 5107792, + "nome": "Santo Antônio do Leste", + "uf": "MT" + }, + { + "id": 5107875, + "nome": "Sapezal", + "uf": "MT" + }, + { + "id": 5107883, + "nome": "Serra Nova Dourada", + "uf": "MT" + }, + { + "id": 5107909, + "nome": "Sinop", + "uf": "MT" + }, + { + "id": 5107925, + "nome": "Sorriso", + "uf": "MT" + }, + { + "id": 5107859, + "nome": "São Félix do Araguaia", + "uf": "MT" + }, + { + "id": 5107297, + "nome": "São José do Povo", + "uf": "MT" + }, + { + "id": 5107305, + "nome": "São José do Rio Claro", + "uf": "MT" + }, + { + "id": 5107354, + "nome": "São José do Xingu", + "uf": "MT" + }, + { + "id": 5107107, + "nome": "São José dos Quatro Marcos", + "uf": "MT" + }, + { + "id": 5107404, + "nome": "São Pedro da Cipa", + "uf": "MT" + }, + { + "id": 5107941, + "nome": "Tabaporã", + "uf": "MT" + }, + { + "id": 5107958, + "nome": "Tangará da Serra", + "uf": "MT" + }, + { + "id": 5108006, + "nome": "Tapurah", + "uf": "MT" + }, + { + "id": 5108055, + "nome": "Terra Nova do Norte", + "uf": "MT" + }, + { + "id": 5108105, + "nome": "Tesouro", + "uf": "MT" + }, + { + "id": 5108204, + "nome": "Torixoréu", + "uf": "MT" + }, + { + "id": 5108303, + "nome": "União do Sul", + "uf": "MT" + }, + { + "id": 5108352, + "nome": "Vale de São Domingos", + "uf": "MT" + }, + { + "id": 5108501, + "nome": "Vera", + "uf": "MT" + }, + { + "id": 5105507, + "nome": "Vila Bela da Santíssima Trindade", + "uf": "MT" + }, + { + "id": 5108600, + "nome": "Vila Rica", + "uf": "MT" + }, + { + "id": 5108402, + "nome": "Várzea Grande", + "uf": "MT" + }, + { + "id": 5100201, + "nome": "Água Boa", + "uf": "MT" + }, + { + "id": 1500107, + "nome": "Abaetetuba", + "uf": "PA" + }, + { + "id": 1500131, + "nome": "Abel Figueiredo", + "uf": "PA" + }, + { + "id": 1500206, + "nome": "Acará", + "uf": "PA" + }, + { + "id": 1500305, + "nome": "Afuá", + "uf": "PA" + }, + { + "id": 1500404, + "nome": "Alenquer", + "uf": "PA" + }, + { + "id": 1500503, + "nome": "Almeirim", + "uf": "PA" + }, + { + "id": 1500602, + "nome": "Altamira", + "uf": "PA" + }, + { + "id": 1500701, + "nome": "Anajás", + "uf": "PA" + }, + { + "id": 1500800, + "nome": "Ananindeua", + "uf": "PA" + }, + { + "id": 1500859, + "nome": "Anapu", + "uf": "PA" + }, + { + "id": 1500909, + "nome": "Augusto Corrêa", + "uf": "PA" + }, + { + "id": 1500958, + "nome": "Aurora do Pará", + "uf": "PA" + }, + { + "id": 1501006, + "nome": "Aveiro", + "uf": "PA" + }, + { + "id": 1501105, + "nome": "Bagre", + "uf": "PA" + }, + { + "id": 1501204, + "nome": "Baião", + "uf": "PA" + }, + { + "id": 1501253, + "nome": "Bannach", + "uf": "PA" + }, + { + "id": 1501303, + "nome": "Barcarena", + "uf": "PA" + }, + { + "id": 1501451, + "nome": "Belterra", + "uf": "PA" + }, + { + "id": 1501402, + "nome": "Belém", + "uf": "PA" + }, + { + "id": 1501501, + "nome": "Benevides", + "uf": "PA" + }, + { + "id": 1501576, + "nome": "Bom Jesus do Tocantins", + "uf": "PA" + }, + { + "id": 1501600, + "nome": "Bonito", + "uf": "PA" + }, + { + "id": 1501709, + "nome": "Bragança", + "uf": "PA" + }, + { + "id": 1501725, + "nome": "Brasil Novo", + "uf": "PA" + }, + { + "id": 1501758, + "nome": "Brejo Grande do Araguaia", + "uf": "PA" + }, + { + "id": 1501782, + "nome": "Breu Branco", + "uf": "PA" + }, + { + "id": 1501808, + "nome": "Breves", + "uf": "PA" + }, + { + "id": 1501907, + "nome": "Bujaru", + "uf": "PA" + }, + { + "id": 1502004, + "nome": "Cachoeira do Arari", + "uf": "PA" + }, + { + "id": 1501956, + "nome": "Cachoeira do Piriá", + "uf": "PA" + }, + { + "id": 1502103, + "nome": "Cametá", + "uf": "PA" + }, + { + "id": 1502152, + "nome": "Canaã dos Carajás", + "uf": "PA" + }, + { + "id": 1502202, + "nome": "Capanema", + "uf": "PA" + }, + { + "id": 1502301, + "nome": "Capitão Poço", + "uf": "PA" + }, + { + "id": 1502400, + "nome": "Castanhal", + "uf": "PA" + }, + { + "id": 1502509, + "nome": "Chaves", + "uf": "PA" + }, + { + "id": 1502608, + "nome": "Colares", + "uf": "PA" + }, + { + "id": 1502707, + "nome": "Conceição do Araguaia", + "uf": "PA" + }, + { + "id": 1502756, + "nome": "Concórdia do Pará", + "uf": "PA" + }, + { + "id": 1502764, + "nome": "Cumaru do Norte", + "uf": "PA" + }, + { + "id": 1502772, + "nome": "Curionópolis", + "uf": "PA" + }, + { + "id": 1502806, + "nome": "Curralinho", + "uf": "PA" + }, + { + "id": 1502855, + "nome": "Curuá", + "uf": "PA" + }, + { + "id": 1502905, + "nome": "Curuçá", + "uf": "PA" + }, + { + "id": 1502939, + "nome": "Dom Eliseu", + "uf": "PA" + }, + { + "id": 1502954, + "nome": "Eldorado do Carajás", + "uf": "PA" + }, + { + "id": 1503002, + "nome": "Faro", + "uf": "PA" + }, + { + "id": 1503044, + "nome": "Floresta do Araguaia", + "uf": "PA" + }, + { + "id": 1503077, + "nome": "Garrafão do Norte", + "uf": "PA" + }, + { + "id": 1503093, + "nome": "Goianésia do Pará", + "uf": "PA" + }, + { + "id": 1503101, + "nome": "Gurupá", + "uf": "PA" + }, + { + "id": 1503200, + "nome": "Igarapé-Açu", + "uf": "PA" + }, + { + "id": 1503309, + "nome": "Igarapé-Miri", + "uf": "PA" + }, + { + "id": 1503408, + "nome": "Inhangapi", + "uf": "PA" + }, + { + "id": 1503457, + "nome": "Ipixuna do Pará", + "uf": "PA" + }, + { + "id": 1503507, + "nome": "Irituia", + "uf": "PA" + }, + { + "id": 1503606, + "nome": "Itaituba", + "uf": "PA" + }, + { + "id": 1503705, + "nome": "Itupiranga", + "uf": "PA" + }, + { + "id": 1503754, + "nome": "Jacareacanga", + "uf": "PA" + }, + { + "id": 1503804, + "nome": "Jacundá", + "uf": "PA" + }, + { + "id": 1503903, + "nome": "Juruti", + "uf": "PA" + }, + { + "id": 1504000, + "nome": "Limoeiro do Ajuru", + "uf": "PA" + }, + { + "id": 1504109, + "nome": "Magalhães Barata", + "uf": "PA" + }, + { + "id": 1504208, + "nome": "Marabá", + "uf": "PA" + }, + { + "id": 1504307, + "nome": "Maracanã", + "uf": "PA" + }, + { + "id": 1504406, + "nome": "Marapanim", + "uf": "PA" + }, + { + "id": 1504422, + "nome": "Marituba", + "uf": "PA" + }, + { + "id": 1504455, + "nome": "Medicilândia", + "uf": "PA" + }, + { + "id": 1504505, + "nome": "Melgaço", + "uf": "PA" + }, + { + "id": 1504604, + "nome": "Mocajuba", + "uf": "PA" + }, + { + "id": 1504703, + "nome": "Moju", + "uf": "PA" + }, + { + "id": 1504752, + "nome": "Mojuí dos Campos", + "uf": "PA" + }, + { + "id": 1504802, + "nome": "Monte Alegre", + "uf": "PA" + }, + { + "id": 1504901, + "nome": "Muaná", + "uf": "PA" + }, + { + "id": 1504059, + "nome": "Mãe do Rio", + "uf": "PA" + }, + { + "id": 1504950, + "nome": "Nova Esperança do Piriá", + "uf": "PA" + }, + { + "id": 1504976, + "nome": "Nova Ipixuna", + "uf": "PA" + }, + { + "id": 1505007, + "nome": "Nova Timboteua", + "uf": "PA" + }, + { + "id": 1505031, + "nome": "Novo Progresso", + "uf": "PA" + }, + { + "id": 1505064, + "nome": "Novo Repartimento", + "uf": "PA" + }, + { + "id": 1505205, + "nome": "Oeiras do Pará", + "uf": "PA" + }, + { + "id": 1505304, + "nome": "Oriximiná", + "uf": "PA" + }, + { + "id": 1505437, + "nome": "Ourilândia do Norte", + "uf": "PA" + }, + { + "id": 1505403, + "nome": "Ourém", + "uf": "PA" + }, + { + "id": 1505486, + "nome": "Pacajá", + "uf": "PA" + }, + { + "id": 1505494, + "nome": "Palestina do Pará", + "uf": "PA" + }, + { + "id": 1505502, + "nome": "Paragominas", + "uf": "PA" + }, + { + "id": 1505536, + "nome": "Parauapebas", + "uf": "PA" + }, + { + "id": 1505551, + "nome": "Pau D'Arco", + "uf": "PA" + }, + { + "id": 1505601, + "nome": "Peixe-Boi", + "uf": "PA" + }, + { + "id": 1505635, + "nome": "Piçarra", + "uf": "PA" + }, + { + "id": 1505650, + "nome": "Placas", + "uf": "PA" + }, + { + "id": 1505700, + "nome": "Ponta de Pedras", + "uf": "PA" + }, + { + "id": 1505809, + "nome": "Portel", + "uf": "PA" + }, + { + "id": 1505908, + "nome": "Porto de Moz", + "uf": "PA" + }, + { + "id": 1506005, + "nome": "Prainha", + "uf": "PA" + }, + { + "id": 1506104, + "nome": "Primavera", + "uf": "PA" + }, + { + "id": 1506112, + "nome": "Quatipuru", + "uf": "PA" + }, + { + "id": 1506138, + "nome": "Redenção", + "uf": "PA" + }, + { + "id": 1506161, + "nome": "Rio Maria", + "uf": "PA" + }, + { + "id": 1506187, + "nome": "Rondon do Pará", + "uf": "PA" + }, + { + "id": 1506195, + "nome": "Rurópolis", + "uf": "PA" + }, + { + "id": 1506203, + "nome": "Salinópolis", + "uf": "PA" + }, + { + "id": 1506302, + "nome": "Salvaterra", + "uf": "PA" + }, + { + "id": 1506351, + "nome": "Santa Bárbara do Pará", + "uf": "PA" + }, + { + "id": 1506401, + "nome": "Santa Cruz do Arari", + "uf": "PA" + }, + { + "id": 1506500, + "nome": "Santa Izabel do Pará", + "uf": "PA" + }, + { + "id": 1506559, + "nome": "Santa Luzia do Pará", + "uf": "PA" + }, + { + "id": 1506583, + "nome": "Santa Maria das Barreiras", + "uf": "PA" + }, + { + "id": 1506609, + "nome": "Santa Maria do Pará", + "uf": "PA" + }, + { + "id": 1506708, + "nome": "Santana do Araguaia", + "uf": "PA" + }, + { + "id": 1506807, + "nome": "Santarém", + "uf": "PA" + }, + { + "id": 1506906, + "nome": "Santarém Novo", + "uf": "PA" + }, + { + "id": 1507003, + "nome": "Santo Antônio do Tauá", + "uf": "PA" + }, + { + "id": 1507755, + "nome": "Sapucaia", + "uf": "PA" + }, + { + "id": 1507805, + "nome": "Senador José Porfírio", + "uf": "PA" + }, + { + "id": 1507904, + "nome": "Soure", + "uf": "PA" + }, + { + "id": 1507102, + "nome": "São Caetano de Odivelas", + "uf": "PA" + }, + { + "id": 1507151, + "nome": "São Domingos do Araguaia", + "uf": "PA" + }, + { + "id": 1507201, + "nome": "São Domingos do Capim", + "uf": "PA" + }, + { + "id": 1507409, + "nome": "São Francisco do Pará", + "uf": "PA" + }, + { + "id": 1507300, + "nome": "São Félix do Xingu", + "uf": "PA" + }, + { + "id": 1507458, + "nome": "São Geraldo do Araguaia", + "uf": "PA" + }, + { + "id": 1507466, + "nome": "São João da Ponta", + "uf": "PA" + }, + { + "id": 1507474, + "nome": "São João de Pirabas", + "uf": "PA" + }, + { + "id": 1507508, + "nome": "São João do Araguaia", + "uf": "PA" + }, + { + "id": 1507607, + "nome": "São Miguel do Guamá", + "uf": "PA" + }, + { + "id": 1507706, + "nome": "São Sebastião da Boa Vista", + "uf": "PA" + }, + { + "id": 1507953, + "nome": "Tailândia", + "uf": "PA" + }, + { + "id": 1507961, + "nome": "Terra Alta", + "uf": "PA" + }, + { + "id": 1507979, + "nome": "Terra Santa", + "uf": "PA" + }, + { + "id": 1508001, + "nome": "Tomé-Açu", + "uf": "PA" + }, + { + "id": 1508035, + "nome": "Tracuateua", + "uf": "PA" + }, + { + "id": 1508050, + "nome": "Trairão", + "uf": "PA" + }, + { + "id": 1508084, + "nome": "Tucumã", + "uf": "PA" + }, + { + "id": 1508100, + "nome": "Tucuruí", + "uf": "PA" + }, + { + "id": 1508126, + "nome": "Ulianópolis", + "uf": "PA" + }, + { + "id": 1508159, + "nome": "Uruará", + "uf": "PA" + }, + { + "id": 1508209, + "nome": "Vigia", + "uf": "PA" + }, + { + "id": 1508308, + "nome": "Viseu", + "uf": "PA" + }, + { + "id": 1508357, + "nome": "Vitória do Xingu", + "uf": "PA" + }, + { + "id": 1508407, + "nome": "Xinguara", + "uf": "PA" + }, + { + "id": 1500347, + "nome": "Água Azul do Norte", + "uf": "PA" + }, + { + "id": 1505106, + "nome": "Óbidos", + "uf": "PA" + }, + { + "id": 2500205, + "nome": "Aguiar", + "uf": "PB" + }, + { + "id": 2500304, + "nome": "Alagoa Grande", + "uf": "PB" + }, + { + "id": 2500403, + "nome": "Alagoa Nova", + "uf": "PB" + }, + { + "id": 2500502, + "nome": "Alagoinha", + "uf": "PB" + }, + { + "id": 2500536, + "nome": "Alcantil", + "uf": "PB" + }, + { + "id": 2500577, + "nome": "Algodão de Jandaíra", + "uf": "PB" + }, + { + "id": 2500601, + "nome": "Alhandra", + "uf": "PB" + }, + { + "id": 2500734, + "nome": "Amparo", + "uf": "PB" + }, + { + "id": 2500775, + "nome": "Aparecida", + "uf": "PB" + }, + { + "id": 2500908, + "nome": "Arara", + "uf": "PB" + }, + { + "id": 2501005, + "nome": "Araruna", + "uf": "PB" + }, + { + "id": 2500809, + "nome": "Araçagi", + "uf": "PB" + }, + { + "id": 2501104, + "nome": "Areia", + "uf": "PB" + }, + { + "id": 2501153, + "nome": "Areia de Baraúnas", + "uf": "PB" + }, + { + "id": 2501203, + "nome": "Areial", + "uf": "PB" + }, + { + "id": 2501302, + "nome": "Aroeiras", + "uf": "PB" + }, + { + "id": 2501351, + "nome": "Assunção", + "uf": "PB" + }, + { + "id": 2501500, + "nome": "Bananeiras", + "uf": "PB" + }, + { + "id": 2501534, + "nome": "Baraúna", + "uf": "PB" + }, + { + "id": 2501609, + "nome": "Barra de Santa Rosa", + "uf": "PB" + }, + { + "id": 2501575, + "nome": "Barra de Santana", + "uf": "PB" + }, + { + "id": 2501708, + "nome": "Barra de São Miguel", + "uf": "PB" + }, + { + "id": 2501807, + "nome": "Bayeux", + "uf": "PB" + }, + { + "id": 2501401, + "nome": "Baía da Traição", + "uf": "PB" + }, + { + "id": 2501906, + "nome": "Belém", + "uf": "PB" + }, + { + "id": 2502003, + "nome": "Belém do Brejo do Cruz", + "uf": "PB" + }, + { + "id": 2502052, + "nome": "Bernardino Batista", + "uf": "PB" + }, + { + "id": 2502102, + "nome": "Boa Ventura", + "uf": "PB" + }, + { + "id": 2502151, + "nome": "Boa Vista", + "uf": "PB" + }, + { + "id": 2502201, + "nome": "Bom Jesus", + "uf": "PB" + }, + { + "id": 2502300, + "nome": "Bom Sucesso", + "uf": "PB" + }, + { + "id": 2502409, + "nome": "Bonito de Santa Fé", + "uf": "PB" + }, + { + "id": 2502508, + "nome": "Boqueirão", + "uf": "PB" + }, + { + "id": 2502706, + "nome": "Borborema", + "uf": "PB" + }, + { + "id": 2502805, + "nome": "Brejo do Cruz", + "uf": "PB" + }, + { + "id": 2502904, + "nome": "Brejo dos Santos", + "uf": "PB" + }, + { + "id": 2503001, + "nome": "Caaporã", + "uf": "PB" + }, + { + "id": 2503100, + "nome": "Cabaceiras", + "uf": "PB" + }, + { + "id": 2503209, + "nome": "Cabedelo", + "uf": "PB" + }, + { + "id": 2503308, + "nome": "Cachoeira dos Índios", + "uf": "PB" + }, + { + "id": 2503407, + "nome": "Cacimba de Areia", + "uf": "PB" + }, + { + "id": 2503506, + "nome": "Cacimba de Dentro", + "uf": "PB" + }, + { + "id": 2503555, + "nome": "Cacimbas", + "uf": "PB" + }, + { + "id": 2503605, + "nome": "Caiçara", + "uf": "PB" + }, + { + "id": 2503704, + "nome": "Cajazeiras", + "uf": "PB" + }, + { + "id": 2503753, + "nome": "Cajazeirinhas", + "uf": "PB" + }, + { + "id": 2503803, + "nome": "Caldas Brandão", + "uf": "PB" + }, + { + "id": 2503902, + "nome": "Camalaú", + "uf": "PB" + }, + { + "id": 2504009, + "nome": "Campina Grande", + "uf": "PB" + }, + { + "id": 2504033, + "nome": "Capim", + "uf": "PB" + }, + { + "id": 2504074, + "nome": "Caraúbas", + "uf": "PB" + }, + { + "id": 2504108, + "nome": "Carrapateira", + "uf": "PB" + }, + { + "id": 2504157, + "nome": "Casserengue", + "uf": "PB" + }, + { + "id": 2504207, + "nome": "Catingueira", + "uf": "PB" + }, + { + "id": 2504306, + "nome": "Catolé do Rocha", + "uf": "PB" + }, + { + "id": 2504355, + "nome": "Caturité", + "uf": "PB" + }, + { + "id": 2504405, + "nome": "Conceição", + "uf": "PB" + }, + { + "id": 2504504, + "nome": "Condado", + "uf": "PB" + }, + { + "id": 2504603, + "nome": "Conde", + "uf": "PB" + }, + { + "id": 2504702, + "nome": "Congo", + "uf": "PB" + }, + { + "id": 2504801, + "nome": "Coremas", + "uf": "PB" + }, + { + "id": 2504850, + "nome": "Coxixola", + "uf": "PB" + }, + { + "id": 2504900, + "nome": "Cruz do Espírito Santo", + "uf": "PB" + }, + { + "id": 2505006, + "nome": "Cubati", + "uf": "PB" + }, + { + "id": 2505204, + "nome": "Cuitegi", + "uf": "PB" + }, + { + "id": 2505105, + "nome": "Cuité", + "uf": "PB" + }, + { + "id": 2505238, + "nome": "Cuité de Mamanguape", + "uf": "PB" + }, + { + "id": 2505303, + "nome": "Curral Velho", + "uf": "PB" + }, + { + "id": 2505279, + "nome": "Curral de Cima", + "uf": "PB" + }, + { + "id": 2505352, + "nome": "Damião", + "uf": "PB" + }, + { + "id": 2505402, + "nome": "Desterro", + "uf": "PB" + }, + { + "id": 2505600, + "nome": "Diamante", + "uf": "PB" + }, + { + "id": 2505709, + "nome": "Dona Inês", + "uf": "PB" + }, + { + "id": 2505808, + "nome": "Duas Estradas", + "uf": "PB" + }, + { + "id": 2505907, + "nome": "Emas", + "uf": "PB" + }, + { + "id": 2506004, + "nome": "Esperança", + "uf": "PB" + }, + { + "id": 2506103, + "nome": "Fagundes", + "uf": "PB" + }, + { + "id": 2506202, + "nome": "Frei Martinho", + "uf": "PB" + }, + { + "id": 2506251, + "nome": "Gado Bravo", + "uf": "PB" + }, + { + "id": 2506301, + "nome": "Guarabira", + "uf": "PB" + }, + { + "id": 2506400, + "nome": "Gurinhém", + "uf": "PB" + }, + { + "id": 2506509, + "nome": "Gurjão", + "uf": "PB" + }, + { + "id": 2506608, + "nome": "Ibiara", + "uf": "PB" + }, + { + "id": 2502607, + "nome": "Igaracy", + "uf": "PB" + }, + { + "id": 2506707, + "nome": "Imaculada", + "uf": "PB" + }, + { + "id": 2506806, + "nome": "Ingá", + "uf": "PB" + }, + { + "id": 2506905, + "nome": "Itabaiana", + "uf": "PB" + }, + { + "id": 2507002, + "nome": "Itaporanga", + "uf": "PB" + }, + { + "id": 2507101, + "nome": "Itapororoca", + "uf": "PB" + }, + { + "id": 2507200, + "nome": "Itatuba", + "uf": "PB" + }, + { + "id": 2507309, + "nome": "Jacaraú", + "uf": "PB" + }, + { + "id": 2507408, + "nome": "Jericó", + "uf": "PB" + }, + { + "id": 2513653, + "nome": "Joca Claudino", + "uf": "PB" + }, + { + "id": 2507507, + "nome": "João Pessoa", + "uf": "PB" + }, + { + "id": 2507606, + "nome": "Juarez Távora", + "uf": "PB" + }, + { + "id": 2507705, + "nome": "Juazeirinho", + "uf": "PB" + }, + { + "id": 2507804, + "nome": "Junco do Seridó", + "uf": "PB" + }, + { + "id": 2507903, + "nome": "Juripiranga", + "uf": "PB" + }, + { + "id": 2508000, + "nome": "Juru", + "uf": "PB" + }, + { + "id": 2508109, + "nome": "Lagoa", + "uf": "PB" + }, + { + "id": 2508307, + "nome": "Lagoa Seca", + "uf": "PB" + }, + { + "id": 2508208, + "nome": "Lagoa de Dentro", + "uf": "PB" + }, + { + "id": 2508406, + "nome": "Lastro", + "uf": "PB" + }, + { + "id": 2508505, + "nome": "Livramento", + "uf": "PB" + }, + { + "id": 2508554, + "nome": "Logradouro", + "uf": "PB" + }, + { + "id": 2508604, + "nome": "Lucena", + "uf": "PB" + }, + { + "id": 2508802, + "nome": "Malta", + "uf": "PB" + }, + { + "id": 2508901, + "nome": "Mamanguape", + "uf": "PB" + }, + { + "id": 2509008, + "nome": "Manaíra", + "uf": "PB" + }, + { + "id": 2509057, + "nome": "Marcação", + "uf": "PB" + }, + { + "id": 2509107, + "nome": "Mari", + "uf": "PB" + }, + { + "id": 2509156, + "nome": "Marizópolis", + "uf": "PB" + }, + { + "id": 2509206, + "nome": "Massaranduba", + "uf": "PB" + }, + { + "id": 2509305, + "nome": "Mataraca", + "uf": "PB" + }, + { + "id": 2509339, + "nome": "Matinhas", + "uf": "PB" + }, + { + "id": 2509370, + "nome": "Mato Grosso", + "uf": "PB" + }, + { + "id": 2509396, + "nome": "Maturéia", + "uf": "PB" + }, + { + "id": 2509404, + "nome": "Mogeiro", + "uf": "PB" + }, + { + "id": 2509503, + "nome": "Montadas", + "uf": "PB" + }, + { + "id": 2509602, + "nome": "Monte Horebe", + "uf": "PB" + }, + { + "id": 2509701, + "nome": "Monteiro", + "uf": "PB" + }, + { + "id": 2509800, + "nome": "Mulungu", + "uf": "PB" + }, + { + "id": 2508703, + "nome": "Mãe d'Água", + "uf": "PB" + }, + { + "id": 2509909, + "nome": "Natuba", + "uf": "PB" + }, + { + "id": 2510006, + "nome": "Nazarezinho", + "uf": "PB" + }, + { + "id": 2510105, + "nome": "Nova Floresta", + "uf": "PB" + }, + { + "id": 2510204, + "nome": "Nova Olinda", + "uf": "PB" + }, + { + "id": 2510303, + "nome": "Nova Palmeira", + "uf": "PB" + }, + { + "id": 2510402, + "nome": "Olho d'Água", + "uf": "PB" + }, + { + "id": 2510501, + "nome": "Olivedos", + "uf": "PB" + }, + { + "id": 2510600, + "nome": "Ouro Velho", + "uf": "PB" + }, + { + "id": 2510659, + "nome": "Parari", + "uf": "PB" + }, + { + "id": 2510709, + "nome": "Passagem", + "uf": "PB" + }, + { + "id": 2510808, + "nome": "Patos", + "uf": "PB" + }, + { + "id": 2510907, + "nome": "Paulista", + "uf": "PB" + }, + { + "id": 2511004, + "nome": "Pedra Branca", + "uf": "PB" + }, + { + "id": 2511103, + "nome": "Pedra Lavrada", + "uf": "PB" + }, + { + "id": 2511202, + "nome": "Pedras de Fogo", + "uf": "PB" + }, + { + "id": 2512721, + "nome": "Pedro Régis", + "uf": "PB" + }, + { + "id": 2511301, + "nome": "Piancó", + "uf": "PB" + }, + { + "id": 2511400, + "nome": "Picuí", + "uf": "PB" + }, + { + "id": 2511509, + "nome": "Pilar", + "uf": "PB" + }, + { + "id": 2511608, + "nome": "Pilões", + "uf": "PB" + }, + { + "id": 2511707, + "nome": "Pilõezinhos", + "uf": "PB" + }, + { + "id": 2511806, + "nome": "Pirpirituba", + "uf": "PB" + }, + { + "id": 2511905, + "nome": "Pitimbu", + "uf": "PB" + }, + { + "id": 2512002, + "nome": "Pocinhos", + "uf": "PB" + }, + { + "id": 2512101, + "nome": "Pombal", + "uf": "PB" + }, + { + "id": 2512036, + "nome": "Poço Dantas", + "uf": "PB" + }, + { + "id": 2512077, + "nome": "Poço de José de Moura", + "uf": "PB" + }, + { + "id": 2512200, + "nome": "Prata", + "uf": "PB" + }, + { + "id": 2512309, + "nome": "Princesa Isabel", + "uf": "PB" + }, + { + "id": 2512408, + "nome": "Puxinanã", + "uf": "PB" + }, + { + "id": 2512507, + "nome": "Queimadas", + "uf": "PB" + }, + { + "id": 2512606, + "nome": "Quixaba", + "uf": "PB" + }, + { + "id": 2512705, + "nome": "Remígio", + "uf": "PB" + }, + { + "id": 2512788, + "nome": "Riacho de Santo Antônio", + "uf": "PB" + }, + { + "id": 2512804, + "nome": "Riacho dos Cavalos", + "uf": "PB" + }, + { + "id": 2512747, + "nome": "Riachão", + "uf": "PB" + }, + { + "id": 2512754, + "nome": "Riachão do Bacamarte", + "uf": "PB" + }, + { + "id": 2512762, + "nome": "Riachão do Poço", + "uf": "PB" + }, + { + "id": 2512903, + "nome": "Rio Tinto", + "uf": "PB" + }, + { + "id": 2513000, + "nome": "Salgadinho", + "uf": "PB" + }, + { + "id": 2513109, + "nome": "Salgado de São Félix", + "uf": "PB" + }, + { + "id": 2513158, + "nome": "Santa Cecília", + "uf": "PB" + }, + { + "id": 2513208, + "nome": "Santa Cruz", + "uf": "PB" + }, + { + "id": 2513307, + "nome": "Santa Helena", + "uf": "PB" + }, + { + "id": 2513356, + "nome": "Santa Inês", + "uf": "PB" + }, + { + "id": 2513406, + "nome": "Santa Luzia", + "uf": "PB" + }, + { + "id": 2513703, + "nome": "Santa Rita", + "uf": "PB" + }, + { + "id": 2513802, + "nome": "Santa Teresinha", + "uf": "PB" + }, + { + "id": 2513505, + "nome": "Santana de Mangueira", + "uf": "PB" + }, + { + "id": 2513604, + "nome": "Santana dos Garrotes", + "uf": "PB" + }, + { + "id": 2513851, + "nome": "Santo André", + "uf": "PB" + }, + { + "id": 2515302, + "nome": "Sapé", + "uf": "PB" + }, + { + "id": 2515500, + "nome": "Serra Branca", + "uf": "PB" + }, + { + "id": 2515708, + "nome": "Serra Grande", + "uf": "PB" + }, + { + "id": 2515807, + "nome": "Serra Redonda", + "uf": "PB" + }, + { + "id": 2515609, + "nome": "Serra da Raiz", + "uf": "PB" + }, + { + "id": 2515906, + "nome": "Serraria", + "uf": "PB" + }, + { + "id": 2515930, + "nome": "Sertãozinho", + "uf": "PB" + }, + { + "id": 2515971, + "nome": "Sobrado", + "uf": "PB" + }, + { + "id": 2516102, + "nome": "Soledade", + "uf": "PB" + }, + { + "id": 2516003, + "nome": "Solânea", + "uf": "PB" + }, + { + "id": 2516151, + "nome": "Sossêgo", + "uf": "PB" + }, + { + "id": 2516201, + "nome": "Sousa", + "uf": "PB" + }, + { + "id": 2516300, + "nome": "Sumé", + "uf": "PB" + }, + { + "id": 2513927, + "nome": "São Bentinho", + "uf": "PB" + }, + { + "id": 2513901, + "nome": "São Bento", + "uf": "PB" + }, + { + "id": 2513968, + "nome": "São Domingos", + "uf": "PB" + }, + { + "id": 2513943, + "nome": "São Domingos do Cariri", + "uf": "PB" + }, + { + "id": 2513984, + "nome": "São Francisco", + "uf": "PB" + }, + { + "id": 2514206, + "nome": "São José da Lagoa Tapada", + "uf": "PB" + }, + { + "id": 2514305, + "nome": "São José de Caiana", + "uf": "PB" + }, + { + "id": 2514404, + "nome": "São José de Espinharas", + "uf": "PB" + }, + { + "id": 2514503, + "nome": "São José de Piranhas", + "uf": "PB" + }, + { + "id": 2514552, + "nome": "São José de Princesa", + "uf": "PB" + }, + { + "id": 2514602, + "nome": "São José do Bonfim", + "uf": "PB" + }, + { + "id": 2514651, + "nome": "São José do Brejo do Cruz", + "uf": "PB" + }, + { + "id": 2514701, + "nome": "São José do Sabugi", + "uf": "PB" + }, + { + "id": 2514800, + "nome": "São José dos Cordeiros", + "uf": "PB" + }, + { + "id": 2514453, + "nome": "São José dos Ramos", + "uf": "PB" + }, + { + "id": 2514008, + "nome": "São João do Cariri", + "uf": "PB" + }, + { + "id": 2500700, + "nome": "São João do Rio do Peixe", + "uf": "PB" + }, + { + "id": 2514107, + "nome": "São João do Tigre", + "uf": "PB" + }, + { + "id": 2514909, + "nome": "São Mamede", + "uf": "PB" + }, + { + "id": 2515005, + "nome": "São Miguel de Taipu", + "uf": "PB" + }, + { + "id": 2515104, + "nome": "São Sebastião de Lagoa de Roça", + "uf": "PB" + }, + { + "id": 2515203, + "nome": "São Sebastião do Umbuzeiro", + "uf": "PB" + }, + { + "id": 2515401, + "nome": "São Vicente do Seridó", + "uf": "PB" + }, + { + "id": 2516409, + "nome": "Tacima", + "uf": "PB" + }, + { + "id": 2516508, + "nome": "Taperoá", + "uf": "PB" + }, + { + "id": 2516607, + "nome": "Tavares", + "uf": "PB" + }, + { + "id": 2516706, + "nome": "Teixeira", + "uf": "PB" + }, + { + "id": 2516755, + "nome": "Tenório", + "uf": "PB" + }, + { + "id": 2516805, + "nome": "Triunfo", + "uf": "PB" + }, + { + "id": 2516904, + "nome": "Uiraúna", + "uf": "PB" + }, + { + "id": 2517001, + "nome": "Umbuzeiro", + "uf": "PB" + }, + { + "id": 2517209, + "nome": "Vieirópolis", + "uf": "PB" + }, + { + "id": 2505501, + "nome": "Vista Serrana", + "uf": "PB" + }, + { + "id": 2517100, + "nome": "Várzea", + "uf": "PB" + }, + { + "id": 2517407, + "nome": "Zabelê", + "uf": "PB" + }, + { + "id": 2500106, + "nome": "Água Branca", + "uf": "PB" + }, + { + "id": 2600054, + "nome": "Abreu e Lima", + "uf": "PE" + }, + { + "id": 2600104, + "nome": "Afogados da Ingazeira", + "uf": "PE" + }, + { + "id": 2600203, + "nome": "Afrânio", + "uf": "PE" + }, + { + "id": 2600302, + "nome": "Agrestina", + "uf": "PE" + }, + { + "id": 2600609, + "nome": "Alagoinha", + "uf": "PE" + }, + { + "id": 2600708, + "nome": "Aliança", + "uf": "PE" + }, + { + "id": 2600807, + "nome": "Altinho", + "uf": "PE" + }, + { + "id": 2600906, + "nome": "Amaraji", + "uf": "PE" + }, + { + "id": 2601003, + "nome": "Angelim", + "uf": "PE" + }, + { + "id": 2601102, + "nome": "Araripina", + "uf": "PE" + }, + { + "id": 2601052, + "nome": "Araçoiaba", + "uf": "PE" + }, + { + "id": 2601201, + "nome": "Arcoverde", + "uf": "PE" + }, + { + "id": 2601300, + "nome": "Barra de Guabiraba", + "uf": "PE" + }, + { + "id": 2601409, + "nome": "Barreiros", + "uf": "PE" + }, + { + "id": 2601706, + "nome": "Belo Jardim", + "uf": "PE" + }, + { + "id": 2601508, + "nome": "Belém de Maria", + "uf": "PE" + }, + { + "id": 2601607, + "nome": "Belém do São Francisco", + "uf": "PE" + }, + { + "id": 2601805, + "nome": "Betânia", + "uf": "PE" + }, + { + "id": 2601904, + "nome": "Bezerros", + "uf": "PE" + }, + { + "id": 2602001, + "nome": "Bodocó", + "uf": "PE" + }, + { + "id": 2602100, + "nome": "Bom Conselho", + "uf": "PE" + }, + { + "id": 2602209, + "nome": "Bom Jardim", + "uf": "PE" + }, + { + "id": 2602308, + "nome": "Bonito", + "uf": "PE" + }, + { + "id": 2602506, + "nome": "Brejinho", + "uf": "PE" + }, + { + "id": 2602605, + "nome": "Brejo da Madre de Deus", + "uf": "PE" + }, + { + "id": 2602407, + "nome": "Brejão", + "uf": "PE" + }, + { + "id": 2602704, + "nome": "Buenos Aires", + "uf": "PE" + }, + { + "id": 2602803, + "nome": "Buíque", + "uf": "PE" + }, + { + "id": 2602902, + "nome": "Cabo de Santo Agostinho", + "uf": "PE" + }, + { + "id": 2603009, + "nome": "Cabrobó", + "uf": "PE" + }, + { + "id": 2603108, + "nome": "Cachoeirinha", + "uf": "PE" + }, + { + "id": 2603207, + "nome": "Caetés", + "uf": "PE" + }, + { + "id": 2603405, + "nome": "Calumbi", + "uf": "PE" + }, + { + "id": 2603306, + "nome": "Calçado", + "uf": "PE" + }, + { + "id": 2603454, + "nome": "Camaragibe", + "uf": "PE" + }, + { + "id": 2603504, + "nome": "Camocim de São Félix", + "uf": "PE" + }, + { + "id": 2603603, + "nome": "Camutanga", + "uf": "PE" + }, + { + "id": 2603702, + "nome": "Canhotinho", + "uf": "PE" + }, + { + "id": 2603801, + "nome": "Capoeiras", + "uf": "PE" + }, + { + "id": 2603926, + "nome": "Carnaubeira da Penha", + "uf": "PE" + }, + { + "id": 2603900, + "nome": "Carnaíba", + "uf": "PE" + }, + { + "id": 2604007, + "nome": "Carpina", + "uf": "PE" + }, + { + "id": 2604106, + "nome": "Caruaru", + "uf": "PE" + }, + { + "id": 2604155, + "nome": "Casinhas", + "uf": "PE" + }, + { + "id": 2604205, + "nome": "Catende", + "uf": "PE" + }, + { + "id": 2604304, + "nome": "Cedro", + "uf": "PE" + }, + { + "id": 2604502, + "nome": "Chã Grande", + "uf": "PE" + }, + { + "id": 2604403, + "nome": "Chã de Alegria", + "uf": "PE" + }, + { + "id": 2604601, + "nome": "Condado", + "uf": "PE" + }, + { + "id": 2604700, + "nome": "Correntes", + "uf": "PE" + }, + { + "id": 2604809, + "nome": "Cortês", + "uf": "PE" + }, + { + "id": 2604908, + "nome": "Cumaru", + "uf": "PE" + }, + { + "id": 2605004, + "nome": "Cupira", + "uf": "PE" + }, + { + "id": 2605103, + "nome": "Custódia", + "uf": "PE" + }, + { + "id": 2605152, + "nome": "Dormentes", + "uf": "PE" + }, + { + "id": 2605202, + "nome": "Escada", + "uf": "PE" + }, + { + "id": 2605301, + "nome": "Exu", + "uf": "PE" + }, + { + "id": 2605400, + "nome": "Feira Nova", + "uf": "PE" + }, + { + "id": 2605459, + "nome": "Fernando de Noronha", + "uf": "PE" + }, + { + "id": 2605509, + "nome": "Ferreiros", + "uf": "PE" + }, + { + "id": 2605608, + "nome": "Flores", + "uf": "PE" + }, + { + "id": 2605707, + "nome": "Floresta", + "uf": "PE" + }, + { + "id": 2605806, + "nome": "Frei Miguelinho", + "uf": "PE" + }, + { + "id": 2605905, + "nome": "Gameleira", + "uf": "PE" + }, + { + "id": 2606002, + "nome": "Garanhuns", + "uf": "PE" + }, + { + "id": 2606101, + "nome": "Glória do Goitá", + "uf": "PE" + }, + { + "id": 2606200, + "nome": "Goiana", + "uf": "PE" + }, + { + "id": 2606309, + "nome": "Granito", + "uf": "PE" + }, + { + "id": 2606408, + "nome": "Gravatá", + "uf": "PE" + }, + { + "id": 2606507, + "nome": "Iati", + "uf": "PE" + }, + { + "id": 2606606, + "nome": "Ibimirim", + "uf": "PE" + }, + { + "id": 2606705, + "nome": "Ibirajuba", + "uf": "PE" + }, + { + "id": 2606804, + "nome": "Igarassu", + "uf": "PE" + }, + { + "id": 2606903, + "nome": "Iguaracy", + "uf": "PE" + }, + { + "id": 2607604, + "nome": "Ilha de Itamaracá", + "uf": "PE" + }, + { + "id": 2607000, + "nome": "Inajá", + "uf": "PE" + }, + { + "id": 2607109, + "nome": "Ingazeira", + "uf": "PE" + }, + { + "id": 2607208, + "nome": "Ipojuca", + "uf": "PE" + }, + { + "id": 2607307, + "nome": "Ipubi", + "uf": "PE" + }, + { + "id": 2607406, + "nome": "Itacuruba", + "uf": "PE" + }, + { + "id": 2607653, + "nome": "Itambé", + "uf": "PE" + }, + { + "id": 2607703, + "nome": "Itapetim", + "uf": "PE" + }, + { + "id": 2607752, + "nome": "Itapissuma", + "uf": "PE" + }, + { + "id": 2607802, + "nome": "Itaquitinga", + "uf": "PE" + }, + { + "id": 2607505, + "nome": "Itaíba", + "uf": "PE" + }, + { + "id": 2607901, + "nome": "Jaboatão dos Guararapes", + "uf": "PE" + }, + { + "id": 2607950, + "nome": "Jaqueira", + "uf": "PE" + }, + { + "id": 2608008, + "nome": "Jataúba", + "uf": "PE" + }, + { + "id": 2608057, + "nome": "Jatobá", + "uf": "PE" + }, + { + "id": 2608206, + "nome": "Joaquim Nabuco", + "uf": "PE" + }, + { + "id": 2608107, + "nome": "João Alfredo", + "uf": "PE" + }, + { + "id": 2608255, + "nome": "Jucati", + "uf": "PE" + }, + { + "id": 2608305, + "nome": "Jupi", + "uf": "PE" + }, + { + "id": 2608404, + "nome": "Jurema", + "uf": "PE" + }, + { + "id": 2608750, + "nome": "Lagoa Grande", + "uf": "PE" + }, + { + "id": 2608503, + "nome": "Lagoa de Itaenga", + "uf": "PE" + }, + { + "id": 2608453, + "nome": "Lagoa do Carro", + "uf": "PE" + }, + { + "id": 2608602, + "nome": "Lagoa do Ouro", + "uf": "PE" + }, + { + "id": 2608701, + "nome": "Lagoa dos Gatos", + "uf": "PE" + }, + { + "id": 2608800, + "nome": "Lajedo", + "uf": "PE" + }, + { + "id": 2608909, + "nome": "Limoeiro", + "uf": "PE" + }, + { + "id": 2609006, + "nome": "Macaparana", + "uf": "PE" + }, + { + "id": 2609105, + "nome": "Machados", + "uf": "PE" + }, + { + "id": 2609154, + "nome": "Manari", + "uf": "PE" + }, + { + "id": 2609204, + "nome": "Maraial", + "uf": "PE" + }, + { + "id": 2609303, + "nome": "Mirandiba", + "uf": "PE" + }, + { + "id": 2614303, + "nome": "Moreilândia", + "uf": "PE" + }, + { + "id": 2609402, + "nome": "Moreno", + "uf": "PE" + }, + { + "id": 2609501, + "nome": "Nazaré da Mata", + "uf": "PE" + }, + { + "id": 2609600, + "nome": "Olinda", + "uf": "PE" + }, + { + "id": 2609709, + "nome": "Orobó", + "uf": "PE" + }, + { + "id": 2609808, + "nome": "Orocó", + "uf": "PE" + }, + { + "id": 2609907, + "nome": "Ouricuri", + "uf": "PE" + }, + { + "id": 2610004, + "nome": "Palmares", + "uf": "PE" + }, + { + "id": 2610103, + "nome": "Palmeirina", + "uf": "PE" + }, + { + "id": 2610202, + "nome": "Panelas", + "uf": "PE" + }, + { + "id": 2610301, + "nome": "Paranatama", + "uf": "PE" + }, + { + "id": 2610400, + "nome": "Parnamirim", + "uf": "PE" + }, + { + "id": 2610509, + "nome": "Passira", + "uf": "PE" + }, + { + "id": 2610608, + "nome": "Paudalho", + "uf": "PE" + }, + { + "id": 2610707, + "nome": "Paulista", + "uf": "PE" + }, + { + "id": 2610806, + "nome": "Pedra", + "uf": "PE" + }, + { + "id": 2610905, + "nome": "Pesqueira", + "uf": "PE" + }, + { + "id": 2611101, + "nome": "Petrolina", + "uf": "PE" + }, + { + "id": 2611002, + "nome": "Petrolândia", + "uf": "PE" + }, + { + "id": 2611309, + "nome": "Pombos", + "uf": "PE" + }, + { + "id": 2611200, + "nome": "Poção", + "uf": "PE" + }, + { + "id": 2611408, + "nome": "Primavera", + "uf": "PE" + }, + { + "id": 2611507, + "nome": "Quipapá", + "uf": "PE" + }, + { + "id": 2611533, + "nome": "Quixaba", + "uf": "PE" + }, + { + "id": 2611606, + "nome": "Recife", + "uf": "PE" + }, + { + "id": 2611705, + "nome": "Riacho das Almas", + "uf": "PE" + }, + { + "id": 2611804, + "nome": "Ribeirão", + "uf": "PE" + }, + { + "id": 2611903, + "nome": "Rio Formoso", + "uf": "PE" + }, + { + "id": 2612000, + "nome": "Sairé", + "uf": "PE" + }, + { + "id": 2612109, + "nome": "Salgadinho", + "uf": "PE" + }, + { + "id": 2612208, + "nome": "Salgueiro", + "uf": "PE" + }, + { + "id": 2612307, + "nome": "Saloá", + "uf": "PE" + }, + { + "id": 2612406, + "nome": "Sanharó", + "uf": "PE" + }, + { + "id": 2612455, + "nome": "Santa Cruz", + "uf": "PE" + }, + { + "id": 2612471, + "nome": "Santa Cruz da Baixa Verde", + "uf": "PE" + }, + { + "id": 2612505, + "nome": "Santa Cruz do Capibaribe", + "uf": "PE" + }, + { + "id": 2612554, + "nome": "Santa Filomena", + "uf": "PE" + }, + { + "id": 2612604, + "nome": "Santa Maria da Boa Vista", + "uf": "PE" + }, + { + "id": 2612703, + "nome": "Santa Maria do Cambucá", + "uf": "PE" + }, + { + "id": 2612802, + "nome": "Santa Terezinha", + "uf": "PE" + }, + { + "id": 2613909, + "nome": "Serra Talhada", + "uf": "PE" + }, + { + "id": 2614006, + "nome": "Serrita", + "uf": "PE" + }, + { + "id": 2614105, + "nome": "Sertânia", + "uf": "PE" + }, + { + "id": 2614204, + "nome": "Sirinhaém", + "uf": "PE" + }, + { + "id": 2614402, + "nome": "Solidão", + "uf": "PE" + }, + { + "id": 2614501, + "nome": "Surubim", + "uf": "PE" + }, + { + "id": 2612901, + "nome": "São Benedito do Sul", + "uf": "PE" + }, + { + "id": 2613008, + "nome": "São Bento do Una", + "uf": "PE" + }, + { + "id": 2613107, + "nome": "São Caitano", + "uf": "PE" + }, + { + "id": 2613305, + "nome": "São Joaquim do Monte", + "uf": "PE" + }, + { + "id": 2613404, + "nome": "São José da Coroa Grande", + "uf": "PE" + }, + { + "id": 2613503, + "nome": "São José do Belmonte", + "uf": "PE" + }, + { + "id": 2613602, + "nome": "São José do Egito", + "uf": "PE" + }, + { + "id": 2613206, + "nome": "São João", + "uf": "PE" + }, + { + "id": 2613701, + "nome": "São Lourenço da Mata", + "uf": "PE" + }, + { + "id": 2613800, + "nome": "São Vicente Férrer", + "uf": "PE" + }, + { + "id": 2614600, + "nome": "Tabira", + "uf": "PE" + }, + { + "id": 2614709, + "nome": "Tacaimbó", + "uf": "PE" + }, + { + "id": 2614808, + "nome": "Tacaratu", + "uf": "PE" + }, + { + "id": 2614857, + "nome": "Tamandaré", + "uf": "PE" + }, + { + "id": 2615003, + "nome": "Taquaritinga do Norte", + "uf": "PE" + }, + { + "id": 2615102, + "nome": "Terezinha", + "uf": "PE" + }, + { + "id": 2615201, + "nome": "Terra Nova", + "uf": "PE" + }, + { + "id": 2615300, + "nome": "Timbaúba", + "uf": "PE" + }, + { + "id": 2615409, + "nome": "Toritama", + "uf": "PE" + }, + { + "id": 2615508, + "nome": "Tracunhaém", + "uf": "PE" + }, + { + "id": 2615607, + "nome": "Trindade", + "uf": "PE" + }, + { + "id": 2615706, + "nome": "Triunfo", + "uf": "PE" + }, + { + "id": 2615805, + "nome": "Tupanatinga", + "uf": "PE" + }, + { + "id": 2615904, + "nome": "Tuparetama", + "uf": "PE" + }, + { + "id": 2616001, + "nome": "Venturosa", + "uf": "PE" + }, + { + "id": 2616100, + "nome": "Verdejante", + "uf": "PE" + }, + { + "id": 2616183, + "nome": "Vertente do Lério", + "uf": "PE" + }, + { + "id": 2616209, + "nome": "Vertentes", + "uf": "PE" + }, + { + "id": 2616308, + "nome": "Vicência", + "uf": "PE" + }, + { + "id": 2616407, + "nome": "Vitória de Santo Antão", + "uf": "PE" + }, + { + "id": 2616506, + "nome": "Xexéu", + "uf": "PE" + }, + { + "id": 2600401, + "nome": "Água Preta", + "uf": "PE" + }, + { + "id": 2600500, + "nome": "Águas Belas", + "uf": "PE" + }, + { + "id": 2200053, + "nome": "Acauã", + "uf": "PI" + }, + { + "id": 2200103, + "nome": "Agricolândia", + "uf": "PI" + }, + { + "id": 2200251, + "nome": "Alagoinha do Piauí", + "uf": "PI" + }, + { + "id": 2200277, + "nome": "Alegrete do Piauí", + "uf": "PI" + }, + { + "id": 2200301, + "nome": "Alto Longá", + "uf": "PI" + }, + { + "id": 2200400, + "nome": "Altos", + "uf": "PI" + }, + { + "id": 2200459, + "nome": "Alvorada do Gurguéia", + "uf": "PI" + }, + { + "id": 2200509, + "nome": "Amarante", + "uf": "PI" + }, + { + "id": 2200608, + "nome": "Angical do Piauí", + "uf": "PI" + }, + { + "id": 2200806, + "nome": "Antônio Almeida", + "uf": "PI" + }, + { + "id": 2200707, + "nome": "Anísio de Abreu", + "uf": "PI" + }, + { + "id": 2200905, + "nome": "Aroazes", + "uf": "PI" + }, + { + "id": 2200954, + "nome": "Aroeiras do Itaim", + "uf": "PI" + }, + { + "id": 2201002, + "nome": "Arraial", + "uf": "PI" + }, + { + "id": 2201051, + "nome": "Assunção do Piauí", + "uf": "PI" + }, + { + "id": 2201101, + "nome": "Avelino Lopes", + "uf": "PI" + }, + { + "id": 2201150, + "nome": "Baixa Grande do Ribeiro", + "uf": "PI" + }, + { + "id": 2201176, + "nome": "Barra D'Alcântara", + "uf": "PI" + }, + { + "id": 2201200, + "nome": "Barras", + "uf": "PI" + }, + { + "id": 2201309, + "nome": "Barreiras do Piauí", + "uf": "PI" + }, + { + "id": 2201408, + "nome": "Barro Duro", + "uf": "PI" + }, + { + "id": 2201507, + "nome": "Batalha", + "uf": "PI" + }, + { + "id": 2201556, + "nome": "Bela Vista do Piauí", + "uf": "PI" + }, + { + "id": 2201572, + "nome": "Belém do Piauí", + "uf": "PI" + }, + { + "id": 2201606, + "nome": "Beneditinos", + "uf": "PI" + }, + { + "id": 2201705, + "nome": "Bertolínia", + "uf": "PI" + }, + { + "id": 2201739, + "nome": "Betânia do Piauí", + "uf": "PI" + }, + { + "id": 2201770, + "nome": "Boa Hora", + "uf": "PI" + }, + { + "id": 2201804, + "nome": "Bocaina", + "uf": "PI" + }, + { + "id": 2201903, + "nome": "Bom Jesus", + "uf": "PI" + }, + { + "id": 2201919, + "nome": "Bom Princípio do Piauí", + "uf": "PI" + }, + { + "id": 2201929, + "nome": "Bonfim do Piauí", + "uf": "PI" + }, + { + "id": 2201945, + "nome": "Boqueirão do Piauí", + "uf": "PI" + }, + { + "id": 2201960, + "nome": "Brasileira", + "uf": "PI" + }, + { + "id": 2201988, + "nome": "Brejo do Piauí", + "uf": "PI" + }, + { + "id": 2202000, + "nome": "Buriti dos Lopes", + "uf": "PI" + }, + { + "id": 2202026, + "nome": "Buriti dos Montes", + "uf": "PI" + }, + { + "id": 2202059, + "nome": "Cabeceiras do Piauí", + "uf": "PI" + }, + { + "id": 2202075, + "nome": "Cajazeiras do Piauí", + "uf": "PI" + }, + { + "id": 2202083, + "nome": "Cajueiro da Praia", + "uf": "PI" + }, + { + "id": 2202091, + "nome": "Caldeirão Grande do Piauí", + "uf": "PI" + }, + { + "id": 2202109, + "nome": "Campinas do Piauí", + "uf": "PI" + }, + { + "id": 2202117, + "nome": "Campo Alegre do Fidalgo", + "uf": "PI" + }, + { + "id": 2202133, + "nome": "Campo Grande do Piauí", + "uf": "PI" + }, + { + "id": 2202174, + "nome": "Campo Largo do Piauí", + "uf": "PI" + }, + { + "id": 2202208, + "nome": "Campo Maior", + "uf": "PI" + }, + { + "id": 2202251, + "nome": "Canavieira", + "uf": "PI" + }, + { + "id": 2202307, + "nome": "Canto do Buriti", + "uf": "PI" + }, + { + "id": 2202455, + "nome": "Capitão Gervásio Oliveira", + "uf": "PI" + }, + { + "id": 2202406, + "nome": "Capitão de Campos", + "uf": "PI" + }, + { + "id": 2202505, + "nome": "Caracol", + "uf": "PI" + }, + { + "id": 2202539, + "nome": "Caraúbas do Piauí", + "uf": "PI" + }, + { + "id": 2202554, + "nome": "Caridade do Piauí", + "uf": "PI" + }, + { + "id": 2202604, + "nome": "Castelo do Piauí", + "uf": "PI" + }, + { + "id": 2202653, + "nome": "Caxingó", + "uf": "PI" + }, + { + "id": 2202703, + "nome": "Cocal", + "uf": "PI" + }, + { + "id": 2202711, + "nome": "Cocal de Telha", + "uf": "PI" + }, + { + "id": 2202729, + "nome": "Cocal dos Alves", + "uf": "PI" + }, + { + "id": 2202737, + "nome": "Coivaras", + "uf": "PI" + }, + { + "id": 2202752, + "nome": "Colônia do Gurguéia", + "uf": "PI" + }, + { + "id": 2202778, + "nome": "Colônia do Piauí", + "uf": "PI" + }, + { + "id": 2202802, + "nome": "Conceição do Canindé", + "uf": "PI" + }, + { + "id": 2202851, + "nome": "Coronel José Dias", + "uf": "PI" + }, + { + "id": 2202901, + "nome": "Corrente", + "uf": "PI" + }, + { + "id": 2203008, + "nome": "Cristalândia do Piauí", + "uf": "PI" + }, + { + "id": 2203107, + "nome": "Cristino Castro", + "uf": "PI" + }, + { + "id": 2203206, + "nome": "Curimatá", + "uf": "PI" + }, + { + "id": 2203230, + "nome": "Currais", + "uf": "PI" + }, + { + "id": 2203271, + "nome": "Curral Novo do Piauí", + "uf": "PI" + }, + { + "id": 2203255, + "nome": "Curralinhos", + "uf": "PI" + }, + { + "id": 2203305, + "nome": "Demerval Lobão", + "uf": "PI" + }, + { + "id": 2203354, + "nome": "Dirceu Arcoverde", + "uf": "PI" + }, + { + "id": 2203404, + "nome": "Dom Expedito Lopes", + "uf": "PI" + }, + { + "id": 2203453, + "nome": "Dom Inocêncio", + "uf": "PI" + }, + { + "id": 2203420, + "nome": "Domingos Mourão", + "uf": "PI" + }, + { + "id": 2203503, + "nome": "Elesbão Veloso", + "uf": "PI" + }, + { + "id": 2203602, + "nome": "Eliseu Martins", + "uf": "PI" + }, + { + "id": 2203701, + "nome": "Esperantina", + "uf": "PI" + }, + { + "id": 2203750, + "nome": "Fartura do Piauí", + "uf": "PI" + }, + { + "id": 2203800, + "nome": "Flores do Piauí", + "uf": "PI" + }, + { + "id": 2203859, + "nome": "Floresta do Piauí", + "uf": "PI" + }, + { + "id": 2203909, + "nome": "Floriano", + "uf": "PI" + }, + { + "id": 2204006, + "nome": "Francinópolis", + "uf": "PI" + }, + { + "id": 2204105, + "nome": "Francisco Ayres", + "uf": "PI" + }, + { + "id": 2204154, + "nome": "Francisco Macedo", + "uf": "PI" + }, + { + "id": 2204204, + "nome": "Francisco Santos", + "uf": "PI" + }, + { + "id": 2204303, + "nome": "Fronteiras", + "uf": "PI" + }, + { + "id": 2204352, + "nome": "Geminiano", + "uf": "PI" + }, + { + "id": 2204402, + "nome": "Gilbués", + "uf": "PI" + }, + { + "id": 2204501, + "nome": "Guadalupe", + "uf": "PI" + }, + { + "id": 2204550, + "nome": "Guaribas", + "uf": "PI" + }, + { + "id": 2204600, + "nome": "Hugo Napoleão", + "uf": "PI" + }, + { + "id": 2204659, + "nome": "Ilha Grande", + "uf": "PI" + }, + { + "id": 2204709, + "nome": "Inhuma", + "uf": "PI" + }, + { + "id": 2204808, + "nome": "Ipiranga do Piauí", + "uf": "PI" + }, + { + "id": 2204907, + "nome": "Isaías Coelho", + "uf": "PI" + }, + { + "id": 2205003, + "nome": "Itainópolis", + "uf": "PI" + }, + { + "id": 2205102, + "nome": "Itaueira", + "uf": "PI" + }, + { + "id": 2205151, + "nome": "Jacobina do Piauí", + "uf": "PI" + }, + { + "id": 2205201, + "nome": "Jaicós", + "uf": "PI" + }, + { + "id": 2205250, + "nome": "Jardim do Mulato", + "uf": "PI" + }, + { + "id": 2205276, + "nome": "Jatobá do Piauí", + "uf": "PI" + }, + { + "id": 2205300, + "nome": "Jerumenha", + "uf": "PI" + }, + { + "id": 2205409, + "nome": "Joaquim Pires", + "uf": "PI" + }, + { + "id": 2205458, + "nome": "Joca Marques", + "uf": "PI" + }, + { + "id": 2205508, + "nome": "José de Freitas", + "uf": "PI" + }, + { + "id": 2205359, + "nome": "João Costa", + "uf": "PI" + }, + { + "id": 2205516, + "nome": "Juazeiro do Piauí", + "uf": "PI" + }, + { + "id": 2205532, + "nome": "Jurema", + "uf": "PI" + }, + { + "id": 2205524, + "nome": "Júlio Borges", + "uf": "PI" + }, + { + "id": 2205557, + "nome": "Lagoa Alegre", + "uf": "PI" + }, + { + "id": 2205573, + "nome": "Lagoa de São Francisco", + "uf": "PI" + }, + { + "id": 2205565, + "nome": "Lagoa do Barro do Piauí", + "uf": "PI" + }, + { + "id": 2205581, + "nome": "Lagoa do Piauí", + "uf": "PI" + }, + { + "id": 2205599, + "nome": "Lagoa do Sítio", + "uf": "PI" + }, + { + "id": 2205540, + "nome": "Lagoinha do Piauí", + "uf": "PI" + }, + { + "id": 2205607, + "nome": "Landri Sales", + "uf": "PI" + }, + { + "id": 2205805, + "nome": "Luzilândia", + "uf": "PI" + }, + { + "id": 2205706, + "nome": "Luís Correia", + "uf": "PI" + }, + { + "id": 2205854, + "nome": "Madeiro", + "uf": "PI" + }, + { + "id": 2205904, + "nome": "Manoel Emídio", + "uf": "PI" + }, + { + "id": 2205953, + "nome": "Marcolândia", + "uf": "PI" + }, + { + "id": 2206001, + "nome": "Marcos Parente", + "uf": "PI" + }, + { + "id": 2206050, + "nome": "Massapê do Piauí", + "uf": "PI" + }, + { + "id": 2206100, + "nome": "Matias Olímpio", + "uf": "PI" + }, + { + "id": 2206209, + "nome": "Miguel Alves", + "uf": "PI" + }, + { + "id": 2206308, + "nome": "Miguel Leão", + "uf": "PI" + }, + { + "id": 2206357, + "nome": "Milton Brandão", + "uf": "PI" + }, + { + "id": 2206407, + "nome": "Monsenhor Gil", + "uf": "PI" + }, + { + "id": 2206506, + "nome": "Monsenhor Hipólito", + "uf": "PI" + }, + { + "id": 2206605, + "nome": "Monte Alegre do Piauí", + "uf": "PI" + }, + { + "id": 2206654, + "nome": "Morro Cabeça no Tempo", + "uf": "PI" + }, + { + "id": 2206670, + "nome": "Morro do Chapéu do Piauí", + "uf": "PI" + }, + { + "id": 2206696, + "nome": "Murici dos Portelas", + "uf": "PI" + }, + { + "id": 2206704, + "nome": "Nazaré do Piauí", + "uf": "PI" + }, + { + "id": 2206720, + "nome": "Nazária", + "uf": "PI" + }, + { + "id": 2206753, + "nome": "Nossa Senhora de Nazaré", + "uf": "PI" + }, + { + "id": 2206803, + "nome": "Nossa Senhora dos Remédios", + "uf": "PI" + }, + { + "id": 2207959, + "nome": "Nova Santa Rita", + "uf": "PI" + }, + { + "id": 2206902, + "nome": "Novo Oriente do Piauí", + "uf": "PI" + }, + { + "id": 2206951, + "nome": "Novo Santo Antônio", + "uf": "PI" + }, + { + "id": 2207009, + "nome": "Oeiras", + "uf": "PI" + }, + { + "id": 2207108, + "nome": "Olho D'Água do Piauí", + "uf": "PI" + }, + { + "id": 2207207, + "nome": "Padre Marcos", + "uf": "PI" + }, + { + "id": 2207306, + "nome": "Paes Landim", + "uf": "PI" + }, + { + "id": 2207355, + "nome": "Pajeú do Piauí", + "uf": "PI" + }, + { + "id": 2207405, + "nome": "Palmeira do Piauí", + "uf": "PI" + }, + { + "id": 2207504, + "nome": "Palmeirais", + "uf": "PI" + }, + { + "id": 2207553, + "nome": "Paquetá", + "uf": "PI" + }, + { + "id": 2207603, + "nome": "Parnaguá", + "uf": "PI" + }, + { + "id": 2207702, + "nome": "Parnaíba", + "uf": "PI" + }, + { + "id": 2207751, + "nome": "Passagem Franca do Piauí", + "uf": "PI" + }, + { + "id": 2207777, + "nome": "Patos do Piauí", + "uf": "PI" + }, + { + "id": 2207793, + "nome": "Pau D'Arco do Piauí", + "uf": "PI" + }, + { + "id": 2207801, + "nome": "Paulistana", + "uf": "PI" + }, + { + "id": 2207850, + "nome": "Pavussu", + "uf": "PI" + }, + { + "id": 2207900, + "nome": "Pedro II", + "uf": "PI" + }, + { + "id": 2207934, + "nome": "Pedro Laurentino", + "uf": "PI" + }, + { + "id": 2208007, + "nome": "Picos", + "uf": "PI" + }, + { + "id": 2208106, + "nome": "Pimenteiras", + "uf": "PI" + }, + { + "id": 2208205, + "nome": "Pio IX", + "uf": "PI" + }, + { + "id": 2208304, + "nome": "Piracuruca", + "uf": "PI" + }, + { + "id": 2208403, + "nome": "Piripiri", + "uf": "PI" + }, + { + "id": 2208502, + "nome": "Porto", + "uf": "PI" + }, + { + "id": 2208551, + "nome": "Porto Alegre do Piauí", + "uf": "PI" + }, + { + "id": 2208601, + "nome": "Prata do Piauí", + "uf": "PI" + }, + { + "id": 2208650, + "nome": "Queimada Nova", + "uf": "PI" + }, + { + "id": 2208700, + "nome": "Redenção do Gurguéia", + "uf": "PI" + }, + { + "id": 2208809, + "nome": "Regeneração", + "uf": "PI" + }, + { + "id": 2208858, + "nome": "Riacho Frio", + "uf": "PI" + }, + { + "id": 2208874, + "nome": "Ribeira do Piauí", + "uf": "PI" + }, + { + "id": 2208908, + "nome": "Ribeiro Gonçalves", + "uf": "PI" + }, + { + "id": 2209005, + "nome": "Rio Grande do Piauí", + "uf": "PI" + }, + { + "id": 2209104, + "nome": "Santa Cruz do Piauí", + "uf": "PI" + }, + { + "id": 2209153, + "nome": "Santa Cruz dos Milagres", + "uf": "PI" + }, + { + "id": 2209203, + "nome": "Santa Filomena", + "uf": "PI" + }, + { + "id": 2209302, + "nome": "Santa Luz", + "uf": "PI" + }, + { + "id": 2209377, + "nome": "Santa Rosa do Piauí", + "uf": "PI" + }, + { + "id": 2209351, + "nome": "Santana do Piauí", + "uf": "PI" + }, + { + "id": 2209401, + "nome": "Santo Antônio de Lisboa", + "uf": "PI" + }, + { + "id": 2209450, + "nome": "Santo Antônio dos Milagres", + "uf": "PI" + }, + { + "id": 2209500, + "nome": "Santo Inácio do Piauí", + "uf": "PI" + }, + { + "id": 2210623, + "nome": "Sebastião Barros", + "uf": "PI" + }, + { + "id": 2210631, + "nome": "Sebastião Leal", + "uf": "PI" + }, + { + "id": 2210656, + "nome": "Sigefredo Pacheco", + "uf": "PI" + }, + { + "id": 2210805, + "nome": "Simplício Mendes", + "uf": "PI" + }, + { + "id": 2210706, + "nome": "Simões", + "uf": "PI" + }, + { + "id": 2210904, + "nome": "Socorro do Piauí", + "uf": "PI" + }, + { + "id": 2210938, + "nome": "Sussuapara", + "uf": "PI" + }, + { + "id": 2209559, + "nome": "São Braz do Piauí", + "uf": "PI" + }, + { + "id": 2209658, + "nome": "São Francisco de Assis do Piauí", + "uf": "PI" + }, + { + "id": 2209708, + "nome": "São Francisco do Piauí", + "uf": "PI" + }, + { + "id": 2209609, + "nome": "São Félix do Piauí", + "uf": "PI" + }, + { + "id": 2209757, + "nome": "São Gonçalo do Gurguéia", + "uf": "PI" + }, + { + "id": 2209807, + "nome": "São Gonçalo do Piauí", + "uf": "PI" + }, + { + "id": 2210052, + "nome": "São José do Divino", + "uf": "PI" + }, + { + "id": 2210102, + "nome": "São José do Peixe", + "uf": "PI" + }, + { + "id": 2210201, + "nome": "São José do Piauí", + "uf": "PI" + }, + { + "id": 2209856, + "nome": "São João da Canabrava", + "uf": "PI" + }, + { + "id": 2209872, + "nome": "São João da Fronteira", + "uf": "PI" + }, + { + "id": 2209906, + "nome": "São João da Serra", + "uf": "PI" + }, + { + "id": 2209955, + "nome": "São João da Varjota", + "uf": "PI" + }, + { + "id": 2209971, + "nome": "São João do Arraial", + "uf": "PI" + }, + { + "id": 2210003, + "nome": "São João do Piauí", + "uf": "PI" + }, + { + "id": 2210300, + "nome": "São Julião", + "uf": "PI" + }, + { + "id": 2210359, + "nome": "São Lourenço do Piauí", + "uf": "PI" + }, + { + "id": 2210375, + "nome": "São Luis do Piauí", + "uf": "PI" + }, + { + "id": 2210383, + "nome": "São Miguel da Baixa Grande", + "uf": "PI" + }, + { + "id": 2210391, + "nome": "São Miguel do Fidalgo", + "uf": "PI" + }, + { + "id": 2210409, + "nome": "São Miguel do Tapuio", + "uf": "PI" + }, + { + "id": 2210508, + "nome": "São Pedro do Piauí", + "uf": "PI" + }, + { + "id": 2210607, + "nome": "São Raimundo Nonato", + "uf": "PI" + }, + { + "id": 2210953, + "nome": "Tamboril do Piauí", + "uf": "PI" + }, + { + "id": 2210979, + "nome": "Tanque do Piauí", + "uf": "PI" + }, + { + "id": 2211001, + "nome": "Teresina", + "uf": "PI" + }, + { + "id": 2211100, + "nome": "União", + "uf": "PI" + }, + { + "id": 2211209, + "nome": "Uruçuí", + "uf": "PI" + }, + { + "id": 2211308, + "nome": "Valença do Piauí", + "uf": "PI" + }, + { + "id": 2211506, + "nome": "Vera Mendes", + "uf": "PI" + }, + { + "id": 2211605, + "nome": "Vila Nova do Piauí", + "uf": "PI" + }, + { + "id": 2211357, + "nome": "Várzea Branca", + "uf": "PI" + }, + { + "id": 2211407, + "nome": "Várzea Grande", + "uf": "PI" + }, + { + "id": 2211704, + "nome": "Wall Ferraz", + "uf": "PI" + }, + { + "id": 2200202, + "nome": "Água Branca", + "uf": "PI" + }, + { + "id": 4100103, + "nome": "Abatiá", + "uf": "PR" + }, + { + "id": 4100202, + "nome": "Adrianópolis", + "uf": "PR" + }, + { + "id": 4100301, + "nome": "Agudos do Sul", + "uf": "PR" + }, + { + "id": 4100400, + "nome": "Almirante Tamandaré", + "uf": "PR" + }, + { + "id": 4100459, + "nome": "Altamira do Paraná", + "uf": "PR" + }, + { + "id": 4100608, + "nome": "Alto Paraná", + "uf": "PR" + }, + { + "id": 4128625, + "nome": "Alto Paraíso", + "uf": "PR" + }, + { + "id": 4100707, + "nome": "Alto Piquiri", + "uf": "PR" + }, + { + "id": 4100509, + "nome": "Altônia", + "uf": "PR" + }, + { + "id": 4100806, + "nome": "Alvorada do Sul", + "uf": "PR" + }, + { + "id": 4100905, + "nome": "Amaporã", + "uf": "PR" + }, + { + "id": 4101002, + "nome": "Ampére", + "uf": "PR" + }, + { + "id": 4101051, + "nome": "Anahy", + "uf": "PR" + }, + { + "id": 4101101, + "nome": "Andirá", + "uf": "PR" + }, + { + "id": 4101200, + "nome": "Antonina", + "uf": "PR" + }, + { + "id": 4101309, + "nome": "Antônio Olinto", + "uf": "PR" + }, + { + "id": 4101408, + "nome": "Apucarana", + "uf": "PR" + }, + { + "id": 4101507, + "nome": "Arapongas", + "uf": "PR" + }, + { + "id": 4101606, + "nome": "Arapoti", + "uf": "PR" + }, + { + "id": 4101655, + "nome": "Arapuã", + "uf": "PR" + }, + { + "id": 4101705, + "nome": "Araruna", + "uf": "PR" + }, + { + "id": 4101804, + "nome": "Araucária", + "uf": "PR" + }, + { + "id": 4101853, + "nome": "Ariranha do Ivaí", + "uf": "PR" + }, + { + "id": 4101903, + "nome": "Assaí", + "uf": "PR" + }, + { + "id": 4102000, + "nome": "Assis Chateaubriand", + "uf": "PR" + }, + { + "id": 4102109, + "nome": "Astorga", + "uf": "PR" + }, + { + "id": 4102208, + "nome": "Atalaia", + "uf": "PR" + }, + { + "id": 4102307, + "nome": "Balsa Nova", + "uf": "PR" + }, + { + "id": 4102406, + "nome": "Bandeirantes", + "uf": "PR" + }, + { + "id": 4102505, + "nome": "Barbosa Ferraz", + "uf": "PR" + }, + { + "id": 4102703, + "nome": "Barra do Jacaré", + "uf": "PR" + }, + { + "id": 4102604, + "nome": "Barracão", + "uf": "PR" + }, + { + "id": 4102752, + "nome": "Bela Vista da Caroba", + "uf": "PR" + }, + { + "id": 4102802, + "nome": "Bela Vista do Paraíso", + "uf": "PR" + }, + { + "id": 4102901, + "nome": "Bituruna", + "uf": "PR" + }, + { + "id": 4103008, + "nome": "Boa Esperança", + "uf": "PR" + }, + { + "id": 4103024, + "nome": "Boa Esperança do Iguaçu", + "uf": "PR" + }, + { + "id": 4103040, + "nome": "Boa Ventura de São Roque", + "uf": "PR" + }, + { + "id": 4103057, + "nome": "Boa Vista da Aparecida", + "uf": "PR" + }, + { + "id": 4103107, + "nome": "Bocaiúva do Sul", + "uf": "PR" + }, + { + "id": 4103156, + "nome": "Bom Jesus do Sul", + "uf": "PR" + }, + { + "id": 4103206, + "nome": "Bom Sucesso", + "uf": "PR" + }, + { + "id": 4103222, + "nome": "Bom Sucesso do Sul", + "uf": "PR" + }, + { + "id": 4103305, + "nome": "Borrazópolis", + "uf": "PR" + }, + { + "id": 4103354, + "nome": "Braganey", + "uf": "PR" + }, + { + "id": 4103370, + "nome": "Brasilândia do Sul", + "uf": "PR" + }, + { + "id": 4103404, + "nome": "Cafeara", + "uf": "PR" + }, + { + "id": 4103453, + "nome": "Cafelândia", + "uf": "PR" + }, + { + "id": 4103479, + "nome": "Cafezal do Sul", + "uf": "PR" + }, + { + "id": 4103503, + "nome": "Califórnia", + "uf": "PR" + }, + { + "id": 4103602, + "nome": "Cambará", + "uf": "PR" + }, + { + "id": 4103800, + "nome": "Cambira", + "uf": "PR" + }, + { + "id": 4103701, + "nome": "Cambé", + "uf": "PR" + }, + { + "id": 4104006, + "nome": "Campina Grande do Sul", + "uf": "PR" + }, + { + "id": 4103909, + "nome": "Campina da Lagoa", + "uf": "PR" + }, + { + "id": 4103958, + "nome": "Campina do Simão", + "uf": "PR" + }, + { + "id": 4104055, + "nome": "Campo Bonito", + "uf": "PR" + }, + { + "id": 4104204, + "nome": "Campo Largo", + "uf": "PR" + }, + { + "id": 4104253, + "nome": "Campo Magro", + "uf": "PR" + }, + { + "id": 4104303, + "nome": "Campo Mourão", + "uf": "PR" + }, + { + "id": 4104105, + "nome": "Campo do Tenente", + "uf": "PR" + }, + { + "id": 4104428, + "nome": "Candói", + "uf": "PR" + }, + { + "id": 4104451, + "nome": "Cantagalo", + "uf": "PR" + }, + { + "id": 4104501, + "nome": "Capanema", + "uf": "PR" + }, + { + "id": 4104600, + "nome": "Capitão Leônidas Marques", + "uf": "PR" + }, + { + "id": 4104659, + "nome": "Carambeí", + "uf": "PR" + }, + { + "id": 4104709, + "nome": "Carlópolis", + "uf": "PR" + }, + { + "id": 4104808, + "nome": "Cascavel", + "uf": "PR" + }, + { + "id": 4104907, + "nome": "Castro", + "uf": "PR" + }, + { + "id": 4105003, + "nome": "Catanduvas", + "uf": "PR" + }, + { + "id": 4105102, + "nome": "Centenário do Sul", + "uf": "PR" + }, + { + "id": 4105201, + "nome": "Cerro Azul", + "uf": "PR" + }, + { + "id": 4105409, + "nome": "Chopinzinho", + "uf": "PR" + }, + { + "id": 4105508, + "nome": "Cianorte", + "uf": "PR" + }, + { + "id": 4105607, + "nome": "Cidade Gaúcha", + "uf": "PR" + }, + { + "id": 4105706, + "nome": "Clevelândia", + "uf": "PR" + }, + { + "id": 4105805, + "nome": "Colombo", + "uf": "PR" + }, + { + "id": 4105904, + "nome": "Colorado", + "uf": "PR" + }, + { + "id": 4106001, + "nome": "Congonhinhas", + "uf": "PR" + }, + { + "id": 4106100, + "nome": "Conselheiro Mairinck", + "uf": "PR" + }, + { + "id": 4106209, + "nome": "Contenda", + "uf": "PR" + }, + { + "id": 4106308, + "nome": "Corbélia", + "uf": "PR" + }, + { + "id": 4106407, + "nome": "Cornélio Procópio", + "uf": "PR" + }, + { + "id": 4106456, + "nome": "Coronel Domingos Soares", + "uf": "PR" + }, + { + "id": 4106506, + "nome": "Coronel Vivida", + "uf": "PR" + }, + { + "id": 4106555, + "nome": "Corumbataí do Sul", + "uf": "PR" + }, + { + "id": 4106803, + "nome": "Cruz Machado", + "uf": "PR" + }, + { + "id": 4106571, + "nome": "Cruzeiro do Iguaçu", + "uf": "PR" + }, + { + "id": 4106605, + "nome": "Cruzeiro do Oeste", + "uf": "PR" + }, + { + "id": 4106704, + "nome": "Cruzeiro do Sul", + "uf": "PR" + }, + { + "id": 4106852, + "nome": "Cruzmaltina", + "uf": "PR" + }, + { + "id": 4106902, + "nome": "Curitiba", + "uf": "PR" + }, + { + "id": 4107009, + "nome": "Curiúva", + "uf": "PR" + }, + { + "id": 4104402, + "nome": "Cândido de Abreu", + "uf": "PR" + }, + { + "id": 4105300, + "nome": "Céu Azul", + "uf": "PR" + }, + { + "id": 4107157, + "nome": "Diamante D'Oeste", + "uf": "PR" + }, + { + "id": 4107108, + "nome": "Diamante do Norte", + "uf": "PR" + }, + { + "id": 4107124, + "nome": "Diamante do Sul", + "uf": "PR" + }, + { + "id": 4107207, + "nome": "Dois Vizinhos", + "uf": "PR" + }, + { + "id": 4107256, + "nome": "Douradina", + "uf": "PR" + }, + { + "id": 4107306, + "nome": "Doutor Camargo", + "uf": "PR" + }, + { + "id": 4128633, + "nome": "Doutor Ulysses", + "uf": "PR" + }, + { + "id": 4107504, + "nome": "Engenheiro Beltrão", + "uf": "PR" + }, + { + "id": 4107538, + "nome": "Entre Rios do Oeste", + "uf": "PR" + }, + { + "id": 4107405, + "nome": "Enéas Marques", + "uf": "PR" + }, + { + "id": 4107520, + "nome": "Esperança Nova", + "uf": "PR" + }, + { + "id": 4107546, + "nome": "Espigão Alto do Iguaçu", + "uf": "PR" + }, + { + "id": 4107553, + "nome": "Farol", + "uf": "PR" + }, + { + "id": 4107603, + "nome": "Faxinal", + "uf": "PR" + }, + { + "id": 4107652, + "nome": "Fazenda Rio Grande", + "uf": "PR" + }, + { + "id": 4107736, + "nome": "Fernandes Pinheiro", + "uf": "PR" + }, + { + "id": 4107751, + "nome": "Figueira", + "uf": "PR" + }, + { + "id": 4107850, + "nome": "Flor da Serra do Sul", + "uf": "PR" + }, + { + "id": 4107801, + "nome": "Floraí", + "uf": "PR" + }, + { + "id": 4107900, + "nome": "Floresta", + "uf": "PR" + }, + { + "id": 4108007, + "nome": "Florestópolis", + "uf": "PR" + }, + { + "id": 4108106, + "nome": "Flórida", + "uf": "PR" + }, + { + "id": 4108205, + "nome": "Formosa do Oeste", + "uf": "PR" + }, + { + "id": 4108304, + "nome": "Foz do Iguaçu", + "uf": "PR" + }, + { + "id": 4108452, + "nome": "Foz do Jordão", + "uf": "PR" + }, + { + "id": 4108320, + "nome": "Francisco Alves", + "uf": "PR" + }, + { + "id": 4108403, + "nome": "Francisco Beltrão", + "uf": "PR" + }, + { + "id": 4107702, + "nome": "Fênix", + "uf": "PR" + }, + { + "id": 4108502, + "nome": "General Carneiro", + "uf": "PR" + }, + { + "id": 4108551, + "nome": "Godoy Moreira", + "uf": "PR" + }, + { + "id": 4108601, + "nome": "Goioerê", + "uf": "PR" + }, + { + "id": 4108650, + "nome": "Goioxim", + "uf": "PR" + }, + { + "id": 4108700, + "nome": "Grandes Rios", + "uf": "PR" + }, + { + "id": 4108908, + "nome": "Guairaçá", + "uf": "PR" + }, + { + "id": 4108957, + "nome": "Guamiranga", + "uf": "PR" + }, + { + "id": 4109005, + "nome": "Guapirama", + "uf": "PR" + }, + { + "id": 4109104, + "nome": "Guaporema", + "uf": "PR" + }, + { + "id": 4109203, + "nome": "Guaraci", + "uf": "PR" + }, + { + "id": 4109302, + "nome": "Guaraniaçu", + "uf": "PR" + }, + { + "id": 4109401, + "nome": "Guarapuava", + "uf": "PR" + }, + { + "id": 4109500, + "nome": "Guaraqueçaba", + "uf": "PR" + }, + { + "id": 4109609, + "nome": "Guaratuba", + "uf": "PR" + }, + { + "id": 4108809, + "nome": "Guaíra", + "uf": "PR" + }, + { + "id": 4109658, + "nome": "Honório Serpa", + "uf": "PR" + }, + { + "id": 4109708, + "nome": "Ibaiti", + "uf": "PR" + }, + { + "id": 4109757, + "nome": "Ibema", + "uf": "PR" + }, + { + "id": 4109807, + "nome": "Ibiporã", + "uf": "PR" + }, + { + "id": 4109906, + "nome": "Icaraíma", + "uf": "PR" + }, + { + "id": 4110003, + "nome": "Iguaraçu", + "uf": "PR" + }, + { + "id": 4110052, + "nome": "Iguatu", + "uf": "PR" + }, + { + "id": 4110078, + "nome": "Imbaú", + "uf": "PR" + }, + { + "id": 4110102, + "nome": "Imbituva", + "uf": "PR" + }, + { + "id": 4110300, + "nome": "Inajá", + "uf": "PR" + }, + { + "id": 4110409, + "nome": "Indianópolis", + "uf": "PR" + }, + { + "id": 4110201, + "nome": "Inácio Martins", + "uf": "PR" + }, + { + "id": 4110508, + "nome": "Ipiranga", + "uf": "PR" + }, + { + "id": 4110607, + "nome": "Iporã", + "uf": "PR" + }, + { + "id": 4110656, + "nome": "Iracema do Oeste", + "uf": "PR" + }, + { + "id": 4110706, + "nome": "Irati", + "uf": "PR" + }, + { + "id": 4110805, + "nome": "Iretama", + "uf": "PR" + }, + { + "id": 4110904, + "nome": "Itaguajé", + "uf": "PR" + }, + { + "id": 4110953, + "nome": "Itaipulândia", + "uf": "PR" + }, + { + "id": 4111001, + "nome": "Itambaracá", + "uf": "PR" + }, + { + "id": 4111100, + "nome": "Itambé", + "uf": "PR" + }, + { + "id": 4111209, + "nome": "Itapejara d'Oeste", + "uf": "PR" + }, + { + "id": 4111258, + "nome": "Itaperuçu", + "uf": "PR" + }, + { + "id": 4111308, + "nome": "Itaúna do Sul", + "uf": "PR" + }, + { + "id": 4111506, + "nome": "Ivaiporã", + "uf": "PR" + }, + { + "id": 4111605, + "nome": "Ivatuba", + "uf": "PR" + }, + { + "id": 4111555, + "nome": "Ivaté", + "uf": "PR" + }, + { + "id": 4111407, + "nome": "Ivaí", + "uf": "PR" + }, + { + "id": 4111704, + "nome": "Jaboti", + "uf": "PR" + }, + { + "id": 4111803, + "nome": "Jacarezinho", + "uf": "PR" + }, + { + "id": 4111902, + "nome": "Jaguapitã", + "uf": "PR" + }, + { + "id": 4112009, + "nome": "Jaguariaíva", + "uf": "PR" + }, + { + "id": 4112108, + "nome": "Jandaia do Sul", + "uf": "PR" + }, + { + "id": 4112207, + "nome": "Janiópolis", + "uf": "PR" + }, + { + "id": 4112306, + "nome": "Japira", + "uf": "PR" + }, + { + "id": 4112405, + "nome": "Japurá", + "uf": "PR" + }, + { + "id": 4112504, + "nome": "Jardim Alegre", + "uf": "PR" + }, + { + "id": 4112603, + "nome": "Jardim Olinda", + "uf": "PR" + }, + { + "id": 4112702, + "nome": "Jataizinho", + "uf": "PR" + }, + { + "id": 4112751, + "nome": "Jesuítas", + "uf": "PR" + }, + { + "id": 4112801, + "nome": "Joaquim Távora", + "uf": "PR" + }, + { + "id": 4112900, + "nome": "Jundiaí do Sul", + "uf": "PR" + }, + { + "id": 4112959, + "nome": "Juranda", + "uf": "PR" + }, + { + "id": 4113007, + "nome": "Jussara", + "uf": "PR" + }, + { + "id": 4113106, + "nome": "Kaloré", + "uf": "PR" + }, + { + "id": 4113205, + "nome": "Lapa", + "uf": "PR" + }, + { + "id": 4113254, + "nome": "Laranjal", + "uf": "PR" + }, + { + "id": 4113304, + "nome": "Laranjeiras do Sul", + "uf": "PR" + }, + { + "id": 4113403, + "nome": "Leópolis", + "uf": "PR" + }, + { + "id": 4113429, + "nome": "Lidianópolis", + "uf": "PR" + }, + { + "id": 4113452, + "nome": "Lindoeste", + "uf": "PR" + }, + { + "id": 4113502, + "nome": "Loanda", + "uf": "PR" + }, + { + "id": 4113601, + "nome": "Lobato", + "uf": "PR" + }, + { + "id": 4113700, + "nome": "Londrina", + "uf": "PR" + }, + { + "id": 4113734, + "nome": "Luiziana", + "uf": "PR" + }, + { + "id": 4113759, + "nome": "Lunardelli", + "uf": "PR" + }, + { + "id": 4113809, + "nome": "Lupionópolis", + "uf": "PR" + }, + { + "id": 4113908, + "nome": "Mallet", + "uf": "PR" + }, + { + "id": 4114005, + "nome": "Mamborê", + "uf": "PR" + }, + { + "id": 4114203, + "nome": "Mandaguari", + "uf": "PR" + }, + { + "id": 4114104, + "nome": "Mandaguaçu", + "uf": "PR" + }, + { + "id": 4114302, + "nome": "Mandirituba", + "uf": "PR" + }, + { + "id": 4114351, + "nome": "Manfrinópolis", + "uf": "PR" + }, + { + "id": 4114401, + "nome": "Mangueirinha", + "uf": "PR" + }, + { + "id": 4114500, + "nome": "Manoel Ribas", + "uf": "PR" + }, + { + "id": 4114609, + "nome": "Marechal Cândido Rondon", + "uf": "PR" + }, + { + "id": 4114708, + "nome": "Maria Helena", + "uf": "PR" + }, + { + "id": 4114807, + "nome": "Marialva", + "uf": "PR" + }, + { + "id": 4115002, + "nome": "Marilena", + "uf": "PR" + }, + { + "id": 4115101, + "nome": "Mariluz", + "uf": "PR" + }, + { + "id": 4114906, + "nome": "Marilândia do Sul", + "uf": "PR" + }, + { + "id": 4115200, + "nome": "Maringá", + "uf": "PR" + }, + { + "id": 4115358, + "nome": "Maripá", + "uf": "PR" + }, + { + "id": 4115309, + "nome": "Mariópolis", + "uf": "PR" + }, + { + "id": 4115408, + "nome": "Marmeleiro", + "uf": "PR" + }, + { + "id": 4115457, + "nome": "Marquinho", + "uf": "PR" + }, + { + "id": 4115507, + "nome": "Marumbi", + "uf": "PR" + }, + { + "id": 4115606, + "nome": "Matelândia", + "uf": "PR" + }, + { + "id": 4115705, + "nome": "Matinhos", + "uf": "PR" + }, + { + "id": 4115739, + "nome": "Mato Rico", + "uf": "PR" + }, + { + "id": 4115754, + "nome": "Mauá da Serra", + "uf": "PR" + }, + { + "id": 4115804, + "nome": "Medianeira", + "uf": "PR" + }, + { + "id": 4115853, + "nome": "Mercedes", + "uf": "PR" + }, + { + "id": 4115903, + "nome": "Mirador", + "uf": "PR" + }, + { + "id": 4116000, + "nome": "Miraselva", + "uf": "PR" + }, + { + "id": 4116059, + "nome": "Missal", + "uf": "PR" + }, + { + "id": 4116109, + "nome": "Moreira Sales", + "uf": "PR" + }, + { + "id": 4116208, + "nome": "Morretes", + "uf": "PR" + }, + { + "id": 4116307, + "nome": "Munhoz de Melo", + "uf": "PR" + }, + { + "id": 4116406, + "nome": "Nossa Senhora das Graças", + "uf": "PR" + }, + { + "id": 4116505, + "nome": "Nova Aliança do Ivaí", + "uf": "PR" + }, + { + "id": 4116604, + "nome": "Nova América da Colina", + "uf": "PR" + }, + { + "id": 4116703, + "nome": "Nova Aurora", + "uf": "PR" + }, + { + "id": 4116802, + "nome": "Nova Cantu", + "uf": "PR" + }, + { + "id": 4116901, + "nome": "Nova Esperança", + "uf": "PR" + }, + { + "id": 4116950, + "nome": "Nova Esperança do Sudoeste", + "uf": "PR" + }, + { + "id": 4117008, + "nome": "Nova Fátima", + "uf": "PR" + }, + { + "id": 4117057, + "nome": "Nova Laranjeiras", + "uf": "PR" + }, + { + "id": 4117107, + "nome": "Nova Londrina", + "uf": "PR" + }, + { + "id": 4117206, + "nome": "Nova Olímpia", + "uf": "PR" + }, + { + "id": 4117255, + "nome": "Nova Prata do Iguaçu", + "uf": "PR" + }, + { + "id": 4117214, + "nome": "Nova Santa Bárbara", + "uf": "PR" + }, + { + "id": 4117222, + "nome": "Nova Santa Rosa", + "uf": "PR" + }, + { + "id": 4117271, + "nome": "Nova Tebas", + "uf": "PR" + }, + { + "id": 4117297, + "nome": "Novo Itacolomi", + "uf": "PR" + }, + { + "id": 4117305, + "nome": "Ortigueira", + "uf": "PR" + }, + { + "id": 4117404, + "nome": "Ourizona", + "uf": "PR" + }, + { + "id": 4117453, + "nome": "Ouro Verde do Oeste", + "uf": "PR" + }, + { + "id": 4117503, + "nome": "Paiçandu", + "uf": "PR" + }, + { + "id": 4117602, + "nome": "Palmas", + "uf": "PR" + }, + { + "id": 4117701, + "nome": "Palmeira", + "uf": "PR" + }, + { + "id": 4117800, + "nome": "Palmital", + "uf": "PR" + }, + { + "id": 4117909, + "nome": "Palotina", + "uf": "PR" + }, + { + "id": 4118105, + "nome": "Paranacity", + "uf": "PR" + }, + { + "id": 4118204, + "nome": "Paranaguá", + "uf": "PR" + }, + { + "id": 4118303, + "nome": "Paranapoema", + "uf": "PR" + }, + { + "id": 4118402, + "nome": "Paranavaí", + "uf": "PR" + }, + { + "id": 4118006, + "nome": "Paraíso do Norte", + "uf": "PR" + }, + { + "id": 4118451, + "nome": "Pato Bragado", + "uf": "PR" + }, + { + "id": 4118501, + "nome": "Pato Branco", + "uf": "PR" + }, + { + "id": 4118600, + "nome": "Paula Freitas", + "uf": "PR" + }, + { + "id": 4118709, + "nome": "Paulo Frontin", + "uf": "PR" + }, + { + "id": 4118808, + "nome": "Peabiru", + "uf": "PR" + }, + { + "id": 4118857, + "nome": "Perobal", + "uf": "PR" + }, + { + "id": 4119152, + "nome": "Pinhais", + "uf": "PR" + }, + { + "id": 4119251, + "nome": "Pinhal de São Bento", + "uf": "PR" + }, + { + "id": 4119202, + "nome": "Pinhalão", + "uf": "PR" + }, + { + "id": 4119301, + "nome": "Pinhão", + "uf": "PR" + }, + { + "id": 4119509, + "nome": "Piraquara", + "uf": "PR" + }, + { + "id": 4119400, + "nome": "Piraí do Sul", + "uf": "PR" + }, + { + "id": 4119608, + "nome": "Pitanga", + "uf": "PR" + }, + { + "id": 4119657, + "nome": "Pitangueiras", + "uf": "PR" + }, + { + "id": 4119103, + "nome": "Piên", + "uf": "PR" + }, + { + "id": 4119707, + "nome": "Planaltina do Paraná", + "uf": "PR" + }, + { + "id": 4119806, + "nome": "Planalto", + "uf": "PR" + }, + { + "id": 4119905, + "nome": "Ponta Grossa", + "uf": "PR" + }, + { + "id": 4119954, + "nome": "Pontal do Paraná", + "uf": "PR" + }, + { + "id": 4120002, + "nome": "Porecatu", + "uf": "PR" + }, + { + "id": 4120101, + "nome": "Porto Amazonas", + "uf": "PR" + }, + { + "id": 4120150, + "nome": "Porto Barreiro", + "uf": "PR" + }, + { + "id": 4120200, + "nome": "Porto Rico", + "uf": "PR" + }, + { + "id": 4120309, + "nome": "Porto Vitória", + "uf": "PR" + }, + { + "id": 4120333, + "nome": "Prado Ferreira", + "uf": "PR" + }, + { + "id": 4120358, + "nome": "Pranchita", + "uf": "PR" + }, + { + "id": 4120408, + "nome": "Presidente Castelo Branco", + "uf": "PR" + }, + { + "id": 4120507, + "nome": "Primeiro de Maio", + "uf": "PR" + }, + { + "id": 4120606, + "nome": "Prudentópolis", + "uf": "PR" + }, + { + "id": 4118907, + "nome": "Pérola", + "uf": "PR" + }, + { + "id": 4119004, + "nome": "Pérola d'Oeste", + "uf": "PR" + }, + { + "id": 4120655, + "nome": "Quarto Centenário", + "uf": "PR" + }, + { + "id": 4120705, + "nome": "Quatiguá", + "uf": "PR" + }, + { + "id": 4120804, + "nome": "Quatro Barras", + "uf": "PR" + }, + { + "id": 4120853, + "nome": "Quatro Pontes", + "uf": "PR" + }, + { + "id": 4120903, + "nome": "Quedas do Iguaçu", + "uf": "PR" + }, + { + "id": 4121000, + "nome": "Querência do Norte", + "uf": "PR" + }, + { + "id": 4121109, + "nome": "Quinta do Sol", + "uf": "PR" + }, + { + "id": 4121208, + "nome": "Quitandinha", + "uf": "PR" + }, + { + "id": 4121257, + "nome": "Ramilândia", + "uf": "PR" + }, + { + "id": 4121307, + "nome": "Rancho Alegre", + "uf": "PR" + }, + { + "id": 4121356, + "nome": "Rancho Alegre D'Oeste", + "uf": "PR" + }, + { + "id": 4121406, + "nome": "Realeza", + "uf": "PR" + }, + { + "id": 4121505, + "nome": "Rebouças", + "uf": "PR" + }, + { + "id": 4121604, + "nome": "Renascença", + "uf": "PR" + }, + { + "id": 4121703, + "nome": "Reserva", + "uf": "PR" + }, + { + "id": 4121752, + "nome": "Reserva do Iguaçu", + "uf": "PR" + }, + { + "id": 4121802, + "nome": "Ribeirão Claro", + "uf": "PR" + }, + { + "id": 4121901, + "nome": "Ribeirão do Pinhal", + "uf": "PR" + }, + { + "id": 4122008, + "nome": "Rio Azul", + "uf": "PR" + }, + { + "id": 4122107, + "nome": "Rio Bom", + "uf": "PR" + }, + { + "id": 4122156, + "nome": "Rio Bonito do Iguaçu", + "uf": "PR" + }, + { + "id": 4122172, + "nome": "Rio Branco do Ivaí", + "uf": "PR" + }, + { + "id": 4122206, + "nome": "Rio Branco do Sul", + "uf": "PR" + }, + { + "id": 4122305, + "nome": "Rio Negro", + "uf": "PR" + }, + { + "id": 4122404, + "nome": "Rolândia", + "uf": "PR" + }, + { + "id": 4122503, + "nome": "Roncador", + "uf": "PR" + }, + { + "id": 4122602, + "nome": "Rondon", + "uf": "PR" + }, + { + "id": 4122651, + "nome": "Rosário do Ivaí", + "uf": "PR" + }, + { + "id": 4122701, + "nome": "Sabáudia", + "uf": "PR" + }, + { + "id": 4122800, + "nome": "Salgado Filho", + "uf": "PR" + }, + { + "id": 4122909, + "nome": "Salto do Itararé", + "uf": "PR" + }, + { + "id": 4123006, + "nome": "Salto do Lontra", + "uf": "PR" + }, + { + "id": 4123105, + "nome": "Santa Amélia", + "uf": "PR" + }, + { + "id": 4123204, + "nome": "Santa Cecília do Pavão", + "uf": "PR" + }, + { + "id": 4123303, + "nome": "Santa Cruz de Monte Castelo", + "uf": "PR" + }, + { + "id": 4123402, + "nome": "Santa Fé", + "uf": "PR" + }, + { + "id": 4123501, + "nome": "Santa Helena", + "uf": "PR" + }, + { + "id": 4123600, + "nome": "Santa Inês", + "uf": "PR" + }, + { + "id": 4123709, + "nome": "Santa Isabel do Ivaí", + "uf": "PR" + }, + { + "id": 4123808, + "nome": "Santa Izabel do Oeste", + "uf": "PR" + }, + { + "id": 4123824, + "nome": "Santa Lúcia", + "uf": "PR" + }, + { + "id": 4123857, + "nome": "Santa Maria do Oeste", + "uf": "PR" + }, + { + "id": 4123907, + "nome": "Santa Mariana", + "uf": "PR" + }, + { + "id": 4123956, + "nome": "Santa Mônica", + "uf": "PR" + }, + { + "id": 4124020, + "nome": "Santa Tereza do Oeste", + "uf": "PR" + }, + { + "id": 4124053, + "nome": "Santa Terezinha de Itaipu", + "uf": "PR" + }, + { + "id": 4124004, + "nome": "Santana do Itararé", + "uf": "PR" + }, + { + "id": 4124103, + "nome": "Santo Antônio da Platina", + "uf": "PR" + }, + { + "id": 4124202, + "nome": "Santo Antônio do Caiuá", + "uf": "PR" + }, + { + "id": 4124301, + "nome": "Santo Antônio do Paraíso", + "uf": "PR" + }, + { + "id": 4124400, + "nome": "Santo Antônio do Sudoeste", + "uf": "PR" + }, + { + "id": 4124509, + "nome": "Santo Inácio", + "uf": "PR" + }, + { + "id": 4126207, + "nome": "Sapopema", + "uf": "PR" + }, + { + "id": 4126256, + "nome": "Sarandi", + "uf": "PR" + }, + { + "id": 4126272, + "nome": "Saudade do Iguaçu", + "uf": "PR" + }, + { + "id": 4126306, + "nome": "Sengés", + "uf": "PR" + }, + { + "id": 4126355, + "nome": "Serranópolis do Iguaçu", + "uf": "PR" + }, + { + "id": 4126405, + "nome": "Sertaneja", + "uf": "PR" + }, + { + "id": 4126504, + "nome": "Sertanópolis", + "uf": "PR" + }, + { + "id": 4126603, + "nome": "Siqueira Campos", + "uf": "PR" + }, + { + "id": 4126652, + "nome": "Sulina", + "uf": "PR" + }, + { + "id": 4124608, + "nome": "São Carlos do Ivaí", + "uf": "PR" + }, + { + "id": 4124707, + "nome": "São Jerônimo da Serra", + "uf": "PR" + }, + { + "id": 4125209, + "nome": "São Jorge d'Oeste", + "uf": "PR" + }, + { + "id": 4125308, + "nome": "São Jorge do Ivaí", + "uf": "PR" + }, + { + "id": 4125357, + "nome": "São Jorge do Patrocínio", + "uf": "PR" + }, + { + "id": 4125407, + "nome": "São José da Boa Vista", + "uf": "PR" + }, + { + "id": 4125456, + "nome": "São José das Palmeiras", + "uf": "PR" + }, + { + "id": 4125506, + "nome": "São José dos Pinhais", + "uf": "PR" + }, + { + "id": 4124806, + "nome": "São João", + "uf": "PR" + }, + { + "id": 4124905, + "nome": "São João do Caiuá", + "uf": "PR" + }, + { + "id": 4125001, + "nome": "São João do Ivaí", + "uf": "PR" + }, + { + "id": 4125100, + "nome": "São João do Triunfo", + "uf": "PR" + }, + { + "id": 4125555, + "nome": "São Manoel do Paraná", + "uf": "PR" + }, + { + "id": 4125605, + "nome": "São Mateus do Sul", + "uf": "PR" + }, + { + "id": 4125704, + "nome": "São Miguel do Iguaçu", + "uf": "PR" + }, + { + "id": 4125753, + "nome": "São Pedro do Iguaçu", + "uf": "PR" + }, + { + "id": 4125803, + "nome": "São Pedro do Ivaí", + "uf": "PR" + }, + { + "id": 4125902, + "nome": "São Pedro do Paraná", + "uf": "PR" + }, + { + "id": 4126009, + "nome": "São Sebastião da Amoreira", + "uf": "PR" + }, + { + "id": 4126108, + "nome": "São Tomé", + "uf": "PR" + }, + { + "id": 4126678, + "nome": "Tamarana", + "uf": "PR" + }, + { + "id": 4126702, + "nome": "Tamboara", + "uf": "PR" + }, + { + "id": 4126801, + "nome": "Tapejara", + "uf": "PR" + }, + { + "id": 4126900, + "nome": "Tapira", + "uf": "PR" + }, + { + "id": 4127007, + "nome": "Teixeira Soares", + "uf": "PR" + }, + { + "id": 4127106, + "nome": "Telêmaco Borba", + "uf": "PR" + }, + { + "id": 4127205, + "nome": "Terra Boa", + "uf": "PR" + }, + { + "id": 4127304, + "nome": "Terra Rica", + "uf": "PR" + }, + { + "id": 4127403, + "nome": "Terra Roxa", + "uf": "PR" + }, + { + "id": 4127502, + "nome": "Tibagi", + "uf": "PR" + }, + { + "id": 4127601, + "nome": "Tijucas do Sul", + "uf": "PR" + }, + { + "id": 4127700, + "nome": "Toledo", + "uf": "PR" + }, + { + "id": 4127809, + "nome": "Tomazina", + "uf": "PR" + }, + { + "id": 4127858, + "nome": "Três Barras do Paraná", + "uf": "PR" + }, + { + "id": 4127882, + "nome": "Tunas do Paraná", + "uf": "PR" + }, + { + "id": 4127908, + "nome": "Tuneiras do Oeste", + "uf": "PR" + }, + { + "id": 4127957, + "nome": "Tupãssi", + "uf": "PR" + }, + { + "id": 4127965, + "nome": "Turvo", + "uf": "PR" + }, + { + "id": 4128005, + "nome": "Ubiratã", + "uf": "PR" + }, + { + "id": 4128104, + "nome": "Umuarama", + "uf": "PR" + }, + { + "id": 4128302, + "nome": "Uniflor", + "uf": "PR" + }, + { + "id": 4128203, + "nome": "União da Vitória", + "uf": "PR" + }, + { + "id": 4128401, + "nome": "Uraí", + "uf": "PR" + }, + { + "id": 4128534, + "nome": "Ventania", + "uf": "PR" + }, + { + "id": 4128559, + "nome": "Vera Cruz do Oeste", + "uf": "PR" + }, + { + "id": 4128609, + "nome": "Verê", + "uf": "PR" + }, + { + "id": 4128658, + "nome": "Virmond", + "uf": "PR" + }, + { + "id": 4128708, + "nome": "Vitorino", + "uf": "PR" + }, + { + "id": 4128500, + "nome": "Wenceslau Braz", + "uf": "PR" + }, + { + "id": 4128807, + "nome": "Xambrê", + "uf": "PR" + }, + { + "id": 4101150, + "nome": "Ângulo", + "uf": "PR" + }, + { + "id": 3300100, + "nome": "Angra dos Reis", + "uf": "RJ" + }, + { + "id": 3300159, + "nome": "Aperibé", + "uf": "RJ" + }, + { + "id": 3300209, + "nome": "Araruama", + "uf": "RJ" + }, + { + "id": 3300225, + "nome": "Areal", + "uf": "RJ" + }, + { + "id": 3300233, + "nome": "Armação dos Búzios", + "uf": "RJ" + }, + { + "id": 3300258, + "nome": "Arraial do Cabo", + "uf": "RJ" + }, + { + "id": 3300407, + "nome": "Barra Mansa", + "uf": "RJ" + }, + { + "id": 3300308, + "nome": "Barra do Piraí", + "uf": "RJ" + }, + { + "id": 3300456, + "nome": "Belford Roxo", + "uf": "RJ" + }, + { + "id": 3300506, + "nome": "Bom Jardim", + "uf": "RJ" + }, + { + "id": 3300605, + "nome": "Bom Jesus do Itabapoana", + "uf": "RJ" + }, + { + "id": 3300704, + "nome": "Cabo Frio", + "uf": "RJ" + }, + { + "id": 3300803, + "nome": "Cachoeiras de Macacu", + "uf": "RJ" + }, + { + "id": 3300902, + "nome": "Cambuci", + "uf": "RJ" + }, + { + "id": 3301009, + "nome": "Campos dos Goytacazes", + "uf": "RJ" + }, + { + "id": 3301108, + "nome": "Cantagalo", + "uf": "RJ" + }, + { + "id": 3300936, + "nome": "Carapebus", + "uf": "RJ" + }, + { + "id": 3301157, + "nome": "Cardoso Moreira", + "uf": "RJ" + }, + { + "id": 3301207, + "nome": "Carmo", + "uf": "RJ" + }, + { + "id": 3301306, + "nome": "Casimiro de Abreu", + "uf": "RJ" + }, + { + "id": 3300951, + "nome": "Comendador Levy Gasparian", + "uf": "RJ" + }, + { + "id": 3301405, + "nome": "Conceição de Macabu", + "uf": "RJ" + }, + { + "id": 3301504, + "nome": "Cordeiro", + "uf": "RJ" + }, + { + "id": 3301603, + "nome": "Duas Barras", + "uf": "RJ" + }, + { + "id": 3301702, + "nome": "Duque de Caxias", + "uf": "RJ" + }, + { + "id": 3301801, + "nome": "Engenheiro Paulo de Frontin", + "uf": "RJ" + }, + { + "id": 3301850, + "nome": "Guapimirim", + "uf": "RJ" + }, + { + "id": 3301876, + "nome": "Iguaba Grande", + "uf": "RJ" + }, + { + "id": 3301900, + "nome": "Itaboraí", + "uf": "RJ" + }, + { + "id": 3302007, + "nome": "Itaguaí", + "uf": "RJ" + }, + { + "id": 3302056, + "nome": "Italva", + "uf": "RJ" + }, + { + "id": 3302106, + "nome": "Itaocara", + "uf": "RJ" + }, + { + "id": 3302205, + "nome": "Itaperuna", + "uf": "RJ" + }, + { + "id": 3302254, + "nome": "Itatiaia", + "uf": "RJ" + }, + { + "id": 3302270, + "nome": "Japeri", + "uf": "RJ" + }, + { + "id": 3302304, + "nome": "Laje do Muriaé", + "uf": "RJ" + }, + { + "id": 3302403, + "nome": "Macaé", + "uf": "RJ" + }, + { + "id": 3302452, + "nome": "Macuco", + "uf": "RJ" + }, + { + "id": 3302502, + "nome": "Magé", + "uf": "RJ" + }, + { + "id": 3302601, + "nome": "Mangaratiba", + "uf": "RJ" + }, + { + "id": 3302700, + "nome": "Maricá", + "uf": "RJ" + }, + { + "id": 3302809, + "nome": "Mendes", + "uf": "RJ" + }, + { + "id": 3302858, + "nome": "Mesquita", + "uf": "RJ" + }, + { + "id": 3302908, + "nome": "Miguel Pereira", + "uf": "RJ" + }, + { + "id": 3303005, + "nome": "Miracema", + "uf": "RJ" + }, + { + "id": 3303104, + "nome": "Natividade", + "uf": "RJ" + }, + { + "id": 3303203, + "nome": "Nilópolis", + "uf": "RJ" + }, + { + "id": 3303302, + "nome": "Niterói", + "uf": "RJ" + }, + { + "id": 3303401, + "nome": "Nova Friburgo", + "uf": "RJ" + }, + { + "id": 3303500, + "nome": "Nova Iguaçu", + "uf": "RJ" + }, + { + "id": 3303609, + "nome": "Paracambi", + "uf": "RJ" + }, + { + "id": 3303807, + "nome": "Paraty", + "uf": "RJ" + }, + { + "id": 3303708, + "nome": "Paraíba do Sul", + "uf": "RJ" + }, + { + "id": 3303856, + "nome": "Paty do Alferes", + "uf": "RJ" + }, + { + "id": 3303906, + "nome": "Petrópolis", + "uf": "RJ" + }, + { + "id": 3303955, + "nome": "Pinheiral", + "uf": "RJ" + }, + { + "id": 3304003, + "nome": "Piraí", + "uf": "RJ" + }, + { + "id": 3304102, + "nome": "Porciúncula", + "uf": "RJ" + }, + { + "id": 3304110, + "nome": "Porto Real", + "uf": "RJ" + }, + { + "id": 3304128, + "nome": "Quatis", + "uf": "RJ" + }, + { + "id": 3304144, + "nome": "Queimados", + "uf": "RJ" + }, + { + "id": 3304151, + "nome": "Quissamã", + "uf": "RJ" + }, + { + "id": 3304201, + "nome": "Resende", + "uf": "RJ" + }, + { + "id": 3304300, + "nome": "Rio Bonito", + "uf": "RJ" + }, + { + "id": 3304409, + "nome": "Rio Claro", + "uf": "RJ" + }, + { + "id": 3304508, + "nome": "Rio das Flores", + "uf": "RJ" + }, + { + "id": 3304524, + "nome": "Rio das Ostras", + "uf": "RJ" + }, + { + "id": 3304557, + "nome": "Rio de Janeiro", + "uf": "RJ" + }, + { + "id": 3304607, + "nome": "Santa Maria Madalena", + "uf": "RJ" + }, + { + "id": 3304706, + "nome": "Santo Antônio de Pádua", + "uf": "RJ" + }, + { + "id": 3305406, + "nome": "Sapucaia", + "uf": "RJ" + }, + { + "id": 3305505, + "nome": "Saquarema", + "uf": "RJ" + }, + { + "id": 3305554, + "nome": "Seropédica", + "uf": "RJ" + }, + { + "id": 3305604, + "nome": "Silva Jardim", + "uf": "RJ" + }, + { + "id": 3305703, + "nome": "Sumidouro", + "uf": "RJ" + }, + { + "id": 3304805, + "nome": "São Fidélis", + "uf": "RJ" + }, + { + "id": 3304755, + "nome": "São Francisco de Itabapoana", + "uf": "RJ" + }, + { + "id": 3304904, + "nome": "São Gonçalo", + "uf": "RJ" + }, + { + "id": 3305133, + "nome": "São José de Ubá", + "uf": "RJ" + }, + { + "id": 3305158, + "nome": "São José do Vale do Rio Preto", + "uf": "RJ" + }, + { + "id": 3305000, + "nome": "São João da Barra", + "uf": "RJ" + }, + { + "id": 3305109, + "nome": "São João de Meriti", + "uf": "RJ" + }, + { + "id": 3305208, + "nome": "São Pedro da Aldeia", + "uf": "RJ" + }, + { + "id": 3305307, + "nome": "São Sebastião do Alto", + "uf": "RJ" + }, + { + "id": 3305752, + "nome": "Tanguá", + "uf": "RJ" + }, + { + "id": 3305802, + "nome": "Teresópolis", + "uf": "RJ" + }, + { + "id": 3305901, + "nome": "Trajano de Moraes", + "uf": "RJ" + }, + { + "id": 3306008, + "nome": "Três Rios", + "uf": "RJ" + }, + { + "id": 3306107, + "nome": "Valença", + "uf": "RJ" + }, + { + "id": 3306156, + "nome": "Varre-Sai", + "uf": "RJ" + }, + { + "id": 3306206, + "nome": "Vassouras", + "uf": "RJ" + }, + { + "id": 3306305, + "nome": "Volta Redonda", + "uf": "RJ" + }, + { + "id": 2400109, + "nome": "Acari", + "uf": "RN" + }, + { + "id": 2400307, + "nome": "Afonso Bezerra", + "uf": "RN" + }, + { + "id": 2400505, + "nome": "Alexandria", + "uf": "RN" + }, + { + "id": 2400604, + "nome": "Almino Afonso", + "uf": "RN" + }, + { + "id": 2400703, + "nome": "Alto do Rodrigues", + "uf": "RN" + }, + { + "id": 2400802, + "nome": "Angicos", + "uf": "RN" + }, + { + "id": 2400901, + "nome": "Antônio Martins", + "uf": "RN" + }, + { + "id": 2401008, + "nome": "Apodi", + "uf": "RN" + }, + { + "id": 2401107, + "nome": "Areia Branca", + "uf": "RN" + }, + { + "id": 2401206, + "nome": "Arez", + "uf": "RN" + }, + { + "id": 2400208, + "nome": "Assú", + "uf": "RN" + }, + { + "id": 2401453, + "nome": "Baraúna", + "uf": "RN" + }, + { + "id": 2401503, + "nome": "Barcelona", + "uf": "RN" + }, + { + "id": 2401404, + "nome": "Baía Formosa", + "uf": "RN" + }, + { + "id": 2401602, + "nome": "Bento Fernandes", + "uf": "RN" + }, + { + "id": 2401651, + "nome": "Bodó", + "uf": "RN" + }, + { + "id": 2401701, + "nome": "Bom Jesus", + "uf": "RN" + }, + { + "id": 2401800, + "nome": "Brejinho", + "uf": "RN" + }, + { + "id": 2402006, + "nome": "Caicó", + "uf": "RN" + }, + { + "id": 2401859, + "nome": "Caiçara do Norte", + "uf": "RN" + }, + { + "id": 2401909, + "nome": "Caiçara do Rio do Vento", + "uf": "RN" + }, + { + "id": 2401305, + "nome": "Campo Grande", + "uf": "RN" + }, + { + "id": 2402105, + "nome": "Campo Redondo", + "uf": "RN" + }, + { + "id": 2402204, + "nome": "Canguaretama", + "uf": "RN" + }, + { + "id": 2402303, + "nome": "Caraúbas", + "uf": "RN" + }, + { + "id": 2402501, + "nome": "Carnaubais", + "uf": "RN" + }, + { + "id": 2402402, + "nome": "Carnaúba dos Dantas", + "uf": "RN" + }, + { + "id": 2402600, + "nome": "Ceará-Mirim", + "uf": "RN" + }, + { + "id": 2402709, + "nome": "Cerro Corá", + "uf": "RN" + }, + { + "id": 2402808, + "nome": "Coronel Ezequiel", + "uf": "RN" + }, + { + "id": 2402907, + "nome": "Coronel João Pessoa", + "uf": "RN" + }, + { + "id": 2403004, + "nome": "Cruzeta", + "uf": "RN" + }, + { + "id": 2403103, + "nome": "Currais Novos", + "uf": "RN" + }, + { + "id": 2403202, + "nome": "Doutor Severiano", + "uf": "RN" + }, + { + "id": 2403301, + "nome": "Encanto", + "uf": "RN" + }, + { + "id": 2403400, + "nome": "Equador", + "uf": "RN" + }, + { + "id": 2403509, + "nome": "Espírito Santo", + "uf": "RN" + }, + { + "id": 2403608, + "nome": "Extremoz", + "uf": "RN" + }, + { + "id": 2403707, + "nome": "Felipe Guerra", + "uf": "RN" + }, + { + "id": 2403756, + "nome": "Fernando Pedroza", + "uf": "RN" + }, + { + "id": 2403806, + "nome": "Florânia", + "uf": "RN" + }, + { + "id": 2403905, + "nome": "Francisco Dantas", + "uf": "RN" + }, + { + "id": 2404002, + "nome": "Frutuoso Gomes", + "uf": "RN" + }, + { + "id": 2404101, + "nome": "Galinhos", + "uf": "RN" + }, + { + "id": 2404200, + "nome": "Goianinha", + "uf": "RN" + }, + { + "id": 2404309, + "nome": "Governador Dix-Sept Rosado", + "uf": "RN" + }, + { + "id": 2404408, + "nome": "Grossos", + "uf": "RN" + }, + { + "id": 2404507, + "nome": "Guamaré", + "uf": "RN" + }, + { + "id": 2404606, + "nome": "Ielmo Marinho", + "uf": "RN" + }, + { + "id": 2404705, + "nome": "Ipanguaçu", + "uf": "RN" + }, + { + "id": 2404804, + "nome": "Ipueira", + "uf": "RN" + }, + { + "id": 2404853, + "nome": "Itajá", + "uf": "RN" + }, + { + "id": 2404903, + "nome": "Itaú", + "uf": "RN" + }, + { + "id": 2405108, + "nome": "Jandaíra", + "uf": "RN" + }, + { + "id": 2405207, + "nome": "Janduís", + "uf": "RN" + }, + { + "id": 2405306, + "nome": "Januário Cicco", + "uf": "RN" + }, + { + "id": 2405405, + "nome": "Japi", + "uf": "RN" + }, + { + "id": 2405504, + "nome": "Jardim de Angicos", + "uf": "RN" + }, + { + "id": 2405603, + "nome": "Jardim de Piranhas", + "uf": "RN" + }, + { + "id": 2405702, + "nome": "Jardim do Seridó", + "uf": "RN" + }, + { + "id": 2405009, + "nome": "Jaçanã", + "uf": "RN" + }, + { + "id": 2406007, + "nome": "José da Penha", + "uf": "RN" + }, + { + "id": 2405801, + "nome": "João Câmara", + "uf": "RN" + }, + { + "id": 2405900, + "nome": "João Dias", + "uf": "RN" + }, + { + "id": 2406106, + "nome": "Jucurutu", + "uf": "RN" + }, + { + "id": 2406155, + "nome": "Jundiá", + "uf": "RN" + }, + { + "id": 2406502, + "nome": "Lagoa Nova", + "uf": "RN" + }, + { + "id": 2406601, + "nome": "Lagoa Salgada", + "uf": "RN" + }, + { + "id": 2406205, + "nome": "Lagoa d'Anta", + "uf": "RN" + }, + { + "id": 2406304, + "nome": "Lagoa de Pedras", + "uf": "RN" + }, + { + "id": 2406403, + "nome": "Lagoa de Velhos", + "uf": "RN" + }, + { + "id": 2406700, + "nome": "Lajes", + "uf": "RN" + }, + { + "id": 2406809, + "nome": "Lajes Pintadas", + "uf": "RN" + }, + { + "id": 2406908, + "nome": "Lucrécia", + "uf": "RN" + }, + { + "id": 2407005, + "nome": "Luís Gomes", + "uf": "RN" + }, + { + "id": 2407203, + "nome": "Macau", + "uf": "RN" + }, + { + "id": 2407104, + "nome": "Macaíba", + "uf": "RN" + }, + { + "id": 2407252, + "nome": "Major Sales", + "uf": "RN" + }, + { + "id": 2407302, + "nome": "Marcelino Vieira", + "uf": "RN" + }, + { + "id": 2407401, + "nome": "Martins", + "uf": "RN" + }, + { + "id": 2407500, + "nome": "Maxaranguape", + "uf": "RN" + }, + { + "id": 2407609, + "nome": "Messias Targino", + "uf": "RN" + }, + { + "id": 2407708, + "nome": "Montanhas", + "uf": "RN" + }, + { + "id": 2407807, + "nome": "Monte Alegre", + "uf": "RN" + }, + { + "id": 2407906, + "nome": "Monte das Gameleiras", + "uf": "RN" + }, + { + "id": 2408003, + "nome": "Mossoró", + "uf": "RN" + }, + { + "id": 2408102, + "nome": "Natal", + "uf": "RN" + }, + { + "id": 2408300, + "nome": "Nova Cruz", + "uf": "RN" + }, + { + "id": 2408201, + "nome": "Nísia Floresta", + "uf": "RN" + }, + { + "id": 2408409, + "nome": "Olho d'Água do Borges", + "uf": "RN" + }, + { + "id": 2408508, + "nome": "Ouro Branco", + "uf": "RN" + }, + { + "id": 2408607, + "nome": "Paraná", + "uf": "RN" + }, + { + "id": 2408805, + "nome": "Parazinho", + "uf": "RN" + }, + { + "id": 2408706, + "nome": "Paraú", + "uf": "RN" + }, + { + "id": 2408904, + "nome": "Parelhas", + "uf": "RN" + }, + { + "id": 2403251, + "nome": "Parnamirim", + "uf": "RN" + }, + { + "id": 2409100, + "nome": "Passa e Fica", + "uf": "RN" + }, + { + "id": 2409209, + "nome": "Passagem", + "uf": "RN" + }, + { + "id": 2409308, + "nome": "Patu", + "uf": "RN" + }, + { + "id": 2409407, + "nome": "Pau dos Ferros", + "uf": "RN" + }, + { + "id": 2409506, + "nome": "Pedra Grande", + "uf": "RN" + }, + { + "id": 2409605, + "nome": "Pedra Preta", + "uf": "RN" + }, + { + "id": 2409704, + "nome": "Pedro Avelino", + "uf": "RN" + }, + { + "id": 2409803, + "nome": "Pedro Velho", + "uf": "RN" + }, + { + "id": 2409902, + "nome": "Pendências", + "uf": "RN" + }, + { + "id": 2410009, + "nome": "Pilões", + "uf": "RN" + }, + { + "id": 2410207, + "nome": "Portalegre", + "uf": "RN" + }, + { + "id": 2410256, + "nome": "Porto do Mangue", + "uf": "RN" + }, + { + "id": 2410108, + "nome": "Poço Branco", + "uf": "RN" + }, + { + "id": 2410405, + "nome": "Pureza", + "uf": "RN" + }, + { + "id": 2410504, + "nome": "Rafael Fernandes", + "uf": "RN" + }, + { + "id": 2410603, + "nome": "Rafael Godeiro", + "uf": "RN" + }, + { + "id": 2410702, + "nome": "Riacho da Cruz", + "uf": "RN" + }, + { + "id": 2410801, + "nome": "Riacho de Santana", + "uf": "RN" + }, + { + "id": 2410900, + "nome": "Riachuelo", + "uf": "RN" + }, + { + "id": 2408953, + "nome": "Rio do Fogo", + "uf": "RN" + }, + { + "id": 2411007, + "nome": "Rodolfo Fernandes", + "uf": "RN" + }, + { + "id": 2411106, + "nome": "Ruy Barbosa", + "uf": "RN" + }, + { + "id": 2411205, + "nome": "Santa Cruz", + "uf": "RN" + }, + { + "id": 2409332, + "nome": "Santa Maria", + "uf": "RN" + }, + { + "id": 2411403, + "nome": "Santana do Matos", + "uf": "RN" + }, + { + "id": 2411429, + "nome": "Santana do Seridó", + "uf": "RN" + }, + { + "id": 2411502, + "nome": "Santo Antônio", + "uf": "RN" + }, + { + "id": 2413102, + "nome": "Senador Elói de Souza", + "uf": "RN" + }, + { + "id": 2413201, + "nome": "Senador Georgino Avelino", + "uf": "RN" + }, + { + "id": 2410306, + "nome": "Serra Caiada", + "uf": "RN" + }, + { + "id": 2413409, + "nome": "Serra Negra do Norte", + "uf": "RN" + }, + { + "id": 2413300, + "nome": "Serra de São Bento", + "uf": "RN" + }, + { + "id": 2413359, + "nome": "Serra do Mel", + "uf": "RN" + }, + { + "id": 2413508, + "nome": "Serrinha", + "uf": "RN" + }, + { + "id": 2413557, + "nome": "Serrinha dos Pintos", + "uf": "RN" + }, + { + "id": 2413607, + "nome": "Severiano Melo", + "uf": "RN" + }, + { + "id": 2411601, + "nome": "São Bento do Norte", + "uf": "RN" + }, + { + "id": 2411700, + "nome": "São Bento do Trairí", + "uf": "RN" + }, + { + "id": 2411809, + "nome": "São Fernando", + "uf": "RN" + }, + { + "id": 2411908, + "nome": "São Francisco do Oeste", + "uf": "RN" + }, + { + "id": 2412005, + "nome": "São Gonçalo do Amarante", + "uf": "RN" + }, + { + "id": 2412203, + "nome": "São José de Mipibu", + "uf": "RN" + }, + { + "id": 2412302, + "nome": "São José do Campestre", + "uf": "RN" + }, + { + "id": 2412401, + "nome": "São José do Seridó", + "uf": "RN" + }, + { + "id": 2412104, + "nome": "São João do Sabugi", + "uf": "RN" + }, + { + "id": 2412500, + "nome": "São Miguel", + "uf": "RN" + }, + { + "id": 2412559, + "nome": "São Miguel do Gostoso", + "uf": "RN" + }, + { + "id": 2412609, + "nome": "São Paulo do Potengi", + "uf": "RN" + }, + { + "id": 2412708, + "nome": "São Pedro", + "uf": "RN" + }, + { + "id": 2412807, + "nome": "São Rafael", + "uf": "RN" + }, + { + "id": 2412906, + "nome": "São Tomé", + "uf": "RN" + }, + { + "id": 2413003, + "nome": "São Vicente", + "uf": "RN" + }, + { + "id": 2413706, + "nome": "Sítio Novo", + "uf": "RN" + }, + { + "id": 2413805, + "nome": "Taboleiro Grande", + "uf": "RN" + }, + { + "id": 2413904, + "nome": "Taipu", + "uf": "RN" + }, + { + "id": 2414001, + "nome": "Tangará", + "uf": "RN" + }, + { + "id": 2414100, + "nome": "Tenente Ananias", + "uf": "RN" + }, + { + "id": 2414159, + "nome": "Tenente Laurentino Cruz", + "uf": "RN" + }, + { + "id": 2411056, + "nome": "Tibau", + "uf": "RN" + }, + { + "id": 2414209, + "nome": "Tibau do Sul", + "uf": "RN" + }, + { + "id": 2414308, + "nome": "Timbaúba dos Batistas", + "uf": "RN" + }, + { + "id": 2414407, + "nome": "Touros", + "uf": "RN" + }, + { + "id": 2414456, + "nome": "Triunfo Potiguar", + "uf": "RN" + }, + { + "id": 2414506, + "nome": "Umarizal", + "uf": "RN" + }, + { + "id": 2414605, + "nome": "Upanema", + "uf": "RN" + }, + { + "id": 2414753, + "nome": "Venha-Ver", + "uf": "RN" + }, + { + "id": 2414803, + "nome": "Vera Cruz", + "uf": "RN" + }, + { + "id": 2415008, + "nome": "Vila Flor", + "uf": "RN" + }, + { + "id": 2414902, + "nome": "Viçosa", + "uf": "RN" + }, + { + "id": 2414704, + "nome": "Várzea", + "uf": "RN" + }, + { + "id": 2400406, + "nome": "Água Nova", + "uf": "RN" + }, + { + "id": 1100015, + "nome": "Alta Floresta D'Oeste", + "uf": "RO" + }, + { + "id": 1100379, + "nome": "Alto Alegre dos Parecis", + "uf": "RO" + }, + { + "id": 1100403, + "nome": "Alto Paraíso", + "uf": "RO" + }, + { + "id": 1100346, + "nome": "Alvorada D'Oeste", + "uf": "RO" + }, + { + "id": 1100023, + "nome": "Ariquemes", + "uf": "RO" + }, + { + "id": 1100452, + "nome": "Buritis", + "uf": "RO" + }, + { + "id": 1100031, + "nome": "Cabixi", + "uf": "RO" + }, + { + "id": 1100601, + "nome": "Cacaulândia", + "uf": "RO" + }, + { + "id": 1100049, + "nome": "Cacoal", + "uf": "RO" + }, + { + "id": 1100700, + "nome": "Campo Novo de Rondônia", + "uf": "RO" + }, + { + "id": 1100809, + "nome": "Candeias do Jamari", + "uf": "RO" + }, + { + "id": 1100908, + "nome": "Castanheiras", + "uf": "RO" + }, + { + "id": 1100056, + "nome": "Cerejeiras", + "uf": "RO" + }, + { + "id": 1100924, + "nome": "Chupinguaia", + "uf": "RO" + }, + { + "id": 1100064, + "nome": "Colorado do Oeste", + "uf": "RO" + }, + { + "id": 1100072, + "nome": "Corumbiara", + "uf": "RO" + }, + { + "id": 1100080, + "nome": "Costa Marques", + "uf": "RO" + }, + { + "id": 1100940, + "nome": "Cujubim", + "uf": "RO" + }, + { + "id": 1100098, + "nome": "Espigão D'Oeste", + "uf": "RO" + }, + { + "id": 1101005, + "nome": "Governador Jorge Teixeira", + "uf": "RO" + }, + { + "id": 1100106, + "nome": "Guajará-Mirim", + "uf": "RO" + }, + { + "id": 1101104, + "nome": "Itapuã do Oeste", + "uf": "RO" + }, + { + "id": 1100114, + "nome": "Jaru", + "uf": "RO" + }, + { + "id": 1100122, + "nome": "Ji-Paraná", + "uf": "RO" + }, + { + "id": 1100130, + "nome": "Machadinho D'Oeste", + "uf": "RO" + }, + { + "id": 1101203, + "nome": "Ministro Andreazza", + "uf": "RO" + }, + { + "id": 1101302, + "nome": "Mirante da Serra", + "uf": "RO" + }, + { + "id": 1101401, + "nome": "Monte Negro", + "uf": "RO" + }, + { + "id": 1100148, + "nome": "Nova Brasilândia D'Oeste", + "uf": "RO" + }, + { + "id": 1100338, + "nome": "Nova Mamoré", + "uf": "RO" + }, + { + "id": 1101435, + "nome": "Nova União", + "uf": "RO" + }, + { + "id": 1100502, + "nome": "Novo Horizonte do Oeste", + "uf": "RO" + }, + { + "id": 1100155, + "nome": "Ouro Preto do Oeste", + "uf": "RO" + }, + { + "id": 1101450, + "nome": "Parecis", + "uf": "RO" + }, + { + "id": 1100189, + "nome": "Pimenta Bueno", + "uf": "RO" + }, + { + "id": 1101468, + "nome": "Pimenteiras do Oeste", + "uf": "RO" + }, + { + "id": 1100205, + "nome": "Porto Velho", + "uf": "RO" + }, + { + "id": 1100254, + "nome": "Presidente Médici", + "uf": "RO" + }, + { + "id": 1101476, + "nome": "Primavera de Rondônia", + "uf": "RO" + }, + { + "id": 1100262, + "nome": "Rio Crespo", + "uf": "RO" + }, + { + "id": 1100288, + "nome": "Rolim de Moura", + "uf": "RO" + }, + { + "id": 1100296, + "nome": "Santa Luzia D'Oeste", + "uf": "RO" + }, + { + "id": 1101500, + "nome": "Seringueiras", + "uf": "RO" + }, + { + "id": 1101484, + "nome": "São Felipe D'Oeste", + "uf": "RO" + }, + { + "id": 1101492, + "nome": "São Francisco do Guaporé", + "uf": "RO" + }, + { + "id": 1100320, + "nome": "São Miguel do Guaporé", + "uf": "RO" + }, + { + "id": 1101559, + "nome": "Teixeirópolis", + "uf": "RO" + }, + { + "id": 1101609, + "nome": "Theobroma", + "uf": "RO" + }, + { + "id": 1101708, + "nome": "Urupá", + "uf": "RO" + }, + { + "id": 1101757, + "nome": "Vale do Anari", + "uf": "RO" + }, + { + "id": 1101807, + "nome": "Vale do Paraíso", + "uf": "RO" + }, + { + "id": 1100304, + "nome": "Vilhena", + "uf": "RO" + }, + { + "id": 1400050, + "nome": "Alto Alegre", + "uf": "RR" + }, + { + "id": 1400027, + "nome": "Amajari", + "uf": "RR" + }, + { + "id": 1400100, + "nome": "Boa Vista", + "uf": "RR" + }, + { + "id": 1400159, + "nome": "Bonfim", + "uf": "RR" + }, + { + "id": 1400175, + "nome": "Cantá", + "uf": "RR" + }, + { + "id": 1400209, + "nome": "Caracaraí", + "uf": "RR" + }, + { + "id": 1400233, + "nome": "Caroebe", + "uf": "RR" + }, + { + "id": 1400282, + "nome": "Iracema", + "uf": "RR" + }, + { + "id": 1400308, + "nome": "Mucajaí", + "uf": "RR" + }, + { + "id": 1400407, + "nome": "Normandia", + "uf": "RR" + }, + { + "id": 1400456, + "nome": "Pacaraima", + "uf": "RR" + }, + { + "id": 1400472, + "nome": "Rorainópolis", + "uf": "RR" + }, + { + "id": 1400506, + "nome": "São João da Baliza", + "uf": "RR" + }, + { + "id": 1400605, + "nome": "São Luiz do Anauá", + "uf": "RR" + }, + { + "id": 1400704, + "nome": "Uiramutã", + "uf": "RR" + }, + { + "id": 4300034, + "nome": "Aceguá", + "uf": "RS" + }, + { + "id": 4300109, + "nome": "Agudo", + "uf": "RS" + }, + { + "id": 4300208, + "nome": "Ajuricaba", + "uf": "RS" + }, + { + "id": 4300307, + "nome": "Alecrim", + "uf": "RS" + }, + { + "id": 4300406, + "nome": "Alegrete", + "uf": "RS" + }, + { + "id": 4300455, + "nome": "Alegria", + "uf": "RS" + }, + { + "id": 4300471, + "nome": "Almirante Tamandaré do Sul", + "uf": "RS" + }, + { + "id": 4300505, + "nome": "Alpestre", + "uf": "RS" + }, + { + "id": 4300554, + "nome": "Alto Alegre", + "uf": "RS" + }, + { + "id": 4300570, + "nome": "Alto Feliz", + "uf": "RS" + }, + { + "id": 4300604, + "nome": "Alvorada", + "uf": "RS" + }, + { + "id": 4300638, + "nome": "Amaral Ferrador", + "uf": "RS" + }, + { + "id": 4300646, + "nome": "Ametista do Sul", + "uf": "RS" + }, + { + "id": 4300661, + "nome": "André da Rocha", + "uf": "RS" + }, + { + "id": 4300703, + "nome": "Anta Gorda", + "uf": "RS" + }, + { + "id": 4300802, + "nome": "Antônio Prado", + "uf": "RS" + }, + { + "id": 4300851, + "nome": "Arambaré", + "uf": "RS" + }, + { + "id": 4300877, + "nome": "Araricá", + "uf": "RS" + }, + { + "id": 4300901, + "nome": "Aratiba", + "uf": "RS" + }, + { + "id": 4301305, + "nome": "Arroio Grande", + "uf": "RS" + }, + { + "id": 4301008, + "nome": "Arroio do Meio", + "uf": "RS" + }, + { + "id": 4301073, + "nome": "Arroio do Padre", + "uf": "RS" + }, + { + "id": 4301057, + "nome": "Arroio do Sal", + "uf": "RS" + }, + { + "id": 4301206, + "nome": "Arroio do Tigre", + "uf": "RS" + }, + { + "id": 4301107, + "nome": "Arroio dos Ratos", + "uf": "RS" + }, + { + "id": 4301404, + "nome": "Arvorezinha", + "uf": "RS" + }, + { + "id": 4301503, + "nome": "Augusto Pestana", + "uf": "RS" + }, + { + "id": 4301602, + "nome": "Bagé", + "uf": "RS" + }, + { + "id": 4301636, + "nome": "Balneário Pinhal", + "uf": "RS" + }, + { + "id": 4301958, + "nome": "Barra Funda", + "uf": "RS" + }, + { + "id": 4301859, + "nome": "Barra do Guarita", + "uf": "RS" + }, + { + "id": 4301875, + "nome": "Barra do Quaraí", + "uf": "RS" + }, + { + "id": 4301909, + "nome": "Barra do Ribeiro", + "uf": "RS" + }, + { + "id": 4301925, + "nome": "Barra do Rio Azul", + "uf": "RS" + }, + { + "id": 4301800, + "nome": "Barracão", + "uf": "RS" + }, + { + "id": 4302006, + "nome": "Barros Cassal", + "uf": "RS" + }, + { + "id": 4301651, + "nome": "Barão", + "uf": "RS" + }, + { + "id": 4301701, + "nome": "Barão de Cotegipe", + "uf": "RS" + }, + { + "id": 4301750, + "nome": "Barão do Triunfo", + "uf": "RS" + }, + { + "id": 4302055, + "nome": "Benjamin Constant do Sul", + "uf": "RS" + }, + { + "id": 4302105, + "nome": "Bento Gonçalves", + "uf": "RS" + }, + { + "id": 4302154, + "nome": "Boa Vista das Missões", + "uf": "RS" + }, + { + "id": 4302204, + "nome": "Boa Vista do Buricá", + "uf": "RS" + }, + { + "id": 4302220, + "nome": "Boa Vista do Cadeado", + "uf": "RS" + }, + { + "id": 4302238, + "nome": "Boa Vista do Incra", + "uf": "RS" + }, + { + "id": 4302253, + "nome": "Boa Vista do Sul", + "uf": "RS" + }, + { + "id": 4302303, + "nome": "Bom Jesus", + "uf": "RS" + }, + { + "id": 4302352, + "nome": "Bom Princípio", + "uf": "RS" + }, + { + "id": 4302378, + "nome": "Bom Progresso", + "uf": "RS" + }, + { + "id": 4302402, + "nome": "Bom Retiro do Sul", + "uf": "RS" + }, + { + "id": 4302451, + "nome": "Boqueirão do Leão", + "uf": "RS" + }, + { + "id": 4302501, + "nome": "Bossoroca", + "uf": "RS" + }, + { + "id": 4302584, + "nome": "Bozano", + "uf": "RS" + }, + { + "id": 4302600, + "nome": "Braga", + "uf": "RS" + }, + { + "id": 4302659, + "nome": "Brochier", + "uf": "RS" + }, + { + "id": 4302709, + "nome": "Butiá", + "uf": "RS" + }, + { + "id": 4302907, + "nome": "Cacequi", + "uf": "RS" + }, + { + "id": 4303004, + "nome": "Cachoeira do Sul", + "uf": "RS" + }, + { + "id": 4303103, + "nome": "Cachoeirinha", + "uf": "RS" + }, + { + "id": 4303202, + "nome": "Cacique Doble", + "uf": "RS" + }, + { + "id": 4303301, + "nome": "Caibaté", + "uf": "RS" + }, + { + "id": 4303400, + "nome": "Caiçara", + "uf": "RS" + }, + { + "id": 4303509, + "nome": "Camaquã", + "uf": "RS" + }, + { + "id": 4303558, + "nome": "Camargo", + "uf": "RS" + }, + { + "id": 4303608, + "nome": "Cambará do Sul", + "uf": "RS" + }, + { + "id": 4303673, + "nome": "Campestre da Serra", + "uf": "RS" + }, + { + "id": 4303707, + "nome": "Campina das Missões", + "uf": "RS" + }, + { + "id": 4303806, + "nome": "Campinas do Sul", + "uf": "RS" + }, + { + "id": 4303905, + "nome": "Campo Bom", + "uf": "RS" + }, + { + "id": 4304002, + "nome": "Campo Novo", + "uf": "RS" + }, + { + "id": 4304101, + "nome": "Campos Borges", + "uf": "RS" + }, + { + "id": 4304200, + "nome": "Candelária", + "uf": "RS" + }, + { + "id": 4304358, + "nome": "Candiota", + "uf": "RS" + }, + { + "id": 4304408, + "nome": "Canela", + "uf": "RS" + }, + { + "id": 4304507, + "nome": "Canguçu", + "uf": "RS" + }, + { + "id": 4304606, + "nome": "Canoas", + "uf": "RS" + }, + { + "id": 4304614, + "nome": "Canudos do Vale", + "uf": "RS" + }, + { + "id": 4304689, + "nome": "Capela de Santana", + "uf": "RS" + }, + { + "id": 4304697, + "nome": "Capitão", + "uf": "RS" + }, + { + "id": 4304671, + "nome": "Capivari do Sul", + "uf": "RS" + }, + { + "id": 4304622, + "nome": "Capão Bonito do Sul", + "uf": "RS" + }, + { + "id": 4304630, + "nome": "Capão da Canoa", + "uf": "RS" + }, + { + "id": 4304655, + "nome": "Capão do Cipó", + "uf": "RS" + }, + { + "id": 4304663, + "nome": "Capão do Leão", + "uf": "RS" + }, + { + "id": 4304705, + "nome": "Carazinho", + "uf": "RS" + }, + { + "id": 4304713, + "nome": "Caraá", + "uf": "RS" + }, + { + "id": 4304804, + "nome": "Carlos Barbosa", + "uf": "RS" + }, + { + "id": 4304853, + "nome": "Carlos Gomes", + "uf": "RS" + }, + { + "id": 4304903, + "nome": "Casca", + "uf": "RS" + }, + { + "id": 4304952, + "nome": "Caseiros", + "uf": "RS" + }, + { + "id": 4305009, + "nome": "Catuípe", + "uf": "RS" + }, + { + "id": 4305108, + "nome": "Caxias do Sul", + "uf": "RS" + }, + { + "id": 4302808, + "nome": "Caçapava do Sul", + "uf": "RS" + }, + { + "id": 4305116, + "nome": "Centenário", + "uf": "RS" + }, + { + "id": 4305124, + "nome": "Cerrito", + "uf": "RS" + }, + { + "id": 4305132, + "nome": "Cerro Branco", + "uf": "RS" + }, + { + "id": 4305157, + "nome": "Cerro Grande", + "uf": "RS" + }, + { + "id": 4305173, + "nome": "Cerro Grande do Sul", + "uf": "RS" + }, + { + "id": 4305207, + "nome": "Cerro Largo", + "uf": "RS" + }, + { + "id": 4305306, + "nome": "Chapada", + "uf": "RS" + }, + { + "id": 4305355, + "nome": "Charqueadas", + "uf": "RS" + }, + { + "id": 4305371, + "nome": "Charrua", + "uf": "RS" + }, + { + "id": 4305405, + "nome": "Chiapetta", + "uf": "RS" + }, + { + "id": 4305447, + "nome": "Chuvisca", + "uf": "RS" + }, + { + "id": 4305439, + "nome": "Chuí", + "uf": "RS" + }, + { + "id": 4305454, + "nome": "Cidreira", + "uf": "RS" + }, + { + "id": 4305504, + "nome": "Ciríaco", + "uf": "RS" + }, + { + "id": 4305587, + "nome": "Colinas", + "uf": "RS" + }, + { + "id": 4305603, + "nome": "Colorado", + "uf": "RS" + }, + { + "id": 4305702, + "nome": "Condor", + "uf": "RS" + }, + { + "id": 4305801, + "nome": "Constantina", + "uf": "RS" + }, + { + "id": 4305835, + "nome": "Coqueiro Baixo", + "uf": "RS" + }, + { + "id": 4305850, + "nome": "Coqueiros do Sul", + "uf": "RS" + }, + { + "id": 4305871, + "nome": "Coronel Barros", + "uf": "RS" + }, + { + "id": 4305900, + "nome": "Coronel Bicaco", + "uf": "RS" + }, + { + "id": 4305934, + "nome": "Coronel Pilar", + "uf": "RS" + }, + { + "id": 4305959, + "nome": "Cotiporã", + "uf": "RS" + }, + { + "id": 4305975, + "nome": "Coxilha", + "uf": "RS" + }, + { + "id": 4306007, + "nome": "Crissiumal", + "uf": "RS" + }, + { + "id": 4306056, + "nome": "Cristal", + "uf": "RS" + }, + { + "id": 4306072, + "nome": "Cristal do Sul", + "uf": "RS" + }, + { + "id": 4306106, + "nome": "Cruz Alta", + "uf": "RS" + }, + { + "id": 4306130, + "nome": "Cruzaltense", + "uf": "RS" + }, + { + "id": 4306205, + "nome": "Cruzeiro do Sul", + "uf": "RS" + }, + { + "id": 4304309, + "nome": "Cândido Godói", + "uf": "RS" + }, + { + "id": 4306304, + "nome": "David Canabarro", + "uf": "RS" + }, + { + "id": 4306320, + "nome": "Derrubadas", + "uf": "RS" + }, + { + "id": 4306353, + "nome": "Dezesseis de Novembro", + "uf": "RS" + }, + { + "id": 4306379, + "nome": "Dilermando de Aguiar", + "uf": "RS" + }, + { + "id": 4306403, + "nome": "Dois Irmãos", + "uf": "RS" + }, + { + "id": 4306429, + "nome": "Dois Irmãos das Missões", + "uf": "RS" + }, + { + "id": 4306452, + "nome": "Dois Lajeados", + "uf": "RS" + }, + { + "id": 4306502, + "nome": "Dom Feliciano", + "uf": "RS" + }, + { + "id": 4306601, + "nome": "Dom Pedrito", + "uf": "RS" + }, + { + "id": 4306551, + "nome": "Dom Pedro de Alcântara", + "uf": "RS" + }, + { + "id": 4306700, + "nome": "Dona Francisca", + "uf": "RS" + }, + { + "id": 4306734, + "nome": "Doutor Maurício Cardoso", + "uf": "RS" + }, + { + "id": 4306759, + "nome": "Doutor Ricardo", + "uf": "RS" + }, + { + "id": 4306767, + "nome": "Eldorado do Sul", + "uf": "RS" + }, + { + "id": 4306809, + "nome": "Encantado", + "uf": "RS" + }, + { + "id": 4306908, + "nome": "Encruzilhada do Sul", + "uf": "RS" + }, + { + "id": 4306924, + "nome": "Engenho Velho", + "uf": "RS" + }, + { + "id": 4306957, + "nome": "Entre Rios do Sul", + "uf": "RS" + }, + { + "id": 4306932, + "nome": "Entre-Ijuís", + "uf": "RS" + }, + { + "id": 4306973, + "nome": "Erebango", + "uf": "RS" + }, + { + "id": 4307005, + "nome": "Erechim", + "uf": "RS" + }, + { + "id": 4307054, + "nome": "Ernestina", + "uf": "RS" + }, + { + "id": 4307203, + "nome": "Erval Grande", + "uf": "RS" + }, + { + "id": 4307302, + "nome": "Erval Seco", + "uf": "RS" + }, + { + "id": 4307401, + "nome": "Esmeralda", + "uf": "RS" + }, + { + "id": 4307450, + "nome": "Esperança do Sul", + "uf": "RS" + }, + { + "id": 4307500, + "nome": "Espumoso", + "uf": "RS" + }, + { + "id": 4307559, + "nome": "Estação", + "uf": "RS" + }, + { + "id": 4307708, + "nome": "Esteio", + "uf": "RS" + }, + { + "id": 4307807, + "nome": "Estrela", + "uf": "RS" + }, + { + "id": 4307815, + "nome": "Estrela Velha", + "uf": "RS" + }, + { + "id": 4307609, + "nome": "Estância Velha", + "uf": "RS" + }, + { + "id": 4307831, + "nome": "Eugênio de Castro", + "uf": "RS" + }, + { + "id": 4307864, + "nome": "Fagundes Varela", + "uf": "RS" + }, + { + "id": 4307906, + "nome": "Farroupilha", + "uf": "RS" + }, + { + "id": 4308003, + "nome": "Faxinal do Soturno", + "uf": "RS" + }, + { + "id": 4308052, + "nome": "Faxinalzinho", + "uf": "RS" + }, + { + "id": 4308078, + "nome": "Fazenda Vilanova", + "uf": "RS" + }, + { + "id": 4308102, + "nome": "Feliz", + "uf": "RS" + }, + { + "id": 4308201, + "nome": "Flores da Cunha", + "uf": "RS" + }, + { + "id": 4308250, + "nome": "Floriano Peixoto", + "uf": "RS" + }, + { + "id": 4308300, + "nome": "Fontoura Xavier", + "uf": "RS" + }, + { + "id": 4308409, + "nome": "Formigueiro", + "uf": "RS" + }, + { + "id": 4308433, + "nome": "Forquetinha", + "uf": "RS" + }, + { + "id": 4308458, + "nome": "Fortaleza dos Valos", + "uf": "RS" + }, + { + "id": 4308508, + "nome": "Frederico Westphalen", + "uf": "RS" + }, + { + "id": 4308607, + "nome": "Garibaldi", + "uf": "RS" + }, + { + "id": 4308656, + "nome": "Garruchos", + "uf": "RS" + }, + { + "id": 4308706, + "nome": "Gaurama", + "uf": "RS" + }, + { + "id": 4308805, + "nome": "General Câmara", + "uf": "RS" + }, + { + "id": 4308854, + "nome": "Gentil", + "uf": "RS" + }, + { + "id": 4308904, + "nome": "Getúlio Vargas", + "uf": "RS" + }, + { + "id": 4309001, + "nome": "Giruá", + "uf": "RS" + }, + { + "id": 4309050, + "nome": "Glorinha", + "uf": "RS" + }, + { + "id": 4309100, + "nome": "Gramado", + "uf": "RS" + }, + { + "id": 4309159, + "nome": "Gramado Xavier", + "uf": "RS" + }, + { + "id": 4309126, + "nome": "Gramado dos Loureiros", + "uf": "RS" + }, + { + "id": 4309209, + "nome": "Gravataí", + "uf": "RS" + }, + { + "id": 4309258, + "nome": "Guabiju", + "uf": "RS" + }, + { + "id": 4309407, + "nome": "Guaporé", + "uf": "RS" + }, + { + "id": 4309506, + "nome": "Guarani das Missões", + "uf": "RS" + }, + { + "id": 4309308, + "nome": "Guaíba", + "uf": "RS" + }, + { + "id": 4309555, + "nome": "Harmonia", + "uf": "RS" + }, + { + "id": 4307104, + "nome": "Herval", + "uf": "RS" + }, + { + "id": 4309571, + "nome": "Herveiras", + "uf": "RS" + }, + { + "id": 4309605, + "nome": "Horizontina", + "uf": "RS" + }, + { + "id": 4309654, + "nome": "Hulha Negra", + "uf": "RS" + }, + { + "id": 4309704, + "nome": "Humaitá", + "uf": "RS" + }, + { + "id": 4309753, + "nome": "Ibarama", + "uf": "RS" + }, + { + "id": 4309803, + "nome": "Ibiaçá", + "uf": "RS" + }, + { + "id": 4309902, + "nome": "Ibiraiaras", + "uf": "RS" + }, + { + "id": 4309951, + "nome": "Ibirapuitã", + "uf": "RS" + }, + { + "id": 4310009, + "nome": "Ibirubá", + "uf": "RS" + }, + { + "id": 4310108, + "nome": "Igrejinha", + "uf": "RS" + }, + { + "id": 4310207, + "nome": "Ijuí", + "uf": "RS" + }, + { + "id": 4310306, + "nome": "Ilópolis", + "uf": "RS" + }, + { + "id": 4310330, + "nome": "Imbé", + "uf": "RS" + }, + { + "id": 4310363, + "nome": "Imigrante", + "uf": "RS" + }, + { + "id": 4310405, + "nome": "Independência", + "uf": "RS" + }, + { + "id": 4310413, + "nome": "Inhacorá", + "uf": "RS" + }, + { + "id": 4310462, + "nome": "Ipiranga do Sul", + "uf": "RS" + }, + { + "id": 4310439, + "nome": "Ipê", + "uf": "RS" + }, + { + "id": 4310504, + "nome": "Iraí", + "uf": "RS" + }, + { + "id": 4310538, + "nome": "Itaara", + "uf": "RS" + }, + { + "id": 4310553, + "nome": "Itacurubi", + "uf": "RS" + }, + { + "id": 4310579, + "nome": "Itapuca", + "uf": "RS" + }, + { + "id": 4310603, + "nome": "Itaqui", + "uf": "RS" + }, + { + "id": 4310652, + "nome": "Itati", + "uf": "RS" + }, + { + "id": 4310702, + "nome": "Itatiba do Sul", + "uf": "RS" + }, + { + "id": 4310751, + "nome": "Ivorá", + "uf": "RS" + }, + { + "id": 4310801, + "nome": "Ivoti", + "uf": "RS" + }, + { + "id": 4310850, + "nome": "Jaboticaba", + "uf": "RS" + }, + { + "id": 4310876, + "nome": "Jacuizinho", + "uf": "RS" + }, + { + "id": 4310900, + "nome": "Jacutinga", + "uf": "RS" + }, + { + "id": 4311106, + "nome": "Jaguari", + "uf": "RS" + }, + { + "id": 4311007, + "nome": "Jaguarão", + "uf": "RS" + }, + { + "id": 4311122, + "nome": "Jaquirana", + "uf": "RS" + }, + { + "id": 4311130, + "nome": "Jari", + "uf": "RS" + }, + { + "id": 4311155, + "nome": "Jóia", + "uf": "RS" + }, + { + "id": 4311205, + "nome": "Júlio de Castilhos", + "uf": "RS" + }, + { + "id": 4311239, + "nome": "Lagoa Bonita do Sul", + "uf": "RS" + }, + { + "id": 4311304, + "nome": "Lagoa Vermelha", + "uf": "RS" + }, + { + "id": 4311270, + "nome": "Lagoa dos Três Cantos", + "uf": "RS" + }, + { + "id": 4311254, + "nome": "Lagoão", + "uf": "RS" + }, + { + "id": 4311403, + "nome": "Lajeado", + "uf": "RS" + }, + { + "id": 4311429, + "nome": "Lajeado do Bugre", + "uf": "RS" + }, + { + "id": 4311502, + "nome": "Lavras do Sul", + "uf": "RS" + }, + { + "id": 4311601, + "nome": "Liberato Salzano", + "uf": "RS" + }, + { + "id": 4311627, + "nome": "Lindolfo Collor", + "uf": "RS" + }, + { + "id": 4311643, + "nome": "Linha Nova", + "uf": "RS" + }, + { + "id": 4311700, + "nome": "Machadinho", + "uf": "RS" + }, + { + "id": 4311734, + "nome": "Mampituba", + "uf": "RS" + }, + { + "id": 4311759, + "nome": "Manoel Viana", + "uf": "RS" + }, + { + "id": 4311775, + "nome": "Maquiné", + "uf": "RS" + }, + { + "id": 4311791, + "nome": "Maratá", + "uf": "RS" + }, + { + "id": 4311809, + "nome": "Marau", + "uf": "RS" + }, + { + "id": 4311908, + "nome": "Marcelino Ramos", + "uf": "RS" + }, + { + "id": 4311981, + "nome": "Mariana Pimentel", + "uf": "RS" + }, + { + "id": 4312005, + "nome": "Mariano Moro", + "uf": "RS" + }, + { + "id": 4312054, + "nome": "Marques de Souza", + "uf": "RS" + }, + { + "id": 4312104, + "nome": "Mata", + "uf": "RS" + }, + { + "id": 4312138, + "nome": "Mato Castelhano", + "uf": "RS" + }, + { + "id": 4312153, + "nome": "Mato Leitão", + "uf": "RS" + }, + { + "id": 4312179, + "nome": "Mato Queimado", + "uf": "RS" + }, + { + "id": 4312203, + "nome": "Maximiliano de Almeida", + "uf": "RS" + }, + { + "id": 4311718, + "nome": "Maçambará", + "uf": "RS" + }, + { + "id": 4312252, + "nome": "Minas do Leão", + "uf": "RS" + }, + { + "id": 4312302, + "nome": "Miraguaí", + "uf": "RS" + }, + { + "id": 4312351, + "nome": "Montauri", + "uf": "RS" + }, + { + "id": 4312377, + "nome": "Monte Alegre dos Campos", + "uf": "RS" + }, + { + "id": 4312385, + "nome": "Monte Belo do Sul", + "uf": "RS" + }, + { + "id": 4312401, + "nome": "Montenegro", + "uf": "RS" + }, + { + "id": 4312427, + "nome": "Mormaço", + "uf": "RS" + }, + { + "id": 4312443, + "nome": "Morrinhos do Sul", + "uf": "RS" + }, + { + "id": 4312450, + "nome": "Morro Redondo", + "uf": "RS" + }, + { + "id": 4312476, + "nome": "Morro Reuter", + "uf": "RS" + }, + { + "id": 4312500, + "nome": "Mostardas", + "uf": "RS" + }, + { + "id": 4312617, + "nome": "Muitos Capões", + "uf": "RS" + }, + { + "id": 4312625, + "nome": "Muliterno", + "uf": "RS" + }, + { + "id": 4312609, + "nome": "Muçum", + "uf": "RS" + }, + { + "id": 4312674, + "nome": "Nicolau Vergueiro", + "uf": "RS" + }, + { + "id": 4312708, + "nome": "Nonoai", + "uf": "RS" + }, + { + "id": 4312757, + "nome": "Nova Alvorada", + "uf": "RS" + }, + { + "id": 4312807, + "nome": "Nova Araçá", + "uf": "RS" + }, + { + "id": 4312906, + "nome": "Nova Bassano", + "uf": "RS" + }, + { + "id": 4312955, + "nome": "Nova Boa Vista", + "uf": "RS" + }, + { + "id": 4313003, + "nome": "Nova Bréscia", + "uf": "RS" + }, + { + "id": 4313011, + "nome": "Nova Candelária", + "uf": "RS" + }, + { + "id": 4313037, + "nome": "Nova Esperança do Sul", + "uf": "RS" + }, + { + "id": 4313060, + "nome": "Nova Hartz", + "uf": "RS" + }, + { + "id": 4313102, + "nome": "Nova Palma", + "uf": "RS" + }, + { + "id": 4313201, + "nome": "Nova Petrópolis", + "uf": "RS" + }, + { + "id": 4313300, + "nome": "Nova Prata", + "uf": "RS" + }, + { + "id": 4313086, + "nome": "Nova Pádua", + "uf": "RS" + }, + { + "id": 4313334, + "nome": "Nova Ramada", + "uf": "RS" + }, + { + "id": 4313359, + "nome": "Nova Roma do Sul", + "uf": "RS" + }, + { + "id": 4313375, + "nome": "Nova Santa Rita", + "uf": "RS" + }, + { + "id": 4313490, + "nome": "Novo Barreiro", + "uf": "RS" + }, + { + "id": 4313391, + "nome": "Novo Cabrais", + "uf": "RS" + }, + { + "id": 4313409, + "nome": "Novo Hamburgo", + "uf": "RS" + }, + { + "id": 4313425, + "nome": "Novo Machado", + "uf": "RS" + }, + { + "id": 4313441, + "nome": "Novo Tiradentes", + "uf": "RS" + }, + { + "id": 4313466, + "nome": "Novo Xingu", + "uf": "RS" + }, + { + "id": 4312658, + "nome": "Não-Me-Toque", + "uf": "RS" + }, + { + "id": 4313508, + "nome": "Osório", + "uf": "RS" + }, + { + "id": 4313607, + "nome": "Paim Filho", + "uf": "RS" + }, + { + "id": 4313656, + "nome": "Palmares do Sul", + "uf": "RS" + }, + { + "id": 4313706, + "nome": "Palmeira das Missões", + "uf": "RS" + }, + { + "id": 4313805, + "nome": "Palmitinho", + "uf": "RS" + }, + { + "id": 4313904, + "nome": "Panambi", + "uf": "RS" + }, + { + "id": 4313953, + "nome": "Pantano Grande", + "uf": "RS" + }, + { + "id": 4314001, + "nome": "Paraí", + "uf": "RS" + }, + { + "id": 4314027, + "nome": "Paraíso do Sul", + "uf": "RS" + }, + { + "id": 4314035, + "nome": "Pareci Novo", + "uf": "RS" + }, + { + "id": 4314050, + "nome": "Parobé", + "uf": "RS" + }, + { + "id": 4314068, + "nome": "Passa Sete", + "uf": "RS" + }, + { + "id": 4314100, + "nome": "Passo Fundo", + "uf": "RS" + }, + { + "id": 4314076, + "nome": "Passo do Sobrado", + "uf": "RS" + }, + { + "id": 4314134, + "nome": "Paulo Bento", + "uf": "RS" + }, + { + "id": 4314159, + "nome": "Paverama", + "uf": "RS" + }, + { + "id": 4314175, + "nome": "Pedras Altas", + "uf": "RS" + }, + { + "id": 4314209, + "nome": "Pedro Osório", + "uf": "RS" + }, + { + "id": 4314308, + "nome": "Pejuçara", + "uf": "RS" + }, + { + "id": 4314407, + "nome": "Pelotas", + "uf": "RS" + }, + { + "id": 4314423, + "nome": "Picada Café", + "uf": "RS" + }, + { + "id": 4314456, + "nome": "Pinhal", + "uf": "RS" + }, + { + "id": 4314472, + "nome": "Pinhal Grande", + "uf": "RS" + }, + { + "id": 4314464, + "nome": "Pinhal da Serra", + "uf": "RS" + }, + { + "id": 4314498, + "nome": "Pinheirinho do Vale", + "uf": "RS" + }, + { + "id": 4314506, + "nome": "Pinheiro Machado", + "uf": "RS" + }, + { + "id": 4314548, + "nome": "Pinto Bandeira", + "uf": "RS" + }, + { + "id": 4314555, + "nome": "Pirapó", + "uf": "RS" + }, + { + "id": 4314605, + "nome": "Piratini", + "uf": "RS" + }, + { + "id": 4314704, + "nome": "Planalto", + "uf": "RS" + }, + { + "id": 4314787, + "nome": "Ponte Preta", + "uf": "RS" + }, + { + "id": 4314779, + "nome": "Pontão", + "uf": "RS" + }, + { + "id": 4314902, + "nome": "Porto Alegre", + "uf": "RS" + }, + { + "id": 4315008, + "nome": "Porto Lucena", + "uf": "RS" + }, + { + "id": 4315057, + "nome": "Porto Mauá", + "uf": "RS" + }, + { + "id": 4315073, + "nome": "Porto Vera Cruz", + "uf": "RS" + }, + { + "id": 4315107, + "nome": "Porto Xavier", + "uf": "RS" + }, + { + "id": 4314803, + "nome": "Portão", + "uf": "RS" + }, + { + "id": 4315131, + "nome": "Pouso Novo", + "uf": "RS" + }, + { + "id": 4314753, + "nome": "Poço das Antas", + "uf": "RS" + }, + { + "id": 4315149, + "nome": "Presidente Lucena", + "uf": "RS" + }, + { + "id": 4315156, + "nome": "Progresso", + "uf": "RS" + }, + { + "id": 4315172, + "nome": "Protásio Alves", + "uf": "RS" + }, + { + "id": 4315206, + "nome": "Putinga", + "uf": "RS" + }, + { + "id": 4315305, + "nome": "Quaraí", + "uf": "RS" + }, + { + "id": 4315313, + "nome": "Quatro Irmãos", + "uf": "RS" + }, + { + "id": 4315321, + "nome": "Quevedos", + "uf": "RS" + }, + { + "id": 4315354, + "nome": "Quinze de Novembro", + "uf": "RS" + }, + { + "id": 4315404, + "nome": "Redentora", + "uf": "RS" + }, + { + "id": 4315453, + "nome": "Relvado", + "uf": "RS" + }, + { + "id": 4315503, + "nome": "Restinga Sêca", + "uf": "RS" + }, + { + "id": 4315602, + "nome": "Rio Grande", + "uf": "RS" + }, + { + "id": 4315701, + "nome": "Rio Pardo", + "uf": "RS" + }, + { + "id": 4315552, + "nome": "Rio dos Índios", + "uf": "RS" + }, + { + "id": 4315750, + "nome": "Riozinho", + "uf": "RS" + }, + { + "id": 4315800, + "nome": "Roca Sales", + "uf": "RS" + }, + { + "id": 4315909, + "nome": "Rodeio Bonito", + "uf": "RS" + }, + { + "id": 4315958, + "nome": "Rolador", + "uf": "RS" + }, + { + "id": 4316006, + "nome": "Rolante", + "uf": "RS" + }, + { + "id": 4316105, + "nome": "Ronda Alta", + "uf": "RS" + }, + { + "id": 4316204, + "nome": "Rondinha", + "uf": "RS" + }, + { + "id": 4316303, + "nome": "Roque Gonzales", + "uf": "RS" + }, + { + "id": 4316402, + "nome": "Rosário do Sul", + "uf": "RS" + }, + { + "id": 4316428, + "nome": "Sagrada Família", + "uf": "RS" + }, + { + "id": 4316436, + "nome": "Saldanha Marinho", + "uf": "RS" + }, + { + "id": 4316451, + "nome": "Salto do Jacuí", + "uf": "RS" + }, + { + "id": 4316477, + "nome": "Salvador das Missões", + "uf": "RS" + }, + { + "id": 4316501, + "nome": "Salvador do Sul", + "uf": "RS" + }, + { + "id": 4316600, + "nome": "Sananduva", + "uf": "RS" + }, + { + "id": 4317103, + "nome": "Sant'Ana do Livramento", + "uf": "RS" + }, + { + "id": 4316709, + "nome": "Santa Bárbara do Sul", + "uf": "RS" + }, + { + "id": 4316733, + "nome": "Santa Cecília do Sul", + "uf": "RS" + }, + { + "id": 4316758, + "nome": "Santa Clara do Sul", + "uf": "RS" + }, + { + "id": 4316808, + "nome": "Santa Cruz do Sul", + "uf": "RS" + }, + { + "id": 4316972, + "nome": "Santa Margarida do Sul", + "uf": "RS" + }, + { + "id": 4316907, + "nome": "Santa Maria", + "uf": "RS" + }, + { + "id": 4316956, + "nome": "Santa Maria do Herval", + "uf": "RS" + }, + { + "id": 4317202, + "nome": "Santa Rosa", + "uf": "RS" + }, + { + "id": 4317251, + "nome": "Santa Tereza", + "uf": "RS" + }, + { + "id": 4317301, + "nome": "Santa Vitória do Palmar", + "uf": "RS" + }, + { + "id": 4317004, + "nome": "Santana da Boa Vista", + "uf": "RS" + }, + { + "id": 4317400, + "nome": "Santiago", + "uf": "RS" + }, + { + "id": 4317608, + "nome": "Santo Antônio da Patrulha", + "uf": "RS" + }, + { + "id": 4317707, + "nome": "Santo Antônio das Missões", + "uf": "RS" + }, + { + "id": 4317558, + "nome": "Santo Antônio do Palma", + "uf": "RS" + }, + { + "id": 4317756, + "nome": "Santo Antônio do Planalto", + "uf": "RS" + }, + { + "id": 4317806, + "nome": "Santo Augusto", + "uf": "RS" + }, + { + "id": 4317905, + "nome": "Santo Cristo", + "uf": "RS" + }, + { + "id": 4317954, + "nome": "Santo Expedito do Sul", + "uf": "RS" + }, + { + "id": 4317509, + "nome": "Santo Ângelo", + "uf": "RS" + }, + { + "id": 4319901, + "nome": "Sapiranga", + "uf": "RS" + }, + { + "id": 4320008, + "nome": "Sapucaia do Sul", + "uf": "RS" + }, + { + "id": 4320107, + "nome": "Sarandi", + "uf": "RS" + }, + { + "id": 4320206, + "nome": "Seberi", + "uf": "RS" + }, + { + "id": 4320230, + "nome": "Sede Nova", + "uf": "RS" + }, + { + "id": 4320263, + "nome": "Segredo", + "uf": "RS" + }, + { + "id": 4320305, + "nome": "Selbach", + "uf": "RS" + }, + { + "id": 4320321, + "nome": "Senador Salgado Filho", + "uf": "RS" + }, + { + "id": 4320354, + "nome": "Sentinela do Sul", + "uf": "RS" + }, + { + "id": 4320404, + "nome": "Serafina Corrêa", + "uf": "RS" + }, + { + "id": 4320503, + "nome": "Sertão", + "uf": "RS" + }, + { + "id": 4320552, + "nome": "Sertão Santana", + "uf": "RS" + }, + { + "id": 4320578, + "nome": "Sete de Setembro", + "uf": "RS" + }, + { + "id": 4320602, + "nome": "Severiano de Almeida", + "uf": "RS" + }, + { + "id": 4320651, + "nome": "Silveira Martins", + "uf": "RS" + }, + { + "id": 4320677, + "nome": "Sinimbu", + "uf": "RS" + }, + { + "id": 4320701, + "nome": "Sobradinho", + "uf": "RS" + }, + { + "id": 4320800, + "nome": "Soledade", + "uf": "RS" + }, + { + "id": 4318002, + "nome": "São Borja", + "uf": "RS" + }, + { + "id": 4318051, + "nome": "São Domingos do Sul", + "uf": "RS" + }, + { + "id": 4318101, + "nome": "São Francisco de Assis", + "uf": "RS" + }, + { + "id": 4318200, + "nome": "São Francisco de Paula", + "uf": "RS" + }, + { + "id": 4318309, + "nome": "São Gabriel", + "uf": "RS" + }, + { + "id": 4318408, + "nome": "São Jerônimo", + "uf": "RS" + }, + { + "id": 4318440, + "nome": "São Jorge", + "uf": "RS" + }, + { + "id": 4318457, + "nome": "São José das Missões", + "uf": "RS" + }, + { + "id": 4318465, + "nome": "São José do Herval", + "uf": "RS" + }, + { + "id": 4318481, + "nome": "São José do Hortêncio", + "uf": "RS" + }, + { + "id": 4318499, + "nome": "São José do Inhacorá", + "uf": "RS" + }, + { + "id": 4318507, + "nome": "São José do Norte", + "uf": "RS" + }, + { + "id": 4318606, + "nome": "São José do Ouro", + "uf": "RS" + }, + { + "id": 4318614, + "nome": "São José do Sul", + "uf": "RS" + }, + { + "id": 4318622, + "nome": "São José dos Ausentes", + "uf": "RS" + }, + { + "id": 4318424, + "nome": "São João da Urtiga", + "uf": "RS" + }, + { + "id": 4318432, + "nome": "São João do Polêsine", + "uf": "RS" + }, + { + "id": 4318705, + "nome": "São Leopoldo", + "uf": "RS" + }, + { + "id": 4318804, + "nome": "São Lourenço do Sul", + "uf": "RS" + }, + { + "id": 4318903, + "nome": "São Luiz Gonzaga", + "uf": "RS" + }, + { + "id": 4319000, + "nome": "São Marcos", + "uf": "RS" + }, + { + "id": 4319109, + "nome": "São Martinho", + "uf": "RS" + }, + { + "id": 4319125, + "nome": "São Martinho da Serra", + "uf": "RS" + }, + { + "id": 4319158, + "nome": "São Miguel das Missões", + "uf": "RS" + }, + { + "id": 4319208, + "nome": "São Nicolau", + "uf": "RS" + }, + { + "id": 4319307, + "nome": "São Paulo das Missões", + "uf": "RS" + }, + { + "id": 4319356, + "nome": "São Pedro da Serra", + "uf": "RS" + }, + { + "id": 4319364, + "nome": "São Pedro das Missões", + "uf": "RS" + }, + { + "id": 4319372, + "nome": "São Pedro do Butiá", + "uf": "RS" + }, + { + "id": 4319406, + "nome": "São Pedro do Sul", + "uf": "RS" + }, + { + "id": 4319505, + "nome": "São Sebastião do Caí", + "uf": "RS" + }, + { + "id": 4319604, + "nome": "São Sepé", + "uf": "RS" + }, + { + "id": 4319703, + "nome": "São Valentim", + "uf": "RS" + }, + { + "id": 4319711, + "nome": "São Valentim do Sul", + "uf": "RS" + }, + { + "id": 4319737, + "nome": "São Valério do Sul", + "uf": "RS" + }, + { + "id": 4319752, + "nome": "São Vendelino", + "uf": "RS" + }, + { + "id": 4319802, + "nome": "São Vicente do Sul", + "uf": "RS" + }, + { + "id": 4320453, + "nome": "Sério", + "uf": "RS" + }, + { + "id": 4320859, + "nome": "Tabaí", + "uf": "RS" + }, + { + "id": 4320909, + "nome": "Tapejara", + "uf": "RS" + }, + { + "id": 4321006, + "nome": "Tapera", + "uf": "RS" + }, + { + "id": 4321105, + "nome": "Tapes", + "uf": "RS" + }, + { + "id": 4321204, + "nome": "Taquara", + "uf": "RS" + }, + { + "id": 4321303, + "nome": "Taquari", + "uf": "RS" + }, + { + "id": 4321329, + "nome": "Taquaruçu do Sul", + "uf": "RS" + }, + { + "id": 4321352, + "nome": "Tavares", + "uf": "RS" + }, + { + "id": 4321402, + "nome": "Tenente Portela", + "uf": "RS" + }, + { + "id": 4321436, + "nome": "Terra de Areia", + "uf": "RS" + }, + { + "id": 4321451, + "nome": "Teutônia", + "uf": "RS" + }, + { + "id": 4321469, + "nome": "Tio Hugo", + "uf": "RS" + }, + { + "id": 4321477, + "nome": "Tiradentes do Sul", + "uf": "RS" + }, + { + "id": 4321493, + "nome": "Toropi", + "uf": "RS" + }, + { + "id": 4321501, + "nome": "Torres", + "uf": "RS" + }, + { + "id": 4321600, + "nome": "Tramandaí", + "uf": "RS" + }, + { + "id": 4321626, + "nome": "Travesseiro", + "uf": "RS" + }, + { + "id": 4321956, + "nome": "Trindade do Sul", + "uf": "RS" + }, + { + "id": 4322004, + "nome": "Triunfo", + "uf": "RS" + }, + { + "id": 4321634, + "nome": "Três Arroios", + "uf": "RS" + }, + { + "id": 4321667, + "nome": "Três Cachoeiras", + "uf": "RS" + }, + { + "id": 4321709, + "nome": "Três Coroas", + "uf": "RS" + }, + { + "id": 4321832, + "nome": "Três Forquilhas", + "uf": "RS" + }, + { + "id": 4321857, + "nome": "Três Palmeiras", + "uf": "RS" + }, + { + "id": 4321907, + "nome": "Três Passos", + "uf": "RS" + }, + { + "id": 4321808, + "nome": "Três de Maio", + "uf": "RS" + }, + { + "id": 4322103, + "nome": "Tucunduva", + "uf": "RS" + }, + { + "id": 4322152, + "nome": "Tunas", + "uf": "RS" + }, + { + "id": 4322186, + "nome": "Tupanci do Sul", + "uf": "RS" + }, + { + "id": 4322202, + "nome": "Tupanciretã", + "uf": "RS" + }, + { + "id": 4322251, + "nome": "Tupandi", + "uf": "RS" + }, + { + "id": 4322301, + "nome": "Tuparendi", + "uf": "RS" + }, + { + "id": 4322327, + "nome": "Turuçu", + "uf": "RS" + }, + { + "id": 4322343, + "nome": "Ubiretama", + "uf": "RS" + }, + { + "id": 4322376, + "nome": "Unistalda", + "uf": "RS" + }, + { + "id": 4322350, + "nome": "União da Serra", + "uf": "RS" + }, + { + "id": 4322400, + "nome": "Uruguaiana", + "uf": "RS" + }, + { + "id": 4322509, + "nome": "Vacaria", + "uf": "RS" + }, + { + "id": 4322541, + "nome": "Vale Real", + "uf": "RS" + }, + { + "id": 4322525, + "nome": "Vale Verde", + "uf": "RS" + }, + { + "id": 4322533, + "nome": "Vale do Sol", + "uf": "RS" + }, + { + "id": 4322558, + "nome": "Vanini", + "uf": "RS" + }, + { + "id": 4322608, + "nome": "Venâncio Aires", + "uf": "RS" + }, + { + "id": 4322707, + "nome": "Vera Cruz", + "uf": "RS" + }, + { + "id": 4322806, + "nome": "Veranópolis", + "uf": "RS" + }, + { + "id": 4322855, + "nome": "Vespasiano Corrêa", + "uf": "RS" + }, + { + "id": 4322905, + "nome": "Viadutos", + "uf": "RS" + }, + { + "id": 4323002, + "nome": "Viamão", + "uf": "RS" + }, + { + "id": 4323101, + "nome": "Vicente Dutra", + "uf": "RS" + }, + { + "id": 4323200, + "nome": "Victor Graeff", + "uf": "RS" + }, + { + "id": 4323309, + "nome": "Vila Flores", + "uf": "RS" + }, + { + "id": 4323358, + "nome": "Vila Lângaro", + "uf": "RS" + }, + { + "id": 4323408, + "nome": "Vila Maria", + "uf": "RS" + }, + { + "id": 4323457, + "nome": "Vila Nova do Sul", + "uf": "RS" + }, + { + "id": 4323507, + "nome": "Vista Alegre", + "uf": "RS" + }, + { + "id": 4323606, + "nome": "Vista Alegre do Prata", + "uf": "RS" + }, + { + "id": 4323705, + "nome": "Vista Gaúcha", + "uf": "RS" + }, + { + "id": 4323754, + "nome": "Vitória das Missões", + "uf": "RS" + }, + { + "id": 4323770, + "nome": "Westfália", + "uf": "RS" + }, + { + "id": 4323804, + "nome": "Xangri-lá", + "uf": "RS" + }, + { + "id": 4300059, + "nome": "Água Santa", + "uf": "RS" + }, + { + "id": 4301552, + "nome": "Áurea", + "uf": "RS" + }, + { + "id": 4200051, + "nome": "Abdon Batista", + "uf": "SC" + }, + { + "id": 4200101, + "nome": "Abelardo Luz", + "uf": "SC" + }, + { + "id": 4200200, + "nome": "Agrolândia", + "uf": "SC" + }, + { + "id": 4200309, + "nome": "Agronômica", + "uf": "SC" + }, + { + "id": 4200705, + "nome": "Alfredo Wagner", + "uf": "SC" + }, + { + "id": 4200754, + "nome": "Alto Bela Vista", + "uf": "SC" + }, + { + "id": 4200804, + "nome": "Anchieta", + "uf": "SC" + }, + { + "id": 4200903, + "nome": "Angelina", + "uf": "SC" + }, + { + "id": 4201000, + "nome": "Anita Garibaldi", + "uf": "SC" + }, + { + "id": 4201109, + "nome": "Anitápolis", + "uf": "SC" + }, + { + "id": 4201208, + "nome": "Antônio Carlos", + "uf": "SC" + }, + { + "id": 4201257, + "nome": "Apiúna", + "uf": "SC" + }, + { + "id": 4201273, + "nome": "Arabutã", + "uf": "SC" + }, + { + "id": 4201307, + "nome": "Araquari", + "uf": "SC" + }, + { + "id": 4201406, + "nome": "Araranguá", + "uf": "SC" + }, + { + "id": 4201505, + "nome": "Armazém", + "uf": "SC" + }, + { + "id": 4201604, + "nome": "Arroio Trinta", + "uf": "SC" + }, + { + "id": 4201653, + "nome": "Arvoredo", + "uf": "SC" + }, + { + "id": 4201703, + "nome": "Ascurra", + "uf": "SC" + }, + { + "id": 4201802, + "nome": "Atalanta", + "uf": "SC" + }, + { + "id": 4201901, + "nome": "Aurora", + "uf": "SC" + }, + { + "id": 4201950, + "nome": "Balneário Arroio do Silva", + "uf": "SC" + }, + { + "id": 4202057, + "nome": "Balneário Barra do Sul", + "uf": "SC" + }, + { + "id": 4202008, + "nome": "Balneário Camboriú", + "uf": "SC" + }, + { + "id": 4202073, + "nome": "Balneário Gaivota", + "uf": "SC" + }, + { + "id": 4212809, + "nome": "Balneário Piçarras", + "uf": "SC" + }, + { + "id": 4220000, + "nome": "Balneário Rincão", + "uf": "SC" + }, + { + "id": 4202081, + "nome": "Bandeirante", + "uf": "SC" + }, + { + "id": 4202099, + "nome": "Barra Bonita", + "uf": "SC" + }, + { + "id": 4202107, + "nome": "Barra Velha", + "uf": "SC" + }, + { + "id": 4202131, + "nome": "Bela Vista do Toldo", + "uf": "SC" + }, + { + "id": 4202156, + "nome": "Belmonte", + "uf": "SC" + }, + { + "id": 4202206, + "nome": "Benedito Novo", + "uf": "SC" + }, + { + "id": 4202305, + "nome": "Biguaçu", + "uf": "SC" + }, + { + "id": 4202404, + "nome": "Blumenau", + "uf": "SC" + }, + { + "id": 4202438, + "nome": "Bocaina do Sul", + "uf": "SC" + }, + { + "id": 4202503, + "nome": "Bom Jardim da Serra", + "uf": "SC" + }, + { + "id": 4202537, + "nome": "Bom Jesus", + "uf": "SC" + }, + { + "id": 4202578, + "nome": "Bom Jesus do Oeste", + "uf": "SC" + }, + { + "id": 4202602, + "nome": "Bom Retiro", + "uf": "SC" + }, + { + "id": 4202453, + "nome": "Bombinhas", + "uf": "SC" + }, + { + "id": 4202701, + "nome": "Botuverá", + "uf": "SC" + }, + { + "id": 4202800, + "nome": "Braço do Norte", + "uf": "SC" + }, + { + "id": 4202859, + "nome": "Braço do Trombudo", + "uf": "SC" + }, + { + "id": 4202875, + "nome": "Brunópolis", + "uf": "SC" + }, + { + "id": 4202909, + "nome": "Brusque", + "uf": "SC" + }, + { + "id": 4203105, + "nome": "Caibi", + "uf": "SC" + }, + { + "id": 4203154, + "nome": "Calmon", + "uf": "SC" + }, + { + "id": 4203204, + "nome": "Camboriú", + "uf": "SC" + }, + { + "id": 4203303, + "nome": "Campo Alegre", + "uf": "SC" + }, + { + "id": 4203402, + "nome": "Campo Belo do Sul", + "uf": "SC" + }, + { + "id": 4203501, + "nome": "Campo Erê", + "uf": "SC" + }, + { + "id": 4203600, + "nome": "Campos Novos", + "uf": "SC" + }, + { + "id": 4203709, + "nome": "Canelinha", + "uf": "SC" + }, + { + "id": 4203808, + "nome": "Canoinhas", + "uf": "SC" + }, + { + "id": 4203907, + "nome": "Capinzal", + "uf": "SC" + }, + { + "id": 4203956, + "nome": "Capivari de Baixo", + "uf": "SC" + }, + { + "id": 4203253, + "nome": "Capão Alto", + "uf": "SC" + }, + { + "id": 4204004, + "nome": "Catanduvas", + "uf": "SC" + }, + { + "id": 4204103, + "nome": "Caxambu do Sul", + "uf": "SC" + }, + { + "id": 4203006, + "nome": "Caçador", + "uf": "SC" + }, + { + "id": 4204152, + "nome": "Celso Ramos", + "uf": "SC" + }, + { + "id": 4204178, + "nome": "Cerro Negro", + "uf": "SC" + }, + { + "id": 4204194, + "nome": "Chapadão do Lageado", + "uf": "SC" + }, + { + "id": 4204202, + "nome": "Chapecó", + "uf": "SC" + }, + { + "id": 4204251, + "nome": "Cocal do Sul", + "uf": "SC" + }, + { + "id": 4204301, + "nome": "Concórdia", + "uf": "SC" + }, + { + "id": 4204350, + "nome": "Cordilheira Alta", + "uf": "SC" + }, + { + "id": 4204400, + "nome": "Coronel Freitas", + "uf": "SC" + }, + { + "id": 4204459, + "nome": "Coronel Martins", + "uf": "SC" + }, + { + "id": 4204558, + "nome": "Correia Pinto", + "uf": "SC" + }, + { + "id": 4204509, + "nome": "Corupá", + "uf": "SC" + }, + { + "id": 4204608, + "nome": "Criciúma", + "uf": "SC" + }, + { + "id": 4204707, + "nome": "Cunha Porã", + "uf": "SC" + }, + { + "id": 4204756, + "nome": "Cunhataí", + "uf": "SC" + }, + { + "id": 4204806, + "nome": "Curitibanos", + "uf": "SC" + }, + { + "id": 4204905, + "nome": "Descanso", + "uf": "SC" + }, + { + "id": 4205001, + "nome": "Dionísio Cerqueira", + "uf": "SC" + }, + { + "id": 4205100, + "nome": "Dona Emma", + "uf": "SC" + }, + { + "id": 4205159, + "nome": "Doutor Pedrinho", + "uf": "SC" + }, + { + "id": 4205175, + "nome": "Entre Rios", + "uf": "SC" + }, + { + "id": 4205191, + "nome": "Ermo", + "uf": "SC" + }, + { + "id": 4205209, + "nome": "Erval Velho", + "uf": "SC" + }, + { + "id": 4205308, + "nome": "Faxinal dos Guedes", + "uf": "SC" + }, + { + "id": 4205357, + "nome": "Flor do Sertão", + "uf": "SC" + }, + { + "id": 4205407, + "nome": "Florianópolis", + "uf": "SC" + }, + { + "id": 4205431, + "nome": "Formosa do Sul", + "uf": "SC" + }, + { + "id": 4205456, + "nome": "Forquilhinha", + "uf": "SC" + }, + { + "id": 4205506, + "nome": "Fraiburgo", + "uf": "SC" + }, + { + "id": 4205555, + "nome": "Frei Rogério", + "uf": "SC" + }, + { + "id": 4205605, + "nome": "Galvão", + "uf": "SC" + }, + { + "id": 4205704, + "nome": "Garopaba", + "uf": "SC" + }, + { + "id": 4205803, + "nome": "Garuva", + "uf": "SC" + }, + { + "id": 4205902, + "nome": "Gaspar", + "uf": "SC" + }, + { + "id": 4206009, + "nome": "Governador Celso Ramos", + "uf": "SC" + }, + { + "id": 4206207, + "nome": "Gravatal", + "uf": "SC" + }, + { + "id": 4206108, + "nome": "Grão-Pará", + "uf": "SC" + }, + { + "id": 4206306, + "nome": "Guabiruba", + "uf": "SC" + }, + { + "id": 4206405, + "nome": "Guaraciaba", + "uf": "SC" + }, + { + "id": 4206504, + "nome": "Guaramirim", + "uf": "SC" + }, + { + "id": 4206603, + "nome": "Guarujá do Sul", + "uf": "SC" + }, + { + "id": 4206652, + "nome": "Guatambú", + "uf": "SC" + }, + { + "id": 4206702, + "nome": "Herval d'Oeste", + "uf": "SC" + }, + { + "id": 4206751, + "nome": "Ibiam", + "uf": "SC" + }, + { + "id": 4206801, + "nome": "Ibicaré", + "uf": "SC" + }, + { + "id": 4206900, + "nome": "Ibirama", + "uf": "SC" + }, + { + "id": 4207106, + "nome": "Ilhota", + "uf": "SC" + }, + { + "id": 4207205, + "nome": "Imaruí", + "uf": "SC" + }, + { + "id": 4207304, + "nome": "Imbituba", + "uf": "SC" + }, + { + "id": 4207403, + "nome": "Imbuia", + "uf": "SC" + }, + { + "id": 4207502, + "nome": "Indaial", + "uf": "SC" + }, + { + "id": 4207577, + "nome": "Iomerê", + "uf": "SC" + }, + { + "id": 4207601, + "nome": "Ipira", + "uf": "SC" + }, + { + "id": 4207650, + "nome": "Iporã do Oeste", + "uf": "SC" + }, + { + "id": 4207684, + "nome": "Ipuaçu", + "uf": "SC" + }, + { + "id": 4207700, + "nome": "Ipumirim", + "uf": "SC" + }, + { + "id": 4207759, + "nome": "Iraceminha", + "uf": "SC" + }, + { + "id": 4207809, + "nome": "Irani", + "uf": "SC" + }, + { + "id": 4207858, + "nome": "Irati", + "uf": "SC" + }, + { + "id": 4207908, + "nome": "Irineópolis", + "uf": "SC" + }, + { + "id": 4208104, + "nome": "Itaiópolis", + "uf": "SC" + }, + { + "id": 4208203, + "nome": "Itajaí", + "uf": "SC" + }, + { + "id": 4208302, + "nome": "Itapema", + "uf": "SC" + }, + { + "id": 4208401, + "nome": "Itapiranga", + "uf": "SC" + }, + { + "id": 4208450, + "nome": "Itapoá", + "uf": "SC" + }, + { + "id": 4208500, + "nome": "Ituporanga", + "uf": "SC" + }, + { + "id": 4208005, + "nome": "Itá", + "uf": "SC" + }, + { + "id": 4207007, + "nome": "Içara", + "uf": "SC" + }, + { + "id": 4208609, + "nome": "Jaborá", + "uf": "SC" + }, + { + "id": 4208708, + "nome": "Jacinto Machado", + "uf": "SC" + }, + { + "id": 4208807, + "nome": "Jaguaruna", + "uf": "SC" + }, + { + "id": 4208906, + "nome": "Jaraguá do Sul", + "uf": "SC" + }, + { + "id": 4208955, + "nome": "Jardinópolis", + "uf": "SC" + }, + { + "id": 4209003, + "nome": "Joaçaba", + "uf": "SC" + }, + { + "id": 4209102, + "nome": "Joinville", + "uf": "SC" + }, + { + "id": 4209151, + "nome": "José Boiteux", + "uf": "SC" + }, + { + "id": 4209177, + "nome": "Jupiá", + "uf": "SC" + }, + { + "id": 4209201, + "nome": "Lacerdópolis", + "uf": "SC" + }, + { + "id": 4209300, + "nome": "Lages", + "uf": "SC" + }, + { + "id": 4209409, + "nome": "Laguna", + "uf": "SC" + }, + { + "id": 4209458, + "nome": "Lajeado Grande", + "uf": "SC" + }, + { + "id": 4209508, + "nome": "Laurentino", + "uf": "SC" + }, + { + "id": 4209607, + "nome": "Lauro Müller", + "uf": "SC" + }, + { + "id": 4209706, + "nome": "Lebon Régis", + "uf": "SC" + }, + { + "id": 4209805, + "nome": "Leoberto Leal", + "uf": "SC" + }, + { + "id": 4209854, + "nome": "Lindóia do Sul", + "uf": "SC" + }, + { + "id": 4209904, + "nome": "Lontras", + "uf": "SC" + }, + { + "id": 4210001, + "nome": "Luiz Alves", + "uf": "SC" + }, + { + "id": 4210035, + "nome": "Luzerna", + "uf": "SC" + }, + { + "id": 4210050, + "nome": "Macieira", + "uf": "SC" + }, + { + "id": 4210100, + "nome": "Mafra", + "uf": "SC" + }, + { + "id": 4210209, + "nome": "Major Gercino", + "uf": "SC" + }, + { + "id": 4210308, + "nome": "Major Vieira", + "uf": "SC" + }, + { + "id": 4210407, + "nome": "Maracajá", + "uf": "SC" + }, + { + "id": 4210506, + "nome": "Maravilha", + "uf": "SC" + }, + { + "id": 4210555, + "nome": "Marema", + "uf": "SC" + }, + { + "id": 4210605, + "nome": "Massaranduba", + "uf": "SC" + }, + { + "id": 4210704, + "nome": "Matos Costa", + "uf": "SC" + }, + { + "id": 4210803, + "nome": "Meleiro", + "uf": "SC" + }, + { + "id": 4210852, + "nome": "Mirim Doce", + "uf": "SC" + }, + { + "id": 4210902, + "nome": "Modelo", + "uf": "SC" + }, + { + "id": 4211009, + "nome": "Mondaí", + "uf": "SC" + }, + { + "id": 4211058, + "nome": "Monte Carlo", + "uf": "SC" + }, + { + "id": 4211108, + "nome": "Monte Castelo", + "uf": "SC" + }, + { + "id": 4211256, + "nome": "Morro Grande", + "uf": "SC" + }, + { + "id": 4211207, + "nome": "Morro da Fumaça", + "uf": "SC" + }, + { + "id": 4211306, + "nome": "Navegantes", + "uf": "SC" + }, + { + "id": 4211405, + "nome": "Nova Erechim", + "uf": "SC" + }, + { + "id": 4211454, + "nome": "Nova Itaberaba", + "uf": "SC" + }, + { + "id": 4211504, + "nome": "Nova Trento", + "uf": "SC" + }, + { + "id": 4211603, + "nome": "Nova Veneza", + "uf": "SC" + }, + { + "id": 4211652, + "nome": "Novo Horizonte", + "uf": "SC" + }, + { + "id": 4211702, + "nome": "Orleans", + "uf": "SC" + }, + { + "id": 4211751, + "nome": "Otacílio Costa", + "uf": "SC" + }, + { + "id": 4211801, + "nome": "Ouro", + "uf": "SC" + }, + { + "id": 4211850, + "nome": "Ouro Verde", + "uf": "SC" + }, + { + "id": 4211876, + "nome": "Paial", + "uf": "SC" + }, + { + "id": 4211892, + "nome": "Painel", + "uf": "SC" + }, + { + "id": 4211900, + "nome": "Palhoça", + "uf": "SC" + }, + { + "id": 4212007, + "nome": "Palma Sola", + "uf": "SC" + }, + { + "id": 4212056, + "nome": "Palmeira", + "uf": "SC" + }, + { + "id": 4212106, + "nome": "Palmitos", + "uf": "SC" + }, + { + "id": 4212205, + "nome": "Papanduva", + "uf": "SC" + }, + { + "id": 4212239, + "nome": "Paraíso", + "uf": "SC" + }, + { + "id": 4212254, + "nome": "Passo de Torres", + "uf": "SC" + }, + { + "id": 4212270, + "nome": "Passos Maia", + "uf": "SC" + }, + { + "id": 4212304, + "nome": "Paulo Lopes", + "uf": "SC" + }, + { + "id": 4212403, + "nome": "Pedras Grandes", + "uf": "SC" + }, + { + "id": 4212502, + "nome": "Penha", + "uf": "SC" + }, + { + "id": 4212601, + "nome": "Peritiba", + "uf": "SC" + }, + { + "id": 4212650, + "nome": "Pescaria Brava", + "uf": "SC" + }, + { + "id": 4212700, + "nome": "Petrolândia", + "uf": "SC" + }, + { + "id": 4212908, + "nome": "Pinhalzinho", + "uf": "SC" + }, + { + "id": 4213005, + "nome": "Pinheiro Preto", + "uf": "SC" + }, + { + "id": 4213104, + "nome": "Piratuba", + "uf": "SC" + }, + { + "id": 4213153, + "nome": "Planalto Alegre", + "uf": "SC" + }, + { + "id": 4213203, + "nome": "Pomerode", + "uf": "SC" + }, + { + "id": 4213302, + "nome": "Ponte Alta", + "uf": "SC" + }, + { + "id": 4213351, + "nome": "Ponte Alta do Norte", + "uf": "SC" + }, + { + "id": 4213401, + "nome": "Ponte Serrada", + "uf": "SC" + }, + { + "id": 4213500, + "nome": "Porto Belo", + "uf": "SC" + }, + { + "id": 4213609, + "nome": "Porto União", + "uf": "SC" + }, + { + "id": 4213708, + "nome": "Pouso Redondo", + "uf": "SC" + }, + { + "id": 4213807, + "nome": "Praia Grande", + "uf": "SC" + }, + { + "id": 4213906, + "nome": "Presidente Castello Branco", + "uf": "SC" + }, + { + "id": 4214003, + "nome": "Presidente Getúlio", + "uf": "SC" + }, + { + "id": 4214102, + "nome": "Presidente Nereu", + "uf": "SC" + }, + { + "id": 4214151, + "nome": "Princesa", + "uf": "SC" + }, + { + "id": 4214201, + "nome": "Quilombo", + "uf": "SC" + }, + { + "id": 4214300, + "nome": "Rancho Queimado", + "uf": "SC" + }, + { + "id": 4214904, + "nome": "Rio Fortuna", + "uf": "SC" + }, + { + "id": 4215000, + "nome": "Rio Negrinho", + "uf": "SC" + }, + { + "id": 4215059, + "nome": "Rio Rufino", + "uf": "SC" + }, + { + "id": 4214409, + "nome": "Rio das Antas", + "uf": "SC" + }, + { + "id": 4214508, + "nome": "Rio do Campo", + "uf": "SC" + }, + { + "id": 4214607, + "nome": "Rio do Oeste", + "uf": "SC" + }, + { + "id": 4214805, + "nome": "Rio do Sul", + "uf": "SC" + }, + { + "id": 4214706, + "nome": "Rio dos Cedros", + "uf": "SC" + }, + { + "id": 4215075, + "nome": "Riqueza", + "uf": "SC" + }, + { + "id": 4215109, + "nome": "Rodeio", + "uf": "SC" + }, + { + "id": 4215208, + "nome": "Romelândia", + "uf": "SC" + }, + { + "id": 4215307, + "nome": "Salete", + "uf": "SC" + }, + { + "id": 4215356, + "nome": "Saltinho", + "uf": "SC" + }, + { + "id": 4215406, + "nome": "Salto Veloso", + "uf": "SC" + }, + { + "id": 4215455, + "nome": "Sangão", + "uf": "SC" + }, + { + "id": 4215505, + "nome": "Santa Cecília", + "uf": "SC" + }, + { + "id": 4215554, + "nome": "Santa Helena", + "uf": "SC" + }, + { + "id": 4215604, + "nome": "Santa Rosa de Lima", + "uf": "SC" + }, + { + "id": 4215653, + "nome": "Santa Rosa do Sul", + "uf": "SC" + }, + { + "id": 4215679, + "nome": "Santa Terezinha", + "uf": "SC" + }, + { + "id": 4215687, + "nome": "Santa Terezinha do Progresso", + "uf": "SC" + }, + { + "id": 4215695, + "nome": "Santiago do Sul", + "uf": "SC" + }, + { + "id": 4215703, + "nome": "Santo Amaro da Imperatriz", + "uf": "SC" + }, + { + "id": 4217303, + "nome": "Saudades", + "uf": "SC" + }, + { + "id": 4217402, + "nome": "Schroeder", + "uf": "SC" + }, + { + "id": 4217501, + "nome": "Seara", + "uf": "SC" + }, + { + "id": 4217550, + "nome": "Serra Alta", + "uf": "SC" + }, + { + "id": 4217600, + "nome": "Siderópolis", + "uf": "SC" + }, + { + "id": 4217709, + "nome": "Sombrio", + "uf": "SC" + }, + { + "id": 4217758, + "nome": "Sul Brasil", + "uf": "SC" + }, + { + "id": 4215802, + "nome": "São Bento do Sul", + "uf": "SC" + }, + { + "id": 4215752, + "nome": "São Bernardino", + "uf": "SC" + }, + { + "id": 4215901, + "nome": "São Bonifácio", + "uf": "SC" + }, + { + "id": 4216008, + "nome": "São Carlos", + "uf": "SC" + }, + { + "id": 4216057, + "nome": "São Cristóvão do Sul", + "uf": "SC" + }, + { + "id": 4216107, + "nome": "São Domingos", + "uf": "SC" + }, + { + "id": 4216206, + "nome": "São Francisco do Sul", + "uf": "SC" + }, + { + "id": 4216503, + "nome": "São Joaquim", + "uf": "SC" + }, + { + "id": 4216602, + "nome": "São José", + "uf": "SC" + }, + { + "id": 4216701, + "nome": "São José do Cedro", + "uf": "SC" + }, + { + "id": 4216800, + "nome": "São José do Cerrito", + "uf": "SC" + }, + { + "id": 4216305, + "nome": "São João Batista", + "uf": "SC" + }, + { + "id": 4216354, + "nome": "São João do Itaperiú", + "uf": "SC" + }, + { + "id": 4216255, + "nome": "São João do Oeste", + "uf": "SC" + }, + { + "id": 4216404, + "nome": "São João do Sul", + "uf": "SC" + }, + { + "id": 4216909, + "nome": "São Lourenço do Oeste", + "uf": "SC" + }, + { + "id": 4217006, + "nome": "São Ludgero", + "uf": "SC" + }, + { + "id": 4217105, + "nome": "São Martinho", + "uf": "SC" + }, + { + "id": 4217154, + "nome": "São Miguel da Boa Vista", + "uf": "SC" + }, + { + "id": 4217204, + "nome": "São Miguel do Oeste", + "uf": "SC" + }, + { + "id": 4217253, + "nome": "São Pedro de Alcântara", + "uf": "SC" + }, + { + "id": 4217808, + "nome": "Taió", + "uf": "SC" + }, + { + "id": 4217907, + "nome": "Tangará", + "uf": "SC" + }, + { + "id": 4217956, + "nome": "Tigrinhos", + "uf": "SC" + }, + { + "id": 4218004, + "nome": "Tijucas", + "uf": "SC" + }, + { + "id": 4218103, + "nome": "Timbé do Sul", + "uf": "SC" + }, + { + "id": 4218202, + "nome": "Timbó", + "uf": "SC" + }, + { + "id": 4218251, + "nome": "Timbó Grande", + "uf": "SC" + }, + { + "id": 4218350, + "nome": "Treviso", + "uf": "SC" + }, + { + "id": 4218509, + "nome": "Treze Tílias", + "uf": "SC" + }, + { + "id": 4218400, + "nome": "Treze de Maio", + "uf": "SC" + }, + { + "id": 4218608, + "nome": "Trombudo Central", + "uf": "SC" + }, + { + "id": 4218301, + "nome": "Três Barras", + "uf": "SC" + }, + { + "id": 4218707, + "nome": "Tubarão", + "uf": "SC" + }, + { + "id": 4218756, + "nome": "Tunápolis", + "uf": "SC" + }, + { + "id": 4218806, + "nome": "Turvo", + "uf": "SC" + }, + { + "id": 4218855, + "nome": "União do Oeste", + "uf": "SC" + }, + { + "id": 4218905, + "nome": "Urubici", + "uf": "SC" + }, + { + "id": 4218954, + "nome": "Urupema", + "uf": "SC" + }, + { + "id": 4219002, + "nome": "Urussanga", + "uf": "SC" + }, + { + "id": 4219150, + "nome": "Vargem", + "uf": "SC" + }, + { + "id": 4219176, + "nome": "Vargem Bonita", + "uf": "SC" + }, + { + "id": 4219101, + "nome": "Vargeão", + "uf": "SC" + }, + { + "id": 4219200, + "nome": "Vidal Ramos", + "uf": "SC" + }, + { + "id": 4219309, + "nome": "Videira", + "uf": "SC" + }, + { + "id": 4219358, + "nome": "Vitor Meireles", + "uf": "SC" + }, + { + "id": 4219408, + "nome": "Witmarsum", + "uf": "SC" + }, + { + "id": 4219507, + "nome": "Xanxerê", + "uf": "SC" + }, + { + "id": 4219606, + "nome": "Xavantina", + "uf": "SC" + }, + { + "id": 4219705, + "nome": "Xaxim", + "uf": "SC" + }, + { + "id": 4219853, + "nome": "Zortéa", + "uf": "SC" + }, + { + "id": 4200408, + "nome": "Água Doce", + "uf": "SC" + }, + { + "id": 4200556, + "nome": "Águas Frias", + "uf": "SC" + }, + { + "id": 4200606, + "nome": "Águas Mornas", + "uf": "SC" + }, + { + "id": 4200507, + "nome": "Águas de Chapecó", + "uf": "SC" + }, + { + "id": 2800100, + "nome": "Amparo do São Francisco", + "uf": "SE" + }, + { + "id": 2800209, + "nome": "Aquidabã", + "uf": "SE" + }, + { + "id": 2800308, + "nome": "Aracaju", + "uf": "SE" + }, + { + "id": 2800407, + "nome": "Arauá", + "uf": "SE" + }, + { + "id": 2800506, + "nome": "Areia Branca", + "uf": "SE" + }, + { + "id": 2800605, + "nome": "Barra dos Coqueiros", + "uf": "SE" + }, + { + "id": 2800670, + "nome": "Boquim", + "uf": "SE" + }, + { + "id": 2800704, + "nome": "Brejo Grande", + "uf": "SE" + }, + { + "id": 2801009, + "nome": "Campo do Brito", + "uf": "SE" + }, + { + "id": 2801108, + "nome": "Canhoba", + "uf": "SE" + }, + { + "id": 2801207, + "nome": "Canindé de São Francisco", + "uf": "SE" + }, + { + "id": 2801306, + "nome": "Capela", + "uf": "SE" + }, + { + "id": 2801405, + "nome": "Carira", + "uf": "SE" + }, + { + "id": 2801504, + "nome": "Carmópolis", + "uf": "SE" + }, + { + "id": 2801603, + "nome": "Cedro de São João", + "uf": "SE" + }, + { + "id": 2801702, + "nome": "Cristinápolis", + "uf": "SE" + }, + { + "id": 2801900, + "nome": "Cumbe", + "uf": "SE" + }, + { + "id": 2802007, + "nome": "Divina Pastora", + "uf": "SE" + }, + { + "id": 2802106, + "nome": "Estância", + "uf": "SE" + }, + { + "id": 2802205, + "nome": "Feira Nova", + "uf": "SE" + }, + { + "id": 2802304, + "nome": "Frei Paulo", + "uf": "SE" + }, + { + "id": 2802403, + "nome": "Gararu", + "uf": "SE" + }, + { + "id": 2802502, + "nome": "General Maynard", + "uf": "SE" + }, + { + "id": 2802601, + "nome": "Graccho Cardoso", + "uf": "SE" + }, + { + "id": 2802700, + "nome": "Ilha das Flores", + "uf": "SE" + }, + { + "id": 2802809, + "nome": "Indiaroba", + "uf": "SE" + }, + { + "id": 2802908, + "nome": "Itabaiana", + "uf": "SE" + }, + { + "id": 2803005, + "nome": "Itabaianinha", + "uf": "SE" + }, + { + "id": 2803104, + "nome": "Itabi", + "uf": "SE" + }, + { + "id": 2803203, + "nome": "Itaporanga d'Ajuda", + "uf": "SE" + }, + { + "id": 2803302, + "nome": "Japaratuba", + "uf": "SE" + }, + { + "id": 2803401, + "nome": "Japoatã", + "uf": "SE" + }, + { + "id": 2803500, + "nome": "Lagarto", + "uf": "SE" + }, + { + "id": 2803609, + "nome": "Laranjeiras", + "uf": "SE" + }, + { + "id": 2803708, + "nome": "Macambira", + "uf": "SE" + }, + { + "id": 2803807, + "nome": "Malhada dos Bois", + "uf": "SE" + }, + { + "id": 2803906, + "nome": "Malhador", + "uf": "SE" + }, + { + "id": 2804003, + "nome": "Maruim", + "uf": "SE" + }, + { + "id": 2804102, + "nome": "Moita Bonita", + "uf": "SE" + }, + { + "id": 2804201, + "nome": "Monte Alegre de Sergipe", + "uf": "SE" + }, + { + "id": 2804300, + "nome": "Muribeca", + "uf": "SE" + }, + { + "id": 2804409, + "nome": "Neópolis", + "uf": "SE" + }, + { + "id": 2804458, + "nome": "Nossa Senhora Aparecida", + "uf": "SE" + }, + { + "id": 2804508, + "nome": "Nossa Senhora da Glória", + "uf": "SE" + }, + { + "id": 2804607, + "nome": "Nossa Senhora das Dores", + "uf": "SE" + }, + { + "id": 2804706, + "nome": "Nossa Senhora de Lourdes", + "uf": "SE" + }, + { + "id": 2804805, + "nome": "Nossa Senhora do Socorro", + "uf": "SE" + }, + { + "id": 2804904, + "nome": "Pacatuba", + "uf": "SE" + }, + { + "id": 2805000, + "nome": "Pedra Mole", + "uf": "SE" + }, + { + "id": 2805109, + "nome": "Pedrinhas", + "uf": "SE" + }, + { + "id": 2805208, + "nome": "Pinhão", + "uf": "SE" + }, + { + "id": 2805307, + "nome": "Pirambu", + "uf": "SE" + }, + { + "id": 2805604, + "nome": "Porto da Folha", + "uf": "SE" + }, + { + "id": 2805406, + "nome": "Poço Redondo", + "uf": "SE" + }, + { + "id": 2805505, + "nome": "Poço Verde", + "uf": "SE" + }, + { + "id": 2805703, + "nome": "Propriá", + "uf": "SE" + }, + { + "id": 2805901, + "nome": "Riachuelo", + "uf": "SE" + }, + { + "id": 2805802, + "nome": "Riachão do Dantas", + "uf": "SE" + }, + { + "id": 2806008, + "nome": "Ribeirópolis", + "uf": "SE" + }, + { + "id": 2806107, + "nome": "Rosário do Catete", + "uf": "SE" + }, + { + "id": 2806206, + "nome": "Salgado", + "uf": "SE" + }, + { + "id": 2806305, + "nome": "Santa Luzia do Itanhy", + "uf": "SE" + }, + { + "id": 2806503, + "nome": "Santa Rosa de Lima", + "uf": "SE" + }, + { + "id": 2806404, + "nome": "Santana do São Francisco", + "uf": "SE" + }, + { + "id": 2806602, + "nome": "Santo Amaro das Brotas", + "uf": "SE" + }, + { + "id": 2807105, + "nome": "Simão Dias", + "uf": "SE" + }, + { + "id": 2807204, + "nome": "Siriri", + "uf": "SE" + }, + { + "id": 2806701, + "nome": "São Cristóvão", + "uf": "SE" + }, + { + "id": 2806800, + "nome": "São Domingos", + "uf": "SE" + }, + { + "id": 2806909, + "nome": "São Francisco", + "uf": "SE" + }, + { + "id": 2807006, + "nome": "São Miguel do Aleixo", + "uf": "SE" + }, + { + "id": 2807303, + "nome": "Telha", + "uf": "SE" + }, + { + "id": 2807402, + "nome": "Tobias Barreto", + "uf": "SE" + }, + { + "id": 2807501, + "nome": "Tomar do Geru", + "uf": "SE" + }, + { + "id": 2807600, + "nome": "Umbaúba", + "uf": "SE" + }, + { + "id": 3500105, + "nome": "Adamantina", + "uf": "SP" + }, + { + "id": 3500204, + "nome": "Adolfo", + "uf": "SP" + }, + { + "id": 3500303, + "nome": "Aguaí", + "uf": "SP" + }, + { + "id": 3500709, + "nome": "Agudos", + "uf": "SP" + }, + { + "id": 3500758, + "nome": "Alambari", + "uf": "SP" + }, + { + "id": 3500808, + "nome": "Alfredo Marcondes", + "uf": "SP" + }, + { + "id": 3500907, + "nome": "Altair", + "uf": "SP" + }, + { + "id": 3501004, + "nome": "Altinópolis", + "uf": "SP" + }, + { + "id": 3501103, + "nome": "Alto Alegre", + "uf": "SP" + }, + { + "id": 3501152, + "nome": "Alumínio", + "uf": "SP" + }, + { + "id": 3501509, + "nome": "Alvinlândia", + "uf": "SP" + }, + { + "id": 3501608, + "nome": "Americana", + "uf": "SP" + }, + { + "id": 3501905, + "nome": "Amparo", + "uf": "SP" + }, + { + "id": 3501707, + "nome": "Américo Brasiliense", + "uf": "SP" + }, + { + "id": 3501806, + "nome": "Américo de Campos", + "uf": "SP" + }, + { + "id": 3502002, + "nome": "Analândia", + "uf": "SP" + }, + { + "id": 3502101, + "nome": "Andradina", + "uf": "SP" + }, + { + "id": 3502200, + "nome": "Angatuba", + "uf": "SP" + }, + { + "id": 3502309, + "nome": "Anhembi", + "uf": "SP" + }, + { + "id": 3502408, + "nome": "Anhumas", + "uf": "SP" + }, + { + "id": 3502507, + "nome": "Aparecida", + "uf": "SP" + }, + { + "id": 3502606, + "nome": "Aparecida d'Oeste", + "uf": "SP" + }, + { + "id": 3502705, + "nome": "Apiaí", + "uf": "SP" + }, + { + "id": 3503000, + "nome": "Aramina", + "uf": "SP" + }, + { + "id": 3503109, + "nome": "Arandu", + "uf": "SP" + }, + { + "id": 3503158, + "nome": "Arapeí", + "uf": "SP" + }, + { + "id": 3503208, + "nome": "Araraquara", + "uf": "SP" + }, + { + "id": 3503307, + "nome": "Araras", + "uf": "SP" + }, + { + "id": 3502754, + "nome": "Araçariguama", + "uf": "SP" + }, + { + "id": 3502804, + "nome": "Araçatuba", + "uf": "SP" + }, + { + "id": 3502903, + "nome": "Araçoiaba da Serra", + "uf": "SP" + }, + { + "id": 3503356, + "nome": "Arco-Íris", + "uf": "SP" + }, + { + "id": 3503406, + "nome": "Arealva", + "uf": "SP" + }, + { + "id": 3503505, + "nome": "Areias", + "uf": "SP" + }, + { + "id": 3503604, + "nome": "Areiópolis", + "uf": "SP" + }, + { + "id": 3503703, + "nome": "Ariranha", + "uf": "SP" + }, + { + "id": 3503802, + "nome": "Artur Nogueira", + "uf": "SP" + }, + { + "id": 3503901, + "nome": "Arujá", + "uf": "SP" + }, + { + "id": 3503950, + "nome": "Aspásia", + "uf": "SP" + }, + { + "id": 3504008, + "nome": "Assis", + "uf": "SP" + }, + { + "id": 3504107, + "nome": "Atibaia", + "uf": "SP" + }, + { + "id": 3504206, + "nome": "Auriflama", + "uf": "SP" + }, + { + "id": 3504404, + "nome": "Avanhandava", + "uf": "SP" + }, + { + "id": 3504503, + "nome": "Avaré", + "uf": "SP" + }, + { + "id": 3504305, + "nome": "Avaí", + "uf": "SP" + }, + { + "id": 3504602, + "nome": "Bady Bassitt", + "uf": "SP" + }, + { + "id": 3504701, + "nome": "Balbinos", + "uf": "SP" + }, + { + "id": 3504909, + "nome": "Bananal", + "uf": "SP" + }, + { + "id": 3505104, + "nome": "Barbosa", + "uf": "SP" + }, + { + "id": 3505203, + "nome": "Bariri", + "uf": "SP" + }, + { + "id": 3505302, + "nome": "Barra Bonita", + "uf": "SP" + }, + { + "id": 3505351, + "nome": "Barra do Chapéu", + "uf": "SP" + }, + { + "id": 3505401, + "nome": "Barra do Turvo", + "uf": "SP" + }, + { + "id": 3505500, + "nome": "Barretos", + "uf": "SP" + }, + { + "id": 3505609, + "nome": "Barrinha", + "uf": "SP" + }, + { + "id": 3505708, + "nome": "Barueri", + "uf": "SP" + }, + { + "id": 3505005, + "nome": "Barão de Antonina", + "uf": "SP" + }, + { + "id": 3505807, + "nome": "Bastos", + "uf": "SP" + }, + { + "id": 3505906, + "nome": "Batatais", + "uf": "SP" + }, + { + "id": 3506003, + "nome": "Bauru", + "uf": "SP" + }, + { + "id": 3506102, + "nome": "Bebedouro", + "uf": "SP" + }, + { + "id": 3506201, + "nome": "Bento de Abreu", + "uf": "SP" + }, + { + "id": 3506300, + "nome": "Bernardino de Campos", + "uf": "SP" + }, + { + "id": 3506359, + "nome": "Bertioga", + "uf": "SP" + }, + { + "id": 3506409, + "nome": "Bilac", + "uf": "SP" + }, + { + "id": 3506508, + "nome": "Birigui", + "uf": "SP" + }, + { + "id": 3506607, + "nome": "Biritiba Mirim", + "uf": "SP" + }, + { + "id": 3506706, + "nome": "Boa Esperança do Sul", + "uf": "SP" + }, + { + "id": 3506805, + "nome": "Bocaina", + "uf": "SP" + }, + { + "id": 3506904, + "nome": "Bofete", + "uf": "SP" + }, + { + "id": 3507001, + "nome": "Boituva", + "uf": "SP" + }, + { + "id": 3507100, + "nome": "Bom Jesus dos Perdões", + "uf": "SP" + }, + { + "id": 3507159, + "nome": "Bom Sucesso de Itararé", + "uf": "SP" + }, + { + "id": 3507308, + "nome": "Boracéia", + "uf": "SP" + }, + { + "id": 3507407, + "nome": "Borborema", + "uf": "SP" + }, + { + "id": 3507456, + "nome": "Borebi", + "uf": "SP" + }, + { + "id": 3507209, + "nome": "Borá", + "uf": "SP" + }, + { + "id": 3507506, + "nome": "Botucatu", + "uf": "SP" + }, + { + "id": 3507605, + "nome": "Bragança Paulista", + "uf": "SP" + }, + { + "id": 3507704, + "nome": "Braúna", + "uf": "SP" + }, + { + "id": 3507753, + "nome": "Brejo Alegre", + "uf": "SP" + }, + { + "id": 3507803, + "nome": "Brodowski", + "uf": "SP" + }, + { + "id": 3507902, + "nome": "Brotas", + "uf": "SP" + }, + { + "id": 3508009, + "nome": "Buri", + "uf": "SP" + }, + { + "id": 3508108, + "nome": "Buritama", + "uf": "SP" + }, + { + "id": 3508207, + "nome": "Buritizal", + "uf": "SP" + }, + { + "id": 3504800, + "nome": "Bálsamo", + "uf": "SP" + }, + { + "id": 3508405, + "nome": "Cabreúva", + "uf": "SP" + }, + { + "id": 3508306, + "nome": "Cabrália Paulista", + "uf": "SP" + }, + { + "id": 3508603, + "nome": "Cachoeira Paulista", + "uf": "SP" + }, + { + "id": 3508702, + "nome": "Caconde", + "uf": "SP" + }, + { + "id": 3508801, + "nome": "Cafelândia", + "uf": "SP" + }, + { + "id": 3508900, + "nome": "Caiabu", + "uf": "SP" + }, + { + "id": 3509007, + "nome": "Caieiras", + "uf": "SP" + }, + { + "id": 3509106, + "nome": "Caiuá", + "uf": "SP" + }, + { + "id": 3509205, + "nome": "Cajamar", + "uf": "SP" + }, + { + "id": 3509254, + "nome": "Cajati", + "uf": "SP" + }, + { + "id": 3509304, + "nome": "Cajobi", + "uf": "SP" + }, + { + "id": 3509403, + "nome": "Cajuru", + "uf": "SP" + }, + { + "id": 3509452, + "nome": "Campina do Monte Alegre", + "uf": "SP" + }, + { + "id": 3509502, + "nome": "Campinas", + "uf": "SP" + }, + { + "id": 3509601, + "nome": "Campo Limpo Paulista", + "uf": "SP" + }, + { + "id": 3509809, + "nome": "Campos Novos Paulista", + "uf": "SP" + }, + { + "id": 3509700, + "nome": "Campos do Jordão", + "uf": "SP" + }, + { + "id": 3509908, + "nome": "Cananéia", + "uf": "SP" + }, + { + "id": 3509957, + "nome": "Canas", + "uf": "SP" + }, + { + "id": 3510153, + "nome": "Canitar", + "uf": "SP" + }, + { + "id": 3510302, + "nome": "Capela do Alto", + "uf": "SP" + }, + { + "id": 3510401, + "nome": "Capivari", + "uf": "SP" + }, + { + "id": 3510203, + "nome": "Capão Bonito", + "uf": "SP" + }, + { + "id": 3510500, + "nome": "Caraguatatuba", + "uf": "SP" + }, + { + "id": 3510609, + "nome": "Carapicuíba", + "uf": "SP" + }, + { + "id": 3510708, + "nome": "Cardoso", + "uf": "SP" + }, + { + "id": 3510807, + "nome": "Casa Branca", + "uf": "SP" + }, + { + "id": 3511003, + "nome": "Castilho", + "uf": "SP" + }, + { + "id": 3511102, + "nome": "Catanduva", + "uf": "SP" + }, + { + "id": 3511201, + "nome": "Catiguá", + "uf": "SP" + }, + { + "id": 3508504, + "nome": "Caçapava", + "uf": "SP" + }, + { + "id": 3511300, + "nome": "Cedral", + "uf": "SP" + }, + { + "id": 3511409, + "nome": "Cerqueira César", + "uf": "SP" + }, + { + "id": 3511508, + "nome": "Cerquilho", + "uf": "SP" + }, + { + "id": 3511607, + "nome": "Cesário Lange", + "uf": "SP" + }, + { + "id": 3511706, + "nome": "Charqueada", + "uf": "SP" + }, + { + "id": 3557204, + "nome": "Chavantes", + "uf": "SP" + }, + { + "id": 3511904, + "nome": "Clementina", + "uf": "SP" + }, + { + "id": 3512001, + "nome": "Colina", + "uf": "SP" + }, + { + "id": 3512100, + "nome": "Colômbia", + "uf": "SP" + }, + { + "id": 3512209, + "nome": "Conchal", + "uf": "SP" + }, + { + "id": 3512308, + "nome": "Conchas", + "uf": "SP" + }, + { + "id": 3512407, + "nome": "Cordeirópolis", + "uf": "SP" + }, + { + "id": 3512506, + "nome": "Coroados", + "uf": "SP" + }, + { + "id": 3512605, + "nome": "Coronel Macedo", + "uf": "SP" + }, + { + "id": 3512704, + "nome": "Corumbataí", + "uf": "SP" + }, + { + "id": 3512902, + "nome": "Cosmorama", + "uf": "SP" + }, + { + "id": 3512803, + "nome": "Cosmópolis", + "uf": "SP" + }, + { + "id": 3513009, + "nome": "Cotia", + "uf": "SP" + }, + { + "id": 3513108, + "nome": "Cravinhos", + "uf": "SP" + }, + { + "id": 3513207, + "nome": "Cristais Paulista", + "uf": "SP" + }, + { + "id": 3513405, + "nome": "Cruzeiro", + "uf": "SP" + }, + { + "id": 3513306, + "nome": "Cruzália", + "uf": "SP" + }, + { + "id": 3513504, + "nome": "Cubatão", + "uf": "SP" + }, + { + "id": 3513603, + "nome": "Cunha", + "uf": "SP" + }, + { + "id": 3510906, + "nome": "Cássia dos Coqueiros", + "uf": "SP" + }, + { + "id": 3510005, + "nome": "Cândido Mota", + "uf": "SP" + }, + { + "id": 3510104, + "nome": "Cândido Rodrigues", + "uf": "SP" + }, + { + "id": 3513702, + "nome": "Descalvado", + "uf": "SP" + }, + { + "id": 3513801, + "nome": "Diadema", + "uf": "SP" + }, + { + "id": 3513850, + "nome": "Dirce Reis", + "uf": "SP" + }, + { + "id": 3513900, + "nome": "Divinolândia", + "uf": "SP" + }, + { + "id": 3514007, + "nome": "Dobrada", + "uf": "SP" + }, + { + "id": 3514106, + "nome": "Dois Córregos", + "uf": "SP" + }, + { + "id": 3514205, + "nome": "Dolcinópolis", + "uf": "SP" + }, + { + "id": 3514304, + "nome": "Dourado", + "uf": "SP" + }, + { + "id": 3514403, + "nome": "Dracena", + "uf": "SP" + }, + { + "id": 3514502, + "nome": "Duartina", + "uf": "SP" + }, + { + "id": 3514601, + "nome": "Dumont", + "uf": "SP" + }, + { + "id": 3514700, + "nome": "Echaporã", + "uf": "SP" + }, + { + "id": 3514809, + "nome": "Eldorado", + "uf": "SP" + }, + { + "id": 3514908, + "nome": "Elias Fausto", + "uf": "SP" + }, + { + "id": 3514924, + "nome": "Elisiário", + "uf": "SP" + }, + { + "id": 3514957, + "nome": "Embaúba", + "uf": "SP" + }, + { + "id": 3515004, + "nome": "Embu das Artes", + "uf": "SP" + }, + { + "id": 3515103, + "nome": "Embu-Guaçu", + "uf": "SP" + }, + { + "id": 3515129, + "nome": "Emilianópolis", + "uf": "SP" + }, + { + "id": 3515152, + "nome": "Engenheiro Coelho", + "uf": "SP" + }, + { + "id": 3515186, + "nome": "Espírito Santo do Pinhal", + "uf": "SP" + }, + { + "id": 3515194, + "nome": "Espírito Santo do Turvo", + "uf": "SP" + }, + { + "id": 3557303, + "nome": "Estiva Gerbi", + "uf": "SP" + }, + { + "id": 3515202, + "nome": "Estrela d'Oeste", + "uf": "SP" + }, + { + "id": 3515301, + "nome": "Estrela do Norte", + "uf": "SP" + }, + { + "id": 3515350, + "nome": "Euclides da Cunha Paulista", + "uf": "SP" + }, + { + "id": 3515400, + "nome": "Fartura", + "uf": "SP" + }, + { + "id": 3515608, + "nome": "Fernando Prestes", + "uf": "SP" + }, + { + "id": 3515509, + "nome": "Fernandópolis", + "uf": "SP" + }, + { + "id": 3515657, + "nome": "Fernão", + "uf": "SP" + }, + { + "id": 3515707, + "nome": "Ferraz de Vasconcelos", + "uf": "SP" + }, + { + "id": 3515806, + "nome": "Flora Rica", + "uf": "SP" + }, + { + "id": 3515905, + "nome": "Floreal", + "uf": "SP" + }, + { + "id": 3516101, + "nome": "Florínea", + "uf": "SP" + }, + { + "id": 3516002, + "nome": "Flórida Paulista", + "uf": "SP" + }, + { + "id": 3516200, + "nome": "Franca", + "uf": "SP" + }, + { + "id": 3516309, + "nome": "Francisco Morato", + "uf": "SP" + }, + { + "id": 3516408, + "nome": "Franco da Rocha", + "uf": "SP" + }, + { + "id": 3516507, + "nome": "Gabriel Monteiro", + "uf": "SP" + }, + { + "id": 3516705, + "nome": "Garça", + "uf": "SP" + }, + { + "id": 3516804, + "nome": "Gastão Vidigal", + "uf": "SP" + }, + { + "id": 3516853, + "nome": "Gavião Peixoto", + "uf": "SP" + }, + { + "id": 3516903, + "nome": "General Salgado", + "uf": "SP" + }, + { + "id": 3517000, + "nome": "Getulina", + "uf": "SP" + }, + { + "id": 3517109, + "nome": "Glicério", + "uf": "SP" + }, + { + "id": 3517307, + "nome": "Guaimbê", + "uf": "SP" + }, + { + "id": 3517208, + "nome": "Guaiçara", + "uf": "SP" + }, + { + "id": 3517604, + "nome": "Guapiara", + "uf": "SP" + }, + { + "id": 3517505, + "nome": "Guapiaçu", + "uf": "SP" + }, + { + "id": 3517901, + "nome": "Guaraci", + "uf": "SP" + }, + { + "id": 3518008, + "nome": "Guarani d'Oeste", + "uf": "SP" + }, + { + "id": 3518107, + "nome": "Guarantã", + "uf": "SP" + }, + { + "id": 3518206, + "nome": "Guararapes", + "uf": "SP" + }, + { + "id": 3518305, + "nome": "Guararema", + "uf": "SP" + }, + { + "id": 3518404, + "nome": "Guaratinguetá", + "uf": "SP" + }, + { + "id": 3517802, + "nome": "Guaraçaí", + "uf": "SP" + }, + { + "id": 3518503, + "nome": "Guareí", + "uf": "SP" + }, + { + "id": 3518602, + "nome": "Guariba", + "uf": "SP" + }, + { + "id": 3518701, + "nome": "Guarujá", + "uf": "SP" + }, + { + "id": 3518800, + "nome": "Guarulhos", + "uf": "SP" + }, + { + "id": 3517703, + "nome": "Guará", + "uf": "SP" + }, + { + "id": 3518859, + "nome": "Guatapará", + "uf": "SP" + }, + { + "id": 3517406, + "nome": "Guaíra", + "uf": "SP" + }, + { + "id": 3518909, + "nome": "Guzolândia", + "uf": "SP" + }, + { + "id": 3516606, + "nome": "Gália", + "uf": "SP" + }, + { + "id": 3519006, + "nome": "Herculândia", + "uf": "SP" + }, + { + "id": 3519055, + "nome": "Holambra", + "uf": "SP" + }, + { + "id": 3519071, + "nome": "Hortolândia", + "uf": "SP" + }, + { + "id": 3519105, + "nome": "Iacanga", + "uf": "SP" + }, + { + "id": 3519204, + "nome": "Iacri", + "uf": "SP" + }, + { + "id": 3519253, + "nome": "Iaras", + "uf": "SP" + }, + { + "id": 3519303, + "nome": "Ibaté", + "uf": "SP" + }, + { + "id": 3519501, + "nome": "Ibirarema", + "uf": "SP" + }, + { + "id": 3519402, + "nome": "Ibirá", + "uf": "SP" + }, + { + "id": 3519600, + "nome": "Ibitinga", + "uf": "SP" + }, + { + "id": 3519709, + "nome": "Ibiúna", + "uf": "SP" + }, + { + "id": 3519808, + "nome": "Icém", + "uf": "SP" + }, + { + "id": 3519907, + "nome": "Iepê", + "uf": "SP" + }, + { + "id": 3520103, + "nome": "Igarapava", + "uf": "SP" + }, + { + "id": 3520202, + "nome": "Igaratá", + "uf": "SP" + }, + { + "id": 3520004, + "nome": "Igaraçu do Tietê", + "uf": "SP" + }, + { + "id": 3520301, + "nome": "Iguape", + "uf": "SP" + }, + { + "id": 3520426, + "nome": "Ilha Comprida", + "uf": "SP" + }, + { + "id": 3520442, + "nome": "Ilha Solteira", + "uf": "SP" + }, + { + "id": 3520400, + "nome": "Ilhabela", + "uf": "SP" + }, + { + "id": 3520509, + "nome": "Indaiatuba", + "uf": "SP" + }, + { + "id": 3520608, + "nome": "Indiana", + "uf": "SP" + }, + { + "id": 3520707, + "nome": "Indiaporã", + "uf": "SP" + }, + { + "id": 3520806, + "nome": "Inúbia Paulista", + "uf": "SP" + }, + { + "id": 3520905, + "nome": "Ipaussu", + "uf": "SP" + }, + { + "id": 3521002, + "nome": "Iperó", + "uf": "SP" + }, + { + "id": 3521101, + "nome": "Ipeúna", + "uf": "SP" + }, + { + "id": 3521150, + "nome": "Ipiguá", + "uf": "SP" + }, + { + "id": 3521200, + "nome": "Iporanga", + "uf": "SP" + }, + { + "id": 3521309, + "nome": "Ipuã", + "uf": "SP" + }, + { + "id": 3521408, + "nome": "Iracemápolis", + "uf": "SP" + }, + { + "id": 3521606, + "nome": "Irapuru", + "uf": "SP" + }, + { + "id": 3521507, + "nome": "Irapuã", + "uf": "SP" + }, + { + "id": 3521705, + "nome": "Itaberá", + "uf": "SP" + }, + { + "id": 3521903, + "nome": "Itajobi", + "uf": "SP" + }, + { + "id": 3522000, + "nome": "Itaju", + "uf": "SP" + }, + { + "id": 3522109, + "nome": "Itanhaém", + "uf": "SP" + }, + { + "id": 3522158, + "nome": "Itaoca", + "uf": "SP" + }, + { + "id": 3522208, + "nome": "Itapecerica da Serra", + "uf": "SP" + }, + { + "id": 3522307, + "nome": "Itapetininga", + "uf": "SP" + }, + { + "id": 3522406, + "nome": "Itapeva", + "uf": "SP" + }, + { + "id": 3522505, + "nome": "Itapevi", + "uf": "SP" + }, + { + "id": 3522604, + "nome": "Itapira", + "uf": "SP" + }, + { + "id": 3522653, + "nome": "Itapirapuã Paulista", + "uf": "SP" + }, + { + "id": 3522802, + "nome": "Itaporanga", + "uf": "SP" + }, + { + "id": 3523008, + "nome": "Itapura", + "uf": "SP" + }, + { + "id": 3522901, + "nome": "Itapuí", + "uf": "SP" + }, + { + "id": 3523107, + "nome": "Itaquaquecetuba", + "uf": "SP" + }, + { + "id": 3523206, + "nome": "Itararé", + "uf": "SP" + }, + { + "id": 3523305, + "nome": "Itariri", + "uf": "SP" + }, + { + "id": 3523404, + "nome": "Itatiba", + "uf": "SP" + }, + { + "id": 3523503, + "nome": "Itatinga", + "uf": "SP" + }, + { + "id": 3521804, + "nome": "Itaí", + "uf": "SP" + }, + { + "id": 3523602, + "nome": "Itirapina", + "uf": "SP" + }, + { + "id": 3523701, + "nome": "Itirapuã", + "uf": "SP" + }, + { + "id": 3523800, + "nome": "Itobi", + "uf": "SP" + }, + { + "id": 3523909, + "nome": "Itu", + "uf": "SP" + }, + { + "id": 3524006, + "nome": "Itupeva", + "uf": "SP" + }, + { + "id": 3524105, + "nome": "Ituverava", + "uf": "SP" + }, + { + "id": 3522703, + "nome": "Itápolis", + "uf": "SP" + }, + { + "id": 3524204, + "nome": "Jaborandi", + "uf": "SP" + }, + { + "id": 3524303, + "nome": "Jaboticabal", + "uf": "SP" + }, + { + "id": 3524402, + "nome": "Jacareí", + "uf": "SP" + }, + { + "id": 3524501, + "nome": "Jaci", + "uf": "SP" + }, + { + "id": 3524600, + "nome": "Jacupiranga", + "uf": "SP" + }, + { + "id": 3524709, + "nome": "Jaguariúna", + "uf": "SP" + }, + { + "id": 3524808, + "nome": "Jales", + "uf": "SP" + }, + { + "id": 3524907, + "nome": "Jambeiro", + "uf": "SP" + }, + { + "id": 3525003, + "nome": "Jandira", + "uf": "SP" + }, + { + "id": 3525102, + "nome": "Jardinópolis", + "uf": "SP" + }, + { + "id": 3525201, + "nome": "Jarinu", + "uf": "SP" + }, + { + "id": 3525300, + "nome": "Jaú", + "uf": "SP" + }, + { + "id": 3525409, + "nome": "Jeriquara", + "uf": "SP" + }, + { + "id": 3525508, + "nome": "Joanópolis", + "uf": "SP" + }, + { + "id": 3525706, + "nome": "José Bonifácio", + "uf": "SP" + }, + { + "id": 3525607, + "nome": "João Ramalho", + "uf": "SP" + }, + { + "id": 3525854, + "nome": "Jumirim", + "uf": "SP" + }, + { + "id": 3525904, + "nome": "Jundiaí", + "uf": "SP" + }, + { + "id": 3526001, + "nome": "Junqueirópolis", + "uf": "SP" + }, + { + "id": 3526209, + "nome": "Juquitiba", + "uf": "SP" + }, + { + "id": 3526100, + "nome": "Juquiá", + "uf": "SP" + }, + { + "id": 3525805, + "nome": "Júlio Mesquita", + "uf": "SP" + }, + { + "id": 3526308, + "nome": "Lagoinha", + "uf": "SP" + }, + { + "id": 3526407, + "nome": "Laranjal Paulista", + "uf": "SP" + }, + { + "id": 3526605, + "nome": "Lavrinhas", + "uf": "SP" + }, + { + "id": 3526506, + "nome": "Lavínia", + "uf": "SP" + }, + { + "id": 3526704, + "nome": "Leme", + "uf": "SP" + }, + { + "id": 3526803, + "nome": "Lençóis Paulista", + "uf": "SP" + }, + { + "id": 3526902, + "nome": "Limeira", + "uf": "SP" + }, + { + "id": 3527009, + "nome": "Lindóia", + "uf": "SP" + }, + { + "id": 3527108, + "nome": "Lins", + "uf": "SP" + }, + { + "id": 3527207, + "nome": "Lorena", + "uf": "SP" + }, + { + "id": 3527256, + "nome": "Lourdes", + "uf": "SP" + }, + { + "id": 3527306, + "nome": "Louveira", + "uf": "SP" + }, + { + "id": 3527504, + "nome": "Lucianópolis", + "uf": "SP" + }, + { + "id": 3527405, + "nome": "Lucélia", + "uf": "SP" + }, + { + "id": 3527702, + "nome": "Luiziânia", + "uf": "SP" + }, + { + "id": 3527801, + "nome": "Lupércio", + "uf": "SP" + }, + { + "id": 3527900, + "nome": "Lutécia", + "uf": "SP" + }, + { + "id": 3527603, + "nome": "Luís Antônio", + "uf": "SP" + }, + { + "id": 3528007, + "nome": "Macatuba", + "uf": "SP" + }, + { + "id": 3528106, + "nome": "Macaubal", + "uf": "SP" + }, + { + "id": 3528205, + "nome": "Macedônia", + "uf": "SP" + }, + { + "id": 3528304, + "nome": "Magda", + "uf": "SP" + }, + { + "id": 3528403, + "nome": "Mairinque", + "uf": "SP" + }, + { + "id": 3528502, + "nome": "Mairiporã", + "uf": "SP" + }, + { + "id": 3528601, + "nome": "Manduri", + "uf": "SP" + }, + { + "id": 3528700, + "nome": "Marabá Paulista", + "uf": "SP" + }, + { + "id": 3528809, + "nome": "Maracaí", + "uf": "SP" + }, + { + "id": 3528858, + "nome": "Marapoama", + "uf": "SP" + }, + { + "id": 3529104, + "nome": "Marinópolis", + "uf": "SP" + }, + { + "id": 3528908, + "nome": "Mariápolis", + "uf": "SP" + }, + { + "id": 3529203, + "nome": "Martinópolis", + "uf": "SP" + }, + { + "id": 3529005, + "nome": "Marília", + "uf": "SP" + }, + { + "id": 3529302, + "nome": "Matão", + "uf": "SP" + }, + { + "id": 3529401, + "nome": "Mauá", + "uf": "SP" + }, + { + "id": 3529500, + "nome": "Mendonça", + "uf": "SP" + }, + { + "id": 3529609, + "nome": "Meridiano", + "uf": "SP" + }, + { + "id": 3529658, + "nome": "Mesópolis", + "uf": "SP" + }, + { + "id": 3529708, + "nome": "Miguelópolis", + "uf": "SP" + }, + { + "id": 3529807, + "nome": "Mineiros do Tietê", + "uf": "SP" + }, + { + "id": 3530003, + "nome": "Mira Estrela", + "uf": "SP" + }, + { + "id": 3529906, + "nome": "Miracatu", + "uf": "SP" + }, + { + "id": 3530102, + "nome": "Mirandópolis", + "uf": "SP" + }, + { + "id": 3530201, + "nome": "Mirante do Paranapanema", + "uf": "SP" + }, + { + "id": 3530300, + "nome": "Mirassol", + "uf": "SP" + }, + { + "id": 3530409, + "nome": "Mirassolândia", + "uf": "SP" + }, + { + "id": 3530508, + "nome": "Mococa", + "uf": "SP" + }, + { + "id": 3530706, + "nome": "Mogi Guaçu", + "uf": "SP" + }, + { + "id": 3530805, + "nome": "Mogi Mirim", + "uf": "SP" + }, + { + "id": 3530607, + "nome": "Mogi das Cruzes", + "uf": "SP" + }, + { + "id": 3530904, + "nome": "Mombuca", + "uf": "SP" + }, + { + "id": 3531100, + "nome": "Mongaguá", + "uf": "SP" + }, + { + "id": 3531209, + "nome": "Monte Alegre do Sul", + "uf": "SP" + }, + { + "id": 3531308, + "nome": "Monte Alto", + "uf": "SP" + }, + { + "id": 3531407, + "nome": "Monte Aprazível", + "uf": "SP" + }, + { + "id": 3531506, + "nome": "Monte Azul Paulista", + "uf": "SP" + }, + { + "id": 3531605, + "nome": "Monte Castelo", + "uf": "SP" + }, + { + "id": 3531803, + "nome": "Monte Mor", + "uf": "SP" + }, + { + "id": 3531704, + "nome": "Monteiro Lobato", + "uf": "SP" + }, + { + "id": 3531001, + "nome": "Monções", + "uf": "SP" + }, + { + "id": 3531902, + "nome": "Morro Agudo", + "uf": "SP" + }, + { + "id": 3532009, + "nome": "Morungaba", + "uf": "SP" + }, + { + "id": 3532058, + "nome": "Motuca", + "uf": "SP" + }, + { + "id": 3532108, + "nome": "Murutinga do Sul", + "uf": "SP" + }, + { + "id": 3532157, + "nome": "Nantes", + "uf": "SP" + }, + { + "id": 3532207, + "nome": "Narandiba", + "uf": "SP" + }, + { + "id": 3532306, + "nome": "Natividade da Serra", + "uf": "SP" + }, + { + "id": 3532405, + "nome": "Nazaré Paulista", + "uf": "SP" + }, + { + "id": 3532504, + "nome": "Neves Paulista", + "uf": "SP" + }, + { + "id": 3532603, + "nome": "Nhandeara", + "uf": "SP" + }, + { + "id": 3532702, + "nome": "Nipoã", + "uf": "SP" + }, + { + "id": 3532801, + "nome": "Nova Aliança", + "uf": "SP" + }, + { + "id": 3532827, + "nome": "Nova Campina", + "uf": "SP" + }, + { + "id": 3532843, + "nome": "Nova Canaã Paulista", + "uf": "SP" + }, + { + "id": 3532868, + "nome": "Nova Castilho", + "uf": "SP" + }, + { + "id": 3532900, + "nome": "Nova Europa", + "uf": "SP" + }, + { + "id": 3533007, + "nome": "Nova Granada", + "uf": "SP" + }, + { + "id": 3533106, + "nome": "Nova Guataporanga", + "uf": "SP" + }, + { + "id": 3533205, + "nome": "Nova Independência", + "uf": "SP" + }, + { + "id": 3533304, + "nome": "Nova Luzitânia", + "uf": "SP" + }, + { + "id": 3533403, + "nome": "Nova Odessa", + "uf": "SP" + }, + { + "id": 3533254, + "nome": "Novais", + "uf": "SP" + }, + { + "id": 3533502, + "nome": "Novo Horizonte", + "uf": "SP" + }, + { + "id": 3533601, + "nome": "Nuporanga", + "uf": "SP" + }, + { + "id": 3533700, + "nome": "Ocauçu", + "uf": "SP" + }, + { + "id": 3533908, + "nome": "Olímpia", + "uf": "SP" + }, + { + "id": 3534005, + "nome": "Onda Verde", + "uf": "SP" + }, + { + "id": 3534104, + "nome": "Oriente", + "uf": "SP" + }, + { + "id": 3534203, + "nome": "Orindiúva", + "uf": "SP" + }, + { + "id": 3534302, + "nome": "Orlândia", + "uf": "SP" + }, + { + "id": 3534401, + "nome": "Osasco", + "uf": "SP" + }, + { + "id": 3534500, + "nome": "Oscar Bressane", + "uf": "SP" + }, + { + "id": 3534609, + "nome": "Osvaldo Cruz", + "uf": "SP" + }, + { + "id": 3534708, + "nome": "Ourinhos", + "uf": "SP" + }, + { + "id": 3534807, + "nome": "Ouro Verde", + "uf": "SP" + }, + { + "id": 3534757, + "nome": "Ouroeste", + "uf": "SP" + }, + { + "id": 3534906, + "nome": "Pacaembu", + "uf": "SP" + }, + { + "id": 3535002, + "nome": "Palestina", + "uf": "SP" + }, + { + "id": 3535101, + "nome": "Palmares Paulista", + "uf": "SP" + }, + { + "id": 3535200, + "nome": "Palmeira d'Oeste", + "uf": "SP" + }, + { + "id": 3535309, + "nome": "Palmital", + "uf": "SP" + }, + { + "id": 3535408, + "nome": "Panorama", + "uf": "SP" + }, + { + "id": 3535507, + "nome": "Paraguaçu Paulista", + "uf": "SP" + }, + { + "id": 3535606, + "nome": "Paraibuna", + "uf": "SP" + }, + { + "id": 3535804, + "nome": "Paranapanema", + "uf": "SP" + }, + { + "id": 3535903, + "nome": "Paranapuã", + "uf": "SP" + }, + { + "id": 3536000, + "nome": "Parapuã", + "uf": "SP" + }, + { + "id": 3535705, + "nome": "Paraíso", + "uf": "SP" + }, + { + "id": 3536109, + "nome": "Pardinho", + "uf": "SP" + }, + { + "id": 3536208, + "nome": "Pariquera-Açu", + "uf": "SP" + }, + { + "id": 3536257, + "nome": "Parisi", + "uf": "SP" + }, + { + "id": 3536307, + "nome": "Patrocínio Paulista", + "uf": "SP" + }, + { + "id": 3536406, + "nome": "Paulicéia", + "uf": "SP" + }, + { + "id": 3536570, + "nome": "Paulistânia", + "uf": "SP" + }, + { + "id": 3536604, + "nome": "Paulo de Faria", + "uf": "SP" + }, + { + "id": 3536505, + "nome": "Paulínia", + "uf": "SP" + }, + { + "id": 3536703, + "nome": "Pederneiras", + "uf": "SP" + }, + { + "id": 3536802, + "nome": "Pedra Bela", + "uf": "SP" + }, + { + "id": 3536901, + "nome": "Pedranópolis", + "uf": "SP" + }, + { + "id": 3537008, + "nome": "Pedregulho", + "uf": "SP" + }, + { + "id": 3537107, + "nome": "Pedreira", + "uf": "SP" + }, + { + "id": 3537156, + "nome": "Pedrinhas Paulista", + "uf": "SP" + }, + { + "id": 3537206, + "nome": "Pedro de Toledo", + "uf": "SP" + }, + { + "id": 3537305, + "nome": "Penápolis", + "uf": "SP" + }, + { + "id": 3537404, + "nome": "Pereira Barreto", + "uf": "SP" + }, + { + "id": 3537503, + "nome": "Pereiras", + "uf": "SP" + }, + { + "id": 3537602, + "nome": "Peruíbe", + "uf": "SP" + }, + { + "id": 3537701, + "nome": "Piacatu", + "uf": "SP" + }, + { + "id": 3537800, + "nome": "Piedade", + "uf": "SP" + }, + { + "id": 3537909, + "nome": "Pilar do Sul", + "uf": "SP" + }, + { + "id": 3538006, + "nome": "Pindamonhangaba", + "uf": "SP" + }, + { + "id": 3538105, + "nome": "Pindorama", + "uf": "SP" + }, + { + "id": 3538204, + "nome": "Pinhalzinho", + "uf": "SP" + }, + { + "id": 3538303, + "nome": "Piquerobi", + "uf": "SP" + }, + { + "id": 3538501, + "nome": "Piquete", + "uf": "SP" + }, + { + "id": 3538600, + "nome": "Piracaia", + "uf": "SP" + }, + { + "id": 3538709, + "nome": "Piracicaba", + "uf": "SP" + }, + { + "id": 3538808, + "nome": "Piraju", + "uf": "SP" + }, + { + "id": 3538907, + "nome": "Pirajuí", + "uf": "SP" + }, + { + "id": 3539004, + "nome": "Pirangi", + "uf": "SP" + }, + { + "id": 3539103, + "nome": "Pirapora do Bom Jesus", + "uf": "SP" + }, + { + "id": 3539202, + "nome": "Pirapozinho", + "uf": "SP" + }, + { + "id": 3539301, + "nome": "Pirassununga", + "uf": "SP" + }, + { + "id": 3539400, + "nome": "Piratininga", + "uf": "SP" + }, + { + "id": 3539509, + "nome": "Pitangueiras", + "uf": "SP" + }, + { + "id": 3539608, + "nome": "Planalto", + "uf": "SP" + }, + { + "id": 3539707, + "nome": "Platina", + "uf": "SP" + }, + { + "id": 3539905, + "nome": "Poloni", + "uf": "SP" + }, + { + "id": 3540002, + "nome": "Pompéia", + "uf": "SP" + }, + { + "id": 3540101, + "nome": "Pongaí", + "uf": "SP" + }, + { + "id": 3540200, + "nome": "Pontal", + "uf": "SP" + }, + { + "id": 3540259, + "nome": "Pontalinda", + "uf": "SP" + }, + { + "id": 3540309, + "nome": "Pontes Gestal", + "uf": "SP" + }, + { + "id": 3540408, + "nome": "Populina", + "uf": "SP" + }, + { + "id": 3540507, + "nome": "Porangaba", + "uf": "SP" + }, + { + "id": 3540606, + "nome": "Porto Feliz", + "uf": "SP" + }, + { + "id": 3540705, + "nome": "Porto Ferreira", + "uf": "SP" + }, + { + "id": 3540754, + "nome": "Potim", + "uf": "SP" + }, + { + "id": 3540804, + "nome": "Potirendaba", + "uf": "SP" + }, + { + "id": 3539806, + "nome": "Poá", + "uf": "SP" + }, + { + "id": 3540853, + "nome": "Pracinha", + "uf": "SP" + }, + { + "id": 3540903, + "nome": "Pradópolis", + "uf": "SP" + }, + { + "id": 3541000, + "nome": "Praia Grande", + "uf": "SP" + }, + { + "id": 3541059, + "nome": "Pratânia", + "uf": "SP" + }, + { + "id": 3541109, + "nome": "Presidente Alves", + "uf": "SP" + }, + { + "id": 3541208, + "nome": "Presidente Bernardes", + "uf": "SP" + }, + { + "id": 3541307, + "nome": "Presidente Epitácio", + "uf": "SP" + }, + { + "id": 3541406, + "nome": "Presidente Prudente", + "uf": "SP" + }, + { + "id": 3541505, + "nome": "Presidente Venceslau", + "uf": "SP" + }, + { + "id": 3541604, + "nome": "Promissão", + "uf": "SP" + }, + { + "id": 3541653, + "nome": "Quadra", + "uf": "SP" + }, + { + "id": 3541703, + "nome": "Quatá", + "uf": "SP" + }, + { + "id": 3541802, + "nome": "Queiroz", + "uf": "SP" + }, + { + "id": 3541901, + "nome": "Queluz", + "uf": "SP" + }, + { + "id": 3542008, + "nome": "Quintana", + "uf": "SP" + }, + { + "id": 3542107, + "nome": "Rafard", + "uf": "SP" + }, + { + "id": 3542206, + "nome": "Rancharia", + "uf": "SP" + }, + { + "id": 3542305, + "nome": "Redenção da Serra", + "uf": "SP" + }, + { + "id": 3542404, + "nome": "Regente Feijó", + "uf": "SP" + }, + { + "id": 3542503, + "nome": "Reginópolis", + "uf": "SP" + }, + { + "id": 3542602, + "nome": "Registro", + "uf": "SP" + }, + { + "id": 3542701, + "nome": "Restinga", + "uf": "SP" + }, + { + "id": 3542800, + "nome": "Ribeira", + "uf": "SP" + }, + { + "id": 3542909, + "nome": "Ribeirão Bonito", + "uf": "SP" + }, + { + "id": 3543006, + "nome": "Ribeirão Branco", + "uf": "SP" + }, + { + "id": 3543105, + "nome": "Ribeirão Corrente", + "uf": "SP" + }, + { + "id": 3543253, + "nome": "Ribeirão Grande", + "uf": "SP" + }, + { + "id": 3543303, + "nome": "Ribeirão Pires", + "uf": "SP" + }, + { + "id": 3543402, + "nome": "Ribeirão Preto", + "uf": "SP" + }, + { + "id": 3543204, + "nome": "Ribeirão do Sul", + "uf": "SP" + }, + { + "id": 3543238, + "nome": "Ribeirão dos Índios", + "uf": "SP" + }, + { + "id": 3543600, + "nome": "Rifaina", + "uf": "SP" + }, + { + "id": 3543709, + "nome": "Rincão", + "uf": "SP" + }, + { + "id": 3543808, + "nome": "Rinópolis", + "uf": "SP" + }, + { + "id": 3543907, + "nome": "Rio Claro", + "uf": "SP" + }, + { + "id": 3544103, + "nome": "Rio Grande da Serra", + "uf": "SP" + }, + { + "id": 3544004, + "nome": "Rio das Pedras", + "uf": "SP" + }, + { + "id": 3544202, + "nome": "Riolândia", + "uf": "SP" + }, + { + "id": 3543501, + "nome": "Riversul", + "uf": "SP" + }, + { + "id": 3544251, + "nome": "Rosana", + "uf": "SP" + }, + { + "id": 3544301, + "nome": "Roseira", + "uf": "SP" + }, + { + "id": 3544509, + "nome": "Rubinéia", + "uf": "SP" + }, + { + "id": 3544400, + "nome": "Rubiácea", + "uf": "SP" + }, + { + "id": 3544608, + "nome": "Sabino", + "uf": "SP" + }, + { + "id": 3544707, + "nome": "Sagres", + "uf": "SP" + }, + { + "id": 3544806, + "nome": "Sales", + "uf": "SP" + }, + { + "id": 3544905, + "nome": "Sales Oliveira", + "uf": "SP" + }, + { + "id": 3545001, + "nome": "Salesópolis", + "uf": "SP" + }, + { + "id": 3545100, + "nome": "Salmourão", + "uf": "SP" + }, + { + "id": 3545159, + "nome": "Saltinho", + "uf": "SP" + }, + { + "id": 3545209, + "nome": "Salto", + "uf": "SP" + }, + { + "id": 3545407, + "nome": "Salto Grande", + "uf": "SP" + }, + { + "id": 3545308, + "nome": "Salto de Pirapora", + "uf": "SP" + }, + { + "id": 3545506, + "nome": "Sandovalina", + "uf": "SP" + }, + { + "id": 3545605, + "nome": "Santa Adélia", + "uf": "SP" + }, + { + "id": 3545704, + "nome": "Santa Albertina", + "uf": "SP" + }, + { + "id": 3546009, + "nome": "Santa Branca", + "uf": "SP" + }, + { + "id": 3545803, + "nome": "Santa Bárbara d'Oeste", + "uf": "SP" + }, + { + "id": 3546108, + "nome": "Santa Clara d'Oeste", + "uf": "SP" + }, + { + "id": 3546207, + "nome": "Santa Cruz da Conceição", + "uf": "SP" + }, + { + "id": 3546256, + "nome": "Santa Cruz da Esperança", + "uf": "SP" + }, + { + "id": 3546306, + "nome": "Santa Cruz das Palmeiras", + "uf": "SP" + }, + { + "id": 3546405, + "nome": "Santa Cruz do Rio Pardo", + "uf": "SP" + }, + { + "id": 3546504, + "nome": "Santa Ernestina", + "uf": "SP" + }, + { + "id": 3546603, + "nome": "Santa Fé do Sul", + "uf": "SP" + }, + { + "id": 3546702, + "nome": "Santa Gertrudes", + "uf": "SP" + }, + { + "id": 3546801, + "nome": "Santa Isabel", + "uf": "SP" + }, + { + "id": 3546900, + "nome": "Santa Lúcia", + "uf": "SP" + }, + { + "id": 3547007, + "nome": "Santa Maria da Serra", + "uf": "SP" + }, + { + "id": 3547106, + "nome": "Santa Mercedes", + "uf": "SP" + }, + { + "id": 3547403, + "nome": "Santa Rita d'Oeste", + "uf": "SP" + }, + { + "id": 3547502, + "nome": "Santa Rita do Passa Quatro", + "uf": "SP" + }, + { + "id": 3547601, + "nome": "Santa Rosa de Viterbo", + "uf": "SP" + }, + { + "id": 3547650, + "nome": "Santa Salete", + "uf": "SP" + }, + { + "id": 3547205, + "nome": "Santana da Ponte Pensa", + "uf": "SP" + }, + { + "id": 3547304, + "nome": "Santana de Parnaíba", + "uf": "SP" + }, + { + "id": 3547700, + "nome": "Santo Anastácio", + "uf": "SP" + }, + { + "id": 3547809, + "nome": "Santo André", + "uf": "SP" + }, + { + "id": 3547908, + "nome": "Santo Antônio da Alegria", + "uf": "SP" + }, + { + "id": 3548005, + "nome": "Santo Antônio de Posse", + "uf": "SP" + }, + { + "id": 3548054, + "nome": "Santo Antônio do Aracanguá", + "uf": "SP" + }, + { + "id": 3548104, + "nome": "Santo Antônio do Jardim", + "uf": "SP" + }, + { + "id": 3548203, + "nome": "Santo Antônio do Pinhal", + "uf": "SP" + }, + { + "id": 3548302, + "nome": "Santo Expedito", + "uf": "SP" + }, + { + "id": 3548500, + "nome": "Santos", + "uf": "SP" + }, + { + "id": 3548401, + "nome": "Santópolis do Aguapeí", + "uf": "SP" + }, + { + "id": 3551108, + "nome": "Sarapuí", + "uf": "SP" + }, + { + "id": 3551207, + "nome": "Sarutaiá", + "uf": "SP" + }, + { + "id": 3551306, + "nome": "Sebastianópolis do Sul", + "uf": "SP" + }, + { + "id": 3551405, + "nome": "Serra Azul", + "uf": "SP" + }, + { + "id": 3551603, + "nome": "Serra Negra", + "uf": "SP" + }, + { + "id": 3551504, + "nome": "Serrana", + "uf": "SP" + }, + { + "id": 3551702, + "nome": "Sertãozinho", + "uf": "SP" + }, + { + "id": 3551801, + "nome": "Sete Barras", + "uf": "SP" + }, + { + "id": 3551900, + "nome": "Severínia", + "uf": "SP" + }, + { + "id": 3552007, + "nome": "Silveiras", + "uf": "SP" + }, + { + "id": 3552106, + "nome": "Socorro", + "uf": "SP" + }, + { + "id": 3552205, + "nome": "Sorocaba", + "uf": "SP" + }, + { + "id": 3552304, + "nome": "Sud Mennucci", + "uf": "SP" + }, + { + "id": 3552403, + "nome": "Sumaré", + "uf": "SP" + }, + { + "id": 3552502, + "nome": "Suzano", + "uf": "SP" + }, + { + "id": 3552551, + "nome": "Suzanápolis", + "uf": "SP" + }, + { + "id": 3548609, + "nome": "São Bento do Sapucaí", + "uf": "SP" + }, + { + "id": 3548708, + "nome": "São Bernardo do Campo", + "uf": "SP" + }, + { + "id": 3548807, + "nome": "São Caetano do Sul", + "uf": "SP" + }, + { + "id": 3548906, + "nome": "São Carlos", + "uf": "SP" + }, + { + "id": 3549003, + "nome": "São Francisco", + "uf": "SP" + }, + { + "id": 3549409, + "nome": "São Joaquim da Barra", + "uf": "SP" + }, + { + "id": 3549508, + "nome": "São José da Bela Vista", + "uf": "SP" + }, + { + "id": 3549607, + "nome": "São José do Barreiro", + "uf": "SP" + }, + { + "id": 3549706, + "nome": "São José do Rio Pardo", + "uf": "SP" + }, + { + "id": 3549805, + "nome": "São José do Rio Preto", + "uf": "SP" + }, + { + "id": 3549904, + "nome": "São José dos Campos", + "uf": "SP" + }, + { + "id": 3549102, + "nome": "São João da Boa Vista", + "uf": "SP" + }, + { + "id": 3549201, + "nome": "São João das Duas Pontes", + "uf": "SP" + }, + { + "id": 3549250, + "nome": "São João de Iracema", + "uf": "SP" + }, + { + "id": 3549300, + "nome": "São João do Pau d'Alho", + "uf": "SP" + }, + { + "id": 3549953, + "nome": "São Lourenço da Serra", + "uf": "SP" + }, + { + "id": 3550001, + "nome": "São Luiz do Paraitinga", + "uf": "SP" + }, + { + "id": 3550100, + "nome": "São Manuel", + "uf": "SP" + }, + { + "id": 3550209, + "nome": "São Miguel Arcanjo", + "uf": "SP" + }, + { + "id": 3550308, + "nome": "São Paulo", + "uf": "SP" + }, + { + "id": 3550407, + "nome": "São Pedro", + "uf": "SP" + }, + { + "id": 3550506, + "nome": "São Pedro do Turvo", + "uf": "SP" + }, + { + "id": 3550605, + "nome": "São Roque", + "uf": "SP" + }, + { + "id": 3550704, + "nome": "São Sebastião", + "uf": "SP" + }, + { + "id": 3550803, + "nome": "São Sebastião da Grama", + "uf": "SP" + }, + { + "id": 3550902, + "nome": "São Simão", + "uf": "SP" + }, + { + "id": 3551009, + "nome": "São Vicente", + "uf": "SP" + }, + { + "id": 3552601, + "nome": "Tabapuã", + "uf": "SP" + }, + { + "id": 3552700, + "nome": "Tabatinga", + "uf": "SP" + }, + { + "id": 3552809, + "nome": "Taboão da Serra", + "uf": "SP" + }, + { + "id": 3552908, + "nome": "Taciba", + "uf": "SP" + }, + { + "id": 3553005, + "nome": "Taguaí", + "uf": "SP" + }, + { + "id": 3553104, + "nome": "Taiaçu", + "uf": "SP" + }, + { + "id": 3553203, + "nome": "Taiúva", + "uf": "SP" + }, + { + "id": 3553302, + "nome": "Tambaú", + "uf": "SP" + }, + { + "id": 3553401, + "nome": "Tanabi", + "uf": "SP" + }, + { + "id": 3553609, + "nome": "Tapiratiba", + "uf": "SP" + }, + { + "id": 3553500, + "nome": "Tapiraí", + "uf": "SP" + }, + { + "id": 3553658, + "nome": "Taquaral", + "uf": "SP" + }, + { + "id": 3553708, + "nome": "Taquaritinga", + "uf": "SP" + }, + { + "id": 3553807, + "nome": "Taquarituba", + "uf": "SP" + }, + { + "id": 3553856, + "nome": "Taquarivaí", + "uf": "SP" + }, + { + "id": 3553906, + "nome": "Tarabai", + "uf": "SP" + }, + { + "id": 3553955, + "nome": "Tarumã", + "uf": "SP" + }, + { + "id": 3554003, + "nome": "Tatuí", + "uf": "SP" + }, + { + "id": 3554102, + "nome": "Taubaté", + "uf": "SP" + }, + { + "id": 3554201, + "nome": "Tejupá", + "uf": "SP" + }, + { + "id": 3554300, + "nome": "Teodoro Sampaio", + "uf": "SP" + }, + { + "id": 3554409, + "nome": "Terra Roxa", + "uf": "SP" + }, + { + "id": 3554508, + "nome": "Tietê", + "uf": "SP" + }, + { + "id": 3554607, + "nome": "Timburi", + "uf": "SP" + }, + { + "id": 3554656, + "nome": "Torre de Pedra", + "uf": "SP" + }, + { + "id": 3554706, + "nome": "Torrinha", + "uf": "SP" + }, + { + "id": 3554755, + "nome": "Trabiju", + "uf": "SP" + }, + { + "id": 3554805, + "nome": "Tremembé", + "uf": "SP" + }, + { + "id": 3554904, + "nome": "Três Fronteiras", + "uf": "SP" + }, + { + "id": 3554953, + "nome": "Tuiuti", + "uf": "SP" + }, + { + "id": 3555109, + "nome": "Tupi Paulista", + "uf": "SP" + }, + { + "id": 3555000, + "nome": "Tupã", + "uf": "SP" + }, + { + "id": 3555208, + "nome": "Turiúba", + "uf": "SP" + }, + { + "id": 3555307, + "nome": "Turmalina", + "uf": "SP" + }, + { + "id": 3555356, + "nome": "Ubarana", + "uf": "SP" + }, + { + "id": 3555406, + "nome": "Ubatuba", + "uf": "SP" + }, + { + "id": 3555505, + "nome": "Ubirajara", + "uf": "SP" + }, + { + "id": 3555604, + "nome": "Uchoa", + "uf": "SP" + }, + { + "id": 3555703, + "nome": "União Paulista", + "uf": "SP" + }, + { + "id": 3555901, + "nome": "Uru", + "uf": "SP" + }, + { + "id": 3556008, + "nome": "Urupês", + "uf": "SP" + }, + { + "id": 3555802, + "nome": "Urânia", + "uf": "SP" + }, + { + "id": 3556107, + "nome": "Valentim Gentil", + "uf": "SP" + }, + { + "id": 3556206, + "nome": "Valinhos", + "uf": "SP" + }, + { + "id": 3556305, + "nome": "Valparaíso", + "uf": "SP" + }, + { + "id": 3556354, + "nome": "Vargem", + "uf": "SP" + }, + { + "id": 3556453, + "nome": "Vargem Grande Paulista", + "uf": "SP" + }, + { + "id": 3556404, + "nome": "Vargem Grande do Sul", + "uf": "SP" + }, + { + "id": 3556602, + "nome": "Vera Cruz", + "uf": "SP" + }, + { + "id": 3556701, + "nome": "Vinhedo", + "uf": "SP" + }, + { + "id": 3556800, + "nome": "Viradouro", + "uf": "SP" + }, + { + "id": 3556909, + "nome": "Vista Alegre do Alto", + "uf": "SP" + }, + { + "id": 3556958, + "nome": "Vitória Brasil", + "uf": "SP" + }, + { + "id": 3557006, + "nome": "Votorantim", + "uf": "SP" + }, + { + "id": 3557105, + "nome": "Votuporanga", + "uf": "SP" + }, + { + "id": 3556503, + "nome": "Várzea Paulista", + "uf": "SP" + }, + { + "id": 3557154, + "nome": "Zacarias", + "uf": "SP" + }, + { + "id": 3500402, + "nome": "Águas da Prata", + "uf": "SP" + }, + { + "id": 3500501, + "nome": "Águas de Lindóia", + "uf": "SP" + }, + { + "id": 3500550, + "nome": "Águas de Santa Bárbara", + "uf": "SP" + }, + { + "id": 3500600, + "nome": "Águas de São Pedro", + "uf": "SP" + }, + { + "id": 3501202, + "nome": "Álvares Florence", + "uf": "SP" + }, + { + "id": 3501301, + "nome": "Álvares Machado", + "uf": "SP" + }, + { + "id": 3501400, + "nome": "Álvaro de Carvalho", + "uf": "SP" + }, + { + "id": 3533809, + "nome": "Óleo", + "uf": "SP" + }, + { + "id": 1700251, + "nome": "Abreulândia", + "uf": "TO" + }, + { + "id": 1700301, + "nome": "Aguiarnópolis", + "uf": "TO" + }, + { + "id": 1700350, + "nome": "Aliança do Tocantins", + "uf": "TO" + }, + { + "id": 1700400, + "nome": "Almas", + "uf": "TO" + }, + { + "id": 1700707, + "nome": "Alvorada", + "uf": "TO" + }, + { + "id": 1701002, + "nome": "Ananás", + "uf": "TO" + }, + { + "id": 1701051, + "nome": "Angico", + "uf": "TO" + }, + { + "id": 1701101, + "nome": "Aparecida do Rio Negro", + "uf": "TO" + }, + { + "id": 1701309, + "nome": "Aragominas", + "uf": "TO" + }, + { + "id": 1701903, + "nome": "Araguacema", + "uf": "TO" + }, + { + "id": 1702158, + "nome": "Araguanã", + "uf": "TO" + }, + { + "id": 1702208, + "nome": "Araguatins", + "uf": "TO" + }, + { + "id": 1702000, + "nome": "Araguaçu", + "uf": "TO" + }, + { + "id": 1702109, + "nome": "Araguaína", + "uf": "TO" + }, + { + "id": 1702307, + "nome": "Arapoema", + "uf": "TO" + }, + { + "id": 1702406, + "nome": "Arraias", + "uf": "TO" + }, + { + "id": 1702554, + "nome": "Augustinópolis", + "uf": "TO" + }, + { + "id": 1702703, + "nome": "Aurora do Tocantins", + "uf": "TO" + }, + { + "id": 1702901, + "nome": "Axixá do Tocantins", + "uf": "TO" + }, + { + "id": 1703008, + "nome": "Babaçulândia", + "uf": "TO" + }, + { + "id": 1703057, + "nome": "Bandeirantes do Tocantins", + "uf": "TO" + }, + { + "id": 1703073, + "nome": "Barra do Ouro", + "uf": "TO" + }, + { + "id": 1703107, + "nome": "Barrolândia", + "uf": "TO" + }, + { + "id": 1703206, + "nome": "Bernardo Sayão", + "uf": "TO" + }, + { + "id": 1703305, + "nome": "Bom Jesus do Tocantins", + "uf": "TO" + }, + { + "id": 1703602, + "nome": "Brasilândia do Tocantins", + "uf": "TO" + }, + { + "id": 1703701, + "nome": "Brejinho de Nazaré", + "uf": "TO" + }, + { + "id": 1703800, + "nome": "Buriti do Tocantins", + "uf": "TO" + }, + { + "id": 1703826, + "nome": "Cachoeirinha", + "uf": "TO" + }, + { + "id": 1703842, + "nome": "Campos Lindos", + "uf": "TO" + }, + { + "id": 1703867, + "nome": "Cariri do Tocantins", + "uf": "TO" + }, + { + "id": 1703883, + "nome": "Carmolândia", + "uf": "TO" + }, + { + "id": 1703891, + "nome": "Carrasco Bonito", + "uf": "TO" + }, + { + "id": 1703909, + "nome": "Caseara", + "uf": "TO" + }, + { + "id": 1704105, + "nome": "Centenário", + "uf": "TO" + }, + { + "id": 1705102, + "nome": "Chapada da Natividade", + "uf": "TO" + }, + { + "id": 1704600, + "nome": "Chapada de Areia", + "uf": "TO" + }, + { + "id": 1705508, + "nome": "Colinas do Tocantins", + "uf": "TO" + }, + { + "id": 1716703, + "nome": "Colméia", + "uf": "TO" + }, + { + "id": 1705557, + "nome": "Combinado", + "uf": "TO" + }, + { + "id": 1705607, + "nome": "Conceição do Tocantins", + "uf": "TO" + }, + { + "id": 1706001, + "nome": "Couto Magalhães", + "uf": "TO" + }, + { + "id": 1706100, + "nome": "Cristalândia", + "uf": "TO" + }, + { + "id": 1706258, + "nome": "Crixás do Tocantins", + "uf": "TO" + }, + { + "id": 1706506, + "nome": "Darcinópolis", + "uf": "TO" + }, + { + "id": 1707009, + "nome": "Dianópolis", + "uf": "TO" + }, + { + "id": 1707108, + "nome": "Divinópolis do Tocantins", + "uf": "TO" + }, + { + "id": 1707207, + "nome": "Dois Irmãos do Tocantins", + "uf": "TO" + }, + { + "id": 1707306, + "nome": "Dueré", + "uf": "TO" + }, + { + "id": 1707405, + "nome": "Esperantina", + "uf": "TO" + }, + { + "id": 1707652, + "nome": "Figueirópolis", + "uf": "TO" + }, + { + "id": 1707702, + "nome": "Filadélfia", + "uf": "TO" + }, + { + "id": 1708205, + "nome": "Formoso do Araguaia", + "uf": "TO" + }, + { + "id": 1707553, + "nome": "Fátima", + "uf": "TO" + }, + { + "id": 1708304, + "nome": "Goianorte", + "uf": "TO" + }, + { + "id": 1709005, + "nome": "Goiatins", + "uf": "TO" + }, + { + "id": 1709302, + "nome": "Guaraí", + "uf": "TO" + }, + { + "id": 1709500, + "nome": "Gurupi", + "uf": "TO" + }, + { + "id": 1709807, + "nome": "Ipueiras", + "uf": "TO" + }, + { + "id": 1710508, + "nome": "Itacajá", + "uf": "TO" + }, + { + "id": 1710706, + "nome": "Itaguatins", + "uf": "TO" + }, + { + "id": 1710904, + "nome": "Itapiratins", + "uf": "TO" + }, + { + "id": 1711100, + "nome": "Itaporã do Tocantins", + "uf": "TO" + }, + { + "id": 1711506, + "nome": "Jaú do Tocantins", + "uf": "TO" + }, + { + "id": 1711803, + "nome": "Juarina", + "uf": "TO" + }, + { + "id": 1711902, + "nome": "Lagoa da Confusão", + "uf": "TO" + }, + { + "id": 1711951, + "nome": "Lagoa do Tocantins", + "uf": "TO" + }, + { + "id": 1712009, + "nome": "Lajeado", + "uf": "TO" + }, + { + "id": 1712157, + "nome": "Lavandeira", + "uf": "TO" + }, + { + "id": 1712405, + "nome": "Lizarda", + "uf": "TO" + }, + { + "id": 1712454, + "nome": "Luzinópolis", + "uf": "TO" + }, + { + "id": 1712504, + "nome": "Marianópolis do Tocantins", + "uf": "TO" + }, + { + "id": 1712702, + "nome": "Mateiros", + "uf": "TO" + }, + { + "id": 1712801, + "nome": "Maurilândia do Tocantins", + "uf": "TO" + }, + { + "id": 1713205, + "nome": "Miracema do Tocantins", + "uf": "TO" + }, + { + "id": 1713304, + "nome": "Miranorte", + "uf": "TO" + }, + { + "id": 1713700, + "nome": "Monte Santo do Tocantins", + "uf": "TO" + }, + { + "id": 1713601, + "nome": "Monte do Carmo", + "uf": "TO" + }, + { + "id": 1713957, + "nome": "Muricilândia", + "uf": "TO" + }, + { + "id": 1714203, + "nome": "Natividade", + "uf": "TO" + }, + { + "id": 1714302, + "nome": "Nazaré", + "uf": "TO" + }, + { + "id": 1714880, + "nome": "Nova Olinda", + "uf": "TO" + }, + { + "id": 1715002, + "nome": "Nova Rosalândia", + "uf": "TO" + }, + { + "id": 1715101, + "nome": "Novo Acordo", + "uf": "TO" + }, + { + "id": 1715150, + "nome": "Novo Alegre", + "uf": "TO" + }, + { + "id": 1715259, + "nome": "Novo Jardim", + "uf": "TO" + }, + { + "id": 1715507, + "nome": "Oliveira de Fátima", + "uf": "TO" + }, + { + "id": 1721000, + "nome": "Palmas", + "uf": "TO" + }, + { + "id": 1715705, + "nome": "Palmeirante", + "uf": "TO" + }, + { + "id": 1713809, + "nome": "Palmeiras do Tocantins", + "uf": "TO" + }, + { + "id": 1715754, + "nome": "Palmeirópolis", + "uf": "TO" + }, + { + "id": 1716208, + "nome": "Paranã", + "uf": "TO" + }, + { + "id": 1716109, + "nome": "Paraíso do Tocantins", + "uf": "TO" + }, + { + "id": 1716307, + "nome": "Pau D'Arco", + "uf": "TO" + }, + { + "id": 1716505, + "nome": "Pedro Afonso", + "uf": "TO" + }, + { + "id": 1716604, + "nome": "Peixe", + "uf": "TO" + }, + { + "id": 1716653, + "nome": "Pequizeiro", + "uf": "TO" + }, + { + "id": 1717008, + "nome": "Pindorama do Tocantins", + "uf": "TO" + }, + { + "id": 1717206, + "nome": "Piraquê", + "uf": "TO" + }, + { + "id": 1717503, + "nome": "Pium", + "uf": "TO" + }, + { + "id": 1717800, + "nome": "Ponte Alta do Bom Jesus", + "uf": "TO" + }, + { + "id": 1717909, + "nome": "Ponte Alta do Tocantins", + "uf": "TO" + }, + { + "id": 1718006, + "nome": "Porto Alegre do Tocantins", + "uf": "TO" + }, + { + "id": 1718204, + "nome": "Porto Nacional", + "uf": "TO" + }, + { + "id": 1718303, + "nome": "Praia Norte", + "uf": "TO" + }, + { + "id": 1718402, + "nome": "Presidente Kennedy", + "uf": "TO" + }, + { + "id": 1718451, + "nome": "Pugmil", + "uf": "TO" + }, + { + "id": 1718501, + "nome": "Recursolândia", + "uf": "TO" + }, + { + "id": 1718550, + "nome": "Riachinho", + "uf": "TO" + }, + { + "id": 1718758, + "nome": "Rio Sono", + "uf": "TO" + }, + { + "id": 1718659, + "nome": "Rio da Conceição", + "uf": "TO" + }, + { + "id": 1718709, + "nome": "Rio dos Bois", + "uf": "TO" + }, + { + "id": 1718808, + "nome": "Sampaio", + "uf": "TO" + }, + { + "id": 1718840, + "nome": "Sandolândia", + "uf": "TO" + }, + { + "id": 1718865, + "nome": "Santa Fé do Araguaia", + "uf": "TO" + }, + { + "id": 1718881, + "nome": "Santa Maria do Tocantins", + "uf": "TO" + }, + { + "id": 1718899, + "nome": "Santa Rita do Tocantins", + "uf": "TO" + }, + { + "id": 1718907, + "nome": "Santa Rosa do Tocantins", + "uf": "TO" + }, + { + "id": 1719004, + "nome": "Santa Tereza do Tocantins", + "uf": "TO" + }, + { + "id": 1720002, + "nome": "Santa Terezinha do Tocantins", + "uf": "TO" + }, + { + "id": 1720655, + "nome": "Silvanópolis", + "uf": "TO" + }, + { + "id": 1720853, + "nome": "Sucupira", + "uf": "TO" + }, + { + "id": 1720101, + "nome": "São Bento do Tocantins", + "uf": "TO" + }, + { + "id": 1720150, + "nome": "São Félix do Tocantins", + "uf": "TO" + }, + { + "id": 1720200, + "nome": "São Miguel do Tocantins", + "uf": "TO" + }, + { + "id": 1720259, + "nome": "São Salvador do Tocantins", + "uf": "TO" + }, + { + "id": 1720309, + "nome": "São Sebastião do Tocantins", + "uf": "TO" + }, + { + "id": 1720499, + "nome": "São Valério", + "uf": "TO" + }, + { + "id": 1720804, + "nome": "Sítio Novo do Tocantins", + "uf": "TO" + }, + { + "id": 1708254, + "nome": "Tabocão", + "uf": "TO" + }, + { + "id": 1720903, + "nome": "Taguatinga", + "uf": "TO" + }, + { + "id": 1720937, + "nome": "Taipas do Tocantins", + "uf": "TO" + }, + { + "id": 1720978, + "nome": "Talismã", + "uf": "TO" + }, + { + "id": 1721208, + "nome": "Tocantinópolis", + "uf": "TO" + }, + { + "id": 1721109, + "nome": "Tocantínia", + "uf": "TO" + }, + { + "id": 1721257, + "nome": "Tupirama", + "uf": "TO" + }, + { + "id": 1721307, + "nome": "Tupiratins", + "uf": "TO" + }, + { + "id": 1722081, + "nome": "Wanderlândia", + "uf": "TO" + }, + { + "id": 1722107, + "nome": "Xambioá", + "uf": "TO" + } +] diff --git a/tools/municipio_gen/src/lib.rs b/tools/municipio_gen/src/lib.rs new file mode 100644 index 0000000..083fd66 --- /dev/null +++ b/tools/municipio_gen/src/lib.rs @@ -0,0 +1,174 @@ +use serde_json::{Map, Value}; +use std::collections::HashSet; +use std::fmt::Write as _; +use std::fs; +use std::path::Path; + +const STATES: [&str; 27] = [ + "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", + "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SP", "TO", +]; + +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct Municipio { + pub id: u32, + pub nome: String, + pub uf: String, +} + +pub fn parse_and_normalize(input: &str) -> Result, String> { + let value: Value = + serde_json::from_str(input).map_err(|error| format!("invalid JSON: {error}"))?; + let entries = value + .as_array() + .ok_or_else(|| "IBGE JSON root must be an array".to_owned())?; + if entries.is_empty() { + return Err("IBGE JSON must contain at least one municipality".to_owned()); + } + + let mut seen = HashSet::with_capacity(entries.len()); + let mut municipalities = Vec::with_capacity(entries.len()); + for entry in entries { + let id_u64 = entry + .get("id") + .and_then(Value::as_u64) + .ok_or_else(|| "municipality id must be an unsigned integer".to_owned())?; + let id = + u32::try_from(id_u64).map_err(|_| format!("municipality id {id_u64} exceeds u32"))?; + if !(1_000_000..=9_999_999).contains(&id) { + return Err(format!("municipality id {id} must have seven digits")); + } + if !seen.insert(id) { + return Err(format!("duplicate municipality id {id}")); + } + + let nome = entry + .get("nome") + .and_then(Value::as_str) + .filter(|name| !name.is_empty()) + .ok_or_else(|| format!("municipality {id} has no name"))?; + let uf = + extract_uf(entry).ok_or_else(|| format!("cannot determine UF for {nome} ({id})"))?; + if !STATES.contains(&uf) { + return Err(format!("municipality {nome} ({id}) has invalid UF {uf}")); + } + + municipalities.push(Municipio { + id, + nome: nome.to_owned(), + uf: uf.to_owned(), + }); + } + + municipalities.sort_by(|a, b| { + state_index(&a.uf) + .cmp(&state_index(&b.uf)) + .then_with(|| a.nome.cmp(&b.nome)) + .then_with(|| a.id.cmp(&b.id)) + }); + Ok(municipalities) +} + +fn extract_uf(entry: &Value) -> Option<&str> { + entry + .get("uf") + .or_else(|| entry.get("uf_sigla")) + .and_then(Value::as_str) + .or_else(|| { + entry + .pointer("/microrregiao/mesorregiao/UF/sigla")? + .as_str() + }) + .or_else(|| { + entry + .pointer("/regiao-imediata/regiao-intermediaria/UF/sigla")? + .as_str() + }) +} + +fn state_index(uf: &str) -> usize { + STATES.iter().position(|state| *state == uf).unwrap() +} + +pub fn render_source(municipalities: &[Municipio]) -> Result { + let values = municipalities + .iter() + .map(|municipio| { + let mut value = Map::new(); + value.insert("id".to_owned(), Value::from(municipio.id)); + value.insert("nome".to_owned(), Value::from(municipio.nome.clone())); + value.insert("uf".to_owned(), Value::from(municipio.uf.clone())); + Value::Object(value) + }) + .collect::>(); + let mut output = serde_json::to_string_pretty(&values) + .map_err(|error| format!("failed to serialize normalized JSON: {error}"))?; + output.push('\n'); + Ok(output) +} + +pub fn render_module(municipalities: &[Municipio]) -> String { + let mut output = String::new(); + writeln!( + output, + "// @generated by //tools/municipio_gen; do not edit." + ) + .unwrap(); + writeln!(output, "use super::Municipio;").unwrap(); + writeln!(output, "use crate::uf::State;").unwrap(); + writeln!(output).unwrap(); + writeln!(output, "#[allow(clippy::unreadable_literal)]").unwrap(); + writeln!(output, "pub const ALL: &[Municipio] = &[").unwrap(); + for municipio in municipalities { + writeln!(output, " Municipio {{").unwrap(); + writeln!(output, " ibge_code: {},", municipio.id).unwrap(); + writeln!(output, " name: {:?},", municipio.nome).unwrap(); + writeln!(output, " state: State::{},", municipio.uf).unwrap(); + writeln!(output, " }},").unwrap(); + } + writeln!(output, "];").unwrap(); + output +} + +fn validate_complete(municipalities: &[Municipio]) -> Result<(), String> { + if municipalities.len() < 5_500 { + return Err(format!( + "IBGE response is incomplete: expected at least 5500 municipalities, got {}", + municipalities.len() + )); + } + for state in STATES { + if !municipalities.iter().any(|municipio| municipio.uf == state) { + return Err(format!("IBGE response has no municipalities for {state}")); + } + } + Ok(()) +} + +pub fn generate( + input: &Path, + target: &Path, + source: &Path, + update_source: bool, +) -> Result { + let input_text = fs::read_to_string(input) + .map_err(|error| format!("failed to read {}: {error}", input.display()))?; + let municipalities = parse_and_normalize(&input_text)?; + validate_complete(&municipalities)?; + let generated = render_module(&municipalities); + let changed = fs::read_to_string(target).map_or(true, |current| current != generated); + + if update_source { + fs::write(source, render_source(&municipalities)?) + .map_err(|error| format!("failed to write {}: {error}", source.display()))?; + } + fs::write(target, generated) + .map_err(|error| format!("failed to write {}: {error}", target.display()))?; + Ok(changed) +} + +pub fn has_drift(input: &str, target: &str) -> Result { + let municipalities = parse_and_normalize(input)?; + validate_complete(&municipalities)?; + Ok(render_module(&municipalities) != target) +} diff --git a/tools/municipio_gen/src/main.rs b/tools/municipio_gen/src/main.rs new file mode 100644 index 0000000..7dcb61c --- /dev/null +++ b/tools/municipio_gen/src/main.rs @@ -0,0 +1,72 @@ +use municipio_gen_lib::{generate, has_drift}; +use std::env; +use std::fs; +use std::path::{Path, PathBuf}; +use std::process::ExitCode; + +fn main() -> ExitCode { + match run() { + Ok(()) => ExitCode::SUCCESS, + Err((code, message)) => { + eprintln!("municipio_gen: {message}"); + ExitCode::from(code) + } + } +} + +fn run() -> Result<(), (u8, String)> { + let root = env::var_os("BUILD_WORKSPACE_DIRECTORY") + .map(PathBuf::from) + .unwrap_or_else(|| env::current_dir().expect("cannot determine current directory")); + let source = root.join("tools/municipio_gen/ibge_municipios.json"); + let target = root.join("core/src/municipio/generated.rs"); + let mut args = env::args().skip(1); + let command = args.next().unwrap_or_else(|| "generate".to_owned()); + + let mut input = source.clone(); + let mut update_source = false; + while let Some(arg) = args.next() { + match arg.as_str() { + "--input" => { + input = PathBuf::from( + args.next() + .ok_or_else(|| data_error("--input requires a path"))?, + ); + } + "--update-source" => update_source = true, + _ => return Err(data_error(format!("unknown argument: {arg}"))), + } + } + + match command.as_str() { + "generate" => { + let changed = generate(&input, &target, &source, update_source).map_err(data_error)?; + println!( + "municipality data {}", + if changed { "updated" } else { "is current" } + ); + Ok(()) + } + "check" => { + let input_text = fs::read_to_string(&input).map_err(io_error(&input))?; + let target_text = fs::read_to_string(&target).map_err(io_error(&target))?; + if has_drift(&input_text, &target_text).map_err(data_error)? { + Err((3, "generated municipality data has drift; run `bazel run //tools/municipio_gen -- generate`".to_owned())) + } else { + println!("generated municipality data is current"); + Ok(()) + } + } + _ => Err(data_error(format!( + "unknown command: {command}; expected generate or check" + ))), + } +} + +fn data_error(message: impl Into) -> (u8, String) { + (2, message.into()) +} + +fn io_error(path: &Path) -> impl FnOnce(std::io::Error) -> (u8, String) + '_ { + move |error| (2, format!("failed to access {}: {error}", path.display())) +} diff --git a/tools/municipio_gen/tests/drift.rs b/tools/municipio_gen/tests/drift.rs new file mode 100644 index 0000000..ebc0644 --- /dev/null +++ b/tools/municipio_gen/tests/drift.rs @@ -0,0 +1,44 @@ +use municipio_gen_lib::{has_drift, parse_and_normalize, render_source}; + +#[test] +fn checked_in_municipality_data_has_no_drift() { + let source = include_str!("../ibge_municipios.json"); + let target = include_str!("../../../core/src/municipio/generated.rs"); + let normalized = parse_and_normalize(source).expect("snapshot must be valid"); + assert_eq!( + render_source(&normalized).unwrap(), + source, + "IBGE snapshot is not canonical" + ); + assert!( + !has_drift(source, target).expect("snapshot and generated Rust must be valid"), + "municipality data has drift; run `bazel run //tools/municipio_gen -- generate`" + ); +} + +#[test] +fn api_fixture_is_normalized_and_sorted_deterministically() { + let fixture = include_str!("ibge_api_fixture.json"); + let normalized = parse_and_normalize(fixture).expect("fixture must match the IBGE API schema"); + assert_eq!(normalized.len(), 2); + assert_eq!(normalized[0].id, 1_200_013); + assert_eq!(normalized[0].uf, "AC"); + assert_eq!(normalized[1].id, 3_550_308); + assert_eq!(normalized[1].uf, "SP"); + + let expected = concat!( + "[\n", + " {\n", + " \"id\": 1200013,\n", + " \"nome\": \"Acrelândia\",\n", + " \"uf\": \"AC\"\n", + " },\n", + " {\n", + " \"id\": 3550308,\n", + " \"nome\": \"São Paulo\",\n", + " \"uf\": \"SP\"\n", + " }\n", + "]\n", + ); + assert_eq!(render_source(&normalized).unwrap(), expected); +} diff --git a/tools/municipio_gen/tests/ibge_api_fixture.json b/tools/municipio_gen/tests/ibge_api_fixture.json new file mode 100644 index 0000000..95e9087 --- /dev/null +++ b/tools/municipio_gen/tests/ibge_api_fixture.json @@ -0,0 +1,25 @@ +[ + { + "id": 3550308, + "nome": "São Paulo", + "microrregiao": null, + "regiao-imediata": { + "regiao-intermediaria": { + "UF": { + "sigla": "SP" + } + } + } + }, + { + "id": 1200013, + "nome": "Acrelândia", + "microrregiao": { + "mesorregiao": { + "UF": { + "sigla": "AC" + } + } + } + } +] diff --git a/tools/nix_tools.bzl b/tools/nix_tools.bzl new file mode 100644 index 0000000..be97d30 --- /dev/null +++ b/tools/nix_tools.bzl @@ -0,0 +1,24 @@ +def _cbindgen_repository_impl(repository_ctx): + executable = repository_ctx.os.environ.get("CBINDGEN") + if not executable: + fail("CBINDGEN is not set; run Bazel through `nix develop`") + + executable_path = repository_ctx.path(executable) + if not executable_path.exists: + fail("CBINDGEN does not exist: {}".format(executable)) + + repository_ctx.symlink(executable_path, "cbindgen") + repository_ctx.file( + "BUILD.bazel", + """exports_files( + ["cbindgen"], + visibility = ["//visibility:public"], +) +""", + ) + +cbindgen_repository = repository_rule( + implementation = _cbindgen_repository_impl, + configure = True, + environ = ["CBINDGEN"], +) diff --git a/tools/parity_gen/BUILD.bazel b/tools/parity_gen/BUILD.bazel index 97d4d02..677d2e4 100644 --- a/tools/parity_gen/BUILD.bazel +++ b/tools/parity_gen/BUILD.bazel @@ -5,6 +5,10 @@ exports_files(["Cargo.toml"] + glob(["src/**/*.rs"])) rust_binary( name = "parity_gen", srcs = ["src/main.rs"], - deps = ["//core:stdbr-core", "@crates//:serde_json", "@crates//:ureq"], visibility = ["//tests/parity:__pkg__"], + deps = [ + "//core:stdbr-core", + "@crates//:serde_json", + "@crates//:ureq", + ], ) diff --git a/tools/quality/quality.sh b/tools/quality/quality.sh new file mode 100755 index 0000000..0fdf5b6 --- /dev/null +++ b/tools/quality/quality.sh @@ -0,0 +1,102 @@ +#!/usr/bin/env bash +set -euo pipefail + +repo_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)" +cd "$repo_root" + +jobs="${QUALITY_JOBS:-2}" +memory_mb="${QUALITY_MEMORY_MB:-4096}" +coverage_min_lines="${COVERAGE_MIN_LINES:-95}" +export CARGO_BUILD_JOBS="${CARGO_BUILD_JOBS:-$jobs}" +export CARGO_INCREMENTAL="${CARGO_INCREMENTAL:-0}" + +run() { + printf '+ ' + printf '%q ' "$@" + printf '\n' + "$@" +} + +flake() { + run nix flake check path:. --no-update-lock-file --max-jobs "$jobs" --cores "$jobs" +} + +bazel_gate() { + run bazel test \ + --jobs="$jobs" \ + --local_resources="memory=$memory_mb" \ + //:all_tests +} + +rust() { + run cargo fmt --all -- --check + run cargo clippy --locked --workspace --all-targets --all-features -- -D warnings + run env RUSTDOCFLAGS=-Dwarnings cargo doc --locked \ + --package stdbr-core --package stdbr --all-features --no-deps +} + +coverage() { + run cargo llvm-cov --locked --package stdbr-core --all-features \ + --jobs "$jobs" --fail-under-lines "$coverage_min_lines" +} + +fuzz_build() { + : "${FUZZ_CARGO:?FUZZ_CARGO is provided by the Nix devshell}" + : "${FUZZ_RUSTC:?FUZZ_RUSTC is provided by the Nix devshell}" + run env RUSTC="$FUZZ_RUSTC" "$FUZZ_CARGO" fuzz build --fuzz-dir fuzz +} + +msrv() { + : "${MSRV_CARGO:?MSRV_CARGO is provided by the Nix devshell}" + : "${MSRV_RUSTC:?MSRV_RUSTC is provided by the Nix devshell}" + run env RUSTC="$MSRV_RUSTC" "$MSRV_CARGO" check \ + --locked --package stdbr-core --package stdbr --all-features +} + +no_std() { + run cargo check --locked --package stdbr-core --no-default-features + run cargo check --locked --package stdbr --no-default-features +} + +audit() { + run cargo audit --deny warnings +} + +semver() { + : "${SEMVER_TOOLCHAIN_BIN:?SEMVER_TOOLCHAIN_BIN is provided by the Nix devshell}" + run env PATH="$SEMVER_TOOLCHAIN_BIN:$PATH" cargo semver-checks check-release --package stdbr-core + run env PATH="$SEMVER_TOOLCHAIN_BIN:$PATH" cargo semver-checks check-release --package stdbr +} + +usage() { + printf 'usage: %s {all|flake|bazel|rust|coverage|fuzz-build|msrv|no-std|audit|semver}\n' "$0" >&2 + exit 2 +} + +case "${1:-all}" in + all) + flake + bazel_gate + rust + coverage + msrv + no_std + audit + semver + ;; + flake | rust | coverage | msrv | audit | semver) + "$1" + ;; + fuzz-build) + fuzz_build + ;; + bazel) + bazel_gate + ;; + no-std) + no_std + ;; + *) + usage + ;; +esac diff --git a/tools/release/package-ffi.sh b/tools/release/package-ffi.sh new file mode 100755 index 0000000..6a6ebe9 --- /dev/null +++ b/tools/release/package-ffi.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +target=${1:?Rust target is required} +header=${2:?header path is required} +output_dir=${3:?output directory is required} +license=${4:-LICENSE} +release_dir="target/$target/release" +archive_name="stdbr-ffi-$target" +work_dir=$(mktemp -d) +trap 'rm -rf "$work_dir"' EXIT +archive_dir="$work_dir/$archive_name" + +case "$target" in + *-linux-*) libraries=(libstdbr_ffi.a libstdbr_ffi.so) ;; + *-apple-darwin) libraries=(libstdbr_ffi.a libstdbr_ffi.dylib) ;; + *-windows-msvc) libraries=(stdbr_ffi.dll stdbr_ffi.lib) ;; + *) echo "unsupported FFI target: $target" >&2; exit 1 ;; +esac + +mkdir -p "$archive_dir" "$output_dir" +output_dir=$(realpath "$output_dir") +cp "$header" "$archive_dir/stdbr.h" +cp "$license" "$archive_dir/LICENSE" +for library in "${libraries[@]}"; do + test -f "$release_dir/$library" + cp "$release_dir/$library" "$archive_dir/$library" +done + +tar -C "$work_dir" -czf "$output_dir/$archive_name.tar.gz" "$archive_name" diff --git a/tools/release/package-node.sh b/tools/release/package-node.sh new file mode 100755 index 0000000..32c15b3 --- /dev/null +++ b/tools/release/package-node.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -euo pipefail + +native_dir=${1:?native artifact directory is required} +output_dir=${2:?output directory is required} +source_dir=${3:-bindings/nodejs} +script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd) +repo_root=$(cd -- "$script_dir/../.." && pwd) +work_dir=$(mktemp -d) +trap 'rm -rf "$work_dir"' EXIT +staging_dir="$work_dir/nodejs" + +declare -A binaries=( + [darwin-arm64]=stdbr.darwin-arm64.node + [darwin-x64]=stdbr.darwin-x64.node + [linux-arm64-gnu]=stdbr.linux-arm64-gnu.node + [linux-x64-gnu]=stdbr.linux-x64-gnu.node + [linux-x64-musl]=stdbr.linux-x64-musl.node + [win32-x64-msvc]=stdbr.win32-x64-msvc.node +) + +mkdir -p "$output_dir" +output_dir=$(realpath "$output_dir") +cp -R "$source_dir" "$staging_dir" +rm -rf "$staging_dir/node_modules" "$staging_dir/target" +node "$script_dir/sync-npm-version.mjs" "$staging_dir" +cp "$repo_root/LICENSE" "$staging_dir/LICENSE" + +for platform in "${!binaries[@]}"; do + binary=${binaries[$platform]} + test -f "$native_dir/$binary" + test -d "$staging_dir/npm/$platform" + cp "$repo_root/LICENSE" "$staging_dir/npm/$platform/LICENSE" + cp "$native_dir/$binary" "$staging_dir/npm/$platform/$binary" + npm pack "$staging_dir/npm/$platform" --ignore-scripts --pack-destination "$output_dir" +done + +npm pack "$staging_dir" --ignore-scripts --pack-destination "$output_dir" + +packages=("$output_dir"/*.tgz) +if [[ ${#packages[@]} -ne 7 ]]; then + echo "expected 7 npm packages, found ${#packages[@]}" >&2 + exit 1 +fi diff --git a/tools/release/package-wasm.mjs b/tools/release/package-wasm.mjs new file mode 100644 index 0000000..2bf55ae --- /dev/null +++ b/tools/release/package-wasm.mjs @@ -0,0 +1,28 @@ +import { copyFile, mkdir, readFile, writeFile } from "node:fs/promises"; +import { dirname, resolve } from "node:path"; +import { spawnSync } from "node:child_process"; + +const [generatedDirectory, sourceManifestPath, outputDirectory] = process.argv.slice(2); +if (!generatedDirectory || !sourceManifestPath || !outputDirectory) { + throw new Error("usage: package-wasm.mjs GENERATED_DIR SOURCE_PACKAGE_JSON OUTPUT_DIR"); +} + +const generatedManifestPath = resolve(generatedDirectory, "package.json"); +const generated = JSON.parse(await readFile(generatedManifestPath, "utf8")); +const source = JSON.parse(await readFile(sourceManifestPath, "utf8")); + +generated.name = source.name; +generated.version = source.version; +generated.license = source.license; +generated.publishConfig = source.publishConfig; + +await writeFile(generatedManifestPath, `${JSON.stringify(generated, null, 2)}\n`); +await copyFile(resolve(dirname(sourceManifestPath), "../../LICENSE"), resolve(generatedDirectory, "LICENSE")); +await mkdir(outputDirectory, { recursive: true }); + +const result = spawnSync( + process.platform === "win32" ? "npm.cmd" : "npm", + ["pack", resolve(generatedDirectory), "--ignore-scripts", "--pack-destination", resolve(outputDirectory)], + { stdio: "inherit" }, +); +if (result.status !== 0) process.exit(result.status ?? 1); diff --git a/tools/release/publish-crates.sh b/tools/release/publish-crates.sh new file mode 100755 index 0000000..7d352a9 --- /dev/null +++ b/tools/release/publish-crates.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +set -euo pipefail + +artifact_dir=${1:?crate artifact directory is required} +version=${2:?release version is required} +work_dir=$(mktemp -d) +trap 'rm -rf "$work_dir"' EXIT + +publish_crate() { + local name=$1 + local archive="$artifact_dir/$name-$version.crate" + local status + + test -f "$archive" + status=$(curl --silent --show-error --output /dev/null --write-out '%{http_code}' \ + "https://crates.io/api/v1/crates/$name/$version") + case "$status" in + 200) echo "$name $version already exists on crates.io; skipping"; return ;; + 404) ;; + *) echo "crates.io returned HTTP $status for $name $version" >&2; exit 1 ;; + esac + + tar -xzf "$archive" -C "$work_dir" + cargo publish --no-verify --manifest-path "$work_dir/$name-$version/Cargo.toml" +} + +publish_crate stdbr-core + +for attempt in {1..10}; do + if publish_crate stdbr; then + exit 0 + fi + if [[ $attempt -eq 10 ]]; then + echo "stdbr could not be published after $attempt attempts" >&2 + exit 1 + fi + sleep 15 +done diff --git a/tools/release/publish-npm.sh b/tools/release/publish-npm.sh new file mode 100755 index 0000000..83163fe --- /dev/null +++ b/tools/release/publish-npm.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -euo pipefail + +artifact_dir=${1:?npm artifact directory is required} +tag=${2:?npm dist-tag is required} + +publish_package() { + local archive=$1 + local metadata name version encoded status + metadata=$(tar -xOf "$archive" package/package.json) + name=$(node -e 'const p=JSON.parse(process.argv[1]); process.stdout.write(p.name)' "$metadata") + version=$(node -e 'const p=JSON.parse(process.argv[1]); process.stdout.write(p.version)' "$metadata") + encoded=$(node -e 'process.stdout.write(encodeURIComponent(process.argv[1]))' "$name") + if [[ "$version" == *-* && "$tag" == latest ]]; then + echo "refusing to publish prerelease $name@$version with the latest dist-tag" >&2 + exit 1 + fi + status=$(curl --silent --show-error --output /dev/null --write-out '%{http_code}' \ + "https://registry.npmjs.org/$encoded/$version") + + case "$status" in + 200) echo "$name@$version already exists on npm; skipping" ;; + 404) npm publish "$archive" --ignore-scripts --access public --tag "$tag" ;; + *) echo "npm registry returned HTTP $status for $name@$version" >&2; exit 1 ;; + esac +} + +main_package='' +package_count=0 +for archive in "$artifact_dir"/*.tgz; do + test -f "$archive" + package_count=$((package_count + 1)) + metadata=$(tar -xOf "$archive" package/package.json) + name=$(node -e 'const p=JSON.parse(process.argv[1]); process.stdout.write(p.name)' "$metadata") + if [[ "$name" == '@stdbr/stdbr' ]]; then + main_package=$archive + else + publish_package "$archive" + fi +done + +if [[ $package_count -gt 1 ]]; then + test -n "$main_package" + publish_package "$main_package" +fi diff --git a/tools/release/sync-npm-version.mjs b/tools/release/sync-npm-version.mjs new file mode 100644 index 0000000..9eccc6e --- /dev/null +++ b/tools/release/sync-npm-version.mjs @@ -0,0 +1,41 @@ +import { readFile, writeFile } from "node:fs/promises"; +import { join, resolve } from "node:path"; + +const sourceDirectory = resolve(process.argv[2] ?? ""); +if (!process.argv[2]) { + throw new Error("usage: sync-npm-version.mjs NODE_PACKAGE_DIR"); +} + +async function readJson(path) { + return JSON.parse(await readFile(path, "utf8")); +} + +async function writeJson(path, value) { + await writeFile(path, `${JSON.stringify(value, null, 2)}\n`); +} + +const mainManifestPath = join(sourceDirectory, "package.json"); +const mainManifest = await readJson(mainManifestPath); +const version = mainManifest.version; +if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(version)) { + throw new Error(`invalid package version: ${version}`); +} + +for (const dependency of Object.keys(mainManifest.optionalDependencies ?? {})) { + mainManifest.optionalDependencies[dependency] = version; +} +await writeJson(mainManifestPath, mainManifest); + +for (const platform of [ + "darwin-arm64", + "darwin-x64", + "linux-arm64-gnu", + "linux-x64-gnu", + "linux-x64-musl", + "win32-x64-msvc", +]) { + const manifestPath = join(sourceDirectory, "npm", platform, "package.json"); + const manifest = await readJson(manifestPath); + manifest.version = version; + await writeJson(manifestPath, manifest); +} diff --git a/tools/rules_rust_extras/cbindgen.bzl b/tools/rules_rust_extras/cbindgen.bzl index efd2c26..9d7f574 100644 --- a/tools/rules_rust_extras/cbindgen.bzl +++ b/tools/rules_rust_extras/cbindgen.bzl @@ -1,30 +1,19 @@ def _cbindgen_impl(ctx): output = ctx.actions.declare_file(ctx.attr.header_name) - cmd = " ".join([ - "cbindgen", - "--config", - ctx.file.config.path, - "--lockfile", - ctx.file.lockfile.path, - "--crate", - ctx.attr.crate_name, - "--output", - output.path, - ctx.file.manifest.dirname, - ]) + args = ctx.actions.args() + args.add("--config") + args.add(ctx.file.config) + args.add("--output") + args.add(output) + args.add(ctx.file.crate_root) - all_inputs = ( - ctx.files.srcs + - ctx.files.workspace_srcs + - [ctx.file.config, ctx.file.lockfile, ctx.file.manifest] - ) - - ctx.actions.run_shell( - inputs = all_inputs, + ctx.actions.run( + executable = ctx.executable._cbindgen, + arguments = [args], + inputs = depset(ctx.files.srcs + [ctx.file.config, ctx.file.crate_root]), outputs = [output], - command = cmd, - use_default_shell_env = True, + tools = [ctx.attr._cbindgen[DefaultInfo].files_to_run], mnemonic = "Cbindgen", progress_message = "Generating C header %{output}", ) @@ -44,31 +33,29 @@ cbindgen = rule( attrs = { "srcs": attr.label_list( allow_files = [".rs"], - doc = "Rust source files of the FFI crate.", + mandatory = True, + doc = "All local Rust source files parsed by cbindgen.", + ), + "crate_root": attr.label( + allow_single_file = [".rs"], + mandatory = True, + doc = "Root Rust source file, normally src/lib.rs.", ), "config": attr.label( allow_single_file = [".toml"], + mandatory = True, doc = "cbindgen.toml configuration file.", ), - "manifest": attr.label( - allow_single_file = ["Cargo.toml"], - doc = "Cargo.toml of the workspace root.", - ), - "lockfile": attr.label( - allow_single_file = ["Cargo.lock"], - doc = "Cargo.lock of the workspace.", - ), - "workspace_srcs": attr.label_list( - allow_files = True, - doc = "All workspace Cargo.toml + source files needed by cargo metadata.", - ), - "crate_name": attr.string( - doc = "Name of the crate to generate bindings for.", - ), "header_name": attr.string( default = "stdbr.h", doc = "Name of the output header file.", ), + "_cbindgen": attr.label( + default = Label("@nix_cbindgen//:cbindgen"), + allow_files = True, + executable = True, + cfg = "exec", + ), }, - doc = "Generates a C header file from Rust sources using cbindgen.", + doc = "Generates a C header from local Rust source files.", )