[
  {
    "path": ".editorconfig",
    "content": "# Suppress: EC103\n# EditorConfig is awesome:http://EditorConfig.org\n\n# top-most EditorConfig file\nroot = true\n\n# Don't use tabs for indentation.\n[*]\nindent_style = space\n# (Please don't specify an indent_size here; that has too many unintended consequences.)\n\n# Code files\n[*.{cs,csx,vb,vbx}]\nindent_size = 4\n\n# Xml project files\n[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]\nindent_size = 2\n\n# Xml config files\n[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]\nindent_size = 2\n\n# JSON files\n[*.json]\nindent_size = 2\n\n# Dotnet code style settings:\n[*.{cs,vb}]\n# Sort using and Import directives with System.* appearing first\ndotnet_sort_system_directives_first = true\n# Avoid \"this.\" and \"Me.\" if not necessary\ndotnet_style_qualification_for_field = false:suggestion\ndotnet_style_qualification_for_property = false:suggestion\ndotnet_style_qualification_for_method = false:suggestion\ndotnet_style_qualification_for_event = false:suggestion\n\n# Use language keywords instead of framework type names for type references\ndotnet_style_predefined_type_for_locals_parameters_members = true:suggestion\ndotnet_style_predefined_type_for_member_access = true:suggestion\n\n# Suggest more modern language features when available\ndotnet_style_object_initializer = true:suggestion\ndotnet_style_collection_initializer = true:suggestion\ndotnet_style_coalesce_expression = true:suggestion\ndotnet_style_null_propagation = true:suggestion\ndotnet_style_explicit_tuple_names = true:suggestion\n\n# CSharp code style settings:\n[*.cs]\n# Prefer \"var\" everywhere\ncsharp_style_var_for_built_in_types = true:suggestion\ncsharp_style_var_when_type_is_apparent = true:suggestion\ncsharp_style_var_elsewhere = true:suggestion\n\n# Prefer method-like constructs to have a block body\ncsharp_style_expression_bodied_methods = false:none\ncsharp_style_expression_bodied_constructors = false:none\ncsharp_style_expression_bodied_operators = false:none\n\n# Prefer property-like constructs to have an expression-body\ncsharp_style_expression_bodied_properties = true:none\ncsharp_style_expression_bodied_indexers = true:none\ncsharp_style_expression_bodied_accessors = true:none\n\n# Suggest more modern language features when available\ncsharp_style_pattern_matching_over_is_with_cast_check = true:suggestion\ncsharp_style_pattern_matching_over_as_with_null_check = true:suggestion\ncsharp_style_inlined_variable_declaration = true:suggestion\ncsharp_style_throw_expression = true:suggestion\ncsharp_style_conditional_delegate_call = true:suggestion\n\n# Newline settings\ncsharp_new_line_before_open_brace = all\ncsharp_new_line_before_else = true\ncsharp_new_line_before_catch = true\ncsharp_new_line_before_finally = true\ncsharp_new_line_before_members_in_object_initializers = true\ncsharp_new_line_before_members_in_anonymous_types = true\n"
  },
  {
    "path": ".github/workflows/publish.yml",
    "content": "name: Build and Publish NuGet Package\n\non:\n  push:\n    tags:\n      - 'v*'\n\nenv:\n  DOTNET_VERSION: '10.0.x'\n\njobs:\n  build-and-publish:\n    runs-on: ubuntu-latest\n    \n    steps:\n      - uses: actions/checkout@v5\n\n      - name: Setup .NET\n        uses: actions/setup-dotnet@v5\n        with:\n          dotnet-version: ${{ env.DOTNET_VERSION }}\n\n      - name: Build\n        run: dotnet build --configuration Release\n\n      - name: Run tests\n        run: dotnet test --no-restore --verbosity normal\n\n      - name: Pack\n        run: dotnet pack --configuration Release --no-build --output nupkgs\n        \n      - name: Push to NuGet\n        run: dotnet nuget push ./nupkgs/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_API_KEY }} --skip-duplicate"
  },
  {
    "path": ".github/workflows/test.yml",
    "content": "name: Test\n\non:\n  push:\n    branches:\n      - '**'\n    tags-ignore:\n      - '**'\n  pull_request:\n\njobs:\n  build:\n\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        os: [ubuntu-latest, macOS-latest, windows-latest]\n\n    steps:\n    - uses: actions/checkout@v5\n    - name: Setup .NET Core\n      uses: actions/setup-dotnet@v5\n      with:\n        dotnet-version: 10.0.x\n    - name: Install dependencies\n      run: dotnet restore\n    - name: Build\n      run: dotnet build --configuration Release --no-restore\n    - name: Test\n      run: dotnet test --no-restore --verbosity normal\n"
  },
  {
    "path": ".gitignore",
    "content": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User-specific files\n*.suo\n*.user\n*.sln.docstates\n\n# Build results\n\n[Dd]ebug/\n[Rr]elease/\nx64/\nbuild/\n[Bb]in/\n[Oo]bj/\n\n# Enable \"build/\" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets\n!packages/*/build/\n\n# MSTest test Results\n[Tt]est[Rr]esult*/\n[Bb]uild[Ll]og.*\n\n*_i.c\n*_p.c\n*.ilk\n*.meta\n*.obj\n*.pch\n*.pdb\n*.pgc\n*.pgd\n*.rsp\n*.sbr\n*.tlb\n*.tli\n*.tlh\n*.tmp\n*.tmp_proj\n*.log\n*.vspscc\n*.vssscc\n.builds\n*.pidb\n*.log\n*.scc\n\n# Visual C++ cache files\nipch/\n*.aps\n*.ncb\n*.opensdf\n*.sdf\n*.cachefile\n\n# Visual Studio profiler\n*.psess\n*.vsp\n*.vspx\n\n# Guidance Automation Toolkit\n*.gpState\n\n# ReSharper is a .NET coding add-in\n_ReSharper*/\n*.[Rr]e[Ss]harper\n\n# TeamCity is a build add-in\n_TeamCity*\n\n# DotCover is a Code Coverage Tool\n*.dotCover\n\n# NCrunch\n*.ncrunch*\n.*crunch*.local.xml\n\n# Installshield output folder\n[Ee]xpress/\n\n# DocProject is a documentation generator add-in\nDocProject/buildhelp/\nDocProject/Help/*.HxT\nDocProject/Help/*.HxC\nDocProject/Help/*.hhc\nDocProject/Help/*.hhk\nDocProject/Help/*.hhp\nDocProject/Help/Html2\nDocProject/Help/html\n\n# Click-Once directory\npublish/\n\n# Publish Web Output\n*.Publish.xml\n\n# NuGet Packages Directory\n## TODO: If you have NuGet Package Restore enabled, uncomment the next line\n#packages/\n\n# Windows Azure Build Output\ncsx\n*.build.csdef\n\n# Windows Store app package directory\nAppPackages/\n\n# Others\nsql/\n*.Cache\nClientBin/\n[Ss]tyle[Cc]op.*\n~$*\n*~\n*.dbmdl\n*.[Pp]ublish.xml\n*.pfx\n*.publishsettings\n\n# RIA/Silverlight projects\nGenerated_Code/\n\n# Backup & report files from converting an old project file to a newer\n# Visual Studio version. Backup files are not needed, because we have git ;-)\n_UpgradeReport_Files/\nBackup*/\nUpgradeLog*.XML\nUpgradeLog*.htm\n\n# SQL Server files\nApp_Data/*.mdf\nApp_Data/*.ldf\n\n\n#LightSwitch generated files\nGeneratedArtifacts/\n_Pvt_Extensions/\nModelManifest.xml\n\n# =========================\n# Windows detritus\n# =========================\n\n# Windows image file caches\nThumbs.db\nehthumbs.db\n\n# Folder config file\nDesktop.ini\n\n# Recycle Bin used on file shares\n$RECYCLE.BIN/\n\n# Mac desktop service store files\n.DS_Store\n\n# packages folder\npackages\n!packages/respositories.config\n\n# ConsoleApp, used for verifying README code\nConsoleApp/\n\n# Visual Studio per-machine and per-user settings\n.vs/\n.vscode/\n.idea\n.ionide/\n"
  },
  {
    "path": "AUTHORS.md",
    "content": "Autori\n======\n\nFatturaElettronica.NET è un progetto [open source][li] aperto alla collaborazione\ndi tutti. Lo sviluppo avviene su [GitHub][gh].\n\nAutore e maintainer\n-------------------\n\n- [Nicola Iarocci][NI]\n\nCollaboratori\n-------------\n\n- Claudio Lepri\n- Diego Artusio\n- Diego Martelli\n- Emanuele Curati\n- Emanuele Zavallone\n- Fabio Calvigioni\n- Federico Dipuma\n- Gaetano Pizzol\n- Luca Borghini\n- Luca Marcato\n- Marco Checchin\n- Marco Saltarelli\n- Marco Tessitore\n- Massimo Linossi\n- Michael Mairegger\n- Paolo Manili\n- Paolo Tatoli\n- Puma\n- Seba\n- ZephirPFS47\n- gminutillo\n- ilserd\n- username77\n- \n[NI]: https://nicolaiarocci.com\n[gh]: https://github.com/FatturaElettronica/FatturaElettronica.NET\n[li]: http://github.com/FatturaElettronica/FatturaElettronica.NET/blob/master/LICENSE.txt\n"
  },
  {
    "path": "CHANGES.md",
    "content": "# Changelog\n\n## In Development\n\n## Stable\n\n### v 4.0.7\n\nReleased on April 2, 2026\n\n- fix: gestione file P7M in formato Base64 con line breaks CRLF tramite `CreateInstanceFromXml`.\n\n### v 4.0.6\n\nReleased on March 20, 2026\n\n- fix: supporto encoding `windows-1252` nelle fatture XML e P7M ([#442][442]).\n\n[442]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/442\n\n### v 4.0.5\n\nReleased on March 19, 2026\n\n- fix: supporto P7M con ASN.1 UniversalString nei certificati ([#442][442]).\n- new: test suite migrata a .NET 10.\n\n### v 4.0.4\n\nReleased on September 17, 2025\n\n- fix: la fix introdotta con v4.0.3 per la validazione di PECDestinatario non copriva tutti i casi ([#440][440])\n\n[440]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/440\n\n### v 4.0.3\n\nReleased on September 2, 2025\n\n- fix: migliorata validazione PECDestinatario ([#439][439])\n\n[439]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/439\n\n### v 4.0.2\n\nReleased on September 1, 2025\n\n- fix: verifica codice IBAN imprecisa ([#438][438])\n- Aggiunto riferimento a [Invoicetronic](http://invoicetronic.com) come progetto \"gemello\" di FatturaElettronica.NET per la gestione completa della fatturazione elettronica in Italia.\n\n[438]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/438\n\n### v 4.0.1\n\nReleased on June 18, 2025\n\n- fix: if the input stream Position is not 0, and it is seekable, it will be rewound to Position 0 [#436][436]\n\n[436]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/436\n\n### v 4.0.0\n\nReleased on June 16, 2025\n\n- BREAKING: attempting to read Tampered documents will now invariably throw `SignatureException` [#434][434]\n- CI: do not execute the 'test' action on tag pushes (the 'publish' action includes tests)\n- chore: we're switching to the English language for CHANGELOG updates.\n\n[434]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/434\n\n### v 3.6.3\n\nReleased on May 6, 2025\n\n- fix: traduzione Inglese allineata a quella ufficiale ([#432][432])\n- fix: README typos.\n\n[432]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/432\n\n### v 3.6.2\n\nReleased on April 2, 2025\n\n-fix: non includere GitHub workflows nel package, per davvero.\n\n### v 3.6.1\n\nReleased on March 17, 2025\n\n- fix: non includere GitHub workflows nel package.\n- new: supporto per lingua Inglese ([#430][430]).\n\n[430]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/430\n\n### v 3.6.0\n\nReleased on February 24, 2025\n\n- new: supporto per le specifiche tecniche v1.9, in vigore dal 1 Aprile 2025 ([#426][426])\n- new: icona per il nuget package, finalmente.\n- new: package creato e pubblicato via CI.\n- fix: UnitaMisura è opzionale ([#427][427])\n- fix: CI test workflow deve girare su .NET 8\n\n[427]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/427\n[426]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/426\n\n### v 3.5.2\n\nReleased on January 7, 2025\n\n- fix: IVA oltre 100% non deve passare la convalida ([#424][424])\n- fix: CVE 2024 30105 ([#423][423])\n- fix: rimuovere reference a BouncyCastle nella documentazione ([#422][422])\n\n[424]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/424\n[423]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/423\n[422]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/422\n\n### v 3.5.1\n\nReleased on September 30, 2024\n\n- fix: multi-lingua, migliorata accessibilità dei Resource file generati ([#420][420])\n \n[420]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/420\n \n### v 3.5.0\n\nReleased on September 30, 2024\n\n- new: supporto multi-lingua ([#417][417]).\n\n[417]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/417\n\n### v 3.4.16\n\nReleased on July 25, 2024\n\n- Abbandonata dipendenza da Portable.BouncyCastle ([#414][414])\n- Bump Microsoft.NET.Test.Sdk a v17.6.2\n- Bump MSTest.TestAdapter a v3.4.3\n- Bump MSTest.TestFramework a v3.4.3\n\n[414]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/414\n\n### v 3.4.15\n\nReleased on May 24, 2024\n\n- Fix: Nazione, valore di default non viene de-serializzato da XML ([#413][413])\n\n[413]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/413\n\n### v 3.4.14\n\nReleased on March 14, 2024\n\n- Fix: CVE-2023-29331. ([#411][411])\n- Fix: `GiorniTerminiPagamento`, `NumeroColli`, `RiferimentoNumeroLinea`, `RiferimentoFase` devono accettare solo valori inclusi nei rispettivi range numerici. ([#410][410])\n\n[411]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/411\n[410]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/410\n\n### v 3.4.13\n\nReleased on January 8, 2024\n\n- Fix: Controllo 00473: recepite novità introdotte dalle [specifiche v1.8](https://www.agenziaentrate.gov.it/portale/web/guest/specifiche-tecniche-versione-1.8) ([#407][407])\n\n[407]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/407\n\n### v 3.4.12\n\nReleased on December 5, 2023\n\n- Fix: Controllo validità campi Email e PEC ([#405][405])\n- Fix: CI workflow file rilasciato col package nuget ([#404][404])\n\n[405]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/405\n[404]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/404\n\n### v 3.4.11\n\nReleased on October 27, 2023\n\n- Fix: DettaglioLinee.NumeroLinea deve consentire solo valori da 1 a 9999 ([#403][403])\n\n[403]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/403\n\n### v 3.4.10\n\nReleased on August 3, 2023\n\n- Fix: Scarto Fattura se presenta uno sconto a 3+ cifre decimali ([#401][401])\n- Fix: typos nella documentazione ([#399][399])\n\n[401]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/401\n[399]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/399\n\n### v 3.4.9\n\nReleased on June 19, 2023\n\n- Fix: [Microsoft Security Advisory CVE-2023-29331: .NET Denial of Service vulnerability](https://github.com/advisories/GHSA-555c-2p6r-68mm)\n- Fix: [Improper Handling of Exceptional Conditions in Newtonsoft.Json](https://github.com/advisories/GHSA-5crp-9r3c-p9vr)\n- Fix: [.NET Core Information Disclosure](https://github.com/advisories/GHSA-7jgj-8wvc-jh57)\n- Fix: [Regular Expression Denial of Service in System.Text.RegularExpressions](https://github.com/advisories/GHSA-cmhx-cq75-c4mj)\n\n### v 3.4.8\n\nReleased on May 2, 2023\n\n- Fix: Se IdFiscaleIva di Cessionario e Cedente corrispondono, la fattura deve convalidare anche se in Cessionario è assente il codice fiscale. ([#396][396])\n \n[396]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/396\n\n### v 3.4.7\n\nReleased on April 5, 2023\n\n- Fix: controlli 00423 e 00421: tolleranza di 1 centesimo deve essere 'larga' ([#394][394])\n- Test suite ora gira su .NET 7\n- CI: aggiornate GitHub actions per non usare più Node 12, ora obsoleto\n \n[394]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/394\n \n### v 3.4.6\n\nReleased on October 28, 2022\n\n- Fix: controllo 00472; supporto per ditta individuale che si fattura un prodotto ([#388][388])\n\n[388]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/388\n\n### v 3.4.5\n\nReleased on October 14, 2022\n\n- Fix: controllo 00471; recepite novità introdotte dalle [specifiche v1.8](https://www.fatturapa.gov.it/export/documenti/Elenco-Controlli-versione-1.8.pdf) ([#387][387])\n- Fix: controllo 00476; supporto per Cessionario.IdFiscaleIva non indicato ([#386][386])\n- Fix: controllo 00473; TD28 può essere usato solo se IdPaese del cedente è uguale a \"SM\" ([#385][385])\n\n[387]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/387\n[386]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/386\n[385]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/385\n\n### v3.4.4\n\nReleased on October 1, 2022\n\n- Fix: errore nella validazione dei controlli 00401 e 00430 introdotto in v3.4.3 ([#384][384])\n\n[384]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/384\n\n### v3.4.3\n\nReleased on October 1, 2022\n\n- Fix: aggiornati i controlli 00401 e 00430 affinché escludano i documenti TD16 ([#382][382])\n\n[382]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/382\n\n### v3.4.2\n\nReleased on September 27, 2022\n\n- Fix: Aggiornato messaggio di errore per il controllo 00472 ([#381][381])\n\n[381]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/381\n\n### v 3.4.1\n\nReleased on September 26, 2022\n\n- Fix: correzione segnalazioni Controlli 00471 e 00473 ([#378][378] e [#379][379])\n\n[378]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/378\n[379]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/379\n\n### v 3.4\n\nReleased on September 9, 2022\n\nQuesta beta release recepisce le specifiche tecniche v1.7.1 che entreranno in vigore il 1 Ottobre 2022.\nPer maggiori informazioni vedi il ticket ([#376][376]).\n\n- New: introdotto nuovo controllo sulle fatture con codice errore 00476 ([#376][376]).\n- New: TD28, acquisti da San Marino con IVA (fattura cartacea) ([#376][376]).\n- Fix: modificato il criterio di controllo per l'errore 00472 ([#376][376]).\n- Fix: modificato il criterio di controllo per l’errore 00471 per i tipi documento TD01, TD02,TD03,TD06,TD24,TD25 e TD28 (fattura ordinaria) e TD07 (fattura semplificata) ([#376][376]).\n- Fix: aggiornata descrizione dei codici di errore 00401, 00430, 00473, 00475 ([#376][376]).\n- Fix: aggiornata descrizione della Natura N7 ([#376][376]).\n\n[376]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/376\n\n\n### v 3.3.4\n\nReleased on August 4, 2022\n\n- 'EL' (Grecia) aggiunto ai valori convalidati per IdPaese, in alternativa a 'GR' ([#374][374]).\n- 'OO' (Campione d'Italia e Livigno) aggiunto ai valori convalidati per IdPaese ([#370][370]).\n\n[370]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/370\n[374]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/374\n\n### v 3.3.3\n\nReleased on July 11, 2022\n\n- Fix: CodiceFiscale con caratteri minuscoli non deve passare la convalida ([#373][373])\n- CI ora gira su dotnet 6.\n- Bump FluentValidation a v11.1.0\n- Bump System.Security.Cryptography.Pkcs a v6.0.1\n- Bump System.Text.Json a v6.0.5\n\n[373]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/373\n\n### v 3.3.2\n\nReleased on May 24, 2022\n\n- Fix: `WriteHtml` crea un file temporaneo che non viene eliminato in seguito ([#371][371])\n\n[371]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/371\n\n### v 3.3.1\n\nReleased on April 6, 2022\n\n- Fix: CodiceArticolo va convalidato come `LatinExtType` ([#368][368])\n\n[368]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/368\n \n### v 3.3.0\n\nReleased on February 25, 2022\n\n- New: supporto per tag 'Processing Instructions' in de-serializzazione XML ([#367][367])\n- Fix: link rotto alle specifiche tecniche ([#362][362])\n- Migrazione a System.Text.Json ([#360][360])\n- Rimosso badge dependabot dal README\n\n[367]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/367\n[360]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/360\n[362]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/362\n\n### v 3.2.0\n\nReleased on November 25, 2021\n\n- Questa versione si allinea alle regole di convalida in vigore dal 1 Gennaio 2022.\n- Allentata convalida dei campi Email ([#358][358])\n- Introdotta convalida per nuovo errore 00475 ([#354][354])\n- Aggiornata descrizione per i tipi documento TD25 e TD25 ([#354][354])\n- Aggiornata descrizione per il codice natura N6.2 ([#354][354])\n- Fix: `ToJson()` usa nome sbagliato per proprietà `RappresentanteFiscale` ([#359][359])\n- Fix: ripristinato un setter rimosso nella v3.1.5 ([#346][346])\n- Aggiornata dipendenza FluentValidation a 10.3.4 ([#337][337])\n- Aggiornata dipendenza Newtonsoft.Json a 13.0.1\n- Aggiornata dipendenza System.Security.Cryptography.Pkcs to 6.0.0\n- Aggiornata dipendenza Portable.BouncyCastle to 1.9.0\n\n[359]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/359\n[358]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/358\n[337]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/337\n[354]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/354\n[346]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/346\n\n### v 3.1.5\n\nReleased on May 14, 2021\n\n- Risolo problema deserializzazione Json per la classe `Allegati` ([#344][344])\n\n[344]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/344\n\n### v 3.1.4\n\nReleased on March 21, 2021—Codename 'Spring'\n\n- Fix: il codice per Irlanda del Nord è `XI`, non `IX` ([#314][314])\n\n### v 3.1.3\n\nReleased on March 19, 2021\n\n- Aggiunto supporto per il valore `IX` (Irlanda del Nord) al campo `IdPaese` ([#314][314])\n  \n [314]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/314\n\n### v 3.1.2\n\nReleased on February 20, 2021\n\n- Rimosso warning di obsolescenza in preparazione per FluentValidation 10 ([#321][321])\n- Risolto problema di compatibilità con FluentValidation 9.5.1 ([#320][320])\n- Aggiornata dipendenza FluentValidation a 9.5.1\n\n[321]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/321\n[320]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/320\n\n### v 3.1.1\n\nReleased on January 25, 2021\n\n- Convalida `TipoResa` allineata a specifiche Incoterms 2020 ([#313][313])\n- Validazione `CAP`: deve contenere solo valori numerici ([#310][310])\n\n[313]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/313\n[310]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/310\n\n### v 3.1.0\n\nReleased on December 30, 2020\n\n- Questa versione si allinea alle regole di convalida in vigore dal 1 Gennaio 2021.\n- Rimosso supporto per valori N2, N3, N6 per il campo `DatiRiepiloto.Natura` ([#307][307])\n- Aggiunta convalida per errore 00313 ([#300][300])\n- `Defaults.RootElement.ExtraAttributes` diventa una read-write property ([#303][303])\n- `Defaults.RootElement.Prefix` diventa una read-write property ([#303][303])\n- Migrazione CI dà Azure Pipelines a GitHub Actions (`ubuntu-latest`, `windows-latest`, `macos-latest`) ([#298][298])\n- Impostato target framework della test suite a `net5.0` ([#295][295])\n- Aggiornata dipendenza Portable.BouncyCastle a 1.8.9\n- Aggiornata dipendenza Microsoft.NET.Test.Sdk a 16.8.3\n- Aggiornata dipendenza FluentValidation a 9.3.0\n- Aggiornata dipendenza System.Security.Cryptography.Pkcs a 5.0.1\n\n\n[300]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/300\n[303]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/303\n[307]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/307\n[298]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/298\n[295]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/295\n\n### v 3.0.5\n\nReleased on November 26, 2020\n\n- Fix: `SistemaEmittente` non va serializzato come elemento XML ([#294][294])\n- Fix: rimossa convalida `DatiRiepilogo.RiferimentoNormativo` è richiesto quando `Natura` è valorizzato ([#284][284])\n\n[294]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/294\n\n### v 3.0.4\n\nReleased on November 3, 2020\n\n- Fix: Migliorata la validazione errore 00444 in `DatiRiepilogo` ([#287][287])\n- Fix: Migliorata la validazione errore 00443 in `DatiRiepilogo` ([#281][281])\n- Fix: Aggiornato attributo `SchemaLocation` ([#282][282], [#286][286])\n- Fix: Supporto per `SistemaEmittente` in deserializzazione ([#278][278])\n- Fix: `DatiRiepilogo.RiferimentoNormativo` è richiesto quando `Natura` è valorizzato ([#284][284])\n- Aggiornata dipendenza FluentValidation a 9.2.2\n- Aggiornata dipendenza Newtonsoft.Json a 12.0.3\n- Aggiornata dipendenza BouncyCastle a 1.8.8\n- Aggiornata dipendenza MSTest.TestFramework a 2.1.2\n- Aggiornata dipendenza MSTest.TestAdapter a 2.1.2\n- Aggiornata dipendenza Microsoft.NET.Test.Sdk a 16.7.1\n- Abbandonata dipendenza obsoleta da `System.Xml.XmlSerializer`\n\n[287]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/287\n[281]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/281\n[286]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/286\n[282]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/282\n[278]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/278\n[284]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/284\n\n### v 3.0.3\n\nReleased on August 25, 2020\n\n- Fix: I tipi decimali dovrebbero essere convalidati per verificare che abbiano 2 o 11 decimali ([#275][275])\n- Fix: `CodiceDestinatario` dovrebbe essere maiuscolo e non contenere altri caratteri al di fuori di A-Z 0-9 ([#272][272])\n\n[275]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/275\n[272]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/272\n\n### v 3.0.2\n\nReleased on July 7, 2020\n\n- Aggiornata dipendenza FluentValidation a 9.0 ([#271][271])\n\n[271]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/271\n\n### v 3.0.1\n\nReleased on July 6, 2020\n\n- Fix: Validazione per errore 00444 dovrebbe tenere conto dei valori null ([#269][269])\n\n[269]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/269\n\n### v 3.0\n\nReleased on June 5, 2020\n\n- Fix: CessionarioCommittente.IdFiscaleIva va convalidato solo quando valorizzato ([#263][263])\n\n[263]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/263\n\n### v 3.0-beta.6\n\nReleased on May 21, 2020\n\n- Passaggio a C# 8.0 e (piccolo) refactoring.\n\n### v 3.0-beta.5\n\nReleased on April 20, 2020\n\n- Tabella `CausalePagamento` accetta valori Y, K,V2,Z durante il periodo di transizione ([#259][259]) \n\n[259]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/259\n\n### v 3.0-beta.4\n\nReleased on April 15, 2020\n\n- `CreateInstanceFromXml` accetta argomento `validateSignature` con default a `false` ([#258][258]) \n\n[258]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/258\n\n### v 3.0-beta.3\n\nReleased on April 9, 2020\n\n- `CreateInstanceFromXml` ora leggere anche file firmati digitalmente (.p7m) ([#256][256]) \n- Incorporato FatturaElettronica.Core ([#255][255])\n- Incorporato FatturaElettronica.Extensions ([#255][255])\n- Persa dipendenza da FatturaElettronica.Core ([#255][255])\n- Persa dipendenza da FatturaElettronica.Extensions ([#255][255])\n- Ricordarsi di rimuovere le dipendenze da FatturaElettronica.Extensions e \n  FatturaElettronica.Core.\n- La API di FatturaElettronica.Core, ora incorporata in questo package, è stata\n  spostata dal namespace `FatturaElettronica.Common` a `FatturaElettronica.Core`.\n  \n[256]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/256\n\n### v 3.0-beta.2\n\nReleased on April 6, 2020\n\n- Fix: NullReferenceException nel metodo Equals ([Core#42][Core#42])\n- Aggiornata dipendenza FatturaElettronica.Core a 2.0.1.\n\n[255]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/255\n[Core#42]: https://github.com/FatturaElettronica/FatturaElettronica.Core/issues/42\n\n### v 3.0-beta.1\n\nReleased on March 20, 2020\n\n- Supporto per le specifiche tecniche v1.6 aggiornate il 28.2.2020 e utilizzabili a partire dal 4 maggio 2020. Si veda:\n\n  - [Allegato A - Specifiche tecniche versione 1.6 (pdf)](https://www.agenziaentrate.gov.it/portale/documents/20143/2370834/Allegato+A+-+Specifiche+tecniche+vers+1.6_.pdf/a9917ec2-29a3-4f4a-a7d0-93af96fcaad5)\n  \n### v 2.1.1\n\nReleased on March 20, 2020\n\n- Fix: Attributo `schemaLocation` causava problemi con alcuni client Java. ([#250][250])\n\n[250]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/250\n\n### v 2.1.0\n\nReleased on February 7, 2020\n\n- New: `FatturaBase.CreateInstanceFromXml()` carica stream XML e restituisce una istanza di FatturaOrdinaria o FatturaSemplificata ([#240][240])\n- Fix: Semplificata.DatiBeniServizi.DatiIVA: Aliquota o Importo obbligatori ([#238][238])\n- Fix: Semplificata.CessionarioCommittente.IdFiscaleIva va convalidato se valorizzato ([#242][242])\n\n[240]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/240\n[238]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/238\n[242]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/242\n\n### v2.0.8\n\nReleased on December 2, 2019\n\n- Fix: convalida fattura semplificata, importo massimo portato a 400 euro ([#233][233])\n\n### v2.0.7\n\nReleased on November 28, 2019\n\n- Fix: errore nell'ordine dei campi CedentePrestatore in fattura semplificata ([#220][220])\n- Test suite aggiornata a NetCore 3.0\n- Fix: refuso in TOC.md ([#221][221])\n- Fix: Aggiunto il Kosovo alla tabella IdPaese ([#214][214])\n- Tutorial: Aggiunto `IgnoreProcessingInstructions` a `XmlReaderSettings` per evitare crash quando\n  nodi \"processing instructions\" (es: `xml-stylesheet`) sono presenti nel XML. ([#209][209])\n\n[233]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/233\n[220]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/220\n[221]: https://github.com/FatturaElettronica/FatturaElettronica.NET/pull/221\n[214]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/214\n[209]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/209\n\n### v2.0.6\n\nReleased on May 24, 2019\n\n- Fix: FatturaSemplificata convalidata con TipoDocumento valido per Ordinaria ([#205][205])\n- Fix: FatturaSemplificata convalidata con Natura valida per Ordinaria ([#205][205])\n- Fix: Validazione AltriDatiIdentificativi in FatturaSemplificata ([#203][203])\n- Fix: UnitaMisura vuota deve sollevare errore di validazione ([#204][204])\n- Fix: DatiFatturaRettificata.DataFR dovrebbe essere nullabile ([#200][200])\n- Fix: CausalePagamento: ZO e M2 sostituiti rispettivamente da Z e M ([#191][191c])\n\n[205]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/205\n[203]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/203\n[204]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/204\n[200]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/200\n[191c]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/191#issuecomment-493911791\n\n### v2.0.5\n\nReleased on April 23, 2019\n\n- Fix: validatore CausalePagamento da aggiornare per unico 2019 ([#191][191])\n- Test refactoring and cleanup.\n\n[191]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/191\n\n### v2.0.4\n\nReleased on April 16, 2019\n\n- Fix: falso errore 00418 \"Data antecedente a data fattura rettificata\" ([#190][190])\n- Aggiunto badge NuGet al README ([#188][188])\n- `LatinBaseValidator` ora indica quali sono i caratteri non accettati ([#185][185])\n\n[190]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/190\n[188]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/188\n[185]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/185\n\n### v2.0.3\n\nReleased on April 8, 2019\n\n- Fix: errore validazione DettaglioLinee.TotalPrice ([#181][181])\n- Refactoring: classe Allegati spostata in FatturaElettronica.Common ([#179][179])\n- Docs: aggiunto folder `docs` con documentazione progetto.\n\n[181]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/181\n[179]: https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/179\n\n### v2.0.2\n\nReleased on March 19, 2019\n\n- Fix: il root node della fattura semplificata ha il namespace sbagliato. Addresses #176.\n\n### v2.0.1\n\nReleased on March 19, 2019\n\n- Fix: il root node della fattura semplificata ha il nome sbagliato. Closes #176.\n\n### v2.0\n\nReleased on March 13, 2019\n\n- New: Supporto per fattura semplificata (Gaetano Pizzol). Closes #137.\n- BREAKING: classe Fattura (Fattura.cs) rinominata FatturaOrdinaria (Ordinaria/FatturaOrdinaria.cs).\n- BREAKING: gerarchia di classi per fattura ordinaria spostata nel namespace FatturaElettronica.Ordinaria.\n\n- Fix: warning NU5125: The 'licenseUrl' element will be deprecated. Closes #166.\n- Fix: Proprietà di tipo oggetto opzionali sollevano \"Object reference not set to an instance of an object\" quando nulle. Closes #165.\n- Fix: DatiTrasporto.PesoLordo e DatiTrasporto.PesoNetto non possono superare il valore 9999.99m. Closes #157.\n\n- Bump FatturaElettronica.Core a 2.0.\n- Bump Microsoft.NET.Test.Sdk to 16.0.1.\n- Bump FluentValidation to 8.1.3.\n- Bump Newtonsoft.Json to 12.0.1.\n- Bump MSTest.TestAdapter to 1.4.0\n- Bump MSTest.TestFramework to 1.4.0\n\n- Switch CI da AppVeyor ad Azure Pipelines.\n\n### v1.1.5\n\nReleased on February 2, 2019\n\n- Fix: Tabella CausalePagamento aggiornata al 2019. Closes #151.\n\n### v1.1.4\n\nReleased on January 31, 2019\n\n- Fix: ScontoMaggiorazione può accettare sia Importo che Percentuale. Closes #146.\n- Fix: IdPaese.Irlanda è duplicato mentre Islanda è assente. Closes #144.\n- README: aggiunto esempio di inserimento elemento Body. Addresses #141.\n\n### v1.1.3\n\nReleased on January 23, 2019\n\n- New: nuovo logo per il progetto FatturaElettronica, by Roberto \"Kalamun\" Pasini. Closes 101.\n- Fix: Link obsoleto alle specifiche tecniche ufficiali. Closes #139.\n- Fix: ScontoMaggiorazione deve accettare Importo o Percentuale a 0. Addresses #136.\n- Fix: ScontoMaggiorazione non deve accettare Importo e Percentuale entrambi valorizzati. Addresses #136.\n\n### v1.1.2\n\nReleased on January 21, 2019\n\n- Fix: Validazione ScontoMaggiorazione dovrebbe accettare Importo o Percentuale a 0. Closes #136.\n\n### v1.1.1\n\nReleased on January 17, 2019\n\n- Fix: Tabella CausalePagamento completata coi nomi di ogni pagamento (Michael Mairegger). Pull #127.\n- Fix: Convalida Provincia non conforme ai controlli lato AgEntrate. Closes #129.\n- Fix: CessionarioCommittente.RappresentanteFiscale, errore \"sequenza tag errata\". Closes #133.\n- Fix: Supporto per 8 decimali nel PrezzoUnitario (Claudio Lepri). Pull #130; Closes #125.\n- Bump FatturaElettronica.Core a 1.1.1.\n\n### v1.1\n\nReleased on January 6, 2019\n\n- New: NetStandard 2.0 aggiunto ai target framework (Federico Dipuma). Closes #119.\n- New: costruttore classe Fattura ora è pubblico. Closes #99.\n- New: performance migliorata (Federico Dipuma). See #120.\n- Fix: Quantità non può assumere valore negativo. Closes #115.\n- Fix: Small typos. Closes #116.\n\n### v1.0.4\n\nReleased on January 2, 2019\n\n- Fix: Aggiunta \"Sud Sardegna\" alla lista provincie (Massimo Linossi). Pull #111.\n\n### v1.0.3\n\nReleased on December 30, 2018\n\n- Fix: UnitaMisura è opzionale. Addresses #102.\n\n### v1.0.2\n\nReleased on December 20, 2018.\n\n- Fix: Titolo e CodEORI ignorano ordinamento. Closes #103.\n- Fix: controllo UnitaMisura consente campo vuoto. Closes #102.\n\n### v1.0.1\n\nReleased on November 9, 2018.\n\n- Bump: FatturaElettronica.Core to 1.0.\n\n### v1.0\n\nReleased on November 9, 2018.\n\n- BREAKING: proprietà Fattura.Header rinominata in FatturaElettronicaHeader. Closes #83.\n- BREAKING: proprietà Fattura.Body rinominata in FatturaElettronicaBody. Closes #83.\n- BREAKING: namespace FatturaElettronica.Impostazioni rinominato FatturaElettronica.Defaults.\n\n- Fix: Aggiornati codici INCOTERMS (Marco Tessitore). Pull #89; Pull #91.\n- Fix: Rimosso controllo 00426 su campo PECDestinatario (Gaetano Pizzol). Pull #88.\n- Fix: Anagrafica.CognomeNome non deve essere serializzato in JSON. Closes #86.\n- Fix: DettaglioPagamento.IBAN deve essere formalmente corretto. Closes #84.\n- Fix: Campo RiferimentoNumero dovrebbe essere opzionale (Gaetano Pizzol). Pull #82.\n- Fix: Aggiunto setter mancante a DettaglioLinee.AltriDatiGestionali. Addresses #81.\n- Fix: Header e Body vanno JSON-serializzati come FatturaElettronicaHeader e FatturaElettronicaBody. Closes #83.\n\n- Bump: FatturaElettronica.Core to 0.5.\n- Bump: Newtonsoft.Json to 11.0.2.\n- Bump: MSTest.TestFramework to 1.3.2.\n- Bump: MSTest.TestAdapter to 1.3.2.\n- Bump: Microsoft.NET.Test.Sdk to 15.9.0.\n\n### v0.9\n\nReleased on October 26, 2018.\n\n- New: FromJson() de-serializza stream JSON.\n- Fix: PECDestinatario può essere vuoto quando CodiceDestinatario è 0000000. Closes #75.\n- Fix: Le proprietà di tipo Class non sono scrivibili. Closes #76.\n- Fix: ToJson() serializza proprietà che non dovrebbero comparire nel JON.\n- I test ora girano come app NetCore 2.1. Addresses FatturaElettronica/FatturaElettronica.Core#4.\n\n### v0.8.5\n\nReleased on October 16, 2018.\n\n- New: Validazione errore 00426 per campo 1.1.6 PECDestinatario. Closes #74.\n- Fix: errore descrizione in RegimeFiscale \"RF17\". Closes #72.\n- Fix: \"Nullable object must have a value\" in validazione di blocco ScontoMaggiorazione con Importo = 0. Closes #71.\n\n### v0.8.4\n\nReleased on October 4, 2018.\n\n- Upgrade: FluentValidation to v8.0.100.\n\n### v0.8.3\n\nReleased on October 2, 2018.\n\n- Fix: DettaglioLineeValidator: 00423 non supporta tolleranza di 1 centesimo. Closes #66.\n\n### v0.8.2\n\nReleased on October 1, 2018.\n\n- FatturaElettronica.Core dependency bumped to v0.2.\n- Cleanup and refactoring: use auto-properties; remove unnecessary usings.\n\n### v0.8.1\n\nRilasciata il 4.7.2018\n\n- Fix: errore lunghezza PECDestinatario in v0.8. Closes #58.\n\n### v0.8\n\nRilasciata il 3.7.2018\n\n- Recepite specifiche tecniche Allegato A del 22.6.2018. Closes #52.\n- New: rimossi controlli su campo PECDestinatario. Addresses #52.\n- New: supporto per TipoDocumento TD020 autofattura. Addresses #52\n- Passata la test suite da NET461 a NETCore. Closes #57.\n\n### v0.7\n\nRilasciata il 4.10.2017\n\n- Spostata serializzazione su package indipendente FatturaElettronica.Core.\n- Abbandonato il profilo PCL in favore di NetStandard 1.1.\n\n### v0.6.3\n\nRilasciata il 17.7.2017\n\n- Fix: RappresentanteFiscale viene erroneamente serializzato come 'Rappresentante' causando errore convalida 200\n  da parte del sistema PA. Closes #49.\n- README: Aggiunta opzione IgnoreComments a XmlReader per evitare crash nel caso di commenti nel XML. Closes #45.\n\n### v0.6.2\n\nRilasciata il 23.5.2017.\n\n- Fix: Falso errore di convalida 00423 quando PrezzoTotale è valorizzato con piu di due decimali. Closes #45.\n\n### v0.6.1\n\nRilasciata il 5.5.2017.\n\n- Fix: Falso errore di convalida 00415 quando DatiCassaPrevidenziale è valorizzato ma non ha Ritenuta=\"SI\". Closes #44.\n\n### v0.6.0\n\nRilasciata il 27.4.2017.\n\n- Assembly non più strong-named. Closes #41.\n- README: aggiunti esempi di introspezione e modifica degli elementi FatturaElettronicaBody. Closes #38.\n\n### v0.5.1\n\nRilasciata il 26.4.2017.\n\n- Fix: Errore 00421 non tiene conto della tolleranza garantita di 0.01 centesimi. Closes #43.\n\n### v0.5.0\n\nRilasciata il 30.3.2017.\n\nQuesta versione recepisce le modifiche introdotte con la v1.2.1 delle specifiche tecniche PA.\n\n- Regime Fiscale RF03 è abrogato. Viene restituito errore 00459 se utilizzato.\n- Natura N5: descrizione aggiornata a \"regime del margine / IVA non esposta in fattura\".\n- Le proprietà e Nome della classe astratta Tabella non sono più protette in scrittura.\n\n### v0.4.3\n\nRilasciata il 23.3.2017.\n\n- Fix: Validazione conformità gruppi IsBasicLatin e IsLatin-1Supplement. Closes #29.\n- Fix: Non includere il folder Artwork nel package NuGet. Closes #37.\n\n### v0.4.2\n\nRilasciata il 17.3.2017.\n\n- Fix: Convalida DatiCassaPrevidenziale.Natura va fatta solo quando Aliquota uguale a\n  zero. Closes #36.\n\n### v0.4.1\n\nRilasciata il 14.3.2017.\n\n- Fix: Nomi delle nazioni ISO-3166 Alpha 2 sono in Inglese. Closes #35.\n- Fix: Elementi FatturaElettronicaBody sono serializzati come 'Body'. Closes #34.\n- Aggiunto file .editconfig\n\n### v0.4.0\n\nRilasciata il 9.3.2017.\n\n- Rinominata classe FatturaElettronica in Fattura.\n- Rinominata classe FatturaElettronicaHeader in Header.\n- Rinominata classe FatturaElettronicaBody in Body.\n- Rinominata proprietà Fattura.FatturaElettronicaHeader in Fattura.Header.\n- Rinominata proprietà Fattura.FatturaElettronicaBody in Fattura.Body.\n- Alcune classi spostate da FatturaElettronica.Common a FatturaElettronica.Tabelle\n- Classe BusinessObjects.BusinessObjectBase rinominata FatturaElettronica.BaseClass.\n- Classe BusinessObjects.BusinessObject rinominata FatturaElettronica.BaseClassSerializable.\n- Classe FatturaElettronica.Common.BusinessObject eliminata.\n- Persa dipendenza dal package BusinessObjects.\n- Acquisita dipendenza dal package FluentValidation.\n- Aggiunto namespace FatturaElettronica.Validators.\n- Aggiunta serie di classi dedicate alla convalida (FatturaValidator; HeaderValidator; ecc.)\n- Rimosso metodo IsValid(). Al suo posto usare proprietà ValidationResult.IsValid.\n- Rimossa proprietà Error. Al suo posto usare ValidationFailure.Errors.\n- Nuovo extension method Fattura.Validate(). Equivalente a FatturaValidator.Validate() (shortcut).\n- Consultare il README per esempi di codice aggiornati.\n\n### v0.3.7\n\nRilasciata il 7.3.2017.\n\n- Fix: Errore in convalida del campo Riferimento Testo: sono consentiti fino\n  a 60 caratteri. Closes #33.\n\n### v0.3.6\n\nRilasciata il 10.2.2017.\n\n- Aggiunto supporto per .NET Core.\n- Abbandonato supporto per .NET Framework 4.0 e Silverlight.\n- Fix: Falso negativo (errore 423) in convalida DettaglioLinee. Closes #31.\n- Fix: Correzione messaggio di errore per Divisa non corretta (Fabio Calvigioni).\n\n### v0.3.5\n\nRilasciata il 2.2.2017.\n\n- Fix: Crash con ScontoMaggiorazione.Importo non impostato (null). Closes #28.\n\n### v0.3.4\n\nRilasciata il 1.2.2017.\n\n- Fix: Crash quando ScontoMaggiorazione.Importo ha valore negativo. Closes #27.\n\n### v0.3.3\n\nRilasciata il 18.1.2017.\n\n- Fix: Consenti serializzazione di valori numerici fino a 5 decimali (minimo 2).\n- Fix: Arrotonda valori numerici fino a 5 decimali (minimo 2).\n\n### v0.3.2\n\nRilasciata il 17.1.2017.\n\n- Fix: Convalida errore 00415. Se almeno un DatiCassaPrevidenziale ha Ritenuta = \"SI\", allora DatiRitenuta deve essere valorizzato. Closes #22.\n- Fix: Convalida errore 00411. Se almeno un DettaglioLinee ha Ritenuta = \"SI\", allora DatiRitenuta deve essere valorizzato. Closes #22.\n- Fix: Convalida errore 00423 nel caso di campo Quantità a null. Closes #20.\n\n### v0.3.1\n\nRilasciata il 16.1.2017.\n\n- New: aggiunte proprietà Sigla e Sigle[] alla classe FormatoTrasmissione\n- New: aggiunta proprietà Descrizione alla classe FormatoTrasmissione\n\n### v0.3\n\nRilasciata il 13.1.2017\n\n#### BREAKING CHANGES\n\nQuesta release introduce una serie di cambianti importanti che rompono la\ncompatibilità con l'API precedente.\n\n- Il package NuGet cambia nome. Ora si chiama FatturaElettronica (era FatturaElettronicaPA).\n- Il namespace diventa FatturaElettronica (era FatturaElettronicaPA)\n- Il package FatturaElettronicaPA verrà marcato come obsoleto su NuGet.\n- Il costruttore della classe FatturaElettronica è ora protetto.\n- Usare il factory method CreateInstance() per ottenere una istanza della classe.\n- CreateInstance() consente di scegliere se ottenere una fattura tra soggetti privati o per la Pubblica Amministrazione.\n- La fattura restituita da CreateInstance() ha già il campo FormatoTrasmissione correttamente impostato a FPA12 o FPR12.\n- Nel caso di fattura tra privati, per default la fattura ha il CodiceDestinatario impostato a \"0000000\" (sarà cura del utente impostare in seguito il nuovo campo PECDestinatario o aggiornare il CodiceDestinatario col codice canale del destinatario)\n\n#### Altre modifiche\n\n- New: attributo xmlns:ds nel root elemento del documento xml.\n- New: attributo xmlns:xsi nel root elemento del documento xml.\n- New: attributo xsi:schemaLocation nel root elemento del documento xml.\n- New: campo 1.4.4 RappresentanteFiscale.\n- New: campo 1.4.3 StabileOrganizzazione.\n- New: campo 1.1.6 PECDestinatario e relative convalide.\n- Fix: modificato campo 2.4.2.13 IBAN per recepire da 15 a 34 caratteri.\n- Fix: aggiunto valore N7 ai campi 2.2.2.2 e 2.1.1.7.7 Natura.\n- Fix: aggiunto valore MP22 al campo 2.4.2.2 ModalitaPagamento.\n- Fix: campo 1.1.4 FormatoTrasmissione supporta valori FPA12 (Pubblica Amministrazione) e FPR12 (Privati)\n- Fix: campo 1.1.4 CodiceDestinatario, adeguate le convalide per tenere conto del FormatoTrasmissione impostato.\n- Aggiunta la test suite. Mancano test delle convalide implementate prima della v0.3.\n\n### v0.2.6\n\nRilasciata il 13.1.2017\n\n- Questa release serve solo a segnalare su NuGet che FatturaElettronicaPA è obsoleto.\n- Scaricare e installare il package FatturaElettronica v0.3 e successivi da ora in poi.\n\n### v0.2.5\n\nRilasciata il 17.6.2016\n\n- Fix: PrezzoTotale ora prevede tolleranza \"accettabile\" su seconda cifra\n  decimale. Closes #19.\n\n### v0.2.4\n\nRilasciata il 25.5.2016\n\n- Fix: Validazione 00423: calcolo in base a percentuale sconto. Closes #18.\n\n### v0.2.3\n\nRilasciata il 24.5.2016\n\n- Fix: Serializzare valori decimali con piu' di 2 decimali.\n\n### v0.2.2\n\nRilasciata il 24.5.2016\n\n- New: Errore 00400 aggiunto alla convalida.\n- New: Errore 00401 aggiunto alla convalida.\n- Fix: Errore 00424 non consente aliquota IVA impostata al valore 1.\n\n### v0.2.1\n\nRilasciata il 23.5.2016\n\n- New: Errore 00422, aggiunta tolleranza di 1 Euro come da specifiche PA\n  aggiornate.\n\n### v0.2\n\nRilasciata il 20.5.2016\n\n- New: Errore 00418 aggiunto alla convalida. Addresses #16.\n- New: Errore 00419 aggiunto alla convalida. Addresses #16.\n- New: Errore 00420 aggiunto alla convalida. Addresses #16.\n- New: Errore 00421 aggiunto alla convalida. Addresses #16.\n- New: Errore 00422 aggiunto alla convalida. Addresses #16.\n- New: Errore 00423 aggiunto alla convalida. Closes #17. Addresses #16.\n- New: Errore 00424 aggiunto alla convalida. Addresses #16.\n- New: Errore 00425 aggiunto alla convalida. Addresses #16.\n\n### v0.1.8\n\nRilasciata il 24.8.2015\n\n- Fix: 2.1.8.3 RiferimentoNumeroLinea in deserializzazione manda applicazione in loop. Closes #14.\n\n### v0.1.7\n\nRilasciata il 7.8.2015\n\n- Fix: 2.1.9.4 NumeroColli in deserializzazione si ha errore conversione Nullable. Closes #12.\n- Fix: 2.4.2.4 GiorniTerminiPagamento in deserializzazione si ha errore conversione Nullable. Closes #12.\n- Upgrade to BusinessObjects v0.1.4\n\n### v0.1.6\n\nRilasciata il 31.7.2015\n\n- Upgrade to BusinessObjects v0.1.3\n- New: Convalida per 2.1.1.11 Causale.\n- Fix: 2.1.2.1 RiferimentoNumeroLinea non gestito come lista 0..N, ma come valore singolo.\n- Fix: 2.1.2.1 RiferimentoNumeroLinea in deserializzazione si ha errore conversione Nullable. Closes #9.\n- Fix: 2.1.1.11 Causale. Se sono presenti 2+ righe allora il codice va in loop. Closes #8.\n- Fix: Crash in deserializzazione di tag XML vuoti (es: `<ContattiTrasmittente />`). Closes #7.\n- Fix: 2.1.9.13 DataOraConsegna serializza a MinValue quando non valorizzato. Closes #10.\n- Fix: 2.2.1.16.4 RiferimentoData serializza a MinValue quando non valorizzato.\n- Fix: 2.4.2.5 DataScadenzaPagamento serializza a MinValue quando non valorizzato. Closes #10.\n- Fix: 2.4.2.18 DataLimitePagamentoAnticipato è di tipo errato (decimal? invece di DateTime?).\n\n### v0.1.5\n\nRilasciata il 15.7.2015\n\n- Fix: 2.2.1.10.1 ScontoMaggiorazione.Tipo: convalida valori corretti SC e MG.\n- Fix: 2.4.2.2 ModalitaPagamento: non veniva convalidato valore MP05.\n\n### v0.1.4\n\nRilasciata il 14.7.2015\n\n- Upgrade to BusinessObject v0.1.2\n- Fix: Convalida di FatturaElettronicaBody. Chiude #4.\n\n### v0.1.3\n\nRilasciata il 7.4.2015\n\n- Upgrade to BusinessObject v0.1.1\n- Upgrade to Json.NET v6.0.8\n- Fix: ReadXML crash su valori Decimal?\n\n### v0.1.2\n\nRilasciata il 16.2.2015\n\n- Supporto per valori L1, M1, O1, V1 per DatiRitenuta.CausalePagamento.\n- Risolto problema col validatore di DatiRitenuta.CausalePagamento.\n- Supporto per valore RF19 per campo RegimeFiscale.\n\n### v0.1.1\n\nRilasciata il 16.2.2015\n\n- Supporto per Split Payment.\n\n### v0.1\n\nRilasciata il 9.2.2015\n\n- Release iniziale.\n"
  },
  {
    "path": "CNAME",
    "content": "fatturaelettronicaopensource.org"
  },
  {
    "path": "Common/Allegati.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n    /// <summary>\n    /// Dati relativi ad eventuale allegato.\n    /// </summary>\n    public class Allegati : Core.BaseClassSerializable\n    {\n        public Allegati() { }\n        public Allegati(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Nome dell'allegato.\n        /// </summary>\n        [Core.DataProperty]\n        public string NomeAttachment { get; set; }\n\n        /// <summary>\n        /// Algoritmo usato per comprimere l'attachment (ad es. ZIP, RAR, ...)\n        /// </summary>\n        [Core.DataProperty]\n        public string AlgoritmoCompressione { get; set; }\n\n        /// <summary>\n        /// Formato dell'attachment (ad es: TXT, XML, DOC, PDF, ...)\n        /// </summary>\n        [Core.DataProperty]\n        public string FormatoAttachment { get; set; }\n\n        /// <summary>\n        /// Descrizione del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public string DescrizioneAttachment { get; set; }\n\n        /// <summary>\n        /// Contiene il documento allegato alla fattura; il contenuto è demandato agli accordi tra PA e fornitore.\n        /// </summary>\n        [Core.DataProperty]\n        public byte[] Attachment { get; set; }\n    }\n}\n"
  },
  {
    "path": "Common/Anagrafica.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n\n    /// <summary>\n    /// Represents a Anagrafica object\n    /// </summary>\n    public class Anagrafica : DenominazioneNomeCognome\n    {\n\n        public Anagrafica() { }\n        public Anagrafica(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Gets or sets the Titolo.\n        /// </summary>\n        [Core.DataProperty(order: 3)]\n        public string Titolo { get; set; }\n\n        /// <summary>\n        /// Gets or sets the CodEORI.\n        /// </summary>\n        [Core.DataProperty(order: 4)]\n        // ReSharper disable once InconsistentNaming\n        public string CodEORI { get; set; }\n    }\n}\n"
  },
  {
    "path": "Common/DatiAnagrafici.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n    /// <summary>\n    /// Represents a DatiAnagrafici object\n    /// </summary>\n    public class DatiAnagrafici : Core.BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati anagrafici, professionali e fiscali\n        /// </summary>\n        public DatiAnagrafici()\n        {\n            IdFiscaleIVA = new();\n            Anagrafica = new();\n        }\n        public DatiAnagrafici(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n        /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n        /// </summary>\n        [Core.DataProperty(order: 0)]\n        public IdFiscaleIVA IdFiscaleIVA { get; set; }\n\n        /// <summary>\n        /// Numero di Codice Fiscale.\n        /// </summary>\n        [Core.DataProperty(order: 1)]\n        public string CodiceFiscale { get; set; }\n\n        /// <summary>\n        /// Dati anagrafici identificativi del soggetto. \n        /// </summary>\n        [Core.DataProperty(order: 2)]\n        public Anagrafica Anagrafica { get; set; }\n\n    }\n}\n"
  },
  {
    "path": "Common/DatiDocumento.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n    /// <summary>\n    /// Informazioni relative ad un documento a cui si fa riferimento.\n    /// </summary>\n    public abstract class DatiDocumento : Core.BaseClassSerializable\n    {\n        protected DatiDocumento()\n        {\n            RiferimentoNumeroLinea = new();\n        }\n        protected DatiDocumento(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Linee di dettaglio della fattura a cui si fa riferimento.\n        /// </summary>\n        /// <remarks>Se il riferimento è all'intera fattura non viene valorizzato.</remarks>\n        [Core.DataProperty]\n        public List<int> RiferimentoNumeroLinea { get; set; }\n\n        /// <summary>\n        /// Numero del documento a cui si fa riferimento.\n        /// </summary>\n        [Core.DataProperty]\n        public string IdDocumento { get; set; }\n\n        /// <summary>\n        /// Data del documento a cui si fa riferimento.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? Data { get; set; }\n\n        /// <summary>\n        /// Identificativo della singola voce all'interno del documento \n        /// (ad esempio, nel caso di ordine di acquisto, è il numero della linea dell'ordine di acquisto, oppure, nel caso di \n        /// contratto, è il numero della linea del contratto, etc.)\n        /// </summary>\n        [Core.DataProperty]\n        public string NumItem { get; set; }\n\n        /// <summary>\n        /// Codice della commessa o della convenzione.\n        /// </summary>\n        [Core.DataProperty]\n        public string CodiceCommessaConvenzione { get; set; }\n\n        /// <summary>\n        /// Codice gestito dal CIPE che caratterizza ogni progetto di investimento pubblico (Codice Unitario Progetto).\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string CodiceCUP { get; set; }\n\n        /// <summary>\n        /// Codice Identificativo della Gara.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string CodiceCIG { get; set; }\n    }\n}\n"
  },
  {
    "path": "Common/DenominazioneNomeCognome.cs",
    "content": "﻿using System.Text.Json.Serialization;\nusing System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n\n    /// <summary>\n    /// Represents a Anagrafica object\n    /// </summary>\n    public class DenominazioneNomeCognome : Core.BaseClassSerializable\n    {\n\n        public DenominazioneNomeCognome() { }\n        public DenominazioneNomeCognome(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Gets or sets the Denominazione.\n        /// </summary>\n        [Core.DataProperty(order: 0)]\n        public string Denominazione { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Nome.\n        /// </summary>\n        [Core.DataProperty(order: 1)]\n        public string Nome { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Cognome.\n        /// </summary>\n        [Core.DataProperty(order: 2)]\n        public string Cognome { get; set; }\n\n        /// <summary>\n        /// Returns Cognome and Nome as a single value.\n        /// </summary>\n        /// <remarks>This is not a OrderedDataProperty so it will not be serialized to XML.</remarks>\n        [JsonIgnore]\n        public string CognomeNome\n        {\n            get\n            {\n                var r = ((Cognome ?? string.Empty) + \" \" + (Nome ?? string.Empty)).Trim();\n                return string.IsNullOrEmpty(r) ? null : r;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Common/IdFiscaleIva.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n    /// <summary>\n    /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n    /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n    /// </summary>\n    public class IdFiscaleIVA : Core.BaseClassSerializable\n    {\n        public IdFiscaleIVA() { }\n        public IdFiscaleIVA(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Codice della nazione espresso secondo lo standard ISO 3166-1 alpha-2 code.\n        /// </summary>\n        [Core.DataProperty]\n        public string IdPaese { get; set; }\n\n        /// <summary>\n        /// Codice identificativo fiscale.\n        /// </summary>\n        [Core.DataProperty]\n        public string IdCodice { get; set; }\n\n        public override string ToString()\n        {\n            return IdPaese + IdCodice;\n        }\n    }\n}\n"
  },
  {
    "path": "Common/Località.cs",
    "content": "﻿using System.ComponentModel;\nusing System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n\n    /// <summary>\n    /// Represents a Anagrafica object\n    /// </summary>\n    public abstract class Località : Core.BaseClassSerializable\n    {\n        /// <summary>\n        /// Constructor.\n        /// </summary>\n        protected Località() { }\n        protected Località(XmlReader r) : base(r) { } \n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Indirizzo (nome della via, piazza etc.)\n        /// </summary>\n        [Core.DataProperty]\n        public string Indirizzo { get; set; }\n\n        /// <summary>\n        /// Numero civico riferito all'indirizzo (non indicare se già presente nel campo indirizzo).\n        /// </summary>\n        [Core.DataProperty]\n        public string NumeroCivico { get; set; }\n\n        /// <summary>\n        /// Codice Avviamento Postale.\n        /// </summary>\n        [Core.DataProperty]\n        public string CAP { get; set; }\n\n        /// <summary>\n        /// Comune.\n        /// </summary>\n        [Core.DataProperty]\n        public string Comune { get; set; }\n\n        /// <summary>\n        /// Sigla della provincia di appartenenza del comune.\n        /// </summary>\n        [Core.DataProperty]\n        public string Provincia { get; set; }\n\n        /// <summary>\n        /// Codice della nazione espresso secondo lo standard ISO 3166-1 alpha-2 code.\n        /// </summary>\n        [Core.DataProperty]\n        [DefaultValue(\"IT\")]\n        public string Nazione { get; set; }\n    }\n}\n"
  },
  {
    "path": "Common/RappresentanteFiscale.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n    /// <summary>\n    /// Dati relativi al rappresentante fiscale del cedente / prestatore.\n    /// </summary>\n    public abstract class RappresentanteFiscale : Core.BaseClassSerializable\n    {\n\n        /// <summary>\n        /// Dati relativi al rappresentante fiscale del cedente / prestatore.\n        /// </summary>\n        public RappresentanteFiscale()\n        {\n            DatiAnagrafici = new();\n        }\n        public RappresentanteFiscale(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati anagrafici del rappresentante fiscale del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiAnagrafici DatiAnagrafici { get; set; }\n    }\n}\n"
  },
  {
    "path": "Common/ScontoMaggiorazione.cs",
    "content": "﻿namespace FatturaElettronica.Common\n{\n    /// <summary>\n    /// Eventuale sconto o maggiorazione applicati sul totale documento.\n    /// </summary>\n    public class ScontoMaggiorazione : Core.BaseClassSerializable\n    {\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n        \n        /// <summary>\n        /// Indica se trattasi di sconto o di maggiorazione.\n        /// </summary>\n        [Core.DataProperty]\n        public string Tipo { get; set; }\n\n        /// <summary>\n        /// Percentuale di sconto o di maggiorazione.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Percentuale { get; set; }\n\n        /// <summary>\n        /// Importo dello sconto o della maggiorazione.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Importo { get; set; }\n    }\n}\n"
  },
  {
    "path": "Common/StabileOrganizzazione.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Common\n{\n    public class StabileOrganizzazione : Località\n    {\n        public StabileOrganizzazione() { } \n        public StabileOrganizzazione(XmlReader r) : base(r) { } \n    }\n}\n"
  },
  {
    "path": "Core/BaseClass.cs",
    "content": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Linq;\nusing System.Reflection;\nusing System.Runtime.CompilerServices;\n\nnamespace FatturaElettronica.Core\n{\n    /// <summary>\n    /// The class all domain objects must inherit from. \n    ///\n    /// Currently supports:\n    /// - IEquatable so you can easily compare complex BusinessObjects togheter.\n    /// - Binding (INotififyPropertyChanged and IDataErrorInfo).\n    /// \n    /// TODO:\n    /// - BeginEdit()/EndEdit() combination, and rollbacks for cancels (IEditableObject).\n    /// </summary>\n    public abstract class BaseClass : INotifyPropertyChanged, IEquatable<BaseClass>\n    {\n        /// <summary>\n        /// Occurs when any properties are changed on this object.\n        /// </summary>\n        public event PropertyChangedEventHandler PropertyChanged;\n\n        protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)\n        {\n            if (Equals(storage, value))\n            {\n                return false;\n            }\n\n            storage = value;\n            OnPropertyChanged(propertyName);\n            return true;\n        }\n\n        private void OnPropertyChanged([CallerMemberName] string propertyName = null)\n        {\n            PropertyChanged?.Invoke(this, new(propertyName));\n        }\n\n        /// <summary>\n        /// Cleans a string by ensuring it isn't null and trimming it.\n        /// </summary>\n        /// <param name=\"s\">The string to clean.</param>\n        protected string CleanString(string s)\n        {\n            return (s ?? string.Empty).Trim();\n        }\n\n        /// <summary>\n        /// Checks wether a BusinessObject instance is empty.\n        /// </summary>\n        /// <returns>Returns true if the object is empty; false otherwise.</returns>\n        public virtual bool IsEmpty()\n        {\n            // TODO support more data types. Also refactor: can be improved.\n\n            var props = GetAllDataProperties().ToList();\n            var i = 0;\n            foreach (var prop in props)\n            {\n                // Default value for Lists is Count\n                if (prop.PropertyType.IsGenericList() &&\n                    ((IList) prop.GetValue(this, null)).Count == 0)\n                {\n                    i++;\n                    continue;\n                }\n\n                var v = prop.GetValue(this, null);\n                switch (v)\n                {\n                    case null:\n                        i++;\n                        continue;\n                    case string s when string.IsNullOrEmpty(s):\n                        i++;\n                        continue;\n                }\n\n                if (IsNumericType(prop.PropertyType) && v.Equals(0))\n                {\n                    i++;\n                    continue;\n                }\n\n                switch (v)\n                {\n                    case DateTime _ when v.Equals(DateTime.MinValue):\n                        i++;\n                        continue;\n                    case BaseClass @class when @class.IsEmpty():\n                        i++;\n                        break;\n                }\n            }\n\n            return i == props.Count;\n        }\n\n        /// <summary>\n        /// Provides a list of actual data properties for the current BusinessObject instance, sorted by writing order.\n        /// </summary>\n        /// <remarks>Only properties flagged with the OrderedDataProperty attribute will be returned.</remarks>\n        /// <returns>A enumerable list of PropertyInfo instances.</returns>\n        protected IEnumerable<PropertyInfo> GetAllDataProperties()\n        {\n            return GetType()\n                .GetRuntimeProperties()\n                .Where(pi => pi.GetCustomAttributes<DataProperty>(true).Any())\n                .OrderBy(pi => pi.GetCustomAttribute<DataProperty>(true).Order);\n        }\n\n        protected PropertyInfo GetKnownNonDataProperty(string name)\n        {\n            var knownNonDataProperties = new[] {\"SistemaEmittente\"};\n\n            return knownNonDataProperties.Contains(name) ? GetType().GetRuntimeProperty(name) : null;\n        }\n\n\n        public bool Equals(BaseClass other)\n        {\n            if (other == null)\n                return false;\n\n            foreach (var prop in GetAllDataProperties())\n            {\n                var v1 = prop.GetValue(this, null);\n                var v2 = prop.GetValue(other, null);\n                if (prop.PropertyType.IsGenericList()\n                    && prop.PropertyType == typeof(List<string>))\n                {\n                    // We only support List<string>.\n                    if (!((List<string>) v1).SequenceEqual((List<string>) v2))\n                    {\n                        return false;\n                    }\n                }\n                else\n                {\n                    // Other types, and BusinessObject type.\n                    if (v1 != null && v2 != null && v1 != v2 && !v1.Equals(v2))\n                    {\n                        return false;\n                    }\n                }\n            }\n\n            return true;\n        }\n\n        public override bool Equals(object obj)\n        {\n            if (obj == null)\n                return false;\n\n            var o = obj as BaseClass;\n            return o != null && GetType().Name == o.GetType().Name && Equals(o);\n        }\n\n        public static bool operator ==(BaseClass o1, BaseClass o2)\n        {\n            if ((object) o1 == null || (object) o2 == null)\n                return Equals(o1, o2);\n\n            return o1.Equals(o2);\n        }\n\n        public static bool operator !=(BaseClass o1, BaseClass o2)\n        {\n            if (o1 == null || o2 == null)\n                return !Equals(o1, o2);\n\n            return !o1.Equals(o2);\n        }\n\n        public override int GetHashCode()\n        {\n            return ObjectExtensions.GetHashCodeFromFields(GetAllDataProperties());\n        }\n\n        private static readonly HashSet<Type> NumericTypes = new()\n        {\n            typeof(int), typeof(uint), typeof(double), typeof(decimal),\n        };\n\n        private static bool IsNumericType(Type type)\n        {\n            return NumericTypes.Contains(type) ||\n                   NumericTypes.Contains(Nullable.GetUnderlyingType(type));\n        }\n    }\n\n    public static class ObjectExtensions\n    {\n        private const int SeedPrimeNumber = 691;\n        private const int FieldPrimeNumber = 397;\n\n        /// <summary>\n        /// Allows GetHashCode() method to return a Hash based ont the object properties.\n        /// </summary>\n        /// <param name=\"fields\">The list of fields to include in the hash generation.</param>\n        /// <returns></returns>\n        public static int GetHashCodeFromFields(params object[] fields)\n        {\n            unchecked\n            {\n                //unchecked to prevent throwing overflow exception\n                var hashCode = SeedPrimeNumber;\n                foreach (var b in fields)\n                    if (b != null)\n                        hashCode *= FieldPrimeNumber + b.GetHashCode();\n                return hashCode;\n            }\n        }\n    }\n}"
  },
  {
    "path": "Core/BaseClassSerializable.cs",
    "content": "﻿using System;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Globalization;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusing System.Text.Json;\r\nusing System.Xml;\r\nusing System.Xml.Schema;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace FatturaElettronica.Core\r\n{\r\n    /// <summary>\r\n    /// - XML (de)serialization;\r\n    /// - JSON (de)serialization.\r\n    /// </summary>\r\n    public class BaseClassSerializable : BaseClass, IXmlSerializable\r\n    {\r\n        /// <summary>\r\n        /// Constructor.\r\n        /// </summary>\r\n        protected BaseClassSerializable()\r\n        {\r\n            XmlOptions = new() { DateTimeFormat = \"yyyy-MM-dd\", DecimalFormat = \"0.00######\" };\r\n        }\r\n\r\n        protected BaseClassSerializable(XmlReader r)\r\n        {\r\n            ReadXml(r);\r\n        }\r\n\r\n        protected XmlOptions XmlOptions { get; set; }\r\n\r\n        private readonly Stack<JsonProperty> _stack = new();\r\n\r\n        /// <summary>\r\n        /// Deserializes the current BusinessObject from a json stream.\r\n        /// </summary>\r\n        /// <param name=\"r\">Active json stream reader</param>\r\n        /// <remarks>Side effects on parse handling</remarks>\r\n        public virtual void FromJson(Utf8JsonReader r)\r\n        {\r\n            _stack.Clear();\r\n\r\n            PropertyInfo prop = null;\r\n\r\n            while (r.Read())\r\n            {\r\n                Type objectType;\r\n                JsonProperty current;\r\n                Type elementType;\r\n                switch (r.TokenType)\r\n                {\r\n                    case JsonTokenType.StartObject:\r\n\r\n                        current = null;\r\n                        if (_stack.Any())\r\n                            current = _stack.Peek();\r\n\r\n                        if (current != null)\r\n                        {\r\n                            current.Child = prop;\r\n                            if (current.Child != null)\r\n                            {\r\n                                objectType = current.Child.PropertyType;\r\n\r\n                                if (objectType.IsGenericList())\r\n                                {\r\n                                    elementType = objectType.GetTypeInfo().GenericTypeArguments.Single();\r\n\r\n                                    var newObject = Activator.CreateInstance(elementType);\r\n\r\n                                    var add = objectType.GetMethod(\"Add\");\r\n\r\n                                    try\r\n                                    {\r\n                                        if (add != null) add.Invoke(current.Value, new[] { newObject });\r\n                                    }\r\n                                    catch (Exception)\r\n                                    {\r\n                                        throw new JsonParseException($\"Unexpected element type {elementType}\", r);\r\n                                    }\r\n\r\n                                    current = new(newObject);\r\n                                }\r\n                                else\r\n                                {\r\n                                    if (!objectType.IsSubclassOfBusinessObject())\r\n                                        throw new JsonParseException(\r\n                                            $\"Unexpected property type {objectType.FullName}\",\r\n                                            r);\r\n\r\n                                    current = new(current.Child.GetValue(current.Value, null));\r\n                                }\r\n                            }\r\n                        }\r\n                        else\r\n                            current = new(this);\r\n\r\n                        _stack.Push(current);\r\n\r\n                        break;\r\n\r\n                    case JsonTokenType.EndObject:\r\n\r\n                        if (_stack.Count > 0)\r\n                            _stack.Pop();\r\n\r\n                        // Restore parent property from stack\r\n                        prop = null;\r\n                        if (_stack.Count > 1)\r\n                            prop = _stack.ElementAt(1).Child;\r\n\r\n                        break;\r\n\r\n                    case JsonTokenType.PropertyName:\r\n\r\n                        if (!_stack.Any())\r\n                            throw new JsonParseException(\"Malformed JSON\", r);\r\n\r\n                        current = _stack.Peek();\r\n\r\n                        var name = r.GetString();\r\n                        prop = GetPropertyInfo((BaseClassSerializable)current.Value, name);\r\n\r\n                        if (prop == null)\r\n                            throw new JsonParseException($\"Unexpected property {name}\", r);\r\n\r\n                        current.Child = prop;\r\n\r\n                        break;\r\n\r\n                    case JsonTokenType.StartArray:\r\n\r\n                        current = null;\r\n                        if (_stack.Any())\r\n                            current = _stack.Peek();\r\n\r\n                        if (current != null && current.Child != null)\r\n                        {\r\n                            objectType = current.Child.PropertyType;\r\n\r\n                            if (!objectType.IsGenericList())\r\n                                throw new JsonParseException($\"Unexpected property type {objectType.FullName}\", r);\r\n\r\n                            var value = current.Child.GetValue(current.Value, null);\r\n\r\n                            var clear = objectType.GetMethod(\"Clear\");\r\n                            if (clear != null) clear.Invoke(value, null);\r\n\r\n                            current = new(current.Child, value);\r\n                        }\r\n                        else\r\n                            current = new(this);\r\n\r\n                        _stack.Push(current);\r\n\r\n                        break;\r\n\r\n                    case JsonTokenType.EndArray:\r\n\r\n                        if (_stack.Count > 0)\r\n                            _stack.Pop();\r\n\r\n                        // Restore parent property from stack\r\n                        prop = null;\r\n                        if (_stack.Count > 1)\r\n                            prop = _stack.ElementAt(1).Child;\r\n\r\n                        break;\r\n\r\n                    case JsonTokenType.Number:\r\n                    case JsonTokenType.String:\r\n                    case JsonTokenType.True:\r\n                    case JsonTokenType.False:\r\n                        current = null;\r\n                        if (_stack.Any())\r\n                            current = _stack.Peek();\r\n\r\n                        if (current != null)\r\n                        {\r\n                            objectType = prop?.PropertyType;\r\n\r\n                            if (current.Value.GetType().IsGenericList())\r\n                            {\r\n                                elementType = objectType.GetTypeInfo().GenericTypeArguments.Single();\r\n\r\n                                var add = objectType?.GetMethod(\"Add\");\r\n                                var value = Cast(elementType, r);\r\n\r\n                                try\r\n                                {\r\n                                    if (add != null) add.Invoke(current.Value, new[] { value });\r\n                                }\r\n                                catch (Exception)\r\n                                {\r\n                                    throw new JsonParseException($\"Unexpected element type {elementType}\", r);\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                                var value = Cast(objectType, r);\r\n                                current.Child.SetValue(current.Value, value, null);\r\n                            }\r\n                        }\r\n                        else\r\n                            throw new JsonParseException(\"Malformed JSON\", r);\r\n                        break;\r\n\r\n                    case JsonTokenType.Null:\r\n\r\n                        current = null;\r\n                        if (_stack.Any())\r\n                            current = _stack.Peek();\r\n\r\n                        if (current != null)\r\n                        {\r\n                            objectType = prop?.PropertyType;\r\n\r\n                            if (current.Value.GetType().IsGenericList())\r\n                            {\r\n                                elementType = objectType.GetTypeInfo().GenericTypeArguments.Single();\r\n\r\n                                var add = objectType?.GetMethod(\"Add\");\r\n\r\n                                try\r\n                                {\r\n                                    if (add != null) add.Invoke(current.Value, null);\r\n                                }\r\n                                catch (Exception)\r\n                                {\r\n                                    throw new JsonParseException($\"Unexpected element type {elementType}\", r);\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                                current.Child.SetValue(current.Value, null, null);\r\n                            }\r\n                        }\r\n                        else\r\n                            throw new JsonParseException(\"Malformed JSON\", r);\r\n                        break;\r\n\r\n                    default:\r\n                        throw new JsonParseException($\"Unexpected token {r.TokenType}\", r);\r\n                }\r\n            }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Helper method to cast json properties\r\n        /// </summary>\r\n        /// <param name=\"target\">target type</param>\r\n        /// <param name=\"r\">Active json stream reader</param>\r\n        /// <returns></returns>\r\n        private static object Cast(Type target, Utf8JsonReader r)\r\n        {\r\n            if (target == typeof(int) || target == typeof(int?))\r\n                return r.GetInt32();\r\n\r\n            if (target == typeof(decimal) || target == typeof(decimal?))\r\n                return r.GetDecimal();\r\n\r\n            if (target == typeof(DateTime) || target == typeof(DateTime?))\r\n                return r.GetDateTime();\r\n\r\n            if (target == typeof(string))\r\n                return r.GetString();\r\n\r\n            if (target == typeof(bool))\r\n                return r.GetBoolean();\r\n\r\n            if (target == typeof(byte[]))\r\n                return r.GetBytesFromBase64();\r\n\r\n            return null;\r\n        }\r\n\r\n        /// <summary>\r\n        /// Helper method to get a named property\r\n        /// </summary>\r\n        /// <param name=\"value\"></param>\r\n        /// <param name=\"name\"></param>\r\n        /// <returns></returns>\r\n        private static PropertyInfo GetPropertyInfo(BaseClassSerializable value, string name)\r\n        {\r\n            var property = value.GetKnownNonDataProperty(name);\r\n            if (property != null)\r\n                return property;\r\n\r\n            var dataProperties = value.GetAllDataProperties().ToList();\r\n\r\n            // XmlElementAttribute comes first\r\n            property = dataProperties\r\n                .FirstOrDefault(prop => prop.GetCustomAttributes(typeof(XmlElementAttribute), false)\r\n                    .Any(ca => ((XmlElementAttribute)ca).ElementName.Equals(name,\r\n                        StringComparison.OrdinalIgnoreCase)));\r\n\r\n            // Fallback to property name\r\n            if (property == null)\r\n                property = dataProperties.FirstOrDefault(n => n.Name.Equals(name, StringComparison.OrdinalIgnoreCase));\r\n\r\n            return property;\r\n        }\r\n\r\n        /// <summary>\r\n        /// Serializes the instance to JSON\r\n        /// </summary>\r\n        /// <returns>A JSON string representing the class instance.</returns>\r\n        public virtual string ToJson()\r\n        {\r\n            return ToJson(JsonOptions.None);\r\n        }\r\n\r\n        /// <summary>\r\n        /// Serializes the class to JSON.\r\n        /// </summary>\r\n        /// <param name=\"jsonOptions\">JSON formatting options.</param>\r\n        /// <returns>A JSON string representing the class instance.</returns>\r\n        public virtual string ToJson(JsonOptions jsonOptions)\r\n        {\r\n            var json = JsonSerializer.Serialize(this, GetType(), new JsonSerializerOptions { WriteIndented = jsonOptions == JsonOptions.Indented });\r\n            return json;\r\n        }\r\n\r\n        public XmlSchema GetSchema()\r\n        {\r\n            return null;\r\n        }\r\n\r\n        /// <summary>\r\n        /// Serializes the current BusinessObject instance to a XML stream.\r\n        /// </summary>\r\n        /// <param name=\"w\">Active XML stream writer.</param>\r\n        /// <remarks>Writes only its inner content, not the outer element. Leaves the writer at the same depth.</remarks>\r\n        public virtual void WriteXml(XmlWriter w)\r\n        {\r\n            foreach (var property in GetAllDataProperties())\r\n            {\r\n                var attribute = property.GetCustomAttributes(typeof(XmlElementAttribute), false)\r\n                    .Cast<XmlElementAttribute>()\r\n                    .FirstOrDefault();\r\n                var propertyName = attribute == null ? property.Name : attribute.ElementName;\r\n\r\n                var value = property.GetValue(this, null);\r\n                if (value == null && !XmlOptions.SerializeNullValues) continue;\r\n\r\n                var child = value as BaseClassSerializable;\r\n                if (child != null)\r\n                {\r\n                    if (child.IsEmpty() && XmlOptions.SerializeEmptyBusinessObjects == false) continue;\r\n\r\n                    w.WriteStartElement(propertyName);\r\n                    child.WriteXml(w);\r\n                    w.WriteEndElement();\r\n\r\n                    continue;\r\n                }\r\n\r\n                if (property.PropertyType.IsGenericList())\r\n                {\r\n                    WriteXmlList(propertyName, value, w);\r\n                    continue;\r\n                }\r\n\r\n                switch (value)\r\n                {\r\n                    case string _:\r\n                        {\r\n                            if (!string.IsNullOrEmpty(value.ToString()) || XmlOptions.SerializeEmptyStrings)\r\n                            {\r\n                                w.WriteElementString(propertyName, value.ToString());\r\n                            }\r\n\r\n                            continue;\r\n                        }\r\n                    case DateTime dateTime when XmlOptions.DateTimeFormat != null &&\r\n                                                !property.GetCustomAttributes<IgnoreXmlDateFormat>().Any():\r\n                        w.WriteElementString(propertyName, dateTime.ToString(XmlOptions.DateTimeFormat));\r\n                        continue;\r\n                    case decimal decimalValue when XmlOptions.DecimalFormat != null:\r\n                        w.WriteElementString(propertyName,\r\n                            decimalValue.ToString(XmlOptions.DecimalFormat, CultureInfo.InvariantCulture));\r\n                        continue;\r\n                }\r\n\r\n                // all else fail so just let the value flush straight to XML.\r\n                w.WriteStartElement(propertyName);\r\n                if (value != null)\r\n                {\r\n                    w.WriteValue(value);\r\n                }\r\n\r\n                w.WriteEndElement();\r\n            }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Deserializes a List of BusinessObject or strings to one or more XML elements.\r\n        /// </summary>\r\n        /// <param name=\"propertyName\">Property name.</param>\r\n        /// <param name=\"value\">Property value.</param>\r\n        /// <param name=\"w\">Active XML stream writer.</param>\r\n        private static void WriteXmlList(string propertyName, object value, XmlWriter w)\r\n        {\r\n            var type = value.GetType();\r\n            var e = type.GetMethod(\"GetEnumerator\")?.Invoke(value, null) as IEnumerator;\r\n\r\n            while (e != null && e.MoveNext())\r\n            {\r\n                if (e.Current == null) continue;\r\n                var current = e.Current;\r\n                w.WriteStartElement(propertyName);\r\n                {\r\n                    switch (current)\r\n                    {\r\n                        case BaseClassSerializable serializable:\r\n                            serializable.WriteXml(w);\r\n                            break;\r\n\r\n                        case string s:\r\n                            w.WriteString(s);\r\n                            break;\r\n\r\n                        default:\r\n                            w.WriteValue(e.Current);\r\n                            break;\r\n                    }\r\n                }\r\n                w.WriteEndElement();\r\n            }\r\n        }\r\n\r\n        protected virtual void ReadAndHandleXmlStartElement(XmlReader r)\r\n        {\r\n            r.ReadStartElement();\r\n            if (r.NodeType == XmlNodeType.ProcessingInstruction) r.Skip();\r\n        }\r\n\r\n        /// <summary>\r\n        /// Deserializes the current BusinessObject from a XML stream.\r\n        /// </summary>\r\n        /// <param name=\"r\">Active XML stream reader.</param>\r\n        /// <remarks>Reads the outer element. Leaves the reader at the same depth.</remarks>\r\n        public virtual void ReadXml(XmlReader r)\r\n        {\r\n            var isEmpty = r.IsEmptyElement;\r\n\r\n            ReadAndHandleXmlStartElement(r);\r\n\r\n            if (isEmpty) return;\r\n\r\n            var properties = GetAllDataProperties().ToList();\r\n            while (r.NodeType == XmlNodeType.Element)\r\n            {\r\n                var property = properties\r\n                    .FirstOrDefault(prop =>\r\n                        prop\r\n                            .GetCustomAttributes(typeof(XmlElementAttribute), false)\r\n                            .Any(ca => ((XmlElementAttribute)ca).ElementName == r.Name));\r\n                if (property == null)\r\n                    property = properties.FirstOrDefault(n => n.Name.Equals(r.Name));\r\n                if (property == null)\r\n                {\r\n                    r.Skip();\r\n                    continue;\r\n                }\r\n\r\n                var type = property.PropertyType;\r\n                var value = property.GetValue(this, null);\r\n\r\n                if (type.IsSubclassOfBusinessObject())\r\n                {\r\n                    ((BaseClassSerializable)value).ReadXml(r);\r\n                    continue;\r\n                }\r\n\r\n                // if property type is List<T>, try to fetch the list from XML.\r\n                if (type.IsGenericList())\r\n                {\r\n                    ReadXmlList(value, type, r.Name, r);\r\n                    continue;\r\n                }\r\n\r\n                // ReadElementContentAs won't accept a nullable type.\r\n                if (type == typeof(DateTime?)) type = typeof(DateTime);\r\n                if (type == typeof(decimal?)) type = typeof(decimal);\r\n                if (type == typeof(int?)) type = typeof(int);\r\n\r\n                var content = r.ReadElementContentAs(type, null);\r\n                if (string.IsNullOrEmpty(content.ToString()))\r\n                {\r\n                    var defaultValue = property.GetCustomAttributes<DefaultValueAttribute>().FirstOrDefault()?.Value;\r\n                    if (defaultValue is not null) content = defaultValue;\r\n                }\r\n                property.SetValue(this, content, null);\r\n            }\r\n\r\n            if (r.NodeType == XmlNodeType.Text) r.Skip();\r\n            r.ReadEndElement();\r\n        }\r\n\r\n        /// <summary>\r\n        /// Serializes one or more XML elements into a List of BusinessObjects.\r\n        /// </summary>\r\n        /// <param name=\"propertyValue\">Property value. Must be a List of BusinessObject instances.</param>\r\n        /// <param name=\"propertyType\"></param>\r\n        /// <param name=\"elementName\">Element name.</param>\r\n        /// <param name=\"r\">Active XML stream reader.</param>\r\n        private static void ReadXmlList(object propertyValue, Type propertyType, string elementName, XmlReader r)\r\n        {\r\n            var argumentType = propertyType.GetTypeInfo().GenericTypeArguments.Single();\r\n\r\n            // note that the 'canonical' call to GetRuntimeMethod returns null for some reason,\r\n            // see http://stackoverflow.com/questions/21307845/runtimereflectionextensions-getruntimemethod-does-not-work-as-expected\r\n            //var method = propertyType.GetRuntimeMethod(\"Clear\", new[] { propertyType });\r\n            var clear = propertyType.GetMethod(\"Clear\");\r\n            if (clear != null) clear.Invoke(propertyValue, null);\r\n\r\n            var add = propertyType.GetMethod(\"Add\");\r\n\r\n            while (r.NodeType == XmlNodeType.Element && r.Name == elementName)\r\n            {\r\n                if (argumentType.IsSubclassOfBusinessObject())\r\n                {\r\n                    // list items are expected to be of BusinessObject type.\r\n                    var bo = Activator.CreateInstance(argumentType);\r\n                    ((BaseClassSerializable)bo).ReadXml(r);\r\n                    if (add != null) add.Invoke(propertyValue, new[] { bo });\r\n                    continue;\r\n                }\r\n\r\n                if (argumentType == typeof(string))\r\n                {\r\n                    if (add != null) add.Invoke(propertyValue, new object[] { r.ReadElementContentAsString() });\r\n                    continue;\r\n                }\r\n\r\n                if (argumentType != typeof(int)) continue;\r\n                if (add != null) add.Invoke(propertyValue, new[] { r.ReadElementContentAs(argumentType, null) });\r\n            }\r\n        }\r\n\r\n        private class JsonProperty\r\n        {\r\n            public PropertyInfo Child { get; set; }\r\n\r\n            public object Value { get; set; }\r\n\r\n            public JsonProperty(PropertyInfo property, object value)\r\n            {\r\n                Child = property;\r\n                Value = value;\r\n            }\r\n\r\n            public JsonProperty(object value) : this(null, value)\r\n            {\r\n            }\r\n\r\n            public override string ToString()\r\n            {\r\n                return $\"Child {Child} - Value {Value}\";\r\n            }\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Core/DataPropertyAttribute.cs",
    "content": "﻿using System;\nusing System.Runtime.CompilerServices;\n\nnamespace FatturaElettronica.Core\n{\n    /// <summary>\n    /// Use this attribute to flag DataObject properties which are meant to be represent actual Business Object values\n    /// (i.e. LastName, but not IsValid). Also, in order for the Read/Write XML methods to work properly, remember\n    /// that these properties should be defined in the same order with which they are expected to appear in the XML file. \n    /// </summary>\n    [AttributeUsage(AttributeTargets.Property)]\n    public sealed class DataProperty : Attribute\n    {\n        public DataProperty([CallerLineNumber] int order = 0)\n        {\n            Order = order;\n        }\n\n        public int Order { get; }\n    }\n}"
  },
  {
    "path": "Core/IgnoreXmlDateFormat.cs",
    "content": "﻿using System;\n\nnamespace FatturaElettronica.Core\n{\n    /// <summary>\n    /// Use this attribute to flag DateTime properties which should not be serialized to XML using the class XmlDateFormat property.\n    /// </summary>\n    [AttributeUsage(AttributeTargets.Property)]\n    public sealed class IgnoreXmlDateFormat : Attribute\n    {\n    }\n}"
  },
  {
    "path": "Core/JsonOptions.cs",
    "content": "﻿namespace FatturaElettronica.Core\n{\n    /// <summary>\n    /// Provides formatting optons for JSON output.\n    /// </summary>\n    /// <remarks>Currently a wrapper around Newtonsoft.Json.Formatting. We provide it so in the future we can remove json.net\n    /// dependancy without changing the external API.</remarks>\n    public enum JsonOptions\n    {\n        None = 0,\n        Indented = 1,\n    }\n}"
  },
  {
    "path": "Core/JsonParseException.cs",
    "content": "﻿using System;\r\nusing System.Text.Json;\r\n\r\nnamespace FatturaElettronica.Core\n{\n    /// <summary>\n    /// Json parsing exception\n    /// </summary>\n    public class JsonParseException : Exception\n    {\n        private int LineNumber { get; }\n\r\n        private int LinePosition { get; }\n\n        public JsonParseException(string message, Utf8JsonReader reader) : base(message)\n        {\r\n            //Not available atm.\r\n            //As mentioned here https://github.com/dotnet/runtime/issues/28482 will be available from System.Text.Json vers.7.0.0\r\n\r\n            //LineNumber = textReader.LineNumber;\r\n            //LinePosition = textReader.textReader;\r\n        }\n    }\n}"
  },
  {
    "path": "Core/TypeExtensions.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Reflection;\n\nnamespace FatturaElettronica.Core\n{\n    public static class TypeExtensions\n    {\n        public static MethodInfo GetMethod(this Type type, string name)\n        {\n            return type.GetRuntimeMethods().First(x => x.Name.Contains(name));\n        }\n\n        public static bool IsSubclassOfBusinessObject(this Type type)\n        {\n            return typeof(BaseClassSerializable).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo());\n        }\n\n        public static bool IsGenericList(this Type type)\n        {\n            return type.GetTypeInfo().IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>);\n        }\n    }\n}"
  },
  {
    "path": "Core/XmlOptions.cs",
    "content": "﻿namespace FatturaElettronica.Core\n{\n    /// <summary>\n    /// XML serialization options for BusinessObject instances.\n    /// </summary>\n    public class XmlOptions\n    {\n        /// <summary>\n        /// Format string to be applied on DateTime properties. This format will be ignored if the IgnoreXmlDateFormat attribute has been set \n        /// for the property.\n        /// </summary>\n        public string DateTimeFormat { get; set; }\n\n        /// <summary>\n        /// Format string to be applied on Decimal properties.\n        /// </summary>\n        public string DecimalFormat { get; set; }\n\n        /// <summary>\n        /// Whether null properties should be serialized or not. Defaults to <value>false</value>.\n        /// </summary>\n        public bool SerializeNullValues { get; set; }\n\n        /// <summary>\n        /// Whether empty BusinessObject children should be serialized or not. Defaults to <value>false</value>.\n        /// </summary>\n        public bool SerializeEmptyBusinessObjects { get; set; }\n\n        /// <summary>\n        /// Wether emty strings should be serialized or not. Defaults to <value>false</value>.\n        /// </summary>\n        public bool SerializeEmptyStrings { get; set; }\n    }\n}"
  },
  {
    "path": "Defaults.cs",
    "content": "﻿namespace FatturaElettronica.Defaults\n{\n    public enum Instance\n    {\n        PubblicaAmministrazione,\n        Privati,\n        Semplificata\n    };\n\n    public static class Versione\n    {\n        public static string Trasmissione\n        {\n            get { return \"1.2\"; }\n        }\n\n        public static string Controlli\n        {\n            get { return \"1.4\"; }\n        }\n\n        public static string TrasmissioneSemplificata\n        {\n            get { return \"1.0\"; }\n        }\n    }\n\n    public static class FormatoTrasmissione\n    {\n        public static string PubblicaAmministrazione\n        {\n            get { return $\"FPA{Versione.Trasmissione.Replace(\".\", \"\")}\"; }\n        }\n\n        public static string Privati\n        {\n            get { return $\"FPR{Versione.Trasmissione.Replace(\".\", \"\")}\"; }\n        }\n\n        public static string Semplificata\n        {\n            get { return $\"FSM{Versione.TrasmissioneSemplificata.Replace(\".\", \"\")}\"; }\n        }\n    }\n\n    public class RootElement\n    {\n        public static string Prefix { get; set; } = \"p\";\n\n        public static XmlAttributeString[] ExtraAttributes { get; set; } = new XmlAttributeString[]\n        {\n            new()\n            {\n                Prefix = \"xmlns\", LocalName = \"ds\", ns = null, value = \"http://www.w3.org/2000/09/xmldsig#\"\n            },\n            new()\n            {\n                Prefix = \"xmlns\",\n                LocalName = \"xsi\",\n                ns = null,\n                value = \"http://www.w3.org/2001/XMLSchema-instance\"\n            },\n            new()\n            {\n                Prefix = \"xsi\",\n                LocalName = \"schemaLocation\",\n                ns = null,\n                value =\n                    \"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.1/Schema_del_file_xml_FatturaPA_versione_1.2.1a.xsd\"\n            }\n        };\n\n        public class XmlAttributeString\n        {\n            public string Prefix;\n            public string LocalName;\n            public string ns;\n            public string value;\n        }\n    }\n}"
  },
  {
    "path": "Extensions/DecimalRuleExtensions.cs",
    "content": "﻿using FluentValidation;\n\nnamespace FatturaElettronica.Extensions\n{\n    internal static class DecimalRuleExtensions\n    {\n        public static void ScalePrecision8DecimalType<T>(this IRuleBuilder<T, decimal> ruleBuilder)\n        {\n            ruleBuilder.PrecisionScale(19, 8, false);\n        }\n\n        public static void ScalePrecision2DecimalType<T>(this IRuleBuilder<T, decimal> ruleBuilder)\n        {\n            ruleBuilder.PrecisionScale(13, 2, false);\n        }\n\n        public static void ScalePrecision8DecimalType<T>(this IRuleBuilder<T, decimal?> ruleBuilder)\n        {\n            ruleBuilder.PrecisionScale(19, 8, false);\n        }\n\n        public static void ScalePrecision2DecimalType<T>(this IRuleBuilder<T, decimal?> ruleBuilder)\n        {\n            ruleBuilder.PrecisionScale(13, 2, false);\n        }\n\n        public static void ScalePrecisionPercentualeDecimalType<T>(this IRuleBuilder<T, decimal?> ruleBuilder)\n        {\n            ruleBuilder.PrecisionScale(6, 2, false);\n        }\n    }\n}"
  },
  {
    "path": "Extensions/FatturaElettronicaExtensions.cs",
    "content": "using System;\nusing System.Collections.Concurrent;\nusing System.Reflection;\nusing FatturaElettronica.Core;\nusing FluentValidation;\nusing FluentValidation.Results;\n\nnamespace FatturaElettronica.Extensions\n{\n    public static class FatturaElettronicaExtensions\n    {\n        private static readonly ConcurrentDictionary<string, IValidator> ValidatorsCache = new();\n        public static ValidationResult Validate<T>(this T obj) where T : BaseClassSerializable\n        {\n            var t = typeof(T);\n            if(t.GetTypeInfo().IsAbstract) t = obj.GetType();\n            var name = (t.FullName.Contains(\"Semplificata\") ? \"Semplificata.\" : string.Empty) + t.Name;\n\n            var validator = ValidatorsCache.GetOrAdd(name, n =>\n            {\n                var type = Type.GetType($\"FatturaElettronica.Validators.{n}Validator\");\n                return (IValidator)Activator.CreateInstance(type);\n            });\n\n            var context = new ValidationContext<T>(obj);\n            return validator.Validate(context);\n        }\n    }\n}\n"
  },
  {
    "path": "Extensions/FatturaElettronicaFileNameGenerator/FatturaElettronicaFileNameExtensionType.cs",
    "content": "﻿namespace FatturaElettronica.Extensions\n{\n    public enum FatturaElettronicaFileNameExtensionType\n    {\n        Plain,\n        Signed\n    }\n}\n"
  },
  {
    "path": "Extensions/FatturaElettronicaFileNameGenerator/FatturaElettronicaFileNameGenerator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FatturaElettronica.Extensions.Resources;\nusing System;\n\nnamespace FatturaElettronica.Extensions\n{\n    /// <summary>\n    /// Factory per la creazione del filename\n    /// </summary>\n    public class FatturaElettronicaFileNameGenerator\n    {\n        private readonly IdFiscaleIVA _idFiscaleIVA;\n        private readonly FatturaElettronicaFileNameExtensionType _fatturaExtensionType;\n\n        public FatturaElettronicaFileNameGenerator(IdFiscaleIVA idFiscale,\n            FatturaElettronicaFileNameExtensionType fatturaType = FatturaElettronicaFileNameExtensionType.Plain)\n        {\n            _idFiscaleIVA = idFiscale ?? throw new ArgumentNullException(ErrorMessages.IdFiscaleIsMissing);\n            if (_idFiscaleIVA.IdPaese == null || _idFiscaleIVA.IdPaese.Length < 2)\n                throw new ArgumentException(ErrorMessages.IdPaeseIsWrongOrMissing);\n            if (_idFiscaleIVA.IdCodice == null)\n                throw new ArgumentException(ErrorMessages.IdCodiceIsMissing);\n            _fatturaExtensionType = fatturaType;\n        }\n\n        /// <summary>\n        /// Restituisce il nome del file partendo dall'ultimo numero di fattura staccata\n        /// </summary>\n        /// <param name=\"lastBillingNumber\"></param>\n        /// <returns></returns>\n        public string GetNextFileName(int lastBillingNumber) =>\n            $\"{_idFiscaleIVA.IdPaese}{_idFiscaleIVA.IdCodice}_{GetNext(lastBillingNumber)}{Extension}\";\n\n        /// <summary>\n        /// Restituisce il nome del file partendo dall'ultimo nome del file generato\n        /// </summary>\n        /// <param name=\"lastBillingNumber\"></param>\n        /// <returns></returns>\n        public string GetNextFileName(string lastBillingNumber) =>\n            $\"{_idFiscaleIVA.IdPaese}{_idFiscaleIVA.IdCodice}_{GetNext(lastBillingNumber)}{Extension}\";\n\n        private readonly char[] _baseChars = {\n            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',\n            'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'\n        };\n\n        public int? CurrentIndex { get; set; }\n\n        private string Extension =>\n            _fatturaExtensionType == FatturaElettronicaFileNameExtensionType.Plain ? \".xml\" : \".xml.p7m\";\n\n        /// <summary>\n        /// Restituisce il Progressivo Invio Successivo\n        /// </summary>\n        /// <param name=\"lastNumber\"></param>\n        /// <returns></returns>\n        private string GetNext(int lastNumber)\n        {\n            CurrentIndex = ++lastNumber;\n            var value = ToString(CurrentIndex.Value);\n            if (value.Length > 5)\n                throw new ArgumentException(ErrorMessages.LastBillingNumberIsTooLong);\n            return value.PadLeft(5, '0');\n        }\n\n        /// <summary>\n        /// Restituisce il Progressivo Invio Successivo\n        /// </summary>\n        /// <param name=\"lastStringNumber\"></param>\n        /// <returns></returns>\n        private string GetNext(string lastStringNumber)\n        {\n            return GetNext(ToInteger(lastStringNumber));\n        }\n\n        /// <summary>\n        /// Da numero a stringa valida\n        /// </summary>\n        /// <param name=\"value\"></param>\n        /// <returns></returns>\n        private string ToString(int value)\n        {\n            var i = 32;\n            var buffer = new char[i];\n            var targetBase = _baseChars.Length;\n\n            do\n            {\n                buffer[--i] = _baseChars[value % targetBase];\n                value = value / targetBase;\n            } while (value > 0);\n\n            var result = new char[32 - i];\n            Array.Copy(buffer, i, result, 0, 32 - i);\n\n            return new(result);\n        }\n\n        /// <summary>\n        /// Da Stringa valida a numero\n        /// </summary>\n        /// <param name=\"value\"></param>\n        /// <returns></returns>\n        private int ToInteger(string value)\n        {\n            var k = value.Length - 1;\n            value = Reverse(value);\n            var targetBase = _baseChars.Length;\n            var result = 0;\n\n            do\n            {\n                for (var j = _baseChars.Length - 1; j > 0; j--)\n                {\n                    if (_baseChars[j] != value[k]) continue;\n                    result = result + j * (int) Math.Pow(targetBase, k);\n                    break;\n                }\n\n                k--;\n            } while (k >= 0);\n\n            return result;\n        }\n\n        /// <summary>\n        /// String Reverse\n        /// </summary>\n        /// <param name=\"s\"></param>\n        /// <returns></returns>\n        private static string Reverse(string s)\n        {\n            var charArray = s.ToCharArray();\n            Array.Reverse(charArray);\n            return new(charArray);\n        }\n    }\n}"
  },
  {
    "path": "Extensions/HtmlExtensions.cs",
    "content": "﻿using System;\nusing System.IO;\nusing System.Text;\nusing System.Xml;\nusing System.Xml.XPath;\nusing System.Xml.Xsl;\n\nnamespace FatturaElettronica.Extensions\n{\n    public static class HtmlExtensions\n    {\n        public static void WriteHtml(this FatturaBase fattura, string outPath, string xslPath)\n        {\n            if (outPath == null)\n            {\n                throw new ArgumentNullException(nameof(outPath));\n            }\n            \n            if (xslPath == null)\n            {\n                throw new ArgumentNullException(nameof(xslPath));\n            }\n\n            var xt = new XslCompiledTransform();\n            xt.Load(xslPath);\n            \n            using (var memoryStream = new MemoryStream())\n            {\n                using (var w = new XmlTextWriter(memoryStream, Encoding.UTF8) {Formatting = Formatting.Indented})\n                {\n                    fattura.WriteXml(w);\n                    w.Flush();\n                    \n                    memoryStream.Seek(0, SeekOrigin.Begin);\n\n                    var xPathDocument = new XPathDocument(memoryStream);\n                    using (var writer = File.OpenWrite(outPath))\n                    {\n                        xt.Transform(xPathDocument, null, writer);\n                    }\n                }\n            }\n        }\n    }\n}"
  },
  {
    "path": "Extensions/JsonExtensions.cs",
    "content": "﻿using System.Text;\r\nusing System.Text.Json;\r\n\r\nnamespace FatturaElettronica.Extensions\r\n{\r\n    public static class JsonExtensions\r\n    {\r\n        public static void FromJson(this FatturaBase fattura, string json)\r\n        {\r\n            fattura.FromJson(new Utf8JsonReader(Encoding.UTF8.GetBytes(json)));\r\n        }\r\n    }\r\n}"
  },
  {
    "path": "Extensions/Resources/ErrorMessages.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//     Runtime Version:4.0.30319.42000\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Extensions.Resources {\n    using System;\n    \n    \n    [System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class ErrorMessages {\n        \n        private static System.Resources.ResourceManager resourceMan;\n        \n        private static System.Globalization.CultureInfo resourceCulture;\n        \n        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal ErrorMessages() {\n        }\n        \n        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.Equals(null, resourceMan)) {\n                    System.Resources.ResourceManager temp = new System.Resources.ResourceManager(\"FatturaElettronica.Extensions.Resources.ErrorMessages\", typeof(ErrorMessages).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        public static string FirmaException {\n            get {\n                return ResourceManager.GetString(\"FirmaException\", resourceCulture);\n            }\n        }\n        \n        public static string IdCodiceIsMissing {\n            get {\n                return ResourceManager.GetString(\"IdCodiceIsMissing\", resourceCulture);\n            }\n        }\n        \n        public static string IdFiscaleIsMissing {\n            get {\n                return ResourceManager.GetString(\"IdFiscaleIsMissing\", resourceCulture);\n            }\n        }\n        \n        public static string IdPaeseIsWrongOrMissing {\n            get {\n                return ResourceManager.GetString(\"IdPaeseIsWrongOrMissing\", resourceCulture);\n            }\n        }\n        \n        public static string PfxIsMissing {\n            get {\n                return ResourceManager.GetString(\"PfxIsMissing\", resourceCulture);\n            }\n        }\n        \n        public static string ProgressivoOverflow {\n            get {\n                return ResourceManager.GetString(\"ProgressivoOverflow\", resourceCulture);\n            }\n        }\n        \n        public static string SignatureException {\n            get {\n                return ResourceManager.GetString(\"SignatureException\", resourceCulture);\n            }\n        }\n        public static string LastBillingNumberIsTooLong\n        {\n            get\n            {\n                return ResourceManager.GetString(\"ProgressivoOverflow\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Extensions/Resources/ErrorMessages.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n</root>"
  },
  {
    "path": "Extensions/Resources/ErrorMessages.resx",
    "content": "﻿<root>\n  <!-- \n    Microsoft ResX Schema \n    \n    Version 2.0\n    \n    The primary goals of this format is to allow a simple XML format \n    that is mostly human readable. The generation and parsing of the \n    various data types are done through the TypeConverter classes \n    associated with the data types.\n    \n    Example:\n    \n    ... ado.net/XML headers & schema ...\n    <resheader name=\"resmimetype\">text/microsoft-resx</resheader>\n    <resheader name=\"version\">2.0</resheader>\n    <resheader name=\"reader\">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\n    <resheader name=\"writer\">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\n    <data name=\"Name1\"><value>this is my long string</value><comment>this is a comment</comment></data>\n    <data name=\"Color1\" type=\"System.Drawing.Color, System.Drawing\">Blue</data>\n    <data name=\"Bitmap1\" mimetype=\"application/x-microsoft.net.object.binary.base64\">\n        <value>[base64 mime encoded serialized .NET Framework object]</value>\n    </data>\n    <data name=\"Icon1\" type=\"System.Drawing.Icon, System.Drawing\" mimetype=\"application/x-microsoft.net.object.bytearray.base64\">\n        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\n        <comment>This is a comment</comment>\n    </data>\n                \n    There are any number of \"resheader\" rows that contain simple \n    name/value pairs.\n    \n    Each data row contains a name, and value. The row also contains a \n    type or mimetype. Type corresponds to a .NET class that support \n    text/value conversion through the TypeConverter architecture. \n    Classes that don't support this are serialized and stored with the \n    mimetype set.\n    \n    The mimetype is used for serialized objects, and tells the \n    ResXResourceReader how to depersist the object. This is currently not \n    extensible. For a given mimetype the value must be set accordingly:\n    \n    Note - application/x-microsoft.net.object.binary.base64 is the format \n    that the ResXResourceWriter will generate, however the reader can \n    read any of the formats listed below.\n    \n    mimetype: application/x-microsoft.net.object.binary.base64\n    value   : The object must be serialized with \n            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\n            : and then encoded with base64 encoding.\n    \n    mimetype: application/x-microsoft.net.object.soap.base64\n    value   : The object must be serialized with \n            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\n            : and then encoded with base64 encoding.\n\n    mimetype: application/x-microsoft.net.object.bytearray.base64\n    value   : The object must be serialized into a byte array \n            : using a System.ComponentModel.TypeConverter\n            : and then encoded with base64 encoding.\n    -->\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:import namespace=\"http://www.w3.org/XML/1998/namespace\" />\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      <xsd:complexType>\n        <xsd:choice maxOccurs=\"unbounded\">\n          <xsd:element name=\"metadata\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" use=\"required\" type=\"xsd:string\" />\n              <xsd:attribute name=\"type\" type=\"xsd:string\" />\n              <xsd:attribute name=\"mimetype\" type=\"xsd:string\" />\n              <xsd:attribute ref=\"xml:space\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"assembly\">\n            <xsd:complexType>\n              <xsd:attribute name=\"alias\" type=\"xsd:string\" />\n              <xsd:attribute name=\"name\" type=\"xsd:string\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"data\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"1\" />\n                <xsd:element name=\"comment\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"2\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" use=\"required\" msdata:Ordinal=\"1\" />\n              <xsd:attribute name=\"type\" type=\"xsd:string\" msdata:Ordinal=\"3\" />\n              <xsd:attribute name=\"mimetype\" type=\"xsd:string\" msdata:Ordinal=\"4\" />\n              <xsd:attribute ref=\"xml:space\" />\n            </xsd:complexType>\n          </xsd:element>\n          <xsd:element name=\"resheader\">\n            <xsd:complexType>\n              <xsd:sequence>\n                <xsd:element name=\"value\" type=\"xsd:string\" minOccurs=\"0\" msdata:Ordinal=\"1\" />\n              </xsd:sequence>\n              <xsd:attribute name=\"name\" type=\"xsd:string\" use=\"required\" />\n            </xsd:complexType>\n          </xsd:element>\n        </xsd:choice>\n      </xsd:complexType>\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>2.0</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"FirmaException\" xml:space=\"preserve\">\n    <value>Impossibile firmare il contenuto del file</value>\n  </data>\n  <data name=\"IdCodiceIsMissing\" xml:space=\"preserve\">\n    <value>IdCodice non specificato</value>\n  </data>\n  <data name=\"IdFiscaleIsMissing\" xml:space=\"preserve\">\n    <value>IdFiscale non specificato</value>\n  </data>\n  <data name=\"IdPaeseIsWrongOrMissing\" xml:space=\"preserve\">\n    <value>IdPaese non specificato oppure errato</value>\n  </data>\n  <data name=\"PfxIsMissing\" xml:space=\"preserve\">\n    <value>Il file pfx non esiste</value>\n  </data>\n  <data name=\"ProgressivoOverflow\" xml:space=\"preserve\">\n    <value>Il progressivo è troppo elevato</value>\n  </data>\n  <data name=\"SignatureException\" xml:space=\"preserve\">\n    <value>Una firma non corrisponde al certificato contenuto nel file</value>\n  </data>\n</root>"
  },
  {
    "path": "Extensions/SignatureException.cs",
    "content": "﻿using System;\n\nnamespace FatturaElettronica.Extensions\n{\n    public class SignatureException : Exception\n    {\n        public SignatureException(string message) : base(message) { }\n\n        public SignatureException(string message, Exception innerException) : base(message, innerException)\n        {\n        }\n    }\n}\n"
  },
  {
    "path": "Extensions/SignedFileExtensions.cs",
    "content": "using System;\nusing System.IO;\nusing System.Security.Cryptography;\nusing System.Security.Cryptography.Pkcs;\nusing System.Security.Cryptography.X509Certificates;\n\nnamespace FatturaElettronica.Extensions\n{\n\n    public static class SignedFileExtensions\n    {\n\n        /// <summary>\n        /// This method will Read the Signed XML whether it is Base64Encoded or plain\n        /// </summary>\n        /// <param name=\"fattura\"></param>\n        /// <param name=\"filePath\"></param>\n        /// <param name=\"validateSignature\"></param>\n        /// <exception cref=\"SignatureException\">If there is an error validating invoice signature</exception>\n        /// <exception cref=\"FormatException\">If it is dealing with a Base64 input and it fails to decode it</exception>\"\n        public static void ReadXmlSigned(this FatturaBase fattura, string filePath, bool validateSignature = true)\n        {\n            using var inputStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);\n            using var contentStream = StreamExtensions.PreprocessStreamEncoding(inputStream);\n            ReadXmlSigned(fattura, contentStream, validateSignature);\n\n        }\n\n        public static void ReadXmlSignedBase64(this FatturaBase fattura, string filePath, bool validateSignature = true)\n        {\n            ReadXmlSigned(fattura, new MemoryStream(Convert.FromBase64String(File.ReadAllText(filePath))),\n                validateSignature);\n        }\n\n        public static void ReadXmlSigned(this FatturaBase fattura, Stream stream, bool validateSignature = true)\n        {\n            using var parsed = ParseSignature(stream, validateSignature);\n            fattura.ReadXml(parsed);\n        }\n\n        /// <summary>\n        /// Retrieves the Fattura XML as a Stream from an input Signed content Stream. \n        /// It should be invoked on Signed content that is not base encoded, and supports signature validation\n        /// </summary>\n        /// <param name=\"stream\">A Signed Content stream</param>\n        /// <param name=\"validateSignature\">If we should validate the content matches the signature</param>\n        /// <returns>A Stream that can be Read into a Fattura object</returns>\n        /// <exception cref=\"SignatureException\">If ValidateSignature is true and the content doesn't match the signature</exception>\n        /// <exception cref=\"CryptographicException\">If the stream is encoded or there is an error Decoding the signature and ValidateSignature is false</exception>\n        public static MemoryStream ParseSignature(Stream stream, bool validateSignature)\n        {\n            var fileContent = ReadAllBytes(stream);\n            var content = new ContentInfo(fileContent);\n            var signedFile = new SignedCms(SubjectIdentifierType.IssuerAndSerialNumber, content, false);\n\n            try\n            {\n                signedFile.Decode(fileContent);\n                if (validateSignature)\n                {\n                    signedFile.CheckSignature(true);\n                }\n            }\n            catch (CryptographicException ce)\n            {\n                throw new SignatureException(Resources.ErrorMessages.SignatureException, ce);\n            }\n\n            var memoryStream = new MemoryStream();\n            memoryStream.Write(signedFile.ContentInfo.Content, 0, signedFile.ContentInfo.Content.Length);\n\n            return memoryStream;\n\n            static byte[] ReadAllBytes(Stream stream)\n            {\n                if (stream is MemoryStream mem)\n                    return mem.ToArray();\n\n                using var ms = new MemoryStream();\n                var buffer = new byte[8192];\n                int bytesRead;\n\n                while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)\n                    ms.Write(buffer, 0, bytesRead);\n\n                return ms.ToArray();\n            }\n        }\n\n        public static void WriteXmlSigned(this FatturaBase fattura, string pfxFile, string pfxPassword, string p7mFilePath)\n        {\n            if (!File.Exists(pfxFile))\n                throw new SignatureException(Resources.ErrorMessages.PfxIsMissing);\n\n            var cert = new X509Certificate2(pfxFile, pfxPassword);\n            WriteXmlSigned(fattura, cert, p7mFilePath);\n        }\n\n        public static void WriteXmlSigned(this FatturaBase fattura, X509Certificate2 cert, string p7mFilePath)\n        {\n            var tempFile = Path.GetTempFileName();\n\n            if (!p7mFilePath.ToLowerInvariant().EndsWith(\".p7m\"))\n                p7mFilePath += \".p7m\";\n\n            try\n            {\n                fattura.WriteXml(tempFile);\n\n                var content = new ContentInfo(new(\"1.2.840.113549.1.7.1\", \"PKCS 7 Data\"),\n                    File.ReadAllBytes(tempFile));\n                var signedCms = new SignedCms(SubjectIdentifierType.IssuerAndSerialNumber, content, false);\n                var signer = new CmsSigner(cert)\n                {\n                    IncludeOption = X509IncludeOption.EndCertOnly,\n                    DigestAlgorithm = new(\"2.16.840.1.101.3.4.2.1\", \"SHA256\")\n                };\n                signer.SignedAttributes.Add(new Pkcs9SigningTime(DateTime.Now));\n                //PKCS7 format\n                signedCms.ComputeSignature(signer, false);\n\n                var signature = signedCms.Encode();\n                File.WriteAllBytes(p7mFilePath, signature);\n            }\n            catch (Exception)\n            {\n                throw new SignatureException(Resources.ErrorMessages.FirmaException);\n            }\n            finally\n            {\n                if (File.Exists(tempFile))\n                    File.Delete(tempFile);\n            }\n        }\n    }\n}"
  },
  {
    "path": "Extensions/StreamExtensions.cs",
    "content": "﻿using System;\nusing System.IO;\nusing System.Text.RegularExpressions;\n\nnamespace FatturaElettronica.Extensions\n{\n    public static class StreamExtensions\n    {\n        /// <summary>\n        /// This helper performs preliminary checks to determine if content is likely to be Base64 encoded and if it is it attempts to Decode it and returns.\n        /// For better consistency with previous implementations if the input stream Position is not 0 and it is seekable, it will be rewound to Position = 0\n        /// </summary>\n        /// <param name=\"fileContents\">The Stream to be processed</param>\n        /// <returns>If the input stream was Base encoded and was successfully decoded it returns a new Stream containing the decoded data. \n        ///Else it rewinds and returns the original stream</returns>\n        ///<exception cref=\"FormatException\">Although unlikely, if provided with an invalid base encoded Stream that still got through the length check and regex it will throw a FormatException</exception>\n        public static Stream PreprocessStreamEncoding(Stream fileContents)\n        {\n            ///Previous versions of the library worked independently of the stream position, so we should maintain this behavior where possible\n            if (fileContents.Position != 0 && fileContents.CanSeek)\n            {\n                fileContents.Position = 0;\n            }\n            //Using the full constructor to prevent stream collection\n            using var reader = new StreamReader(fileContents, System.Text.Encoding.UTF8, true, 1024, true);\n            var content = reader.ReadToEnd();\n            //The length check is a bit faster separate instead of inserted in the regex match\n            if (content.Length % 4 != 0 || !Regex.IsMatch(content, \"^[A-Za-z0-9+/]*([AQgw]==|[AEIMQUYcgkosw048]=)?$\"))\n            {\n                //Unlikely to be B64,we rewind the stream for caller convenience\n                fileContents.Position = 0;\n                return fileContents;\n            }\n            //Returning a B64Decoded Stream\n            return new MemoryStream(Convert.FromBase64String(content));\n        }\n    }\n}"
  },
  {
    "path": "Extensions/XmlExtensions.cs",
    "content": "﻿using System.IO;\nusing System.Xml;\n\nnamespace FatturaElettronica.Extensions\n{\n    public static class XmlExtensions\n    {\n        public static void ReadXml(this FatturaBase fattura, string filePath)\n        {\n            using var r = XmlReader.Create(filePath,\n                new()\n                {\n                    IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true\n                });\n            fattura.ReadXml(r);\n        }\n\n        public static void ReadXml(this FatturaBase fattura, Stream stream)\n        {\n            stream.Position = 0;\n            using var r = XmlReader.Create(stream,\n                new()\n                {\n                    IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true\n                });\n            fattura.ReadXml(r);\n        }\n\n        public static void WriteXml(this FatturaBase fattura, string filePath)\n        {\n            using var w = XmlWriter.Create(filePath, new() {Indent = true});\n            fattura.WriteXml(w);\n        }\n    }\n}"
  },
  {
    "path": "FUNDING.yml",
    "content": "github: nicolaiarocci"
  },
  {
    "path": "FatturaBase.cs",
    "content": "using System;\nusing System.IO;\nusing System.Security.Cryptography;\nusing System.Text;\nusing System.Xml;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica\n{\n    public abstract class FatturaBase : BaseClassSerializable\n    {\n        static FatturaBase()\n        {\n            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);\n        }\n\n        public override void ReadXml(XmlReader r)\n        {\n            r.MoveToContent();\n            base.ReadXml(r);\n        }\n\n        public override void WriteXml(XmlWriter w)\n        {\n            w.WriteStartElement(RootElement.Prefix, GetLocalName(), GetNameSpace());\n            w.WriteAttributeString(\"versione\", GetFormatoTrasmissione());\n            if (!string.IsNullOrEmpty(SistemaEmittente))\n            {\n                w.WriteAttributeString(\"SistemaEmittente\", SistemaEmittente);\n            }\n\n            foreach (var a in RootElement.ExtraAttributes)\n            {\n                w.WriteAttributeString(a.Prefix, a.LocalName, a.ns, a.value);\n            }\n\n            base.WriteXml(w);\n            w.WriteEndElement();\n        }\n\n        public static FatturaBase CreateInstanceFromXml(Stream stream, bool validateSignature = false)\n        {\n            using var contentStream = StreamExtensions.PreprocessStreamEncoding(stream);\n            try\n            {\n                return CreateInstanceFromPlainXml(contentStream);\n            }\n            catch (XmlException)\n            {\n                stream.Position = 0;\n                return CreateInstanceFromXmlSigned(contentStream, validateSignature);\n            }\n        }\n\n        private static FatturaBase CreateInstanceFromPlainXml(Stream stream)\n        {\n            FatturaBase ret;\n            using (var r = XmlReader.Create(stream,\n                new()\n                {\n                    IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true\n                }))\n            {\n                while (r.Read() && !r.LocalName.Contains(\"Fattura\"))\n                {\n                }\n\n                var att = r.GetAttribute(\"versione\");\n\n                if (att == FormatoTrasmissione.Semplificata)\n                    ret = Semplificata.FatturaSemplificata.CreateInstance(Instance.Semplificata);\n                else\n                    ret = FatturaOrdinaria.CreateInstance(\n                        att == FormatoTrasmissione.PubblicaAmministrazione\n                            ? Instance.PubblicaAmministrazione\n                            : Instance.Privati);\n                stream.Position = 0;\n            }\n\n            using (var r = XmlReader.Create(stream,\n                new()\n                {\n                    IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true\n                }))\n            {\n                ret.ReadXml(r);\n            }\n\n            return ret;\n        }\n\n        private static FatturaBase CreateInstanceFromXmlSigned(Stream stream,\n            bool validateSignature = true)\n        {\n            try\n            {\n                using var parsed = SignedFileExtensions.ParseSignature(stream, validateSignature);\n                var newStream = new MemoryStream();\n                parsed.WriteTo(newStream);\n                newStream.Position = 0;\n                return CreateInstanceFromXml(newStream);\n            }\n            catch (Exception ex) when (ex is CryptographicException or SignatureException)\n            {\n                stream.Position = 0;\n                return CreateInstanceFromXmlSignedBase64(stream, validateSignature);\n            }\n        }\n\n        private static FatturaBase CreateInstanceFromXmlSignedBase64(Stream stream,\n            bool validateSignature = true)\n        {\n            byte[] converted;\n            using (var reader = new StreamReader(stream))\n            {\n                converted = Convert.FromBase64String(reader.ReadToEnd());\n            }\n\n            return CreateInstanceFromXmlSigned(new MemoryStream(converted), validateSignature);\n        }\n\n        protected override void ReadAndHandleXmlStartElement(XmlReader r)\n        {\n            SistemaEmittente = r.GetAttribute(\"SistemaEmittente\");\n            base.ReadAndHandleXmlStartElement(r);\n        }\n\n        public string SistemaEmittente { get; set; }\n        public abstract string GetFormatoTrasmissione();\n        protected abstract string GetLocalName();\n        protected abstract string GetNameSpace();\n    }\n}"
  },
  {
    "path": "FatturaElettronica.csproj",
    "content": "﻿<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFramework>netstandard2.0</TargetFramework>\n    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>\n    <VersionPrefix>4.0.7</VersionPrefix>\n    <PackageId>FatturaElettronica</PackageId>\n    <Authors>Nicola Iarocci</Authors>\n    <Company>CIR 2000</Company>\n    <Product>FatturaElettronica.NET</Product>\n    <Description>Fattura elettronica per le aziende e la pubblica amministrazione italiana</Description>\n    <Copyright>Copyright © CIR2000 2017-2022</Copyright>\n    <PackageProjectUrl>https://fatturaelettronicaopensource.org</PackageProjectUrl>\n    <RepositoryUrl>https://github.com/FatturaElettronica/FatturaElettronica.NET</RepositoryUrl>\n    <PackageLicenseFile>LICENSE.txt</PackageLicenseFile>\n    <PackageReadmeFile>README.md</PackageReadmeFile>\n    <LangVersion>latest</LangVersion>\n    <PackageIcon>icon.png</PackageIcon>\n  </PropertyGroup>\n\n<ItemGroup>\n    <None Include=\"LICENSE.txt\" Pack=\"true\" PackagePath=\"\\\"/>\n    <None Include=\"README.md\" Pack=\"true\" PackagePath=\"\\\"/>\n    <None Include=\".github\\workflows\\**\\*.*\" Pack=\"false\" />\n  </ItemGroup>\n\n  <ItemGroup>\n    <Compile Remove=\"Tests\\**\"/>\n    <Compile Remove=\"Test\\**\"/>\n    <EmbeddedResource Remove=\"Tests\\**\"/>\n    <EmbeddedResource Remove=\"Test\\**\"/>\n    <None Remove=\"Tests\\**\"/>\n    <None Remove=\"Test\\**\"/>\n\n    <EmbeddedResource Update=\"Resources\\**\\*.resx\">\n      <Generator>PublicResXFileCodeGenerator</Generator>\n      <LastGenOutput>%(Filename).Designer.cs</LastGenOutput>\n    </EmbeddedResource>\n  </ItemGroup>\n\n  <ItemGroup>\n    <PackageReference Include=\"FluentValidation\" Version=\"11.5.2\"/>\n    <PackageReference Include=\"System.Security.Cryptography.Pkcs\" Version=\"9.0.0\" />\n    <PackageReference Include=\"System.Text.Encoding.CodePages\" Version=\"9.0.0\" />\n    <PackageReference Include=\"System.Text.Json\" Version=\"9.0.0\" />\n  </ItemGroup>\n\n  <ItemGroup>\n    <None Include=\"Artwork/fattura_elettronica.png\" Pack=\"true\" PackagePath=\"/icon.png\" />\n  </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "FatturaElettronica.csproj.DotSettings",
    "content": "﻿<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namespace:System;assembly=mscorlib\" xmlns:ss=\"urn:shemas-jetbrains-com:settings-storage-xaml\" xmlns:wpf=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">\n\t<s:Boolean x:Key=\"/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=extensions_005Cfatturaelettronicafilenamegenerator/@EntryIndexedValue\">True</s:Boolean></wpf:ResourceDictionary>"
  },
  {
    "path": "FatturaElettronica.sln",
    "content": "﻿\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 15\nVisualStudioVersion = 15.0.26730.12\nMinimumVisualStudioVersion = 10.0.40219.1\nProject(\"{9A19103F-16F7-4668-BE54-9A1E7A4F7556}\") = \"FatturaElettronica\", \"FatturaElettronica.csproj\", \"{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}\"\nEndProject\nProject(\"{9A19103F-16F7-4668-BE54-9A1E7A4F7556}\") = \"FatturaElettronica.Test\", \"Test\\FatturaElettronica.Test.csproj\", \"{C2CAC490-0AF7-4435-8585-03236454FCCB}\"\nEndProject\nGlobal\n\tGlobalSection(SolutionConfigurationPlatforms) = preSolution\n\t\tDebug|Any CPU = Debug|Any CPU\n\t\tDebug|x64 = Debug|x64\n\t\tDebug|x86 = Debug|x86\n\t\tRelease|Any CPU = Release|Any CPU\n\t\tRelease|x64 = Release|x64\n\t\tRelease|x86 = Release|x86\n\tEndGlobalSection\n\tGlobalSection(ProjectConfigurationPlatforms) = postSolution\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Debug|x64.ActiveCfg = Debug|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Debug|x64.Build.0 = Debug|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Debug|x86.ActiveCfg = Debug|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Debug|x86.Build.0 = Debug|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Release|Any CPU.Build.0 = Release|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Release|x64.ActiveCfg = Release|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Release|x64.Build.0 = Release|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Release|x86.ActiveCfg = Release|Any CPU\n\t\t{0A1CFCCB-0061-43E5-8392-C78B4156D2CA}.Release|x86.Build.0 = Release|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Debug|Any CPU.Build.0 = Debug|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Debug|x64.ActiveCfg = Debug|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Debug|x64.Build.0 = Debug|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Debug|x86.ActiveCfg = Debug|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Debug|x86.Build.0 = Debug|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Release|Any CPU.ActiveCfg = Release|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Release|Any CPU.Build.0 = Release|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Release|x64.ActiveCfg = Release|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Release|x64.Build.0 = Release|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Release|x86.ActiveCfg = Release|Any CPU\n\t\t{C2CAC490-0AF7-4435-8585-03236454FCCB}.Release|x86.Build.0 = Release|Any CPU\n\tEndGlobalSection\n\tGlobalSection(SolutionProperties) = preSolution\n\t\tHideSolutionNode = FALSE\n\tEndGlobalSection\n\tGlobalSection(ExtensibilityGlobals) = postSolution\n\t\tSolutionGuid = {D75DC96A-3736-41A2-8139-C56A1235CEC7}\n\tEndGlobalSection\nEndGlobal\n"
  },
  {
    "path": "FatturaElettronica.sln.DotSettings",
    "content": "﻿<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namespace:System;assembly=mscorlib\" xmlns:ss=\"urn:shemas-jetbrains-com:settings-storage-xaml\" xmlns:wpf=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=ABI/@EntryIndexedValue\">ABI</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=BIC/@EntryIndexedValue\">BIC</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CAB/@EntryIndexedValue\">CAB</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CAP/@EntryIndexedValue\">CAP</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CF/@EntryIndexedValue\">CF</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CIG/@EntryIndexedValue\">CIG</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CUP/@EntryIndexedValue\">CUP</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DDT/@EntryIndexedValue\">DDT</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FPA/@EntryIndexedValue\">FPA</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=FPR/@EntryIndexedValue\">FPR</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IBAN/@EntryIndexedValue\">IBAN</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=IVA/@EntryIndexedValue\">IVA</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=PEC/@EntryIndexedValue\">PEC</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=REA/@EntryIndexedValue\">REA</s:String>\n\t<s:String x:Key=\"/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=XML/@EntryIndexedValue\">XML</s:String></wpf:ResourceDictionary>"
  },
  {
    "path": "LICENSE.txt",
    "content": "Copyright (c) 2017 by Nicola Iarocci, Gestionali Amica and contributors. See \nAUTHORS for more details.\n\nSome rights reserved.\n\nRedistribution and use in source and binary forms of the software as well as\ndocumentation, with or without modification, are permitted provided that the\nfollowing conditions are met:\n\n* Redistributions of source code must retain the above copyright\n  notice, this list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above\n  copyright notice, this list of conditions and the following disclaimer in the\n  documentation and/or other materials provided with the distribution.\n\n* The names of the contributors may not be used to endorse or\n  promote products derived from this software without specific prior written\n  permission.\n\nTHIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND\nCONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\nCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\nEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\nOF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\nIN ANY WAY OUT OF THE USE OF THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED\nOF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiBeniServizi/AltriDatiGestionali.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi\n{\n    /// <summary>\n    /// Blocco che consente di inserire, con riferimento ad una linea di dettaglio, diverse tipologie di informazioni utili ai fini\n    /// amministrativi, gestionali, etc.\n    /// </summary>\n    public class AltriDatiGestionali : BaseClassSerializable\n    {\n\n        public AltriDatiGestionali() { }\n        public AltriDatiGestionali(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Codice che identifica la tipologia di informazione\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoDato { get; set; }\n\n        /// <summary>\n        /// Campo in cui inserire un valore alfanumerico riferito alla tipologia di informazione.\n        /// </summary>\n        [Core.DataProperty]\n        public string RiferimentoTesto { get; set; }\n\n        /// <summary>\n        /// Campo in cui inserire un valore numerico riferito alla tipologia di informazione.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? RiferimentoNumero { get; set; }\n\n        /// <summary>\n        /// Campo in cui inserire una data riferita alla tiplogia di informazione.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? RiferimentoData { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiBeniServizi/CodiceArticolo.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi\n{\n    /// <summary>\n    /// Eventuale codifica dell'articolo.\n    /// </summary>\n    public class CodiceArticolo : BaseClassSerializable\n    {\n        public CodiceArticolo() { }\n        public CodiceArticolo(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Indica la tipologia di codice articolo (TARIC, CPV, EAN, SSC, ...)\n        /// </summary>\n        [Core.DataProperty]\n        public string CodiceTipo { get; set; }\n\n        /// <summary>\n        /// Indica il valore del codice articolo corrispondente alla tipologia riportata nel campo CodiceTipo.\n        /// </summary>\n        [Core.DataProperty]\n        public string CodiceValore { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiBeniServizi/DatiBeniServizi.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi\n{\n\n    /// <summary>\n    /// Blocco sempre obbligatorio contenente natura, qualità e quantità dei beni / servizi formanti oggetto dell'operazione.\n    /// </summary>\n    public class DatiBeniServizi : BaseClassSerializable\n    {\n        /// <summary>\n        /// Blocco sempre obbligatorio contenente natura, qualità e quantità dei beni / servizi formanti oggetto dell'operazione.\n        /// </summary>\n        public DatiBeniServizi()\n        {\n            DettaglioLinee = new();\n            DatiRiepilogo = new();\n        }\n        public DatiBeniServizi(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DettaglioLinee> DettaglioLinee { get; set; }\n\n        /// <summary>\n        /// Blocco sempre obbligatorio contenente i dati di riepilogo per ogni aliquota IVA o natura.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiRiepilogo> DatiRiepilogo { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiBeniServizi/DatiRiepilogo.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi\n{\n    /// <summary>\n    /// Blocco sempre obbligatorio contenente i dati di riepilogo per ogni aliquota IVA o natura.\n    /// </summary>\n    public class DatiRiepilogo : BaseClassSerializable\n    {\n        public DatiRiepilogo() { }\n        public DatiRiepilogo(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Aliquota (%) IVA.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal AliquotaIVA { get; set; }\n\n        /// <summary>\n        /// Natura delle operazioni qualora non rientrino tra quelle imponibili.\n        /// </summary>\n        [Core.DataProperty]\n        public string Natura { get; set; }\n\n        /// <summary>\n        /// Corrispettivi relativi alle cessioni accessorie (es. imballaggi etc.) qualora presenti.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? SpeseAccessorie { get; set; }\n\n        /// <summary>\n        /// Arrotondamento sull'imponibili o sull'imposta.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Arrotondamento { get; set; }\n\n        /// <summary>\n        /// Questo valore rappresenta: base imponibile per le operazioni soggette ad IVA; importo, per le operazioni che non \n        /// rientrano tra quelle imponibili.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal ImponibileImporto { get; set; }\n\n        /// <summary>\n        /// Imposta risultante dall'applicazione dell'aliquota IVA all'imponibile.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal Imposta { get; set; }\n\n        /// <summary>\n        /// Eseigibilità IVA (immediata ai sensi Art. 6 comma 5 del DPR 633 1972, oppure differita).\n        /// </summary>\n        [Core.DataProperty]\n        public string EsigibilitaIVA { get; set; }\n\n        /// <summary>\n        /// Norma di riferimento (obbligatoria nei casi in cui Natura è valorizzato).\n        /// </summary>\n        [Core.DataProperty]\n        public string RiferimentoNormativo { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiBeniServizi/DettaglioLinee.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi\n{\n    /// <summary>\n    /// Linee di dettaglio del documento (i campi del blocco si ripetono per ogni riga di dettaglio).\n    /// </summary>\n    public class DettaglioLinee : BaseClassSerializable\n    {\n        /// <summary>\n        /// Linee di dettaglio del documento (i campi del blocco si ripetono per ogni riga di dettaglio).\n        /// </summary>\n        public DettaglioLinee()\n        {\n            CodiceArticolo = new();\n            ScontoMaggiorazione = new();\n            AltriDatiGestionali = new();\n        }\n\n        public DettaglioLinee(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero della riga di dettaglio del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public int NumeroLinea { get; set; }\n\n        /// <summary>\n        /// Da valorizzare nei soli casi di sconto, premio, abbuono, spesa accessoria.\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoCessionePrestazione { get; set; }\n\n        /// <summary>\n        /// Eventuale codifica dell'articolo (la molteplicità N del blocco consente di gestire la presenza di più codifiche).\n        /// </summary>\n        [Core.DataProperty]\n        public List<CodiceArticolo> CodiceArticolo { get; set; }\n\n        /// <summary>\n        /// Natura e quantità dell'oggetto della cessione/prestazione; può fare anche riferimento ad un precedente documento emesso\n        /// a titolo di anticipo/acconto, nel qual caso il valore del campo PrezzoUnitario e PrezzoTotale sarà negativo.\n        /// </summary>\n        [Core.DataProperty]\n        public string Descrizione { get; set; }\n\n        /// <summary>\n        /// Numero di unità cedute / prestate.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Quantita { get; set; }\n\n        /// <summary>\n        /// Unità di misura riferita alla quantità.\n        /// </summary>\n        [Core.DataProperty]\n        public string UnitaMisura { get; set; }\n\n        /// <summary>\n        /// Data iniziale del periodo di riferimento cui si riferisce l'eventuale servizio prestato.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataInizioPeriodo { get; set; }\n\n        /// <summary>\n        /// Data finale del periodo di riferimento cui si riferisce l'eventuale servizio prestato.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataFinePeriodo { get; set; }\n\n        /// <summary>\n        /// Prezzo unitario del bene/servizio; nel caso di beni ceduti a titolo di sconto, premio o abbuono, l'importo indicato rappresenta il \"valore normale\".\n        /// </summary>\n        [Core.DataProperty]\n        public decimal PrezzoUnitario { get; set; }\n\n        /// <summary>\n        /// Eventuale sconto o maggiorazione applicati (la molteciplità N del blocco consente di gestire la presenza di più sconti o \n        /// maggiorazioni a \"cascata\").\n        /// </summary>\n        [Core.DataProperty]\n        public List<ScontoMaggiorazione> ScontoMaggiorazione { get; set; }\n\n        /// <summary>\n        /// Importo totale del bene/servizio (che tiene conto di eventuali sconti/maggiorazioni) IVA esclusa.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal PrezzoTotale { get; set; }\n\n        /// <summary>\n        /// Aliquota (%) IVA applicata al bene/servizio.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal AliquotaIVA { get; set; }\n\n        /// <summary>\n        /// Da valorizzare solo in caso di cessione/prestazione soggetta a ritenuta di acconto.\n        /// </summary>\n        [Core.DataProperty]\n        public string Ritenuta { get; set; }\n\n        /// <summary>\n        /// Natura dell'operazione se non rientra tra quelle imponibili (il campo Aliquota IVA deve essere valorizzato a zero).\n        /// </summary>\n        [Core.DataProperty]\n        public string Natura { get; set; }\n\n        /// <summary>\n        /// Codice identificativo ai fini amministrativo-contabili.\n        /// </summary>\n        [Core.DataProperty]\n        public string RiferimentoAmministrazione { get; set; }\n\n        /// <summary>\n        /// Blocco che consente di inserire, con riferimento ad una linea di dettaglio, diverse tipologie di informazioni utili ai \n        /// fini amministrativi, gestionali, etc.\n        /// </summary>\n        [Core.DataProperty]\n        public List<AltriDatiGestionali> AltriDatiGestionali { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiAnagraficiVettore.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    public class DatiAnagraficiVettore : DatiAnagrafici\n    {\n        public DatiAnagraficiVettore() { }\n        public DatiAnagraficiVettore(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero identificativo della licenza di guida (es. numero patente).\n        /// </summary>\n        [Core.DataProperty]\n        public string NumeroLicenzaGuida { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiBollo.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati relativi al bollo.\n    /// </summary>\n    public class DatiBollo : BaseClassSerializable\n    {\n        public DatiBollo() { }\n        public DatiBollo(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Bollo virtuale.\n        /// </summary>\n        [Core.DataProperty]\n        public string BolloVirtuale { get; set; }\n        \n\n        /// <summary>\n        /// Importo del bollo.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? ImportoBollo { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiCassaPrevidenziale.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati relativi alla cassa previdenziale di appartenenza.\n    /// </summary>\n    public class DatiCassaPrevidenziale : BaseClassSerializable\n    {\n        public DatiCassaPrevidenziale() { }\n        public DatiCassaPrevidenziale(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n        \n        /// <summary>\n        /// Tipologia della cassa previdenziale di appartenenza.\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoCassa { get; set; }\n\n        /// <summary>\n        /// Aliquota (%) del contributo, se previsto, per la cassa di appartenenza.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal AlCassa { get; set; }\n\n        /// <summary>\n        /// Importo del contributo per la cassa di appartenenza.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal ImportoContributoCassa { get; set; }\n\n        /// <summary>\n        /// Importo sul quale applicare il contributo cassa previdenziale.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal ImponibileCassa { get; set; }\n\n        /// <summary>\n        /// Aliquota (%) IVA applicata.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal AliquotaIVA { get; set; }\n\n        /// <summary>\n        /// Indica se il contributo cassa è soggetto a ritenuta.\n        /// </summary>\n        [Core.DataProperty]\n        public string Ritenuta { get; set; }\n\n        /// <summary>\n        /// Nei casi di Aliquota IVA pari a zero.\n        /// </summary>\n        [Core.DataProperty]\n        public string Natura { get; set; }\n\n        /// <summary>\n        /// Codice identificativo ai fini amministrativo-contabili.\n        /// </summary>\n        [Core.DataProperty]\n        public string RiferimentoAmministrazione { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiContratto.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Informazioni relative al contratto.\n    /// </summary>\n    public class DatiContratto : Common.DatiDocumento\n    {\n        public DatiContratto() { }\n        public DatiContratto(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiConvenzione.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Informazioni relative alla convenzione.\n    /// </summary>\n    public class DatiConvenzione : Common.DatiDocumento\n    {\n\n        public DatiConvenzione() { }\n        public DatiConvenzione(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiDDT.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Nei casi di fattura differita per indicare il documento con cui è stato consegnato il bene.\n    /// </summary>\n    // ReSharper disable once InconsistentNaming\n    public class DatiDDT : BaseClassSerializable\n    {\n        /// <summary>\n        /// Nei casi di fattura differita per indicare il documento con cui è stato consegnato il bene.\n        /// </summary>\n        public DatiDDT()\n        {\n            RiferimentoNumeroLinea = new();\n        }\n\n\n        public DatiDDT(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Numero del documento di trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string NumeroDDT { get; set; }\n\n        /// <summary>\n        /// Data del documento di trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public DateTime DataDDT { get; set; }\n\n        /// <summary>\n        /// Linea di dettaglio della fattura cui si riferisce il DDT (non viene valorizzato se il riferimento è all'intera fattura).\n        /// </summary>\n        [Core.DataProperty]\n        public List<int> RiferimentoNumeroLinea { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiFattureCollegate.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Informazioni relative alle fatture precedentemente trasmesse e alle quali si collega il documento presente.\n    /// </summary>\n    /// <remarks>Riguarda i casi di invio di nota di credito e/o fatture di conguaglio a fronte di precedenti fatture di acconto.</remarks>\n    public class DatiFattureCollegate : Common.DatiDocumento\n    {\n        public DatiFattureCollegate() { }\n        public DatiFattureCollegate(XmlReader r) : base(r) { }\n\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiGenerali.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati generali del documento principale e dati dei documenti correlati.\n    /// </summary>\n    public class DatiGenerali : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati generali del documento principale e dati dei documenti correlati.\n        /// </summary>\n        public DatiGenerali()\n        {\n            DatiGeneraliDocumento = new();\n            DatiOrdineAcquisto = new();\n            DatiContratto = new();\n            DatiConvenzione = new();\n            DatiRicezione = new();\n            DatiFattureCollegate = new();\n            DatiSAL = new();\n            DatiDDT = new();\n            DatiTrasporto = new();\n            FatturaPrincipale = new();\n        }\n        public DatiGenerali(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiGeneraliDocumento DatiGeneraliDocumento { get; set; }\n\n        /// <summary>\n        /// Informazioni relative agli ordini di acquisto.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiOrdineAcquisto> DatiOrdineAcquisto { get; set; }\n\n        /// <summary>\n        /// Informazioni relative ai contratti.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiContratto> DatiContratto { get; set; }\n\n        /// <summary>\n        /// Informazioni relative alle convenzioni.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiConvenzione> DatiConvenzione { get; set; }\n\n        /// <summary>\n        /// Informazioni relative ai dati presenti sul sistema gestionale in uso presso la PA (Agenzie Fiscali) riguardanti la fase di ricezione.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiRicezione> DatiRicezione { get; set; }\n\n        /// <summary>\n        /// Informazioni relative alle fatture precedentemente trasmesse e alle quali si collega il documento presente.\n        /// Riguarda i casi di invio di nota di credito e/o di fatture di conguaglio a fronte di precedenti fatture di accounto.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiFattureCollegate> DatiFattureCollegate { get; set; }\n\n        /// <summary>\n        /// Blocco da valorizzare nei casi di fattura per stato di avanzamento.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public List<DatiSAL> DatiSAL { get; set; }\n\n        /// <summary>\n        /// Da valorizzarei nei casi di fattura differita per indicare il documento con cui è stato consegnato il bene.\n        /// I campi del blocco possono essere ripetuti se la fattura fa riferimento a più consegne e quindi a più documenti di trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public List<DatiDDT> DatiDDT { get; set; }\n\n        /// <summary>\n        /// Blocco da valorizzare nei casi di fattura accompagnatoria per inserire informazioni relative al trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiTrasporto DatiTrasporto { get; set; }\n\n        /// <summary>\n        /// Da valorizzare nei casi di fatture per operazioni accessorie, emesse dagli autotrasportatori per usufruire delle\n        /// agevolazioni in materia di registrazioni e pagamento dell'IVA.\n        /// </summary>\n        [Core.DataProperty]\n        public FatturaPrincipale FatturaPrincipale { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati generali del documento principale ed i dati dei documenti correlati.\n    /// </summary>\n    public class DatiGeneraliDocumento : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati generali del documento principale ed i dati dei documenti correlati.\n        /// </summary>\n        public DatiGeneraliDocumento()\n        {\n            DatiRitenuta = new();\n            DatiBollo = new();\n            DatiCassaPrevidenziale = new();\n            ScontoMaggiorazione = new();\n            Causale = new();\n        }\n        public DatiGeneraliDocumento(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoDocumento { get; set; }\n\n        /// <summary>\n        /// Codice espresso secondo lo standard ISO 4217 alpha-3:2001 della valuta utilizzata per l'indicazione degli importi.\n        /// </summary>\n        [Core.DataProperty]\n        public string Divisa { get; set; }\n\n        /// <summary>\n        /// Data del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime Data { get; set; }\n\n        /// <summary>\n        /// Numero progressivo del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public string Numero { get; set; }\n\n        /// <summary>\n        /// Dati della ritenuta.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiRitenuta> DatiRitenuta { get; set; }\n\n        /// <summary>\n        /// Dati del bollo.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiBollo DatiBollo { get; set; }\n\n        /// <summary>\n        /// Blocco dati relativi alla cassa previdenziale di appartenenenza.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiCassaPrevidenziale> DatiCassaPrevidenziale { get; set; }\n\n        /// <summary>\n        /// Eventuali sconti o maggiorazioni applicati sul totale documento.\n        /// </summary>\n        [Core.DataProperty]\n        public List<ScontoMaggiorazione> ScontoMaggiorazione { get; set; }\n\n        /// <summary>\n        /// Importo totale del documento al netto dell'eventuale sconto e comprensivo di imposta a debito del cessionario /committente.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? ImportoTotaleDocumento { get; set; }\n\n        /// <summary>\n        /// Eventuale arrotondamento sul totale documento (ammette anche il segno negativo).\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Arrotondamento { get; set; }\n\n        /// <summary>\n        /// Descrizione della causale del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public List<string> Causale { get; set; }\n\n        /// <summary>\n        /// Indica se il documento è stato emesso secondo modalità e termini stabiliti con decreto ministeriale ai sensi art. 73\n        /// DPR 633/72 (ciò consente al cedente/prestatore l'emissione nello stesso anno di più documenti aventi lo stesso numero).\n        /// </summary>\n        [Core.DataProperty]\n        public string Art73 { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiOrdineAcquisto.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Informazioni relative all'ordine di acquisto.\n    /// </summary>\n    public class DatiOrdineAcquisto : Common.DatiDocumento\n    {\n        public DatiOrdineAcquisto() { }\n        public DatiOrdineAcquisto(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiRicezione.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Informazioni relative ai dati presenti sul sistema gestionale in uso presso la PA (Agenzie Fiscali) riguardanti la fase di ricezione.\n    /// </summary>\n    public class DatiRicezione : Common.DatiDocumento\n    {\n        public DatiRicezione() { }\n        public DatiRicezione(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiRitenuta.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati relativi alla ritenuta.\n    /// </summary>\n    public class DatiRitenuta : BaseClassSerializable\n    {\n        public DatiRitenuta() { }\n        public DatiRitenuta(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Tipologia della ritenuta.\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoRitenuta { get; set; }\n        \n        /// <summary>\n        /// Importo dellla ritenuta.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal ImportoRitenuta { get; set; }\n        \n        /// <summary>\n        /// Aliquota (%) della ritenuta.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal AliquotaRitenuta { get; set; }\n        \n        /// <summary>\n        /// Causale del pagamento (quella del modello 770).\n        /// </summary>\n        [Core.DataProperty]\n        public string CausalePagamento { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiSAL.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Da valorizzare nei casi di fattura per stato di avanzamento.\n    /// </summary>\n    // ReSharper disable once InconsistentNaming\n    public class DatiSAL : BaseClassSerializable\n    {\n        public DatiSAL() { }\n        public DatiSAL(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n        \n        /// <summary>\n        /// Fase dello stato di avanzamento cui il documento si riferisce.\n        /// </summary>\n        [Core.DataProperty]\n        public int RiferimentoFase { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/DatiTrasporto.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Da valorizzare nel caso di fattura accompagnatoria per inserire informazioni relative al trasporto.\n    /// </summary>\n    public class DatiTrasporto : BaseClassSerializable\n    {\n        /// <summary>\n        /// Da valorizzare nel caso di fattura accompagnatoria per inserire informazioni relative al trasporto.\n        /// </summary>\n        public DatiTrasporto()\n        {\n            DatiAnagraficiVettore = new();\n            IndirizzoResa = new();\n        }\n        public DatiTrasporto(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati fiscali e anagrafici del vettore.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiAnagraficiVettore DatiAnagraficiVettore { get; set; }\n\n        /// <summary>\n        /// Mezzo utilizzato per il trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        public string MezzoTrasporto { get; set; }\n\n        /// <summary>\n        /// Causale del trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        public string CausaleTrasporto { get; set; }\n\n        /// <summary>\n        /// Numero dei colli trasportati.\n        /// </summary>\n        [Core.DataProperty]\n        public int? NumeroColli { get; set; }\n\n        /// <summary>\n        /// Descrizione (natura, qualità, aspetto...) relativa ai colli trasportati.\n        /// </summary>\n        [Core.DataProperty]\n        public string Descrizione { get; set; }\n\n        /// <summary>\n        /// Unità di misura riferita al peso della merce.\n        /// </summary>\n        [Core.DataProperty]\n        public string UnitaMisuraPeso { get; set; }\n\n        /// <summary>\n        /// Peso lordo della merce.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? PesoLordo { get; set; }\n\n        /// <summary>\n        /// Peso netto della merce.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? PesoNetto { get; set; }\n\n        /// <summary>\n        /// Data e ora del ritiro della merce.\n        /// </summary>\n        [Core.DataProperty]\n        [Core.IgnoreXmlDateFormat]\n        public DateTime? DataOraRitiro { get; set; }\n\n        /// <summary>\n        /// Data e ora del trasporto.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataInizioTrasporto { get; set; }\n\n        /// <summary>\n        /// Codifica del termine di resa espresso secondo lo standard ICC-Camera di Commercio Internazionale (Incoterms).\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoResa { get; set; }\n\n\n        /// <summary>\n        /// Indirizzo di resa.\n        /// </summary>\n        [Core.DataProperty]\n        public IndirizzoResa IndirizzoResa { get; set; }\n\n        /// <summary>\n        /// Data e ora della consegna della merce.\n        /// </summary>\n        [Core.DataProperty]\n        [Core.IgnoreXmlDateFormat]\n        public DateTime? DataOraConsegna { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/FatturaPrincipale.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Da valorizzare nei casi di fatture per operazione accessorie, emesse dagli autotraportatori per usufruire delle\n    /// agevolazioni in mteria di registrazione e pagamento IVA.\n    /// </summary>\n    public class FatturaPrincipale : BaseClassSerializable\n    {\n        public FatturaPrincipale() { }\n        public FatturaPrincipale(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n        \n        /// <summary>\n        /// Numero della fattura relativa al trasporto di beni, da indicare sulle fatture emesse dagli autotrasportatori per\n        /// certificare le operazioni accessorie.\n        /// </summary>\n        [Core.DataProperty]\n        public string NumeroFatturaPrincipale { get; set; }\n        \n\n        /// <summary>\n        /// Data della fattura relativa al trasporto di beni.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataFatturaPrincipale { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiGenerali/IndirizzoResa.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali\n{\n    public class IndirizzoResa : Common.Località\n    {\n        public IndirizzoResa() { } \n        public IndirizzoResa(XmlReader r) : base(r) { } \n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiPagamento/DatiPagamento.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiPagamento\n{\n    /// <summary>\n    /// Dati relativi al pagamento.\n    /// </summary>\n    public class DatiPagamento : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati relativi al pagamento.\n        /// </summary>\n        public DatiPagamento()\n        {\n            DettaglioPagamento = new();\n        }\n\n        public DatiPagamento(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Condizioni di pagamento.\n        /// </summary>\n        [Core.DataProperty]\n        public string CondizioniPagamento { get; set; }\n\n        /// <summary>\n        /// Dati di dettaglio del pagamento.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DettaglioPagamento> DettaglioPagamento { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiPagamento/DettaglioPagamento.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiPagamento\n{\n    /// <summary>\n    /// Dati di dettaglio del pagamento.\n    /// </summary>\n    public class DettaglioPagamento : BaseClassSerializable\n    {\n        public DettaglioPagamento() { }\n        public DettaglioPagamento(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Beneficiario del pagamento (utilizzabile se si intende indicare un beneficiario diverso dal cedente/prestatore).\n        /// </summary>\n        [Core.DataProperty]\n        public string Beneficiario { get; set; }\n\n        /// <summary>\n        /// Modalità di pagamento.\n        /// </summary>\n        [Core.DataProperty]\n        public string ModalitaPagamento { get; set; }\n\n        /// <summary>\n        /// Data dalla quale decorrono i termini di pagamento.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataRiferimentoTerminiPagamento { get; set; }\n\n        /// <summary>\n        /// Termini di pagamento espressi in giorni a partire dalla data di riferimento di cui al campo DataRiferimentoTerminiPagamento.\n        /// Vale 0 per i gamenti a vista.\n        /// </summary>\n        [Core.DataProperty]\n        public int? GiorniTerminiPagamento { get; set; }\n\n        /// <summary>\n        /// Data di scadenza del pagamento da indicare nei casi in cui ha senso sulla base delle condizioni di pagamento\n        /// previste.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataScadenzaPagamento { get; set; }\n\n        /// <summary>\n        /// Importo relativo al pagamento.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal ImportoPagamento { get; set; }\n\n        /// <summary>\n        /// Nei casi di modalità di pagamento in cui ha senso l'indicazione dellìufficio postale.\n        /// </summary>\n        [Core.DataProperty]\n        public string CodUfficioPostale { get; set; }\n\n        /// <summary>\n        /// Cognome del quietanziante (nel caso di campo ModalitaPagamento = MP04).\n        /// </summary>\n        [Core.DataProperty]\n        public string CognomeQuietanzante { get; set; }\n\n        /// <summary>\n        /// Nome del quietanziante (nel caso di campo ModalitaPagamento = MP04).\n        /// </summary>\n        [Core.DataProperty]\n        public string NomeQuietanzante { get; set; }\n\n        /// <summary>\n        /// Codice fiscale del quietanziante (nel caso di campo ModalitaPagamento = MP04).\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string CFQuietanzante { get; set; }\n\n        /// <summary>\n        /// Titolo del quietanziante (nel caso di campo ModalitaPagamento = MP04).\n        /// </summary>\n        [Core.DataProperty]\n        public string TitoloQuietanzante { get; set; }\n\n        /// <summary>\n        /// Nome dell'istituto finanziario.\n        /// </summary>\n        [Core.DataProperty]\n        public string IstitutoFinanziario { get; set; }\n\n        /// <summary>\n        /// International Bank Account Number (coordinata bancaria internazionale che consente di identificare, in maniera standard,\n        /// il conto corrente del beneficiario).\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string IBAN { get; set; }\n\n        /// <summary>\n        /// Codice ABI.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string ABI { get; set; }\n\n        /// <summary>\n        /// Codice CAB.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string CAB { get; set; }\n\n        /// <summary>\n        /// Bank Identifier Code (codice che identifica la banca del destinatario).\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string BIC { get; set; }\n\n        /// <summary>\n        /// Ammontare dello sconto per pagamento anticipato.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? ScontoPagamentoAnticipato { get; set; }\n\n        /// <summary>\n        /// Data limite stabilita per il pagamento anticipato.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataLimitePagamentoAnticipato { get; set; }\n\n        /// <summary>\n        /// Ammontare della penalità dovuta per pagamenti ritardati.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? PenalitaPagamentiRitardati { get; set; }\n\n        /// <summary>\n        /// Data di decorrenza della penale.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataDecorrenzaPenale { get; set; }\n\n        /// <summary>\n        /// Codice per la riconciliazione degli incassi da parte del cedente/prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public string CodicePagamento { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/DatiVeicoli/DatiVeicoli.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiVeicoli\n{\n    /// <summary>\n    /// Dati relativi ai veicoli di cui all'art. 38 comma 4 del ddl 331 del 1993.\n    /// </summary>\n    public class DatiVeicoli : BaseClassSerializable\n    {\n        public DatiVeicoli() { }\n        public DatiVeicoli(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Data di prima immatricolazione o iscrizione nei pubblici registri.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? Data { get; set; }\n\n        /// <summary>\n        /// Totale chilometri percorsi, oppure totale ora navigate o volate.\n        /// </summary>\n        [Core.DataProperty]\n        public string TotalePercorso { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaBody/FatturaElettronicaBody.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaBody\n{\n    public class FatturaElettronicaBody : BaseClassSerializable\n    {\n        /// <summary>\n        /// FatturaOrdinaria inclusa nella conunicazione.\n        /// </summary>\n        public FatturaElettronicaBody()\n        {\n            DatiGenerali = new();\n            DatiBeniServizi = new();\n            DatiVeicoli = new();\n            DatiPagamento = new();\n            Allegati = new();\n        }\n        public FatturaElettronicaBody(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiGenerali.DatiGenerali DatiGenerali { get; set; }\n\n        /// <summary>\n        /// Blocco sempre obbligatorio contenente natura qualità e quantità dei beni/servizi oggetto dell'operazione.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiBeniServizi.DatiBeniServizi DatiBeniServizi { get; set; }\n\n        /// <summary>\n        /// Dati relativi ai veicoli di cui all'art. 38 del dl 331 del 1993.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiVeicoli.DatiVeicoli DatiVeicoli { get; set; }\n\n        /// <summary>\n        /// Dati relativi al pagamento.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiPagamento.DatiPagamento> DatiPagamento { get; set; }\n\n        /// <summary>\n        /// Dati relativi ad eventuali allegati.\n        /// </summary>\n        [Core.DataProperty]\n        public List<Allegati> Allegati { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CedentePrestatore/CedentePrestatore.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore\n{\n    /// <summary>\n    /// Dati relativi al cedente / prestatore.\n    /// </summary>\n    public class CedentePrestatore : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati relativi al cedente / prestatore.\n        /// </summary>\n        public CedentePrestatore()\n        {\n            DatiAnagrafici = new();\n            Sede = new();\n            StabileOrganizzazione = new();\n            IscrizioneREA = new();\n            Contatti = new();\n        }\n        public CedentePrestatore(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati anagrafici, professionali e fiscali del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiAnagraficiCedentePrestatore DatiAnagrafici { get; set; }\n\n        /// <summary>\n        /// Dati della sede del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public SedeCedentePrestatore Sede { get; set; }\n\n        /// <summary>\n        /// Nei casi di cedente / prestatore non residente.\n        /// </summary>\n        [Core.DataProperty]\n        public StabileOrganizzazione StabileOrganizzazione { get; set; }\n\n        /// <summary>\n        /// Nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile.\n        /// </summary>\n        [Core.DataProperty]\n        public IscrizioneREA IscrizioneREA { get; set; }\n\n        /// <summary>\n        /// Contatti del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public Contatti Contatti { get; set; }\n\n        /// <summary>\n        /// Codice identificativo del cedente / prestatore a fini amministrativi-contabili.\n        /// </summary>\n        [Core.DataProperty]\n        public string RiferimentoAmministrazione { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CedentePrestatore/Contatti.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore\n{\n    /// <summary>\n    /// Represents a Contatti object\n    /// </summary>\n    public class Contatti : BaseClassSerializable\n    {\n        public Contatti() { } \n        public Contatti(XmlReader r) : base(r) { } \n\n        //public override string XmlName { get { return \"Contatti\"; } }\n\n        /// <summary>\n        /// Contatto telefonico fisso o mobile.\n        /// </summary>\n        [Core.DataProperty]\n        public string Telefono { get; set; }\n\n        /// <summary>\n        /// Numero di fax.\n        /// </summary>\n        [Core.DataProperty]\n        public string Fax { get; set; }\n\n        /// <summary>\n        /// Indirizzo di posta elettronica.\n        /// </summary>\n        [Core.DataProperty]\n        public string Email { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CedentePrestatore/DatiAnagraficiCedentePrestatore.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore\n{\n    public class DatiAnagraficiCedentePrestatore : DatiAnagrafici\n    {\n        /// <summary>\n        /// Dati anagrafici, professionali e fiscali del cedente / prestatore.\n        /// </summary>\n        public DatiAnagraficiCedentePrestatore() { }\n        public DatiAnagraficiCedentePrestatore(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Nome dell'albo professionale.\n        /// </summary>\n        [Core.DataProperty (order:10)]\n        public string AlboProfessionale { get; set; }\n\n        /// <summary>\n        /// Sigla della provincia di competenza dell'albo professionale.\n        /// </summary>\n        [Core.DataProperty (order:11)]\n        public string ProvinciaAlbo { get; set; }\n\n        /// <summary>\n        /// Numero di iscrizione all'albo professionale.\n        /// </summary>\n        [Core.DataProperty (order:12)]\n        public string NumeroIscrizioneAlbo { get; set; }\n\n        /// <summary>\n        /// Data di iscrizione all'albo professionale. \n        /// </summary>\n        [Core.DataProperty (order:13)]\n        public DateTime? DataIscrizioneAlbo { get; set; }\n\n        /// <summary>\n        /// Regime fiscale.\n        /// </summary>\n        [Core.DataProperty (order:14)]\n        public string RegimeFiscale { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CedentePrestatore/IscrizioneRea.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore\n{\n    /// <summary>\n    /// Represents a DatiAnagrafici object\n    /// </summary>\n    public class IscrizioneREA : BaseClassSerializable\n    {\n        public IscrizioneREA() { } \n        public IscrizioneREA(XmlReader r) : base(r) { } \n\n        /// <summary>\n        /// Sigla della provincia dell'Ufficio del registro delle imprese presso il quale è registata la società.\n        /// </summary>\n        [Core.DataProperty]\n        public string Ufficio { get; set; }\n\n        /// <summary>\n        /// Numero di iscrizione al registro delle imprese.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string NumeroREA { get; set; }\n\n        /// <summary>\n        /// Nei soli casi di società di capitali (Spa, SApA, SRL), il campo va valorizzato per indicare il capitale sociale.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? CapitaleSociale { get; set; }\n\n        /// <summary>\n        /// Nei soli casi di SRL, il campo va valorizzato per indicare se vi è un socio unico oppure se vi sono più soci.\n        /// </summary>\n        [Core.DataProperty]\n        public string SocioUnico { get; set; }\n\n        /// <summary>\n        /// Indica se la Società si trova in stato di liquidazione oppure no.\n        /// </summary>\n        [Core.DataProperty]\n        public string StatoLiquidazione { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CedentePrestatore/SedeCedentePrestatore.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore\n{\n    public class SedeCedentePrestatore : Common.Località\n    {\n        public SedeCedentePrestatore() { } \n        public SedeCedentePrestatore(XmlReader r) : base(r) { } \n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CessionarioCommittente/CessionarioCommittente.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente\n{\n\n    /// <summary>\n    /// Dati relativi al cessionario/ committente.\n    /// </summary>\n    public class CessionarioCommittente : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati relativi al cessionario / committente.\n        /// </summary>\n        public CessionarioCommittente()\n        {\n            DatiAnagrafici = new();\n            Sede = new();\n            StabileOrganizzazione = new();\n            RappresentanteFiscale = new();\n        }\n        public CessionarioCommittente(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati anagrafici, professionali e fiscali del cessionario / committente.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiAnagraficiCessionarioCommittente DatiAnagrafici { get; set; }\n\n        /// <summary>\n        /// Dati della sede del cessionario / committente.\n        /// </summary>\n        [Core.DataProperty]\n        public SedeCessionarioCommittente Sede { get; set; }\n\n        /// <summary>\n        /// Blocco da valorizzare se e solo se l'elemento informativo 1.1.3 FormatoTrasmissione = \"FPR12\" (fattura tra privati), nel caso di cessionario/committente non residente e con stabile organizzazione in Italia.\n        /// </summary>\n        [Core.DataProperty]\n        public StabileOrganizzazione StabileOrganizzazione { get; set; }\n\n        /// <summary>\n        /// Blocco da valorizzare se e solo se l'elemento informativo 1.1.3 FormatoTrasmissione = \"FPR12\" (fattura tra privati), nel caso di cessionario/committente che si avvale di rappresentante fiscale in Italia.\n        /// </summary>\n        [Core.DataProperty]\n        public RappresentanteFiscaleCessionarioCommittente RappresentanteFiscale { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CessionarioCommittente/DatiAnagraficiCessionarioCommittente.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente\n{\n    public class DatiAnagraficiCessionarioCommittente : DatiAnagrafici\n    {\n        /// <summary>\n        /// Dati anagrafici, professionali e fiscali del cessionario / committente.\n        /// </summary>\n        public DatiAnagraficiCessionarioCommittente() { }\n        public DatiAnagraficiCessionarioCommittente(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscaleCessionarioCommittente.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente\n{\n    /// <summary>\n    /// Represents a CessionarioCommittente.RappresentanteFiscale object.\n    /// </summary>\n    public class RappresentanteFiscaleCessionarioCommittente : DenominazioneNomeCognome\n    {\n        public RappresentanteFiscaleCessionarioCommittente()\n        {\n\n            IdFiscaleIVA = new();\n        }\n        public RappresentanteFiscaleCessionarioCommittente(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n        /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n        /// </summary>\n        [Core.DataProperty(order: -1)]\n        public IdFiscaleIVA IdFiscaleIVA { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/CessionarioCommittente/SedeCessionarioCommittente.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente\n{\n    public class SedeCessionarioCommittente : Common.Località\n    {\n        public SedeCessionarioCommittente() { } \n\n        public SedeCessionarioCommittente(XmlReader r) : base(r) { } \n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/DatiTrasmissione/ContattiTrasmittente.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione\n{\n    /// <summary>\n    /// Represents a ContattiTrasmittente object\n    /// </summary>\n    public class ContattiTrasmittente : BaseClassSerializable\n    {\n        public ContattiTrasmittente() { }\n        public ContattiTrasmittente(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Contatto telefonico fisso o mobile.\n        /// </summary>\n        [Core.DataProperty]\n        public string Telefono { get; set; }\n\n        /// <summary>\n        /// Indirizzo di posta elettronica.\n        /// </summary>\n        [Core.DataProperty]\n        public string Email { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/DatiTrasmissione/DatiTrasmissione.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione\n{\n\n    /// <summary>\n    /// Informazioni che identificano univocamente il soggetto che trasmette, il documento trasmesso, \n    /// il formato in cui è stato trasmesso il documento, il soggetto destinatario.\n    /// </summary>\n    public class DatiTrasmissione : BaseClassSerializable\n    {\n\n        /// <summary>\n        /// Constructor.\n        /// </summary>\n        public DatiTrasmissione()\n        {\n            ContattiTrasmittente = new();\n            IdTrasmittente = new();\n        }\n        public DatiTrasmissione(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Identificativo univoco del soggetto trasmittente.\n        /// </summary>\n        [Core.DataProperty]\n        public IdTrasmittente IdTrasmittente { get; set; }\n\n        /// <summary>\n        /// Progressivo univoco, attribuito dal soggetto che trasmette, relativo ad ogni singolo documento fattura.\n        /// </summary>\n        [Core.DataProperty]\n        public string ProgressivoInvio { get; set; }\n\n        /// <summary>\n        /// Codice identificativo del formato/versione con cui è stato trasmesso il documento fattura.\n        /// </summary>\n        [Core.DataProperty]\n        public string FormatoTrasmissione { get; set; }\n\n        /// <summary>\n        /// Codice dell'ufficio dell'amministrazione dello stato destinatario della fattura, definito dall'amministrazione\n        /// di appartenenza come riportato nella rubrica \"Indice PA\".\n        /// </summary>\n        [Core.DataProperty]\n        public string CodiceDestinatario { get; set; }\n\n        /// <summary>\n        /// Dati relativi ai contatti del trasmittente.\n        /// </summary>\n        [Core.DataProperty]\n        public ContattiTrasmittente ContattiTrasmittente { get; set; }\n\n        /// <summary>\n        /// Inidirizzo PEC al quale inviare il documento.\n        /// </summary>\n        [Core.DataProperty]\n        public string PECDestinatario { get; set; }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/DatiTrasmissione/IdTrasmittente.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione\n{\n    public class IdTrasmittente : IdFiscaleIVA\n    {\n        public IdTrasmittente() { }\n        public IdTrasmittente(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/FatturaElettronicaHeader.cs",
    "content": "﻿using System.Text.Json.Serialization;\nusing System.Xml;\nusing System.Xml.Serialization;\n\nnamespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader\n{\n    public class FatturaElettronicaHeader : Core.BaseClassSerializable\n    {\n        /// <summary>\n        /// Intestazione della FatturaOrdinaria Elettronica.\n        /// </summary>\n        public FatturaElettronicaHeader()\n        {\n            DatiTrasmissione = new();\n            CedentePrestatore = new();\n            Rappresentante = new();\n            CessionarioCommittente = new();\n            TerzoIntermediarioOSoggettoEmittente =\n                new();\n        }\n\n        public FatturaElettronicaHeader(XmlReader r) : base(r)\n        {\n        }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n        /// <summary>\n        /// Informazioni che identificano univocamente il soggetto che trasmette, il documento trasmesso, \n        /// il formato in cui è stato trasmesso il documento, il soggetto destinatario.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiTrasmissione.DatiTrasmissione DatiTrasmissione { get; set; }\n\n        /// <summary>\n        /// Dati relativi al cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public CedentePrestatore.CedentePrestatore CedentePrestatore { get; set; }\n\n        /// <summary>\n        /// Dati relativi al rappresentante fiscale del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        [XmlElement(ElementName = \"RappresentanteFiscale\")]\n        [JsonPropertyName(\"RappresentanteFiscale\")]\n        public RappresentanteFiscale.RappresentanteFiscale Rappresentante { get; set; }\n\n        /// <summary>\n        /// Dati relativi al cessionario / committente\n        /// </summary>\n        [Core.DataProperty]\n        public CessionarioCommittente.CessionarioCommittente CessionarioCommittente { get; set; }\n\n        /// <summary>\n        /// Dati relativi al soggetto che emette fattura per conto del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public TerzoIntermediarioOSoggettoEmittente.TerzoIntermediarioOSoggettoEmittente\n            TerzoIntermediarioOSoggettoEmittente { get; set; }\n\n        /// <summary>\n        /// Nei casi di documenti emessi da un soggetto diverso dal cedente / prestatore, indica se la fattura sia stata\n        /// emessa o da parte del cessionario / committente oppure da parte di un terzo per conto del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public string SoggettoEmittente { get; set; }\n    }\n}"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/RappresentanteFiscale/RappresentanteFiscale.cs",
    "content": "﻿namespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.RappresentanteFiscale\n{\n    /// <summary>\n    /// Dati relativi al rappresentante fiscale del cedente / prestatore.\n    /// </summary>\n    public class RappresentanteFiscale : Common.RappresentanteFiscale { }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente/TerzoIntermediarioOSoggettoEmittente.cs",
    "content": "﻿namespace FatturaElettronica.Ordinaria.FatturaElettronicaHeader.TerzoIntermediarioOSoggettoEmittente\n{\n    /// <summary>\n    /// Dati relativi al soggetto terzo che emette fattura per conto del cedente / prestatore.\n    /// </summary>\n    public class TerzoIntermediarioOSoggettoEmittente : Common.RappresentanteFiscale { }\n}\n"
  },
  {
    "path": "Ordinaria/FatturaOrdinaria.cs",
    "content": "﻿using System.Collections.Generic;\nusing FatturaElettronica.Defaults;\n\nnamespace FatturaElettronica.Ordinaria\n{\n    public class FatturaOrdinaria : FatturaBase\n    {\n        public FatturaOrdinaria()\n        {\n            FatturaElettronicaHeader = new();\n            FatturaElettronicaBody = new();\n        }\n\n        public static FatturaOrdinaria CreateInstance(Instance formato)\n        {\n            var fattura = new FatturaOrdinaria();\n\n            switch (formato)\n            {\n                case Instance.PubblicaAmministrazione:\n                    fattura.FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione =\n                        FormatoTrasmissione.PubblicaAmministrazione;\n                    break;\n                case Instance.Privati:\n                    fattura = new();\n                    fattura.FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione = FormatoTrasmissione.Privati;\n                    fattura.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario = new('0', 7);\n                    break;\n            }\n\n            return fattura;\n        }\n\n        public override string GetFormatoTrasmissione()\n        {\n            return FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione;\n        }\n\n        protected override string GetLocalName()\n        {\n            return \"FatturaElettronica\";\n        }\n\n        protected override string GetNameSpace()\n        {\n            return \"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\";\n        }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n        /// <summary>\n        /// Intestazione della comunicazione.\n        /// </summary>\n        [Core.DataProperty]\n        public FatturaElettronicaHeader.FatturaElettronicaHeader FatturaElettronicaHeader { get; set; }\n\n        /// <summary>\n        /// Lotto di fatture incluse nella comunicazione.\n        /// </summary>\n        /// <remarks>Il blocco ha molteciplità 1 nel caso di fattura singola; nel caso di lotto di fatture, si ripete\n        /// per ogni fattura componente il lotto stesso.</remarks>\n        [Core.DataProperty]\n        public List<FatturaElettronicaBody.FatturaElettronicaBody> FatturaElettronicaBody { get; set; }\n    }\n}"
  },
  {
    "path": "README.md",
    "content": "﻿# Fattura Elettronica per .NET\r\n\r\n![Test](https://github.com/FatturaElettronica/FatturaElettronica.NET/workflows/Test/badge.svg)\r\n[![NuGet version](https://badge.fury.io/nu/FatturaElettronica.svg)](https://badge.fury.io/nu/FatturaElettronica)\r\n\r\n## Caratteristiche\r\n\r\n- Lettura e scrittura nel formato XML conforme alle [specifiche tecniche ufficiali][pa].\r\n- Convalida offline in osservanza alle specifiche tecniche.\r\n- Fatture elettroniche ordinarie.\r\n- Fatture elettroniche semplificate.\r\n- De/serializzazione JSON.\r\n- Supporto multi-lingua.\r\n- Compatibile con [NET Standard v2.0][netstandard].\r\n\r\n## Installazione\r\n\r\nFatturaElettronica è su [NuGet][nuget].\r\n\r\nDalla command line, con .NET Core:\r\n\r\n```Shell\r\n    dotnet add package FatturaElettronica\r\n```\r\n\r\nDalla Package Console, in Visual Studio:\r\n\r\n```PowerShell\r\n    PM> Install-Package FatturaElettronica\r\n```\r\n\r\nOppure usare il comando equivalente nella UI di Visual Studio.\r\n\r\n## Licenza\r\n\r\nFattura Elettronica è un progetto di [Nicola Iarocci][ni] per\r\n[__Invoicetronic__][it]. È [libero][bsd], [sviluppato in pubblico][gh], aperto\r\nalla collaborazione di tutti.\r\n\r\n## Documentazione\r\n\r\n- [Sito web](https://fatturaelettronicaopensource.org/)\r\n\r\n## Powered by\r\n\r\n[<img src=\"https://raw.githubusercontent.com/FatturaElettronica/FatturaElettronica.NET/master/Artwork/invoicetronic.svg\" alt=\"Invoicetornic logo.\" width=\"298\">](https://invoicetronic.com)\r\n\r\nRealizzata dagli stessi autori di FatturaElettronica.NET, [__Invoicetronic API__][it] ti permette di integrare facilmente nella tua app l'intero ciclo della fattura elettronica: invio, ricezione, applicazione di firme digitali, convalida, notifiche via webhook e altro, il tutto su una piattaforma moderna che astrae le complessità di SDI/FatturaPA.\r\n\r\nInvoicetronic include gli SDK per i linguaggi di programmazione più diffusi, comandi CLI per lo scripting, Web app, OpenAPI, e un completo ambiente di prova gratuita.\r\n\r\nVisita il sito [__Invoicetronic__][it] per saperne di più.\r\n\r\n[pa]: https://www.agenziaentrate.gov.it/portale/web/guest/specifiche-tecniche-versione-1.8\r\n[bsd]: http://github.com/FatturaElettronica/FatturaElettronica.NET/blob/master/LICENSE.txt\r\n[ga]: http://gestionaleamica.com\r\n[ni]: https://nicolaiarocci.com\r\n[nuget]: https://www.nuget.org/packages/FatturaElettronica/\r\n[netstandard]: https://github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0.md\r\n[rp]: http://www.kalamun.org/\r\n[ghs]: https://github.com/sponsors/nicolaiarocci\r\n[it]: https://invoicetronic.com\r\n[gh]: https://github.com/FatturaElettronica/FatturaElettronica.NET"
  },
  {
    "path": "Resources/CausalePagamento.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class CausalePagamento {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal CausalePagamento() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.CausalePagamento\", typeof(CausalePagamento).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to prestazioni di lavoro autonomo rientranti nell’esercizio di arte o professione abituale.\n        /// </summary>\n        public static string A {\n            get {\n                return ResourceManager.GetString(\"A\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to utilizzazione economica, da parte dell’autore o dell’inventore, di opere dell’ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale, commerciale o scientifico.\n        /// </summary>\n        public static string B {\n            get {\n                return ResourceManager.GetString(\"B\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to utili derivanti da contratti di associazione in partecipazione e da contratti di cointeressenza, quando l’apporto è costituito esclusivamente dalla prestazione di lavoro.\n        /// </summary>\n        public static string C {\n            get {\n                return ResourceManager.GetString(\"C\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali.\n        /// </summary>\n        public static string D {\n            get {\n                return ResourceManager.GetString(\"D\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to levata di protesti cambiari da parte dei segretari comunali.\n        /// </summary>\n        public static string E {\n            get {\n                return ResourceManager.GetString(\"E\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to indennità corrisposte ai giudici onorari di pace e ai vice procuratori onorari.\n        /// </summary>\n        public static string F {\n            get {\n                return ResourceManager.GetString(\"F\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to indennità corrisposte per la cessazione di attività sportiva professionale.\n        /// </summary>\n        public static string G {\n            get {\n                return ResourceManager.GetString(\"G\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to indennità corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche e delle società di persone con esclusione delle somme maturate entro il 31 dicembre 2003, già imputate per competenza e tassate come reddito d’impresa.\n        /// </summary>\n        public static string H {\n            get {\n                return ResourceManager.GetString(\"H\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to indennità corrisposte per la cessazione da funzioni notarili.\n        /// </summary>\n        public static string I {\n            get {\n                return ResourceManager.GetString(\"I\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to compensi corrisposti ai raccoglitori occasionali di tartufi non identificati ai fini dell’imposta sul valore aggiunto, in relazione alla cessione di tartufi.\n        /// </summary>\n        public static string J {\n            get {\n                return ResourceManager.GetString(\"J\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to assegni di servizio civile universale di cui all’art.16 del D.lgs. n. 40 del 6 marzo 2017.\n        /// </summary>\n        public static string K {\n            get {\n                return ResourceManager.GetString(\"K\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to redditi derivanti dall’utilizzazione economica di opere dell’ingegno, di brevetti industriali e di processi, formule e informazioni relativi a esperienze acquisite in campo industriale, commerciale o scientifico, che sono percepiti dagli aventi causa a titolo gratuito (ad es. eredi e legatari dell’autore e inventore).\n        /// </summary>\n        public static string L {\n            get {\n                return ResourceManager.GetString(\"L\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to redditi derivanti dall’utilizzazione economica di opere dell’ingegno, di brevetti industriali e di processi, formule e informazioni relativi a esperienze acquisite in campo industriale, commerciale o scientifico, che sono percepiti da soggetti che abbiano acquistato a titolo oneroso i diritti alla loro utilizzazione.\n        /// </summary>\n        public static string L1 {\n            get {\n                return ResourceManager.GetString(\"L1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to prestazioni di lavoro autonomo non esercitate abitualmente.\n        /// </summary>\n        public static string M {\n            get {\n                return ResourceManager.GetString(\"M\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to redditi derivanti dall’assunzione di obblighi di fare, di non fare o permettere.\n        /// </summary>\n        public static string M1 {\n            get {\n                return ResourceManager.GetString(\"M1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to prestazioni di lavoro autonomo non esercitate abitualmente per le quali sussiste l’obbligo di iscrizione alla Gestione Separata ENPAPI.\n        /// </summary>\n        public static string M2 {\n            get {\n                return ResourceManager.GetString(\"M2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to indennità di trasferta, rimborso forfetario di spese, premi e compensi erogati: – nell’esercizio diretto di attività sportive dilettantistiche; – in relazione a rapporti di collaborazione coordinata e continuativa di carattere amministrativo-gestionale di natura non professionale resi a favore di società e associazioni sportive dilettantistiche e di cori, bande e filodrammatiche da parte del direttore e dei collaboratori tecnici.\n        /// </summary>\n        public static string N {\n            get {\n                return ResourceManager.GetString(\"N\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to prestazioni di lavoro autonomo non esercitate abitualmente, per le quali non sussiste l’obbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001).\n        /// </summary>\n        public static string O {\n            get {\n                return ResourceManager.GetString(\"O\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to redditi derivanti dall’assunzione di obblighi di fare, di non fare o permettere, per le quali non sussiste l’obbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001).\n        /// </summary>\n        public static string O1 {\n            get {\n                return ResourceManager.GetString(\"O1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to compensi corrisposti a soggetti non residenti privi di stabile organizzazione per l’uso o la concessione in uso di attrezzature industriali, commerciali o scientifiche che si trovano nel territorio dello Stato ovvero a società svizzere o stabili organizzazioni di società svizzere che possiedono i requisiti di cui all’art. 15, comma 2 dell’Accordo tra la Comunità europea e la Confederazione svizzera del 26 ottobre 2004 (pubblicato in G.U.C.E. del 29 dicembre 2004 n. L385/30).\n        /// </summary>\n        public static string P {\n            get {\n                return ResourceManager.GetString(\"P\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to provvigioni corrisposte ad agente o rappresentante di commercio monomandatario.\n        /// </summary>\n        public static string Q {\n            get {\n                return ResourceManager.GetString(\"Q\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to provvigioni corrisposte ad agente o rappresentante di commercio plurimandatario.\n        /// </summary>\n        public static string R {\n            get {\n                return ResourceManager.GetString(\"R\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to provvigioni corrisposte a commissionario.\n        /// </summary>\n        public static string S {\n            get {\n                return ResourceManager.GetString(\"S\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to provvigioni corrisposte a mediatore.\n        /// </summary>\n        public static string T {\n            get {\n                return ResourceManager.GetString(\"T\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to provvigioni corrisposte a procacciatore di affari.\n        /// </summary>\n        public static string U {\n            get {\n                return ResourceManager.GetString(\"U\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to provvigioni corrisposte a incaricato per le vendite a domicilio; provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67).\n        /// </summary>\n        public static string V {\n            get {\n                return ResourceManager.GetString(\"V\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to redditi derivanti da attività commerciali non esercitate abitualmente (ad esempio, provvigioni corrisposte per prestazioni occasionali ad agente o rappresentante di commercio, mediatore, procacciatore d’affari).\n        /// </summary>\n        public static string V1 {\n            get {\n                return ResourceManager.GetString(\"V1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to redditi derivanti dalle prestazioni non esercitate abitualmente rese dagli incaricati alla vendita diretta a domicilio.\n        /// </summary>\n        public static string V2 {\n            get {\n                return ResourceManager.GetString(\"V2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to corrispettivi erogati nel 2017 per prestazioni relative a contratti d’appalto cui si sono resi applicabili le disposizioni contenute nell’art. 25-ter del D.P.R. n. 600 del 29 settembre 1973.\n        /// </summary>\n        public static string W {\n            get {\n                return ResourceManager.GetString(\"W\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to canoni corrisposti nel 2004 da società o enti residenti ovvero da stabili organizzazioni di società estere di cui all’art. 26-quater, comma 1, lett. a) e b) del D.P.R. 600 del 29 settembre 1973, a società o stabili organizzazioni di società, situate in altro stato membro dell’Unione Europea in presenza dei requisiti di cui al citato art. 26-quater, del D.P.R. 600 del 29 settembre 1973, per i quali è stato effettuato, nell’anno 2006, il rimborso della ritenuta ai sensi dell’art. 4 del D.Lgs. 30 maggio 2005 n [rest of string was truncated]&quot;;.\n        /// </summary>\n        public static string X {\n            get {\n                return ResourceManager.GetString(\"X\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to canoni corrisposti dal 1° gennaio 2005 al 26 luglio 2005 da società o enti residenti ovvero da stabili organizzazioni di società estere di cui all’art. 26-quater, comma 1, lett. a) e b) del D.P.R. n. 600 del 29 settembre 1973, a società o stabili organizzazioni di società, situate in altro stato membro dell’Unione Europea in presenza dei requisiti di cui al citato art. 26-quater, del D.P.R. n. 600 del 29 settembre 1973, per i quali è stato effettuato, nell’anno 2006, il rimborso della ritenuta ai sensi dell [rest of string was truncated]&quot;;.\n        /// </summary>\n        public static string Y {\n            get {\n                return ResourceManager.GetString(\"Y\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to titolo diverso dai precedenti.\n        /// </summary>\n        public static string Z {\n            get {\n                return ResourceManager.GetString(\"Z\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to titolo diverso dai precedenti.\n        /// </summary>\n        public static string ZO {\n            get {\n                return ResourceManager.GetString(\"ZO\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/CausalePagamento.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"A\" xml:space=\"preserve\">\n    <value>Leistungen aus selbständiger Arbeit im Rahmen der Ausübung von Kunst oder Beruf</value>\n  </data>\n  <data name=\"B\" xml:space=\"preserve\">\n    <value>wirtschaftliche Nutzung durch den Autor oder Erfinder von Werken der Literatur, von Patenten und von Prozessen, Formeln oder Informationen im Zusammenhang mit Erfahrungen in den Bereichen Industrie, Handel oder Wissenschaft</value>\n  </data>\n  <data name=\"C\" xml:space=\"preserve\">\n    <value>Gewinne aus Beteiligungsverträgen und aus Beteiligungsverträgen, wenn der Beitrag ausschließlich aus Arbeitsleistungen besteht</value>\n  </data>\n  <data name=\"D\" xml:space=\"preserve\">\n    <value>Gewinne, die den Gründungsmitgliedern und den Gründungsmitgliedern von Kapitalgesellschaften zustehen</value>\n  </data>\n  <data name=\"E\" xml:space=\"preserve\">\n    <value>Erhebung von Wechselprotesten durch Gemeindesekretäre</value>\n  </data>\n  <data name=\"F\" xml:space=\"preserve\">\n    <value>Entschädigungen, die an ehrenamtliche Friedensrichter und ehrenamtliche Staatsanwälte gezahlt werden</value>\n  </data>\n  <data name=\"G\" xml:space=\"preserve\">\n    <value>Entschädigungen, die für die Beendigung der beruflichen sportlichen Tätigkeit gezahlt werden</value>\n  </data>\n  <data name=\"H\" xml:space=\"preserve\">\n    <value>Entschädigungen, die für die Beendigung von Agenturverhältnissen von natürlichen Personen und Personengesellschaften gezahlt werden, mit Ausnahme der Beträge, die bis zum 31. Dezember 2003 fällig wurden und bereits als Betriebseinnahmen besteuert wurden</value>\n  </data>\n  <data name=\"I\" xml:space=\"preserve\">\n    <value>Entschädigungen, die für die Beendigung notarieller Funktionen gezahlt werden</value>\n  </data>\n  <data name=\"L\" xml:space=\"preserve\">\n    <value>Einkünfte aus der wirtschaftlichen Nutzung von Werken der Literatur, von Patenten und von Prozessen, Formeln und Informationen im Zusammenhang mit Erfahrungen in den Bereichen Industrie, Handel oder Wissenschaft, die von den Rechtsnachfolgern des Autors und Erfinders unentgeltlich erworben wurden (z.B. Erben und Vermächtnisnehmer)</value>\n  </data>\n  <data name=\"M\" xml:space=\"preserve\">\n    <value>Leistungen aus selbständiger Arbeit, die nicht regelmäßig ausgeübt werden</value>\n  </data>\n  <data name=\"N\" xml:space=\"preserve\">\n    <value>Reisekostenvergütungen, pauschale Spesenvergütungen, Prämien und Vergütungen, die gezahlt werden: – bei der direkten Ausübung von Amateursportaktivitäten; – im Zusammenhang mit kontinuierlichen und koordinierten Verwaltungs- und Managementtätigkeiten nicht professioneller Natur, die zugunsten von Sportvereinen und -verbänden sowie von Chören, Bands und Theatergruppen durch den Direktor und die technischen Mitarbeiter erbracht werden</value>\n  </data>\n  <data name=\"O\" xml:space=\"preserve\">\n    <value>Leistungen aus selbständiger Arbeit, die nicht regelmäßig ausgeübt werden und für die keine Verpflichtung zur Eintragung in die separate Verwaltung besteht (INPS-Rundschreiben Nr. 104/2001)</value>\n  </data>\n  <data name=\"P\" xml:space=\"preserve\">\n    <value>Vergütungen, die an nicht ansässige Personen ohne ständige Betriebsstätte für die Nutzung oder die Gewährung der Nutzung von industriellen, kommerziellen oder wissenschaftlichen Ausrüstungen gezahlt werden, die sich im Staatsgebiet befinden, oder an Schweizer Gesellschaften oder ständige Betriebsstätten von Schweizer Gesellschaften, die die Anforderungen des Art. 15, Absatz 2 des Abkommens zwischen der Europäischen Gemeinschaft und der Schweizerischen Eidgenossenschaft vom 26. Oktober 2004 (veröffentlicht im Amtsblatt der EU vom 29. Dezember 2004 Nr. L385/30) erfüllen</value>\n  </data>\n  <data name=\"Q\" xml:space=\"preserve\">\n    <value>Provisionen, die an einen Alleinvertreter oder Handelsvertreter gezahlt werden</value>\n  </data>\n  <data name=\"R\" xml:space=\"preserve\">\n    <value>Provisionen, die an einen Mehrfachvertreter oder Handelsvertreter gezahlt werden</value>\n  </data>\n  <data name=\"S\" xml:space=\"preserve\">\n    <value>Provisionen, die an einen Kommissionär gezahlt werden</value>\n  </data>\n  <data name=\"T\" xml:space=\"preserve\">\n    <value>Provisionen, die an einen Makler gezahlt werden</value>\n  </data>\n  <data name=\"U\" xml:space=\"preserve\">\n    <value>Provisionen, die an einen Geschäftsanbahner gezahlt werden</value>\n  </data>\n  <data name=\"V\" xml:space=\"preserve\">\n    <value>Provisionen, die an einen Beauftragten für den Direktvertrieb an der Haustür gezahlt werden; Provisionen, die an einen Beauftragten für den Haustürverkauf und den ambulanten Verkauf von Tageszeitungen und Zeitschriften gezahlt werden (Gesetz vom 25. Februar 1987, Nr. 67)</value>\n  </data>\n  <data name=\"W\" xml:space=\"preserve\">\n    <value>Vergütungen, die im Jahr 2017 für Leistungen im Zusammenhang mit Werkverträgen gezahlt wurden, auf die die Bestimmungen des Art. 25-ter des D.P.R. Nr. 600 vom 29. September 1973 anwendbar waren</value>\n  </data>\n  <data name=\"X\" xml:space=\"preserve\">\n    <value>Lizenzgebühren, die im Jahr 2004 von ansässigen Gesellschaften oder Einrichtungen oder von ständigen Betriebsstätten ausländischer Gesellschaften gemäß Art. 26-quater, Absatz 1, Buchstaben a) und b) des D.P.R. Nr. 600 vom 29. September 1973 an Gesellschaften oder ständige Betriebsstätten von Gesellschaften gezahlt wurden, die sich in einem anderen Mitgliedstaat der Europäischen Union befinden und die Anforderungen des genannten Art. 26-quater des D.P.R. Nr. 600 vom 29. September 1973 erfüllen, für die im Jahr 2006 die Rückerstattung der Quellensteuer gemäß Art. 4 des Gesetzesdekrets Nr. 143 vom 30. Mai 2005 erfolgte</value>\n  </data>\n  <data name=\"Y\" xml:space=\"preserve\">\n    <value>Lizenzgebühren, die vom 1. Januar 2005 bis zum 26. Juli 2005 von ansässigen Gesellschaften oder Einrichtungen oder von ständigen Betriebsstätten ausländischer Gesellschaften gemäß Art. 26-quater, Absatz 1, Buchstaben a) und b) des D.P.R. Nr. 600 vom 29. September 1973 an Gesellschaften oder ständige Betriebsstätten von Gesellschaften gezahlt wurden, die sich in einem anderen Mitgliedstaat der Europäischen Union befinden und die Anforderungen des genannten Art. 26-quater des D.P.R. Nr. 600 vom 29. September 1973 erfüllen, für die im Jahr 2006 die Rückerstattung der Quellensteuer gemäß Art. 4 des Gesetzesdekrets Nr. 143 vom 30. Mai 2005 erfolgte</value>\n  </data>\n  <data name=\"L1\" xml:space=\"preserve\">\n    <value>Einkünfte aus der wirtschaftlichen Nutzung von Werken der Literatur, von Patenten und von Prozessen, Formeln und Informationen im Zusammenhang mit Erfahrungen in den Bereichen Industrie, Handel oder Wissenschaft, die von Personen erzielt werden, die die Rechte an deren Nutzung entgeltlich erworben haben</value>\n  </data>\n  <data name=\"M1\" xml:space=\"preserve\">\n    <value>Einkünfte aus der Übernahme von Verpflichtungen zu tun, zu unterlassen oder zu gestatten</value>\n  </data>\n  <data name=\"M2\" xml:space=\"preserve\">\n    <value>Leistungen aus selbständiger Arbeit, die nicht regelmäßig ausgeübt werden und für die eine Verpflichtung zur Eintragung in die separate Verwaltung ENPAPI besteht</value>\n  </data>\n  <data name=\"O1\" xml:space=\"preserve\">\n    <value>Einkünfte aus der Übernahme von Verpflichtungen zu tun, zu unterlassen oder zu gestatten, für die keine Verpflichtung zur Eintragung in die separate Verwaltung besteht (INPS-Rundschreiben Nr. 104/2001)</value>\n  </data>\n  <data name=\"V1\" xml:space=\"preserve\">\n    <value>Einkünfte aus nicht regelmäßig ausgeübten gewerblichen Tätigkeiten (z.B. Provisionen, die für gelegentliche Leistungen an einen Handelsvertreter, Makler oder Geschäftsanbahner gezahlt werden)</value>\n  </data>\n  <data name=\"ZO\" xml:space=\"preserve\">\n    <value>anderer Titel als die vorhergehenden</value>\n  </data>\n  <data name=\"J\" xml:space=\"preserve\">\n    <value>Vergütungen, die an gelegentliche Trüffelsammler gezahlt werden, die nicht für die Mehrwertsteuer registriert sind, im Zusammenhang mit dem Verkauf von Trüffeln</value>\n  </data>\n  <data name=\"K\" xml:space=\"preserve\">\n    <value>Zivildienstvergütungen gemäß Art. 16 des Gesetzesdekrets Nr. 40 vom 6. März 2017</value>\n  </data>\n  <data name=\"V2\" xml:space=\"preserve\">\n    <value>Einkünfte aus nicht regelmäßig ausgeübten Leistungen, die von Beauftragten für den Direktvertrieb an der Haustür erbracht werden</value>\n  </data>\n  <data name=\"Z\" xml:space=\"preserve\">\n    <value>anderer Titel als die vorhergehenden</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/CausalePagamento.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"A\" xml:space=\"preserve\">\n    <value>Self-employed work services within the exercise of art or habitual profession</value>\n  </data>\n  <data name=\"B\" xml:space=\"preserve\">\n    <value>Economic use, by the author or inventor, of intellectual works, industrial patents and processes, formulas or information related to experiences acquired in industrial, commercial or scientific fields</value>\n  </data>\n  <data name=\"C\" xml:space=\"preserve\">\n    <value>Profits derived from partnership and joint venture contracts, when the contribution consists exclusively of work performance</value>\n  </data>\n  <data name=\"D\" xml:space=\"preserve\">\n    <value>Profits due to founding and promoting members of capital companies</value>\n  </data>\n  <data name=\"E\" xml:space=\"preserve\">\n    <value>Issuing of bill protests by municipal secretaries</value>\n  </data>\n  <data name=\"F\" xml:space=\"preserve\">\n    <value>Compensations paid to honorary justices of the peace and honorary deputy prosecutors</value>\n  </data>\n  <data name=\"G\" xml:space=\"preserve\">\n    <value>Compensations paid for the termination of professional sports activity</value>\n  </data>\n  <data name=\"H\" xml:space=\"preserve\">\n    <value>Compensations paid for the termination of agency relationships for individuals and partnerships, excluding amounts accrued by December 31, 2003, already allocated by competence and taxed as business income</value>\n  </data>\n  <data name=\"I\" xml:space=\"preserve\">\n    <value>Compensations paid for the termination of notarial functions</value>\n  </data>\n  <data name=\"L\" xml:space=\"preserve\">\n    <value>Income derived from economic use of intellectual works, industrial patents and processes, formulas and information related to experiences acquired in industrial, commercial or scientific fields, perceived by those who obtained them free of charge (e.g., heirs and legatees of the author and inventor)</value>\n  </data>\n  <data name=\"M\" xml:space=\"preserve\">\n    <value>Self-employed work services not habitually performed</value>\n  </data>\n  <data name=\"N\" xml:space=\"preserve\">\n    <value>Transfer allowances, flat expense reimbursement, premiums and compensations paid: – in the direct exercise of amateur sports activities; – in relation to coordinated and continuous administrative-management collaborations of non-professional nature provided to amateur sports societies and associations, choirs, bands and drama groups by the director and technical collaborators</value>\n  </data>\n  <data name=\"O\" xml:space=\"preserve\">\n    <value>Self-employed work services not habitually performed, for which there is no obligation to register with the separate management (INPS Circular No. 104/2001)</value>\n  </data>\n  <data name=\"P\" xml:space=\"preserve\">\n    <value>Compensations paid to non-resident subjects without a permanent establishment for the use or concession of use of industrial, commercial or scientific equipment located in the national territory, or to Swiss companies or permanent establishments of Swiss companies that possess the requirements of art. 15, paragraph 2 of the Agreement between the European Community and the Swiss Confederation of 26 October 2004 (published in the Official Journal of the European Communities on 29 December 2004 No. L385/30)</value>\n  </data>\n  <data name=\"Q\" xml:space=\"preserve\">\n    <value>Commissions paid to a single-mandate commercial agent or representative</value>\n  </data>\n  <data name=\"R\" xml:space=\"preserve\">\n    <value>Commissions paid to a multi-mandate commercial agent or representative</value>\n  </data>\n  <data name=\"S\" xml:space=\"preserve\">\n    <value>Commissions paid to a commission agent</value>\n  </data>\n  <data name=\"T\" xml:space=\"preserve\">\n    <value>Commissions paid to a broker</value>\n  </data>\n  <data name=\"U\" xml:space=\"preserve\">\n    <value>Commissions paid to a business introducer</value>\n  </data>\n  <data name=\"V\" xml:space=\"preserve\">\n    <value>Commissions paid to a door-to-door sales representative; Commissions paid to a representative for door-to-door and mobile sales of daily newspapers and periodicals (Law of 25 February 1987, n. 67)</value>\n  </data>\n  <data name=\"W\" xml:space=\"preserve\">\n    <value>Fees paid in 2017 for services related to contracts to which the provisions contained in art. 25-ter of Presidential Decree No. 600 of 29 September 1973 were applied</value>\n  </data>\n  <data name=\"X\" xml:space=\"preserve\">\n    <value>Royalties paid in 2004 by resident companies or entities or permanent establishments of foreign companies pursuant to art. 26-quater, paragraph 1, letters a) and b) of Presidential Decree 600 of 29 September 1973, to companies or permanent establishments of companies located in another European Union member state in the presence of the requirements referred to in the aforementioned art. 26-quater of Presidential Decree 600, for which the withholding tax refund was made in 2006 pursuant to art. 4 of Legislative Decree 30 May 2005 n. 143</value>\n  </data>\n  <data name=\"Y\" xml:space=\"preserve\">\n    <value>Royalties paid from January 1, 2005 to July 26, 2005 by resident companies or entities or permanent establishments of foreign companies pursuant to art. 26-quater, paragraph 1, letters a) and b) of Presidential Decree No. 600 of 29 September 1973, to companies or permanent establishments of companies located in another European Union member state in the presence of the requirements referred to in the aforementioned art. 26-quater of Presidential Decree No. 600, for which the withholding tax refund was made in 2006 pursuant to art. 4 of Legislative Decree 30 May 2005 n. 143</value>\n  </data>\n  <data name=\"L1\" xml:space=\"preserve\">\n    <value>Income derived from economic use of intellectual works, industrial patents and processes, formulas and information related to experiences acquired in industrial, commercial or scientific fields, perceived by subjects who have acquired the rights to their use for a fee</value>\n  </data>\n  <data name=\"M1\" xml:space=\"preserve\">\n    <value>Income derived from undertaking obligations to do, not to do, or to allow</value>\n  </data>\n  <data name=\"M2\" xml:space=\"preserve\">\n    <value>Self-employed work services not habitually performed for which there is an obligation to register with the ENPAPI Separate Management</value>\n  </data>\n  <data name=\"O1\" xml:space=\"preserve\">\n    <value>Income derived from undertaking obligations to do, not to do, or to allow, for which there is no obligation to register with the separate management (INPS Circular No. 104/2001)</value>\n  </data>\n  <data name=\"V1\" xml:space=\"preserve\">\n    <value>Income derived from non-habitually performed commercial activities (for example, commissions paid for occasional services to a commercial agent, broker, business introducer)</value>\n  </data>\n  <data name=\"ZO\" xml:space=\"preserve\">\n    <value>Title different from the previous ones</value>\n  </data>\n  <data name=\"J\" xml:space=\"preserve\">\n    <value>Compensations paid to occasional truffle collectors not identified for VAT purposes, in relation to truffle sales</value>\n  </data>\n  <data name=\"K\" xml:space=\"preserve\">\n    <value>Universal civil service allowances referred to in art. 16 of Legislative Decree No. 40 of 6 March 2017</value>\n  </data>\n  <data name=\"V2\" xml:space=\"preserve\">\n    <value>Income derived from non-habitually performed services provided by door-to-door direct sales representatives</value>\n  </data>\n  <data name=\"Z\" xml:space=\"preserve\">\n    <value>Title different from the previous ones</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/CausalePagamento.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"A\" xml:space=\"preserve\">\n    <value>prestazioni di lavoro autonomo rientranti nell’esercizio di arte o professione abituale</value>\n  </data>\n  <data name=\"B\" xml:space=\"preserve\">\n    <value>utilizzazione economica, da parte dell’autore o dell’inventore, di opere dell’ingegno, di brevetti industriali e di processi, formule o informazioni relativi ad esperienze acquisite in campo industriale, commerciale o scientifico</value>\n  </data>\n  <data name=\"C\" xml:space=\"preserve\">\n    <value>utili derivanti da contratti di associazione in partecipazione e da contratti di cointeressenza, quando l’apporto è costituito esclusivamente dalla prestazione di lavoro</value>\n  </data>\n  <data name=\"D\" xml:space=\"preserve\">\n    <value>utili spettanti ai soci promotori ed ai soci fondatori delle società di capitali</value>\n  </data>\n  <data name=\"E\" xml:space=\"preserve\">\n    <value>levata di protesti cambiari da parte dei segretari comunali</value>\n  </data>\n  <data name=\"F\" xml:space=\"preserve\">\n    <value>indennità corrisposte ai giudici onorari di pace e ai vice procuratori onorari</value>\n  </data>\n  <data name=\"G\" xml:space=\"preserve\">\n    <value>indennità corrisposte per la cessazione di attività sportiva professionale</value>\n  </data>\n  <data name=\"H\" xml:space=\"preserve\">\n    <value>indennità corrisposte per la cessazione dei rapporti di agenzia delle persone fisiche e delle società di persone con esclusione delle somme maturate entro il 31 dicembre 2003, già imputate per competenza e tassate come reddito d’impresa</value>\n  </data>\n  <data name=\"I\" xml:space=\"preserve\">\n    <value>indennità corrisposte per la cessazione da funzioni notarili</value>\n  </data>\n  <data name=\"L\" xml:space=\"preserve\">\n    <value>redditi derivanti dall’utilizzazione economica di opere dell’ingegno, di brevetti industriali e di processi, formule e informazioni relativi a esperienze acquisite in campo industriale, commerciale o scientifico, che sono percepiti dagli aventi causa a titolo gratuito (ad es. eredi e legatari dell’autore e inventore)</value>\n  </data>\n  <data name=\"M\" xml:space=\"preserve\">\n    <value>prestazioni di lavoro autonomo non esercitate abitualmente</value>\n  </data>\n  <data name=\"N\" xml:space=\"preserve\">\n    <value>indennità di trasferta, rimborso forfetario di spese, premi e compensi erogati: – nell’esercizio diretto di attività sportive dilettantistiche; – in relazione a rapporti di collaborazione coordinata e continuativa di carattere amministrativo-gestionale di natura non professionale resi a favore di società e associazioni sportive dilettantistiche e di cori, bande e filodrammatiche da parte del direttore e dei collaboratori tecnici</value>\n  </data>\n  <data name=\"O\" xml:space=\"preserve\">\n    <value>prestazioni di lavoro autonomo non esercitate abitualmente, per le quali non sussiste l’obbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001)</value>\n  </data>\n  <data name=\"P\" xml:space=\"preserve\">\n    <value>compensi corrisposti a soggetti non residenti privi di stabile organizzazione per l’uso o la concessione in uso di attrezzature industriali, commerciali o scientifiche che si trovano nel territorio dello Stato ovvero a società svizzere o stabili organizzazioni di società svizzere che possiedono i requisiti di cui all’art. 15, comma 2 dell’Accordo tra la Comunità europea e la Confederazione svizzera del 26 ottobre 2004 (pubblicato in G.U.C.E. del 29 dicembre 2004 n. L385/30)</value>\n  </data>\n  <data name=\"Q\" xml:space=\"preserve\">\n    <value>provvigioni corrisposte ad agente o rappresentante di commercio monomandatario</value>\n  </data>\n  <data name=\"R\" xml:space=\"preserve\">\n    <value>provvigioni corrisposte ad agente o rappresentante di commercio plurimandatario</value>\n  </data>\n  <data name=\"S\" xml:space=\"preserve\">\n    <value>provvigioni corrisposte a commissionario</value>\n  </data>\n  <data name=\"T\" xml:space=\"preserve\">\n    <value>provvigioni corrisposte a mediatore</value>\n  </data>\n  <data name=\"U\" xml:space=\"preserve\">\n    <value>provvigioni corrisposte a procacciatore di affari</value>\n  </data>\n  <data name=\"V\" xml:space=\"preserve\">\n    <value>provvigioni corrisposte a incaricato per le vendite a domicilio; provvigioni corrisposte a incaricato per la vendita porta a porta e per la vendita ambulante di giornali quotidiani e periodici (L. 25 febbraio 1987, n. 67)</value>\n  </data>\n  <data name=\"W\" xml:space=\"preserve\">\n    <value>corrispettivi erogati nel 2017 per prestazioni relative a contratti d’appalto cui si sono resi applicabili le disposizioni contenute nell’art. 25-ter del D.P.R. n. 600 del 29 settembre 1973</value>\n  </data>\n  <data name=\"X\" xml:space=\"preserve\">\n    <value>canoni corrisposti nel 2004 da società o enti residenti ovvero da stabili organizzazioni di società estere di cui all’art. 26-quater, comma 1, lett. a) e b) del D.P.R. 600 del 29 settembre 1973, a società o stabili organizzazioni di società, situate in altro stato membro dell’Unione Europea in presenza dei requisiti di cui al citato art. 26-quater, del D.P.R. 600 del 29 settembre 1973, per i quali è stato effettuato, nell’anno 2006, il rimborso della ritenuta ai sensi dell’art. 4 del D.Lgs. 30 maggio 2005 n. 143</value>\n  </data>\n  <data name=\"Y\" xml:space=\"preserve\">\n    <value>canoni corrisposti dal 1° gennaio 2005 al 26 luglio 2005 da società o enti residenti ovvero da stabili organizzazioni di società estere di cui all’art. 26-quater, comma 1, lett. a) e b) del D.P.R. n. 600 del 29 settembre 1973, a società o stabili organizzazioni di società, situate in altro stato membro dell’Unione Europea in presenza dei requisiti di cui al citato art. 26-quater, del D.P.R. n. 600 del 29 settembre 1973, per i quali è stato effettuato, nell’anno 2006, il rimborso della ritenuta ai sensi dell’art. 4 del D.Lgs. 30 maggio 2005 n. 143</value>\n  </data>\n  <data name=\"L1\" xml:space=\"preserve\">\n    <value>redditi derivanti dall’utilizzazione economica di opere dell’ingegno, di brevetti industriali e di processi, formule e informazioni relativi a esperienze acquisite in campo industriale, commerciale o scientifico, che sono percepiti da soggetti che abbiano acquistato a titolo oneroso i diritti alla loro utilizzazione</value>\n  </data>\n  <data name=\"M1\" xml:space=\"preserve\">\n    <value>redditi derivanti dall’assunzione di obblighi di fare, di non fare o permettere</value>\n  </data>\n  <data name=\"M2\" xml:space=\"preserve\">\n    <value>prestazioni di lavoro autonomo non esercitate abitualmente per le quali sussiste l’obbligo di iscrizione alla Gestione Separata ENPAPI</value>\n  </data>\n  <data name=\"O1\" xml:space=\"preserve\">\n    <value>redditi derivanti dall’assunzione di obblighi di fare, di non fare o permettere, per le quali non sussiste l’obbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001)</value>\n  </data>\n  <data name=\"V1\" xml:space=\"preserve\">\n    <value>redditi derivanti da attività commerciali non esercitate abitualmente (ad esempio, provvigioni corrisposte per prestazioni occasionali ad agente o rappresentante di commercio, mediatore, procacciatore d’affari)</value>\n  </data>\n  <data name=\"ZO\" xml:space=\"preserve\">\n    <value>titolo diverso dai precedenti</value>\n  </data>\n  <data name=\"J\" xml:space=\"preserve\">\n    <value>compensi corrisposti ai raccoglitori occasionali di tartufi non identificati ai fini dell’imposta sul valore aggiunto, in relazione alla cessione di tartufi</value>\n    <comment>Valori accettati nel periodo transitorio tra specifiche v1.5 e v1.6 - verranno rimossi</comment>\n  </data>\n  <data name=\"K\" xml:space=\"preserve\">\n    <value>assegni di servizio civile universale di cui all’art.16 del D.lgs. n. 40 del 6 marzo 2017</value>\n    <comment>Valori accettati nel periodo transitorio tra specifiche v1.5 e v1.6 - verranno rimossi</comment>\n  </data>\n  <data name=\"V2\" xml:space=\"preserve\">\n    <value>redditi derivanti dalle prestazioni non esercitate abitualmente rese dagli incaricati alla vendita diretta a domicilio</value>\n    <comment>Valori accettati nel periodo transitorio tra specifiche v1.5 e v1.6 - verranno rimossi</comment>\n  </data>\n  <data name=\"Z\" xml:space=\"preserve\">\n    <value>titolo diverso dai precedenti</value>\n    <comment>Valori accettati nel periodo transitorio tra specifiche v1.5 e v1.6 - verranno rimossi</comment>\n  </data>\n</root>"
  },
  {
    "path": "Resources/CondizioniPagamento.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class CondizioniPagamento {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal CondizioniPagamento() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.CondizioniPagamento\", typeof(CondizioniPagamento).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to pagamento a rate.\n        /// </summary>\n        public static string TP01 {\n            get {\n                return ResourceManager.GetString(\"TP01\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to pagamento completo.\n        /// </summary>\n        public static string TP02 {\n            get {\n                return ResourceManager.GetString(\"TP02\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to anticipo.\n        /// </summary>\n        public static string TP03 {\n            get {\n                return ResourceManager.GetString(\"TP03\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/CondizioniPagamento.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TP01\" xml:space=\"preserve\">\n    <value>Ratenzahlung</value>\n  </data>\n  <data name=\"TP02\" xml:space=\"preserve\">\n    <value>Vollständige Zahlung</value>\n  </data>\n  <data name=\"TP03\" xml:space=\"preserve\">\n    <value>Vorauszahlung</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/CondizioniPagamento.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TP01\" xml:space=\"preserve\">\n    <value>installment payment</value>\n  </data>\n  <data name=\"TP02\" xml:space=\"preserve\">\n    <value>full payment</value>\n  </data>\n  <data name=\"TP03\" xml:space=\"preserve\">\n    <value>advance payment</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/CondizioniPagamento.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TP01\" xml:space=\"preserve\">\n    <value>pagamento a rate</value>\n  </data>\n  <data name=\"TP02\" xml:space=\"preserve\">\n    <value>pagamento completo</value>\n  </data>\n  <data name=\"TP03\" xml:space=\"preserve\">\n    <value>anticipo</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Divisa.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class Divisa {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal Divisa() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.Divisa\", typeof(Divisa).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AED {\n            get {\n                return ResourceManager.GetString(\"AED\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AFN {\n            get {\n                return ResourceManager.GetString(\"AFN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ALL {\n            get {\n                return ResourceManager.GetString(\"ALL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AMD {\n            get {\n                return ResourceManager.GetString(\"AMD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ANG {\n            get {\n                return ResourceManager.GetString(\"ANG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AOA {\n            get {\n                return ResourceManager.GetString(\"AOA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ARS {\n            get {\n                return ResourceManager.GetString(\"ARS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AUD {\n            get {\n                return ResourceManager.GetString(\"AUD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AWG {\n            get {\n                return ResourceManager.GetString(\"AWG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string AZN {\n            get {\n                return ResourceManager.GetString(\"AZN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BAM {\n            get {\n                return ResourceManager.GetString(\"BAM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BBD {\n            get {\n                return ResourceManager.GetString(\"BBD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BDT {\n            get {\n                return ResourceManager.GetString(\"BDT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BGN {\n            get {\n                return ResourceManager.GetString(\"BGN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BHD {\n            get {\n                return ResourceManager.GetString(\"BHD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BIF {\n            get {\n                return ResourceManager.GetString(\"BIF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BMD {\n            get {\n                return ResourceManager.GetString(\"BMD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BND {\n            get {\n                return ResourceManager.GetString(\"BND\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BOB {\n            get {\n                return ResourceManager.GetString(\"BOB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BOV {\n            get {\n                return ResourceManager.GetString(\"BOV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BRL {\n            get {\n                return ResourceManager.GetString(\"BRL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BSD {\n            get {\n                return ResourceManager.GetString(\"BSD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BTN {\n            get {\n                return ResourceManager.GetString(\"BTN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BWP {\n            get {\n                return ResourceManager.GetString(\"BWP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BYR {\n            get {\n                return ResourceManager.GetString(\"BYR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string BZD {\n            get {\n                return ResourceManager.GetString(\"BZD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CAD {\n            get {\n                return ResourceManager.GetString(\"CAD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CDF {\n            get {\n                return ResourceManager.GetString(\"CDF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CHE {\n            get {\n                return ResourceManager.GetString(\"CHE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CHF {\n            get {\n                return ResourceManager.GetString(\"CHF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CHW {\n            get {\n                return ResourceManager.GetString(\"CHW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CLF {\n            get {\n                return ResourceManager.GetString(\"CLF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CLP {\n            get {\n                return ResourceManager.GetString(\"CLP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CNY {\n            get {\n                return ResourceManager.GetString(\"CNY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string COP {\n            get {\n                return ResourceManager.GetString(\"COP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string COU {\n            get {\n                return ResourceManager.GetString(\"COU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CRC {\n            get {\n                return ResourceManager.GetString(\"CRC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CUC {\n            get {\n                return ResourceManager.GetString(\"CUC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CUP {\n            get {\n                return ResourceManager.GetString(\"CUP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CVE {\n            get {\n                return ResourceManager.GetString(\"CVE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string CZK {\n            get {\n                return ResourceManager.GetString(\"CZK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string DJF {\n            get {\n                return ResourceManager.GetString(\"DJF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string DKK {\n            get {\n                return ResourceManager.GetString(\"DKK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string DOP {\n            get {\n                return ResourceManager.GetString(\"DOP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string DZD {\n            get {\n                return ResourceManager.GetString(\"DZD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string EGP {\n            get {\n                return ResourceManager.GetString(\"EGP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ERN {\n            get {\n                return ResourceManager.GetString(\"ERN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ETB {\n            get {\n                return ResourceManager.GetString(\"ETB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string EUR {\n            get {\n                return ResourceManager.GetString(\"EUR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string FJD {\n            get {\n                return ResourceManager.GetString(\"FJD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string FKP {\n            get {\n                return ResourceManager.GetString(\"FKP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GBP {\n            get {\n                return ResourceManager.GetString(\"GBP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GEL {\n            get {\n                return ResourceManager.GetString(\"GEL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GHS {\n            get {\n                return ResourceManager.GetString(\"GHS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GIP {\n            get {\n                return ResourceManager.GetString(\"GIP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GMD {\n            get {\n                return ResourceManager.GetString(\"GMD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GNF {\n            get {\n                return ResourceManager.GetString(\"GNF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GTQ {\n            get {\n                return ResourceManager.GetString(\"GTQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string GYD {\n            get {\n                return ResourceManager.GetString(\"GYD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string HKD {\n            get {\n                return ResourceManager.GetString(\"HKD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string HNL {\n            get {\n                return ResourceManager.GetString(\"HNL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string HRK {\n            get {\n                return ResourceManager.GetString(\"HRK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string HTG {\n            get {\n                return ResourceManager.GetString(\"HTG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string HUF {\n            get {\n                return ResourceManager.GetString(\"HUF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string IDR {\n            get {\n                return ResourceManager.GetString(\"IDR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ILS {\n            get {\n                return ResourceManager.GetString(\"ILS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string INR {\n            get {\n                return ResourceManager.GetString(\"INR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string IQD {\n            get {\n                return ResourceManager.GetString(\"IQD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string IRR {\n            get {\n                return ResourceManager.GetString(\"IRR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ISK {\n            get {\n                return ResourceManager.GetString(\"ISK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string JMD {\n            get {\n                return ResourceManager.GetString(\"JMD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string JOD {\n            get {\n                return ResourceManager.GetString(\"JOD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string JPY {\n            get {\n                return ResourceManager.GetString(\"JPY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KES {\n            get {\n                return ResourceManager.GetString(\"KES\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KGS {\n            get {\n                return ResourceManager.GetString(\"KGS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KHR {\n            get {\n                return ResourceManager.GetString(\"KHR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KMF {\n            get {\n                return ResourceManager.GetString(\"KMF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KPW {\n            get {\n                return ResourceManager.GetString(\"KPW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KRW {\n            get {\n                return ResourceManager.GetString(\"KRW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KWD {\n            get {\n                return ResourceManager.GetString(\"KWD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KYD {\n            get {\n                return ResourceManager.GetString(\"KYD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string KZT {\n            get {\n                return ResourceManager.GetString(\"KZT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LAK {\n            get {\n                return ResourceManager.GetString(\"LAK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LBP {\n            get {\n                return ResourceManager.GetString(\"LBP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LKR {\n            get {\n                return ResourceManager.GetString(\"LKR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LRD {\n            get {\n                return ResourceManager.GetString(\"LRD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LSL {\n            get {\n                return ResourceManager.GetString(\"LSL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LTL {\n            get {\n                return ResourceManager.GetString(\"LTL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string LYD {\n            get {\n                return ResourceManager.GetString(\"LYD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MAD {\n            get {\n                return ResourceManager.GetString(\"MAD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MDL {\n            get {\n                return ResourceManager.GetString(\"MDL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MGA {\n            get {\n                return ResourceManager.GetString(\"MGA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MKD {\n            get {\n                return ResourceManager.GetString(\"MKD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MMK {\n            get {\n                return ResourceManager.GetString(\"MMK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MNT {\n            get {\n                return ResourceManager.GetString(\"MNT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MOP {\n            get {\n                return ResourceManager.GetString(\"MOP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MRO {\n            get {\n                return ResourceManager.GetString(\"MRO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MUR {\n            get {\n                return ResourceManager.GetString(\"MUR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MVR {\n            get {\n                return ResourceManager.GetString(\"MVR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MWK {\n            get {\n                return ResourceManager.GetString(\"MWK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MXN {\n            get {\n                return ResourceManager.GetString(\"MXN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MXV {\n            get {\n                return ResourceManager.GetString(\"MXV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MYR {\n            get {\n                return ResourceManager.GetString(\"MYR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string MZN {\n            get {\n                return ResourceManager.GetString(\"MZN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string NAD {\n            get {\n                return ResourceManager.GetString(\"NAD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string NGN {\n            get {\n                return ResourceManager.GetString(\"NGN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string NIO {\n            get {\n                return ResourceManager.GetString(\"NIO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string NOK {\n            get {\n                return ResourceManager.GetString(\"NOK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string NPR {\n            get {\n                return ResourceManager.GetString(\"NPR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string NZD {\n            get {\n                return ResourceManager.GetString(\"NZD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string OMR {\n            get {\n                return ResourceManager.GetString(\"OMR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PAB {\n            get {\n                return ResourceManager.GetString(\"PAB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PEN {\n            get {\n                return ResourceManager.GetString(\"PEN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PGK {\n            get {\n                return ResourceManager.GetString(\"PGK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PHP {\n            get {\n                return ResourceManager.GetString(\"PHP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PKR {\n            get {\n                return ResourceManager.GetString(\"PKR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PLN {\n            get {\n                return ResourceManager.GetString(\"PLN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string PYG {\n            get {\n                return ResourceManager.GetString(\"PYG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string QAR {\n            get {\n                return ResourceManager.GetString(\"QAR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string RON {\n            get {\n                return ResourceManager.GetString(\"RON\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string RSD {\n            get {\n                return ResourceManager.GetString(\"RSD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string RUB {\n            get {\n                return ResourceManager.GetString(\"RUB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string RWF {\n            get {\n                return ResourceManager.GetString(\"RWF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SAR {\n            get {\n                return ResourceManager.GetString(\"SAR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SBD {\n            get {\n                return ResourceManager.GetString(\"SBD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SCR {\n            get {\n                return ResourceManager.GetString(\"SCR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SDG {\n            get {\n                return ResourceManager.GetString(\"SDG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SEK {\n            get {\n                return ResourceManager.GetString(\"SEK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SGD {\n            get {\n                return ResourceManager.GetString(\"SGD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SHP {\n            get {\n                return ResourceManager.GetString(\"SHP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SLL {\n            get {\n                return ResourceManager.GetString(\"SLL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SOS {\n            get {\n                return ResourceManager.GetString(\"SOS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SRD {\n            get {\n                return ResourceManager.GetString(\"SRD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SSP {\n            get {\n                return ResourceManager.GetString(\"SSP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string STD {\n            get {\n                return ResourceManager.GetString(\"STD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SVC {\n            get {\n                return ResourceManager.GetString(\"SVC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SYP {\n            get {\n                return ResourceManager.GetString(\"SYP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string SZL {\n            get {\n                return ResourceManager.GetString(\"SZL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string THB {\n            get {\n                return ResourceManager.GetString(\"THB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TJS {\n            get {\n                return ResourceManager.GetString(\"TJS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TMT {\n            get {\n                return ResourceManager.GetString(\"TMT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TND {\n            get {\n                return ResourceManager.GetString(\"TND\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TOP {\n            get {\n                return ResourceManager.GetString(\"TOP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TRY {\n            get {\n                return ResourceManager.GetString(\"TRY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TTD {\n            get {\n                return ResourceManager.GetString(\"TTD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TWD {\n            get {\n                return ResourceManager.GetString(\"TWD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string TZS {\n            get {\n                return ResourceManager.GetString(\"TZS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string UAH {\n            get {\n                return ResourceManager.GetString(\"UAH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string UGX {\n            get {\n                return ResourceManager.GetString(\"UGX\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string USD {\n            get {\n                return ResourceManager.GetString(\"USD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string USN {\n            get {\n                return ResourceManager.GetString(\"USN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string USS {\n            get {\n                return ResourceManager.GetString(\"USS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string UYI {\n            get {\n                return ResourceManager.GetString(\"UYI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string UYU {\n            get {\n                return ResourceManager.GetString(\"UYU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string UZS {\n            get {\n                return ResourceManager.GetString(\"UZS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string VEF {\n            get {\n                return ResourceManager.GetString(\"VEF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string VND {\n            get {\n                return ResourceManager.GetString(\"VND\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string VUV {\n            get {\n                return ResourceManager.GetString(\"VUV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string WST {\n            get {\n                return ResourceManager.GetString(\"WST\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XAF {\n            get {\n                return ResourceManager.GetString(\"XAF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XAG {\n            get {\n                return ResourceManager.GetString(\"XAG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XAU {\n            get {\n                return ResourceManager.GetString(\"XAU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XBA {\n            get {\n                return ResourceManager.GetString(\"XBA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XBB {\n            get {\n                return ResourceManager.GetString(\"XBB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XBC {\n            get {\n                return ResourceManager.GetString(\"XBC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XBD {\n            get {\n                return ResourceManager.GetString(\"XBD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XCD {\n            get {\n                return ResourceManager.GetString(\"XCD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XDR {\n            get {\n                return ResourceManager.GetString(\"XDR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XOF {\n            get {\n                return ResourceManager.GetString(\"XOF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XPD {\n            get {\n                return ResourceManager.GetString(\"XPD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XPF {\n            get {\n                return ResourceManager.GetString(\"XPF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XPT {\n            get {\n                return ResourceManager.GetString(\"XPT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XSU {\n            get {\n                return ResourceManager.GetString(\"XSU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XTS {\n            get {\n                return ResourceManager.GetString(\"XTS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XUA {\n            get {\n                return ResourceManager.GetString(\"XUA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string XXX {\n            get {\n                return ResourceManager.GetString(\"XXX\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string YER {\n            get {\n                return ResourceManager.GetString(\"YER\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ZAR {\n            get {\n                return ResourceManager.GetString(\"ZAR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ZMW {\n            get {\n                return ResourceManager.GetString(\"ZMW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to .\n        /// </summary>\n        public static string ZWL {\n            get {\n                return ResourceManager.GetString(\"ZWL\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/Divisa.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"AED\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"AFN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ALL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"AMD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ANG\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"AOA\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ARS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"AUD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"AWG\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"AZN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BAM\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BBD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BDT\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BGN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BHD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BIF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BMD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BND\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BOB\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BOV\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BRL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BSD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BTN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BWP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BYR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"BZD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CAD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CDF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CHE\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CHF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CHW\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CLF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CLP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CNY\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"COP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"COU\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CRC\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CUC\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CUP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CVE\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"CZK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"DJF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"DKK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"DOP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"DZD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"EGP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ERN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ETB\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"EUR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"FJD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"FKP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GBP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GEL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GHS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GIP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GMD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GNF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GTQ\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"GYD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"HKD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"HNL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"HRK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"HTG\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"HUF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"IDR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ILS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"INR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"IQD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"IRR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"ISK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"JMD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"JOD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"JPY\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KES\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KGS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KHR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KMF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KPW\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KRW\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KWD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KYD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"KZT\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LAK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LBP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LKR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LRD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LSL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LTL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"LYD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MAD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MDL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MGA\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MKD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MMK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MNT\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MOP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MRO\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MUR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MVR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MWK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MXN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MXV\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MYR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"MZN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"NAD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"NGN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"NIO\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"NOK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"NPR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"NZD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"OMR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PAB\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PEN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PGK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PHP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PKR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PLN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"PYG\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"QAR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"RON\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"RSD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"RUB\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"RWF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SAR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SBD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SCR\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SDG\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SEK\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SGD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SHP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SLL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SOS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SRD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SSP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"STD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SVC\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SYP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"SZL\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"THB\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TJS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TMT\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TND\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TOP\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TRY\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TTD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TWD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"TZS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"UAH\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"UGX\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"USD\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"USN\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"USS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"UYI\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"UYU\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"UZS\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"VEF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"VND\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"VUV\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"WST\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"XAF\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"XAG\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"XAU\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"XBA\" xml:space=\"preserve\">\n    <value></value>\n  </data>\n  <data name=\"XBB\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XBC\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XBD\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XCD\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XDR\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XOF\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XPD\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XPF\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XPT\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XSU\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XTS\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XUA\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"XXX\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"YER\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"ZAR\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"ZMW\" xml:space=\"preserve\">\n  <value></value>\n</data>\n  <data name=\"ZWL\" xml:space=\"preserve\">\n  <value></value>\n</data>\n</root>"
  },
  {
    "path": "Resources/EsigibilitaIVA.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class EsigibilitaIVA {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal EsigibilitaIVA() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.EsigibilitaIVA\", typeof(EsigibilitaIVA).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to IVA ad esigibilità differita.\n        /// </summary>\n        public static string D {\n            get {\n                return ResourceManager.GetString(\"D\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to IVA ad esigibilità immediata.\n        /// </summary>\n        public static string I {\n            get {\n                return ResourceManager.GetString(\"I\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to scissione dei pagamenti.\n        /// </summary>\n        public static string S {\n            get {\n                return ResourceManager.GetString(\"S\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/EsigibilitaIVA.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"D\" xml:space=\"preserve\">\n    <value>MwSt. mit aufgeschobener Steuerschuld</value>\n  </data>\n  <data name=\"I\" xml:space=\"preserve\">\n    <value>MwSt. sofort zahlbar</value>\n  </data>\n  <data name=\"S\" xml:space=\"preserve\">\n    <value>Zahlungsaufteilung</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/EsigibilitaIVA.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"I\" xml:space=\"preserve\">\n    <value>Immediate VAT payment</value>\n  </data>\n  <data name=\"D\" xml:space=\"preserve\">\n    <value>Deferred VAT payment</value>\n  </data>\n  <data name=\"S\" xml:space=\"preserve\">\n    <value>Split payment</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/EsigibilitaIVA.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"I\" xml:space=\"preserve\">\n    <value>IVA ad esigibilità immediata</value>\n  </data>\n  <data name=\"D\" xml:space=\"preserve\">\n    <value>IVA ad esigibilità differita</value>\n  </data>\n  <data name=\"S\" xml:space=\"preserve\">\n    <value>scissione dei pagamenti</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/FormatoTrasmissione.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class FormatoTrasmissione {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal FormatoTrasmissione() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.FormatoTrasmissione\", typeof(FormatoTrasmissione).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to FatturaOrdinaria verso privati.\n        /// </summary>\n        public static string Privati {\n            get {\n                return ResourceManager.GetString(\"Privati\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to FatturaOrdinaria verso la PA.\n        /// </summary>\n        public static string PubblicaAmministrazione {\n            get {\n                return ResourceManager.GetString(\"PubblicaAmministrazione\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to FatturaOrdinaria verso privati in forma semplificata.\n        /// </summary>\n        public static string Semplificata {\n            get {\n                return ResourceManager.GetString(\"Semplificata\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/FormatoTrasmissione.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"Semplificata\" xml:space=\"preserve\">\n    <value>Vereinfachte Rechnung an Privatpersonen</value>\n  </data>\n  <data name=\"PubblicaAmministrazione\" xml:space=\"preserve\">\n    <value>Rechnung an die öffentliche Verwaltung</value>\n  </data>\n  <data name=\"Privati\" xml:space=\"preserve\">\n    <value>Rechnung an Privatpersonen</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/FormatoTrasmissione.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"PubblicaAmministrazione\" xml:space=\"preserve\">\n    <value>Standard Invoice to Public Administration</value>\n  </data>\n  <data name=\"Privati\" xml:space=\"preserve\">\n    <value>Standard Invoice to Private Entities</value>\n  </data>\n  <data name=\"Semplificata\" xml:space=\"preserve\">\n    <value>Simplified Invoice to Private Entities</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/FormatoTrasmissione.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"PubblicaAmministrazione\" xml:space=\"preserve\">\n    <value>FatturaOrdinaria verso la PA</value>\n  </data>\n  <data name=\"Privati\" xml:space=\"preserve\">\n    <value>FatturaOrdinaria verso privati</value>\n  </data>\n  <data name=\"Semplificata\" xml:space=\"preserve\">\n    <value>FatturaOrdinaria verso privati in forma semplificata</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/IdPaese.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class IdPaese {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal IdPaese() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.IdPaese\", typeof(IdPaese).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Andorra.\n        /// </summary>\n        public static string AD {\n            get {\n                return ResourceManager.GetString(\"AD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Emirati Arabi Uniti.\n        /// </summary>\n        public static string AE {\n            get {\n                return ResourceManager.GetString(\"AE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Afghanistan.\n        /// </summary>\n        public static string AF {\n            get {\n                return ResourceManager.GetString(\"AF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Antigua e Barbuda.\n        /// </summary>\n        public static string AG {\n            get {\n                return ResourceManager.GetString(\"AG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Anguilla.\n        /// </summary>\n        public static string AI {\n            get {\n                return ResourceManager.GetString(\"AI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Albania.\n        /// </summary>\n        public static string AL {\n            get {\n                return ResourceManager.GetString(\"AL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Armenia.\n        /// </summary>\n        public static string AM {\n            get {\n                return ResourceManager.GetString(\"AM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Angola.\n        /// </summary>\n        public static string AO {\n            get {\n                return ResourceManager.GetString(\"AO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Antartide.\n        /// </summary>\n        public static string AQ {\n            get {\n                return ResourceManager.GetString(\"AQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Argentina.\n        /// </summary>\n        public static string AR {\n            get {\n                return ResourceManager.GetString(\"AR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Samoa Americane.\n        /// </summary>\n        public static string AS {\n            get {\n                return ResourceManager.GetString(\"AS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Austria.\n        /// </summary>\n        public static string AT {\n            get {\n                return ResourceManager.GetString(\"AT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Australia.\n        /// </summary>\n        public static string AU {\n            get {\n                return ResourceManager.GetString(\"AU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Aruba.\n        /// </summary>\n        public static string AW {\n            get {\n                return ResourceManager.GetString(\"AW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Åland.\n        /// </summary>\n        public static string AX {\n            get {\n                return ResourceManager.GetString(\"AX\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Azerbaigian.\n        /// </summary>\n        public static string AZ {\n            get {\n                return ResourceManager.GetString(\"AZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bosnia ed Erzegovina.\n        /// </summary>\n        public static string BA {\n            get {\n                return ResourceManager.GetString(\"BA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Barbados.\n        /// </summary>\n        public static string BB {\n            get {\n                return ResourceManager.GetString(\"BB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bangladesh.\n        /// </summary>\n        public static string BD {\n            get {\n                return ResourceManager.GetString(\"BD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Belgio.\n        /// </summary>\n        public static string BE {\n            get {\n                return ResourceManager.GetString(\"BE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Burkina Faso.\n        /// </summary>\n        public static string BF {\n            get {\n                return ResourceManager.GetString(\"BF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bulgaria.\n        /// </summary>\n        public static string BG {\n            get {\n                return ResourceManager.GetString(\"BG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bahrein.\n        /// </summary>\n        public static string BH {\n            get {\n                return ResourceManager.GetString(\"BH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Burundi.\n        /// </summary>\n        public static string BI {\n            get {\n                return ResourceManager.GetString(\"BI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Benin.\n        /// </summary>\n        public static string BJ {\n            get {\n                return ResourceManager.GetString(\"BJ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Saint-Barthélemy.\n        /// </summary>\n        public static string BL {\n            get {\n                return ResourceManager.GetString(\"BL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bermuda.\n        /// </summary>\n        public static string BM {\n            get {\n                return ResourceManager.GetString(\"BM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Brunei.\n        /// </summary>\n        public static string BN {\n            get {\n                return ResourceManager.GetString(\"BN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bolivia.\n        /// </summary>\n        public static string BO {\n            get {\n                return ResourceManager.GetString(\"BO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole BES.\n        /// </summary>\n        public static string BQ {\n            get {\n                return ResourceManager.GetString(\"BQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Brasile.\n        /// </summary>\n        public static string BR {\n            get {\n                return ResourceManager.GetString(\"BR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bahamas.\n        /// </summary>\n        public static string BS {\n            get {\n                return ResourceManager.GetString(\"BS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bhutan.\n        /// </summary>\n        public static string BT {\n            get {\n                return ResourceManager.GetString(\"BT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isola Bouvet.\n        /// </summary>\n        public static string BV {\n            get {\n                return ResourceManager.GetString(\"BV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Botswana.\n        /// </summary>\n        public static string BW {\n            get {\n                return ResourceManager.GetString(\"BW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bielorussia.\n        /// </summary>\n        public static string BY {\n            get {\n                return ResourceManager.GetString(\"BY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Belize.\n        /// </summary>\n        public static string BZ {\n            get {\n                return ResourceManager.GetString(\"BZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Canada.\n        /// </summary>\n        public static string CA {\n            get {\n                return ResourceManager.GetString(\"CA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Cocos e Keeling.\n        /// </summary>\n        public static string CC {\n            get {\n                return ResourceManager.GetString(\"CC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Repubblica Democratica del Congo.\n        /// </summary>\n        public static string CD {\n            get {\n                return ResourceManager.GetString(\"CD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Repubblica Centrafricana.\n        /// </summary>\n        public static string CF {\n            get {\n                return ResourceManager.GetString(\"CF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Congo.\n        /// </summary>\n        public static string CG {\n            get {\n                return ResourceManager.GetString(\"CG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Svizzera.\n        /// </summary>\n        public static string CH {\n            get {\n                return ResourceManager.GetString(\"CH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Costa d&apos;Avorio.\n        /// </summary>\n        public static string CI {\n            get {\n                return ResourceManager.GetString(\"CI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Cook.\n        /// </summary>\n        public static string CK {\n            get {\n                return ResourceManager.GetString(\"CK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cile.\n        /// </summary>\n        public static string CL {\n            get {\n                return ResourceManager.GetString(\"CL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Camerun.\n        /// </summary>\n        public static string CM {\n            get {\n                return ResourceManager.GetString(\"CM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cina.\n        /// </summary>\n        public static string CN {\n            get {\n                return ResourceManager.GetString(\"CN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Colombia.\n        /// </summary>\n        public static string CO {\n            get {\n                return ResourceManager.GetString(\"CO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Costa Rica.\n        /// </summary>\n        public static string CR {\n            get {\n                return ResourceManager.GetString(\"CR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cuba.\n        /// </summary>\n        public static string CU {\n            get {\n                return ResourceManager.GetString(\"CU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Capo Verde.\n        /// </summary>\n        public static string CV {\n            get {\n                return ResourceManager.GetString(\"CV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Curaçao.\n        /// </summary>\n        public static string CW {\n            get {\n                return ResourceManager.GetString(\"CW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isola del Natale.\n        /// </summary>\n        public static string CX {\n            get {\n                return ResourceManager.GetString(\"CX\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cipro.\n        /// </summary>\n        public static string CY {\n            get {\n                return ResourceManager.GetString(\"CY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cechia.\n        /// </summary>\n        public static string CZ {\n            get {\n                return ResourceManager.GetString(\"CZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Germania.\n        /// </summary>\n        public static string DE {\n            get {\n                return ResourceManager.GetString(\"DE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Gibuti.\n        /// </summary>\n        public static string DJ {\n            get {\n                return ResourceManager.GetString(\"DJ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Danimarka.\n        /// </summary>\n        public static string DK {\n            get {\n                return ResourceManager.GetString(\"DK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Dominica.\n        /// </summary>\n        public static string DM {\n            get {\n                return ResourceManager.GetString(\"DM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Repubblica Dominicana.\n        /// </summary>\n        public static string DO {\n            get {\n                return ResourceManager.GetString(\"DO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Algeria.\n        /// </summary>\n        public static string DZ {\n            get {\n                return ResourceManager.GetString(\"DZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ecuador.\n        /// </summary>\n        public static string EC {\n            get {\n                return ResourceManager.GetString(\"EC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Estonia.\n        /// </summary>\n        public static string EE {\n            get {\n                return ResourceManager.GetString(\"EE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Egitto.\n        /// </summary>\n        public static string EG {\n            get {\n                return ResourceManager.GetString(\"EG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sahara Occidentale.\n        /// </summary>\n        public static string EH {\n            get {\n                return ResourceManager.GetString(\"EH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Grecia EL.\n        /// </summary>\n        public static string EL {\n            get {\n                return ResourceManager.GetString(\"EL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Eritrea.\n        /// </summary>\n        public static string ER {\n            get {\n                return ResourceManager.GetString(\"ER\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Spagna.\n        /// </summary>\n        public static string ES {\n            get {\n                return ResourceManager.GetString(\"ES\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Etiopia.\n        /// </summary>\n        public static string ET {\n            get {\n                return ResourceManager.GetString(\"ET\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Finlandia.\n        /// </summary>\n        public static string FI {\n            get {\n                return ResourceManager.GetString(\"FI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Figi.\n        /// </summary>\n        public static string FJ {\n            get {\n                return ResourceManager.GetString(\"FJ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Falkland.\n        /// </summary>\n        public static string FK {\n            get {\n                return ResourceManager.GetString(\"FK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Micronesia.\n        /// </summary>\n        public static string FM {\n            get {\n                return ResourceManager.GetString(\"FM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Fær Øer.\n        /// </summary>\n        public static string FO {\n            get {\n                return ResourceManager.GetString(\"FO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Francia.\n        /// </summary>\n        public static string FR {\n            get {\n                return ResourceManager.GetString(\"FR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Gabon.\n        /// </summary>\n        public static string GA {\n            get {\n                return ResourceManager.GetString(\"GA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Regno Unito.\n        /// </summary>\n        public static string GB {\n            get {\n                return ResourceManager.GetString(\"GB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Grenada.\n        /// </summary>\n        public static string GD {\n            get {\n                return ResourceManager.GetString(\"GD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Georgia.\n        /// </summary>\n        public static string GE {\n            get {\n                return ResourceManager.GetString(\"GE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guyana Francese.\n        /// </summary>\n        public static string GF {\n            get {\n                return ResourceManager.GetString(\"GF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guernsey.\n        /// </summary>\n        public static string GG {\n            get {\n                return ResourceManager.GetString(\"GG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ghana.\n        /// </summary>\n        public static string GH {\n            get {\n                return ResourceManager.GetString(\"GH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Gibilterra.\n        /// </summary>\n        public static string GI {\n            get {\n                return ResourceManager.GetString(\"GI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Groenlandia.\n        /// </summary>\n        public static string GL {\n            get {\n                return ResourceManager.GetString(\"GL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Gambia.\n        /// </summary>\n        public static string GM {\n            get {\n                return ResourceManager.GetString(\"GM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guinea.\n        /// </summary>\n        public static string GN {\n            get {\n                return ResourceManager.GetString(\"GN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guadalupa.\n        /// </summary>\n        public static string GP {\n            get {\n                return ResourceManager.GetString(\"GP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guinea Equatoriale.\n        /// </summary>\n        public static string GQ {\n            get {\n                return ResourceManager.GetString(\"GQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Grecia GR.\n        /// </summary>\n        public static string GR {\n            get {\n                return ResourceManager.GetString(\"GR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Georgia del Sud e Isole Sandwich meridionali.\n        /// </summary>\n        public static string GS {\n            get {\n                return ResourceManager.GetString(\"GS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guatemala.\n        /// </summary>\n        public static string GT {\n            get {\n                return ResourceManager.GetString(\"GT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guam.\n        /// </summary>\n        public static string GU {\n            get {\n                return ResourceManager.GetString(\"GU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guinea-Bissau.\n        /// </summary>\n        public static string GW {\n            get {\n                return ResourceManager.GetString(\"GW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Guyana.\n        /// </summary>\n        public static string GY {\n            get {\n                return ResourceManager.GetString(\"GY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Hong Kong.\n        /// </summary>\n        public static string HK {\n            get {\n                return ResourceManager.GetString(\"HK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Heard e McDonald.\n        /// </summary>\n        public static string HM {\n            get {\n                return ResourceManager.GetString(\"HM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Honduras.\n        /// </summary>\n        public static string HN {\n            get {\n                return ResourceManager.GetString(\"HN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Croazia.\n        /// </summary>\n        public static string HR {\n            get {\n                return ResourceManager.GetString(\"HR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Haiti.\n        /// </summary>\n        public static string HT {\n            get {\n                return ResourceManager.GetString(\"HT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ungheria.\n        /// </summary>\n        public static string HU {\n            get {\n                return ResourceManager.GetString(\"HU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Indonesia.\n        /// </summary>\n        public static string ID {\n            get {\n                return ResourceManager.GetString(\"ID\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Irlanda.\n        /// </summary>\n        public static string IE {\n            get {\n                return ResourceManager.GetString(\"IE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Israele.\n        /// </summary>\n        public static string IL {\n            get {\n                return ResourceManager.GetString(\"IL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isola di Man.\n        /// </summary>\n        public static string IM {\n            get {\n                return ResourceManager.GetString(\"IM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to India.\n        /// </summary>\n        public static string IN {\n            get {\n                return ResourceManager.GetString(\"IN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Territori Britannici dell&apos;Oceano Indiano.\n        /// </summary>\n        public static string IO {\n            get {\n                return ResourceManager.GetString(\"IO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Iraq.\n        /// </summary>\n        public static string IQ {\n            get {\n                return ResourceManager.GetString(\"IQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Iran.\n        /// </summary>\n        public static string IR {\n            get {\n                return ResourceManager.GetString(\"IR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Islanda.\n        /// </summary>\n        public static string IS {\n            get {\n                return ResourceManager.GetString(\"IS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Italia.\n        /// </summary>\n        public static string IT {\n            get {\n                return ResourceManager.GetString(\"IT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Jersey.\n        /// </summary>\n        public static string JE {\n            get {\n                return ResourceManager.GetString(\"JE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Giamaica.\n        /// </summary>\n        public static string JM {\n            get {\n                return ResourceManager.GetString(\"JM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Giordania.\n        /// </summary>\n        public static string JO {\n            get {\n                return ResourceManager.GetString(\"JO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Giappone.\n        /// </summary>\n        public static string JP {\n            get {\n                return ResourceManager.GetString(\"JP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Kenya.\n        /// </summary>\n        public static string KE {\n            get {\n                return ResourceManager.GetString(\"KE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Kirghizistan.\n        /// </summary>\n        public static string KG {\n            get {\n                return ResourceManager.GetString(\"KG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cambogia.\n        /// </summary>\n        public static string KH {\n            get {\n                return ResourceManager.GetString(\"KH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Kiribati.\n        /// </summary>\n        public static string KI {\n            get {\n                return ResourceManager.GetString(\"KI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Comore.\n        /// </summary>\n        public static string KM {\n            get {\n                return ResourceManager.GetString(\"KM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Saint Kitts e Nevis.\n        /// </summary>\n        public static string KN {\n            get {\n                return ResourceManager.GetString(\"KN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Corea del Nord.\n        /// </summary>\n        public static string KP {\n            get {\n                return ResourceManager.GetString(\"KP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Corea del Sud.\n        /// </summary>\n        public static string KR {\n            get {\n                return ResourceManager.GetString(\"KR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Kuwait.\n        /// </summary>\n        public static string KW {\n            get {\n                return ResourceManager.GetString(\"KW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Cayman.\n        /// </summary>\n        public static string KY {\n            get {\n                return ResourceManager.GetString(\"KY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Kazakistan.\n        /// </summary>\n        public static string KZ {\n            get {\n                return ResourceManager.GetString(\"KZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Laos.\n        /// </summary>\n        public static string LA {\n            get {\n                return ResourceManager.GetString(\"LA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Libano.\n        /// </summary>\n        public static string LB {\n            get {\n                return ResourceManager.GetString(\"LB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Santa Lucia.\n        /// </summary>\n        public static string LC {\n            get {\n                return ResourceManager.GetString(\"LC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Liechtenstein.\n        /// </summary>\n        public static string LI {\n            get {\n                return ResourceManager.GetString(\"LI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sri Lanka.\n        /// </summary>\n        public static string LK {\n            get {\n                return ResourceManager.GetString(\"LK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Liberia.\n        /// </summary>\n        public static string LR {\n            get {\n                return ResourceManager.GetString(\"LR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lesotho.\n        /// </summary>\n        public static string LS {\n            get {\n                return ResourceManager.GetString(\"LS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lituania.\n        /// </summary>\n        public static string LT {\n            get {\n                return ResourceManager.GetString(\"LT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lussemburgo.\n        /// </summary>\n        public static string LU {\n            get {\n                return ResourceManager.GetString(\"LU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lettonia.\n        /// </summary>\n        public static string LV {\n            get {\n                return ResourceManager.GetString(\"LV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Libia.\n        /// </summary>\n        public static string LY {\n            get {\n                return ResourceManager.GetString(\"LY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Marocco.\n        /// </summary>\n        public static string MA {\n            get {\n                return ResourceManager.GetString(\"MA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Monaco.\n        /// </summary>\n        public static string MC {\n            get {\n                return ResourceManager.GetString(\"MC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Moldavia.\n        /// </summary>\n        public static string MD {\n            get {\n                return ResourceManager.GetString(\"MD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Montenegro.\n        /// </summary>\n        public static string ME {\n            get {\n                return ResourceManager.GetString(\"ME\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Saint-Martin.\n        /// </summary>\n        public static string MF {\n            get {\n                return ResourceManager.GetString(\"MF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Madagascar.\n        /// </summary>\n        public static string MG {\n            get {\n                return ResourceManager.GetString(\"MG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Marshall.\n        /// </summary>\n        public static string MH {\n            get {\n                return ResourceManager.GetString(\"MH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Macedonia.\n        /// </summary>\n        public static string MK {\n            get {\n                return ResourceManager.GetString(\"MK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mali.\n        /// </summary>\n        public static string ML {\n            get {\n                return ResourceManager.GetString(\"ML\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Birmania.\n        /// </summary>\n        public static string MM {\n            get {\n                return ResourceManager.GetString(\"MM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mongolia.\n        /// </summary>\n        public static string MN {\n            get {\n                return ResourceManager.GetString(\"MN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Macao.\n        /// </summary>\n        public static string MO {\n            get {\n                return ResourceManager.GetString(\"MO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Marianne Settentrionali.\n        /// </summary>\n        public static string MP {\n            get {\n                return ResourceManager.GetString(\"MP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Martinica.\n        /// </summary>\n        public static string MQ {\n            get {\n                return ResourceManager.GetString(\"MQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mauritania.\n        /// </summary>\n        public static string MR {\n            get {\n                return ResourceManager.GetString(\"MR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Montserrat.\n        /// </summary>\n        public static string MS {\n            get {\n                return ResourceManager.GetString(\"MS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Malta.\n        /// </summary>\n        public static string MT {\n            get {\n                return ResourceManager.GetString(\"MT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mauritius.\n        /// </summary>\n        public static string MU {\n            get {\n                return ResourceManager.GetString(\"MU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Maldive.\n        /// </summary>\n        public static string MV {\n            get {\n                return ResourceManager.GetString(\"MV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Malawi.\n        /// </summary>\n        public static string MW {\n            get {\n                return ResourceManager.GetString(\"MW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Messico.\n        /// </summary>\n        public static string MX {\n            get {\n                return ResourceManager.GetString(\"MX\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Malesia.\n        /// </summary>\n        public static string MY {\n            get {\n                return ResourceManager.GetString(\"MY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mozambico.\n        /// </summary>\n        public static string MZ {\n            get {\n                return ResourceManager.GetString(\"MZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Namibia.\n        /// </summary>\n        public static string NA {\n            get {\n                return ResourceManager.GetString(\"NA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nuova Caledonia.\n        /// </summary>\n        public static string NC {\n            get {\n                return ResourceManager.GetString(\"NC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Niger.\n        /// </summary>\n        public static string NE {\n            get {\n                return ResourceManager.GetString(\"NE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Norfolk.\n        /// </summary>\n        public static string NF {\n            get {\n                return ResourceManager.GetString(\"NF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nigeria.\n        /// </summary>\n        public static string NG {\n            get {\n                return ResourceManager.GetString(\"NG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nicaragua.\n        /// </summary>\n        public static string NI {\n            get {\n                return ResourceManager.GetString(\"NI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Paesi Bassi.\n        /// </summary>\n        public static string NL {\n            get {\n                return ResourceManager.GetString(\"NL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Norvegia.\n        /// </summary>\n        public static string NO {\n            get {\n                return ResourceManager.GetString(\"NO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nepal.\n        /// </summary>\n        public static string NP {\n            get {\n                return ResourceManager.GetString(\"NP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nauru.\n        /// </summary>\n        public static string NR {\n            get {\n                return ResourceManager.GetString(\"NR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Niue.\n        /// </summary>\n        public static string NU {\n            get {\n                return ResourceManager.GetString(\"NU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nuova Zelanda.\n        /// </summary>\n        public static string NZ {\n            get {\n                return ResourceManager.GetString(\"NZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Oman.\n        /// </summary>\n        public static string OM {\n            get {\n                return ResourceManager.GetString(\"OM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Campione d&apos;Italia e Livigno.\n        /// </summary>\n        public static string OO {\n            get {\n                return ResourceManager.GetString(\"OO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Panama.\n        /// </summary>\n        public static string PA {\n            get {\n                return ResourceManager.GetString(\"PA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Perù.\n        /// </summary>\n        public static string PE {\n            get {\n                return ResourceManager.GetString(\"PE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Polinesia Francese.\n        /// </summary>\n        public static string PF {\n            get {\n                return ResourceManager.GetString(\"PF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Papua Nuova Guinea.\n        /// </summary>\n        public static string PG {\n            get {\n                return ResourceManager.GetString(\"PG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Filippine.\n        /// </summary>\n        public static string PH {\n            get {\n                return ResourceManager.GetString(\"PH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pakistan.\n        /// </summary>\n        public static string PK {\n            get {\n                return ResourceManager.GetString(\"PK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Polonia.\n        /// </summary>\n        public static string PL {\n            get {\n                return ResourceManager.GetString(\"PL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Saint-Pierre e Miquelon.\n        /// </summary>\n        public static string PM {\n            get {\n                return ResourceManager.GetString(\"PM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Pitcairn.\n        /// </summary>\n        public static string PN {\n            get {\n                return ResourceManager.GetString(\"PN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Porto Rico.\n        /// </summary>\n        public static string PR {\n            get {\n                return ResourceManager.GetString(\"PR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Stato di Palestina.\n        /// </summary>\n        public static string PS {\n            get {\n                return ResourceManager.GetString(\"PS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Portogallo.\n        /// </summary>\n        public static string PT {\n            get {\n                return ResourceManager.GetString(\"PT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Palau.\n        /// </summary>\n        public static string PW {\n            get {\n                return ResourceManager.GetString(\"PW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Paraguay.\n        /// </summary>\n        public static string PY {\n            get {\n                return ResourceManager.GetString(\"PY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Qatar.\n        /// </summary>\n        public static string QA {\n            get {\n                return ResourceManager.GetString(\"QA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Réunion.\n        /// </summary>\n        public static string RE {\n            get {\n                return ResourceManager.GetString(\"RE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Romania.\n        /// </summary>\n        public static string RO {\n            get {\n                return ResourceManager.GetString(\"RO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Serbia.\n        /// </summary>\n        public static string RS {\n            get {\n                return ResourceManager.GetString(\"RS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Russia.\n        /// </summary>\n        public static string RU {\n            get {\n                return ResourceManager.GetString(\"RU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ruanda.\n        /// </summary>\n        public static string RW {\n            get {\n                return ResourceManager.GetString(\"RW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Arabia Saudita.\n        /// </summary>\n        public static string SA {\n            get {\n                return ResourceManager.GetString(\"SA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Solomon.\n        /// </summary>\n        public static string SB {\n            get {\n                return ResourceManager.GetString(\"SB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Seychelles.\n        /// </summary>\n        public static string SC {\n            get {\n                return ResourceManager.GetString(\"SC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sudan.\n        /// </summary>\n        public static string SD {\n            get {\n                return ResourceManager.GetString(\"SD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Svezia.\n        /// </summary>\n        public static string SE {\n            get {\n                return ResourceManager.GetString(\"SE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Singapore.\n        /// </summary>\n        public static string SG {\n            get {\n                return ResourceManager.GetString(\"SG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sant&apos;Elena, Isola di Acensione e Tristan da Cunha.\n        /// </summary>\n        public static string SH {\n            get {\n                return ResourceManager.GetString(\"SH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Slovenia.\n        /// </summary>\n        public static string SI {\n            get {\n                return ResourceManager.GetString(\"SI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Svalbard e Jan Mayen.\n        /// </summary>\n        public static string SJ {\n            get {\n                return ResourceManager.GetString(\"SJ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Slovacchia.\n        /// </summary>\n        public static string SK {\n            get {\n                return ResourceManager.GetString(\"SK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sierra Leone.\n        /// </summary>\n        public static string SL {\n            get {\n                return ResourceManager.GetString(\"SL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to San Marino.\n        /// </summary>\n        public static string SM {\n            get {\n                return ResourceManager.GetString(\"SM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Senegal.\n        /// </summary>\n        public static string SN {\n            get {\n                return ResourceManager.GetString(\"SN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Somalia.\n        /// </summary>\n        public static string SO {\n            get {\n                return ResourceManager.GetString(\"SO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Suriname.\n        /// </summary>\n        public static string SR {\n            get {\n                return ResourceManager.GetString(\"SR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sudan del Sud.\n        /// </summary>\n        public static string SS {\n            get {\n                return ResourceManager.GetString(\"SS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sao Tome e Principe.\n        /// </summary>\n        public static string ST {\n            get {\n                return ResourceManager.GetString(\"ST\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to El Salvador.\n        /// </summary>\n        public static string SV {\n            get {\n                return ResourceManager.GetString(\"SV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sint Maarten.\n        /// </summary>\n        public static string SX {\n            get {\n                return ResourceManager.GetString(\"SX\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Siria.\n        /// </summary>\n        public static string SY {\n            get {\n                return ResourceManager.GetString(\"SY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Swaziland.\n        /// </summary>\n        public static string SZ {\n            get {\n                return ResourceManager.GetString(\"SZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Turks e Caicos.\n        /// </summary>\n        public static string TC {\n            get {\n                return ResourceManager.GetString(\"TC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ciad.\n        /// </summary>\n        public static string TD {\n            get {\n                return ResourceManager.GetString(\"TD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Territori Francesi del Sud.\n        /// </summary>\n        public static string TF {\n            get {\n                return ResourceManager.GetString(\"TF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Togo.\n        /// </summary>\n        public static string TG {\n            get {\n                return ResourceManager.GetString(\"TG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tailandia.\n        /// </summary>\n        public static string TH {\n            get {\n                return ResourceManager.GetString(\"TH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tagikistan.\n        /// </summary>\n        public static string TJ {\n            get {\n                return ResourceManager.GetString(\"TJ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tokelau.\n        /// </summary>\n        public static string TK {\n            get {\n                return ResourceManager.GetString(\"TK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Timor Est.\n        /// </summary>\n        public static string TL {\n            get {\n                return ResourceManager.GetString(\"TL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Turkmenistan.\n        /// </summary>\n        public static string TM {\n            get {\n                return ResourceManager.GetString(\"TM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tunisia.\n        /// </summary>\n        public static string TN {\n            get {\n                return ResourceManager.GetString(\"TN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tonga.\n        /// </summary>\n        public static string TO {\n            get {\n                return ResourceManager.GetString(\"TO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Turchia.\n        /// </summary>\n        public static string TR {\n            get {\n                return ResourceManager.GetString(\"TR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trinidad e Tobago.\n        /// </summary>\n        public static string TT {\n            get {\n                return ResourceManager.GetString(\"TT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tuvalu.\n        /// </summary>\n        public static string TV {\n            get {\n                return ResourceManager.GetString(\"TV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Taiwan (Repubblica di Cina).\n        /// </summary>\n        public static string TW {\n            get {\n                return ResourceManager.GetString(\"TW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Tanzania.\n        /// </summary>\n        public static string TZ {\n            get {\n                return ResourceManager.GetString(\"TZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ucraina.\n        /// </summary>\n        public static string UA {\n            get {\n                return ResourceManager.GetString(\"UA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Uganda.\n        /// </summary>\n        public static string UG {\n            get {\n                return ResourceManager.GetString(\"UG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Minor Esterne degli Stati Uniti.\n        /// </summary>\n        public static string UM {\n            get {\n                return ResourceManager.GetString(\"UM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Stati Uniti.\n        /// </summary>\n        public static string US {\n            get {\n                return ResourceManager.GetString(\"US\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Uruguay.\n        /// </summary>\n        public static string UY {\n            get {\n                return ResourceManager.GetString(\"UY\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Uzbekistan.\n        /// </summary>\n        public static string UZ {\n            get {\n                return ResourceManager.GetString(\"UZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Città del Vaticano.\n        /// </summary>\n        public static string VA {\n            get {\n                return ResourceManager.GetString(\"VA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Saint Vincent e Grenadine.\n        /// </summary>\n        public static string VC {\n            get {\n                return ResourceManager.GetString(\"VC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Venezuela.\n        /// </summary>\n        public static string VE {\n            get {\n                return ResourceManager.GetString(\"VE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Vergini britanniche.\n        /// </summary>\n        public static string VG {\n            get {\n                return ResourceManager.GetString(\"VG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isole Vergini americane.\n        /// </summary>\n        public static string VI {\n            get {\n                return ResourceManager.GetString(\"VI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Vietnam.\n        /// </summary>\n        public static string VN {\n            get {\n                return ResourceManager.GetString(\"VN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Vanuatu.\n        /// </summary>\n        public static string VU {\n            get {\n                return ResourceManager.GetString(\"VU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Wallis e Futuna.\n        /// </summary>\n        public static string WF {\n            get {\n                return ResourceManager.GetString(\"WF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Samoa.\n        /// </summary>\n        public static string WS {\n            get {\n                return ResourceManager.GetString(\"WS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Irlanda del Nord.\n        /// </summary>\n        public static string XI {\n            get {\n                return ResourceManager.GetString(\"XI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Kosovo.\n        /// </summary>\n        public static string XK {\n            get {\n                return ResourceManager.GetString(\"XK\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Yemen.\n        /// </summary>\n        public static string YE {\n            get {\n                return ResourceManager.GetString(\"YE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mayotte.\n        /// </summary>\n        public static string YT {\n            get {\n                return ResourceManager.GetString(\"YT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sud Africa.\n        /// </summary>\n        public static string ZA {\n            get {\n                return ResourceManager.GetString(\"ZA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Zambia.\n        /// </summary>\n        public static string ZM {\n            get {\n                return ResourceManager.GetString(\"ZM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Zimbabwe.\n        /// </summary>\n        public static string ZW {\n            get {\n                return ResourceManager.GetString(\"ZW\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/IdPaese.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n\n  <data name=\"AF\" xml:space=\"preserve\">\n    <value>Afghanistan</value>\n  </data>\n  <data name=\"AX\" xml:space=\"preserve\">\n    <value>Åland-Inseln</value>\n  </data>\n  <data name=\"AL\" xml:space=\"preserve\">\n    <value>Albanien</value>\n  </data>\n  <data name=\"DZ\" xml:space=\"preserve\">\n    <value>Algerien</value>\n  </data>\n  <data name=\"AS\" xml:space=\"preserve\">\n    <value>Amerikanisch-Samoa</value>\n  </data>\n  <data name=\"AD\" xml:space=\"preserve\">\n    <value>Andorra</value>\n  </data>\n  <data name=\"AO\" xml:space=\"preserve\">\n    <value>Angola</value>\n  </data>\n  <data name=\"AI\" xml:space=\"preserve\">\n    <value>Anguilla</value>\n  </data>\n  <data name=\"AQ\" xml:space=\"preserve\">\n    <value>Antarktis</value>\n  </data>\n  <data name=\"AG\" xml:space=\"preserve\">\n    <value>Antigua und Barbuda</value>\n  </data>\n  <data name=\"AR\" xml:space=\"preserve\">\n    <value>Argentinien</value>\n  </data>\n  <data name=\"AM\" xml:space=\"preserve\">\n    <value>Armenien</value>\n  </data>\n  <data name=\"AW\" xml:space=\"preserve\">\n    <value>Aruba</value>\n  </data>\n  <data name=\"AU\" xml:space=\"preserve\">\n    <value>Australien</value>\n  </data>\n  <data name=\"AT\" xml:space=\"preserve\">\n    <value>Österreich</value>\n  </data>\n  <data name=\"AZ\" xml:space=\"preserve\">\n    <value>Aserbaidschan</value>\n  </data>\n  <data name=\"BS\" xml:space=\"preserve\">\n    <value>Bahamas</value>\n  </data>\n  <data name=\"BH\" xml:space=\"preserve\">\n    <value>Bahrain</value>\n  </data>\n  <data name=\"BD\" xml:space=\"preserve\">\n    <value>Bangladesch</value>\n  </data>\n  <data name=\"BB\" xml:space=\"preserve\">\n    <value>Barbados</value>\n  </data>\n  <data name=\"BY\" xml:space=\"preserve\">\n    <value>Weißrussland</value>\n  </data>\n  <data name=\"BE\" xml:space=\"preserve\">\n    <value>Belgien</value>\n  </data>\n  <data name=\"BZ\" xml:space=\"preserve\">\n    <value>Belize</value>\n  </data>\n  <data name=\"BJ\" xml:space=\"preserve\">\n    <value>Benin</value>\n  </data>\n  <data name=\"BM\" xml:space=\"preserve\">\n    <value>Bermuda</value>\n  </data>\n  <data name=\"BT\" xml:space=\"preserve\">\n    <value>Bhutan</value>\n  </data>\n  <data name=\"BO\" xml:space=\"preserve\">\n    <value>Bolivien</value>\n  </data>\n  <data name=\"BQ\" xml:space=\"preserve\">\n    <value>BES-Inseln</value>\n  </data>\n  <data name=\"BA\" xml:space=\"preserve\">\n    <value>Bosnien und Herzegowina</value>\n  </data>\n  <data name=\"BW\" xml:space=\"preserve\">\n    <value>Botswana</value>\n  </data>\n  <data name=\"BV\" xml:space=\"preserve\">\n    <value>Bouvetinsel</value>\n  </data>\n  <data name=\"BR\" xml:space=\"preserve\">\n    <value>Brasilien</value>\n  </data>\n  <data name=\"IO\" xml:space=\"preserve\">\n    <value>Britisches Territorium im Indischen Ozean</value>\n  </data>\n  <data name=\"BN\" xml:space=\"preserve\">\n    <value>Brunei</value>\n  </data>\n  <data name=\"BG\" xml:space=\"preserve\">\n    <value>Bulgarien</value>\n  </data>\n  <data name=\"BF\" xml:space=\"preserve\">\n    <value>Burkina Faso</value>\n  </data>\n  <data name=\"BI\" xml:space=\"preserve\">\n    <value>Burundi</value>\n  </data>\n  <data name=\"KH\" xml:space=\"preserve\">\n    <value>Kambodscha</value>\n  </data>\n  <data name=\"CM\" xml:space=\"preserve\">\n    <value>Kamerun</value>\n  </data>\n  <data name=\"CA\" xml:space=\"preserve\">\n    <value>Kanada</value>\n  </data>\n  <data name=\"CV\" xml:space=\"preserve\">\n    <value>Kap Verde</value>\n  </data>\n  <data name=\"KY\" xml:space=\"preserve\">\n    <value>Kaimaninseln</value>\n  </data>\n  <data name=\"CF\" xml:space=\"preserve\">\n    <value>Zentralafrikanische Republik</value>\n  </data>\n  <data name=\"TD\" xml:space=\"preserve\">\n    <value>Tschad</value>\n  </data>\n  <data name=\"CL\" xml:space=\"preserve\">\n    <value>Chile</value>\n  </data>\n  <data name=\"CN\" xml:space=\"preserve\">\n    <value>China</value>\n  </data>\n  <data name=\"CX\" xml:space=\"preserve\">\n    <value>Weihnachtsinsel</value>\n  </data>\n  <data name=\"CC\" xml:space=\"preserve\">\n    <value>Kokosinseln</value>\n  </data>\n  <data name=\"CO\" xml:space=\"preserve\">\n    <value>Kolumbien</value>\n  </data>\n  <data name=\"KM\" xml:space=\"preserve\">\n    <value>Komoren</value>\n  </data>\n  <data name=\"CG\" xml:space=\"preserve\">\n    <value>Kongo</value>\n  </data>\n  <data name=\"CD\" xml:space=\"preserve\">\n    <value>Demokratische Republik Kongo</value>\n  </data>\n  <data name=\"CK\" xml:space=\"preserve\">\n    <value>Cookinseln</value>\n  </data>\n  <data name=\"CR\" xml:space=\"preserve\">\n    <value>Costa Rica</value>\n  </data>\n  <data name=\"CI\" xml:space=\"preserve\">\n    <value>Elfenbeinküste</value>\n  </data>\n  <data name=\"HR\" xml:space=\"preserve\">\n    <value>Kroatien</value>\n  </data>\n  <data name=\"CU\" xml:space=\"preserve\">\n    <value>Kuba</value>\n  </data>\n  <data name=\"CW\" xml:space=\"preserve\">\n    <value>Curaçao</value>\n  </data>\n  <data name=\"CY\" xml:space=\"preserve\">\n    <value>Zypern</value>\n  </data>\n  <data name=\"CZ\" xml:space=\"preserve\">\n    <value>Tschechien</value>\n  </data>\n  <data name=\"DK\" xml:space=\"preserve\">\n    <value>Dänemark</value>\n  </data>\n  <data name=\"DJ\" xml:space=\"preserve\">\n    <value>Dschibuti</value>\n  </data>\n  <data name=\"DM\" xml:space=\"preserve\">\n    <value>Dominica</value>\n  </data>\n  <data name=\"DO\" xml:space=\"preserve\">\n    <value>Dominikanische Republik</value>\n  </data>\n  <data name=\"EC\" xml:space=\"preserve\">\n    <value>Ecuador</value>\n  </data>\n  <data name=\"EG\" xml:space=\"preserve\">\n    <value>Ägypten</value>\n  </data>\n  <data name=\"SV\" xml:space=\"preserve\">\n    <value>El Salvador</value>\n  </data>\n  <data name=\"GQ\" xml:space=\"preserve\">\n    <value>Äquatorialguinea</value>\n  </data>\n  <data name=\"ER\" xml:space=\"preserve\">\n    <value>Eritrea</value>\n  </data>\n  <data name=\"EE\" xml:space=\"preserve\">\n    <value>Estland</value>\n  </data>\n  <data name=\"ET\" xml:space=\"preserve\">\n    <value>Äthiopien</value>\n  </data>\n  <data name=\"FK\" xml:space=\"preserve\">\n    <value>Falklandinseln</value>\n  </data>\n  <data name=\"FO\" xml:space=\"preserve\">\n    <value>Färöer</value>\n  </data>\n  <data name=\"FJ\" xml:space=\"preserve\">\n    <value>Fidschi</value>\n  </data>\n  <data name=\"FI\" xml:space=\"preserve\">\n    <value>Finnland</value>\n  </data>\n  <data name=\"FR\" xml:space=\"preserve\">\n    <value>Frankreich</value>\n  </data>\n  <data name=\"GF\" xml:space=\"preserve\">\n    <value>Französisch-Guayana</value>\n  </data>\n  <data name=\"PF\" xml:space=\"preserve\">\n    <value>Französisch-Polynesien</value>\n  </data>\n  <data name=\"TF\" xml:space=\"preserve\">\n    <value>Französische Süd- und Antarktisgebiete</value>\n  </data>\n  <data name=\"GA\" xml:space=\"preserve\">\n    <value>Gabun</value>\n  </data>\n  <data name=\"GM\" xml:space=\"preserve\">\n    <value>Gambia</value>\n  </data>\n  <data name=\"GE\" xml:space=\"preserve\">\n    <value>Georgien</value>\n  </data>\n  <data name=\"DE\" xml:space=\"preserve\">\n    <value>Deutschland</value>\n  </data>\n  <data name=\"GH\" xml:space=\"preserve\">\n    <value>Ghana</value>\n  </data>\n  <data name=\"GI\" xml:space=\"preserve\">\n    <value>Gibraltar</value>\n  </data>\n  <data name=\"GR\" xml:space=\"preserve\">\n    <value>Griechenland</value>\n  </data>\n  <data name=\"GL\" xml:space=\"preserve\">\n    <value>Grönland</value>\n  </data>\n  <data name=\"GD\" xml:space=\"preserve\">\n    <value>Grenada</value>\n  </data>\n  <data name=\"GP\" xml:space=\"preserve\">\n    <value>Guadeloupe</value>\n  </data>\n  <data name=\"GU\" xml:space=\"preserve\">\n    <value>Guam</value>\n  </data>\n  <data name=\"GT\" xml:space=\"preserve\">\n    <value>Guatemala</value>\n  </data>\n  <data name=\"GG\" xml:space=\"preserve\">\n    <value>Guernsey</value>\n  </data>\n  <data name=\"GN\" xml:space=\"preserve\">\n    <value>Guinea</value>\n  </data>\n  <data name=\"GW\" xml:space=\"preserve\">\n    <value>Guinea-Bissau</value>\n  </data>\n  <data name=\"GY\" xml:space=\"preserve\">\n    <value>Guyana</value>\n  </data>\n  <data name=\"HT\" xml:space=\"preserve\">\n    <value>Haiti</value>\n  </data>\n  <data name=\"HM\" xml:space=\"preserve\">\n    <value>Heard und McDonaldinseln</value>\n  </data>\n  <data name=\"VA\" xml:space=\"preserve\">\n    <value>Vatikanstadt</value>\n  </data>\n  <data name=\"HN\" xml:space=\"preserve\">\n    <value>Honduras</value>\n  </data>\n  <data name=\"HK\" xml:space=\"preserve\">\n    <value>Hongkong</value>\n  </data>\n  <data name=\"HU\" xml:space=\"preserve\">\n    <value>Ungarn</value>\n  </data>\n  <data name=\"IS\" xml:space=\"preserve\">\n    <value>Island</value>\n  </data>\n  <data name=\"IN\" xml:space=\"preserve\">\n    <value>Indien</value>\n  </data>\n  <data name=\"ID\" xml:space=\"preserve\">\n    <value>Indonesien</value>\n  </data>\n  <data name=\"IR\" xml:space=\"preserve\">\n    <value>Iran</value>\n  </data>\n  <data name=\"IQ\" xml:space=\"preserve\">\n    <value>Irak</value>\n  </data>\n  <data name=\"IE\" xml:space=\"preserve\">\n    <value>Irland</value>\n  </data>\n  <data name=\"IM\" xml:space=\"preserve\">\n    <value>Isle of Man</value>\n  </data>\n  <data name=\"IL\" xml:space=\"preserve\">\n    <value>Israel</value>\n  </data>\n  <data name=\"IT\" xml:space=\"preserve\">\n    <value>Italien</value>\n  </data>\n  <data name=\"JM\" xml:space=\"preserve\">\n    <value>Jamaika</value>\n  </data>\n  <data name=\"JP\" xml:space=\"preserve\">\n    <value>Japan</value>\n  </data>\n  <data name=\"JE\" xml:space=\"preserve\">\n    <value>Jersey</value>\n  </data>\n  <data name=\"JO\" xml:space=\"preserve\">\n    <value>Jordanien</value>\n  </data>\n  <data name=\"KZ\" xml:space=\"preserve\">\n    <value>Kasachstan</value>\n  </data>\n  <data name=\"KE\" xml:space=\"preserve\">\n    <value>Kenia</value>\n  </data>\n  <data name=\"KI\" xml:space=\"preserve\">\n    <value>Kiribati</value>\n  </data>\n  <data name=\"KP\" xml:space=\"preserve\">\n    <value>Nordkorea</value>\n  </data>\n  <data name=\"KR\" xml:space=\"preserve\">\n    <value>Südkorea</value>\n  </data>\n  <data name=\"KW\" xml:space=\"preserve\">\n    <value>Kuwait</value>\n  </data>\n  <data name=\"KG\" xml:space=\"preserve\">\n    <value>Kirgisistan</value>\n  </data>\n  <data name=\"LA\" xml:space=\"preserve\">\n    <value>Laos</value>\n  </data>\n  <data name=\"LV\" xml:space=\"preserve\">\n    <value>Lettland</value>\n  </data>\n  <data name=\"LB\" xml:space=\"preserve\">\n    <value>Libanon</value>\n  </data>\n  <data name=\"LS\" xml:space=\"preserve\">\n    <value>Lesotho</value>\n  </data>\n  <data name=\"LR\" xml:space=\"preserve\">\n    <value>Liberia</value>\n  </data>\n  <data name=\"LY\" xml:space=\"preserve\">\n    <value>Libyen</value>\n  </data>\n  <data name=\"LI\" xml:space=\"preserve\">\n    <value>Liechtenstein</value>\n  </data>\n  <data name=\"LT\" xml:space=\"preserve\">\n    <value>Litauen</value>\n  </data>\n  <data name=\"LU\" xml:space=\"preserve\">\n    <value>Luxemburg</value>\n  </data>\n  <data name=\"MO\" xml:space=\"preserve\">\n    <value>Macau</value>\n  </data>\n  <data name=\"MK\" xml:space=\"preserve\">\n    <value>Nordmazedonien</value>\n  </data>\n  <data name=\"MG\" xml:space=\"preserve\">\n    <value>Madagaskar</value>\n  </data>\n  <data name=\"MW\" xml:space=\"preserve\">\n    <value>Malawi</value>\n  </data>\n  <data name=\"MY\" xml:space=\"preserve\">\n    <value>Malaysia</value>\n  </data>\n  <data name=\"MV\" xml:space=\"preserve\">\n    <value>Malediven</value>\n  </data>\n  <data name=\"ML\" xml:space=\"preserve\">\n    <value>Mali</value>\n  </data>\n  <data name=\"MT\" xml:space=\"preserve\">\n    <value>Malta</value>\n  </data>\n  <data name=\"MH\" xml:space=\"preserve\">\n    <value>Marshallinseln</value>\n  </data>\n  <data name=\"MQ\" xml:space=\"preserve\">\n    <value>Martinique</value>\n  </data>\n  <data name=\"MR\" xml:space=\"preserve\">\n    <value>Mauretanien</value>\n  </data>\n  <data name=\"MU\" xml:space=\"preserve\">\n    <value>Mauritius</value>\n  </data>\n  <data name=\"YT\" xml:space=\"preserve\">\n    <value>Mayotte</value>\n  </data>\n  <data name=\"MX\" xml:space=\"preserve\">\n    <value>Mexiko</value>\n  </data>\n  <data name=\"FM\" xml:space=\"preserve\">\n    <value>Mikronesien</value>\n  </data>\n  <data name=\"MD\" xml:space=\"preserve\">\n    <value>Moldawien</value>\n  </data>\n  <data name=\"MC\" xml:space=\"preserve\">\n    <value>Monaco</value>\n  </data>\n  <data name=\"MN\" xml:space=\"preserve\">\n    <value>Mongolei</value>\n  </data>\n  <data name=\"ME\" xml:space=\"preserve\">\n    <value>Montenegro</value>\n  </data>\n  <data name=\"MS\" xml:space=\"preserve\">\n    <value>Montserrat</value>\n  </data>\n  <data name=\"MA\" xml:space=\"preserve\">\n    <value>Marokko</value>\n  </data>\n  <data name=\"MZ\" xml:space=\"preserve\">\n    <value>Mosambik</value>\n  </data>\n  <data name=\"MM\" xml:space=\"preserve\">\n    <value>Myanmar</value>\n  </data>\n  <data name=\"NA\" xml:space=\"preserve\">\n    <value>Namibia</value>\n  </data>\n  <data name=\"NR\" xml:space=\"preserve\">\n    <value>Nauru</value>\n  </data>\n  <data name=\"NP\" xml:space=\"preserve\">\n    <value>Nepal</value>\n  </data>\n  <data name=\"NL\" xml:space=\"preserve\">\n    <value>Niederlande</value>\n  </data>\n  <data name=\"NC\" xml:space=\"preserve\">\n    <value>Neukaledonien</value>\n  </data>\n  <data name=\"NZ\" xml:space=\"preserve\">\n    <value>Neuseeland</value>\n  </data>\n  <data name=\"NI\" xml:space=\"preserve\">\n    <value>Nicaragua</value>\n  </data>\n  <data name=\"NE\" xml:space=\"preserve\">\n    <value>Niger</value>\n  </data>\n  <data name=\"NG\" xml:space=\"preserve\">\n    <value>Nigeria</value>\n  </data>\n  <data name=\"NU\" xml:space=\"preserve\">\n    <value>Niue</value>\n  </data>\n  <data name=\"NF\" xml:space=\"preserve\">\n    <value>Norfolkinsel</value>\n  </data>\n  <data name=\"MP\" xml:space=\"preserve\">\n    <value>Nördliche Marianen</value>\n  </data>\n  <data name=\"NO\" xml:space=\"preserve\">\n    <value>Norwegen</value>\n  </data>\n  <data name=\"OM\" xml:space=\"preserve\">\n    <value>Oman</value>\n  </data>\n  <data name=\"PK\" xml:space=\"preserve\">\n    <value>Pakistan</value>\n  </data>\n  <data name=\"PW\" xml:space=\"preserve\">\n    <value>Palau</value>\n  </data>\n  <data name=\"PS\" xml:space=\"preserve\">\n    <value>Palästina</value>\n  </data>\n  <data name=\"PA\" xml:space=\"preserve\">\n    <value>Panama</value>\n  </data>\n  <data name=\"PG\" xml:space=\"preserve\">\n    <value>Papua-Neuguinea</value>\n  </data>\n  <data name=\"PY\" xml:space=\"preserve\">\n    <value>Paraguay</value>\n  </data>\n  <data name=\"PE\" xml:space=\"preserve\">\n    <value>Peru</value>\n  </data>\n  <data name=\"PH\" xml:space=\"preserve\">\n    <value>Philippinen</value>\n  </data>\n  <data name=\"PN\" xml:space=\"preserve\">\n    <value>Pitcairninseln</value>\n  </data>\n  <data name=\"PL\" xml:space=\"preserve\">\n    <value>Polen</value>\n  </data>\n  <data name=\"PT\" xml:space=\"preserve\">\n    <value>Portugal</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>Puerto Rico</value>\n  </data>\n  <data name=\"QA\" xml:space=\"preserve\">\n    <value>Katar</value>\n  </data>\n  <data name=\"RE\" xml:space=\"preserve\">\n    <value>Réunion</value>\n  </data>\n  <data name=\"RO\" xml:space=\"preserve\">\n    <value>Rumänien</value>\n  </data>\n  <data name=\"RU\" xml:space=\"preserve\">\n    <value>Russland</value>\n  </data>\n  <data name=\"RW\" xml:space=\"preserve\">\n    <value>Ruanda</value>\n  </data>\n  <data name=\"BL\" xml:space=\"preserve\">\n    <value>Saint-Barthélemy</value>\n  </data>\n  <data name=\"SH\" xml:space=\"preserve\">\n    <value>St. Helena, Ascension und Tristan da Cunha</value>\n  </data>\n  <data name=\"KN\" xml:space=\"preserve\">\n    <value>St. Kitts und Nevis</value>\n  </data>\n  <data name=\"LC\" xml:space=\"preserve\">\n    <value>St. Lucia</value>\n  </data>\n  <data name=\"MF\" xml:space=\"preserve\">\n    <value>Saint-Martin</value>\n  </data>\n  <data name=\"PM\" xml:space=\"preserve\">\n    <value>Saint-Pierre und Miquelon</value>\n  </data>\n  <data name=\"VC\" xml:space=\"preserve\">\n    <value>St. Vincent und die Grenadinen</value>\n  </data>\n  <data name=\"WS\" xml:space=\"preserve\">\n    <value>Samoa</value>\n  </data>\n  <data name=\"SM\" xml:space=\"preserve\">\n    <value>San Marino</value>\n  </data>\n  <data name=\"ST\" xml:space=\"preserve\">\n    <value>São Tomé und Príncipe</value>\n  </data>\n  <data name=\"SA\" xml:space=\"preserve\">\n    <value>Saudi-Arabien</value>\n  </data>\n  <data name=\"SN\" xml:space=\"preserve\">\n    <value>Senegal</value>\n  </data>\n  <data name=\"RS\" xml:space=\"preserve\">\n    <value>Serbien</value>\n  </data>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>Seychellen</value>\n  </data>\n  <data name=\"SL\" xml:space=\"preserve\">\n    <value>Sierra Leone</value>\n  </data>\n  <data name=\"SG\" xml:space=\"preserve\">\n    <value>Singapur</value>\n  </data>\n  <data name=\"SX\" xml:space=\"preserve\">\n    <value>Sint Maarten</value>\n  </data>\n  <data name=\"SK\" xml:space=\"preserve\">\n    <value>Slowakei</value>\n  </data>\n  <data name=\"SI\" xml:space=\"preserve\">\n    <value>Slowenien</value>\n  </data>\n  <data name=\"SB\" xml:space=\"preserve\">\n    <value>Salomonen</value>\n  </data>\n  <data name=\"SO\" xml:space=\"preserve\">\n    <value>Somalia</value>\n  </data>\n  <data name=\"ZA\" xml:space=\"preserve\">\n    <value>Südafrika</value>\n  </data>\n  <data name=\"GS\" xml:space=\"preserve\">\n    <value>Südgeorgien und die Südlichen Sandwichinseln</value>\n  </data>\n  <data name=\"SS\" xml:space=\"preserve\">\n    <value>Südsudan</value>\n  </data>\n  <data name=\"ES\" xml:space=\"preserve\">\n    <value>Spanien</value>\n  </data>\n  <data name=\"LK\" xml:space=\"preserve\">\n    <value>Sri Lanka</value>\n  </data>\n  <data name=\"SD\" xml:space=\"preserve\">\n    <value>Sudan</value>\n  </data>\n  <data name=\"SR\" xml:space=\"preserve\">\n    <value>Suriname</value>\n  </data>\n  <data name=\"SJ\" xml:space=\"preserve\">\n    <value>Svalbard und Jan Mayen</value>\n  </data>\n  <data name=\"SZ\" xml:space=\"preserve\">\n    <value>Eswatini</value>\n  </data>\n  <data name=\"SE\" xml:space=\"preserve\">\n    <value>Schweden</value>\n  </data>\n  <data name=\"CH\" xml:space=\"preserve\">\n    <value>Schweiz</value>\n  </data>\n  <data name=\"SY\" xml:space=\"preserve\">\n    <value>Syrien</value>\n  </data>\n  <data name=\"TW\" xml:space=\"preserve\">\n    <value>Taiwan</value>\n  </data>\n  <data name=\"TJ\" xml:space=\"preserve\">\n    <value>Tadschikistan</value>\n  </data>\n  <data name=\"TZ\" xml:space=\"preserve\">\n    <value>Tansania</value>\n  </data>\n  <data name=\"TH\" xml:space=\"preserve\">\n    <value>Thailand</value>\n  </data>\n  <data name=\"TL\" xml:space=\"preserve\">\n    <value>Timor-Leste</value>\n  </data>\n  <data name=\"TG\" xml:space=\"preserve\">\n    <value>Togo</value>\n  </data>\n  <data name=\"TK\" xml:space=\"preserve\">\n    <value>Tokelau</value>\n  </data>\n  <data name=\"TO\" xml:space=\"preserve\">\n    <value>Tonga</value>\n  </data>\n  <data name=\"TT\" xml:space=\"preserve\">\n    <value>Trinidad und Tobago</value>\n  </data>\n  <data name=\"TN\" xml:space=\"preserve\">\n    <value>Tunesien</value>\n  </data>\n  <data name=\"TR\" xml:space=\"preserve\">\n    <value>Türkei</value>\n  </data>\n  <data name=\"TM\" xml:space=\"preserve\">\n    <value>Turkmenistan</value>\n  </data>\n  <data name=\"TC\" xml:space=\"preserve\">\n    <value>Turks- und Caicosinseln</value>\n  </data>\n  <data name=\"TV\" xml:space=\"preserve\">\n    <value>Tuvalu</value>\n  </data>\n  <data name=\"UG\" xml:space=\"preserve\">\n    <value>Uganda</value>\n  </data>\n  <data name=\"UA\" xml:space=\"preserve\">\n    <value>Ukraine</value>\n  </data>\n  <data name=\"AE\" xml:space=\"preserve\">\n    <value>Vereinigte Arabische Emirate</value>\n  </data>\n  <data name=\"GB\" xml:space=\"preserve\">\n    <value>Vereinigtes Königreich</value>\n  </data>\n  <data name=\"US\" xml:space=\"preserve\">\n    <value>Vereinigte Staaten</value>\n  </data>\n  <data name=\"UM\" xml:space=\"preserve\">\n    <value>Amerikanisch-Ozeanien</value>\n  </data>\n  <data name=\"UY\" xml:space=\"preserve\">\n    <value>Uruguay</value>\n  </data>\n  <data name=\"UZ\" xml:space=\"preserve\">\n    <value>Usbekistan</value>\n  </data>\n  <data name=\"VU\" xml:space=\"preserve\">\n    <value>Vanuatu</value>\n  </data>\n  <data name=\"VE\" xml:space=\"preserve\">\n    <value>Venezuela</value>\n  </data>\n  <data name=\"VN\" xml:space=\"preserve\">\n    <value>Vietnam</value>\n  </data>\n  <data name=\"VG\" xml:space=\"preserve\">\n    <value>Britische Jungferninseln</value>\n  </data>\n  <data name=\"VI\" xml:space=\"preserve\">\n    <value>Amerikanische Jungferninseln</value>\n  </data>\n  <data name=\"WF\" xml:space=\"preserve\">\n    <value>Wallis und Futuna</value>\n  </data>\n  <data name=\"EH\" xml:space=\"preserve\">\n    <value>Westsahara</value>\n  </data>\n  <data name=\"YE\" xml:space=\"preserve\">\n    <value>Jemen</value>\n  </data>\n  <data name=\"ZM\" xml:space=\"preserve\">\n    <value>Sambia</value>\n  </data>\n  <data name=\"ZW\" xml:space=\"preserve\">\n    <value>Simbabwe</value>\n  </data>\n  <data name=\"XK\" xml:space=\"preserve\">\n    <value>Kosovo</value>\n  </data>\n  <data name=\"XI\" xml:space=\"preserve\">\n    <value>Nordirland</value>\n  </data>\n  <data name=\"OO\" xml:space=\"preserve\">\n    <value>Campione d'Italia und Livigno</value>\n  </data>\n  <data name=\"EL\" xml:space=\"preserve\">\n    <value>Griechenland EL</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/IdPaese.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,\n      PublicKeyToken=b77a5c561934e089\n    </value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,\n      PublicKeyToken=b77a5c561934e089\n    </value>\n  </resheader>\n  <data name=\"AF\" xml:space=\"preserve\">\n    <value>Afghanistan</value>\n  </data>\n  <data name=\"AX\" xml:space=\"preserve\">\n    <value>Åland Islands</value>\n  </data>\n  <data name=\"AL\" xml:space=\"preserve\">\n    <value>Albania</value>\n  </data>\n  <data name=\"DZ\" xml:space=\"preserve\">\n    <value>Algeria</value>\n  </data>\n  <data name=\"AS\" xml:space=\"preserve\">\n    <value>American Samoa</value>\n  </data>\n  <data name=\"AD\" xml:space=\"preserve\">\n    <value>Andorra</value>\n  </data>\n  <data name=\"AO\" xml:space=\"preserve\">\n    <value>Angola</value>\n  </data>\n  <data name=\"AI\" xml:space=\"preserve\">\n    <value>Anguilla</value>\n  </data>\n  <data name=\"AQ\" xml:space=\"preserve\">\n    <value>Antarctica</value>\n  </data>\n  <data name=\"AG\" xml:space=\"preserve\">\n    <value>Antigua and Barbuda</value>\n  </data>\n  <data name=\"AR\" xml:space=\"preserve\">\n    <value>Argentina</value>\n  </data>\n  <data name=\"AM\" xml:space=\"preserve\">\n    <value>Armenia</value>\n  </data>\n  <data name=\"AW\" xml:space=\"preserve\">\n    <value>Aruba</value>\n  </data>\n  <data name=\"AU\" xml:space=\"preserve\">\n    <value>Australia</value>\n  </data>\n  <data name=\"AT\" xml:space=\"preserve\">\n    <value>Austria</value>\n  </data>\n  <data name=\"AZ\" xml:space=\"preserve\">\n    <value>Azerbaijan</value>\n  </data>\n  <data name=\"BS\" xml:space=\"preserve\">\n    <value>Bahamas</value>\n  </data>\n  <data name=\"BH\" xml:space=\"preserve\">\n    <value>Bahrain</value>\n  </data>\n  <data name=\"BD\" xml:space=\"preserve\">\n    <value>Bangladesh</value>\n  </data>\n  <data name=\"BB\" xml:space=\"preserve\">\n    <value>Barbados</value>\n  </data>\n  <data name=\"BY\" xml:space=\"preserve\">\n    <value>Belarus</value>\n  </data>\n  <data name=\"BE\" xml:space=\"preserve\">\n    <value>Belgium</value>\n  </data>\n  <data name=\"BZ\" xml:space=\"preserve\">\n    <value>Belize</value>\n  </data>\n  <data name=\"BJ\" xml:space=\"preserve\">\n    <value>Benin</value>\n  </data>\n  <data name=\"BM\" xml:space=\"preserve\">\n    <value>Bermuda</value>\n  </data>\n  <data name=\"BT\" xml:space=\"preserve\">\n    <value>Bhutan</value>\n  </data>\n  <data name=\"BO\" xml:space=\"preserve\">\n    <value>Bolivia</value>\n  </data>\n  <data name=\"BQ\" xml:space=\"preserve\">\n    <value>BES Islands</value>\n  </data>\n  <data name=\"BA\" xml:space=\"preserve\">\n    <value>Bosnia and Herzegovina</value>\n  </data>\n  <data name=\"BW\" xml:space=\"preserve\">\n    <value>Botswana</value>\n  </data>\n  <data name=\"BV\" xml:space=\"preserve\">\n    <value>Bouvet Island</value>\n  </data>\n  <data name=\"BR\" xml:space=\"preserve\">\n    <value>Brazil</value>\n  </data>\n  <data name=\"IO\" xml:space=\"preserve\">\n    <value>British Indian Ocean Territory</value>\n  </data>\n  <data name=\"BN\" xml:space=\"preserve\">\n    <value>Brunei</value>\n  </data>\n  <data name=\"BG\" xml:space=\"preserve\">\n    <value>Bulgaria</value>\n  </data>\n  <data name=\"BF\" xml:space=\"preserve\">\n    <value>Burkina Faso</value>\n  </data>\n  <data name=\"BI\" xml:space=\"preserve\">\n    <value>Burundi</value>\n  </data>\n  <data name=\"KH\" xml:space=\"preserve\">\n    <value>Cambodia</value>\n  </data>\n  <data name=\"CM\" xml:space=\"preserve\">\n    <value>Cameroon</value>\n  </data>\n  <data name=\"CA\" xml:space=\"preserve\">\n    <value>Canada</value>\n  </data>\n  <data name=\"CV\" xml:space=\"preserve\">\n    <value>Cape Verde</value>\n  </data>\n  <data name=\"KY\" xml:space=\"preserve\">\n    <value>Cayman Islands</value>\n  </data>\n  <data name=\"CF\" xml:space=\"preserve\">\n    <value>Central African Republic</value>\n  </data>\n  <data name=\"TD\" xml:space=\"preserve\">\n    <value>Chad</value>\n  </data>\n  <data name=\"CL\" xml:space=\"preserve\">\n    <value>Chile</value>\n  </data>\n  <data name=\"CN\" xml:space=\"preserve\">\n    <value>China</value>\n  </data>\n  <data name=\"CX\" xml:space=\"preserve\">\n    <value>Christmas Island</value>\n  </data>\n  <data name=\"CC\" xml:space=\"preserve\">\n    <value>Cocos (Keeling) Islands</value>\n  </data>\n  <data name=\"CO\" xml:space=\"preserve\">\n    <value>Colombia</value>\n  </data>\n  <data name=\"KM\" xml:space=\"preserve\">\n    <value>Comoros</value>\n  </data>\n  <data name=\"CG\" xml:space=\"preserve\">\n    <value>Congo</value>\n  </data>\n  <data name=\"CD\" xml:space=\"preserve\">\n    <value>Democratic Republic of the Congo</value>\n  </data>\n  <data name=\"CK\" xml:space=\"preserve\">\n    <value>Cook Islands</value>\n  </data>\n  <data name=\"CR\" xml:space=\"preserve\">\n    <value>Costa Rica</value>\n  </data>\n  <data name=\"CI\" xml:space=\"preserve\">\n    <value>Ivory Coast</value>\n  </data>\n  <data name=\"HR\" xml:space=\"preserve\">\n    <value>Croatia</value>\n  </data>\n  <data name=\"CU\" xml:space=\"preserve\">\n    <value>Cuba</value>\n  </data>\n  <data name=\"CW\" xml:space=\"preserve\">\n    <value>Curaçao</value>\n  </data>\n  <data name=\"CY\" xml:space=\"preserve\">\n    <value>Cyprus</value>\n  </data>\n  <data name=\"CZ\" xml:space=\"preserve\">\n    <value>Czech Republic</value>\n  </data>\n  <data name=\"DK\" xml:space=\"preserve\">\n    <value>Denmark</value>\n  </data>\n  <data name=\"DJ\" xml:space=\"preserve\">\n    <value>Djibouti</value>\n  </data>\n  <data name=\"DM\" xml:space=\"preserve\">\n    <value>Dominica</value>\n  </data>\n  <data name=\"DO\" xml:space=\"preserve\">\n    <value>Dominican Republic</value>\n  </data>\n  <data name=\"EC\" xml:space=\"preserve\">\n    <value>Ecuador</value>\n  </data>\n  <data name=\"EG\" xml:space=\"preserve\">\n    <value>Egypt</value>\n  </data>\n  <data name=\"SV\" xml:space=\"preserve\">\n    <value>El Salvador</value>\n  </data>\n  <data name=\"GQ\" xml:space=\"preserve\">\n    <value>Equatorial Guinea</value>\n  </data>\n  <data name=\"ER\" xml:space=\"preserve\">\n    <value>Eritrea</value>\n  </data>\n  <data name=\"EE\" xml:space=\"preserve\">\n    <value>Estonia</value>\n  </data>\n  <data name=\"ET\" xml:space=\"preserve\">\n    <value>Ethiopia</value>\n  </data>\n  <data name=\"FK\" xml:space=\"preserve\">\n    <value>Falkland Islands</value>\n  </data>\n  <data name=\"FO\" xml:space=\"preserve\">\n    <value>Faroe Islands</value>\n  </data>\n  <data name=\"FJ\" xml:space=\"preserve\">\n    <value>Fiji</value>\n  </data>\n  <data name=\"FI\" xml:space=\"preserve\">\n    <value>Finland</value>\n  </data>\n  <data name=\"FR\" xml:space=\"preserve\">\n    <value>France</value>\n  </data>\n  <data name=\"GF\" xml:space=\"preserve\">\n    <value>French Guiana</value>\n  </data>\n  <data name=\"PF\" xml:space=\"preserve\">\n    <value>French Polynesia</value>\n  </data>\n  <data name=\"TF\" xml:space=\"preserve\">\n    <value>French Southern Territories</value>\n  </data>\n  <data name=\"GA\" xml:space=\"preserve\">\n    <value>Gabon</value>\n  </data>\n  <data name=\"GM\" xml:space=\"preserve\">\n    <value>Gambia</value>\n  </data>\n  <data name=\"GE\" xml:space=\"preserve\">\n    <value>Georgia</value>\n  </data>\n  <data name=\"DE\" xml:space=\"preserve\">\n    <value>Germany</value>\n  </data>\n  <data name=\"GH\" xml:space=\"preserve\">\n    <value>Ghana</value>\n  </data>\n  <data name=\"GI\" xml:space=\"preserve\">\n    <value>Gibraltar</value>\n  </data>\n  <data name=\"GR\" xml:space=\"preserve\">\n    <value>Greece</value>\n  </data>\n  <data name=\"GL\" xml:space=\"preserve\">\n    <value>Greenland</value>\n  </data>\n  <data name=\"GD\" xml:space=\"preserve\">\n    <value>Grenada</value>\n  </data>\n  <data name=\"GP\" xml:space=\"preserve\">\n    <value>Guadeloupe</value>\n  </data>\n  <data name=\"GU\" xml:space=\"preserve\">\n    <value>Guam</value>\n  </data>\n  <data name=\"GT\" xml:space=\"preserve\">\n    <value>Guatemala</value>\n  </data>\n  <data name=\"GG\" xml:space=\"preserve\">\n    <value>Guernsey</value>\n  </data>\n  <data name=\"GN\" xml:space=\"preserve\">\n    <value>Guinea</value>\n  </data>\n  <data name=\"GW\" xml:space=\"preserve\">\n    <value>Guinea-Bissau</value>\n  </data>\n  <data name=\"GY\" xml:space=\"preserve\">\n    <value>Guyana</value>\n  </data>\n  <data name=\"HT\" xml:space=\"preserve\">\n    <value>Haiti</value>\n  </data>\n  <data name=\"HM\" xml:space=\"preserve\">\n    <value>Heard Island and McDonald Islands</value>\n  </data>\n  <data name=\"VA\" xml:space=\"preserve\">\n    <value>Vatican City</value>\n  </data>\n  <data name=\"HN\" xml:space=\"preserve\">\n    <value>Honduras</value>\n  </data>\n  <data name=\"HK\" xml:space=\"preserve\">\n    <value>Hong Kong</value>\n  </data>\n  <data name=\"HU\" xml:space=\"preserve\">\n    <value>Hungary</value>\n  </data>\n  <data name=\"IS\" xml:space=\"preserve\">\n    <value>Iceland</value>\n  </data>\n  <data name=\"IN\" xml:space=\"preserve\">\n    <value>India</value>\n  </data>\n  <data name=\"ID\" xml:space=\"preserve\">\n    <value>Indonesia</value>\n  </data>\n  <data name=\"IR\" xml:space=\"preserve\">\n    <value>Iran</value>\n  </data>\n  <data name=\"IQ\" xml:space=\"preserve\">\n    <value>Iraq</value>\n  </data>\n  <data name=\"IE\" xml:space=\"preserve\">\n    <value>Ireland</value>\n  </data>\n  <data name=\"IM\" xml:space=\"preserve\">\n    <value>Isle of Man</value>\n  </data>\n  <data name=\"IL\" xml:space=\"preserve\">\n    <value>Israel</value>\n  </data>\n  <data name=\"IT\" xml:space=\"preserve\">\n    <value>Italy</value>\n  </data>\n  <data name=\"JM\" xml:space=\"preserve\">\n    <value>Jamaica</value>\n  </data>\n  <data name=\"JP\" xml:space=\"preserve\">\n    <value>Japan</value>\n  </data>\n  <data name=\"JE\" xml:space=\"preserve\">\n    <value>Jersey</value>\n  </data>\n  <data name=\"JO\" xml:space=\"preserve\">\n    <value>Jordan</value>\n  </data>\n  <data name=\"KZ\" xml:space=\"preserve\">\n    <value>Kazakhstan</value>\n  </data>\n  <data name=\"KE\" xml:space=\"preserve\">\n    <value>Kenya</value>\n  </data>\n  <data name=\"KI\" xml:space=\"preserve\">\n    <value>Kiribati</value>\n  </data>\n  <data name=\"KP\" xml:space=\"preserve\">\n    <value>North Korea</value>\n  </data>\n  <data name=\"KR\" xml:space=\"preserve\">\n    <value>South Korea</value>\n  </data>\n  <data name=\"KW\" xml:space=\"preserve\">\n    <value>Kuwait</value>\n  </data>\n  <data name=\"KG\" xml:space=\"preserve\">\n    <value>Kyrgyzstan</value>\n  </data>\n  <data name=\"LA\" xml:space=\"preserve\">\n    <value>Laos</value>\n  </data>\n  <data name=\"LV\" xml:space=\"preserve\">\n    <value>Latvia</value>\n  </data>\n  <data name=\"LB\" xml:space=\"preserve\">\n    <value>Lebanon</value>\n  </data>\n  <data name=\"CH\" xml:space=\"preserve\">\n    <value>Switzerland</value>\n  </data>\n  <data name=\"BL\" xml:space=\"preserve\">\n    <value>Saint-Barthélemy</value>\n  </data>\n  <data name=\"AE\" xml:space=\"preserve\">\n    <value>United Arab Emirates</value>\n  </data>\n  <data name=\"EH\" xml:space=\"preserve\">\n    <value>West Sahara</value>\n  </data>\n  <data name=\"EL\" xml:space=\"preserve\">\n    <value>Greece EL</value>\n  </data>\n  <data name=\"ES\" xml:space=\"preserve\">\n    <value>Spain</value>\n  </data>\n  <data name=\"FM\" xml:space=\"preserve\">\n    <value>Micronesia</value>\n  </data>\n  <data name=\"GB\" xml:space=\"preserve\">\n    <value>United Kingdom</value>\n  </data>\n  <data name=\"GS\" xml:space=\"preserve\">\n    <value>South Georgia and the South Sandwich Islands</value>\n  </data>\n  <data name=\"LC\" xml:space=\"preserve\">\n    <value>Saint Lucia</value>\n  </data>\n  <data name=\"LI\" xml:space=\"preserve\">\n    <value>Liechtenstein</value>\n  </data>\n  <data name=\"LK\" xml:space=\"preserve\">\n    <value>Sri Lanka</value>\n  </data>\n  <data name=\"LR\" xml:space=\"preserve\">\n    <value>Liberia</value>\n  </data>\n  <data name=\"LS\" xml:space=\"preserve\">\n    <value>Lesotho</value>\n  </data>\n  <data name=\"LT\" xml:space=\"preserve\">\n    <value>Lithuania</value>\n  </data>\n  <data name=\"LU\" xml:space=\"preserve\">\n    <value>Luxemburg</value>\n  </data>\n  <data name=\"LY\" xml:space=\"preserve\">\n    <value>Libya</value>\n  </data>\n  <data name=\"MA\" xml:space=\"preserve\">\n    <value>Morocco</value>\n  </data>\n  <data name=\"MC\" xml:space=\"preserve\">\n    <value>Monaco</value>\n  </data>\n  <data name=\"MD\" xml:space=\"preserve\">\n    <value>Moldova</value>\n  </data>\n  <data name=\"ME\" xml:space=\"preserve\">\n    <value>Montenegro</value>\n  </data>\n  <data name=\"MF\" xml:space=\"preserve\">\n    <value>Saint-Martin</value>\n  </data>\n  <data name=\"MG\" xml:space=\"preserve\">\n    <value>Madagascar</value>\n  </data>\n  <data name=\"MH\" xml:space=\"preserve\">\n    <value>Marshall Isles</value>\n  </data>\n  <data name=\"MK\" xml:space=\"preserve\">\n    <value>Macedonia</value>\n  </data>\n  <data name=\"ML\" xml:space=\"preserve\">\n    <value>Mali</value>\n  </data>\n  <data name=\"MM\" xml:space=\"preserve\">\n    <value>Myanmar</value>\n  </data>\n  <data name=\"MN\" xml:space=\"preserve\">\n    <value>Mongolia</value>\n  </data>\n  <data name=\"MO\" xml:space=\"preserve\">\n    <value>Macau</value>\n  </data>\n  <data name=\"MP\" xml:space=\"preserve\">\n    <value>Northern Mariana Islands</value>\n  </data>\n  <data name=\"MW\" xml:space=\"preserve\">\n    <value>Malawi</value>\n  </data>\n  <data name=\"MY\" xml:space=\"preserve\">\n    <value>Malaysia</value>\n  </data>\n  <data name=\"MV\" xml:space=\"preserve\">\n    <value>Maldives</value>\n  </data>\n  <data name=\"MT\" xml:space=\"preserve\">\n    <value>Malta</value>\n  </data>\n  <data name=\"MQ\" xml:space=\"preserve\">\n    <value>Martinique</value>\n  </data>\n  <data name=\"MR\" xml:space=\"preserve\">\n    <value>Mauritania</value>\n  </data>\n  <data name=\"MU\" xml:space=\"preserve\">\n    <value>Mauritius</value>\n  </data>\n  <data name=\"YT\" xml:space=\"preserve\">\n    <value>Mayotte</value>\n  </data>\n  <data name=\"MX\" xml:space=\"preserve\">\n    <value>Mexico</value>\n  </data>\n  <data name=\"MS\" xml:space=\"preserve\">\n    <value>Montserrat</value>\n  </data>\n  <data name=\"MZ\" xml:space=\"preserve\">\n    <value>Mozambique</value>\n  </data>\n  <data name=\"NA\" xml:space=\"preserve\">\n    <value>Namibia</value>\n  </data>\n  <data name=\"NR\" xml:space=\"preserve\">\n    <value>Nauru</value>\n  </data>\n  <data name=\"NP\" xml:space=\"preserve\">\n    <value>Nepal</value>\n  </data>\n  <data name=\"NL\" xml:space=\"preserve\">\n    <value>Netherlands</value>\n  </data>\n  <data name=\"NC\" xml:space=\"preserve\">\n    <value>New Caledonia</value>\n  </data>\n  <data name=\"NZ\" xml:space=\"preserve\">\n    <value>New Zealand</value>\n  </data>\n  <data name=\"NI\" xml:space=\"preserve\">\n    <value>Nicaragua</value>\n  </data>\n  <data name=\"NE\" xml:space=\"preserve\">\n    <value>Niger</value>\n  </data>\n  <data name=\"NG\" xml:space=\"preserve\">\n    <value>Nigeria</value>\n  </data>\n  <data name=\"NU\" xml:space=\"preserve\">\n    <value>Niue</value>\n  </data>\n  <data name=\"NF\" xml:space=\"preserve\">\n    <value>Norfolk Island</value>\n  </data>\n  <data name=\"NO\" xml:space=\"preserve\">\n    <value>Norway</value>\n  </data>\n  <data name=\"OM\" xml:space=\"preserve\">\n    <value>Oman</value>\n  </data>\n  <data name=\"PK\" xml:space=\"preserve\">\n    <value>Pakistan</value>\n  </data>\n  <data name=\"PW\" xml:space=\"preserve\">\n    <value>Palau</value>\n  </data>\n  <data name=\"PS\" xml:space=\"preserve\">\n    <value>State of Palestine</value>\n  </data>\n  <data name=\"PA\" xml:space=\"preserve\">\n    <value>Panama</value>\n  </data>\n  <data name=\"PG\" xml:space=\"preserve\">\n    <value>Papua New Guinea</value>\n  </data>\n  <data name=\"PY\" xml:space=\"preserve\">\n    <value>Paraguay</value>\n  </data>\n  <data name=\"PE\" xml:space=\"preserve\">\n    <value>Peru</value>\n  </data>\n  <data name=\"PH\" xml:space=\"preserve\">\n    <value>Philippines</value>\n  </data>\n  <data name=\"PN\" xml:space=\"preserve\">\n    <value>Pitcairn Islands</value>\n  </data>\n  <data name=\"PL\" xml:space=\"preserve\">\n    <value>Poland</value>\n  </data>\n  <data name=\"PT\" xml:space=\"preserve\">\n    <value>Portugal</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>Puerto Rico</value>\n  </data>\n  <data name=\"QA\" xml:space=\"preserve\">\n    <value>Qatar</value>\n  </data>\n  <data name=\"RE\" xml:space=\"preserve\">\n    <value>Réunion</value>\n  </data>\n  <data name=\"RO\" xml:space=\"preserve\">\n    <value>Romania</value>\n  </data>\n  <data name=\"RU\" xml:space=\"preserve\">\n    <value>Russia</value>\n  </data>\n  <data name=\"RW\" xml:space=\"preserve\">\n    <value>Rwanda</value>\n  </data>\n  <data name=\"SH\" xml:space=\"preserve\">\n    <value>Saint Helena, Ascension and Tristan da Cunha</value>\n  </data>\n  <data name=\"KN\" xml:space=\"preserve\">\n    <value>Saint Kitts and Nevis</value>\n  </data>\n  <data name=\"PM\" xml:space=\"preserve\">\n    <value>Saint Pierre and Miquelon</value>\n  </data>\n  <data name=\"VC\" xml:space=\"preserve\">\n    <value>Saint Vincent and the Grenadines</value>\n  </data>\n  <data name=\"WS\" xml:space=\"preserve\">\n    <value>Samoa</value>\n  </data>\n  <data name=\"SM\" xml:space=\"preserve\">\n    <value>San Marino</value>\n  </data>\n  <data name=\"ST\" xml:space=\"preserve\">\n    <value>Sao Tome and Principe</value>\n  </data>\n  <data name=\"SA\" xml:space=\"preserve\">\n    <value>Saudi Arabia</value>\n  </data>\n  <data name=\"SN\" xml:space=\"preserve\">\n    <value>Senegal</value>\n  </data>\n  <data name=\"RS\" xml:space=\"preserve\">\n    <value>Serbia</value>\n  </data>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>Seychelles</value>\n  </data>\n  <data name=\"SL\" xml:space=\"preserve\">\n    <value>Sierra Leone</value>\n  </data>\n  <data name=\"SG\" xml:space=\"preserve\">\n    <value>Singapore</value>\n  </data>\n  <data name=\"SX\" xml:space=\"preserve\">\n    <value>Sint Maarten</value>\n  </data>\n  <data name=\"SK\" xml:space=\"preserve\">\n    <value>Slovakia</value>\n  </data>\n  <data name=\"SI\" xml:space=\"preserve\">\n    <value>Slovenia</value>\n  </data>\n  <data name=\"SB\" xml:space=\"preserve\">\n    <value>Solomon Islands</value>\n  </data>\n  <data name=\"SO\" xml:space=\"preserve\">\n    <value>Somalia</value>\n  </data>\n  <data name=\"ZA\" xml:space=\"preserve\">\n    <value>South Africa</value>\n  </data>\n  <data name=\"SS\" xml:space=\"preserve\">\n    <value>South Sudan</value>\n  </data>\n  <data name=\"SD\" xml:space=\"preserve\">\n    <value>Sudan</value>\n  </data>\n  <data name=\"SR\" xml:space=\"preserve\">\n    <value>Suriname</value>\n  </data>\n  <data name=\"SJ\" xml:space=\"preserve\">\n    <value>Svalbard and Jan Mayen</value>\n  </data>\n  <data name=\"SZ\" xml:space=\"preserve\">\n    <value>Eswatini</value>\n  </data>\n  <data name=\"SE\" xml:space=\"preserve\">\n    <value>Sweden</value>\n  </data>\n  <data name=\"SY\" xml:space=\"preserve\">\n    <value>Syria</value>\n  </data>\n  <data name=\"TW\" xml:space=\"preserve\">\n    <value>Taiwan</value>\n  </data>\n  <data name=\"TJ\" xml:space=\"preserve\">\n    <value>Tajikistan</value>\n  </data>\n  <data name=\"TZ\" xml:space=\"preserve\">\n    <value>Tanzania</value>\n  </data>\n  <data name=\"TH\" xml:space=\"preserve\">\n    <value>Thailand</value>\n  </data>\n  <data name=\"TL\" xml:space=\"preserve\">\n    <value>East Timor</value>\n  </data>\n  <data name=\"TG\" xml:space=\"preserve\">\n    <value>Togo</value>\n  </data>\n  <data name=\"TK\" xml:space=\"preserve\">\n    <value>Tokelau</value>\n  </data>\n  <data name=\"TO\" xml:space=\"preserve\">\n    <value>Tonga</value>\n  </data>\n  <data name=\"TT\" xml:space=\"preserve\">\n    <value>Trinidad and Tobago</value>\n  </data>\n  <data name=\"TN\" xml:space=\"preserve\">\n    <value>Tunisia</value>\n  </data>\n  <data name=\"TR\" xml:space=\"preserve\">\n    <value>Turkey</value>\n  </data>\n  <data name=\"TM\" xml:space=\"preserve\">\n    <value>Turkmenistan</value>\n  </data>\n  <data name=\"TC\" xml:space=\"preserve\">\n    <value>Turks and Caicos Islands</value>\n  </data>\n  <data name=\"TV\" xml:space=\"preserve\">\n    <value>Tuvalu</value>\n  </data>\n  <data name=\"UG\" xml:space=\"preserve\">\n    <value>Uganda</value>\n  </data>\n  <data name=\"UA\" xml:space=\"preserve\">\n    <value>Ukraine</value>\n  </data>\n  <data name=\"US\" xml:space=\"preserve\">\n    <value>United States</value>\n  </data>\n  <data name=\"UM\" xml:space=\"preserve\">\n    <value>United States Minor Outlying Islands</value>\n  </data>\n  <data name=\"UY\" xml:space=\"preserve\">\n    <value>Uruguay</value>\n  </data>\n  <data name=\"UZ\" xml:space=\"preserve\">\n    <value>Uzbekistan</value>\n  </data>\n  <data name=\"VU\" xml:space=\"preserve\">\n    <value>Vanuatu</value>\n  </data>\n  <data name=\"VE\" xml:space=\"preserve\">\n    <value>Venezuela</value>\n  </data>\n  <data name=\"VN\" xml:space=\"preserve\">\n    <value>Vietnam</value>\n  </data>\n  <data name=\"VG\" xml:space=\"preserve\">\n    <value>British Virgin Islands</value>\n  </data>\n  <data name=\"VI\" xml:space=\"preserve\">\n    <value>U.S. Virgin Islands</value>\n  </data>\n  <data name=\"WF\" xml:space=\"preserve\">\n    <value>Wallis and Futuna</value>\n  </data>\n  <data name=\"YE\" xml:space=\"preserve\">\n    <value>Yemen</value>\n  </data>\n  <data name=\"ZM\" xml:space=\"preserve\">\n    <value>Zambia</value>\n  </data>\n  <data name=\"ZW\" xml:space=\"preserve\">\n    <value>Zimbabwe</value>\n  </data>\n  <data name=\"XK\" xml:space=\"preserve\">\n    <value>Kosovo</value>\n  </data>\n  <data name=\"XI\" xml:space=\"preserve\">\n    <value>Northern Ireland</value>\n  </data>\n  <data name=\"OO\" xml:space=\"preserve\">\n    <value>Campione d'Italia and Livigno</value>\n  </data> \n</root>"
  },
  {
    "path": "Resources/IdPaese.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"AF\" xml:space=\"preserve\">\n    <value>Afghanistan</value>\n  </data>\n  <data name=\"AX\" xml:space=\"preserve\">\n    <value>Isole Åland</value>\n  </data>\n  <data name=\"AL\" xml:space=\"preserve\">\n    <value>Albania</value>\n  </data>\n  <data name=\"DZ\" xml:space=\"preserve\">\n    <value>Algeria</value>\n  </data>\n  <data name=\"AS\" xml:space=\"preserve\">\n    <value>Samoa Americane</value>\n  </data>\n  <data name=\"AD\" xml:space=\"preserve\">\n    <value>Andorra</value>\n  </data>\n  <data name=\"AO\" xml:space=\"preserve\">\n    <value>Angola</value>\n  </data>\n  <data name=\"AI\" xml:space=\"preserve\">\n    <value>Anguilla</value>\n  </data>\n  <data name=\"AQ\" xml:space=\"preserve\">\n    <value>Antartide</value>\n  </data>\n  <data name=\"AG\" xml:space=\"preserve\">\n    <value>Antigua e Barbuda</value>\n  </data>\n  <data name=\"AR\" xml:space=\"preserve\">\n    <value>Argentina</value>\n  </data>\n  <data name=\"AM\" xml:space=\"preserve\">\n    <value>Armenia</value>\n  </data>\n  <data name=\"AW\" xml:space=\"preserve\">\n    <value>Aruba</value>\n  </data>\n  <data name=\"AU\" xml:space=\"preserve\">\n    <value>Australia</value>\n  </data>\n  <data name=\"AT\" xml:space=\"preserve\">\n    <value>Austria</value>\n  </data>\n  <data name=\"AZ\" xml:space=\"preserve\">\n    <value>Azerbaigian</value>\n  </data>\n  <data name=\"BS\" xml:space=\"preserve\">\n    <value>Bahamas</value>\n  </data>\n  <data name=\"BH\" xml:space=\"preserve\">\n    <value>Bahrein</value>\n  </data>\n  <data name=\"BD\" xml:space=\"preserve\">\n    <value>Bangladesh</value>\n  </data>\n  <data name=\"BB\" xml:space=\"preserve\">\n    <value>Barbados</value>\n  </data>\n  <data name=\"BY\" xml:space=\"preserve\">\n    <value>Bielorussia</value>\n  </data>\n  <data name=\"BE\" xml:space=\"preserve\">\n    <value>Belgio</value>\n  </data>\n  <data name=\"BZ\" xml:space=\"preserve\">\n    <value>Belize</value>\n  </data>\n  <data name=\"BJ\" xml:space=\"preserve\">\n    <value>Benin</value>\n  </data>\n  <data name=\"BM\" xml:space=\"preserve\">\n    <value>Bermuda</value>\n  </data>\n  <data name=\"BT\" xml:space=\"preserve\">\n    <value>Bhutan</value>\n  </data>\n  <data name=\"BO\" xml:space=\"preserve\">\n    <value>Bolivia</value>\n  </data>\n  <data name=\"BQ\" xml:space=\"preserve\">\n    <value>Isole BES</value>\n  </data>\n  <data name=\"BA\" xml:space=\"preserve\">\n    <value>Bosnia ed Erzegovina</value>\n  </data>\n  <data name=\"BW\" xml:space=\"preserve\">\n    <value>Botswana</value>\n  </data>\n  <data name=\"BV\" xml:space=\"preserve\">\n    <value>Isola Bouvet</value>\n  </data>\n  <data name=\"BR\" xml:space=\"preserve\">\n    <value>Brasile</value>\n  </data>\n  <data name=\"IO\" xml:space=\"preserve\">\n    <value>Territori Britannici dell'Oceano Indiano</value>\n  </data>\n  <data name=\"BN\" xml:space=\"preserve\">\n    <value>Brunei</value>\n  </data>\n  <data name=\"BG\" xml:space=\"preserve\">\n    <value>Bulgaria</value>\n  </data>\n  <data name=\"BF\" xml:space=\"preserve\">\n    <value>Burkina Faso</value>\n  </data>\n  <data name=\"BI\" xml:space=\"preserve\">\n    <value>Burundi</value>\n  </data>\n  <data name=\"KH\" xml:space=\"preserve\">\n    <value>Cambogia</value>\n  </data>\n  <data name=\"CM\" xml:space=\"preserve\">\n    <value>Camerun</value>\n  </data>\n  <data name=\"CA\" xml:space=\"preserve\">\n    <value>Canada</value>\n  </data>\n  <data name=\"CV\" xml:space=\"preserve\">\n    <value>Capo Verde</value>\n  </data>\n  <data name=\"KY\" xml:space=\"preserve\">\n    <value>Isole Cayman</value>\n  </data>\n  <data name=\"CF\" xml:space=\"preserve\">\n    <value>Repubblica Centrafricana</value>\n  </data>\n  <data name=\"TD\" xml:space=\"preserve\">\n    <value>Ciad</value>\n  </data>\n  <data name=\"CL\" xml:space=\"preserve\">\n    <value>Cile</value>\n  </data>\n  <data name=\"CN\" xml:space=\"preserve\">\n    <value>Cina</value>\n  </data>\n  <data name=\"CX\" xml:space=\"preserve\">\n    <value>Isola del Natale</value>\n  </data>\n  <data name=\"CC\" xml:space=\"preserve\">\n    <value>Isole Cocos e Keeling</value>\n  </data>\n  <data name=\"CO\" xml:space=\"preserve\">\n    <value>Colombia</value>\n  </data>\n    <data name=\"KM\" xml:space=\"preserve\">\n      <value>Comore</value>\n  </data>\n    <data name=\"CG\" xml:space=\"preserve\">\n      <value>Congo</value>\n  </data>\n    <data name=\"CD\" xml:space=\"preserve\">\n      <value>Repubblica Democratica del Congo</value>\n  </data>\n    <data name=\"CK\" xml:space=\"preserve\">\n      <value>Isole Cook</value>\n  </data>\n    <data name=\"CR\" xml:space=\"preserve\">\n      <value>Costa Rica</value>\n  </data>\n    <data name=\"CI\" xml:space=\"preserve\">\n      <value>Costa d'Avorio</value>\n  </data>\n    <data name=\"HR\" xml:space=\"preserve\">\n      <value>Croazia</value>\n  </data>\n    <data name=\"CU\" xml:space=\"preserve\">\n      <value>Cuba</value>\n  </data>\n    <data name=\"CW\" xml:space=\"preserve\">\n      <value>Curaçao</value>\n  </data>\n    <data name=\"CY\" xml:space=\"preserve\">\n      <value>Cipro</value>\n  </data>\n    <data name=\"CZ\" xml:space=\"preserve\">\n      <value>Cechia</value>\n  </data>\n    <data name=\"DK\" xml:space=\"preserve\">\n      <value>Danimarka</value>\n  </data>\n    <data name=\"DJ\" xml:space=\"preserve\">\n      <value>Gibuti</value>\n  </data>\n    <data name=\"DM\" xml:space=\"preserve\">\n      <value>Dominica</value>\n  </data>\n    <data name=\"DO\" xml:space=\"preserve\">\n      <value>Repubblica Dominicana</value>\n  </data>\n    <data name=\"EC\" xml:space=\"preserve\">\n      <value>Ecuador</value>\n  </data>\n    <data name=\"EG\" xml:space=\"preserve\">\n      <value>Egitto</value>\n  </data>\n    <data name=\"SV\" xml:space=\"preserve\">\n      <value>El Salvador</value>\n  </data>\n    <data name=\"GQ\" xml:space=\"preserve\">\n      <value>Guinea Equatoriale</value>\n  </data>\n    <data name=\"ER\" xml:space=\"preserve\">\n      <value>Eritrea</value>\n  </data>\n    <data name=\"EE\" xml:space=\"preserve\">\n      <value>Estonia</value>\n  </data>\n    <data name=\"ET\" xml:space=\"preserve\">\n      <value>Etiopia</value>\n  </data>\n    <data name=\"FK\" xml:space=\"preserve\">\n      <value>Isole Falkland</value>\n  </data>\n    <data name=\"FO\" xml:space=\"preserve\">\n      <value>Isole Fær Øer</value>\n  </data>\n    <data name=\"FJ\" xml:space=\"preserve\">\n      <value>Figi</value>\n  </data>\n <data name=\"FI\" xml:space=\"preserve\">\n  <value>Finlandia</value>\n  </data>\n  <data name=\"FR\" xml:space=\"preserve\">\n    <value>Francia</value>\n  </data>\n  <data name=\"GF\" xml:space=\"preserve\">\n    <value>Guyana Francese</value>\n  </data>\n  <data name=\"PF\" xml:space=\"preserve\">\n    <value>Polinesia Francese</value>\n  </data>\n  <data name=\"TF\" xml:space=\"preserve\">\n    <value>Territori Francesi del Sud</value>\n  </data>\n  <data name=\"GA\" xml:space=\"preserve\">\n    <value>Gabon</value>\n  </data>\n  <data name=\"GM\" xml:space=\"preserve\">\n    <value>Gambia</value>\n  </data>\n  <data name=\"GE\" xml:space=\"preserve\">\n    <value>Georgia</value>\n  </data>\n  <data name=\"DE\" xml:space=\"preserve\">\n    <value>Germania</value>\n  </data>\n  <data name=\"GH\" xml:space=\"preserve\">\n    <value>Ghana</value>\n  </data>\n  <data name=\"GI\" xml:space=\"preserve\">\n    <value>Gibilterra</value>\n  </data>\n  <data name=\"GR\" xml:space=\"preserve\">\n    <value>Grecia GR</value>\n  </data>\n  <data name=\"GL\" xml:space=\"preserve\">\n    <value>Groenlandia</value>\n  </data>\n  <data name=\"GD\" xml:space=\"preserve\">\n    <value>Grenada</value>\n  </data>\n  <data name=\"GP\" xml:space=\"preserve\">\n    <value>Guadalupa</value>\n  </data>\n  <data name=\"GU\" xml:space=\"preserve\">\n    <value>Guam</value>\n  </data>\n  <data name=\"GT\" xml:space=\"preserve\">\n    <value>Guatemala</value>\n  </data>\n  <data name=\"GG\" xml:space=\"preserve\">\n    <value>Guernsey</value>\n  </data>\n  <data name=\"GN\" xml:space=\"preserve\">\n    <value>Guinea</value>\n  </data>\n  <data name=\"GW\" xml:space=\"preserve\">\n    <value>Guinea-Bissau</value>\n  </data>\n  <data name=\"GY\" xml:space=\"preserve\">\n    <value>Guyana</value>\n  </data>\n  <data name=\"HT\" xml:space=\"preserve\">\n    <value>Haiti</value>\n  </data>\n  <data name=\"HM\" xml:space=\"preserve\">\n    <value>Isole Heard e McDonald</value>\n  </data>\n  <data name=\"VA\" xml:space=\"preserve\">\n    <value>Città del Vaticano</value>\n  </data>\n  <data name=\"HN\" xml:space=\"preserve\">\n    <value>Honduras</value>\n  </data>\n  <data name=\"HK\" xml:space=\"preserve\">\n    <value>Hong Kong</value>\n  </data>\n  <data name=\"HU\" xml:space=\"preserve\">\n    <value>Ungheria</value>\n  </data>\n  <data name=\"IS\" xml:space=\"preserve\">\n    <value>Islanda</value>\n  </data>\n  <data name=\"IN\" xml:space=\"preserve\">\n    <value>India</value>\n  </data>\n  <data name=\"ID\" xml:space=\"preserve\">\n    <value>Indonesia</value>\n  </data>\n  <data name=\"IR\" xml:space=\"preserve\">\n    <value>Iran</value>\n  </data>\n  <data name=\"IQ\" xml:space=\"preserve\">\n    <value>Iraq</value>\n  </data>\n  <data name=\"IE\" xml:space=\"preserve\">\n    <value>Irlanda</value>\n  </data>\n  <data name=\"IM\" xml:space=\"preserve\">\n    <value>Isola di Man</value>\n  </data>\n  <data name=\"IL\" xml:space=\"preserve\">\n    <value>Israele</value>\n  </data>\n  <data name=\"IT\" xml:space=\"preserve\">\n    <value>Italia</value>\n  </data>\n  <data name=\"JM\" xml:space=\"preserve\">\n    <value>Giamaica</value>\n  </data>\n  <data name=\"JP\" xml:space=\"preserve\">\n    <value>Giappone</value>\n  </data>\n  <data name=\"JE\" xml:space=\"preserve\">\n    <value>Jersey</value>\n  </data>\n  <data name=\"JO\" xml:space=\"preserve\">\n    <value>Giordania</value>\n  </data>\n  <data name=\"KZ\" xml:space=\"preserve\">\n    <value>Kazakistan</value>\n  </data>\n  <data name=\"KE\" xml:space=\"preserve\">\n    <value>Kenya</value>\n  </data>\n  <data name=\"KI\" xml:space=\"preserve\">\n    <value>Kiribati</value>\n  </data>\n  <data name=\"KP\" xml:space=\"preserve\">\n    <value>Corea del Nord</value>\n  </data>\n  <data name=\"KR\" xml:space=\"preserve\">\n    <value>Corea del Sud</value>\n  </data>\n  <data name=\"KW\" xml:space=\"preserve\">\n    <value>Kuwait</value>\n  </data>\n  <data name=\"KG\" xml:space=\"preserve\">\n    <value>Kirghizistan</value>\n  </data>\n  <data name=\"LA\" xml:space=\"preserve\">\n    <value>Laos</value>\n  </data>\n  <data name=\"LV\" xml:space=\"preserve\">\n    <value>Lettonia</value>\n  </data>\n  <data name=\"LB\" xml:space=\"preserve\">\n    <value>Libano</value>\n  </data>\n  <data name=\"LS\" xml:space=\"preserve\">\n    <value>Lesotho</value>\n  </data>\n  <data name=\"LR\" xml:space=\"preserve\">\n    <value>Liberia</value>\n  </data>\n  <data name=\"LY\" xml:space=\"preserve\">\n    <value>Libia</value>\n  </data>\n  <data name=\"LI\" xml:space=\"preserve\">\n    <value>Liechtenstein</value>\n  </data>\n  <data name=\"LT\" xml:space=\"preserve\">\n    <value>Lituania</value>\n  </data>\n    <data name=\"LU\" xml:space=\"preserve\">\n      <value>Lussemburgo</value>\n  </data>\n    <data name=\"MO\" xml:space=\"preserve\">\n      <value>Macao</value>\n  </data>\n    <data name=\"MK\" xml:space=\"preserve\">\n      <value>Macedonia</value>\n  </data>\n    <data name=\"MG\" xml:space=\"preserve\">\n      <value>Madagascar</value>\n  </data>\n    <data name=\"MW\" xml:space=\"preserve\">\n      <value>Malawi</value>\n  </data>\n    <data name=\"MY\" xml:space=\"preserve\">\n      <value>Malesia</value>\n  </data>\n    <data name=\"MV\" xml:space=\"preserve\">\n      <value>Maldive</value>\n  </data>\n    <data name=\"ML\" xml:space=\"preserve\">\n      <value>Mali</value>\n  </data>\n    <data name=\"MT\" xml:space=\"preserve\">\n      <value>Malta</value>\n  </data>\n    <data name=\"MH\" xml:space=\"preserve\">\n      <value>Isole Marshall</value>\n  </data>\n    <data name=\"MQ\" xml:space=\"preserve\">\n      <value>Martinica</value>\n  </data>\n    <data name=\"MR\" xml:space=\"preserve\">\n      <value>Mauritania</value>\n  </data>\n    <data name=\"MU\" xml:space=\"preserve\">\n      <value>Mauritius</value>\n  </data>\n    <data name=\"YT\" xml:space=\"preserve\">\n      <value>Mayotte</value>\n  </data>\n    <data name=\"MX\" xml:space=\"preserve\">\n      <value>Messico</value>\n  </data>\n    <data name=\"FM\" xml:space=\"preserve\">\n      <value>Micronesia</value>\n  </data>\n    <data name=\"MD\" xml:space=\"preserve\">\n      <value>Moldavia</value>\n  </data>\n    <data name=\"MC\" xml:space=\"preserve\">\n      <value>Monaco</value>\n  </data>\n    <data name=\"MN\" xml:space=\"preserve\">\n      <value>Mongolia</value>\n  </data>\n    <data name=\"ME\" xml:space=\"preserve\">\n      <value>Montenegro</value>\n  </data>\n    <data name=\"MS\" xml:space=\"preserve\">\n      <value>Montserrat</value>\n  </data>\n    <data name=\"MA\" xml:space=\"preserve\">\n      <value>Marocco</value>\n  </data>\n    <data name=\"MZ\" xml:space=\"preserve\">\n      <value>Mozambico</value>\n  </data>\n    <data name=\"MM\" xml:space=\"preserve\">\n      <value>Birmania</value>\n  </data>\n    <data name=\"NA\" xml:space=\"preserve\">\n      <value>Namibia</value>\n  </data>\n    <data name=\"NR\" xml:space=\"preserve\">\n      <value>Nauru</value>\n  </data>\n    <data name=\"NP\" xml:space=\"preserve\">\n      <value>Nepal</value>\n  </data>\n    <data name=\"NL\" xml:space=\"preserve\">\n      <value>Paesi Bassi</value>\n  </data>\n    <data name=\"NC\" xml:space=\"preserve\">\n      <value>Nuova Caledonia</value>\n  </data>\n    <data name=\"NZ\" xml:space=\"preserve\">\n      <value>Nuova Zelanda</value>\n  </data>\n    <data name=\"NI\" xml:space=\"preserve\">\n      <value>Nicaragua</value>\n  </data>\n    <data name=\"NE\" xml:space=\"preserve\">\n      <value>Niger</value>\n  </data>\n    <data name=\"NG\" xml:space=\"preserve\">\n      <value>Nigeria</value>\n  </data>\n    <data name=\"NU\" xml:space=\"preserve\">\n      <value>Niue</value>\n  </data>\n    <data name=\"NF\" xml:space=\"preserve\">\n      <value>Isole Norfolk</value>\n  </data>\n    <data name=\"MP\" xml:space=\"preserve\">\n      <value>Isole Marianne Settentrionali</value>\n  </data>\n    <data name=\"NO\" xml:space=\"preserve\">\n      <value>Norvegia</value>\n  </data>\n    <data name=\"OM\" xml:space=\"preserve\">\n      <value>Oman</value>\n  </data>\n    <data name=\"PK\" xml:space=\"preserve\">\n      <value>Pakistan</value>\n  </data>\n    <data name=\"PW\" xml:space=\"preserve\">\n      <value>Palau</value>\n  </data>\n    <data name=\"PS\" xml:space=\"preserve\">\n      <value>Stato di Palestina</value>\n  </data>\n    <data name=\"PA\" xml:space=\"preserve\">\n      <value>Panama</value>\n  </data>\n    <data name=\"PG\" xml:space=\"preserve\">\n      <value>Papua Nuova Guinea</value>\n  </data>\n    <data name=\"PY\" xml:space=\"preserve\">\n      <value>Paraguay</value>\n  </data>\n    <data name=\"PE\" xml:space=\"preserve\">\n      <value>Perù</value>\n  </data>\n    <data name=\"PH\" xml:space=\"preserve\">\n      <value>Filippine</value>\n  </data>\n    <data name=\"PN\" xml:space=\"preserve\">\n      <value>Isole Pitcairn</value>\n  </data>\n    <data name=\"PL\" xml:space=\"preserve\">\n      <value>Polonia</value>\n  </data>\n    <data name=\"PT\" xml:space=\"preserve\">\n      <value>Portogallo</value>\n  </data>\n    <data name=\"PR\" xml:space=\"preserve\">\n      <value>Porto Rico</value>\n  </data>\n    <data name=\"QA\" xml:space=\"preserve\">\n      <value>Qatar</value>\n  </data>\n    <data name=\"RE\" xml:space=\"preserve\">\n      <value>Réunion</value>\n  </data>\n    <data name=\"RO\" xml:space=\"preserve\">\n      <value>Romania</value>\n  </data>\n    <data name=\"RU\" xml:space=\"preserve\">\n      <value>Russia</value>\n  </data>\n    <data name=\"RW\" xml:space=\"preserve\">\n      <value>Ruanda</value>\n  </data>\n    <data name=\"BL\" xml:space=\"preserve\">\n      <value>Saint-Barthélemy</value>\n  </data>\n    <data name=\"SH\" xml:space=\"preserve\">\n      <value>Sant'Elena, Isola di Acensione e Tristan da Cunha</value>\n  </data>\n    <data name=\"KN\" xml:space=\"preserve\">\n      <value>Saint Kitts e Nevis</value>\n  </data>\n    <data name=\"LC\" xml:space=\"preserve\">\n      <value>Santa Lucia</value>\n  </data>\n    <data name=\"MF\" xml:space=\"preserve\">\n      <value>Saint-Martin</value>\n  </data>\n    <data name=\"PM\" xml:space=\"preserve\">\n      <value>Saint-Pierre e Miquelon</value>\n  </data>\n    <data name=\"VC\" xml:space=\"preserve\">\n      <value>Saint Vincent e Grenadine</value>\n  </data>\n    <data name=\"WS\" xml:space=\"preserve\">\n      <value>Samoa</value>\n  </data>\n    <data name=\"SM\" xml:space=\"preserve\">\n      <value>San Marino</value>\n  </data>\n  <data name=\"ST\" xml:space=\"preserve\">\n    <value>Sao Tome e Principe</value>\n  </data>\n  <data name=\"SA\" xml:space=\"preserve\">\n    <value>Arabia Saudita</value>\n  </data>\n  <data name=\"SN\" xml:space=\"preserve\">\n    <value>Senegal</value>\n  </data>\n  <data name=\"RS\" xml:space=\"preserve\">\n    <value>Serbia</value>\n  </data>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>Seychelles</value>\n  </data>\n  <data name=\"SL\" xml:space=\"preserve\">\n    <value>Sierra Leone</value>\n  </data>\n  <data name=\"SG\" xml:space=\"preserve\">\n    <value>Singapore</value>\n  </data>\n  <data name=\"SX\" xml:space=\"preserve\">\n    <value>Sint Maarten</value>\n  </data>\n  <data name=\"SK\" xml:space=\"preserve\">\n    <value>Slovacchia</value>\n  </data>\n  <data name=\"SI\" xml:space=\"preserve\">\n    <value>Slovenia</value>\n  </data>\n  <data name=\"SB\" xml:space=\"preserve\">\n    <value>Isole Solomon</value>\n  </data>\n  <data name=\"SO\" xml:space=\"preserve\">\n    <value>Somalia</value>\n  </data>\n  <data name=\"ZA\" xml:space=\"preserve\">\n    <value>Sud Africa</value>\n  </data>\n  <data name=\"GS\" xml:space=\"preserve\">\n    <value>Georgia del Sud e Isole Sandwich meridionali</value>\n  </data>\n  <data name=\"SS\" xml:space=\"preserve\">\n    <value>Sudan del Sud</value>\n  </data>\n  <data name=\"ES\" xml:space=\"preserve\">\n    <value>Spagna</value>\n  </data>\n  <data name=\"LK\" xml:space=\"preserve\">\n    <value>Sri Lanka</value>\n  </data>\n  <data name=\"SD\" xml:space=\"preserve\">\n    <value>Sudan</value>\n  </data>\n  <data name=\"SR\" xml:space=\"preserve\">\n    <value>Suriname</value>\n  </data>\n  <data name=\"SJ\" xml:space=\"preserve\">\n    <value>Svalbard e Jan Mayen</value>\n  </data>\n  <data name=\"SZ\" xml:space=\"preserve\">\n    <value>Swaziland</value>\n  </data>\n  <data name=\"SE\" xml:space=\"preserve\">\n    <value>Svezia</value>\n  </data>\n  <data name=\"CH\" xml:space=\"preserve\">\n    <value>Svizzera</value>\n  </data>\n  <data name=\"SY\" xml:space=\"preserve\">\n    <value>Siria</value>\n  </data>\n  <data name=\"TW\" xml:space=\"preserve\">\n    <value>Taiwan (Repubblica di Cina)</value>\n  </data>\n  <data name=\"TJ\" xml:space=\"preserve\">\n    <value>Tagikistan</value>\n  </data>\n  <data name=\"TZ\" xml:space=\"preserve\">\n    <value>Tanzania</value>\n  </data>\n  <data name=\"TH\" xml:space=\"preserve\">\n    <value>Tailandia</value>\n  </data>\n  <data name=\"TL\" xml:space=\"preserve\">\n    <value>Timor Est</value>\n  </data>\n  <data name=\"TG\" xml:space=\"preserve\">\n    <value>Togo</value>\n  </data>\n  <data name=\"TK\" xml:space=\"preserve\">\n    <value>Tokelau</value>\n  </data>\n  <data name=\"TO\" xml:space=\"preserve\">\n    <value>Tonga</value>\n  </data>\n  <data name=\"TT\" xml:space=\"preserve\">\n    <value>Trinidad e Tobago</value>\n  </data>\n  <data name=\"TN\" xml:space=\"preserve\">\n    <value>Tunisia</value>\n  </data>\n  <data name=\"TR\" xml:space=\"preserve\">\n    <value>Turchia</value>\n  </data>\n  <data name=\"TM\" xml:space=\"preserve\">\n    <value>Turkmenistan</value>\n  </data>\n  <data name=\"TC\" xml:space=\"preserve\">\n    <value>Isole Turks e Caicos</value>\n  </data>\n  <data name=\"TV\" xml:space=\"preserve\">\n    <value>Tuvalu</value>\n  </data>\n  <data name=\"UG\" xml:space=\"preserve\">\n    <value>Uganda</value>\n  </data>\n  <data name=\"UA\" xml:space=\"preserve\">\n    <value>Ucraina</value>\n  </data>\n  <data name=\"AE\" xml:space=\"preserve\">\n    <value>Emirati Arabi Uniti</value>\n  </data>\n  <data name=\"GB\" xml:space=\"preserve\">\n    <value>Regno Unito</value>\n  </data>\n  <data name=\"US\" xml:space=\"preserve\">\n    <value>Stati Uniti</value>\n  </data>\n  <data name=\"UM\" xml:space=\"preserve\">\n    <value>Isole Minor Esterne degli Stati Uniti</value>\n  </data>\n  <data name=\"UY\" xml:space=\"preserve\">\n    <value>Uruguay</value>\n  </data>\n  <data name=\"UZ\" xml:space=\"preserve\">\n    <value>Uzbekistan</value>\n  </data>\n  <data name=\"VU\" xml:space=\"preserve\">\n    <value>Vanuatu</value>\n  </data>\n  <data name=\"VE\" xml:space=\"preserve\">\n    <value>Venezuela</value>\n  </data>\n  <data name=\"VN\" xml:space=\"preserve\">\n    <value>Vietnam</value>\n  </data>\n  <data name=\"VG\" xml:space=\"preserve\">\n    <value>Isole Vergini britanniche</value>\n  </data>\n  <data name=\"VI\" xml:space=\"preserve\">\n    <value>Isole Vergini americane</value>\n  </data>\n  <data name=\"WF\" xml:space=\"preserve\">\n    <value>Wallis e Futuna</value>\n  </data>\n  <data name=\"EH\" xml:space=\"preserve\">\n    <value>Sahara Occidentale</value>\n  </data>\n  <data name=\"YE\" xml:space=\"preserve\">\n    <value>Yemen</value>\n  </data>\n  <data name=\"ZM\" xml:space=\"preserve\">\n    <value>Zambia</value>\n  </data>\n  <data name=\"ZW\" xml:space=\"preserve\">\n    <value>Zimbabwe</value>\n  </data>\n  <data name=\"XK\" xml:space=\"preserve\">\n    <value>Kosovo</value>\n  </data>\n  <data name=\"XI\" xml:space=\"preserve\">\n    <value>Irlanda del Nord</value>\n    <comment> https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/314</comment>\n  </data>\n  <data name=\"OO\" xml:space=\"preserve\">\n    <value>Campione d'Italia e Livigno</value>\n    <comment> https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/370</comment>\n  </data>\n  <data name=\"EL\" xml:space=\"preserve\">\n    <value>Grecia EL</value>\n    <comment> https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/374</comment>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ModalitaPagamento.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class ModalitaPagamento {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal ModalitaPagamento() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.ModalitaPagamento\", typeof(ModalitaPagamento).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to contanti.\n        /// </summary>\n        public static string MP01 {\n            get {\n                return ResourceManager.GetString(\"MP01\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to assegno.\n        /// </summary>\n        public static string MP02 {\n            get {\n                return ResourceManager.GetString(\"MP02\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to assegno circolare.\n        /// </summary>\n        public static string MP03 {\n            get {\n                return ResourceManager.GetString(\"MP03\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to contanti presso Tesoreria.\n        /// </summary>\n        public static string MP04 {\n            get {\n                return ResourceManager.GetString(\"MP04\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to bonifico.\n        /// </summary>\n        public static string MP05 {\n            get {\n                return ResourceManager.GetString(\"MP05\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to vaglia cambiario.\n        /// </summary>\n        public static string MP06 {\n            get {\n                return ResourceManager.GetString(\"MP06\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to bollettino bancario.\n        /// </summary>\n        public static string MP07 {\n            get {\n                return ResourceManager.GetString(\"MP07\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to carta di pagamento.\n        /// </summary>\n        public static string MP08 {\n            get {\n                return ResourceManager.GetString(\"MP08\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to RID.\n        /// </summary>\n        public static string MP09 {\n            get {\n                return ResourceManager.GetString(\"MP09\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to RID utenze.\n        /// </summary>\n        public static string MP10 {\n            get {\n                return ResourceManager.GetString(\"MP10\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to RID veloce.\n        /// </summary>\n        public static string MP11 {\n            get {\n                return ResourceManager.GetString(\"MP11\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to RIBA.\n        /// </summary>\n        public static string MP12 {\n            get {\n                return ResourceManager.GetString(\"MP12\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to MAV.\n        /// </summary>\n        public static string MP13 {\n            get {\n                return ResourceManager.GetString(\"MP13\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to quietanza erario.\n        /// </summary>\n        public static string MP14 {\n            get {\n                return ResourceManager.GetString(\"MP14\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to giroconto su conti di contabilità speciale.\n        /// </summary>\n        public static string MP15 {\n            get {\n                return ResourceManager.GetString(\"MP15\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to domiciliazione bancaria.\n        /// </summary>\n        public static string MP16 {\n            get {\n                return ResourceManager.GetString(\"MP16\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to domiciliazione postale.\n        /// </summary>\n        public static string MP17 {\n            get {\n                return ResourceManager.GetString(\"MP17\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to bollettino di c/c postale.\n        /// </summary>\n        public static string MP18 {\n            get {\n                return ResourceManager.GetString(\"MP18\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to SEPA Direct Debit.\n        /// </summary>\n        public static string MP19 {\n            get {\n                return ResourceManager.GetString(\"MP19\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to SEPA Direct Debit CORE.\n        /// </summary>\n        public static string MP20 {\n            get {\n                return ResourceManager.GetString(\"MP20\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to SEPA Direct Debit B2B.\n        /// </summary>\n        public static string MP21 {\n            get {\n                return ResourceManager.GetString(\"MP21\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trattenuta su somme già riscosse.\n        /// </summary>\n        public static string MP22 {\n            get {\n                return ResourceManager.GetString(\"MP22\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to PagoPA.\n        /// </summary>\n        public static string MP23 {\n            get {\n                return ResourceManager.GetString(\"MP23\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/ModalitaPagamento.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"MP01\" xml:space=\"preserve\">\n    <value>Bargeld</value>\n  </data>\n  <data name=\"MP02\" xml:space=\"preserve\">\n    <value>Scheck</value>\n  </data>\n  <data name=\"MP03\" xml:space=\"preserve\">\n    <value>Zirkularscheck</value>\n  </data>\n  <data name=\"MP04\" xml:space=\"preserve\">\n    <value>Bargeld bei der Staatskasse</value>\n  </data>\n  <data name=\"MP05\" xml:space=\"preserve\">\n    <value>Überweisung</value>\n  </data>\n  <data name=\"MP06\" xml:space=\"preserve\">\n    <value>Schuldschein</value>\n  </data>\n  <data name=\"MP07\" xml:space=\"preserve\">\n    <value>Bankeinzug</value>\n  </data>\n  <data name=\"MP08\" xml:space=\"preserve\">\n    <value>Zahlungskarte</value>\n  </data>\n  <data name=\"MP09\" xml:space=\"preserve\">\n    <value>RID</value>\n  </data>\n  <data name=\"MP10\" xml:space=\"preserve\">\n    <value>RID utenze</value>\n  </data>\n  <data name=\"MP11\" xml:space=\"preserve\">\n    <value>RID veloce</value>\n  </data>\n  <data name=\"MP12\" xml:space=\"preserve\">\n    <value>RIBA</value>\n  </data>\n  <data name=\"MP13\" xml:space=\"preserve\">\n    <value>MAV</value>\n  </data>\n  <data name=\"MP14\" xml:space=\"preserve\">\n    <value>Kassenbeleg</value>\n  </data>\n  <data name=\"MP15\" xml:space=\"preserve\">\n    <value>Umbuchung auf Sonderkonten</value>\n  </data>\n  <data name=\"MP16\" xml:space=\"preserve\">\n    <value>Bankdomizilierung</value>\n  </data>\n  <data name=\"MP17\" xml:space=\"preserve\">\n    <value>Postdomizilierung</value>\n  </data>\n  <data name=\"MP18\" xml:space=\"preserve\">\n    <value>Postüberweisung</value>\n  </data>\n  <data name=\"MP19\" xml:space=\"preserve\">\n    <value>SEPA-Lastschrift</value>\n  </data>\n  <data name=\"MP20\" xml:space=\"preserve\">\n    <value>SEPA-Lastschrift CORE</value>\n  </data>\n  <data name=\"MP21\" xml:space=\"preserve\">\n    <value>SEPA-Lastschrift B2B</value>\n  </data>\n  <data name=\"MP22\" xml:space=\"preserve\">\n    <value>Abzug von bereits eingezogenen Beträgen</value>\n  </data>\n  <data name=\"MP23\" xml:space=\"preserve\">\n    <value>PagoPA</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ModalitaPagamento.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"MP01\" xml:space=\"preserve\">\n    <value>cash</value>\n  </data>\n  <data name=\"MP02\" xml:space=\"preserve\">\n    <value>cheque</value>\n  </data>\n  <data name=\"MP03\" xml:space=\"preserve\">\n    <value>banker's draft</value>\n  </data>\n  <data name=\"MP04\" xml:space=\"preserve\">\n    <value>cash at Treasury</value>\n  </data>\n  <data name=\"MP05\" xml:space=\"preserve\">\n    <value>bank transfer</value>\n  </data>\n  <data name=\"MP06\" xml:space=\"preserve\">\n    <value>money order</value>\n  </data>\n  <data name=\"MP07\" xml:space=\"preserve\">\n    <value>pre-compiled bank payment slip</value>\n  </data>\n  <data name=\"MP08\" xml:space=\"preserve\">\n    <value>payment card</value>\n  </data>\n  <data name=\"MP09\" xml:space=\"preserve\">\n    <value>direct debit</value>\n  </data>\n  <data name=\"MP10\" xml:space=\"preserve\">\n    <value>utilities direct debit</value>\n  </data>\n  <data name=\"MP11\" xml:space=\"preserve\">\n    <value>fast direct debit</value>\n  </data>\n  <data name=\"MP12\" xml:space=\"preserve\">\n    <value>collection order</value>\n  </data>\n  <data name=\"MP13\" xml:space=\"preserve\">\n    <value>payment by notice</value>\n  </data>\n  <data name=\"MP14\" xml:space=\"preserve\">\n    <value>tax office quittance</value>\n  </data>\n  <data name=\"MP15\" xml:space=\"preserve\">\n    <value>transfer on special accounting accounts</value>\n  </data>\n  <data name=\"MP16\" xml:space=\"preserve\">\n    <value>order for direct payment from bank account</value>\n  </data>\n  <data name=\"MP17\" xml:space=\"preserve\">\n    <value>order for direct payment from post office account</value>\n  </data>\n  <data name=\"MP18\" xml:space=\"preserve\">\n    <value>bulletin postal account</value>\n  </data>\n  <data name=\"MP19\" xml:space=\"preserve\">\n    <value>SEPA Direct Debit</value>\n  </data>\n  <data name=\"MP20\" xml:space=\"preserve\">\n    <value>SEPA Direct Debit CORE</value>\n  </data>\n  <data name=\"MP21\" xml:space=\"preserve\">\n    <value>SEPA Direct Debit B2B</value>\n  </data>\n  <data name=\"MP22\" xml:space=\"preserve\">\n    <value>Deduction on sums already collected</value>\n  </data>\n  <data name=\"MP23\" xml:space=\"preserve\">\n    <value>PagoPA</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ModalitaPagamento.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"MP01\" xml:space=\"preserve\">\n    <value>contanti</value>\n  </data>\n  <data name=\"MP02\" xml:space=\"preserve\">\n    <value>assegno</value>\n  </data>\n  <data name=\"MP03\" xml:space=\"preserve\">\n    <value>assegno circolare</value>\n  </data>\n  <data name=\"MP04\" xml:space=\"preserve\">\n    <value>contanti presso Tesoreria</value>\n  </data>\n  <data name=\"MP05\" xml:space=\"preserve\">\n    <value>bonifico</value>\n  </data>\n  <data name=\"MP06\" xml:space=\"preserve\">\n    <value>vaglia cambiario</value>\n  </data>\n  <data name=\"MP07\" xml:space=\"preserve\">\n    <value>bollettino bancario</value>\n  </data>\n  <data name=\"MP08\" xml:space=\"preserve\">\n    <value>carta di pagamento</value>\n  </data>\n  <data name=\"MP09\" xml:space=\"preserve\">\n    <value>RID</value>\n  </data>\n  <data name=\"MP10\" xml:space=\"preserve\">\n    <value>RID utenze</value>\n  </data>\n  <data name=\"MP11\" xml:space=\"preserve\">\n    <value>RID veloce</value>\n  </data>\n  <data name=\"MP12\" xml:space=\"preserve\">\n    <value>RIBA</value>\n  </data>\n  <data name=\"MP13\" xml:space=\"preserve\">\n    <value>MAV</value>\n  </data>\n  <data name=\"MP14\" xml:space=\"preserve\">\n    <value>quietanza erario</value>\n  </data>\n  <data name=\"MP15\" xml:space=\"preserve\">\n    <value>giroconto su conti di contabilità speciale</value>\n  </data>\n  <data name=\"MP16\" xml:space=\"preserve\">\n    <value>domiciliazione bancaria</value>\n  </data>\n  <data name=\"MP17\" xml:space=\"preserve\">\n    <value>domiciliazione postale</value>\n  </data>\n  <data name=\"MP18\" xml:space=\"preserve\">\n    <value>bollettino di c/c postale</value>\n  </data>\n  <data name=\"MP19\" xml:space=\"preserve\">\n    <value>SEPA Direct Debit</value>\n  </data>\n  <data name=\"MP20\" xml:space=\"preserve\">\n    <value>SEPA Direct Debit CORE</value>\n  </data>\n  <data name=\"MP21\" xml:space=\"preserve\">\n    <value>SEPA Direct Debit B2B</value>\n  </data>\n  <data name=\"MP22\" xml:space=\"preserve\">\n    <value>Trattenuta su somme già riscosse</value>\n  </data>\n  <data name=\"MP23\" xml:space=\"preserve\">\n    <value>PagoPA</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Natura.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class Natura {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal Natura() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.Natura\", typeof(Natura).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to escluse ex art. 15.\n        /// </summary>\n        public static string N1 {\n            get {\n                return ResourceManager.GetString(\"N1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72.\n        /// </summary>\n        public static string N2_1 {\n            get {\n                return ResourceManager.GetString(\"N2.1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non soggette - altri casi.\n        /// </summary>\n        public static string N2_2 {\n            get {\n                return ResourceManager.GetString(\"N2.2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - esportazioni.\n        /// </summary>\n        public static string N3_1 {\n            get {\n                return ResourceManager.GetString(\"N3.1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - cessioni intracomunitarie.\n        /// </summary>\n        public static string N3_2 {\n            get {\n                return ResourceManager.GetString(\"N3.2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - cessioni verso San Marino.\n        /// </summary>\n        public static string N3_3 {\n            get {\n                return ResourceManager.GetString(\"N3.3\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - operazioni assimilate alle cessioni all&apos;esportazione.\n        /// </summary>\n        public static string N3_4 {\n            get {\n                return ResourceManager.GetString(\"N3.4\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - a seguito di dichiarazioni d&apos;intento.\n        /// </summary>\n        public static string N3_5 {\n            get {\n                return ResourceManager.GetString(\"N3.5\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - altre operazioni che non concorrono alla formazione del plafond.\n        /// </summary>\n        public static string N3_6 {\n            get {\n                return ResourceManager.GetString(\"N3.6\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to esenti.\n        /// </summary>\n        public static string N4 {\n            get {\n                return ResourceManager.GetString(\"N4\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to regime del margine / IVA non esposta in fattura.\n        /// </summary>\n        public static string N5 {\n            get {\n                return ResourceManager.GetString(\"N5\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - cessione di rottami e altri materiali di recupero.\n        /// </summary>\n        public static string N6_1 {\n            get {\n                return ResourceManager.GetString(\"N6.1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - inversione contabile – cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO.\n        /// </summary>\n        public static string N6_2 {\n            get {\n                return ResourceManager.GetString(\"N6.2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - subappalto nel settore edile.\n        /// </summary>\n        public static string N6_3 {\n            get {\n                return ResourceManager.GetString(\"N6.3\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - cessione di fabbricati.\n        /// </summary>\n        public static string N6_4 {\n            get {\n                return ResourceManager.GetString(\"N6.4\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - cessione di telefoni cellulari.\n        /// </summary>\n        public static string N6_5 {\n            get {\n                return ResourceManager.GetString(\"N6.5\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - cessione di prodotti elettronici.\n        /// </summary>\n        public static string N6_6 {\n            get {\n                return ResourceManager.GetString(\"N6.6\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - prestazioni comparto edile e settori connessi.\n        /// </summary>\n        public static string N6_7 {\n            get {\n                return ResourceManager.GetString(\"N6.7\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - operazioni settore energetico.\n        /// </summary>\n        public static string N6_8 {\n            get {\n                return ResourceManager.GetString(\"N6.8\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to inversione contabile - altri casi.\n        /// </summary>\n        public static string N6_9 {\n            get {\n                return ResourceManager.GetString(\"N6.9\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies, comma 1 lett. a, b, art. 74-sexies DPR 633/72).\n        /// </summary>\n        public static string N7 {\n            get {\n                return ResourceManager.GetString(\"N7\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/Natura.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"N1\" xml:space=\"preserve\">\n    <value>ausgeschlossen gemäß Art. 15</value>\n  </data>\n  <data name=\"N2.1\" xml:space=\"preserve\">\n    <value>nicht der Mehrwertsteuer unterworfen gemäß den Artikeln 7 bis 7-septies des D.P.R. Nr. 633/72</value>\n  </data>\n  <data name=\"N2.2\" xml:space=\"preserve\">\n    <value>nicht unterworfen - andere Fälle</value>\n  </data>\n  <data name=\"N3.1\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - Exporte</value>\n  </data>\n  <data name=\"N3.2\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - innergemeinschaftliche Lieferungen</value>\n  </data>\n  <data name=\"N3.3\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - Verkauf nach San Marino</value>\n  </data>\n  <data name=\"N3.4\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - den Ausfuhrlieferungen gleichgestellte Vorgänge</value>\n  </data>\n  <data name=\"N3.5\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - aufgrund von Absichtserklärungen</value>\n  </data>\n  <data name=\"N3.6\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - andere Vorgänge, die nicht zur Bildung des Plafonds beitragen</value>\n  </data>\n  <data name=\"N4\" xml:space=\"preserve\">\n    <value>steuerfrei</value>\n  </data>\n  <data name=\"N5\" xml:space=\"preserve\">\n    <value>Margenregelung / Mehrwertsteuer nicht in der Rechnung ausgewiesen</value>\n  </data>\n  <data name=\"N6.1\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Lieferung von Schrott und anderen wiederverwertbaren Materialien</value>\n  </data>\n  <data name=\"N6.2\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Lieferung von Gold und Silber gemäß Gesetz 7/2000 sowie von gebrauchten Schmuckwaren an OPO</value>\n  </data>\n  <data name=\"N6.3\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Subunternehmer im Baugewerbe</value>\n  </data>\n  <data name=\"N6.4\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Verkauf von Gebäuden</value>\n  </data>\n  <data name=\"N6.5\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Verkauf von Mobiltelefonen</value>\n  </data>\n  <data name=\"N6.6\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Verkauf von Elektronikprodukten</value>\n  </data>\n  <data name=\"N6.7\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Dienstleistungen im Baugewerbe und verwandten Sektoren</value>\n  </data>\n  <data name=\"N6.8\" xml:space=\"preserve\">\n    <value>Reverse-Charge - Operationen im Energiesektor</value>\n  </data>\n  <data name=\"N6.9\" xml:space=\"preserve\">\n    <value>Reverse-Charge - andere Fälle</value>\n  </data>\n  <data name=\"N7\" xml:space=\"preserve\">\n    <value>Mehrwertsteuer in einem anderen EU-Land entrichtet (Erbringung von Telekommunikations-, Rundfunk- und elektronischen Dienstleistungen gemäß Art. 7-octies, Absatz 1 Buchstabe a, b, Art. 74-sexies DPR 633/72)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Natura.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"N1\" xml:space=\"preserve\">\n    <value>excluded pursuant to Art. 15</value>\n  </data>\n  <data name=\"N2.1\" xml:space=\"preserve\">\n    <value>not subject to VAT under the articles from 7 to 7-septies of DPR 633/72</value>\n  </data>\n  <data name=\"N2.2\" xml:space=\"preserve\">\n    <value>not subject – other cases</value>\n  </data>\n  <data name=\"N3.1\" xml:space=\"preserve\">\n    <value>not taxable - exportations</value>\n  </data>\n  <data name=\"N3.2\" xml:space=\"preserve\">\n    <value>not taxable - intra Community transfers</value>\n  </data>\n  <data name=\"N3.3\" xml:space=\"preserve\">\n    <value>not taxable - transfers to San Marino</value>\n  </data>\n  <data name=\"N3.4\" xml:space=\"preserve\">\n    <value>not taxable - transactions treated as export supplies</value>\n  </data>\n  <data name=\"N3.5\" xml:space=\"preserve\">\n    <value>not taxable - for declaration of intent</value>\n  </data>\n  <data name=\"N3.6\" xml:space=\"preserve\">\n    <value>not taxable – other transactions that don’t contribute to the determination of ceiling</value>\n  </data>\n  <data name=\"N4\" xml:space=\"preserve\">\n    <value>exempt</value>\n  </data>\n  <data name=\"N5\" xml:space=\"preserve\">\n    <value>margin regime / VAT not exposed on invoice</value>\n  </data>\n  <data name=\"N6.1\" xml:space=\"preserve\">\n    <value>reverse charge - transfer of scrap and of other recyclable materials</value>\n  </data>\n  <data name=\"N6.2\" xml:space=\"preserve\">\n    <value>reverse charge - transfer of gold and silver in accordance with law 7/2000 as well as used jewelry to OPO</value>\n  </data>\n  <data name=\"N6.3\" xml:space=\"preserve\">\n    <value>reverse charge - subcontracting in the construction sector</value>\n  </data>\n  <data name=\"N6.4\" xml:space=\"preserve\">\n    <value>reverse charge - transfer of buildings</value>\n  </data>\n  <data name=\"N6.5\" xml:space=\"preserve\">\n    <value>reverse charge - transfer of mobile phones</value>\n  </data>\n  <data name=\"N6.6\" xml:space=\"preserve\">\n    <value>reverse charge - transfer of electronic products</value>\n  </data>\n  <data name=\"N6.7\" xml:space=\"preserve\">\n    <value>reverse charge - provisions in the construction and related sectors</value>\n  </data>\n  <data name=\"N6.8\" xml:space=\"preserve\">\n    <value>reverse charge - transactions in the energy sector</value>\n  </data>\n  <data name=\"N6.9\" xml:space=\"preserve\">\n    <value>reverse charge - other cases</value>\n  </data>\n  <data name=\"N7\" xml:space=\"preserve\">\n    <value>VAT paid in another EU country  (distance sales pursuant to article 40 paragraphs 3 and 4 and article 41 paragraph 1 letter b, DL 331/93; provision of telecommunications, radio and television broadcasting and electronic services pursuant to article 7-octies, paragraph 1 letter a, b and article 74-sexies, DPR 633/72)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Natura.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n        \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"N1\" xml:space=\"preserve\">\n    <value>escluse ex art. 15</value>\n  </data>\n  <data name=\"N2.1\" xml:space=\"preserve\">\n    <value>non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72</value>\n  </data>\n  <data name=\"N2.2\" xml:space=\"preserve\">\n    <value>non soggette - altri casi</value>\n  </data>\n  <data name=\"N3.1\" xml:space=\"preserve\">\n    <value>non imponibili - esportazioni</value>\n  </data>\n  <data name=\"N3.2\" xml:space=\"preserve\">\n    <value>non imponibili - cessioni intracomunitarie</value>\n  </data>\n  <data name=\"N3.3\" xml:space=\"preserve\">\n    <value>non imponibili - cessioni verso San Marino</value>\n  </data>\n  <data name=\"N3.4\" xml:space=\"preserve\">\n    <value>non imponibili - operazioni assimilate alle cessioni all'esportazione</value>\n  </data>\n  <data name=\"N3.5\" xml:space=\"preserve\">\n    <value>non imponibili - a seguito di dichiarazioni d'intento</value>\n  </data>\n  <data name=\"N3.6\" xml:space=\"preserve\">\n    <value>non imponibili - altre operazioni che non concorrono alla formazione del plafond</value>\n  </data>\n  <data name=\"N4\" xml:space=\"preserve\">\n    <value>esenti</value>\n  </data>\n  <data name=\"N5\" xml:space=\"preserve\">\n    <value>regime del margine / IVA non esposta in fattura</value>\n  </data>\n  <data name=\"N6.1\" xml:space=\"preserve\">\n    <value>inversione contabile - cessione di rottami e altri materiali di recupero</value>\n  </data>\n  <data name=\"N6.2\" xml:space=\"preserve\">\n    <value>inversione contabile - inversione contabile – cessione di oro e argento ai sensi della legge 7/2000 nonché di oreficeria usata ad OPO</value>\n  </data>\n  <data name=\"N6.3\" xml:space=\"preserve\">\n    <value>inversione contabile - subappalto nel settore edile</value>\n  </data>\n  <data name=\"N6.4\" xml:space=\"preserve\">\n    <value>inversione contabile - cessione di fabbricati</value>\n  </data>\n  <data name=\"N6.5\" xml:space=\"preserve\">\n    <value>inversione contabile - cessione di telefoni cellulari</value>\n  </data>\n  <data name=\"N6.6\" xml:space=\"preserve\">\n    <value>inversione contabile - cessione di prodotti elettronici</value>\n  </data>\n  <data name=\"N6.7\" xml:space=\"preserve\">\n    <value>inversione contabile - prestazioni comparto edile e settori connessi</value>\n  </data>\n  <data name=\"N6.8\" xml:space=\"preserve\">\n    <value>inversione contabile - operazioni settore energetico</value>\n  </data>\n  <data name=\"N6.9\" xml:space=\"preserve\">\n    <value>inversione contabile - altri casi</value>\n  </data>\n  <data name=\"N7\" xml:space=\"preserve\">\n    <value>IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies, comma 1 lett. a, b, art. 74-sexies DPR 633/72)</value>\n  </data> \n</root>"
  },
  {
    "path": "Resources/NaturaSemplificata.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class NaturaSemplificata {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal NaturaSemplificata() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.NaturaSemplificata\", typeof(NaturaSemplificata).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to escluse ex art. 15.\n        /// </summary>\n        public static string N1 {\n            get {\n                return ResourceManager.GetString(\"N1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non soggette.\n        /// </summary>\n        public static string N2 {\n            get {\n                return ResourceManager.GetString(\"N2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del D.P.R. n. 633/72.\n        /// </summary>\n        public static string N2_1 {\n            get {\n                return ResourceManager.GetString(\"N2.1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non soggette - altri casi.\n        /// </summary>\n        public static string N2_2 {\n            get {\n                return ResourceManager.GetString(\"N2.2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili.\n        /// </summary>\n        public static string N3 {\n            get {\n                return ResourceManager.GetString(\"N3\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - esportazioni.\n        /// </summary>\n        public static string N3_1 {\n            get {\n                return ResourceManager.GetString(\"N3.1\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - cessioni intracomunitarie.\n        /// </summary>\n        public static string N3_2 {\n            get {\n                return ResourceManager.GetString(\"N3.2\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - cessioni verso San Marino.\n        /// </summary>\n        public static string N3_3 {\n            get {\n                return ResourceManager.GetString(\"N3.3\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - operazioni assimilate alle cessioni all&apos;esportazione.\n        /// </summary>\n        public static string N3_4 {\n            get {\n                return ResourceManager.GetString(\"N3.4\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - a seguito di dichiarazioni d&apos;intento.\n        /// </summary>\n        public static string N3_5 {\n            get {\n                return ResourceManager.GetString(\"N3.5\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to non imponibili - altre operazioni che non concorrono alla formazione del plafond.\n        /// </summary>\n        public static string N3_6 {\n            get {\n                return ResourceManager.GetString(\"N3.6\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to esenti.\n        /// </summary>\n        public static string N4 {\n            get {\n                return ResourceManager.GetString(\"N4\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to regime del margine / IVA non esposta in fattura.\n        /// </summary>\n        public static string N5 {\n            get {\n                return ResourceManager.GetString(\"N5\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/NaturaSemplificata.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"N1\" xml:space=\"preserve\">\n    <value>ausgeschlossen gemäß Art. 15</value>\n  </data>\n  <data name=\"N2\" xml:space=\"preserve\">\n    <value>nicht unterworfen</value>\n  </data>\n  <data name=\"N2.1\" xml:space=\"preserve\">\n    <value>nicht der Mehrwertsteuer unterworfen gemäß den Artikeln 7 bis 7-septies des D.P.R. Nr. 633/72</value>\n  </data>\n  <data name=\"N2.2\" xml:space=\"preserve\">\n    <value>nicht unterworfen - andere Fälle</value>\n  </data>\n  <data name=\"N3\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig</value>\n  </data>\n  <data name=\"N3.1\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - Exporte</value>\n  </data>\n  <data name=\"N3.2\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - innergemeinschaftliche Lieferungen</value>\n  </data>\n  <data name=\"N3.3\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - Verkauf nach San Marino</value>\n  </data>\n  <data name=\"N3.4\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - den Ausfuhrlieferungen gleichgestellte Vorgänge</value>\n  </data>\n  <data name=\"N3.5\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - aufgrund von Absichtserklärungen</value>\n  </data>\n  <data name=\"N3.6\" xml:space=\"preserve\">\n    <value>nicht steuerpflichtig - andere Vorgänge, die nicht zur Bildung des Plafonds beitragen</value>\n  </data>\n  <data name=\"N4\" xml:space=\"preserve\">\n    <value>steuerfrei</value>\n  </data>\n  <data name=\"N5\" xml:space=\"preserve\">\n    <value>Margenregelung / Mehrwertsteuer nicht in der Rechnung ausgewiesen</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/NaturaSemplificata.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"N1\" xml:space=\"preserve\">\n    <value>excluded under art. 15</value>\n  </data>\n  <data name=\"N2\" xml:space=\"preserve\">\n    <value>not subject</value>\n  </data>\n  <data name=\"N2.1\" xml:space=\"preserve\">\n    <value>not subject to VAT pursuant to articles 7 to 7-septies of Presidential Decree no. 633/72</value>\n  </data>\n  <data name=\"N2.2\" xml:space=\"preserve\">\n    <value>not subject - other cases</value>\n  </data>\n  <data name=\"N3\" xml:space=\"preserve\">\n    <value>non-taxable</value>\n  </data>\n  <data name=\"N3.1\" xml:space=\"preserve\">\n    <value>non-taxable - exports</value>\n  </data>\n  <data name=\"N3.2\" xml:space=\"preserve\">\n    <value>non-taxable - intra-Community supplies</value>\n  </data>\n  <data name=\"N3.3\" xml:space=\"preserve\">\n    <value>non-taxable - supplies to San Marino</value>\n  </data>\n  <data name=\"N3.4\" xml:space=\"preserve\">\n    <value>non-taxable - operations similar to export sales</value>\n  </data>\n  <data name=\"N3.5\" xml:space=\"preserve\">\n    <value>non-taxable - following intent declarations</value>\n  </data>\n  <data name=\"N3.6\" xml:space=\"preserve\">\n    <value>non-taxable - other operations not contributing to the plafond</value>\n  </data>\n  <data name=\"N4\" xml:space=\"preserve\">\n    <value>exempt</value>\n  </data>\n  <data name=\"N5\" xml:space=\"preserve\">\n    <value>margin scheme / VAT not shown on invoice</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/NaturaSemplificata.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>  \n  <data name=\"N1\" xml:space=\"preserve\">\n    <value>escluse ex art. 15</value>\n  </data>\n  <data name=\"N2\" xml:space=\"preserve\">\n    <value>non soggette</value>\n  </data>\n  <data name=\"N2.1\" xml:space=\"preserve\">\n    <value>non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del D.P.R. n. 633/72</value>\n  </data>\n  <data name=\"N2.2\" xml:space=\"preserve\">\n    <value>non soggette - altri casi</value>\n  </data>\n  <data name=\"N3\" xml:space=\"preserve\">\n    <value>non imponibili</value>\n  </data>\n  <data name=\"N3.1\" xml:space=\"preserve\">\n    <value>non imponibili - esportazioni</value>\n  </data>\n  <data name=\"N3.2\" xml:space=\"preserve\">\n    <value>non imponibili - cessioni intracomunitarie</value>\n  </data>\n  <data name=\"N3.3\" xml:space=\"preserve\">\n    <value>non imponibili - cessioni verso San Marino</value>\n  </data>\n  <data name=\"N3.4\" xml:space=\"preserve\">\n    <value>non imponibili - operazioni assimilate alle cessioni all'esportazione</value>\n  </data>\n  <data name=\"N3.5\" xml:space=\"preserve\">\n    <value>non imponibili - a seguito di dichiarazioni d'intento</value>\n  </data>\n  <data name=\"N3.6\" xml:space=\"preserve\">\n    <value>non imponibili - altre operazioni che non concorrono alla formazione del plafond</value>\n  </data>\n  <data name=\"N4\" xml:space=\"preserve\">\n    <value>esenti</value>\n  </data>\n  <data name=\"N5\" xml:space=\"preserve\">\n    <value>regime del margine / IVA non esposta in fattura</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Provincia.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class Provincia {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal Provincia() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.Provincia\", typeof(Provincia).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Agrigento.\n        /// </summary>\n        public static string AG {\n            get {\n                return ResourceManager.GetString(\"AG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Alessandria.\n        /// </summary>\n        public static string AL {\n            get {\n                return ResourceManager.GetString(\"AL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ancona.\n        /// </summary>\n        public static string AN {\n            get {\n                return ResourceManager.GetString(\"AN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Aosta.\n        /// </summary>\n        public static string AO {\n            get {\n                return ResourceManager.GetString(\"AO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ascoli-Piceno.\n        /// </summary>\n        public static string AP {\n            get {\n                return ResourceManager.GetString(\"AP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to L&apos;Aquila.\n        /// </summary>\n        public static string AQ {\n            get {\n                return ResourceManager.GetString(\"AQ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Arezzo.\n        /// </summary>\n        public static string AR {\n            get {\n                return ResourceManager.GetString(\"AR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Asti.\n        /// </summary>\n        public static string AT {\n            get {\n                return ResourceManager.GetString(\"AT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Avellino.\n        /// </summary>\n        public static string AV {\n            get {\n                return ResourceManager.GetString(\"AV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bari.\n        /// </summary>\n        public static string BA {\n            get {\n                return ResourceManager.GetString(\"BA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bergamo.\n        /// </summary>\n        public static string BG {\n            get {\n                return ResourceManager.GetString(\"BG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Biella.\n        /// </summary>\n        public static string BI {\n            get {\n                return ResourceManager.GetString(\"BI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Belluno.\n        /// </summary>\n        public static string BL {\n            get {\n                return ResourceManager.GetString(\"BL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Benevento.\n        /// </summary>\n        public static string BN {\n            get {\n                return ResourceManager.GetString(\"BN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bologna.\n        /// </summary>\n        public static string BO {\n            get {\n                return ResourceManager.GetString(\"BO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Brindisi.\n        /// </summary>\n        public static string BR {\n            get {\n                return ResourceManager.GetString(\"BR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Brescia.\n        /// </summary>\n        public static string BS {\n            get {\n                return ResourceManager.GetString(\"BS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Barletta-Andria-Trani.\n        /// </summary>\n        public static string BT {\n            get {\n                return ResourceManager.GetString(\"BT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Bolzano.\n        /// </summary>\n        public static string BZ {\n            get {\n                return ResourceManager.GetString(\"BZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cagliari.\n        /// </summary>\n        public static string CA {\n            get {\n                return ResourceManager.GetString(\"CA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Campobasso.\n        /// </summary>\n        public static string CB {\n            get {\n                return ResourceManager.GetString(\"CB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Caserta.\n        /// </summary>\n        public static string CE {\n            get {\n                return ResourceManager.GetString(\"CE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Chieti.\n        /// </summary>\n        public static string CH {\n            get {\n                return ResourceManager.GetString(\"CH\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Carbonia Iglesias.\n        /// </summary>\n        public static string CI {\n            get {\n                return ResourceManager.GetString(\"CI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Caltanissetta.\n        /// </summary>\n        public static string CL {\n            get {\n                return ResourceManager.GetString(\"CL\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cuneo.\n        /// </summary>\n        public static string CN {\n            get {\n                return ResourceManager.GetString(\"CN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Como.\n        /// </summary>\n        public static string CO {\n            get {\n                return ResourceManager.GetString(\"CO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cremona.\n        /// </summary>\n        public static string CR {\n            get {\n                return ResourceManager.GetString(\"CR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cosenza.\n        /// </summary>\n        public static string CS {\n            get {\n                return ResourceManager.GetString(\"CS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Catania.\n        /// </summary>\n        public static string CT {\n            get {\n                return ResourceManager.GetString(\"CT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Catanzaro.\n        /// </summary>\n        public static string CZ {\n            get {\n                return ResourceManager.GetString(\"CZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Enna.\n        /// </summary>\n        public static string EN {\n            get {\n                return ResourceManager.GetString(\"EN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Forli-Cesena.\n        /// </summary>\n        public static string FC {\n            get {\n                return ResourceManager.GetString(\"FC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ferrara.\n        /// </summary>\n        public static string FE {\n            get {\n                return ResourceManager.GetString(\"FE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Foggia.\n        /// </summary>\n        public static string FG {\n            get {\n                return ResourceManager.GetString(\"FG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Firenze.\n        /// </summary>\n        public static string FI {\n            get {\n                return ResourceManager.GetString(\"FI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Fermo.\n        /// </summary>\n        public static string FM {\n            get {\n                return ResourceManager.GetString(\"FM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Frosinone.\n        /// </summary>\n        public static string FR {\n            get {\n                return ResourceManager.GetString(\"FR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Genova.\n        /// </summary>\n        public static string GE {\n            get {\n                return ResourceManager.GetString(\"GE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Gorizia.\n        /// </summary>\n        public static string GO {\n            get {\n                return ResourceManager.GetString(\"GO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Grosseto.\n        /// </summary>\n        public static string GR {\n            get {\n                return ResourceManager.GetString(\"GR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Imperia.\n        /// </summary>\n        public static string IM {\n            get {\n                return ResourceManager.GetString(\"IM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Isernia.\n        /// </summary>\n        public static string IS {\n            get {\n                return ResourceManager.GetString(\"IS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Crotone.\n        /// </summary>\n        public static string KR {\n            get {\n                return ResourceManager.GetString(\"KR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lecco.\n        /// </summary>\n        public static string LC {\n            get {\n                return ResourceManager.GetString(\"LC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lecce.\n        /// </summary>\n        public static string LE {\n            get {\n                return ResourceManager.GetString(\"LE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Livorno.\n        /// </summary>\n        public static string LI {\n            get {\n                return ResourceManager.GetString(\"LI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lodi.\n        /// </summary>\n        public static string LO {\n            get {\n                return ResourceManager.GetString(\"LO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Latina.\n        /// </summary>\n        public static string LT {\n            get {\n                return ResourceManager.GetString(\"LT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Lucca.\n        /// </summary>\n        public static string LU {\n            get {\n                return ResourceManager.GetString(\"LU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Monza-Brianza.\n        /// </summary>\n        public static string MB {\n            get {\n                return ResourceManager.GetString(\"MB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Macerata.\n        /// </summary>\n        public static string MC {\n            get {\n                return ResourceManager.GetString(\"MC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Messina.\n        /// </summary>\n        public static string ME {\n            get {\n                return ResourceManager.GetString(\"ME\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Milano.\n        /// </summary>\n        public static string MI {\n            get {\n                return ResourceManager.GetString(\"MI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Mantova.\n        /// </summary>\n        public static string MN {\n            get {\n                return ResourceManager.GetString(\"MN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Modena.\n        /// </summary>\n        public static string MO {\n            get {\n                return ResourceManager.GetString(\"MO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Massa-Carrara.\n        /// </summary>\n        public static string MS {\n            get {\n                return ResourceManager.GetString(\"MS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Matera.\n        /// </summary>\n        public static string MT {\n            get {\n                return ResourceManager.GetString(\"MT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Napoli.\n        /// </summary>\n        public static string NA {\n            get {\n                return ResourceManager.GetString(\"NA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Novara.\n        /// </summary>\n        public static string NO {\n            get {\n                return ResourceManager.GetString(\"NO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Nuoro.\n        /// </summary>\n        public static string NU {\n            get {\n                return ResourceManager.GetString(\"NU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ogliastra.\n        /// </summary>\n        public static string OG {\n            get {\n                return ResourceManager.GetString(\"OG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Oristano.\n        /// </summary>\n        public static string OR {\n            get {\n                return ResourceManager.GetString(\"OR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Olbia Tempio.\n        /// </summary>\n        public static string OT {\n            get {\n                return ResourceManager.GetString(\"OT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Palermo.\n        /// </summary>\n        public static string PA {\n            get {\n                return ResourceManager.GetString(\"PA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Piacenza.\n        /// </summary>\n        public static string PC {\n            get {\n                return ResourceManager.GetString(\"PC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Padova.\n        /// </summary>\n        public static string PD {\n            get {\n                return ResourceManager.GetString(\"PD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pescara.\n        /// </summary>\n        public static string PE {\n            get {\n                return ResourceManager.GetString(\"PE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Perugia.\n        /// </summary>\n        public static string PG {\n            get {\n                return ResourceManager.GetString(\"PG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pisa.\n        /// </summary>\n        public static string PI {\n            get {\n                return ResourceManager.GetString(\"PI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pordenone.\n        /// </summary>\n        public static string PN {\n            get {\n                return ResourceManager.GetString(\"PN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Prato.\n        /// </summary>\n        public static string PO {\n            get {\n                return ResourceManager.GetString(\"PO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Parma.\n        /// </summary>\n        public static string PR {\n            get {\n                return ResourceManager.GetString(\"PR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pistoia.\n        /// </summary>\n        public static string PT {\n            get {\n                return ResourceManager.GetString(\"PT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pesaro-Urbino.\n        /// </summary>\n        public static string PU {\n            get {\n                return ResourceManager.GetString(\"PU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Pavia.\n        /// </summary>\n        public static string PV {\n            get {\n                return ResourceManager.GetString(\"PV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Potenza.\n        /// </summary>\n        public static string PZ {\n            get {\n                return ResourceManager.GetString(\"PZ\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ravenna.\n        /// </summary>\n        public static string RA {\n            get {\n                return ResourceManager.GetString(\"RA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Reggio-Calabria.\n        /// </summary>\n        public static string RC {\n            get {\n                return ResourceManager.GetString(\"RC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Reggio-Emilia.\n        /// </summary>\n        public static string RE {\n            get {\n                return ResourceManager.GetString(\"RE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ragusa.\n        /// </summary>\n        public static string RG {\n            get {\n                return ResourceManager.GetString(\"RG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Rieti.\n        /// </summary>\n        public static string RI {\n            get {\n                return ResourceManager.GetString(\"RI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Roma.\n        /// </summary>\n        public static string RM {\n            get {\n                return ResourceManager.GetString(\"RM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Rimini.\n        /// </summary>\n        public static string RN {\n            get {\n                return ResourceManager.GetString(\"RN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Rovigo.\n        /// </summary>\n        public static string RO {\n            get {\n                return ResourceManager.GetString(\"RO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Salerno.\n        /// </summary>\n        public static string SA {\n            get {\n                return ResourceManager.GetString(\"SA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Siena.\n        /// </summary>\n        public static string SI {\n            get {\n                return ResourceManager.GetString(\"SI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sondrio.\n        /// </summary>\n        public static string SO {\n            get {\n                return ResourceManager.GetString(\"SO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to La-Spezia.\n        /// </summary>\n        public static string SP {\n            get {\n                return ResourceManager.GetString(\"SP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Siracusa.\n        /// </summary>\n        public static string SR {\n            get {\n                return ResourceManager.GetString(\"SR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sassari.\n        /// </summary>\n        public static string SS {\n            get {\n                return ResourceManager.GetString(\"SS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Sud Sardegna.\n        /// </summary>\n        public static string SU {\n            get {\n                return ResourceManager.GetString(\"SU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Savona.\n        /// </summary>\n        public static string SV {\n            get {\n                return ResourceManager.GetString(\"SV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Taranto.\n        /// </summary>\n        public static string TA {\n            get {\n                return ResourceManager.GetString(\"TA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Teramo.\n        /// </summary>\n        public static string TE {\n            get {\n                return ResourceManager.GetString(\"TE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trento.\n        /// </summary>\n        public static string TN {\n            get {\n                return ResourceManager.GetString(\"TN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Torino.\n        /// </summary>\n        public static string TO {\n            get {\n                return ResourceManager.GetString(\"TO\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trapani.\n        /// </summary>\n        public static string TP {\n            get {\n                return ResourceManager.GetString(\"TP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Terni.\n        /// </summary>\n        public static string TR {\n            get {\n                return ResourceManager.GetString(\"TR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trieste.\n        /// </summary>\n        public static string TS {\n            get {\n                return ResourceManager.GetString(\"TS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Treviso.\n        /// </summary>\n        public static string TV {\n            get {\n                return ResourceManager.GetString(\"TV\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Udine.\n        /// </summary>\n        public static string UD {\n            get {\n                return ResourceManager.GetString(\"UD\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Varese.\n        /// </summary>\n        public static string VA {\n            get {\n                return ResourceManager.GetString(\"VA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Verbania.\n        /// </summary>\n        public static string VB {\n            get {\n                return ResourceManager.GetString(\"VB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Vercelli.\n        /// </summary>\n        public static string VC {\n            get {\n                return ResourceManager.GetString(\"VC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Venezia.\n        /// </summary>\n        public static string VE {\n            get {\n                return ResourceManager.GetString(\"VE\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Vicenza.\n        /// </summary>\n        public static string VI {\n            get {\n                return ResourceManager.GetString(\"VI\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Verona.\n        /// </summary>\n        public static string VR {\n            get {\n                return ResourceManager.GetString(\"VR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Medio Campidano.\n        /// </summary>\n        public static string VS {\n            get {\n                return ResourceManager.GetString(\"VS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Viterbo.\n        /// </summary>\n        public static string VT {\n            get {\n                return ResourceManager.GetString(\"VT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Vibo-Valentia.\n        /// </summary>\n        public static string VV {\n            get {\n                return ResourceManager.GetString(\"VV\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/Provincia.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"AG\" xml:space=\"preserve\">\n    <value>Agrigent</value>\n  </data>\n  <data name=\"AL\" xml:space=\"preserve\">\n    <value>Alessandria</value>\n  </data>\n  <data name=\"AN\" xml:space=\"preserve\">\n    <value>Ancona</value>\n  </data>\n  <data name=\"AO\" xml:space=\"preserve\">\n    <value>Aosta</value>\n  </data>\n  <data name=\"AQ\" xml:space=\"preserve\">\n    <value>L'Aquila</value>\n  </data>\n  <data name=\"AR\" xml:space=\"preserve\">\n    <value>Arezzo</value>\n  </data>\n  <data name=\"AP\" xml:space=\"preserve\">\n    <value>Ascoli-Piceno</value>\n  </data>\n  <data name=\"AT\" xml:space=\"preserve\">\n    <value>Asti</value>\n  </data>\n  <data name=\"AV\" xml:space=\"preserve\">\n    <value>Avellino</value>\n  </data>\n  <data name=\"BA\" xml:space=\"preserve\">\n    <value>Bari</value>\n  </data>\n  <data name=\"BT\" xml:space=\"preserve\">\n    <value>Barletta-Andria-Trani</value>\n  </data>\n  <data name=\"BL\" xml:space=\"preserve\">\n    <value>Belluno</value>\n  </data>\n  <data name=\"BN\" xml:space=\"preserve\">\n    <value>Benevento</value>\n  </data>\n  <data name=\"BG\" xml:space=\"preserve\">\n    <value>Bergamo</value>\n  </data>\n  <data name=\"BI\" xml:space=\"preserve\">\n    <value>Biella</value>\n  </data>\n  <data name=\"BO\" xml:space=\"preserve\">\n    <value>Bologna</value>\n  </data>\n  <data name=\"BZ\" xml:space=\"preserve\">\n    <value>Bozen</value>\n  </data>\n  <data name=\"BS\" xml:space=\"preserve\">\n    <value>Brescia</value>\n  </data>\n  <data name=\"BR\" xml:space=\"preserve\">\n    <value>Brindisi</value>\n  </data>\n  <data name=\"CA\" xml:space=\"preserve\">\n    <value>Cagliari</value>\n  </data>\n  <data name=\"CL\" xml:space=\"preserve\">\n    <value>Caltanissetta</value>\n  </data>\n  <data name=\"CB\" xml:space=\"preserve\">\n    <value>Campobasso</value>\n  </data>\n  <data name=\"CI\" xml:space=\"preserve\">\n    <value>Carbonia Iglesias</value>\n  </data>\n  <data name=\"CE\" xml:space=\"preserve\">\n    <value>Caserta</value>\n  </data>\n  <data name=\"CT\" xml:space=\"preserve\">\n    <value>Catania</value>\n  </data>\n  <data name=\"CZ\" xml:space=\"preserve\">\n    <value>Catanzaro</value>\n  </data>\n  <data name=\"CH\" xml:space=\"preserve\">\n    <value>Chieti</value>\n  </data>\n  <data name=\"CO\" xml:space=\"preserve\">\n    <value>Como</value>\n  </data>\n  <data name=\"CS\" xml:space=\"preserve\">\n    <value>Cosenza</value>\n  </data>\n  <data name=\"CR\" xml:space=\"preserve\">\n    <value>Cremona</value>\n  </data>\n  <data name=\"KR\" xml:space=\"preserve\">\n    <value>Crotone</value>\n  </data>\n  <data name=\"CN\" xml:space=\"preserve\">\n    <value>Cuneo</value>\n  </data>\n  <data name=\"EN\" xml:space=\"preserve\">\n    <value>Enna</value>\n  </data>\n  <data name=\"FM\" xml:space=\"preserve\">\n    <value>Fermo</value>\n  </data>\n  <data name=\"FE\" xml:space=\"preserve\">\n    <value>Ferrara</value>\n  </data>\n  <data name=\"FI\" xml:space=\"preserve\">\n    <value>Florenz</value>\n  </data>\n  <data name=\"FG\" xml:space=\"preserve\">\n    <value>Foggia</value>\n  </data>\n  <data name=\"FC\" xml:space=\"preserve\">\n    <value>Forli-Cesena</value>\n  </data>\n  <data name=\"FR\" xml:space=\"preserve\">\n    <value>Frosinone</value>\n  </data>\n  <data name=\"GE\" xml:space=\"preserve\">\n    <value>Genua</value>\n  </data>\n  <data name=\"GO\" xml:space=\"preserve\">\n    <value>Gorizia</value>\n  </data>\n  <data name=\"GR\" xml:space=\"preserve\">\n    <value>Grosseto</value>\n  </data>\n  <data name=\"IM\" xml:space=\"preserve\">\n    <value>Imperia</value>\n  </data>\n  <data name=\"IS\" xml:space=\"preserve\">\n    <value>Isernia</value>\n  </data>\n  <data name=\"SP\" xml:space=\"preserve\">\n    <value>La-Spezia</value>\n  </data>\n  <data name=\"LT\" xml:space=\"preserve\">\n    <value>Latina</value>\n  </data>\n  <data name=\"LE\" xml:space=\"preserve\">\n    <value>Lecce</value>\n  </data>\n  <data name=\"LC\" xml:space=\"preserve\">\n    <value>Lecco</value>\n  </data>\n  <data name=\"LI\" xml:space=\"preserve\">\n    <value>Livorno</value>\n  </data>\n  <data name=\"LO\" xml:space=\"preserve\">\n    <value>Lodi</value>\n  </data>\n  <data name=\"LU\" xml:space=\"preserve\">\n    <value>Lucca</value>\n  </data>\n  <data name=\"MC\" xml:space=\"preserve\">\n    <value>Macerata</value>\n  </data>\n  <data name=\"MN\" xml:space=\"preserve\">\n    <value>Mantua</value>\n  </data>\n  <data name=\"MS\" xml:space=\"preserve\">\n    <value>Massa-Carrara</value>\n  </data>\n  <data name=\"MT\" xml:space=\"preserve\">\n    <value>Matera</value>\n  </data>\n  <data name=\"VS\" xml:space=\"preserve\">\n    <value>Medio Campidano</value>\n  </data>\n  <data name=\"ME\" xml:space=\"preserve\">\n    <value>Messina</value>\n  </data>\n  <data name=\"MI\" xml:space=\"preserve\">\n    <value>Mailand</value>\n  </data>\n  <data name=\"MO\" xml:space=\"preserve\">\n    <value>Modena</value>\n  </data>\n  <data name=\"MB\" xml:space=\"preserve\">\n    <value>Monza-Brianza</value>\n  </data>\n  <data name=\"NA\" xml:space=\"preserve\">\n    <value>Neapel</value>\n  </data>\n  <data name=\"NO\" xml:space=\"preserve\">\n    <value>Novara</value>\n  </data>\n  <data name=\"NU\" xml:space=\"preserve\">\n    <value>Nuoro</value>\n  </data>\n  <data name=\"OG\" xml:space=\"preserve\">\n    <value>Ogliastra</value>\n  </data>\n  <data name=\"OT\" xml:space=\"preserve\">\n    <value>Olbia Tempio</value>\n  </data>\n  <data name=\"OR\" xml:space=\"preserve\">\n    <value>Oristano</value>\n  </data>\n  <data name=\"PD\" xml:space=\"preserve\">\n    <value>Padua</value>\n  </data>\n  <data name=\"PA\" xml:space=\"preserve\">\n    <value>Palermo</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>Parma</value>\n  </data>\n  <data name=\"PV\" xml:space=\"preserve\">\n    <value>Pavia</value>\n  </data>\n  <data name=\"PG\" xml:space=\"preserve\">\n    <value>Perugia</value>\n  </data>\n  <data name=\"PU\" xml:space=\"preserve\">\n    <value>Pesaro-Urbino</value>\n  </data>\n  <data name=\"PE\" xml:space=\"preserve\">\n    <value>Pescara</value>\n  </data>\n  <data name=\"PC\" xml:space=\"preserve\">\n    <value>Piacenza</value>\n  </data>\n  <data name=\"PI\" xml:space=\"preserve\">\n    <value>Pisa</value>\n  </data>\n  <data name=\"PT\" xml:space=\"preserve\">\n    <value>Pistoia</value>\n  </data>\n  <data name=\"PN\" xml:space=\"preserve\">\n    <value>Pordenone</value>\n  </data>\n  <data name=\"PZ\" xml:space=\"preserve\">\n    <value>Potenza</value>\n  </data>\n  <data name=\"PO\" xml:space=\"preserve\">\n    <value>Prato</value>\n  </data>\n  <data name=\"RG\" xml:space=\"preserve\">\n    <value>Ragusa</value>\n  </data>\n  <data name=\"RA\" xml:space=\"preserve\">\n    <value>Ravenna</value>\n  </data>\n  <data name=\"RC\" xml:space=\"preserve\">\n    <value>Reggio-Calabria</value>\n  </data>\n  <data name=\"RE\" xml:space=\"preserve\">\n    <value>Reggio-Emilia</value>\n  </data>\n  <data name=\"RI\" xml:space=\"preserve\">\n    <value>Rieti</value>\n  </data>\n  <data name=\"RN\" xml:space=\"preserve\">\n    <value>Rimini</value>\n  </data>\n  <data name=\"RM\" xml:space=\"preserve\">\n    <value>Rom</value>\n  </data>\n  <data name=\"RO\" xml:space=\"preserve\">\n    <value>Rovigo</value>\n  </data>\n  <data name=\"SA\" xml:space=\"preserve\">\n    <value>Salerno</value>\n  </data>\n  <data name=\"SS\" xml:space=\"preserve\">\n    <value>Sassari</value>\n  </data>\n  <data name=\"SV\" xml:space=\"preserve\">\n    <value>Savona</value>\n  </data>\n  <data name=\"SI\" xml:space=\"preserve\">\n    <value>Siena</value>\n  </data>\n  <data name=\"SR\" xml:space=\"preserve\">\n    <value>Syrakus</value>\n  </data>\n  <data name=\"SO\" xml:space=\"preserve\">\n    <value>Sondrio</value>\n  </data>\n  <data name=\"SU\" xml:space=\"preserve\">\n    <value>Süd Sardinien</value>\n  </data>\n  <data name=\"TA\" xml:space=\"preserve\">\n    <value>Tarent</value>\n  </data>\n  <data name=\"TE\" xml:space=\"preserve\">\n    <value>Teramo</value>\n  </data>\n  <data name=\"TR\" xml:space=\"preserve\">\n    <value>Terni</value>\n  </data>\n  <data name=\"TO\" xml:space=\"preserve\">\n    <value>Turin</value>\n  </data>\n  <data name=\"TP\" xml:space=\"preserve\">\n    <value>Trapani</value>\n  </data>\n  <data name=\"TN\" xml:space=\"preserve\">\n    <value>Trient</value>\n  </data>\n  <data name=\"TV\" xml:space=\"preserve\">\n    <value>Treviso</value>\n  </data>\n  <data name=\"TS\" xml:space=\"preserve\">\n    <value>Triest</value>\n  </data>\n  <data name=\"UD\" xml:space=\"preserve\">\n    <value>Udine</value>\n  </data>\n  <data name=\"VA\" xml:space=\"preserve\">\n    <value>Varese</value>\n  </data>\n  <data name=\"VE\" xml:space=\"preserve\">\n    <value>Venedig</value>\n  </data>\n  <data name=\"VB\" xml:space=\"preserve\">\n    <value>Verbania</value>\n  </data>\n  <data name=\"VC\" xml:space=\"preserve\">\n    <value>Vercelli</value>\n  </data>\n  <data name=\"VR\" xml:space=\"preserve\">\n    <value>Verona</value>\n  </data>\n  <data name=\"VV\" xml:space=\"preserve\">\n    <value>Vibo Valentia</value>\n  </data>\n  <data name=\"VI\" xml:space=\"preserve\">\n    <value>Vicenza</value>\n  </data>\n  <data name=\"VT\" xml:space=\"preserve\">\n    <value>Viterbo</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Provincia.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"AG\" xml:space=\"preserve\">\n    <value>Agrigento</value>\n  </data>\n  <data name=\"AL\" xml:space=\"preserve\">\n    <value>Alessandria</value>\n  </data>\n  <data name=\"AN\" xml:space=\"preserve\">\n    <value>Ancona</value>\n  </data>\n  <data name=\"AO\" xml:space=\"preserve\">\n    <value>Aosta</value>\n  </data>\n  <data name=\"AQ\" xml:space=\"preserve\">\n    <value>L'Aquila</value>\n  </data>\n  <data name=\"AR\" xml:space=\"preserve\">\n    <value>Arezzo</value>\n  </data>\n  <data name=\"AP\" xml:space=\"preserve\">\n    <value>Ascoli-Piceno</value>\n  </data>\n  <data name=\"AT\" xml:space=\"preserve\">\n    <value>Asti</value>\n  </data>\n  <data name=\"AV\" xml:space=\"preserve\">\n    <value>Avellino</value>\n  </data>\n  <data name=\"BA\" xml:space=\"preserve\">\n    <value>Bari</value>\n  </data>\n  <data name=\"BT\" xml:space=\"preserve\">\n    <value>Barletta-Andria-Trani</value>\n  </data>\n  <data name=\"BL\" xml:space=\"preserve\">\n    <value>Belluno</value>\n  </data>\n  <data name=\"BN\" xml:space=\"preserve\">\n    <value>Benevento</value>\n  </data>\n  <data name=\"BG\" xml:space=\"preserve\">\n    <value>Bergamo</value>\n  </data>\n  <data name=\"BI\" xml:space=\"preserve\">\n    <value>Biella</value>\n  </data>\n  <data name=\"BO\" xml:space=\"preserve\">\n    <value>Bologna</value>\n  </data>\n  <data name=\"BZ\" xml:space=\"preserve\">\n    <value>Bolzano</value>\n  </data>\n  <data name=\"BS\" xml:space=\"preserve\">\n    <value>Brescia</value>\n  </data>\n  <data name=\"BR\" xml:space=\"preserve\">\n    <value>Brindisi</value>\n  </data>\n  <data name=\"CA\" xml:space=\"preserve\">\n    <value>Cagliari</value>\n  </data>\n  <data name=\"CL\" xml:space=\"preserve\">\n    <value>Caltanissetta</value>\n  </data>\n  <data name=\"CB\" xml:space=\"preserve\">\n    <value>Campobasso</value>\n  </data>\n  <data name=\"CI\" xml:space=\"preserve\">\n    <value>Carbonia Iglesias</value>\n  </data>\n  <data name=\"CE\" xml:space=\"preserve\">\n    <value>Caserta</value>\n  </data>\n  <data name=\"CT\" xml:space=\"preserve\">\n    <value>Catania</value>\n  </data>\n  <data name=\"CZ\" xml:space=\"preserve\">\n    <value>Catanzaro</value>\n  </data>\n  <data name=\"CH\" xml:space=\"preserve\">\n    <value>Chieti</value>\n  </data>\n  <data name=\"CO\" xml:space=\"preserve\">\n    <value>Como</value>\n  </data>\n  <data name=\"CS\" xml:space=\"preserve\">\n    <value>Cosenza</value>\n  </data>\n  <data name=\"CR\" xml:space=\"preserve\">\n    <value>Cremona</value>\n  </data>\n  <data name=\"KR\" xml:space=\"preserve\">\n    <value>Crotone</value>\n  </data>\n  <data name=\"CN\" xml:space=\"preserve\">\n    <value>Cuneo</value>\n  </data>\n  <data name=\"EN\" xml:space=\"preserve\">\n    <value>Enna</value>\n  </data>\n  <data name=\"FM\" xml:space=\"preserve\">\n    <value>Fermo</value>\n  </data>\n  <data name=\"FE\" xml:space=\"preserve\">\n    <value>Ferrara</value>\n  </data>\n  <data name=\"FI\" xml:space=\"preserve\">\n    <value>Florence</value>\n  </data>\n  <data name=\"FG\" xml:space=\"preserve\">\n    <value>Foggia</value>\n  </data>\n  <data name=\"FC\" xml:space=\"preserve\">\n    <value>Forlì-Cesena</value>\n  </data>\n  <data name=\"FR\" xml:space=\"preserve\">\n    <value>Frosinone</value>\n  </data>\n  <data name=\"GE\" xml:space=\"preserve\">\n    <value>Genoa</value>\n  </data>\n  <data name=\"GO\" xml:space=\"preserve\">\n    <value>Gorizia</value>\n  </data>\n  <data name=\"GR\" xml:space=\"preserve\">\n    <value>Grosseto</value>\n  </data>\n  <data name=\"IM\" xml:space=\"preserve\">\n    <value>Imperia</value>\n  </data>\n  <data name=\"IS\" xml:space=\"preserve\">\n    <value>Isernia</value>\n  </data>\n  <data name=\"SP\" xml:space=\"preserve\">\n    <value>La Spezia</value>\n  </data>\n  <data name=\"LT\" xml:space=\"preserve\">\n    <value>Latina</value>\n  </data>\n  <data name=\"LE\" xml:space=\"preserve\">\n    <value>Lecce</value>\n  </data>\n  <data name=\"LC\" xml:space=\"preserve\">\n    <value>Lecco</value>\n  </data>\n  <data name=\"LI\" xml:space=\"preserve\">\n    <value>Livorno</value>\n  </data>\n  <data name=\"LO\" xml:space=\"preserve\">\n    <value>Lodi</value>\n  </data>\n  <data name=\"LU\" xml:space=\"preserve\">\n    <value>Lucca</value>\n  </data>\n  <data name=\"MC\" xml:space=\"preserve\">\n    <value>Macerata</value>\n  </data>\n  <data name=\"MN\" xml:space=\"preserve\">\n    <value>Mantua</value>\n  </data>\n  <data name=\"MS\" xml:space=\"preserve\">\n    <value>Massa-Carrara</value>\n  </data>\n  <data name=\"MT\" xml:space=\"preserve\">\n    <value>Matera</value>\n  </data>\n  <data name=\"VS\" xml:space=\"preserve\">\n    <value>Medio Campidano</value>\n  </data>\n  <data name=\"ME\" xml:space=\"preserve\">\n    <value>Messina</value>\n  </data>\n  <data name=\"MI\" xml:space=\"preserve\">\n    <value>Milan</value>\n  </data>\n  <data name=\"MO\" xml:space=\"preserve\">\n    <value>Modena</value>\n  </data>\n  <data name=\"MB\" xml:space=\"preserve\">\n    <value>Monza and Brianza</value>\n  </data>\n  <data name=\"NA\" xml:space=\"preserve\">\n    <value>Naples</value>\n  </data>\n  <data name=\"NO\" xml:space=\"preserve\">\n    <value>Novara</value>\n  </data>\n  <data name=\"NU\" xml:space=\"preserve\">\n    <value>Nuoro</value>\n  </data>\n  <data name=\"OG\" xml:space=\"preserve\">\n    <value>Ogliastra</value>\n  </data>\n  <data name=\"OT\" xml:space=\"preserve\">\n    <value>Olbia-Tempio</value>\n  </data>\n  <data name=\"OR\" xml:space=\"preserve\">\n    <value>Oristano</value>\n  </data>\n  <data name=\"PD\" xml:space=\"preserve\">\n    <value>Padua</value>\n  </data>\n  <data name=\"PA\" xml:space=\"preserve\">\n    <value>Palermo</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>Parma</value>\n  </data>\n  <data name=\"PV\" xml:space=\"preserve\">\n    <value>Pavia</value>\n  </data>\n  <data name=\"PG\" xml:space=\"preserve\">\n    <value>Perugia</value>\n  </data>\n  <data name=\"PU\" xml:space=\"preserve\">\n    <value>Pesaro and Urbino</value>\n  </data>\n  <data name=\"PE\" xml:space=\"preserve\">\n    <value>Pescara</value>\n  </data>\n  <data name=\"PC\" xml:space=\"preserve\">\n    <value>Piacenza</value>\n  </data>\n  <data name=\"PI\" xml:space=\"preserve\">\n    <value>Pisa</value>\n  </data>\n  <data name=\"PT\" xml:space=\"preserve\">\n    <value>Pistoia</value>\n  </data>\n  <data name=\"PN\" xml:space=\"preserve\">\n    <value>Pordenone</value>\n  </data>\n  <data name=\"PZ\" xml:space=\"preserve\">\n    <value>Potenza</value>\n  </data>\n  <data name=\"PO\" xml:space=\"preserve\">\n    <value>Prato</value>\n  </data>\n  <data name=\"RG\" xml:space=\"preserve\">\n    <value>Ragusa</value>\n  </data>\n  <data name=\"RA\" xml:space=\"preserve\">\n    <value>Ravenna</value>\n  </data>\n  <data name=\"RC\" xml:space=\"preserve\">\n    <value>Reggio Calabria</value>\n  </data>\n  <data name=\"RE\" xml:space=\"preserve\">\n    <value>Reggio Emilia</value>\n  </data>\n  <data name=\"RI\" xml:space=\"preserve\">\n    <value>Rieti</value>\n  </data>\n  <data name=\"RN\" xml:space=\"preserve\">\n    <value>Rimini</value>\n  </data>\n  <data name=\"RM\" xml:space=\"preserve\">\n    <value>Rome</value>\n  </data>\n  <data name=\"RO\" xml:space=\"preserve\">\n    <value>Rovigo</value>\n  </data>\n  <data name=\"SA\" xml:space=\"preserve\">\n    <value>Salerno</value>\n  </data>\n  <data name=\"SS\" xml:space=\"preserve\">\n    <value>Sassari</value>\n  </data>\n  <data name=\"SV\" xml:space=\"preserve\">\n    <value>Savona</value>\n  </data>\n  <data name=\"SI\" xml:space=\"preserve\">\n    <value>Siena</value>\n  </data>\n  <data name=\"SR\" xml:space=\"preserve\">\n    <value>Syracuse</value>\n  </data>\n  <data name=\"SO\" xml:space=\"preserve\">\n    <value>Sondrio</value>\n  </data>\n  <data name=\"SU\" xml:space=\"preserve\">\n    <value>South Sardinia</value>\n  </data>\n  <data name=\"TA\" xml:space=\"preserve\">\n    <value>Taranto</value>\n  </data>\n  <data name=\"TE\" xml:space=\"preserve\">\n    <value>Teramo</value>\n  </data>\n  <data name=\"TR\" xml:space=\"preserve\">\n    <value>Terni</value>\n  </data>\n  <data name=\"TO\" xml:space=\"preserve\">\n    <value>Turin</value>\n  </data>\n  <data name=\"TP\" xml:space=\"preserve\">\n    <value>Trapani</value>\n  </data>\n  <data name=\"TN\" xml:space=\"preserve\">\n    <value>Trento</value>\n  </data>\n  <data name=\"TV\" xml:space=\"preserve\">\n    <value>Treviso</value>\n  </data>\n  <data name=\"TS\" xml:space=\"preserve\">\n    <value>Trieste</value>\n  </data>\n  <data name=\"UD\" xml:space=\"preserve\">\n    <value>Udine</value>\n  </data>\n  <data name=\"VA\" xml:space=\"preserve\">\n    <value>Varese</value>\n  </data>\n  <data name=\"VE\" xml:space=\"preserve\">\n    <value>Venice</value>\n  </data>\n  <data name=\"VB\" xml:space=\"preserve\">\n    <value>Verbania</value>\n  </data>\n  <data name=\"VC\" xml:space=\"preserve\">\n    <value>Vercelli</value>\n  </data>\n  <data name=\"VR\" xml:space=\"preserve\">\n    <value>Verona</value>\n  </data>\n  <data name=\"VV\" xml:space=\"preserve\">\n    <value>Vibo Valentia</value>\n  </data>\n  <data name=\"VI\" xml:space=\"preserve\">\n    <value>Vicenza</value>\n  </data>\n  <data name=\"VT\" xml:space=\"preserve\">\n    <value>Viterbo</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/Provincia.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"AG\" xml:space=\"preserve\">\n    <value>Agrigento</value>\n  </data>\n  <data name=\"AL\" xml:space=\"preserve\">\n    <value>Alessandria</value>\n  </data>\n  <data name=\"AN\" xml:space=\"preserve\">\n    <value>Ancona</value>\n  </data>\n  <data name=\"AO\" xml:space=\"preserve\">\n    <value>Aosta</value>\n  </data>\n  <data name=\"AQ\" xml:space=\"preserve\">\n    <value>L'Aquila</value>\n  </data>\n  <data name=\"AR\" xml:space=\"preserve\">\n    <value>Arezzo</value>\n  </data>\n  <data name=\"AP\" xml:space=\"preserve\">\n    <value>Ascoli-Piceno</value>\n  </data>\n  <data name=\"AT\" xml:space=\"preserve\">\n    <value>Asti</value>\n  </data>\n  <data name=\"AV\" xml:space=\"preserve\">\n    <value>Avellino</value>\n  </data>\n  <data name=\"BA\" xml:space=\"preserve\">\n    <value>Bari</value>\n  </data>\n  <data name=\"BT\" xml:space=\"preserve\">\n    <value>Barletta-Andria-Trani</value>\n  </data>\n  <data name=\"BL\" xml:space=\"preserve\">\n    <value>Belluno</value>\n  </data>\n  <data name=\"BN\" xml:space=\"preserve\">\n    <value>Benevento</value>\n  </data>\n  <data name=\"BG\" xml:space=\"preserve\">\n    <value>Bergamo</value>\n  </data>\n  <data name=\"BI\" xml:space=\"preserve\">\n    <value>Biella</value>\n  </data>\n  <data name=\"BO\" xml:space=\"preserve\">\n    <value>Bologna</value>\n  </data>\n  <data name=\"BZ\" xml:space=\"preserve\">\n    <value>Bolzano</value>\n  </data>\n  <data name=\"BS\" xml:space=\"preserve\">\n    <value>Brescia</value>\n  </data>\n  <data name=\"BR\" xml:space=\"preserve\">\n    <value>Brindisi</value>\n  </data>\n  <data name=\"CA\" xml:space=\"preserve\">\n    <value>Cagliari</value>\n  </data>\n  <data name=\"CL\" xml:space=\"preserve\">\n    <value>Caltanissetta</value>\n  </data>\n  <data name=\"CB\" xml:space=\"preserve\">\n    <value>Campobasso</value>\n  </data>\n  <data name=\"CI\" xml:space=\"preserve\">\n    <value>Carbonia Iglesias</value>\n  </data>\n  <data name=\"CE\" xml:space=\"preserve\">\n    <value>Caserta</value>\n  </data>\n  <data name=\"CT\" xml:space=\"preserve\">\n    <value>Catania</value>\n  </data>\n  <data name=\"CZ\" xml:space=\"preserve\">\n    <value>Catanzaro</value>\n  </data>\n  <data name=\"CH\" xml:space=\"preserve\">\n    <value>Chieti</value>\n  </data>\n  <data name=\"CO\" xml:space=\"preserve\">\n    <value>Como</value>\n  </data>\n  <data name=\"CS\" xml:space=\"preserve\">\n    <value>Cosenza</value>\n  </data>\n  <data name=\"CR\" xml:space=\"preserve\">\n    <value>Cremona</value>\n  </data>\n  <data name=\"KR\" xml:space=\"preserve\">\n    <value>Crotone</value>\n  </data>\n  <data name=\"CN\" xml:space=\"preserve\">\n    <value>Cuneo</value>\n  </data>\n  <data name=\"EN\" xml:space=\"preserve\">\n    <value>Enna</value>\n  </data>\n  <data name=\"FM\" xml:space=\"preserve\">\n    <value>Fermo</value>\n  </data>\n  <data name=\"FE\" xml:space=\"preserve\">\n    <value>Ferrara</value>\n  </data>\n  <data name=\"FI\" xml:space=\"preserve\">\n    <value>Firenze</value>\n  </data>\n  <data name=\"FG\" xml:space=\"preserve\">\n    <value>Foggia</value>\n  </data>\n  <data name=\"FC\" xml:space=\"preserve\">\n    <value>Forli-Cesena</value>\n  </data>\n  <data name=\"FR\" xml:space=\"preserve\">\n    <value>Frosinone</value>\n  </data>\n  <data name=\"GE\" xml:space=\"preserve\">\n    <value>Genova</value>\n  </data>\n  <data name=\"GO\" xml:space=\"preserve\">\n    <value>Gorizia</value>\n  </data>\n  <data name=\"GR\" xml:space=\"preserve\">\n    <value>Grosseto</value>\n  </data>\n  <data name=\"IM\" xml:space=\"preserve\">\n    <value>Imperia</value>\n  </data>\n  <data name=\"IS\" xml:space=\"preserve\">\n    <value>Isernia</value>\n  </data>\n  <data name=\"SP\" xml:space=\"preserve\">\n    <value>La-Spezia</value>\n  </data>\n  <data name=\"LT\" xml:space=\"preserve\">\n    <value>Latina</value>\n  </data>\n  <data name=\"LE\" xml:space=\"preserve\">\n    <value>Lecce</value>\n  </data>\n  <data name=\"LC\" xml:space=\"preserve\">\n    <value>Lecco</value>\n  </data>\n  <data name=\"LI\" xml:space=\"preserve\">\n    <value>Livorno</value>\n  </data>\n  <data name=\"LO\" xml:space=\"preserve\">\n    <value>Lodi</value>\n  </data>\n  <data name=\"LU\" xml:space=\"preserve\">\n    <value>Lucca</value>\n  </data>\n  <data name=\"MC\" xml:space=\"preserve\">\n    <value>Macerata</value>\n  </data>\n  <data name=\"MN\" xml:space=\"preserve\">\n    <value>Mantova</value>\n  </data>\n  <data name=\"MS\" xml:space=\"preserve\">\n    <value>Massa-Carrara</value>\n  </data>\n  <data name=\"MT\" xml:space=\"preserve\">\n    <value>Matera</value>\n  </data>\n  <data name=\"VS\" xml:space=\"preserve\">\n    <value>Medio Campidano</value>\n  </data>\n  <data name=\"ME\" xml:space=\"preserve\">\n    <value>Messina</value>\n  </data>\n  <data name=\"MI\" xml:space=\"preserve\">\n    <value>Milano</value>\n  </data>\n  <data name=\"MO\" xml:space=\"preserve\">\n    <value>Modena</value>\n  </data>\n  <data name=\"MB\" xml:space=\"preserve\">\n    <value>Monza-Brianza</value>\n  </data>\n  <data name=\"NA\" xml:space=\"preserve\">\n    <value>Napoli</value>\n  </data>\n  <data name=\"NO\" xml:space=\"preserve\">\n    <value>Novara</value>\n  </data>\n  <data name=\"NU\" xml:space=\"preserve\">\n    <value>Nuoro</value>\n  </data>\n  <data name=\"OG\" xml:space=\"preserve\">\n    <value>Ogliastra</value>\n  </data>\n  <data name=\"OT\" xml:space=\"preserve\">\n    <value>Olbia Tempio</value>\n  </data>\n  <data name=\"OR\" xml:space=\"preserve\">\n    <value>Oristano</value>\n  </data>\n  <data name=\"PD\" xml:space=\"preserve\">\n    <value>Padova</value>\n  </data>\n  <data name=\"PA\" xml:space=\"preserve\">\n    <value>Palermo</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>Parma</value>\n  </data>\n  <data name=\"PV\" xml:space=\"preserve\">\n    <value>Pavia</value>\n  </data>\n  <data name=\"PG\" xml:space=\"preserve\">\n    <value>Perugia</value>\n  </data>\n  <data name=\"PU\" xml:space=\"preserve\">\n    <value>Pesaro-Urbino</value>\n  </data>\n  <data name=\"PE\" xml:space=\"preserve\">\n    <value>Pescara</value>\n  </data>\n  <data name=\"PC\" xml:space=\"preserve\">\n    <value>Piacenza</value>\n  </data>\n  <data name=\"PI\" xml:space=\"preserve\">\n    <value>Pisa</value>\n  </data>\n  <data name=\"PT\" xml:space=\"preserve\">\n    <value>Pistoia</value>\n  </data>\n  <data name=\"PN\" xml:space=\"preserve\">\n    <value>Pordenone</value>\n  </data>\n  <data name=\"PZ\" xml:space=\"preserve\">\n    <value>Potenza</value>\n  </data>\n  <data name=\"PO\" xml:space=\"preserve\">\n    <value>Prato</value>\n  </data>\n  <data name=\"RG\" xml:space=\"preserve\">\n    <value>Ragusa</value>\n  </data>\n  <data name=\"RA\" xml:space=\"preserve\">\n    <value>Ravenna</value>\n  </data>\n  <data name=\"RC\" xml:space=\"preserve\">\n    <value>Reggio-Calabria</value>\n  </data>\n  <data name=\"RE\" xml:space=\"preserve\">\n    <value>Reggio-Emilia</value>\n  </data>\n  <data name=\"RI\" xml:space=\"preserve\">\n    <value>Rieti</value>\n  </data>\n  <data name=\"RN\" xml:space=\"preserve\">\n    <value>Rimini</value>\n  </data>\n  <data name=\"RM\" xml:space=\"preserve\">\n    <value>Roma</value>\n  </data>\n  <data name=\"RO\" xml:space=\"preserve\">\n    <value>Rovigo</value>\n  </data>\n  <data name=\"SA\" xml:space=\"preserve\">\n    <value>Salerno</value>\n  </data>\n  <data name=\"SS\" xml:space=\"preserve\">\n    <value>Sassari</value>\n  </data>\n  <data name=\"SV\" xml:space=\"preserve\">\n    <value>Savona</value>\n  </data>\n  <data name=\"SI\" xml:space=\"preserve\">\n    <value>Siena</value>\n  </data>\n  <data name=\"SR\" xml:space=\"preserve\">\n    <value>Siracusa</value>\n  </data>\n  <data name=\"SO\" xml:space=\"preserve\">\n    <value>Sondrio</value>\n  </data>\n  <data name=\"SU\" xml:space=\"preserve\">\n    <value>Sud Sardegna</value>\n  </data>\n  <data name=\"TA\" xml:space=\"preserve\">\n    <value>Taranto</value>\n  </data>\n  <data name=\"TE\" xml:space=\"preserve\">\n    <value>Teramo</value>\n  </data>\n  <data name=\"TR\" xml:space=\"preserve\">\n    <value>Terni</value>\n  </data>\n  <data name=\"TO\" xml:space=\"preserve\">\n    <value>Torino</value>\n  </data>\n  <data name=\"TP\" xml:space=\"preserve\">\n    <value>Trapani</value>\n  </data>\n  <data name=\"TN\" xml:space=\"preserve\">\n    <value>Trento</value>\n  </data>\n  <data name=\"TV\" xml:space=\"preserve\">\n    <value>Treviso</value>\n  </data>\n  <data name=\"TS\" xml:space=\"preserve\">\n    <value>Trieste</value>\n  </data>\n  <data name=\"UD\" xml:space=\"preserve\">\n    <value>Udine</value>\n  </data>\n  <data name=\"VA\" xml:space=\"preserve\">\n    <value>Varese</value>\n  </data>\n  <data name=\"VE\" xml:space=\"preserve\">\n    <value>Venezia</value>\n  </data>\n  <data name=\"VB\" xml:space=\"preserve\">\n    <value>Verbania</value>\n  </data>\n  <data name=\"VC\" xml:space=\"preserve\">\n    <value>Vercelli</value>\n  </data>\n  <data name=\"VR\" xml:space=\"preserve\">\n    <value>Verona</value>\n  </data>\n  <data name=\"VV\" xml:space=\"preserve\">\n    <value>Vibo-Valentia</value>\n  </data>\n  <data name=\"VI\" xml:space=\"preserve\">\n    <value>Vicenza</value>\n  </data>\n  <data name=\"VT\" xml:space=\"preserve\">\n    <value>Viterbo</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/RegimeFiscale.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    [System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class RegimeFiscale {\n        \n        private static System.Resources.ResourceManager resourceMan;\n        \n        private static System.Globalization.CultureInfo resourceCulture;\n        \n        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal RegimeFiscale() {\n        }\n        \n        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.Equals(null, resourceMan)) {\n                    System.Resources.ResourceManager temp = new System.Resources.ResourceManager(\"FatturaElettronica.Resources.RegimeFiscale\", typeof(RegimeFiscale).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        public static string RF01 {\n            get {\n                return ResourceManager.GetString(\"RF01\", resourceCulture);\n            }\n        }\n        \n        public static string RF02 {\n            get {\n                return ResourceManager.GetString(\"RF02\", resourceCulture);\n            }\n        }\n        \n        public static string RF04 {\n            get {\n                return ResourceManager.GetString(\"RF04\", resourceCulture);\n            }\n        }\n        \n        public static string RF05 {\n            get {\n                return ResourceManager.GetString(\"RF05\", resourceCulture);\n            }\n        }\n        \n        public static string RF06 {\n            get {\n                return ResourceManager.GetString(\"RF06\", resourceCulture);\n            }\n        }\n        \n        public static string RF07 {\n            get {\n                return ResourceManager.GetString(\"RF07\", resourceCulture);\n            }\n        }\n        \n        public static string RF08 {\n            get {\n                return ResourceManager.GetString(\"RF08\", resourceCulture);\n            }\n        }\n        \n        public static string RF09 {\n            get {\n                return ResourceManager.GetString(\"RF09\", resourceCulture);\n            }\n        }\n        \n        public static string RF10 {\n            get {\n                return ResourceManager.GetString(\"RF10\", resourceCulture);\n            }\n        }\n        \n        public static string RF11 {\n            get {\n                return ResourceManager.GetString(\"RF11\", resourceCulture);\n            }\n        }\n        \n        public static string RF12 {\n            get {\n                return ResourceManager.GetString(\"RF12\", resourceCulture);\n            }\n        }\n        \n        public static string RF13 {\n            get {\n                return ResourceManager.GetString(\"RF13\", resourceCulture);\n            }\n        }\n        \n        public static string RF14 {\n            get {\n                return ResourceManager.GetString(\"RF14\", resourceCulture);\n            }\n        }\n        \n        public static string RF15 {\n            get {\n                return ResourceManager.GetString(\"RF15\", resourceCulture);\n            }\n        }\n        \n        public static string RF16 {\n            get {\n                return ResourceManager.GetString(\"RF16\", resourceCulture);\n            }\n        }\n        \n        public static string RF17 {\n            get {\n                return ResourceManager.GetString(\"RF17\", resourceCulture);\n            }\n        }\n        \n        public static string RF18 {\n            get {\n                return ResourceManager.GetString(\"RF18\", resourceCulture);\n            }\n        }\n        \n        public static string RF19 {\n            get {\n                return ResourceManager.GetString(\"RF19\", resourceCulture);\n            }\n        }\n        \n        public static string RF20 {\n            get {\n                return ResourceManager.GetString(\"RF20\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/RegimeFiscale.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"RF01\" xml:space=\"preserve\">\n    <value>Ordentlich</value>\n  </data>\n  <data name=\"RF02\" xml:space=\"preserve\">\n    <value>Minimale Steuerzahler (Art.1, Abs.96-117, L. 244/07)</value>\n  </data>\n  <data name=\"RF04\" xml:space=\"preserve\">\n    <value>Landwirtschaft und verwandte Tätigkeiten und Fischerei (Art.34 und 34-bis, DPR 633/72)</value>\n  </data>\n  <data name=\"RF05\" xml:space=\"preserve\">\n    <value>Verkauf von Salz und Tabak (Art.74, Abs.1, DPR 633/72)</value>\n  </data>\n  <data name=\"RF06\" xml:space=\"preserve\">\n    <value>Streichholzhandel (Art.74, Abs.1, DPR 633/72)</value>\n  </data>\n  <data name=\"RF07\" xml:space=\"preserve\">\n    <value>Verlagswesen (Art.74, Abs.1, DPR 633/72)</value>\n  </data>\n  <data name=\"RF08\" xml:space=\"preserve\">\n    <value>Verwaltung öffentlicher Telefondienste (Art.74, Abs.1, DPR 633/72)</value>\n  </data>\n  <data name=\"RF09\" xml:space=\"preserve\">\n    <value>Wiederverkauf von öffentlichen Verkehrs- und Parkdokumenten (Art.74, Abs.1, DPR 633/72)</value>\n  </data>\n  <data name=\"RF10\" xml:space=\"preserve\">\n    <value>Unterhaltung, Spiele und andere Aktivitäten gemäß der an den DPR 640/72 angehängten Tarifliste (Art.74, Abs.6, DPR 633/72)</value>\n  </data>\n  <data name=\"RF11\" xml:space=\"preserve\">\n    <value>Reise- und Tourismusagenturen (Art.74-ter, DPR 633/72)</value>\n  </data>\n  <data name=\"RF12\" xml:space=\"preserve\">\n    <value>Agrotourismus (Art.5, Abs.2 L. 413/91)</value>\n  </data>\n  <data name=\"RF13\" xml:space=\"preserve\">\n    <value>Haustürverkauf (Art.25-bis, Abs.6, DPR 600/73)</value>\n  </data>\n  <data name=\"RF14\" xml:space=\"preserve\">\n    <value>Wiederverkauf von Gebrauchtwaren, Kunstgegenständen, Antiquitäten oder Sammlerstücken (Art.36, DL 41/95)</value>\n  </data>\n  <data name=\"RF15\" xml:space=\"preserve\">\n    <value>Auktionshäuser für Kunstgegenstände, Antiquitäten oder Sammlerstücke (Art.40-bis, DL 41/95)</value>\n  </data>\n  <data name=\"RF16\" xml:space=\"preserve\">\n    <value>Mehrwertsteuer auf Kassenbasis für öffentliche Verwaltungen (Art.6, Abs.5, DPR 633/72)</value>\n  </data>\n  <data name=\"RF17\" xml:space=\"preserve\">\n    <value>Mehrwertsteuer auf Kassenbasis (Art.32-bis, DL 83/2012)</value>\n  </data>\n  <data name=\"RF18\" xml:space=\"preserve\">\n    <value>Andere</value>\n  </data>\n  <data name=\"RF19\" xml:space=\"preserve\">\n    <value>Pauschalbesteuerung (Art.1, Abs.54-89, L. 190/2014)</value>\n  </data>\n  <data name=\"RF20\" xml:space=\"preserve\">\n    <value>Grenzüberschreitende Mehrwertsteuerbefreiung (EU-Richtlinie 2020/285)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/RegimeFiscale.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"RF01\" xml:space=\"preserve\">\n    <value>Ordinary</value>\n  </data>\n  <data name=\"RF02\" xml:space=\"preserve\">\n    <value>Minimum taxpayers (Art. 1, section 96-117, Italian Law 244/07)</value>\n  </data>\n  <data name=\"RF04\" xml:space=\"preserve\">\n    <value>Agriculture and connected activities and fishing (Arts. 34 and 34-bis, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF05\" xml:space=\"preserve\">\n    <value>Sale of salts and tobaccos (Art. 74, section 1, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF06\" xml:space=\"preserve\">\n    <value>Match sales (Art. 74, section 1, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF07\" xml:space=\"preserve\">\n    <value>Publishing (Art. 74, section 1, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF08\" xml:space=\"preserve\">\n    <value>Management of public telephone services (Art. 74, section 1, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF09\" xml:space=\"preserve\">\n    <value>Resale of public transport and parking documents (Art. 74, section 1, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF10\" xml:space=\"preserve\">\n    <value>Entertainment, gaming and other activities referred to by the tariff attached to Italian Presidential Decree 640/72 (Art. 74, section 6, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF11\" xml:space=\"preserve\">\n    <value>Travel and tourism agencies (Art. 74-ter, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF12\" xml:space=\"preserve\">\n    <value>Farmhouse accommodation/restaurants (Art. 5, section 2, Italian law 413/91)</value>\n  </data>\n  <data name=\"RF13\" xml:space=\"preserve\">\n    <value>Door-to-door sales (Art. 25-bis, section 6, Italian Presidential Decree 600/73)</value>\n  </data>\n  <data name=\"RF14\" xml:space=\"preserve\">\n    <value>Resale of used goods, artworks, antiques or collector's items (Art. 36, Italian Decree Law 41/95)</value>\n  </data>\n  <data name=\"RF15\" xml:space=\"preserve\">\n    <value>Artwork, antiques or collector's items auction agencies (Art. 40-bis, Italian Decree Law 41/95)</value>\n  </data>\n  <data name=\"RF16\" xml:space=\"preserve\">\n    <value>VAT paid in cash by P.A. (Art. 6, section 5, Italian Presidential Decree 633/72)</value>\n  </data>\n  <data name=\"RF17\" xml:space=\"preserve\">\n    <value>VAT paid in cash by subjects with business turnover below Euro 200,000 (Art. 7, Italian Decree Law 185/2008)</value>\n  </data>\n  <data name=\"RF18\" xml:space=\"preserve\">\n    <value>Other</value>\n  </data>\n  <data name=\"RF19\" xml:space=\"preserve\">\n    <value>Flat-rate tax regime (article1, c. 54-89, L. 190/2014)</value>\n  </data>\n  <data name=\"RF20\" xml:space=\"preserve\">\n    <value>Cross-border VAT exemption regime (EU Directive 2020/285)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/RegimeFiscale.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"RF01\" xml:space=\"preserve\">\n    <value>Ordinario</value>\n  </data>\n  <data name=\"RF02\" xml:space=\"preserve\">\n    <value>Contribuenti minimi (art.1, c.96-117, L. 244/07 )</value>\n  </data>\n  <data name=\"RF04\" xml:space=\"preserve\">\n    <value>Agricoltura e attività connesse e pesca (artt.34 e 34-bis, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF05\" xml:space=\"preserve\">\n    <value>Vendita sali e tabacchi (art.74, c.1, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF06\" xml:space=\"preserve\">\n    <value>Commercio fiammiferi (art.74, c.1, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF07\" xml:space=\"preserve\">\n    <value>Editoria (art.74, c.1, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF08\" xml:space=\"preserve\">\n    <value>Gestione servizi telefonia pubblica (art.74, c.1, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF09\" xml:space=\"preserve\">\n    <value>Rivendita documenti di trasporto pubblico e di sosta (art.74, c.1, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF10\" xml:space=\"preserve\">\n    <value>Intrattenimenti, giochi e altre attività di cui all atariffa allegata al DPR 640/72 (art.74, c.6, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF11\" xml:space=\"preserve\">\n    <value>Agenzie viaggi e turismo (art.74-ter, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF12\" xml:space=\"preserve\">\n    <value>Agriturismo (art.5, c.2 L. 413/91 )</value>\n  </data>\n  <data name=\"RF13\" xml:space=\"preserve\">\n    <value>Vendite a domicilio (art.25-bis, c.6, DPR 600/73 )</value>\n  </data>\n  <data name=\"RF14\" xml:space=\"preserve\">\n    <value>Rivendita beni usati, oggetti d'arte, d'antiquariato o da collezione (art.36, DL 41/95 )</value>\n  </data>\n  <data name=\"RF15\" xml:space=\"preserve\">\n    <value>Agenzie di vendite all'asta di oggetti d'arte, antiquariato o da collezione (art.40-bis, DL 41/95 )</value>\n  </data>\n  <data name=\"RF16\" xml:space=\"preserve\">\n    <value>IVA per cassa P.A. (art.6, c.5, DPR 633/72 )</value>\n  </data>\n  <data name=\"RF17\" xml:space=\"preserve\">\n    <value>IVA per cassa (art. 32-bis, DL 83/2012)</value>\n  </data>\n  <data name=\"RF18\" xml:space=\"preserve\">\n    <value>Altro</value>\n  </data>\n  <data name=\"RF19\" xml:space=\"preserve\">\n    <value>Regime forfettario (art.1, c.54-89, L. 190/2014 )</value>\n  </data>\n  <data name=\"RF20\" xml:space=\"preserve\">\n    <value>Regime transfrontaliero di Franchigia IVA (Direttiva UE 2020/285)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ScontoMaggiorazione.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class ScontoMaggiorazione {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal ScontoMaggiorazione() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.ScontoMaggiorazione\", typeof(ScontoMaggiorazione).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to maggiorazione.\n        /// </summary>\n        public static string MG {\n            get {\n                return ResourceManager.GetString(\"MG\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to sconto.\n        /// </summary>\n        public static string SC {\n            get {\n                return ResourceManager.GetString(\"SC\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/ScontoMaggiorazione.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SC\" xml:space=\"preserve\">\n  <value>Rabatt</value>\n  </data>\n    <data name=\"MG\" xml:space=\"preserve\">\n    <value>Erhöhung</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ScontoMaggiorazione.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>discount</value>\n  </data>\n  <data name=\"MG\" xml:space=\"preserve\">\n    <value>markup</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ScontoMaggiorazione.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>sconto</value>\n  </data>\n  <data name=\"MG\" xml:space=\"preserve\">\n    <value>maggiorazione</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/SocioUnico.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class SocioUnico {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal SocioUnico() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.SocioUnico\", typeof(SocioUnico).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Più soci.\n        /// </summary>\n        public static string SM {\n            get {\n                return ResourceManager.GetString(\"SM\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Socio unico.\n        /// </summary>\n        public static string SU {\n            get {\n                return ResourceManager.GetString(\"SU\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/SocioUnico.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SU\" xml:space=\"preserve\">\n    <value>Einzelgesellschafter</value>\n  </data>\n  <data name=\"SM\" xml:space=\"preserve\">\n    <value>Mehrere Gesellschafter</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/SocioUnico.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SU\" xml:space=\"preserve\">\n    <value>Sole shareholder</value>\n  </data>\n  <data name=\"SM\" xml:space=\"preserve\">\n    <value>Multiple shareholders</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/SocioUnico.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SU\" xml:space=\"preserve\">\n    <value>Socio unico</value>\n  </data>\n  <data name=\"SM\" xml:space=\"preserve\">\n    <value>Più soci</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/SoggettoEmittente.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class SoggettoEmittente {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal SoggettoEmittente() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.SoggettoEmittente\", typeof(SoggettoEmittente).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to cessionario/committente.\n        /// </summary>\n        public static string CC {\n            get {\n                return ResourceManager.GetString(\"CC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to terzo.\n        /// </summary>\n        public static string TZ {\n            get {\n                return ResourceManager.GetString(\"TZ\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/SoggettoEmittente.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"CC\" xml:space=\"preserve\">\n    <value>Zessionar/Auftraggeber</value>\n  </data>\n  <data name=\"TZ\" xml:space=\"preserve\">\n    <value>Dritter</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/SoggettoEmittente.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"CC\" xml:space=\"preserve\">\n    <value>transferee/client</value>\n  </data>\n  <data name=\"TZ\" xml:space=\"preserve\">\n    <value>third party</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/SoggettoEmittente.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"CC\" xml:space=\"preserve\">\n    <value>cessionario/committente</value>\n  </data>\n  <data name=\"TZ\" xml:space=\"preserve\">\n    <value>terzo</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/StatoLiquidazione.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class StatoLiquidazione {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal StatoLiquidazione() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.StatoLiquidazione\", typeof(StatoLiquidazione).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Non in liquidazione.\n        /// </summary>\n        public static string LN {\n            get {\n                return ResourceManager.GetString(\"LN\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to In liquidazione.\n        /// </summary>\n        public static string LS {\n            get {\n                return ResourceManager.GetString(\"LS\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/StatoLiquidazione.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"LS\" xml:space=\"preserve\">\n    <value>In Liquidation</value>\n  </data>\n  <data name=\"LN\" xml:space=\"preserve\">\n    <value>Nicht in Liquidation</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/StatoLiquidazione.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"LS\" xml:space=\"preserve\">\n    <value>In liquidation</value>\n  </data>\n  <data name=\"LN\" xml:space=\"preserve\">\n    <value>Not in liquidation</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/StatoLiquidazione.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"LS\" xml:space=\"preserve\">\n    <value>In liquidazione</value>\n  </data>\n  <data name=\"LN\" xml:space=\"preserve\">\n    <value>Non in liquidazione</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoCassa.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class TipoCassa {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal TipoCassa() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.TipoCassa\", typeof(TipoCassa).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa nazionale previdenza e assistenza avvocati e procuratori legali.\n        /// </summary>\n        public static string TC01 {\n            get {\n                return ResourceManager.GetString(\"TC01\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa previdenza dottori commercialisti.\n        /// </summary>\n        public static string TC02 {\n            get {\n                return ResourceManager.GetString(\"TC02\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa previdenza e assistenza geometri.\n        /// </summary>\n        public static string TC03 {\n            get {\n                return ResourceManager.GetString(\"TC03\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa nazionale previdenza e assistenza ingegneri e architetti liberi professionisti.\n        /// </summary>\n        public static string TC04 {\n            get {\n                return ResourceManager.GetString(\"TC04\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa nazionale del notariato.\n        /// </summary>\n        public static string TC05 {\n            get {\n                return ResourceManager.GetString(\"TC05\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa nazionale previdenza e assistenza ragionieri e periti commerciali.\n        /// </summary>\n        public static string TC06 {\n            get {\n                return ResourceManager.GetString(\"TC06\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale assistenza agenti e rappresentanti di commercio (ENASARCO).\n        /// </summary>\n        public static string TC07 {\n            get {\n                return ResourceManager.GetString(\"TC07\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza consulenti del lavoro (ENPACL).\n        /// </summary>\n        public static string TC08 {\n            get {\n                return ResourceManager.GetString(\"TC08\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza medici (ENPAM).\n        /// </summary>\n        public static string TC09 {\n            get {\n                return ResourceManager.GetString(\"TC09\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza farmacisti (ENPAF).\n        /// </summary>\n        public static string TC10 {\n            get {\n                return ResourceManager.GetString(\"TC10\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza veterinari (ENPAV).\n        /// </summary>\n        public static string TC11 {\n            get {\n                return ResourceManager.GetString(\"TC11\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza impiegati dell&apos;agricoltura (ENPAIA).\n        /// </summary>\n        public static string TC12 {\n            get {\n                return ResourceManager.GetString(\"TC12\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Fondo previdenza impiegati imprese di spedizione e agenzie marittime.\n        /// </summary>\n        public static string TC13 {\n            get {\n                return ResourceManager.GetString(\"TC13\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Istituto nazionale previdenza giornalisti italiani (INPGI).\n        /// </summary>\n        public static string TC14 {\n            get {\n                return ResourceManager.GetString(\"TC14\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Opera nazionale assistenza orfani sanitari italiani (ONAOSI).\n        /// </summary>\n        public static string TC15 {\n            get {\n                return ResourceManager.GetString(\"TC15\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Cassa autonoma assistenza integrativa giornalisti italiani (CASAGIT).\n        /// </summary>\n        public static string TC16 {\n            get {\n                return ResourceManager.GetString(\"TC16\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente previdenza periti industriali e periti industriali laureati (EPPI).\n        /// </summary>\n        public static string TC17 {\n            get {\n                return ResourceManager.GetString(\"TC17\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente previdenza e assistenza pluricategoriale (EPAP).\n        /// </summary>\n        public static string TC18 {\n            get {\n                return ResourceManager.GetString(\"TC18\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza biologi (ENPAB).\n        /// </summary>\n        public static string TC19 {\n            get {\n                return ResourceManager.GetString(\"TC19\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza professione infermieristica (ENPAPI).\n        /// </summary>\n        public static string TC20 {\n            get {\n                return ResourceManager.GetString(\"TC20\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Ente nazionale previdenza e assistenza psicologi (ENPAP).\n        /// </summary>\n        public static string TC21 {\n            get {\n                return ResourceManager.GetString(\"TC21\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to INPS.\n        /// </summary>\n        public static string TC22 {\n            get {\n                return ResourceManager.GetString(\"TC22\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/TipoCassa.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TC01\" xml:space=\"preserve\">\n    <value>Nationale Rentenkasse und Unterstützung für Anwälte und Rechtsanwälte</value>\n  </data>\n  <data name=\"TC02\" xml:space=\"preserve\">\n    <value>Rentenversicherung der Wirtschaftsprüfer</value>\n  </data>\n  <data name=\"TC03\" xml:space=\"preserve\">\n    <value>Renten- und Unterstützungskasse der Geometer</value>\n  </data>\n  <data name=\"TC04\" xml:space=\"preserve\">\n    <value>Nationale Rentenkasse und Unterstützung für freiberufliche Ingenieure und Architekten</value>\n  </data>\n  <data name=\"TC05\" xml:space=\"preserve\">\n    <value>Nationale Notarkasse</value>\n  </data>\n  <data name=\"TC06\" xml:space=\"preserve\">\n    <value>Nationale Rentenkasse und Unterstützung für Buchhalter und Handelsprüfer</value>\n  </data>\n  <data name=\"TC07\" xml:space=\"preserve\">\n    <value>Nationale Unterstützungseinrichtung für Handelsvertreter (ENASARCO)</value>\n  </data>\n  <data name=\"TC08\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Arbeitsberater (ENPACL)</value>\n  </data>\n  <data name=\"TC09\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Ärzte (ENPAM)</value>\n  </data>\n  <data name=\"TC10\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Apotheker (ENPAF)</value>\n  </data>\n  <data name=\"TC11\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Tierärzte (ENPAV)</value>\n  </data>\n  <data name=\"TC12\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für landwirtschaftliche Angestellte (ENPAIA)</value>\n  </data>\n  <data name=\"TC13\" xml:space=\"preserve\">\n    <value>Rentenfonds für Angestellte von Speditionsunternehmen und Schifffahrtsagenturen</value>\n  </data>\n  <data name=\"TC14\" xml:space=\"preserve\">\n    <value>Nationale Rentenversicherung für italienische Journalisten (INPGI)</value>\n  </data>\n  <data name=\"TC15\" xml:space=\"preserve\">\n    <value>Nationale Unterstützungseinrichtung für Waisen italienischer Gesundheitsberufe (ONAOSI)</value>\n  </data>\n  <data name=\"TC16\" xml:space=\"preserve\">\n    <value>Autonome Unterstützungskasse für italienische Journalisten (CASAGIT)</value>\n  </data>\n  <data name=\"TC17\" xml:space=\"preserve\">\n    <value>Renten- und Unterstützungseinrichtung für Industrieprüfer und graduierte Industrieprüfer (EPPI)</value>\n  </data>\n  <data name=\"TC18\" xml:space=\"preserve\">\n    <value>Renten- und Unterstützungseinrichtung für mehrere Kategorien (EPAP)</value>\n  </data>\n  <data name=\"TC19\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Biologen (ENPAB)</value>\n  </data>\n  <data name=\"TC20\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Pflegeberufe (ENPAPI)</value>\n  </data>\n  <data name=\"TC21\" xml:space=\"preserve\">\n    <value>Nationale Renten- und Unterstützungseinrichtung für Psychologen (ENPAP)</value>\n  </data>\n  <data name=\"TC22\" xml:space=\"preserve\">\n    <value>INPS</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoCassa.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TC01\" xml:space=\"preserve\">\n    <value>National Pension and Welfare Fund for Lawyers and Solicitors</value>\n  </data>\n  <data name=\"TC02\" xml:space=\"preserve\">\n    <value>Pension fund for accountants</value>\n  </data>\n  <data name=\"TC03\" xml:space=\"preserve\">\n    <value>Pension and welfare fund for surveyors</value>\n  </data>\n  <data name=\"TC04\" xml:space=\"preserve\">\n    <value>National pension and welfare fund for self-employed engineers and architects</value>\n  </data>\n  <data name=\"TC05\" xml:space=\"preserve\">\n    <value>National fund for solicitors</value>\n  </data>\n  <data name=\"TC06\" xml:space=\"preserve\">\n    <value>National pension and welfare fund for bookkeepers and commercial experts</value>\n  </data>\n  <data name=\"TC07\" xml:space=\"preserve\">\n    <value>National welfare board for sales agents and representatives (ENASARCO - Ente Nazionale Assistenza Agenti e Rappresentanti di Commercio)</value>\n  </data>\n  <data name=\"TC08\" xml:space=\"preserve\">\n    <value>National pension and welfare board for employment consultants (ENPACL - Ente Nazionale Previdenza e Assistenza Consulenti del Lavoro)</value>\n  </data>\n  <data name=\"TC09\" xml:space=\"preserve\">\n    <value>National pension and welfare board for doctors (ENPAM - Ente Nazionale Previdenza e Assistenza Medici)</value>\n  </data>\n  <data name=\"TC10\" xml:space=\"preserve\">\n    <value>National pension and welfare board for pharmacists (ENPAF - Ente Nazionale Previdenza e Assistenza Farmacisti )</value>\n  </data>\n  <data name=\"TC11\" xml:space=\"preserve\">\n    <value>National pension and welfare board for veterinary physicians (ENPAV - Ente Nazionale Previdenza e Assistenza Veterinari)</value>\n  </data>\n  <data name=\"TC12\" xml:space=\"preserve\">\n    <value>National pension and welfare board for agricultural employees (ENPAIA - Ente Nazionale Previdenza e Assistenza Impiegati dell'Agricoltura)</value>\n  </data>\n  <data name=\"TC13\" xml:space=\"preserve\">\n    <value>Pension fund for employees of shipping companies and maritime agencies)</value>\n  </data>\n  <data name=\"TC14\" xml:space=\"preserve\">\n    <value>National pension institute for Italian journalists (INPGI - Istituto Nazionale Previdenza Giornalisti Italiani)</value>\n  </data>\n  <data name=\"TC15\" xml:space=\"preserve\">\n    <value>National welfare board for orphans of Italian doctors (ONAOSI - Opera Nazionale Assistenza Orfani Sanitari Italiani)</value>\n  </data>\n  <data name=\"TC16\" xml:space=\"preserve\">\n    <value>Autonomous supplementary welfare fund for Italian journalists (CASAGIT - Cassa Autonoma Assistenza Integrativa Giornalisti Italiani)</value>\n  </data>\n  <data name=\"TC17\" xml:space=\"preserve\">\n    <value>Pension board for industrial experts and graduate industrial experts (EPPI - Ente Previdenza Periti Industriali e Periti Industriali Laureati)</value>\n  </data>\n  <data name=\"TC18\" xml:space=\"preserve\">\n    <value>National multi-category pension and welfare board (EPAP - Ente Previdenza e Assistenza Pluricategoriale)</value>\n  </data>\n  <data name=\"TC19\" xml:space=\"preserve\">\n    <value>National pension and welfare board for biologists (ENPAB - Ente Nazionale Previdenza e Assistenza Biologi)</value>\n  </data>\n  <data name=\"TC20\" xml:space=\"preserve\">\n    <value>National pension and welfare board for the nursing profession (ENPAPI - Ente Nazionale Previdenza e Assistenza Professione Infermieristica)</value>\n  </data>\n  <data name=\"TC21\" xml:space=\"preserve\">\n    <value>National pension and welfare board for psychologists (ENPAP - Ente Nazionale Previdenza e Assistenza Psicologi)</value>\n  </data>\n  <data name=\"TC22\" xml:space=\"preserve\">\n    <value>National Social Security Institute (INPS - Istituto Nazionale della Previdenza Sociale)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoCassa.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>  <data name=\"TC01\" xml:space=\"preserve\">\n    <value>Cassa nazionale previdenza e assistenza avvocati e procuratori legali</value>\n  </data>\n  <data name=\"TC02\" xml:space=\"preserve\">\n    <value>Cassa previdenza dottori commercialisti</value>\n  </data>\n  <data name=\"TC03\" xml:space=\"preserve\">\n    <value>Cassa previdenza e assistenza geometri</value>\n  </data>\n  <data name=\"TC04\" xml:space=\"preserve\">\n    <value>Cassa nazionale previdenza e assistenza ingegneri e architetti liberi professionisti</value>\n  </data>\n  <data name=\"TC05\" xml:space=\"preserve\">\n    <value>Cassa nazionale del notariato</value>\n  </data>\n  <data name=\"TC06\" xml:space=\"preserve\">\n    <value>Cassa nazionale previdenza e assistenza ragionieri e periti commerciali</value>\n  </data>\n  <data name=\"TC07\" xml:space=\"preserve\">\n    <value>Ente nazionale assistenza agenti e rappresentanti di commercio (ENASARCO)</value>\n  </data>\n  <data name=\"TC08\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza consulenti del lavoro (ENPACL)</value>\n  </data>\n  <data name=\"TC09\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza medici (ENPAM)</value>\n  </data>\n  <data name=\"TC10\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza farmacisti (ENPAF)</value>\n  </data>\n  <data name=\"TC11\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza veterinari (ENPAV)</value>\n  </data>\n  <data name=\"TC12\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza impiegati dell'agricoltura (ENPAIA)</value>\n  </data>\n  <data name=\"TC13\" xml:space=\"preserve\">\n    <value>Fondo previdenza impiegati imprese di spedizione e agenzie marittime</value>\n  </data>\n  <data name=\"TC14\" xml:space=\"preserve\">\n    <value>Istituto nazionale previdenza giornalisti italiani (INPGI)</value>\n  </data>\n  <data name=\"TC15\" xml:space=\"preserve\">\n    <value>Opera nazionale assistenza orfani sanitari italiani (ONAOSI)</value>\n  </data>\n  <data name=\"TC16\" xml:space=\"preserve\">\n    <value>Cassa autonoma assistenza integrativa giornalisti italiani (CASAGIT)</value>\n  </data>\n  <data name=\"TC17\" xml:space=\"preserve\">\n    <value>Ente previdenza periti industriali e periti industriali laureati (EPPI)</value>\n  </data>\n  <data name=\"TC18\" xml:space=\"preserve\">\n    <value>Ente previdenza e assistenza pluricategoriale (EPAP)</value>\n  </data>\n  <data name=\"TC19\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza biologi (ENPAB)</value>\n  </data>\n  <data name=\"TC20\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza professione infermieristica (ENPAPI)</value>\n  </data>\n  <data name=\"TC21\" xml:space=\"preserve\">\n    <value>Ente nazionale previdenza e assistenza psicologi (ENPAP)</value>\n  </data>\n  <data name=\"TC22\" xml:space=\"preserve\">\n    <value>INPS</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoCessionePrestazione.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class TipoCessionePrestazione {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal TipoCessionePrestazione() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.TipoCessionePrestazione\", typeof(TipoCessionePrestazione).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to abbuono.\n        /// </summary>\n        public static string AB {\n            get {\n                return ResourceManager.GetString(\"AB\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to spesa accessoria.\n        /// </summary>\n        public static string AC {\n            get {\n                return ResourceManager.GetString(\"AC\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to premio.\n        /// </summary>\n        public static string PR {\n            get {\n                return ResourceManager.GetString(\"PR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to sconto.\n        /// </summary>\n        public static string SC {\n            get {\n                return ResourceManager.GetString(\"SC\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/TipoCessionePrestazione.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>Rabatt</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>Prämie</value>\n  </data>\n  <data name=\"AB\" xml:space=\"preserve\">\n    <value>Abzug</value>\n  </data>\n  <data name=\"AC\" xml:space=\"preserve\">\n    <value>Zusatzkosten</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoCessionePrestazione.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>discount</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>bonus</value>\n  </data>\n  <data name=\"AB\" xml:space=\"preserve\">\n    <value>rebate</value>\n  </data>\n  <data name=\"AC\" xml:space=\"preserve\">\n    <value>ancillary expense</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoCessionePrestazione.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"SC\" xml:space=\"preserve\">\n    <value>sconto</value>\n  </data>\n  <data name=\"PR\" xml:space=\"preserve\">\n    <value>premio</value>\n  </data>\n  <data name=\"AB\" xml:space=\"preserve\">\n    <value>abbuono</value>\n  </data>\n  <data name=\"AC\" xml:space=\"preserve\">\n    <value>spesa accessoria</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoDocumento.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class TipoDocumento {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal TipoDocumento() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.TipoDocumento\", typeof(TipoDocumento).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to fattura.\n        /// </summary>\n        public static string TD01 {\n            get {\n                return ResourceManager.GetString(\"TD01\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to acconto/anticipo su fattura.\n        /// </summary>\n        public static string TD02 {\n            get {\n                return ResourceManager.GetString(\"TD02\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to acconto/anticipo su parcella.\n        /// </summary>\n        public static string TD03 {\n            get {\n                return ResourceManager.GetString(\"TD03\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to nota di credito.\n        /// </summary>\n        public static string TD04 {\n            get {\n                return ResourceManager.GetString(\"TD04\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to nota di debito.\n        /// </summary>\n        public static string TD05 {\n            get {\n                return ResourceManager.GetString(\"TD05\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to parcella.\n        /// </summary>\n        public static string TD06 {\n            get {\n                return ResourceManager.GetString(\"TD06\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to integrazione fattura reverse charge interno.\n        /// </summary>\n        public static string TD16 {\n            get {\n                return ResourceManager.GetString(\"TD16\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to integrazione/autofattura per acquisto servizi dall&apos;estero.\n        /// </summary>\n        public static string TD17 {\n            get {\n                return ResourceManager.GetString(\"TD17\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to integrazione per acquisto di beni intracomunitari.\n        /// </summary>\n        public static string TD18 {\n            get {\n                return ResourceManager.GetString(\"TD18\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to integrazione/autofattura per acquisto di beni ex art. 17 c.2 DPR 633/72.\n        /// </summary>\n        public static string TD19 {\n            get {\n                return ResourceManager.GetString(\"TD19\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to autofattura per regolarizzazione e integrazione delle fatture (ex art. 6 c.9-bis d.lgs. 471/97 o art. 46 c.5 d.l. 331/93).\n        /// </summary>\n        public static string TD20 {\n            get {\n                return ResourceManager.GetString(\"TD20\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to autofattura per splafonamento.\n        /// </summary>\n        public static string TD21 {\n            get {\n                return ResourceManager.GetString(\"TD21\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to estrazione beni da Deposito IVA.\n        /// </summary>\n        public static string TD22 {\n            get {\n                return ResourceManager.GetString(\"TD22\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to estrazione beni da Deposito IVA con versamento dell&apos;IVA.\n        /// </summary>\n        public static string TD23 {\n            get {\n                return ResourceManager.GetString(\"TD23\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Fattura differita di cui all’art.21, comma 4, terzo periodo lett. a) DPR 633/72.\n        /// </summary>\n        public static string TD24 {\n            get {\n                return ResourceManager.GetString(\"TD24\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Fattura differita di cui all’art.21, comma 4, terzo periodo lett. b) DPR 633/72.\n        /// </summary>\n        public static string TD25 {\n            get {\n                return ResourceManager.GetString(\"TD25\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to cessione di beni ammortizzabili e per passaggi interni (ex art.36 DPR 633/72).\n        /// </summary>\n        public static string TD26 {\n            get {\n                return ResourceManager.GetString(\"TD26\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to fattura per autoconsumo o per cessioni gratuite senza rivalsa.\n        /// </summary>\n        public static string TD27 {\n            get {\n                return ResourceManager.GetString(\"TD27\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to acquisti da San Marino con IVA (fattura cartacea).\n        /// </summary>\n        public static string TD28 {\n            get {\n                return ResourceManager.GetString(\"TD28\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to comunicazione per omessa o irregolare fatturazione (art. 6, comma 8, d.lgs. 471/97).\n        /// </summary>\n        public static string TD29 {\n            get {\n                return ResourceManager.GetString(\"TD29\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/TipoDocumento.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TD01\" xml:space=\"preserve\">\n    <value>Rechnung</value>\n  </data>\n  <data name=\"TD02\" xml:space=\"preserve\">\n    <value>Anzahlung/Vorauszahlung auf Rechnung</value>\n  </data>\n  <data name=\"TD03\" xml:space=\"preserve\">\n    <value>Anzahlung/Vorauszahlung auf Honorar</value>\n  </data>\n  <data name=\"TD04\" xml:space=\"preserve\">\n    <value>Gutschrift</value>\n  </data>\n  <data name=\"TD05\" xml:space=\"preserve\">\n    <value>Lastschrift</value>\n  </data>\n  <data name=\"TD06\" xml:space=\"preserve\">\n    <value>Honorar</value>\n  </data>\n  <data name=\"TD16\" xml:space=\"preserve\">\n    <value>Rechnungsintegration Reverse Charge intern</value>\n  </data>\n  <data name=\"TD17\" xml:space=\"preserve\">\n    <value>Integration/Selbstfakturierung für Dienstleistungen aus dem Ausland</value>\n  </data>\n  <data name=\"TD18\" xml:space=\"preserve\">\n    <value>Integration für innergemeinschaftlichen Erwerb von Waren</value>\n  </data>\n  <data name=\"TD19\" xml:space=\"preserve\">\n    <value>Integration/Selbstfakturierung für den Erwerb von Waren gemäß Art. 17 Abs. 2 DPR 633/72</value>\n  </data>\n  <data name=\"TD20\" xml:space=\"preserve\">\n    <value>Selbstfakturierung zur Regularisierung und Integration von Rechnungen (gemäß Art. 6 Abs. 9-bis d.lgs 471/97 oder Art. 46 Abs. 5 d.l. 331/93)</value>\n  </data>\n  <data name=\"TD21\" xml:space=\"preserve\">\n    <value>Selbstfakturierung für Überschreitung des Höchstbetrags</value>\n  </data>\n  <data name=\"TD22\" xml:space=\"preserve\">\n    <value>Entnahme von Waren aus dem Mehrwertsteuerlager</value>\n  </data>\n  <data name=\"TD23\" xml:space=\"preserve\">\n    <value>Entnahme von Waren aus dem Mehrwertsteuerlager mit Mehrwertsteuerzahlung</value>\n  </data>\n  <data name=\"TD24\" xml:space=\"preserve\">\n    <value>Verzögerte Rechnung gemäß Art. 21, Absatz 4, dritter Satz Buchstabe a) DPR 633/72</value>\n  </data>\n  <data name=\"TD25\" xml:space=\"preserve\">\n    <value>Verzögerte Rechnung gemäß Art. 21, Absatz 4, dritter Satz Buchstabe b) DPR 633/72</value>\n  </data>\n  <data name=\"TD26\" xml:space=\"preserve\">\n    <value>Verkauf von abnutzbaren Gütern und für interne Übertragungen (gemäß Art. 36 DPR 633/72)</value>\n  </data>\n  <data name=\"TD27\" xml:space=\"preserve\">\n    <value>Rechnung für Eigenverbrauch oder kostenlose Übertragungen ohne Rückgriff</value>\n  </data>\n  <data name=\"TD28\" xml:space=\"preserve\">\n    <value>Einkäufe aus San Marino mit Mehrwertsteuer (Papierrechnung)</value>\n  </data>\n  <data name=\"TD29\" xml:space=\"preserve\">\n    <value>Mitteilung wegen unterlassener oder unregelmäßiger Rechnungsstellung (Art. 6, Absatz 8, d.lgs 471/97)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoDocumento.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n\n  <data name=\"TD01\" xml:space=\"preserve\">\n    <value>invoice</value>\n  </data>\n  <data name=\"TD02\" xml:space=\"preserve\">\n    <value>advance/down payment on invoice</value>\n  </data>\n  <data name=\"TD03\" xml:space=\"preserve\">\n    <value>advance/down payment on fee</value>\n  </data>\n  <data name=\"TD04\" xml:space=\"preserve\">\n    <value>credit note</value>\n  </data>\n  <data name=\"TD05\" xml:space=\"preserve\">\n    <value>debit note</value>\n  </data>\n  <data name=\"TD06\" xml:space=\"preserve\">\n    <value>fee</value>\n  </data>\n  <data name=\"TD16\" xml:space=\"preserve\">\n    <value>reverse charge internal invoice integration</value>\n  </data>\n  <data name=\"TD17\" xml:space=\"preserve\">\n    <value>integration/self invoicing for purchase services from abroad</value>\n  </data>\n  <data name=\"TD18\" xml:space=\"preserve\">\n    <value>integration for purchase of intra UE goods</value>\n  </data>\n  <data name=\"TD19\" xml:space=\"preserve\">\n    <value>integration/self invoicing for purchase of goods ex art.17 c.2 DPR 633/72</value>\n  </data>\n  <data name=\"TD20\" xml:space=\"preserve\">\n    <value>self invoice invoicing for regularization and integration of invoices (ex article 6 c.9-bis d.lgs. 471/97 or article 46 c.5 d.l. 331/93)</value>\n  </data>\n  <data name=\"TD21\" xml:space=\"preserve\">\n    <value>self invoicing for splaphoning</value>\n  </data>\n  <data name=\"TD22\" xml:space=\"preserve\">\n    <value>extractions of goods from VAT Warehouse</value>\n  </data>\n  <data name=\"TD23\" xml:space=\"preserve\">\n    <value>extractions of goods from VAT Warehouse with payment of VAT</value>\n  </data>\n  <data name=\"TD24\" xml:space=\"preserve\">\n    <value>deferred invoice ex art.21, c.4, third period lett. a) DPR 633/72</value>\n  </data>\n  <data name=\"TD25\" xml:space=\"preserve\">\n    <value>deferred invoice ex art.21, c.4, third period lett. b) DPR 633/72</value>\n  </data>\n  <data name=\"TD26\" xml:space=\"preserve\">\n    <value>sale of depreciable assets and for internal transfers (ex art.36 DPR 633/72)</value>\n  </data>\n  <data name=\"TD27\" xml:space=\"preserve\">\n    <value>self invoicing for self consumption or for free transfer without recourse</value>\n  </data>\n  <data name=\"TD28\" xml:space=\"preserve\">\n    <value>purchases from san marino with VAT (paper invoice)</value>\n  </data>\n  <data name=\"TD29\" xml:space=\"preserve\">\n    <value>communication for omitted or irregular invoicing (article 6, paragraph 8, Legislative Decree 471/97)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoDocumento.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n\n  <data name=\"TD01\" xml:space=\"preserve\">\n    <value>fattura</value>\n  </data>\n  <data name=\"TD02\" xml:space=\"preserve\">\n    <value>acconto/anticipo su fattura</value>\n  </data>\n  <data name=\"TD03\" xml:space=\"preserve\">\n    <value>acconto/anticipo su parcella</value>\n  </data>\n  <data name=\"TD04\" xml:space=\"preserve\">\n    <value>nota di credito</value>\n  </data>\n  <data name=\"TD05\" xml:space=\"preserve\">\n    <value>nota di debito</value>\n  </data>\n  <data name=\"TD06\" xml:space=\"preserve\">\n    <value>parcella</value>\n  </data>\n  <data name=\"TD16\" xml:space=\"preserve\">\n    <value>integrazione fattura reverse charge interno</value>\n  </data>\n  <data name=\"TD17\" xml:space=\"preserve\">\n    <value>integrazione/autofattura per acquisto servizi dall'estero</value>\n  </data>\n  <data name=\"TD18\" xml:space=\"preserve\">\n    <value>integrazione per acquisto di beni intracomunitari</value>\n  </data>\n  <data name=\"TD19\" xml:space=\"preserve\">\n    <value>integrazione/autofattura per acquisto di beni ex art. 17 c.2 DPR 633/72</value>\n  </data>\n  <data name=\"TD20\" xml:space=\"preserve\">\n    <value>autofattura per regolarizzazione e integrazione delle fatture (ex art. 6 c.9-bis d.lgs. 471/97 o art. 46 c.5 d.l. 331/93)</value>\n  </data>\n  <data name=\"TD21\" xml:space=\"preserve\">\n    <value>autofattura per splafonamento</value>\n  </data>\n  <data name=\"TD22\" xml:space=\"preserve\">\n    <value>estrazione beni da Deposito IVA</value>\n  </data>\n  <data name=\"TD23\" xml:space=\"preserve\">\n    <value>estrazione beni da Deposito IVA con versamento dell'IVA</value>\n  </data>\n  <data name=\"TD24\" xml:space=\"preserve\">\n    <value>Fattura differita di cui all’art.21, comma 4, terzo periodo lett. a) DPR 633/72</value>\n  </data>\n  <data name=\"TD25\" xml:space=\"preserve\">\n    <value>Fattura differita di cui all’art.21, comma 4, terzo periodo lett. b) DPR 633/72</value>\n  </data>\n  <data name=\"TD26\" xml:space=\"preserve\">\n    <value>cessione di beni ammortizzabili e per passaggi interni (ex art.36 DPR 633/72)</value>\n  </data>\n  <data name=\"TD27\" xml:space=\"preserve\">\n    <value>fattura per autoconsumo o per cessioni gratuite senza rivalsa</value>\n  </data>\n  <data name=\"TD28\" xml:space=\"preserve\">\n    <value>acquisti da San Marino con IVA (fattura cartacea)</value>\n  </data>\n  <data name=\"TD29\" xml:space=\"preserve\">\n    <value>comunicazione per omessa o irregolare fatturazione (art. 6, comma 8, d.lgs. 471/97)</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoDocumentoSemplificata.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class TipoDocumentoSemplificata {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal TipoDocumentoSemplificata() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.TipoDocumentoSemplificata\", typeof(TipoDocumentoSemplificata).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to fattura semplificata.\n        /// </summary>\n        public static string TD07 {\n            get {\n                return ResourceManager.GetString(\"TD07\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to nota di credito semplificata.\n        /// </summary>\n        public static string TD08 {\n            get {\n                return ResourceManager.GetString(\"TD08\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to nota di debito semplificata.\n        /// </summary>\n        public static string TD09 {\n            get {\n                return ResourceManager.GetString(\"TD09\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/TipoDocumentoSemplificata.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TD07\" xml:space=\"preserve\">\n    <value>vereinfachte Rechnung</value>\n  </data>\n  <data name=\"TD08\" xml:space=\"preserve\">\n    <value>vereinfachte Gutschrift</value>\n  </data>\n  <data name=\"TD09\" xml:space=\"preserve\">\n    <value>vereinfachte Lastschrift</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoDocumentoSemplificata.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TD07\" xml:space=\"preserve\">\n    <value>simplified invoice</value>\n  </data>\n  <data name=\"TD08\" xml:space=\"preserve\">\n    <value>simplified credit note</value>\n  </data>\n  <data name=\"TD09\" xml:space=\"preserve\">\n    <value>simplified debit note</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoDocumentoSemplificata.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"TD07\" xml:space=\"preserve\">\n    <value>fattura semplificata</value>\n  </data>\n  <data name=\"TD08\" xml:space=\"preserve\">\n    <value>nota di credito semplificata</value>\n  </data>\n  <data name=\"TD09\" xml:space=\"preserve\">\n    <value>nota di debito semplificata</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoResa.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class TipoResa {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal TipoResa() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.TipoResa\", typeof(TipoResa).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Costo e Nolo.\n        /// </summary>\n        public static string CFR {\n            get {\n                return ResourceManager.GetString(\"CFR\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Costo, assicurazione e nolo.\n        /// </summary>\n        public static string CIF {\n            get {\n                return ResourceManager.GetString(\"CIF\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trasporto e assicurazione pagati fino a.\n        /// </summary>\n        public static string CIP {\n            get {\n                return ResourceManager.GetString(\"CIP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Trasporto pagato fino a.\n        /// </summary>\n        public static string CPT {\n            get {\n                return ResourceManager.GetString(\"CPT\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Reso a luogo di destinazione.\n        /// </summary>\n        public static string DAP {\n            get {\n                return ResourceManager.GetString(\"DAP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Reso sdoganato.\n        /// </summary>\n        public static string DDP {\n            get {\n                return ResourceManager.GetString(\"DDP\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Reso al luogo di destinazione scaricato.\n        /// </summary>\n        public static string DPU {\n            get {\n                return ResourceManager.GetString(\"DPU\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Franco Fabbrica.\n        /// </summary>\n        public static string EXW {\n            get {\n                return ResourceManager.GetString(\"EXW\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Franco lungo bordo.\n        /// </summary>\n        public static string FAS {\n            get {\n                return ResourceManager.GetString(\"FAS\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Franco Vettore.\n        /// </summary>\n        public static string FCA {\n            get {\n                return ResourceManager.GetString(\"FCA\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to Franco a bordo.\n        /// </summary>\n        public static string FOB {\n            get {\n                return ResourceManager.GetString(\"FOB\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/TipoResa.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"EXW\" xml:space=\"preserve\">\n    <value>Ab Werk</value>\n  </data>\n  <data name=\"FCA\" xml:space=\"preserve\">\n    <value>Frei Frachtführer</value>\n  </data>\n  <data name=\"FAS\" xml:space=\"preserve\">\n    <value>Frei Längsseite Schiff</value>\n  </data>\n  <data name=\"FOB\" xml:space=\"preserve\">\n    <value>Frei an Bord</value>\n  </data>\n  <data name=\"CFR\" xml:space=\"preserve\">\n    <value>Kosten und Fracht</value>\n  </data>\n  <data name=\"CIF\" xml:space=\"preserve\">\n    <value>Kosten, Versicherung und Fracht</value>\n  </data>\n  <data name=\"CPT\" xml:space=\"preserve\">\n    <value>Fracht bezahlt bis zu</value>\n  </data>\n  <data name=\"CIP\" xml:space=\"preserve\">\n    <value>Versand und Versicherung bis max. bezahlt</value>\n  </data>\n  <data name=\"DPU\" xml:space=\"preserve\">\n    <value>Zum Entladeziel zurückgekehrt</value>\n  </data>\n  <data name=\"DAP\" xml:space=\"preserve\">\n    <value>Rückkehr zum Bestimmungsort</value>\n  </data>\n  <data name=\"DDP\" xml:space=\"preserve\">\n    <value>Rücksendung verzollt</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoResa.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"EXW\" xml:space=\"preserve\">\n    <value>Ex Works</value>\n  </data>\n  <data name=\"FCA\" xml:space=\"preserve\">\n    <value>Free Carrier</value>\n  </data>\n  <data name=\"FAS\" xml:space=\"preserve\">\n    <value>Free Alongside Ship</value>\n  </data>\n  <data name=\"FOB\" xml:space=\"preserve\">\n    <value>Free On Board</value>\n  </data>\n  <data name=\"CFR\" xml:space=\"preserve\">\n    <value>Cost and Freight</value>\n  </data>\n  <data name=\"CIF\" xml:space=\"preserve\">\n    <value>Cost, Insurance and Freight</value>\n  </data>\n  <data name=\"CPT\" xml:space=\"preserve\">\n    <value>Carriage Paid To</value>\n  </data>\n  <data name=\"CIP\" xml:space=\"preserve\">\n    <value>Carriage and Insurance Paid To</value>\n  </data>\n  <data name=\"DPU\" xml:space=\"preserve\">\n    <value>Delivered at Place Unloaded</value>\n  </data>\n  <data name=\"DAP\" xml:space=\"preserve\">\n    <value>Delivered at Place</value>\n  </data>\n  <data name=\"DDP\" xml:space=\"preserve\">\n    <value>Delivered Duty Paid</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoResa.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"EXW\" xml:space=\"preserve\">\n    <value>Franco Fabbrica</value>\n  </data>\n  <data name=\"FCA\" xml:space=\"preserve\">\n    <value>Franco Vettore</value>\n  </data>\n  <data name=\"FAS\" xml:space=\"preserve\">\n    <value>Franco lungo bordo</value>\n  </data>\n  <data name=\"FOB\" xml:space=\"preserve\">\n    <value>Franco a bordo</value>\n  </data>\n  <data name=\"CFR\" xml:space=\"preserve\">\n    <value>Costo e Nolo</value>\n  </data>\n  <data name=\"CIF\" xml:space=\"preserve\">\n    <value>Costo, assicurazione e nolo</value>\n  </data>\n  <data name=\"CPT\" xml:space=\"preserve\">\n    <value>Trasporto pagato fino a</value>\n  </data>\n  <data name=\"CIP\" xml:space=\"preserve\">\n    <value>Trasporto e assicurazione pagati fino a</value>\n  </data>\n  <data name=\"DPU\" xml:space=\"preserve\">\n    <value>Reso al luogo di destinazione scaricato</value>\n  </data>\n  <data name=\"DAP\" xml:space=\"preserve\">\n    <value>Reso a luogo di destinazione</value>\n  </data>\n  <data name=\"DDP\" xml:space=\"preserve\">\n    <value>Reso sdoganato</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoRitenuta.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    /// <summary>\n    ///   A strongly-typed resource class, for looking up localized strings, etc.\n    /// </summary>\n    // This class was auto-generated by the StronglyTypedResourceBuilder\n    // class via a tool like ResGen or Visual Studio.\n    // To add or remove a member, edit your .ResX file then rerun ResGen\n    // with the /str option, or rebuild your VS project.\n    [global::System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class TipoRitenuta {\n        \n        private static global::System.Resources.ResourceManager resourceMan;\n        \n        private static global::System.Globalization.CultureInfo resourceCulture;\n        \n        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal TipoRitenuta() {\n        }\n        \n        /// <summary>\n        ///   Returns the cached ResourceManager instance used by this class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.ReferenceEquals(resourceMan, null)) {\n                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(\"FatturaElettronica.Resources.TipoRitenuta\", typeof(TipoRitenuta).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        /// <summary>\n        ///   Overrides the current thread's CurrentUICulture property for all\n        ///   resource lookups using this strongly typed resource class.\n        /// </summary>\n        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static global::System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to ritenuta persone fisiche.\n        /// </summary>\n        public static string RT01 {\n            get {\n                return ResourceManager.GetString(\"RT01\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to ritenuta persone giuridiche.\n        /// </summary>\n        public static string RT02 {\n            get {\n                return ResourceManager.GetString(\"RT02\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to contributo INPS.\n        /// </summary>\n        public static string RT03 {\n            get {\n                return ResourceManager.GetString(\"RT03\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to contributo ENASARCO.\n        /// </summary>\n        public static string RT04 {\n            get {\n                return ResourceManager.GetString(\"RT04\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to contributo ENPAM.\n        /// </summary>\n        public static string RT05 {\n            get {\n                return ResourceManager.GetString(\"RT05\", resourceCulture);\n            }\n        }\n        \n        /// <summary>\n        ///   Looks up a localized string similar to altro contributo previdenziale.\n        /// </summary>\n        public static string RT06 {\n            get {\n                return ResourceManager.GetString(\"RT06\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/TipoRitenuta.de.resx",
    "content": "﻿<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"RT01\" xml:space=\"preserve\">\n    <value>Abzug für natürliche Personen</value>\n  </data>\n  <data name=\"RT02\" xml:space=\"preserve\">\n    <value>Abzug für juristische Personen</value>\n  </data>\n  <data name=\"RT03\" xml:space=\"preserve\">\n    <value>INPS-Beitrag</value>\n  </data>\n  <data name=\"RT04\" xml:space=\"preserve\">\n    <value>ENASARCO-Beitrag</value>\n  </data>\n  <data name=\"RT05\" xml:space=\"preserve\">\n    <value>ENPAM-Beitrag</value>\n  </data>\n  <data name=\"RT06\" xml:space=\"preserve\">\n    <value>anderer Sozialversicherungsbeitrag</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoRitenuta.en.resx",
    "content": "<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"RT01\" xml:space=\"preserve\">\n    <value>witholding tax natural persons</value>\n  </data>\n  <data name=\"RT02\" xml:space=\"preserve\">\n    <value>witholding corporate entities</value>\n  </data>\n  <data name=\"RT03\" xml:space=\"preserve\">\n    <value>INPS contribution</value>\n  </data>\n  <data name=\"RT04\" xml:space=\"preserve\">\n    <value>ENASARCO contribution</value>\n  </data>\n  <data name=\"RT05\" xml:space=\"preserve\">\n    <value>ENPAM contribution</value>\n  </data>\n  <data name=\"RT06\" xml:space=\"preserve\">\n    <value>other social security contribution</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/TipoRitenuta.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n      \n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"RT01\" xml:space=\"preserve\">\n    <value>ritenuta persone fisiche</value>\n  </data>\n  <data name=\"RT02\" xml:space=\"preserve\">\n    <value>ritenuta persone giuridiche</value>\n  </data>\n  <data name=\"RT03\" xml:space=\"preserve\">\n    <value>contributo INPS</value>\n  </data>\n  <data name=\"RT04\" xml:space=\"preserve\">\n    <value>contributo ENASARCO</value>\n  </data>\n  <data name=\"RT05\" xml:space=\"preserve\">\n    <value>contributo ENPAM</value>\n  </data>\n  <data name=\"RT06\" xml:space=\"preserve\">\n    <value>altro contributo previdenziale</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ValidatorMessages.Designer.cs",
    "content": "﻿//------------------------------------------------------------------------------\n// <auto-generated>\n//     This code was generated by a tool.\n//\n//     Changes to this file may cause incorrect behavior and will be lost if\n//     the code is regenerated.\n// </auto-generated>\n//------------------------------------------------------------------------------\n\nnamespace FatturaElettronica.Resources {\n    using System;\n    \n    \n    [System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Resources.Tools.StronglyTypedResourceBuilder\", \"4.0.0.0\")]\n    [System.Diagnostics.DebuggerNonUserCodeAttribute()]\n    [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]\n    public class ValidatorMessages {\n        \n        private static System.Resources.ResourceManager resourceMan;\n        \n        private static System.Globalization.CultureInfo resourceCulture;\n        \n        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute(\"Microsoft.Performance\", \"CA1811:AvoidUncalledPrivateCode\")]\n        internal ValidatorMessages() {\n        }\n        \n        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static System.Resources.ResourceManager ResourceManager {\n            get {\n                if (object.Equals(null, resourceMan)) {\n                    System.Resources.ResourceManager temp = new System.Resources.ResourceManager(\"FatturaElettronica.Resources.ValidatorMessages\", typeof(ValidatorMessages).Assembly);\n                    resourceMan = temp;\n                }\n                return resourceMan;\n            }\n        }\n        \n        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]\n        public static System.Globalization.CultureInfo Culture {\n            get {\n                return resourceCulture;\n            }\n            set {\n                resourceCulture = value;\n            }\n        }\n        \n        public static string E00417 {\n            get {\n                return ResourceManager.GetString(\"E00417\", resourceCulture);\n            }\n        }\n        \n        public static string E00425 {\n            get {\n                return ResourceManager.GetString(\"E00425\", resourceCulture);\n            }\n        }\n        \n        public static string E00415 {\n            get {\n                return ResourceManager.GetString(\"E00415\", resourceCulture);\n            }\n        }\n        \n        public static string E00418 {\n            get {\n                return ResourceManager.GetString(\"E00418\", resourceCulture);\n            }\n        }\n        \n        public static string E00429 {\n            get {\n                return ResourceManager.GetString(\"E00429\", resourceCulture);\n            }\n        }\n        \n        public static string E00419 {\n            get {\n                return ResourceManager.GetString(\"E00419\", resourceCulture);\n            }\n        }\n        \n        public static string E00420 {\n            get {\n                return ResourceManager.GetString(\"E00420\", resourceCulture);\n            }\n        }\n        \n        public static string E00423 {\n            get {\n                return ResourceManager.GetString(\"E00423\", resourceCulture);\n            }\n        }\n        \n        public static string E00400 {\n            get {\n                return ResourceManager.GetString(\"E00400\", resourceCulture);\n            }\n        }\n        \n        public static string E00411 {\n            get {\n                return ResourceManager.GetString(\"E00411\", resourceCulture);\n            }\n        }\n        \n        public static string E00422 {\n            get {\n                return ResourceManager.GetString(\"E00422\", resourceCulture);\n            }\n        }\n        \n        public static string E00474 {\n            get {\n                return ResourceManager.GetString(\"E00474\", resourceCulture);\n            }\n        }\n        \n        public static string E00476 {\n            get {\n                return ResourceManager.GetString(\"E00476\", resourceCulture);\n            }\n        }\n        \n        public static string E00475 {\n            get {\n                return ResourceManager.GetString(\"E00475\", resourceCulture);\n            }\n        }\n        \n        public static string E00471 {\n            get {\n                return ResourceManager.GetString(\"E00471\", resourceCulture);\n            }\n        }\n        \n        public static string E00472 {\n            get {\n                return ResourceManager.GetString(\"E00472\", resourceCulture);\n            }\n        }\n        \n        public static string E00473 {\n            get {\n                return ResourceManager.GetString(\"E00473\", resourceCulture);\n            }\n        }\n        \n        public static string E00443 {\n            get {\n                return ResourceManager.GetString(\"E00443\", resourceCulture);\n            }\n        }\n        \n        public static string E00444 {\n            get {\n                return ResourceManager.GetString(\"E00444\", resourceCulture);\n            }\n        }\n        \n        public static string E00401 {\n            get {\n                return ResourceManager.GetString(\"E00401\", resourceCulture);\n            }\n        }\n        \n        public static string E00430 {\n            get {\n                return ResourceManager.GetString(\"E00430\", resourceCulture);\n            }\n        }\n        \n        public static string E00437 {\n            get {\n                return ResourceManager.GetString(\"E00437\", resourceCulture);\n            }\n        }\n        \n        public static string ValidNumberRange_X_Y {\n            get {\n                return ResourceManager.GetString(\"ValidNumberRange_X_Y\", resourceCulture);\n            }\n        }\n        \n        public static string DatiBeniServiziEObbligatorio {\n            get {\n                return ResourceManager.GetString(\"DatiBeniServiziEObbligatorio\", resourceCulture);\n            }\n        }\n        \n        public static string IdentificativiFiscaliEObbligatorio {\n            get {\n                return ResourceManager.GetString(\"IdentificativiFiscaliEObbligatorio\", resourceCulture);\n            }\n        }\n        \n        public static string E00418_S {\n            get {\n                return ResourceManager.GetString(\"E00418_S\", resourceCulture);\n            }\n        }\n        \n        public static string E00401_S {\n            get {\n                return ResourceManager.GetString(\"E00401_S\", resourceCulture);\n            }\n        }\n        \n        public static string E00400_S {\n            get {\n                return ResourceManager.GetString(\"E00400_S\", resourceCulture);\n            }\n        }\n        \n        public static string E00460 {\n            get {\n                return ResourceManager.GetString(\"E00460\", resourceCulture);\n            }\n        }\n        \n        public static string E00471_S {\n            get {\n                return ResourceManager.GetString(\"E00471_S\", resourceCulture);\n            }\n        }\n        \n        public static string E00417_S {\n            get {\n                return ResourceManager.GetString(\"E00417_S\", resourceCulture);\n            }\n        }\n        \n        public static string PropertyName_valoriAccettati_AcceptedValues {\n            get {\n                return ResourceManager.GetString(\"PropertyName_valoriAccettati_AcceptedValues\", resourceCulture);\n            }\n        }\n        \n        public static string TestoContententeCaratteriNonValidi {\n            get {\n                return ResourceManager.GetString(\"TestoContententeCaratteriNonValidi\", resourceCulture);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Resources/ValidatorMessages.de.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"E00417\" xml:space=\"preserve\">\n  <value>IdFiscaleIVA und CodiceFiscale nicht ausgefüllt (mindestens eines der beiden muss ausgefüllt sein)</value>\n  </data>\n    <data name=\"E00425\" xml:space=\"preserve\">\n    <value>Nummer enthält keine numerischen Zeichen</value>\n  </data>\n    <data name=\"E00415\" xml:space=\"preserve\">\n    <value>DatiRitenuta nicht vorhanden, obwohl DatiCassaPrevidenziale.Ritenuta ausgefüllt ist</value>\n  </data>\n    <data name=\"E00418\" xml:space=\"preserve\">\n    <value>Datum liegt vor einem oder mehreren Daten in DatiFattureCollegate</value>\n  </data>\n    <data name=\"E00429\" xml:space=\"preserve\">\n    <value>Natura nicht vorhanden, obwohl Aliquota IVA gleich 0 ist</value>\n  </data>\n    <data name=\"E00420\" xml:space=\"preserve\">\n    <value>Natura mit Wert vom Typ 'N6' (Reverse-Charge) bei EsigiblitaIVA gleich 'S' (Split-Payment)</value>\n  </data>\n    <data name=\"E00423\" xml:space=\"preserve\">\n    <value>PrezzoTotale nicht gemäß den technischen Spezifikationen berechnet</value>\n  </data>\n    <data name=\"E00400\" xml:space=\"preserve\">\n    <value>Natura nicht vorhanden, obwohl Aliquota IVA gleich 0 ist</value>\n  </data>\n    <data name=\"E00411\" xml:space=\"preserve\">\n    <value>DatiRitenuta nicht vorhanden, obwohl mindestens ein DettaglioLinee-Block mit Ritenuta gleich SI vorhanden ist</value>\n  </data>\n    <data name=\"E00422\" xml:space=\"preserve\">\n    <value>ImponibileImporto nicht gemäß den technischen Spezifikationen berechnet</value>\n  </data>\n  <data name=\"E00474\" xml:space=\"preserve\">\n    <value>Im Dokumententyp 'TD21 Selbstfakturierung für Überschreitung des Höchstbetrags' müssen alle Detailzeilen einen Mehrwertsteuersatz ungleich 0 haben</value>\n  </data>\n    <data name=\"E00476\" xml:space=\"preserve\">\n    <value>Die Elemente IdPaese und IdPaese können nicht beide mit einem anderen Code als IT ausgefüllt sein</value>\n  </data>\n  <data name=\"E00475\" xml:space=\"preserve\">\n    <value>Für den im Element 2.1.1.1 TipoDocumento angegebenen Wert muss das Element 1.4.1.1 IdFiscaleIVA des Übernehmers/Kunden vorhanden sein</value>\n  </data>\n  <data name=\"E00471\" xml:space=\"preserve\">\n    <value>Für den im Element 2.1.1.1 TipoDocumento angegebenen Wert kann der Übertragende/Anbieter nicht mit dem Übernehmenden/Auftraggeber identisch sein</value>\n  </data>\n    <data name=\"E00472\" xml:space=\"preserve\">\n    <value>Die Werte TD21 und TD27 des Dokumententyps erlauben nicht die Angabe eines anderen Lieferanten als des Empfängers</value>\n  </data>\n  <data name=\"E00473\" xml:space=\"preserve\">\n    <value>Für den angegebenen Wert im Element TipoDocumento ist der Wert im Element IdPaese nicht zulässig</value>\n  </data>\n    <data name=\"E00443\" xml:space=\"preserve\">\n    <value>Alle Mehrwertsteuersätze in den Detailzeilen einer Rechnung oder in den Daten der Sozialversicherungskasse müssen auch in den Zusammenfassungsdaten vorhanden sein</value>\n  </data>\n    <data name=\"E00444\" xml:space=\"preserve\">\n    <value>Alle Werte der Natur der Operation in den Detailzeilen einer Rechnung oder in den Daten der Sozialversicherungskasse müssen auch in den Zusammenfassungsdaten vorhanden sein</value>\n  </data>\n  <data name=\"E00401\" xml:space=\"preserve\">\n    <value>Natura vorhanden, obwohl Aliquota IVA ungleich 0 ist (die Angabe eines Mehrwertsteuersatzes ungleich 0 qualifiziert die Operation als steuerpflichtig und daher ist die Angabe des Elements Natura nicht zulässig, außer im Fall, dass das Element TipoDocumento den Wert TD16 annimmt)</value>\n  </data>\n  <data name=\"E00430\" xml:space=\"preserve\">\n    <value>Natura vorhanden, obwohl Aliquota IVA ungleich 0 ist (die Angabe eines Mehrwertsteuersatzes ungleich 0 qualifiziert die Operation als steuerpflichtig und daher ist die Angabe des Elements Natura nicht zulässig, außer im Fall, dass das Element TipoDocumento den Wert TD16 annimmt)</value>\n  </data>\n    <data name=\"E00437\" xml:space=\"preserve\">\n    <value>Prozentsatz und Betrag nicht vorhanden, obwohl Typ ausgefüllt ist</value>\n  </data>\n    <data name=\"ValidNumberRange_X_Y\" xml:space=\"preserve\">\n    <value>Zulässige Werte {0}-{1}</value>\n  </data>\n    <data name=\"DatiBeniServiziEObbligatorio\" xml:space=\"preserve\">\n    <value>DatiBeniServizi ist obligatorisch</value>\n  </data>\n    <data name=\"IdentificativiFiscaliEObbligatorio\" xml:space=\"preserve\">\n    <value>IdentificativiFiscali ist obligatorisch</value>\n  </data>\n    <data name=\"E00418_S\" xml:space=\"preserve\">\n    <value>Datum liegt vor dem Datum der korrigierten Rechnung</value>\n  </data>\n  <data name=\"E00401_S\" xml:space=\"preserve\">\n    <value>Natura vorhanden, obwohl Aliquota IVA ungleich 0 ist</value>\n  </data>\n  <data name=\"E00400_S\" xml:space=\"preserve\">\n    <value>Die Angabe eines Mehrwertsteuersatzes von 0 erfordert die Angabe der Natur der Operation, die die Nichtbesteuerung rechtfertigt</value>\n  </data>\n    <data name=\"E00460\" xml:space=\"preserve\">\n    <value>Gesamtbetrag übersteigt das für vereinfachte Rechnungen gemäß DPR 633/72, Art. 21bis und DM vom 10. Mai 2019 vorgesehene Limit</value>\n  </data>\n    <data name=\"E00471_S\" xml:space=\"preserve\">\n    <value>Der Wert TD07 des Dokumententyps erlaubt nicht die Angabe derselben Person sowohl als Lieferant als auch als Empfänger</value>\n  </data>\n    <data name=\"E00417_S\" xml:space=\"preserve\">\n    <value>IdFiscaleIVA und CodiceFiscale nicht ausgefüllt (mindestens eines der beiden muss ausgefüllt sein)</value>\n  </data>\n  <data name=\"E00419\" xml:space=\"preserve\">\n    <value>DatiRiepilogo ist in der Korrespondenz mit einem Wert von DettaglioLinee.AliquiotaIVA oder DatiCassaPrevidenziale.AliquotaIVA nicht vorhanden</value>\n  </data>\n  <data name=\"PropertyName_valoriAccettati_AcceptedValues\" xml:space=\"preserve\">\n    <value>'{PropertyName}' zulässige Werte: {AcceptedValues}</value>\n  </data>\n  <data name=\"TestoContententeCaratteriNonValidi\" xml:space=\"preserve\">\n    <value>Text enthält ungültige Zeichen ({0}). nicht akzeptierte Werte: {{NonLatinCode}}</value>\n  </data>\n</root>\n"
  },
  {
    "path": "Resources/ValidatorMessages.en.resx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"E00417\" xml:space=\"preserve\">\n    <value>No VAT ID or Fiscal Code provided (at least one must be populated)</value>\n  </data>\n  <data name=\"E00425\" xml:space=\"preserve\">\n    <value>Number does not contain numeric characters</value>\n  </data>\n  <data name=\"E00415\" xml:space=\"preserve\">\n    <value>DatiRitenuta not present despite DatiCassaPrevidenziale.Ritenuta being populated</value>\n  </data>\n  <data name=\"E00418\" xml:space=\"preserve\">\n    <value>Date is earlier than one or more dates in DatiFattureCollegate</value>\n  </data>\n  <data name=\"E00429\" xml:space=\"preserve\">\n    <value>Nature not present when VAT Rate is zero</value>\n  </data>\n  <data name=\"E00419\" xml:space=\"preserve\">\n    <value>DatiRiepilogo not present corresponding to at least one DettaglioLinee.AliquotaIVA or DatiCassaPrevidenziale.AliquotaIVA value</value>\n  </data>\n  <data name=\"E00420\" xml:space=\"preserve\">\n    <value>Nature with value 'N6' (accounting reversal) against EsigiblitaIVA equal to 'S' (split payment)</value>\n  </data>\n  <data name=\"E00423\" xml:space=\"preserve\">\n    <value>PrezzoTotale not calculated according to technical specifications</value>\n  </data>\n  <data name=\"E00400\" xml:space=\"preserve\">\n    <value>Nature not present when VAT Rate is zero</value>\n  </data>\n  <data name=\"E00411\" xml:space=\"preserve\">\n    <value>DatiRitenuta not present despite at least one DettaglioLinee block with Ritenuta equal to YES</value>\n  </data>\n  <data name=\"E00422\" xml:space=\"preserve\">\n    <value>ImponibileImporto not calculated according to technical specifications</value>\n  </data>\n  <data name=\"E00474\" xml:space=\"preserve\">\n    <value>In document type 'self-invoice for overstepping' all detail lines must have a VAT rate different from zero</value>\n  </data>\n  <data name=\"E00476\" xml:space=\"preserve\">\n    <value>Elements IdPaese and IdPaese cannot both be populated with a code different from IT</value>\n  </data>\n  <data name=\"E00475\" xml:space=\"preserve\">\n    <value>For the value indicated in element 2.1.1.1 DocumentType, the element 1.4.1.1 VAT ID of the buyer/customer must be present</value>\n  </data>\n  <data name=\"E00471\" xml:space=\"preserve\">\n    <value>For the value indicated in element 2.1.1.1 DocumentType, the supplier/provider cannot be the same as the buyer/customer</value>\n  </data>\n  <data name=\"E00472\" xml:space=\"preserve\">\n    <value>Document types TD21 and TD27 do not allow indication of a supplier different from the buyer</value>\n  </data>\n  <data name=\"E00473\" xml:space=\"preserve\">\n    <value>For the value indicated in element 2.1.1.1 DocumentType, the value in element 1.2.1.1.1 IdPaese is not allowed</value>\n  </data>\n  <data name=\"E00443\" xml:space=\"preserve\">\n    <value>All VAT rate values in invoice detail lines or social security fund data must also be present in summary data</value>\n  </data>\n  <data name=\"E00444\" xml:space=\"preserve\">\n    <value>All operation nature values in invoice detail lines or social security fund data must also be present in summary data</value>\n  </data>\n  <data name=\"E00401\" xml:space=\"preserve\">\n    <value>Nature present when VAT Rate is non-zero (a non-zero VAT rate indicates a taxable transaction, so the Nature element is not allowed, except when DocumentType has value TD16)</value>\n  </data>\n  <data name=\"E00430\" xml:space=\"preserve\">\n    <value>Nature present when VAT Rate is non-zero (a non-zero VAT rate indicates a taxable transaction, so the Nature element is not allowed, except when DocumentType has value TD16)</value>\n  </data>\n  <data name=\"E00437\" xml:space=\"preserve\">\n    <value>Percentage and Amount not present despite Type being populated</value>\n  </data>\n  <data name=\"ValidNumberRange_X_Y\" xml:space=\"preserve\">\n    <value>Allowed values {0}-{1}</value>\n  </data>\n  <data name=\"DatiBeniServiziEObbligatorio\" xml:space=\"preserve\">\n    <value>DatiBeniServizi is required</value>\n  </data>\n  <data name=\"IdentificativiFiscaliEObbligatorio\" xml:space=\"preserve\">\n    <value>IdentificativiFiscali is required</value>\n  </data>\n  <data name=\"E00418_S\" xml:space=\"preserve\">\n    <value>Date is earlier than the corrected invoice date</value>\n  </data>\n  <data name=\"E00401_S\" xml:space=\"preserve\">\n    <value>Nature present when VAT Rate is non-zero</value>\n  </data>\n  <data name=\"E00400_S\" xml:space=\"preserve\">\n    <value>A zero VAT rate requires indication of the operation nature that justifies its non-taxability</value>\n  </data>\n  <data name=\"E00460\" xml:space=\"preserve\">\n    <value>Total amount exceeds the limit for simplified invoices under Presidential Decree 633/72, art. 21bis and Ministerial Decree of May 10, 2019</value>\n  </data>\n  <data name=\"E00471_S\" xml:space=\"preserve\">\n    <value>Document type TD07 does not allow indication of the same subject as both supplier and buyer in the invoice</value>\n  </data>\n  <data name=\"E00417_S\" xml:space=\"preserve\">\n    <value>VAT ID and Fiscal Code not populated (at least one must be populated)</value>\n  </data>\n  <data name=\"PropertyName_valoriAccettati_AcceptedValues\" xml:space=\"preserve\">\n    <value>'{PropertyName}' accepted values: {AcceptedValues}</value>\n  </data>\n  <data name=\"TestoContententeCaratteriNonValidi\" xml:space=\"preserve\">\n    <value>Text containing invalid characters ({0}). Unaccepted values: {{NonLatinCode}}</value>\n  </data>\n</root>"
  },
  {
    "path": "Resources/ValidatorMessages.resx",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<root>\n  <xsd:schema id=\"root\" xmlns=\"\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n    <xsd:element name=\"root\" msdata:IsDataSet=\"true\">\n\n    </xsd:element>\n  </xsd:schema>\n  <resheader name=\"resmimetype\">\n    <value>text/microsoft-resx</value>\n  </resheader>\n  <resheader name=\"version\">\n    <value>1.3</value>\n  </resheader>\n  <resheader name=\"reader\">\n    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <resheader name=\"writer\">\n    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\n  </resheader>\n  <data name=\"E00417\" xml:space=\"preserve\">\n    <value>IdFiscaleIVA e CodiceFiscale non valorizzati (almeno uno dei due deve essere valorizzato)</value>\n  </data>\n  <data name=\"E00425\" xml:space=\"preserve\">\n    <value>Numero non contiene caratteri numerici</value>\n  </data>\n  <data name=\"E00415\" xml:space=\"preserve\">\n    <value>DatiRitenuta non presente a fronte di DatiCassaPrevidenziale.Ritenuta valorizzato</value>\n  </data>\n  <data name=\"E00418\" xml:space=\"preserve\">\n    <value>Data antecedente a una o più date in DatiFattureCollegate</value>\n  </data>\n  <data name=\"E00429\" xml:space=\"preserve\">\n    <value>Natura non presente a fronte di Aliquota IVA pari a 0</value>\n  </data>\n  <data name=\"E00419\" xml:space=\"preserve\">\n    <value>DatiRiepilogo non presente in corrispondenza di almeno un valore DettaglioLinee.AliquiotaIVA o DatiCassaPrevidenziale.AliquotaIVA</value>\n  </data>\n  <data name=\"E00420\" xml:space=\"preserve\">\n    <value>Natura con valore di tipo 'N6' (inversione contabile) a fronte EsigiblitaIVA uguale a 'S' (scissione pagamenti)</value>\n  </data>\n  <data name=\"E00423\" xml:space=\"preserve\">\n    <value>PrezzoTotale non calcolato secondo le specifiche tecniche</value>\n  </data>\n  <data name=\"E00400\" xml:space=\"preserve\">\n    <value>Natura non presente a fronte di Aliquota IVA pari a 0</value>\n  </data>\n  <data name=\"E00411\" xml:space=\"preserve\">\n    <value>DatiRitenuta non presente a fronte di almeno un blocco DettaglioLinee con Ritenuta uguale a SI</value>\n  </data>\n  <data name=\"E00422\" xml:space=\"preserve\">\n    <value>ImponibileImporto non calcolato secondo le specifiche tecniche</value>\n  </data>\n  <data name=\"E00474\" xml:space=\"preserve\">\n    <value>Nel tipo documento ‘autofattura per splafonamento’ tutte le linee di dettaglio devo avere un’aliquota IVA diversa da zero</value>\n  </data>\n  <data name=\"E00476\" xml:space=\"preserve\">\n    <value>Gli elementi IdPaese e IdPaese non possono essere entrambi valorizzati con codice diverso da IT</value>\n  </data>\n  <data name=\"E00475\" xml:space=\"preserve\">\n    <value>Per il valore indicato nell'elemento 2.1.1.1 TipoDocumento deve essere presente l'elemento 1.4.1.1 IdFiscaleIVA del cessionario/committente</value>\n  </data>\n  <data name=\"E00471\" xml:space=\"preserve\">\n    <value>Per il valore indicato nell'elemento 2.1.1.1 TipoDocumento il cedente/prestatore non può essere uguale al cessionario/committente</value>\n  </data>\n  <data name=\"E00472\" xml:space=\"preserve\">\n    <value>I valori TD21 e TD27 del tipo documento non ammettono l’indicazione in fattura di un cedente diverso dal cessionario</value>\n  </data>\n  <data name=\"E00473\" xml:space=\"preserve\">\n    <value>Per il valore indicato nell'elemento 2.1.1.1 TipoDocumento il valore presente nell'elemento 1.2.1.1.1 IdPaese non è ammesso</value>\n  </data>\n  <data name=\"E00443\" xml:space=\"preserve\">\n    <value>Tutti i valori delle aliquote IVA presenti nelle linee di dettaglio di una fattura o nei dati di cassa previdenziale devono essere presenti anche nei dati di riepilogo</value>\n  </data>\n  <data name=\"E00444\" xml:space=\"preserve\">\n    <value>Tutti i valori di natura dell’operazione presenti nelle linee di dettaglio di una fattura o nei dati di cassa previdenziale devono essere presenti anche nei dati di riepilogo</value>\n  </data>\n  <data name=\"E00401\" xml:space=\"preserve\">\n    <value>Natura presente a fronte di Aliquota IVA diversa da zero (l’indicazione di un’aliquota IVA diversa da zero qualifica l’operazione come imponibile e quindi non è ammessa la presenza dell’elemento Natura, ad eccezione del caso in cui l’elemento TipoDocumento assume valore TD16)</value>\n  </data>\n  <data name=\"E00430\" xml:space=\"preserve\">\n    <value>Natura presente a fronte di Aliquota IVA diversa da zero (l’indicazione di un’aliquota IVA diversa da zero qualifica l’operazione come imponibile e quindi non è ammessa la presenza dell’elemento Natura, ad eccezione del caso in cui l’elemento TipoDocumento assume valore TD16)</value>\n  </data>\n  <data name=\"E00437\" xml:space=\"preserve\">\n    <value>Percentuale e Importo non presenti a fronte di Tipo valorizzato</value>\n  </data>\n  <data name=\"ValidNumberRange_X_Y\" xml:space=\"preserve\">\n    <value>Valori consentiti {0}-{1}</value>\n  </data>\n  <data name=\"DatiBeniServiziEObbligatorio\" xml:space=\"preserve\">\n    <value>DatiBeniServizi è obbligatorio</value>\n  </data>\n  <data name=\"IdentificativiFiscaliEObbligatorio\" xml:space=\"preserve\">\n    <value>IdentificativiFiscali è obbligatorio</value>\n  </data>\n  <data name=\"E00418_S\" xml:space=\"preserve\">\n    <value>Data antecedente a data fattura rettificata</value>\n  </data>\n  <data name=\"E00401_S\" xml:space=\"preserve\">\n    <value>Natura presente a fronte di Aliquota IVA diversa da zero</value>\n  </data>\n  <data name=\"E00400_S\" xml:space=\"preserve\">\n    <value>L’indicazione di un’aliquota IVA pari a zero obbliga all’indicazione della natura dell’operazione che giustifichi la non imponibilità della stessa</value>\n  </data>\n  <data name=\"E00460\" xml:space=\"preserve\">\n    <value>Importo totale superiore al limite previsto per le fatture semplificate ai sensi del DPR 633/72, art. 21bis e DM del 10 maggio 2019</value>\n  </data>\n  <data name=\"E00471_S\" xml:space=\"preserve\">\n    <value>Il valore TD07 del tipo documento non ammette l’indicazione in fattura dello stesso soggetto sia come cedente che come cessionario</value>\n  </data>\n  <data name=\"E00417_S\" xml:space=\"preserve\">\n    <value>IdFiscaleIVA e CodiceFiscale non valorizzati (almeno uno dei due deve essere valorizzato)</value>\n  </data>\n  <data name=\"PropertyName_valoriAccettati_AcceptedValues\" xml:space=\"preserve\">\n    <value>'{PropertyName}' valori accettati: {AcceptedValues}</value>\n  </data>\n  <data name=\"TestoContententeCaratteriNonValidi\" xml:space=\"preserve\">\n    <value>Testo contenente caratteri non validi ({0}). valori non accettati: {{NonLatinCode}}</value>\n  </data>\n</root>\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaBody/DatiBeniServizi/DatiBeniServizi.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi\n{\n     /// <summary>\n    /// Blocco sempre obbligatorio contenente natura, qualità e quantità dei beni / servizi formanti oggetto dell'operazione.\n    /// </summary>\n    public class DatiBeniServizi : BaseClassSerializable\n    {\n        /// <summary>\n        /// Blocco sempre obbligatorio contenente natura, qualità e quantità dei beni / servizi formanti oggetto dell'operazione.\n        /// </summary>\n        public DatiBeniServizi()\n        {\n            DatiIVA = new();\n        }\n        public DatiBeniServizi(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Natura e quantità dell'oggetto della cessione/prestazione\n        /// </summary>\n        [Core.DataProperty]\n        public string Descrizione { get; set; }\n\n        /// <summary>\n        /// Ammontare complessivo (comprensivo di imposta).\n        /// </summary>\n        [Core.DataProperty]\n        public decimal Importo { get; set; }\n\n        /// <summary>\n        /// Dati relativi all'imposta sul valore aggiunto.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiIVA DatiIVA { get; set; }\n\n        /// <summary>\n        /// L'elemento serve per indicare il motivo (Natura dell'operazione) per il quale l'emittente della fattura non indica aliquota IVA.\n        /// </summary>\n        [Core.DataProperty]\n        public string Natura { get; set; }\n\n        /// <summary>\n        /// Norma di riferimento.\n        /// </summary>\n        [Core.DataProperty]\n        public string RiferimentoNormativo { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaBody/DatiBeniServizi/DatiIVA.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi\n{\n    /// <summary>\n    /// Dati relativi all'imposta sul valore aggiunto.\n    /// </summary>\n    public class DatiIVA : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati relativi all'imposta sul valore aggiunto.\n        /// </summary>\n        public DatiIVA() { }\n        public DatiIVA(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Ammontare dell'imposta. Si può indicare in alternativa all'elemento informativo 2,2,3,2\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Imposta { get; set; }\n\n        /// <summary>\n        /// Aliquota (%) IVA applicata. Si può indicare in alternativa all'elemento informativo 2,2,3,1\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? Aliquota { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaBody/DatiGenerali/DatiFatturaRettificata.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati relativi alla fattura rettificata.\n    /// </summary>\n    public class DatiFatturaRettificata : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati generali del documento principale ed i dati dei documenti correlati.\n        /// </summary>\n        public DatiFatturaRettificata()\n        {\n        }\n        public DatiFatturaRettificata(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Numero progressivo della fattura rettificata.\n        /// </summary>\n        [Core.DataProperty]\n        public string NumeroFR { get; set; }\n\n        /// <summary>\n        /// Data della fattura rettificata.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime? DataFR { get; set; }\n\n        /// <summary>\n        /// Indicazioni specifiche degli elelementi oggetto di rettifica.\n        /// </summary>\n        [Core.DataProperty]\n        public string ElementiRettificati { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaBody/DatiGenerali/DatiGenerali.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati generali del documento principale e dati dei documenti correlati.\n    /// </summary>\n    public class DatiGenerali : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati generali del documento principale e dati dei documenti correlati.\n        /// </summary>\n        public DatiGenerali()\n        {\n            DatiGeneraliDocumento = new();\n            DatiFatturaRettificata = new();\n        }\n        public DatiGenerali(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiGeneraliDocumento DatiGeneraliDocumento { get; set; }\n\n        /// <summary>\n        /// Blocco contenente le informazioni relative alla fattura rettificata. \n        /// Vale per le fatture emesse ai sensi dell'articolo 26 DPR 633/72\n        /// </summary>\n        [Core.DataProperty]\n        public DatiFatturaRettificata DatiFatturaRettificata { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaBody/DatiGenerali/DatiGeneraliDocumento.cs",
    "content": "﻿using System;\nusing System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali\n{\n    /// <summary>\n    /// Dati generali del documento principale ed i dati dei documenti correlati.\n    /// </summary>\n    public class DatiGeneraliDocumento : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati generali del documento principale ed i dati dei documenti correlati.\n        /// </summary>\n        public DatiGeneraliDocumento()\n        {\n        }\n        public DatiGeneraliDocumento(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public string TipoDocumento { get; set; }\n\n        /// <summary>\n        /// Codice espresso secondo lo standard ISO 4217 alpha-3:2001 della valuta utilizzata per l'indicazione degli importi.\n        /// </summary>\n        [Core.DataProperty]\n        public string Divisa { get; set; }\n\n        /// <summary>\n        /// Data del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public DateTime Data { get; set; }\n\n        /// <summary>\n        /// Numero progressivo del documento.\n        /// </summary>\n        [Core.DataProperty]\n        public string Numero { get; set; }\n        \n        /// <summary>\n        /// Bollo assolto ai sendi del decreto MEF 17 giugno 2014 (art.6).\n        /// </summary>\n        [Core.DataProperty]\n        public string BolloVirtuale { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaBody/FatturaElettronicaBody.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaBody\n{\n    public class FatturaElettronicaBody : BaseClassSerializable\n    {\n        /// <summary>\n        /// FatturaOrdinaria inclusa nella conunicazione.\n        /// </summary>\n        public FatturaElettronicaBody()\n        {\n            DatiGenerali = new();\n            DatiBeniServizi = new();\n            Allegati = new();\n        }\n        public FatturaElettronicaBody(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Dati generali del documento principale.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiGenerali.DatiGenerali DatiGenerali { get; set; }\n\n        /// <summary>\n        /// Blocco semre obbligatorio contenente natura qualità e quantità dei beni/servizi oggetto dell'operazione.\n        /// </summary>\n        [Core.DataProperty]\n        public List<DatiBeniServizi.DatiBeniServizi> DatiBeniServizi { get; set; }\n\n        /// <summary>\n        /// Dati relativi ad eventuali allegati.\n        /// </summary>\n        [Core.DataProperty]\n        public List<Allegati> Allegati { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CedentePrestatore/CedentePrestatore.cs",
    "content": "﻿using System.Text.Json.Serialization;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore\n{\n\n    /// <summary>\n    /// Dati relativi al cedente / prestatore.\n    /// </summary>\n    public class CedentePrestatore : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati relativi al cedente / prestatore.\n        /// </summary>\n        public CedentePrestatore()\n        {\n            IdFiscaleIVA = new();\n            Sede = new();\n            StabileOrganizzazione = new();\n            RappresentanteFiscale = new();\n            IscrizioneREA = new();\n        }\n        public CedentePrestatore(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n        /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n        /// </summary>\n        [Core.DataProperty(order: 0)]\n        public IdFiscaleIVA IdFiscaleIVA { get; set; }\n\n        /// <summary>\n        /// Numero di Codice Fiscale.\n        /// </summary>\n        [Core.DataProperty(order: 1)]\n        public string CodiceFiscale { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Denominazione.\n        /// </summary>\n        [Core.DataProperty(order: 2)]\n        public string Denominazione { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Nome.\n        /// </summary>\n        [Core.DataProperty(order: 3)]\n        public string Nome { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Cognome.\n        /// </summary>\n        [Core.DataProperty(order: 4)]\n        public string Cognome { get; set; }\n\n        /// <summary>\n        /// Returns Cognome and Nome as a single value.\n        /// </summary>\n        /// <remarks>This is not a OrderedDataProperty so it will not be serialized to XML.</remarks>\n        [JsonIgnore]\n        public string CognomeNome\n        {\n            get\n            {\n                var r = ((Cognome ?? string.Empty) + \" \" + (Nome ?? string.Empty)).Trim();\n                return string.IsNullOrEmpty(r) ? null : r;\n            }\n        }\n\n        /// <summary>\n        /// Dati della sede del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty(order: 5)]\n        public SedeCedentePrestatore Sede { get; set; }\n\n        /// <summary>\n        /// Nei casi di cedente / prestatore non residente.\n        /// </summary>\n        [Core.DataProperty(order: 6)]\n        public StabileOrganizzazione StabileOrganizzazione { get; set; }\n\n        /// <summary>\n        /// Rappresentante fiscale\n        /// </summary>\n        [Core.DataProperty(order: 7)]\n        public RappresentanteFiscale RappresentanteFiscale { get; set; }\n\n        /// <summary>\n        /// Nei casi di società iscritte nel registro delle imprese ai sensi dell'art. 2250 del codice civile.\n        /// </summary>\n        [Core.DataProperty(order: 8)]\n        public IscrizioneREA IscrizioneREA { get; set; }\n\n        /// <summary>\n        /// Codice identificativo del cedente / prestatore a fini amministrativi-contabili.\n        /// </summary>\n        [Core.DataProperty(order: 9)]\n        public string RiferimentoAmministrazione { get; set; }\n\n        /// <summary>\n        /// Regime fiscale.\n        /// </summary>\n        [Core.DataProperty(order: 10)]\n        public string RegimeFiscale { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CedentePrestatore/IscrizioneRea.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore\n{\n    /// <summary>\n    /// Represents a DatiAnagrafici object\n    /// </summary>\n    public class IscrizioneREA : BaseClassSerializable\n    {\n        public IscrizioneREA() { } \n        public IscrizioneREA(XmlReader r) : base(r) { } \n\n        /// <summary>\n        /// Sigla della provincia dell'Ufficio del registro delle imprese presso il quale è registata la società.\n        /// </summary>\n        [Core.DataProperty]\n        public string Ufficio { get; set; }\n\n        /// <summary>\n        /// Numero di iscrizione al registro delle imprese.\n        /// </summary>\n        [Core.DataProperty]\n        // ReSharper disable once InconsistentNaming\n        public string NumeroREA { get; set; }\n\n        /// <summary>\n        /// Nei soli casi di società di capitali (Spa, SApA, SRL), il campo va valorizzato per indicare il capitale sociale.\n        /// </summary>\n        [Core.DataProperty]\n        public decimal? CapitaleSociale { get; set; }\n\n        /// <summary>\n        /// Nei soli casi di SRL, il campo va valorizzato per indicare se vi è un socio unico oppure se vi sono più soci.\n        /// </summary>\n        [Core.DataProperty]\n        public string SocioUnico { get; set; }\n\n        /// <summary>\n        /// Indica se la Società si trova in stato di liquidazione oppure no.\n        /// </summary>\n        [Core.DataProperty]\n        public string StatoLiquidazione { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CedentePrestatore/RappresentanteFiscale.cs",
    "content": "﻿using System.Text.Json.Serialization;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader\n{\n    /// <summary>\n    /// Dati relativi al rappresentante fiscale del cessionario / committente.\n    /// </summary>\n    public class RappresentanteFiscale : BaseClassSerializable\n    {\n\n        /// <summary>\n        /// Dati relativi al rappresentante fiscale del cessionario / committente.\n        /// </summary>\n        public RappresentanteFiscale()\n        {\n            IdFiscaleIVA = new();\n        }\n        public RappresentanteFiscale(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati anagrafici del rappresentante fiscale del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty(order: 0)]\n        public IdFiscaleIVA IdFiscaleIVA { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Denominazione.\n        /// </summary>\n        [Core.DataProperty(order: 1)]\n        public string Denominazione { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Nome.\n        /// </summary>\n        [Core.DataProperty(order: 2)]\n        public string Nome { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Cognome.\n        /// </summary>\n        [Core.DataProperty(order: 3)]\n        public string Cognome { get; set; }\n\n        /// <summary>\n        /// Returns Cognome and Nome as a single value.\n        /// </summary>\n        /// <remarks>This is not a OrderedDataProperty so it will not be serialized to XML.</remarks>\n        [JsonIgnore]\n        public string CognomeNome\n        {\n            get\n            {\n                var r = ((Cognome ?? string.Empty) + \" \" + (Nome ?? string.Empty)).Trim();\n                return string.IsNullOrEmpty(r) ? null : r;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CedentePrestatore/SedeCedentePrestatore.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore\n{\n    public class SedeCedentePrestatore : Common.Località\n    {\n        public SedeCedentePrestatore() { } \n        public SedeCedentePrestatore(XmlReader r) : base(r) { } \n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CessionarioCommittente/AltriDatiIdentificativi.cs",
    "content": "﻿using System.Text.Json.Serialization;\nusing System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente\n{\n    /// <summary>\n    /// Altri dati identificativi del cessionario / committente.\n    /// </summary>\n    public class AltriDatiIdentificativi : BaseClassSerializable\n    {\n        /// <summary>\n        /// Altri dati fiscali del cessionario / committente.\n        /// </summary>\n        public AltriDatiIdentificativi()\n        {\n            Sede = new();\n            StabileOrganizzazione = new();\n            RappresentanteFiscale = new();\n        }\n        public AltriDatiIdentificativi(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n        /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n        /// </summary>\n\n        /// <summary>\n        /// Gets or sets the Denominazione.\n        /// </summary>\n        [Core.DataProperty(order: 0)]\n        public string Denominazione { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Nome.\n        /// </summary>\n        [Core.DataProperty(order: 1)]\n        public string Nome { get; set; }\n\n        /// <summary>\n        /// Gets or sets the Cognome.\n        /// </summary>\n        [Core.DataProperty(order: 2)]\n        public string Cognome { get; set; }\n\n        /// <summary>\n        /// Dati della sede del cessionario / committente.\n        /// </summary>\n        [Core.DataProperty]\n        public SedeCessionarioCommittente Sede { get; set; }\n\n        /// <summary>\n        /// Blocco da valorizzare nei casi di cessionario/committente non residente e con stabile organizzazione in Italia.\n        /// </summary>\n        [Core.DataProperty]\n        public StabileOrganizzazione StabileOrganizzazione { get; set; }\n\n        /// <summary>\n        /// Blocco da valorizzare nei casi in cui il cessionario/committente si avvalga di un rappresentante fiscale in Italia.\n        /// </summary>\n        [Core.DataProperty]\n        public RappresentanteFiscaleCessionarioCommittente RappresentanteFiscale { get; set; }\n\n        /// <summary>\n        /// Returns Cognome and Nome as a single value.\n        /// </summary>\n        /// <remarks>This is not a OrderedDataProperty so it will not be serialized to XML.</remarks>\n        [JsonIgnore]\n        public string CognomeNome\n        {\n            get\n            {\n                var r = ((Cognome ?? string.Empty) + \" \" + (Nome ?? string.Empty)).Trim();\n                return string.IsNullOrEmpty(r) ? null : r;\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CessionarioCommittente/CessionarioCommittente.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente\n{\n    /// <summary>\n    /// Dati relativi al cessionario/ committente.\n    /// </summary>\n    public class CessionarioCommittente : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati relativi al cessionario / committente.\n        /// </summary>\n        public CessionarioCommittente()\n        {\n            IdentificativiFiscali = new();\n            AltriDatiIdentificativi = new();\n        }\n        public CessionarioCommittente(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Dati fiscali del cessionario / committente.\n        /// </summary>\n        [Core.DataProperty]\n        public IdentificativiFiscali IdentificativiFiscali { get; set; }\n\n        /// <summary>\n        /// Altri dati fiscali del cessionario / committente.\n        /// </summary>\n        [Core.DataProperty]\n        public AltriDatiIdentificativi AltriDatiIdentificativi { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CessionarioCommittente/IdentificativiFiscali.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente\n{\n    /// <summary>\n    /// Identificativi fiscali del cessionario/commitente\n    /// </summary>\n    public class IdentificativiFiscali : BaseClassSerializable\n    {\n        /// <summary>\n        /// Dati fiscali del cessionario / committente.\n        /// </summary>\n        public IdentificativiFiscali()\n        {\n            IdFiscaleIVA = new();\n        }\n        public IdentificativiFiscali(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n        /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n        /// </summary>\n        [Core.DataProperty(order: 0)]\n        public IdFiscaleIVA IdFiscaleIVA { get; set; }\n\n        /// <summary>\n        /// Numero di Codice Fiscale.\n        /// </summary>\n        [Core.DataProperty(order: 1)]\n        public string CodiceFiscale { get; set; }\n\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscaleCessionarioCommittente.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente\n{\n    /// <summary>\n    /// Represents a CessionarioCommittente.RappresentanteFiscale object.\n    /// </summary>\n    public class RappresentanteFiscaleCessionarioCommittente : DenominazioneNomeCognome\n    {\n        public RappresentanteFiscaleCessionarioCommittente()\n        {\n            IdFiscaleIVA = new();\n        }\n        public RappresentanteFiscaleCessionarioCommittente(XmlReader r) : base(r) { }\n\n        /// <summary>\n        /// Numero di identificazione fiscale ai fini IVA; i primi due caratteri rappresentano il paese ed i restanti il codice\n        /// vero e proprio che, per i residenti in Italia, corrisponde al numero di partita IVA.\n        /// </summary>\n        [Core.DataProperty(order: -1)]\n        public IdFiscaleIVA IdFiscaleIVA { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/CessionarioCommittente/SedeCessionarioCommittente.cs",
    "content": "﻿using System.Xml;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente\n{\n  public class SedeCessionarioCommittente : Common.Località\n    {\n        public SedeCessionarioCommittente() { } \n\n        public SedeCessionarioCommittente(XmlReader r) : base(r) { } \n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/DatiTrasmissione/DatiTrasmissione.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.DatiTrasmissione\n{\n\n    /// <summary>\n    /// Informazioni che identificano univocamente il soggetto che trasmette, il documento trasmesso, \n    /// il formato in cui è stato trasmesso il documento, il soggetto destinatario.\n    /// </summary>\n    public class DatiTrasmissione : BaseClassSerializable\n    {\n\n        /// <summary>\n        /// Constructor.\n        /// </summary>\n        public DatiTrasmissione()\n        {\n            IdTrasmittente = new();\n        }\n        public DatiTrasmissione(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Identificativo univoco del soggetto trasmittente.\n        /// </summary>\n        [Core.DataProperty]\n        public IdTrasmittente IdTrasmittente { get; set; }\n\n        /// <summary>\n        /// Progressivo univoco, attribuito dal soggetto che trasmette, relativo ad ogni singolo documento fattura.\n        /// </summary>\n        [Core.DataProperty]\n        public string ProgressivoInvio { get; set; }\n\n        /// <summary>\n        /// Codice identificativo del formato/versione con cui è stato trasmesso il documento fattura.\n        /// </summary>\n        [Core.DataProperty]\n        public string FormatoTrasmissione { get; set; }\n\n        /// <summary>\n        /// Codice dell'ufficio dell'amministrazione dello stato destinatario della fattura, definito dall'amministrazione\n        /// di appartenenza come riportato nella rubrica \"Indice PA\".\n        /// </summary>\n        [Core.DataProperty]\n        public string CodiceDestinatario { get; set; }\n        \n        /// <summary>\n        /// Inidirizzo PEC al quale inviare il documento.\n        /// </summary>\n        [Core.DataProperty]\n        public string PECDestinatario { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/DatiTrasmissione/IdTrasmittente.cs",
    "content": "﻿using System.Xml;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader.DatiTrasmissione\n{\n    public class IdTrasmittente : IdFiscaleIVA\n    {\n        public IdTrasmittente() { }\n        public IdTrasmittente(XmlReader r) : base(r) { }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaElettronicaHeader/FatturaElettronicaHeader.cs",
    "content": "﻿using System.Xml;\nusing BaseClassSerializable = FatturaElettronica.Core.BaseClassSerializable;\n\nnamespace FatturaElettronica.Semplificata.FatturaElettronicaHeader\n{\n    public class FatturaElettronicaHeader : BaseClassSerializable\n    {\n        /// <summary>\n        /// Intestazione della FatturaOrdinaria Elettronica.\n        /// </summary>\n        public FatturaElettronicaHeader()\n        {\n            DatiTrasmissione = new();\n            CedentePrestatore = new();\n            CessionarioCommittente = new();\n        }\n        public FatturaElettronicaHeader(XmlReader r) : base(r) { }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Informazioni che identificano univocamente il soggetto che trasmette, il documento trasmesso, \n        /// il formato in cui è stato trasmesso il documento, il soggetto destinatario.\n        /// </summary>\n        [Core.DataProperty]\n        public DatiTrasmissione.DatiTrasmissione DatiTrasmissione { get; set; }\n\n        /// <summary>\n        /// Dati relativi al cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public CedentePrestatore.CedentePrestatore CedentePrestatore { get; set; }\n\n        /// <summary>\n        /// Dati relativi al cessionario / committente\n        /// </summary>\n        [Core.DataProperty]\n        public CessionarioCommittente.CessionarioCommittente CessionarioCommittente { get; set; }\n\n        /// <summary>\n        /// Nei casi di documenti emessi da un soggetto diverso dal cedente / prestatore, indica se la fattura sia stata\n        /// emessa o da parte del cessionario / committente oppure da parte di un terzo per conto del cedente / prestatore.\n        /// </summary>\n        [Core.DataProperty]\n        public string SoggettoEmittente { get; set; }\n    }\n}\n"
  },
  {
    "path": "Semplificata/FatturaSemplificata.cs",
    "content": "﻿using System.Collections.Generic;\nusing FatturaElettronica.Defaults;\n\nnamespace FatturaElettronica.Semplificata\n{\n    public class FatturaSemplificata : FatturaBase\n    {\n        public FatturaSemplificata()\n        {\n            FatturaElettronicaHeader = new();\n            FatturaElettronicaBody = new();\n        }\n\n        public static FatturaSemplificata CreateInstance(Instance formato)\n        {\n\n            var fatturaSemplificata = new FatturaSemplificata();\n\n            switch (formato)\n            {\n                case Instance.Semplificata:\n                    fatturaSemplificata.FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione = FormatoTrasmissione.Semplificata;\n                    fatturaSemplificata.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario = new('0', 7);\n                    break;\n            }\n\n            return fatturaSemplificata;\n        }\n\n        public override string GetFormatoTrasmissione()\n        {\n            return FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione;\n        }\n\n        protected override string GetLocalName()\n        {\n            return \"FatturaElettronicaSemplificata\";\n        }\n\n        protected override string GetNameSpace()\n        {\n            return \"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0\";\n        }\n\n        /// IMPORTANT\n        /// Each data property must be flagged with the Order attribute or it will be ignored.\n        /// Also, properties must be listed with the precise order in the specification.\n\n        /// <summary>\n        /// Intestazione della comunicazione.\n        /// </summary>\n        [Core.DataProperty]\n        public FatturaElettronicaHeader.FatturaElettronicaHeader FatturaElettronicaHeader { get; set; }\n\n        /// <summary>\n        /// Lotto di fatture incluse nella comunicazione.\n        /// </summary>\n        /// <remarks>Il blocco ha molteciplità 1 nel caso di fattura singola; nel caso di lotto di fatture, si ripete\n        /// per ogni fattura componente il lotto stesso.</remarks>\n        [Core.DataProperty]\n        public List<FatturaElettronicaBody.FatturaElettronicaBody> FatturaElettronicaBody { get; set; }\n    }\n}"
  },
  {
    "path": "Tabelle/CausalePagamento.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class CausalePagamento : Tabella<CausalePagamento>\n    {\n        protected override ResourceManager ResourceManager => Resources.CausalePagamento.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/CondizioniPagamento.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class CondizioniPagamento : Tabella<CondizioniPagamento>\n    {\n        protected override ResourceManager ResourceManager => Resources.CondizioniPagamento.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/Divisa.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class Divisa : Tabella<Divisa>\n    {\n        protected override ResourceManager ResourceManager => Resources.Divisa.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/EsigibilitaIVA.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class EsigibilitaIVA : Tabella<EsigibilitaIVA>\n    {\n        protected override ResourceManager ResourceManager => Resources.EsigibilitaIVA.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/FormatoTrasmissione.cs",
    "content": "﻿namespace FatturaElettronica.Tabelle\n{\n    public class FormatoTrasmissione : Tabella\n    {\n        public override Tabella[] List\n        {\n            get\n            {\n                return new Tabella[]\n                {\n                    new FormatoTrasmissione{ Codice = Defaults.FormatoTrasmissione.PubblicaAmministrazione, Nome = Resources.FormatoTrasmissione.PubblicaAmministrazione },\n                    new FormatoTrasmissione{ Codice = Defaults.FormatoTrasmissione.Privati, Nome = Resources.FormatoTrasmissione.Privati },\n                    new FormatoTrasmissione{ Codice = Defaults.FormatoTrasmissione.Semplificata, Nome = Resources.FormatoTrasmissione.Semplificata }\n                };\n            }\n        }\n    }\n}"
  },
  {
    "path": "Tabelle/IdPaese.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class IdPaese : Tabella<IdPaese>\n    {\n        protected override ResourceManager ResourceManager => Resources.IdPaese.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/ModalitaPagamento.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class ModalitaPagamento : Tabella<ModalitaPagamento>\n    {\n        protected override ResourceManager ResourceManager => Resources.ModalitaPagamento.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/Natura.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class Natura : Tabella<Natura>\n    {\n        protected override ResourceManager ResourceManager => Resources.Natura.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/NaturaSemplificata.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class NaturaSemplificata : Tabella<NaturaSemplificata>\n    {\n        protected override ResourceManager ResourceManager => Resources.NaturaSemplificata.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/Provincia.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    /// <summary>\n    /// Attualmente non usata in convalida, vedo:\n    /// https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/129\n    /// /// </summary>\n    public class Provincia : Tabella<Provincia>\n    {\n        protected override ResourceManager ResourceManager => Resources.Provincia.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/RegimeFiscale.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class RegimeFiscale : Tabella<RegimeFiscale>\n    {\n        protected override ResourceManager ResourceManager => Resources.RegimeFiscale.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/ScontoMaggiorazione.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class ScontoMaggiorazione : Tabella<ScontoMaggiorazione>\n    {\n        protected override ResourceManager ResourceManager => Resources.ScontoMaggiorazione.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/SocioUnico.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class SocioUnico : Tabella<SocioUnico>\n    {\n        protected override ResourceManager ResourceManager => Resources.SocioUnico.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/SoggettoEmittente.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class SoggettoEmittente : Tabella<SoggettoEmittente>\n    {\n        protected override ResourceManager ResourceManager => Resources.SoggettoEmittente.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/StatoLiquidazione.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class StatoLiquidazione : Tabella<StatoLiquidazione>\n    {\n        protected override ResourceManager ResourceManager => Resources.StatoLiquidazione.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/Tabella.cs",
    "content": "﻿using System;\nusing System.Collections.Concurrent;\nusing System.Collections.Generic;\nusing System.Globalization;\nusing System.Linq;\nusing System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public abstract class Tabella\n    {\n        private static readonly ConcurrentDictionary<string, HashSet<string>> CodiciCache = new();\n\n        public string Nome { get; set; }\n        public string Codice { get; protected internal set; }\n\n        public string Descrizione\n        {\n            get { return Codice + \" \" + Nome; }\n        }\n\n        public HashSet<string> Codici\n        {\n            get { return CodiciCache.GetOrAdd(GetType().Name, n => new(List.Select(l => l.Codice).Distinct())); }\n        }\n\n        public abstract Tabella[] List { get; }\n    }\n\n    public abstract class Tabella<T> : Tabella where T : Tabella, new()\n    {\n        private readonly Lazy<Tabella[]> _lazyList;\n\n        protected Tabella()\n        {\n            _lazyList = new Lazy<Tabella[]>(LoadResources);\n        }\n\n        protected abstract ResourceManager ResourceManager { get; }\n\n        private T[] LoadResources()\n        {\n            var resourceSet = ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);\n            var enumerator = resourceSet.GetEnumerator();\n            using var enumerator1 = enumerator as IDisposable;\n\n            var count = 0;\n            while (enumerator.MoveNext())\n            {\n                count++;\n            }\n\n            var resourcesArray = new T[count];\n            enumerator.Reset();\n            var index = 0;\n            while (enumerator.MoveNext())\n            {\n                if (enumerator.Key is null)\n                {\n                    continue;\n                }\n\n                resourcesArray[index] = new T\n                {\n                    Codice = enumerator.Key.ToString(), Nome = enumerator.Value.ToString()\n                };\n                index++;\n            }\n\n            return resourcesArray;\n        }\n\n        public override Tabella[] List => _lazyList.Value;\n    }\n}\n"
  },
  {
    "path": "Tabelle/TipoCassa.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class TipoCassa : Tabella<TipoCassa>\n    {\n        protected override ResourceManager ResourceManager => Resources.TipoCassa.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/TipoCessionePrestazione.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class TipoCessionePrestazione : Tabella<TipoCessionePrestazione>\n    {\n        protected override ResourceManager ResourceManager => Resources.TipoCessionePrestazione.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/TipoDocumento.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class TipoDocumento : Tabella<TipoDocumento>\n    {\n        protected override ResourceManager ResourceManager => Resources.TipoDocumento.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/TipoDocumentoSemplificata.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class TipoDocumentoSemplificata : Tabella<TipoDocumentoSemplificata>\n    {\n        protected override ResourceManager ResourceManager => Resources.TipoDocumentoSemplificata.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/TipoResa.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class TipoResa : Tabella<TipoResa>\n    {\n        protected override ResourceManager ResourceManager => Resources.TipoResa.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Tabelle/TipoRitenuta.cs",
    "content": "﻿using System.Resources;\n\nnamespace FatturaElettronica.Tabelle\n{\n    public class TipoRitenuta : Tabella<TipoRitenuta>\n    {\n        protected override ResourceManager ResourceManager => Resources.TipoRitenuta.ResourceManager;\n    }\n}\n"
  },
  {
    "path": "Test/BaseClass.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Linq.Expressions;\nusing System.Reflection;\nusing FatturaElettronica.Core;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\nusing FluentValidation.Results;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test\n{\n    [TestClass]\n    public abstract class BaseClass<TClass, TValidator>\n        where TClass : BaseClassSerializable\n        where TValidator : IValidator<TClass>\n    {\n        protected TValidator Validator;\n        protected TClass Challenge;\n\n        [TestInitialize]\n        public void Init()\n        {\n            Validator = Activator.CreateInstance<TValidator>();\n            Challenge = Activator.CreateInstance<TClass>();\n        }\n\n        [TestMethod]\n        public void ValidateExtensionMethodIsAvailable()\n        {\n            var r1 = Challenge.Validate();\n            Assert.IsInstanceOfType(r1, typeof(ValidationResult));\n\n            var r2 = Validator.Validate(Challenge);\n\n            // ValidationResult equality operatore has not been implemented.\n            for (var i = 0; i <= r1.Errors.Count - 1; i++)\n            {\n                Assert.AreEqual(r1.Errors[i].PropertyName, r2.Errors[i].PropertyName);\n                Assert.AreEqual(r1.Errors[i].ErrorMessage, r2.Errors[i].ErrorMessage);\n            }\n        }\n\n        protected void AssertOptional<T>(Expression<Func<TClass, T>> outExpr, bool emptyStringAllowed = true)\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, null);\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            if (!emptyStringAllowed || typeof(T) != typeof(string)) return;\n            prop.SetValue(Challenge, string.Empty);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertRequired<T>(Expression<Func<TClass, T>> outExpr, string expectedErrorCode = null)\n        {\n            var prop = GetProperty(outExpr);\n\n            if (expectedErrorCode == null)\n            {\n                if (typeof(T) == typeof(DateTime?) || typeof(T) == typeof(decimal?))\n                    expectedErrorCode = \"NotNullValidator\";\n                else\n                    expectedErrorCode = \"NotEmptyValidator\";\n            }\n\n            prop.SetValue(Challenge, null);\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n\n            if (typeof(T) == typeof(string))\n            {\n                prop.SetValue(Challenge, string.Empty);\n                result = Validator.TestValidate(Challenge);\n                result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n            }\n\n            if (typeof(T) != typeof(decimal)) return;\n            prop.SetValue(Challenge, 0m);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n        }\n\n        protected void AssertMinMaxLength(Expression<Func<TClass, string>> outExpr, int min, int max, char filler = 'x',\n            string expectedErrorCode = \"LengthValidator\")\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, new string(filler, max + 1));\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n\n            prop.SetValue(Challenge, new string(filler, min));\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, new string(filler, max));\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertDigitsOrUppercase(Expression<Func<TClass, string>> outExpr, int length = 16)\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, new string('x', 16));\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(\"RegularExpressionValidator\");\n\n            prop.SetValue(Challenge, new string('X', 16));\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertLength(Expression<Func<TClass, string>> outExpr, int length, char filler = 'x',\n            string expectedErrorCode = \"ExactLengthValidator\")\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, new string(filler, length + 1));\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n\n            prop.SetValue(Challenge, new string(filler, length - 1));\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n\n            prop.SetValue(Challenge, new string(filler, length));\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertOnlyAcceptsTableValues<T>(Expression<Func<TClass, string>> outExpr,\n            string expectedErrorCode = \"IsValidValidator\") where T : Tabella, new()\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, \"hello\");\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr).WithErrorCode(expectedErrorCode);\n\n            foreach (var codice in new T().Codici)\n            {\n                prop.SetValue(Challenge, codice);\n                result = Validator.TestValidate(Challenge);\n                result.ShouldNotHaveValidationErrorFor(outExpr);\n            }\n        }\n\n        protected void AssertCollectionCanBeEmpty<T>(Expression<Func<TClass, List<T>>> outExpr)\n        {\n            var prop = GetProperty(outExpr);\n\n            var r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == prop.Name));\n        }\n\n        protected void AssertCollectionCannotBeEmpty<T>(Expression<Func<TClass, List<T>>> outExpr)\n        {\n            var prop = GetProperty(outExpr);\n\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(\"NotEmptyValidator\", r.Errors.FirstOrDefault(x => x.PropertyName == prop.Name)?.ErrorCode);\n        }\n\n        protected void AssertOnlyAcceptsSIValue(Expression<Func<TClass, string>> outExpr)\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, \"NO\");\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"SI\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertMustBeBasicLatin(Expression<Func<TClass, string>> outExpr)\n        {\n            var prop = GetProperty(outExpr);\n\n            // Important: test string not longer than 10. Must include a number.\n            prop.SetValue(Challenge, \"test ~tes1\");\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"test Àtes1\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertMustBeLatin1Supplement(Expression<Func<TClass, string>> outExpr)\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, \"test ~tes1\");\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"test Àtes1\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"test ›tes1\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertProvinciaOnlyAcceptsValidValues(Expression<Func<TClass, string>> outExpr)\n        {\n            var prop = GetProperty(outExpr);\n\n            prop.SetValue(Challenge, \"mi\");\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"M\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"MIL\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, \"MI\");\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n        }\n\n        private static PropertyInfo GetProperty<T>(Expression<Func<TClass, T>> outExpr)\n        {\n            var expr = (MemberExpression)outExpr.Body;\n            return (PropertyInfo)expr.Member;\n        }\n\n        protected void AssertDecimalType(Expression<Func<TClass, decimal?>> outExpr, int scale, int precision)\n        {\n            var maxValue = (decimal)Math.Pow(10, precision - scale) - 1;\n            var prop = GetProperty(outExpr);\n            prop.SetValue(Challenge, maxValue + 1);\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, maxValue);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            var decimalValueValid = (decimal)Math.Pow(10, -scale);\n            prop.SetValue(Challenge, decimalValueValid);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            var decimalValueInvalid = (decimal)Math.Pow(10, -scale - 1);\n            prop.SetValue(Challenge, decimalValueInvalid);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n        }\n\n        protected void AssertDecimalType(Expression<Func<TClass, decimal>> outExpr, int scale, int precision)\n        {\n            var maxValue = (decimal)Math.Pow(10, precision - scale) - 1;\n            var prop = GetProperty(outExpr);\n            prop.SetValue(Challenge, maxValue + 1);\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n\n            prop.SetValue(Challenge, maxValue);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            var decimalValueValid = (decimal)Math.Pow(10, -scale);\n            prop.SetValue(Challenge, decimalValueValid);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(outExpr);\n\n            var decimalValueInvalid = (decimal)Math.Pow(10, -scale - 1);\n            prop.SetValue(Challenge, decimalValueInvalid);\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(outExpr);\n        }\n    }\n}"
  },
  {
    "path": "Test/Common/AnagraficaValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FatturaElettronica.Test.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Common\n{\n    [TestClass]\n    public class AnagraficaValidator\n        : DenominazioneNomeCognomeValidator<Anagrafica, FatturaElettronica.Validators.AnagraficaValidator>\n    {\n        [TestMethod]\n        public void TitoloIsOptional()\n        {\n            AssertOptional(x => x.Titolo);\n        }\n\n        [TestMethod]\n        public void TitoloMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Titolo, 2, 10);\n        }\n\n        [TestMethod]\n        public void TitoloMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.Titolo);\n        }\n\n        [TestMethod]\n        public void CodEORIsOptional()\n        {\n            AssertOptional(x => x.CodEORI);\n        }\n\n        [TestMethod]\n        public void CodEORIMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodEORI, 13, 17);\n        }\n\n        [TestMethod]\n        public void DenominazioneMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Denominazione);\n        }\n    }\n}"
  },
  {
    "path": "Test/Common/IdFiscaleIva.cs",
    "content": "using FatturaElettronica.Common;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Common\n{\n    [TestClass]\n    public class IdFiscaleIva\n    {\n        [TestMethod]\n        public void ToStringOverride()\n        {\n            var idFiscale = new IdFiscaleIVA {IdCodice = \"123\", IdPaese = \"IT\"};\n            Assert.AreEqual(\"IT123\", idFiscale.ToString());\n            idFiscale = new() {IdPaese = \"IT\"};\n            Assert.AreEqual(\"IT\", idFiscale.ToString());\n            idFiscale = new() {IdCodice = \"123\"};\n            Assert.AreEqual(\"123\", idFiscale.ToString());\n            idFiscale = new();\n            Assert.AreEqual(string.Empty, idFiscale.ToString());\n        }\n    }\n}"
  },
  {
    "path": "Test/Common/IdFiscaleValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FatturaElettronica.Tabelle;\nusing FatturaElettronica.Validators;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Common\n{\n    [TestClass]\n    public class IdFiscaleValidator\n        : BaseClass<IdFiscaleIVA, IdFiscaleIVAValidator>\n    {\n        [TestMethod]\n        public void IdPaeseIsRequired()\n        {\n            AssertRequired(x => x.IdPaese);\n        }\n\n        [TestMethod]\n        public void IdPaeseOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<IdPaese>(x => x.IdPaese);\n        }\n\n        [TestMethod]\n        public void IdCodiceIsRequired()\n        {\n            AssertRequired(x => x.IdCodice);\n        }\n\n        [TestMethod]\n        public void IdCodiceMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.IdCodice, 1, 28);\n        }\n\n        [TestMethod]\n        public void IdFiscaleToString()\n        {\n            var idFiscale = new IdFiscaleIVA {IdCodice = \"123\", IdPaese = \"IT\"};\n            Assert.AreEqual(\"IT123\", idFiscale.ToString());\n            idFiscale = new() {IdPaese = \"IT\"};\n            Assert.AreEqual(\"IT\", idFiscale.ToString());\n            idFiscale = new() {IdCodice = \"123\"};\n            Assert.AreEqual(\"123\", idFiscale.ToString());\n            idFiscale = new();\n            Assert.AreEqual(string.Empty, idFiscale.ToString());\n        }\n    }\n}"
  },
  {
    "path": "Test/Common/IdTrasmittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Validators;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Common\n{\n    [TestClass]\n    public class IdTrasmittenteValidator\n    {\n        [TestMethod]\n        public void IdTrasmittenteValidatorIsOfTypeIdFiscaleIVAValidator()\n        {\n            var challenge = new FatturaElettronica.Validators.IdTrasmittenteValidator();\n            Assert.IsInstanceOfType(challenge, typeof(IdFiscaleIVAValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Common/ScontoMaggiorazioneValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Common\n{\n    [TestClass]\n    public class ScontoMaggiorazioneValidator\n        : BaseClass<ScontoMaggiorazione, FatturaElettronica.Validators.ScontoMaggiorazioneValidator>\n    {\n        [TestMethod]\n        public void TipoIsRequired()\n        {\n            AssertRequired(x => x.Tipo);\n        }\n\n        [TestMethod]\n        public void TipoOnlyAcceptsTableValues()\n        {\n            // Necessario per non incappare nell'errore 00437.\n            Challenge.Importo = 1;\n\n            AssertOnlyAcceptsTableValues<FatturaElettronica.Tabelle.ScontoMaggiorazione>(x => x.Tipo);\n        }\n\n        [TestMethod]\n        public void TipoValidateAgainstError00437()\n        {\n            Challenge.Tipo = \"SC\";\n\n            Challenge.Importo = null;\n            Challenge.Percentuale = null;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Tipo).WithErrorCode(\"00437\");\n\n            Challenge.Importo = null;\n            Challenge.Percentuale = 0;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Tipo);\n            \n            Challenge.Importo = 0;\n            Challenge.Percentuale = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Tipo);\n        }\n        \n        [TestMethod]\n        public void Importo()\n        {\n            AssertDecimalType(x => x.Importo, 8, 19);\n        }\n        [TestMethod]\n        public void Percentuale()\n        {\n            AssertDecimalType(x => x.Percentuale, 2, 6);\n        }\n    }\n}"
  },
  {
    "path": "Test/Common/StabileOrganizzazioneValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FatturaElettronica.Test.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Common\n{\n    [TestClass]\n    public class StabileOrganizzazioneValidator\n        : BaseLocalitàValidator<StabileOrganizzazione, FatturaElettronica.Validators.StabileOrganizzazioneValidator>\n    {\n    }\n}"
  },
  {
    "path": "Test/Core/JsonTest.cs",
    "content": "using System;\nusing System.Text;\r\nusing System.Text.Json;\r\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Core\n{\n    [TestClass]\r\n    public class JsonTest\n    {\n        [TestMethod]\r\n        public void JsonDeSerialize()\n        {\n            var base64String = \"VGhpcyBpcyBhIHN0cmluZw==\";\n            var original = new TestMe { AString = \"a string\", ADate = DateTime.Now, ADecimal = 0.12345678m, ABool = true, AByteArray = Convert.FromBase64String(base64String) };\n            original.SubTestMe.AString = \"a sub string\";\n            original.SubTestMe.ADate = DateTime.Now.AddDays(+1);\n            original.SubTestMe.ADecimal = 0.98765432m;\n            original.SubTestMe.AByteArray = Convert.FromBase64String(base64String);\n            var json = original.ToJson();\n\n            Assert.IsFalse(json.Contains(\"XmlOptions\"));\n\n            var challenge = new TestMe();\n            challenge.FromJson(new Utf8JsonReader(Encoding.UTF8.GetBytes(json)));\n\n            Assert.AreEqual(original.AString, challenge.AString);\n            Assert.AreEqual(original.ADate, challenge.ADate);\n            Assert.AreEqual(original.ADecimal, challenge.ADecimal);\n            CollectionAssert.AreEqual(original.AByteArray, challenge.AByteArray);\n            Assert.AreEqual(original.SubTestMe.AString, challenge.SubTestMe.AString);\n            Assert.AreEqual(original.SubTestMe.ADate, challenge.SubTestMe.ADate);\n            Assert.AreEqual(original.SubTestMe.ABool, challenge.SubTestMe.ABool);\n            Assert.AreEqual(original.SubTestMe.ADecimal, challenge.SubTestMe.ADecimal);\n            CollectionAssert.AreEqual(original.SubTestMe.AByteArray, challenge.SubTestMe.AByteArray);\n        }\n    }\n}"
  },
  {
    "path": "Test/Core/TestMe.cs",
    "content": "﻿using System;\nusing FatturaElettronica.Core;\n\nnamespace FatturaElettronica.Test.Core\n{\n    public class TestMe : BaseClassSerializable\n    {\n        [DataProperty]\r\n        public string AString { get; set; }\r\n\n        [DataProperty]\r\n        public DateTime ADate { get; set; }\r\n\n        [DataProperty]\r\n        public decimal ADecimal { get; set; }\r\n\n        [DataProperty]\r\n        public byte[] AByteArray { get; set; }\r\n\n        [DataProperty]\r\n        public bool ABool { get; set; }\n\n        [DataProperty]\r\n        public SubTestMe SubTestMe { get; } = new();\r\n\n        public override void WriteXml(System.Xml.XmlWriter w)\n        {\n            w.WriteStartElement(\"test\");\n            base.WriteXml(w);\n            w.WriteEndElement();\n        }\n    }\r\n\n    public class SubTestMe : BaseClassSerializable\n    {\n        [DataProperty]\r\n        public string AString { get; set; }\r\n\n        [DataProperty]\r\n        public DateTime ADate { get; set; }\r\n\n        [DataProperty]\r\n        public decimal ADecimal { get; set; }\r\n\n        [DataProperty]\r\n        public byte[] AByteArray { get; set; }\r\n\n        [DataProperty]\r\n        public bool ABool { get; set; }\r\n    }\n}"
  },
  {
    "path": "Test/Core/XmlTest.cs",
    "content": "using System;\nusing System.Xml;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Core\n{\n    [TestClass]\n    public class DeSerialize\n    {\n        [TestMethod]\n        public void XmlDeSerialize()\n        {\n            var original = new TestMe { AString = \"a string\", ADate = DateTime.Now, ADecimal = 0.12345678m };\n            original.SubTestMe.AString = \"a sub string\";\n            original.SubTestMe.ADate = DateTime.Now.AddDays(+1);\n            original.SubTestMe.ADecimal = 0.98765432m;\n\n           var tempFile = \"test.xml\";\n            using (var w = XmlWriter.Create(tempFile))\n            {\n                original.WriteXml(w);\n            }\n\n            var challenge = new TestMe();\n            using (var r = XmlReader.Create(tempFile))\n            {\n                challenge.ReadXml(r);\n            }\n\n            Assert.AreEqual(original.AString, challenge.AString);\n            Assert.AreEqual(original.ADate.Date, challenge.ADate);\n            Assert.AreEqual(original.ADecimal, challenge.ADecimal);\n            Assert.AreEqual(original.SubTestMe.AString, challenge.SubTestMe.AString);\n            Assert.AreEqual(original.SubTestMe.ADate.Date, challenge.SubTestMe.ADate);\n            Assert.AreEqual(original.SubTestMe.ADate.Date, challenge.SubTestMe.ADate);\n            Assert.AreEqual(original.SubTestMe.ADecimal, challenge.SubTestMe.ADecimal);\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Extensions/FilenameGeneratorTest.cs",
    "content": "﻿using System;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Extensions.Resources;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Extensions\n{\n    [TestClass]\n    public class FilenameGeneratorTest\n    {\n        [TestMethod]\n        public void Initialize()\n        {\n            Assert.ThrowsException<ArgumentNullException>(() => new FatturaElettronicaFileNameGenerator(null));\n            Assert.ThrowsException<ArgumentException>(() => new FatturaElettronicaFileNameGenerator(new()),\n                ErrorMessages.IdFiscaleIsMissing);\n            Assert.ThrowsException<ArgumentException>(\n                () => new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"I\"}),\n                ErrorMessages.IdPaeseIsWrongOrMissing);\n            Assert.ThrowsException<ArgumentException>(\n                () => new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"IT\"}),\n                ErrorMessages.IdCodiceIsMissing);\n            var filename =\n                new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"IT\", IdCodice = \"0123456789\"});\n            Assert.IsTrue(filename != null);\n        }\n\n        [TestMethod]\n        public void ConvertIntegerToFilename()\n        {\n            var filenameGenerator =\n                new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"IT\", IdCodice = \"0123456789\"});\n            var filename = filenameGenerator.GetNextFileName(11);\n            Assert.IsTrue(filename == \"IT0123456789_0000C.xml\");\n            Assert.AreEqual(12, filenameGenerator.CurrentIndex);\n        }\n\n        [TestMethod]\n        public void ConvertStringToFilename()\n        {\n            var filenameGenerator =\n                new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"IT\", IdCodice = \"0123456789\"});\n            var filename = filenameGenerator.GetNextFileName(\"0000C\");\n            Assert.IsTrue(filename == \"IT0123456789_0000D.xml\");\n            Assert.AreEqual(13, filenameGenerator.CurrentIndex);\n        }\n\n        [TestMethod]\n        public void ConvertIntegerToFilenameSigned()\n        {\n            var filenameGenerator = new FatturaElettronicaFileNameGenerator(\n                new() {IdPaese = \"IT\", IdCodice = \"0123456789\"},\n                FatturaElettronicaFileNameExtensionType.Signed);\n            var filename = filenameGenerator.GetNextFileName(11);\n            Assert.IsTrue(filename == \"IT0123456789_0000C.xml.p7m\");\n            Assert.AreEqual(12, filenameGenerator.CurrentIndex);\n        }\n\n        [TestMethod]\n        public void ConvertStringToFilenameSigned()\n        {\n            var filenameGenerator = new FatturaElettronicaFileNameGenerator(\n                new() {IdPaese = \"IT\", IdCodice = \"0123456789\"},\n                FatturaElettronicaFileNameExtensionType.Signed);\n            var filename = filenameGenerator.GetNextFileName(\"0000C\");\n            Assert.IsTrue(filename == \"IT0123456789_0000D.xml.p7m\");\n            Assert.AreEqual(13, filenameGenerator.CurrentIndex);\n        }\n\n        [TestMethod]\n        public void ConvertIntegerToFilename2Char()\n        {\n            var filenameGenerator =\n                new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"IT\", IdCodice = \"0123456789\"});\n            var filename = filenameGenerator.GetNextFileName(36);\n            Assert.IsTrue(filename == \"IT0123456789_00011.xml\");\n            Assert.AreEqual(37, filenameGenerator.CurrentIndex);\n        }\n\n        [TestMethod]\n        public void LastBillingNumberLength()\n        {\n            var filenameGenerator =\n                new FatturaElettronicaFileNameGenerator(new() {IdPaese = \"IT\", IdCodice = \"0123456789\"});\n            Assert.ThrowsException<ArgumentException>(() => filenameGenerator.GetNextFileName(\"123456\"),\n                ErrorMessages.LastBillingNumberIsTooLong);\n        }\n    }\n}"
  },
  {
    "path": "Test/Extensions/HtmlExtensionsTest.cs",
    "content": "﻿using System;\nusing System.IO;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Extensions\n{\n    [TestClass]\n    public class HtmlExtensionsTest\n    {\n        [TestMethod]\n        public void WriteHtml()\n        {\n            var f = new FatturaOrdinaria();\n            var outFile = Path.GetTempFileName();\n            f.ReadXml(\"Samples/IT02182030391_32.xml\");\n\n            f.WriteHtml(outFile, \"Samples/fatturaPA_v1.2.1.xsl\");\n\n            var bytes = File.ReadAllBytes(outFile);\n            Assert.IsTrue(bytes.Length > 2048);\n        }\n\n        [TestMethod]\n        public void WriteHtmlThrowsOnInvalidArguments()\n        {\n            var f = new FatturaOrdinaria();\n\n            Assert.ThrowsException<ArgumentNullException>(() => f.WriteHtml(outPath: null, xslPath: \"xslPath\"));\n            Assert.ThrowsException<ArgumentNullException>(() => f.WriteHtml(outPath: \"fileName\", xslPath: null));\n        }\n    }\n}"
  },
  {
    "path": "Test/Extensions/JsonExtensionsTest.cs",
    "content": "using FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Extensions\n{\n    [TestClass]\n    public class JsonExtensionsTest\n    {\n        [TestMethod]\n        public void FromJson()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXml(\"Samples/IT02182030391_32.xml\");\n            Assert.AreEqual(\"32\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n\n            var json = f.ToJson();\n            var challenge = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            challenge.FromJson(json);\n            Assert.AreEqual(\"32\", challenge.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n    }\n}"
  },
  {
    "path": "Test/Extensions/SignedFileExtensionsTest.cs",
    "content": "using System;\nusing System.IO;\nusing System.Security.Cryptography;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Extensions\n{\n    [TestClass]\n    public class SignedFileExtensionsTest\n    {\n\n        [TestMethod]\n        public void ReadXMLSigned()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXmlSigned(\"Samples/IT02182030391_31.xml.p7m\");\n            Assert.AreEqual(\"31\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        [DataRow(false)]\n        [DataRow(true)]\n        public void ReadXMLSigned_ShouldThrowExceptionOnTamperedDocuments(bool performValidation)\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            var exception = Assert.ThrowsException<SignatureException>(() => f.ReadXmlSigned(\"Samples/IT02182030391_31_tampered.xml.p7m\", performValidation));\n        }\n\n\n        [TestMethod]\n        public void ReadXMLSignedBase64()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXmlSignedBase64(\"Samples/IT02182030391_31.Base64.xml.p7m\");\n            Assert.AreEqual(\"31\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ReadXMLSignedFallbacksToBase64Attempt()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXmlSigned(\"Samples/IT02182030391_31.Base64.xml.p7m\");\n            Assert.AreEqual(\"31\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ReadXMLSignedValidateSignatureDisabled()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXmlSigned(\"Samples/IT02182030391_31.xml.p7m\", validateSignature: false);\n            Assert.AreEqual(\"31\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ReadXMLSignedBase64ValidateSignatureDisabled()\n        {\n\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXmlSignedBase64(\"Samples/IT02182030391_31.Base64.xml.p7m\", validateSignature: false);\n            Assert.AreEqual(\"31\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ReadXMLSignedThrowsOnNonSignedFile()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            Assert.ThrowsException<SignatureException>(() => f.ReadXmlSigned(\"Samples/IT02182030391_32.xml\"));\n        }\n\n        [TestMethod]\n        public void ReadXMLSignedBase64ThrowsOnNonSignedFile()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            Assert.ThrowsException<FormatException>(() => f.ReadXmlSignedBase64(\"Samples/IT02182030391_32.xml\"));\n        }\n\n        [TestMethod]\n        public void ReadXMLSignedStream()\n        {\n            var f = new FatturaOrdinaria();\n            using (var inputStream = new FileStream(\"Samples/IT02182030391_31.xml.p7m\", FileMode.Open, FileAccess.Read))\n            {\n                f.ReadXmlSigned(inputStream);\n            }\n\n            Assert.AreEqual(\"31\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void CreateInstanceFromXmlBase64WithCRLF()\n        {\n            using var stream = new FileStream(\"Samples/IT02182030391_31.Base64.CRLF.xml.p7m\", FileMode.Open, FileAccess.Read);\n            var f = FatturaBase.CreateInstanceFromXml(stream);\n            Assert.IsInstanceOfType(f, typeof(FatturaOrdinaria));\n            Assert.AreEqual(\"31\", ((FatturaOrdinaria)f).FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void WriteXmlSigned()\n        {\n            if (File.Exists(\"Samples/IT02182030391_32.xml.p7m\"))\n                File.Delete(\"Samples/IT02182030391_32.xml.p7m\");\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.WriteXmlSigned(\"Samples/idsrv3test.pfx\", \"idsrv3test\", \"Samples/IT02182030391_32.xml.p7m\");\n            Assert.IsTrue(File.Exists(\"Samples/IT02182030391_32.xml.p7m\"));\n        }\n\n        [TestMethod]\n        public void WriteXmlSignedThrowsOnMissingPfxFile()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            Assert.ThrowsException<SignatureException>(() =>\n                f.WriteXmlSigned(\"Samples/notreally.pfx\", \"idsrv3test\", \"Samples/IT02182030391_32.xml.p7m\"));\n        }\n\n    }\n}"
  },
  {
    "path": "Test/Extensions/StreamExtensionsTest.cs",
    "content": "﻿using System;\nusing System.IO;\nusing System.Text;\nusing FatturaElettronica.Extensions;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Extensions\n{\n    [TestClass]\n    public class StreamExtensionsTest\n    {\n\n        [TestMethod]\n        public void ReadXml_ShouldRewindBeforeReading()\n        {\n            var inputStream = new MemoryStream(Encoding.UTF8.GetBytes(Base64String));\n            inputStream.Position = 5;\n            var resultStream = StreamExtensions.PreprocessStreamEncoding(inputStream);\n\n            var decodedString = Encoding.UTF8.GetString((resultStream as MemoryStream).ToArray());\n\n            Assert.AreEqual(BareString, decodedString);\n        }\n\n        [TestMethod]\n        public void PreprocessStreamEncoding_ShouldOnlyConvertBase64Input()\n        {\n            var inputStream = new MemoryStream(Encoding.UTF8.GetBytes(BareString));\n            var resultStream = StreamExtensions.PreprocessStreamEncoding(inputStream);\n\n            var decodedString = Encoding.UTF8.GetString((resultStream as MemoryStream).ToArray());\n\n            Assert.AreEqual(BareString, decodedString);\n            Assert.AreEqual(inputStream.Length, resultStream.Length);\n        }\n\n\n        [TestMethod]\n        public void PreprocessStreamEncoding_ShouldDecodeCorrectly()\n        {\n            var inputStream = new MemoryStream(Encoding.UTF8.GetBytes(Base64String));\n            inputStream.Position = 5;\n\n            var resultStream = StreamExtensions.PreprocessStreamEncoding(inputStream);\n\n            var decodedString = Encoding.UTF8.GetString((resultStream as MemoryStream).ToArray());\n\n            Assert.AreEqual(BareString, decodedString);\n        }\n\n        [TestMethod]\n        public void PreprocessStreamEncoding_ShouldNotRewindNonSeekableStream()\n        {\n            var mixedPreviousContent = \"CouldBeAFileHeader\";\n            var mixedBufferStream = new NonRewindableStream(Encoding.UTF8.GetBytes(string.Concat(\"CouldBeAFileHeader\", Base64String)));\n            mixedBufferStream.Position = mixedPreviousContent.Length; //We move to the stream position where the base64 starts\n\n            var resultStream = StreamExtensions.PreprocessStreamEncoding(mixedBufferStream);\n\n            var decodedString = Encoding.UTF8.GetString((resultStream as MemoryStream).ToArray());\n\n            Assert.AreEqual(BareString, decodedString);\n        }\n\n        [TestMethod]\n        public void PreprocessStreamEncoding_ShouldNotRewindPositionZeroStreams()\n        {\n            var correctlyPositionedStream = new SusceptibleMemoryStream(Encoding.UTF8.GetBytes(Base64String));\n     \n            var resultStream = StreamExtensions.PreprocessStreamEncoding(correctlyPositionedStream);\n\n            var decodedString = Encoding.UTF8.GetString((resultStream as MemoryStream).ToArray());\n\n            Assert.AreEqual(BareString, decodedString);\n        }\n\n\n        private const string BareString = \"NotABaseEncodedString\";\n        private const string Base64String = \"Tm90QUJhc2VFbmNvZGVkU3RyaW5n\";\n\n        private class NonRewindableStream : MemoryStream\n        {\n            public NonRewindableStream(byte[] buffer) : base(buffer)\n            {\n            }\n            public override bool CanSeek => false;\n        }\n\n        /// <summary>\n        /// This class will take offense if Position is invoked and it's original value is zero\n        /// </summary>\n        private class SusceptibleMemoryStream : MemoryStream\n        {\n            public SusceptibleMemoryStream(byte[] buffer) : base(buffer)\n            {\n            }\n            public override long Position \n            { \n                get => base.Position; \n                set \n                { \n                    if (base.Position == 0) \n                    {\n                        throw new Exception(\"You should not see this if the StreamExtensions class is implemented correctly\");\n                    } base.Position = value; \n                } \n            }\n        }\n    }\n}"
  },
  {
    "path": "Test/Extensions/XmlExtensionsTest.cs",
    "content": "using System.IO;\nusing System.Xml;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Extensions\n{\n    [TestClass]\n    public class XmlExtensionsTest\n    {\n        [TestMethod]\n        public void ReadXMLFile()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXml(\"Samples/IT02182030391_32.xml\");\n            Assert.AreEqual(\"32\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ReadXMLStream()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.ReadXml(File.OpenRead(\"Samples/IT02182030391_32.xml\"));\n            Assert.AreEqual(\"32\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void WriteXML()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio = \"99\";\n\n            var outFile = Path.GetTempFileName();\n            f.WriteXml(outFile);\n\n            var challenge = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            using (var r = XmlReader.Create(outFile,\n                new() {IgnoreWhitespace = true, IgnoreComments = true}))\n            {\n                challenge.ReadXml(r);\n            }\n\n            Assert.AreEqual(\"99\", f.FatturaElettronicaHeader.DatiTrasmissione.ProgressivoInvio);\n        }\n    }\n}"
  },
  {
    "path": "Test/FatturaElettronica.Test.csproj",
    "content": "﻿<Project Sdk=\"Microsoft.NET.Sdk\">\n\n  <PropertyGroup>\n    <TargetFramework>net10.0</TargetFramework>\n\n    <IsPackable>false</IsPackable>\n  </PropertyGroup>\n\n  <ItemGroup>\n    <PackageReference Include=\"Microsoft.NET.Test.Sdk\" Version=\"17.11.1\" />\n    <PackageReference Include=\"MSTest.TestAdapter\" Version=\"3.6.3\" />\n    <PackageReference Include=\"MSTest.TestFramework\" Version=\"3.6.3\" />\n    <PackageReference Include=\"System.Security.Cryptography.Pkcs\" Version=\"9.0.0\" />\n  </ItemGroup>\n\n  <ItemGroup>\n    <ProjectReference Include=\"..\\FatturaElettronica.csproj\" />\n  </ItemGroup>\n\n  <ItemGroup>\n    <None Update=\"Samples\\IT01234567890_FPA02.xml\">\n      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT01234567890_FPR02.xml\">\n      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT01234567890_FSM10.xml\">\n      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\fatturaPA_v1.2.1.xsl\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\idsrv3test.pfx\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_31.xml.p7m\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_31.Base64.xml.p7m\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_31.Base64.CRLF.xml.p7m\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_31_tampered.Base64.xml.p7m\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_31_tampered.xml.p7m\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_32.xml\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n    <None Update=\"Samples\\IT02182030391_32.windows-1252.xml\">\n      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\n    </None>\n  </ItemGroup>\n\n</Project>\n"
  },
  {
    "path": "Test/JSONDeSerialize.cs",
    "content": "﻿using System.Text;\r\nusing System.Text.Json;\r\nusing System.Xml;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test\n{\n    [TestClass]\r\n    public class JSONDeSerialize\n    {\n        [TestMethod]\r\n        public void DeserializeAndThenSerializeOfficialPRSample()\n        {\n            var f = Deserialize(\"Samples/IT01234567890_FPR02.xml\");\n            Assert.IsTrue(f.Validate().IsValid);\n\n            var json = f.ToJson();\n\n            var challenge = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            challenge.FromJson(new Utf8JsonReader(Encoding.UTF8.GetBytes(json)));\n            Assert.IsTrue(challenge.Validate().IsValid);\n        }\n\n        [TestMethod]\r\n        public void NomeCognomeIsIgnored()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            var anagrafica = f.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.Anagrafica;\n\n            anagrafica.Nome = \"nome\";\n            var json = f.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.Anagrafica.ToJson();\n\n            Assert.AreEqual(\"nome\", anagrafica.CognomeNome);\n            Assert.IsFalse(json.Contains(\"CognomeNome\"));\n        }\n\n        private FatturaOrdinaria Deserialize(string fileName)\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            using (var r = XmlReader.Create(fileName, new() { IgnoreWhitespace = true }))\n            {\n                f.ReadXml(r);\n            }\n\n            return f;\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/AllegatiValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class AllegatiValidator\n        : BaseClass<Allegati, FatturaElettronica.Validators.AllegatiValidator>\n    {\n        [TestMethod]\n        public void NomeAttachmentIsRequired()\n        {\n            AssertRequired(x => x.NomeAttachment);\n        }\n\n        [TestMethod]\n        public void NomeAttachmentMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NomeAttachment, 1, 60);\n        }\n\n        [TestMethod]\n        public void NomeAttachmentMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.NomeAttachment);\n        }\n\n        [TestMethod]\n        public void AlgoritmoCompressioneIsOptional()\n        {\n            AssertOptional(x => x.AlgoritmoCompressione);\n        }\n\n        [TestMethod]\n        public void AlgoritmoCompressioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.AlgoritmoCompressione, 1, 60);\n        }\n\n        [TestMethod]\n        public void AlgoritmoCompressioneMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.AlgoritmoCompressione);\n        }\n\n        [TestMethod]\n        public void FormatoAttachmentIsOptional()\n        {\n            AssertOptional(x => x.FormatoAttachment);\n        }\n\n        [TestMethod]\n        public void FormatoAttachmentMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.FormatoAttachment, 1, 10);\n        }\n\n        [TestMethod]\n        public void FormatoAttachmentMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.FormatoAttachment);\n        }\n\n        [TestMethod]\n        public void DescrizioneAttachmentIsOptional()\n        {\n            AssertOptional(x => x.DescrizioneAttachment);\n        }\n\n        [TestMethod]\n        public void DescrizioneAttachmentMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.DescrizioneAttachment, 1, 100);\n        }\n\n        [TestMethod]\n        public void DescrizioneAttachmentMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.DescrizioneAttachment);\n        }\n\n        [TestMethod]\n        public void AttachmentIsRequired()\n        {\n            AssertRequired(x => x.Attachment);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/AltriDatiGestionaliValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class AltriDatiGestionaliValidator\n        : BaseClass<AltriDatiGestionali, FatturaElettronica.Validators.AltriDatiGestionaliValidator>\n    {\n        [TestMethod]\n        public void TipoDatoIsRequired()\n        {\n            AssertRequired(x => x.TipoDato);\n        }\n\n        [TestMethod]\n        public void TipoDatoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.TipoDato, 1, 10);\n        }\n\n        [TestMethod]\n        public void TipoDatoMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.TipoDato);\n        }\n\n        [TestMethod]\n        public void RiferimentoTestoIsOptional()\n        {\n            AssertOptional(x => x.RiferimentoTesto);\n        }\n\n        [TestMethod]\n        public void RiferimentoTestoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.RiferimentoTesto, 1, 60);\n        }\n\n        [TestMethod]\n        public void RiferimentoTestoMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.RiferimentoTesto);\n        }\n        \n        [TestMethod]\n        public void RiferimentoNumero()\n        {\n            AssertDecimalType(x => x.RiferimentoNumero, 8, 19);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/BaseDatiDocumentoValidator.cs",
    "content": "﻿using System.Collections.Generic;\nusing FluentValidation;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public abstract class BaseDatiDocumentoValidator<TClass, TValidator>\n        : BaseClass<TClass, TValidator>\n        where TClass : FatturaElettronica.Common.DatiDocumento\n        where TValidator : IValidator<TClass>\n    {\n        [TestMethod]\n        public void IdDocumentoIsRequired()\n        {\n            AssertRequired(x => x.IdDocumento);\n        }\n\n        [TestMethod]\n        public void IdDocumentoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.IdDocumento, 1, 20);\n        }\n\n        [TestMethod]\n        public void IdDocumentMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.IdDocumento);\n        }\n\n        [TestMethod]\n        public void NumItemIsOptional()\n        {\n            AssertOptional(x => x.NumItem);\n        }\n\n        [TestMethod]\n        public void NumItemMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumItem, 1, 20);\n        }\n\n        [TestMethod]\n        public void NumItemMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.NumItem);\n        }\n\n        [TestMethod]\n        public void CodiceCommessaIsOptional()\n        {\n            AssertOptional(x => x.CodiceCommessaConvenzione);\n        }\n\n        [TestMethod]\n        public void CodiceCommessaMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.CodiceCommessaConvenzione);\n        }\n\n        [TestMethod]\n        public void CodiceCommessaMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceCommessaConvenzione, 1, 100);\n        }\n\n        [TestMethod]\n        public void CodiceCUPIsOptional()\n        {\n            AssertOptional(x => x.CodiceCUP);\n        }\n\n        [TestMethod]\n        public void CodiceCUPMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceCUP, 1, 15);\n        }\n\n        [TestMethod]\n        public void CodiceCUPMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.CodiceCUP);\n        }\n\n        [TestMethod]\n        public void CodiceCIGIsOptional()\n        {\n            AssertOptional(x => x.CodiceCIG);\n        }\n\n        [TestMethod]\n        public void CodiceCIGMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceCIG, 1, 15);\n        }\n\n        [TestMethod]\n        public void CodiceCIGMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.CodiceCIG);\n        }\n\n        [TestMethod]\n        public void RiferimentoNumeroLineaValidatorMinMax()\n        {\n            Challenge.RiferimentoNumeroLinea = new() { -1 };\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n\n            Challenge.RiferimentoNumeroLinea = new() { 10000 };\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n\n            Challenge.RiferimentoNumeroLinea = new() { 1 };\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n\n            Challenge.RiferimentoNumeroLinea = new() { 9999 };\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/BaseLocalitàValidator.cs",
    "content": "﻿using FatturaElettronica.Tabelle;\nusing FluentValidation;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public abstract class BaseLocalitàValidator<TClass, TValidator>\n        : BaseClass<TClass, TValidator>\n        where TClass : FatturaElettronica.Common.Località\n        where TValidator : IValidator<TClass>\n\n    {\n        [TestMethod]\n        public void IndirizzoIsRequired()\n        {\n            AssertRequired(x => x.Indirizzo);\n        }\n\n        [TestMethod]\n        public void IndirizzoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Indirizzo, 1, 60);\n        }\n\n        [TestMethod]\n        public void IndirizzoMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Indirizzo);\n        }\n\n        [TestMethod]\n        public void NumeroCivicoIsOptional()\n        {\n            AssertOptional(x => x.NumeroCivico);\n        }\n\n        [TestMethod]\n        public void NumeroCivicoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumeroCivico, 1, 8);\n        }\n\n        [TestMethod]\n        public void CAPIsRequired()\n        {\n            AssertRequired(x => x.CAP);\n        }\n\n        [TestMethod]\n        public void CAPLength()\n        {\n            AssertLength(x => x.CAP, 5, filler: '9');\n        }\n\n        [TestMethod]\n        public void CAPMustBeNumeric()\n        {\n            Challenge.CAP = \"1234A\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CAP);\n            \n            Challenge.CAP = \"12345\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.CAP);\n        }\n\n        [TestMethod]\n        public void ComuneIsRequired()\n        {\n            AssertRequired(x => x.Comune);\n        }\n\n        [TestMethod]\n        public void ComuneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Comune, 1, 60);\n        }\n\n        [TestMethod]\n        public void ComuneMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Indirizzo);\n        }\n\n        [TestMethod]\n        public void ProvinciaOptional()\n        {\n            AssertOptional(x => x.Provincia);\n        }\n\n        [TestMethod]\n        public void ProvinciaOnlyAcceptsValidValues()\n        {\n            AssertProvinciaOnlyAcceptsValidValues(x => x.Provincia);\n        }\n\n        [TestMethod]\n        public void NazioneIsRequired()\n        {\n            AssertRequired(x => x.Nazione);\n        }\n\n        [TestMethod]\n        public void NazioneOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<IdPaese>(x => x.Nazione);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/CedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class CedentePrestatoreValidator\n        : BaseClass<CedentePrestatore, FatturaElettronica.Validators.CedentePrestatoreValidator>\n    {\n        [TestMethod]\n        public void DatiAnagraficiHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiAnagrafici,\n                typeof(FatturaElettronica.Validators.DatiAnagraficiCedentePrestatoreValidator));\n        }\n\n        [TestMethod]\n        public void SedeHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Sede,\n                typeof(FatturaElettronica.Validators.SedeCedentePrestatoreValidator));\n        }\n\n        [TestMethod]\n        public void StabileOrganizzazioneHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.StabileOrganizzazione, typeof(Validators.StabileOrganizzazioneValidator));\n        }\n\n        [TestMethod]\n        public void IscrizioneREAHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.IscrizioneREA,\n                typeof(FatturaElettronica.Validators.IscrizioneREAValidator));\n        }\n\n        [TestMethod]\n        public void ContattiHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.Contatti,\n                typeof(FatturaElettronica.Validators.ContattiValidator));\n        }\n\n        [TestMethod]\n        public void RiferimentoAmministrazioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.RiferimentoAmministrazione, 1, 20);\n        }\n\n        [TestMethod]\n        public void RiferimentoAmministrazioneMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.RiferimentoAmministrazione);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/CessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class CessionarioCommittenteValidator\n        : BaseClass<CessionarioCommittente, FatturaElettronica.Validators.CessionarioCommittenteValidator>\n    {\n        [TestMethod]\n        public void DatiAnagraficiHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiAnagrafici,\n                typeof(FatturaElettronica.Validators.DatiAnagraficiCessionarioCommittenteValidator));\n        }\n\n        [TestMethod]\n        public void SedeHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Sede,\n                typeof(FatturaElettronica.Validators.SedeCessionarioCommittenteValidator));\n        }\n\n        [TestMethod]\n        public void StabileOrganizzazioneHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.StabileOrganizzazione, typeof(Validators.StabileOrganizzazioneValidator));\n        }\n\n        [TestMethod]\n        public void RappresentateFiscaleHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.RappresentanteFiscale,\n                typeof(Validators.RappresentanteFiscaleCessionarioCommittenteValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/CodiceArticoloValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class CodiceArticoloValidator\n        : BaseClass<CodiceArticolo, FatturaElettronica.Validators.CodiceArticoloValidator>\n    {\n        [TestMethod]\n        public void CodiceTipoIsRequired()\n        {\n            AssertRequired(x => x.CodiceTipo);\n        }\n\n        [TestMethod]\n        public void CodiceTipoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceTipo, 1, 35);\n        }\n\n        [TestMethod]\n        public void CodiceTipoMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.CodiceTipo);\n        }\n\n        [TestMethod]\n        public void CodiceValoreIsRequired()\n        {\n            AssertRequired(x => x.CodiceValore);\n        }\n\n        [TestMethod]\n        public void CodiceValoreMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceValore, 1, 35);\n        }\n\n        [TestMethod]\n        public void CodiceValoreMustBeBasicLatin()\n        {\n            AssertMustBeLatin1Supplement(x => x.CodiceValore);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/ContattiTrasmittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class ContattiTrasmittenteValidator\n        : BaseClass<ContattiTrasmittente, FatturaElettronica.Validators.ContattiTrasmittenteValidator>\n    {\n        [TestMethod]\n        public void TelefonoIsOptional()\n        {\n            AssertOptional(x => x.Telefono);\n        }\n\n        [TestMethod]\n        public void TelefonoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Telefono, 5, 12);\n        }\n\n        [TestMethod]\n        public void EmailIsOptional()\n        {\n            AssertOptional(x => x.Email);\n        }\n\n        [TestMethod]\n        public void EmailMustBeValid()\n        {\n            Challenge.Email = \"not really\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Email);\n            \n            Challenge.Email = \"maybe@we.can\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Email);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/ContattiValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class ContattiValidator\n        : BaseClass<Contatti, FatturaElettronica.Validators.ContattiValidator>\n    {\n        [TestMethod]\n        public void TelefonoIsOptional()\n        {\n            AssertOptional(x => x.Telefono);\n        }\n\n        [TestMethod]\n        public void TelefonoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Telefono, 5, 12);\n        }\n\n        [TestMethod]\n        public void FaxIsOptional()\n        {\n            AssertOptional(x => x.Fax);\n        }\n\n        [TestMethod]\n        public void FaxMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Fax, 5, 12);\n        }\n\n        [TestMethod]\n        public void EmailIsOptional()\n        {\n            AssertOptional(x => x.Email);\n        }\n\n        [TestMethod]\n        public void EmailMustBeValid()\n        {\n            Challenge.Email = \"not really\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Email);\n            \n            Challenge.Email = \"maybe@we.can\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Email);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiAnagraficiCedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiAnagraficiCedentePrestatoreValidator\n        : BaseClass<DatiAnagraficiCedentePrestatore,\n            FatturaElettronica.Validators.DatiAnagraficiCedentePrestatoreValidator>\n    {\n        [TestMethod]\n        public void IdFiscaleIVAHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdFiscaleIVA,\n                typeof(Validators.IdFiscaleIVAValidator));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleIsOptional()\n        {\n            AssertOptional(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMustBeDigitsOrUpperCase()\n        {\n            AssertDigitsOrUppercase(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMinMaxLength()\n        \n        {\n            AssertMinMaxLength(x => x.CodiceFiscale, 11, 16, 'X', \"RegularExpressionValidator\");\n        }\n\n        [TestMethod]\n        public void AnagraficaHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Anagrafica,\n                typeof(Validators.AnagraficaValidator));\n        }\n\n        [TestMethod]\n        public void AlboProfessionalIsOptional()\n        {\n            AssertOptional(x => x.AlboProfessionale);\n        }\n\n        [TestMethod]\n        public void AlboProfessionaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.AlboProfessionale, 1, 60);\n        }\n\n        [TestMethod]\n        public void AlboProfessionaleMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.AlboProfessionale);\n        }\n\n        [TestMethod]\n        public void ProvinciaAlboIsOptional()\n        {\n            AssertOptional(x => x.ProvinciaAlbo);\n        }\n\n        [TestMethod]\n        public void ProvinciaAlboOnlyAcceptsValidValues()\n        {\n            AssertProvinciaOnlyAcceptsValidValues(x => x.ProvinciaAlbo);\n        }\n\n        [TestMethod]\n        public void NumeroIscrizioneAlboIsOptional()\n        {\n            AssertOptional(x => x.NumeroIscrizioneAlbo);\n        }\n\n        [TestMethod]\n        public void NumeroIscrizioneAlboMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumeroIscrizioneAlbo, 1, 60);\n        }\n\n        [TestMethod]\n        public void NumeroIscrizioneAlboMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.NumeroIscrizioneAlbo);\n        }\n\n        [TestMethod]\n        public void RegimeFiscaleIsRequired()\n        {\n            AssertRequired(x => x.RegimeFiscale);\n        }\n\n        [TestMethod]\n        public void RegimeFiscaleOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<RegimeFiscale>(x => x.RegimeFiscale);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiAnagraficiCessionarioCommittenteValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiAnagraficiCessionarioCommittenteValidator\n        : BaseClass<DatiAnagraficiCessionarioCommittente,\n            FatturaElettronica.Validators.DatiAnagraficiCessionarioCommittenteValidator>\n    {\n        [TestMethod]\n        public void IdFiscaleIVAHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.IdFiscaleIVA,\n                typeof(Validators.IdFiscaleIVAValidator));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleIsOptional()\n        {\n            Challenge.IdFiscaleIVA.IdCodice = \"x\";\n            AssertOptional(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMustBeDigitsOrUpperCase()\n        {\n            AssertDigitsOrUppercase(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceFiscale, 11, 16, 'X', \"RegularExpressionValidator\");\n        }\n\n        [TestMethod]\n        public void AnagraficaHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Anagrafica, typeof(Validators.AnagraficaValidator));\n        }\n\n        [TestMethod]\n        public void IdFiscaleIVAIsOptional()\n        {\n            Challenge.CodiceFiscale = \"x\";\n            Assert.IsTrue(Challenge.IdFiscaleIVA.IsEmpty());\n\n            var r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"IdFiscaleIVA\"));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleOrIdFiscaleIVAMustHaveValue()\n        {\n            Assert.IsTrue(string.IsNullOrEmpty(Challenge.CodiceFiscale));\n            Assert.IsTrue(Challenge.IdFiscaleIVA.IsEmpty());\n\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceFiscale).WithErrorCode(\"00417\");\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiAnagraficiVettoreValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiAnagraficiVettoreValidator : BaseClass<DatiAnagraficiVettore,\n        FatturaElettronica.Validators.DatiAnagraficiVettoreValidator>\n    {\n        [TestMethod]\n        public void IdFiscaleIVAHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdFiscaleIVA, typeof(Validators.IdFiscaleIVAValidator));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleIsOptional()\n        {\n            AssertOptional(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMustBeDigitsOrUpperCase()\n        {\n            AssertDigitsOrUppercase(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceFiscale, 11, 16, 'X', \"RegularExpressionValidator\");\n        }\n\n        [TestMethod]\n        public void AnagraficaHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Anagrafica, typeof(Validators.AnagraficaValidator));\n        }\n\n        [TestMethod]\n        public void NumeroLicenzaIsOptional()\n        {\n            AssertOptional(x => x.NumeroLicenzaGuida);\n        }\n\n        [TestMethod]\n        public void NumeroLicenzaGuidaMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumeroLicenzaGuida, 1, 20);\n        }\n\n        [TestMethod]\n        public void NumeroLicenzaGuidaMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.NumeroLicenzaGuida);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiBeniServiziValidator.cs",
    "content": "﻿using FluentValidation.TestHelper;\nusing System.Linq;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiBeniServiziValidator\n        : BaseClass<DatiBeniServizi, FatturaElettronica.Validators.DatiBeniServiziValidator>\n    {\n        [TestMethod]\n        public void DettaglioLineeHasCollectionValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DettaglioLinee, typeof(FatturaElettronica.Validators.DettaglioLineeValidator));\n        }\n        [TestMethod]\n        public void DettaglioLineeCollectionCannotBeEmpty()\n        {\n            var r = Validator.Validate(Challenge);\n            Assert.IsNotNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DettaglioLinee\"));\n\n            Challenge.DettaglioLinee.Add(new());\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DettaglioLinee\"));\n        }\n        [TestMethod]\n        public void DatiRiepilogoCollectionValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiRiepilogo, typeof(FatturaElettronica.Validators.DatiRiepilogoValidator));\n        }\n        [TestMethod]\n        public void DatiRiepilogoCollectionCannotBeEmpty()\n        {\n            AssertCollectionCannotBeEmpty(x => x.DatiRiepilogo);\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/DatiBolloValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiBolloValidator\n        : BaseClass<DatiBollo, FatturaElettronica.Validators.DatiBolloValidator>\n    {\n        [TestMethod]\n        public void BolloVirtualeIsRequired()\n        {\n            AssertRequired(x => x.BolloVirtuale);\n        }\n        [TestMethod]\n        public void BolloVirtualeOnlyAcceptsSIValue()\n        {\n            AssertOnlyAcceptsSIValue(x => x.BolloVirtuale);\n        }\n        \n        [TestMethod]\n        public void ImportoBollo()\n        {\n            AssertDecimalType(x => x.ImportoBollo, 2, 13);\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/DatiCassaPrevidenzialeValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FluentValidation.TestHelper;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiCassaPrevidenzialeValidator\n        : BaseClass<DatiCassaPrevidenziale, FatturaElettronica.Validators.DatiCassaPrevidenzialeValidator>\n    {\n        [TestMethod]\n        public void TipoCassaIsRequired()\n        {\n            AssertRequired(x => x.TipoCassa);\n        }\n        [TestMethod]\n        public void TipoCassaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<TipoCassa>(x => x.TipoCassa);\n        }\n        [TestMethod]\n        public void NaturaIsRequiredWhenAliquotaIsZero()\n        {\n            Challenge.AliquotaIVA = 0;\n            AssertRequired(x => x.Natura, expectedErrorCode:\"00413\");\n        }\n        [TestMethod]\n        public void NaturaIsNotAllowedWhenAliquotaIsNotZero()\n        {\n            Challenge.AliquotaIVA = 1;\n            Challenge.Natura = \"N1\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00414\");\n        }\n        [TestMethod]\n        public void NaturaOnlyAcceptsTableValuesWhenAliquotaIsZero()\n        {\n            Challenge.AliquotaIVA = 0;\n            AssertOnlyAcceptsTableValues<Natura>(x => x.Natura);\n\n        }\n        [TestMethod]\n        public void NaturaIsOnlyValidatedWhenIsNotZero()\n        {\n            Challenge.Natura = null;\n            Challenge.AliquotaIVA = 1;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Natura);\n        }\n        [TestMethod]\n        public void RiferimentoAmministrazioneIsOptional()\n        {\n            AssertOptional(x => x.RiferimentoAmministrazione);\n        }\n        [TestMethod]\n        public void RiferimentoAmministrazioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.RiferimentoAmministrazione, 1, 20);\n        }\n        [TestMethod]\n        public void RiferimentoAmministrazioneMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.RiferimentoAmministrazione);\n        }\n        [TestMethod]\n        public void RitenutaIsOptional()\n        {\n            AssertOptional(x => x.Ritenuta);\n        }\n        [TestMethod]\n        public void RitenutaOnlyAcceptSIValue()\n        {\n            AssertOnlyAcceptsSIValue(x => x.Ritenuta);\n        }\n        \n        [TestMethod]\n        public void ImportoContributoCassa()\n        {\n            AssertDecimalType(x => x.ImportoContributoCassa, 2, 13);\n        }\n        \n        [TestMethod]\n        public void ImponibileCassa()\n        {\n            AssertDecimalType(x => x.ImponibileCassa, 2, 13);\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/DatiContrattoValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiContrattoValidator\n        : BaseDatiDocumentoValidator<DatiContratto, FatturaElettronica.Validators.DatiContrattoValidator>\n    {\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/DatiConvenzioneValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiConvenzioneValidator\n        : BaseDatiDocumentoValidator<DatiConvenzione, FatturaElettronica.Validators.DatiConvenzioneValidator>\n    {\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/DatiDDTValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation.TestHelper;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiDDTValidator\n        : BaseClass<DatiDDT, FatturaElettronica.Validators.DatiDDTValidator>\n    {\n        [TestMethod]\n        public void NumeroDDTIsRequired()\n        {\n            AssertRequired(x => x.NumeroDDT);\n        }\n\n        [TestMethod]\n        public void NumeroDDTMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumeroDDT, 1, 20);\n        }\n\n        [TestMethod]\n        public void NumeroDDTMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.NumeroDDT);\n        }\n\n        [TestMethod]\n        public void RiferimentoNumeroLineaValidatorMinMax()\n        {\n            Challenge.RiferimentoNumeroLinea = new() { -1 };\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n\n            Challenge.RiferimentoNumeroLinea = new() { 10000 };\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n\n            Challenge.RiferimentoNumeroLinea = new() { 1 };\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n\n            Challenge.RiferimentoNumeroLinea = new() { 9999 };\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.RiferimentoNumeroLinea);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiFattureCollegateValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiFattureCollegateValidator\n        : BaseDatiDocumentoValidator<DatiFattureCollegate, FatturaElettronica.Validators.DatiFattureCollegateValidator>\n    {\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/DatiGeneraliDocumentoValidator.cs",
    "content": "﻿using FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Validators;\nusing System.Linq;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiGeneraliDocumentoValidator\n        : BaseClass<DatiGeneraliDocumento, FatturaElettronica.Validators.DatiGeneraliDocumentoValidator>\n    {\n        [TestMethod]\n        public void TipoDocumentoIsRequired()\n        {\n            AssertRequired(x => x.TipoDocumento);\n        }\n\n        [TestMethod]\n        public void TipoDocumentoOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<TipoDocumento>(x => x.TipoDocumento);\n        }\n\n        [TestMethod]\n        public void DivisaIsRequired()\n        {\n            AssertRequired(x => x.Divisa);\n        }\n\n        [TestMethod]\n        public void DivisaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<Divisa>(x => x.Divisa);\n        }\n\n        [TestMethod]\n        public void NumeroIsRequired()\n        {\n            AssertRequired(x => x.Numero);\n        }\n\n        [TestMethod]\n        public void NumeroMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Numero, 1, 20, filler: '1');\n        }\n\n        [TestMethod]\n        public void NumeroMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.Numero);\n        }\n\n        [TestMethod]\n        public void NumeroMustHaveAtLeatOneNumericChar()\n        {\n            Challenge.Numero = \"hello\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Numero).WithErrorCode(\"00425\");\n            \n            Challenge.Numero = \"hello1\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Numero);\n        }\n\n        [TestMethod]\n        public void DatiRitenutaHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiRitenuta,\n                typeof(FatturaElettronica.Validators.DatiRitenutaValidator));\n        }\n\n        [TestMethod]\n        public void DatiBolloHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.DatiBollo,\n                typeof(FatturaElettronica.Validators.DatiBolloValidator));\n        }\n\n        [TestMethod]\n        public void DatiCassaPrevidenzialeHasCollectionValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiCassaPrevidenziale,\n                typeof(FatturaElettronica.Validators.DatiCassaPrevidenzialeValidator));\n        }\n\n        [TestMethod]\n        public void ScontoMaggiorazioneHasCollectionValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.ScontoMaggiorazione,\n                typeof(ScontoMaggiorazioneValidator));\n        }\n\n        [TestMethod]\n        public void DatiRitenutaRequiredWhenDatiCassaPrevidenzialeNotEmpty()\n        {\n            Challenge.DatiCassaPrevidenziale.Add(new() {Ritenuta = \"SI\"});\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(\"00415\",\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiCassaPrevidenziale\")?.ErrorCode);\n\n            Challenge.DatiCassaPrevidenziale.Clear();\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiCassaPrevidenziale\"));\n\n            // test che falso errore di convalida sia risolto. Vedi:\n            // https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/44\n            Challenge.DatiCassaPrevidenziale.Add(new()\n            {\n                TipoCassa = \"TC20\", AlCassa = 4, ImportoContributoCassa = 46.56m, Natura = \"N5\"\n            });\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiCassaPrevidenziale\"));\n        }\n\n        [TestMethod]\n        public void CausaleHasCollectionValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Causale, typeof(CausaleValidator));\n        }\n\n        [TestMethod]\n        public void Art73IsOptional()\n        {\n            AssertOptional(x => x.Art73);\n        }\n\n        [TestMethod]\n        public void Art73OnlyAcceptsSIValue()\n        {\n            AssertOnlyAcceptsSIValue(x => x.Art73);\n        }\n        \n        [TestMethod]\n        public void PenalitaPagamentiRitardati()\n        {\n            AssertDecimalType(x => x.ImportoTotaleDocumento, 2, 13);\n        }\n        \n        [TestMethod]\n        public void ImportoPagamento()\n        {\n            AssertDecimalType(x => x.Arrotondamento, 2, 13);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiGeneraliValidator.cs",
    "content": "﻿using FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing System;\nusing System.Linq;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiGeneraliValidator : BaseClass<DatiGenerali, FatturaElettronica.Validators.DatiGeneraliValidator>\n    {\n        [TestMethod]\n        public void DatiGeneraliDocumentoHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiGeneraliDocumento, typeof(FatturaElettronica.Validators.DatiGeneraliDocumentoValidator));\n        }\n\n        [TestMethod]\n        public void DatiGeneraliDocumentoCannotPredateDatiFattureCollegate()\n        {\n            Challenge.DatiGeneraliDocumento.Data = DateTime.Now.AddDays(-1);\n            Challenge.DatiFattureCollegate.Add(\n                new() { Data = DateTime.Now });\n\n            var r = Validator.Validate(Challenge);\n            Assert.IsFalse(r.IsValid);\n\n            Assert.AreEqual(\"00418\",\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiGeneraliDocumento.Data\")?.ErrorCode);\n\n            Challenge.DatiGeneraliDocumento.Data = DateTime.Now;\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiGeneraliDocumento.Data\"));\n        }\n\n        [TestMethod]\n        public void DatiOrdineAcquistoHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiOrdineAcquisto,\n                typeof(Validators.DatiOrdineAcquistoValidator));\n        }\n\n        [TestMethod]\n        public void DatiContrattoHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiContratto,\n                typeof(FatturaElettronica.Validators.DatiContrattoValidator));\n        }\n\n        [TestMethod]\n        public void DatiConvenzioneHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiConvenzione,\n                typeof(FatturaElettronica.Validators.DatiConvenzioneValidator));\n        }\n\n        [TestMethod]\n        public void DatiRicezioneHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiRicezione,\n                typeof(FatturaElettronica.Validators.DatiRicezioneValidator));\n        }\n\n        [TestMethod]\n        public void DatiFattureCollegateHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiFattureCollegate,\n                typeof(FatturaElettronica.Validators.DatiFattureCollegateValidator));\n        }\n\n        [TestMethod]\n        public void DatiDDTHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiDDT, typeof(FatturaElettronica.Validators.DatiDDTValidator));\n        }\n\n        [TestMethod]\n        public void DatiTrasportoHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.DatiTrasporto,\n                typeof(FatturaElettronica.Validators.DatiTrasportoValidator));\n        }\n\n        [TestMethod]\n        public void FatturaPrincipaleHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.FatturaPrincipale,\n                typeof(FatturaElettronica.Validators.FatturaPrincipaleValidator));\n        }\n\n        [TestMethod]\n        public void DatiSALHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiSAL, typeof(Validators.DatiSALValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiOrdineAcquistoValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiDocumentoValidator\n        : BaseDatiDocumentoValidator<DatiOrdineAcquisto, Validators.DatiOrdineAcquistoValidator>\n    {\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiPagamentoValidator.cs",
    "content": "﻿using FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiPagamento;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiPagamentoValidator\n        : BaseClass<DatiPagamento, FatturaElettronica.Validators.DatiPagamentoValidator>\n    {\n        [TestMethod]\n        public void CondizioniPagamentoIsRequired()\n        {\n            AssertRequired(x => x.CondizioniPagamento);\n        }\n\n        [TestMethod]\n        public void CondizioniPagamentoOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<CondizioniPagamento>(x => x.CondizioniPagamento);\n        }\n\n        [TestMethod]\n        public void DettaglioPagamentoHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DettaglioPagamento, typeof(FatturaElettronica.Validators.DettaglioPagamentoValidator));\n        }\n\n        [TestMethod]\n        public void DettaglioPagamentoCollectionCannotBeEmpty()\n        {\n            AssertCollectionCannotBeEmpty(x => x.DettaglioPagamento);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiRicezioneValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiRicezioneValidator\n        : BaseDatiDocumentoValidator<DatiRicezione, FatturaElettronica.Validators.DatiRicezioneValidator>\n    {\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiRiepilogoValidator.cs",
    "content": "﻿using FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiRiepilogoValidator\n        : BaseClass<DatiRiepilogo, FatturaElettronica.Validators.DatiRiepilogoValidator>\n    {\n        [TestMethod]\n        public void NaturaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<Natura>(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void NaturaValidateAgainstError00400()\n        {\n            Challenge.AliquotaIVA = 0;\n            Challenge.Natura = string.Empty;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00429\");\n            \n            Challenge.AliquotaIVA = 0;\n            Challenge.Natura = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00429\");\n            \n            Challenge.AliquotaIVA = 22m;\n            Challenge.Natura = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void NaturaValidateAgainstError00420()\n        {\n            Challenge.EsigibilitaIVA = \"S\";\n            Challenge.Natura = \"N6.1\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00420\");\n\n            Challenge.EsigibilitaIVA = \"I\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void ImpostaValidateAgainstError00421()\n        {\n            Challenge.AliquotaIVA = 10;\n            Challenge.ImponibileImporto = 70863.00m;\n            Challenge.Imposta = 7086.29m;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Imposta);\n            \n            Challenge.Imposta = 10.01m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Imposta).WithErrorCode(\"00421\");\n        }\n\n        [TestMethod]\n        public void EsigibilitaIVAIsOptional()\n        {\n            AssertOptional(x => x.EsigibilitaIVA);\n        }\n\n        [TestMethod]\n        public void EsigibilitaIVAOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<EsigibilitaIVA>(x => x.EsigibilitaIVA);\n        }\n\n        [TestMethod]\n        public void RiferimentoNormativoIsRequiredWhenNaturaHasValue()\n        {\n            AssertOptional(x => x.RiferimentoNormativo);\n        }\n\n        [TestMethod]\n        public void RiferimentoNormativoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.RiferimentoNormativo, 1, 100);\n        }\n\n        [TestMethod]\n        public void RiferimentoNormativoMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.RiferimentoNormativo);\n        }\n\n        [TestMethod]\n        public void SpeseAccessorie()\n        {\n            AssertDecimalType(x => x.SpeseAccessorie, 2, 13);\n        }\n\n        [TestMethod]\n        public void ImponibileImporto()\n        {\n            AssertDecimalType(x => x.ImponibileImporto, 2, 13);\n        }\n\n        [TestMethod]\n        public void Arrotondamento()\n        {\n            AssertDecimalType(x => x.Arrotondamento, 8, 19);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiRitenutaValidator.cs",
    "content": "﻿using Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiRitenutaValidator : BaseClass<DatiRitenuta, FatturaElettronica.Validators.DatiRitenutaValidator>\n    {\n        [TestMethod]\n        public void TipoRitenutaIsRequired()\n        {\n            AssertRequired(x => x.TipoRitenuta);\n        }\n\n        [TestMethod]\n        public void TipoRitenutaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<TipoRitenuta>(x => x.TipoRitenuta);\n        }\n\n        [TestMethod]\n        public void CausalePagamentoIsRequired()\n        {\n            AssertRequired(x => x.CausalePagamento);\n        }\n\n        [TestMethod]\n        public void CausalePagamentoOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<CausalePagamento>(x => x.CausalePagamento);\n        }\n        \n        [TestMethod]\n        public void ImponibileImporto()\n        {\n            AssertDecimalType(x => x.ImportoRitenuta, 2, 13);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiSALValidator.cs",
    "content": "using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiSALValidator\n        : BaseClass<DatiSAL, FatturaElettronica.Validators.DatiSALValidator>\n    {\n        [TestMethod]\n        public void RiferimentoFaseValidatorMinMax()\n        {\n            Challenge.RiferimentoFase = 0;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.RiferimentoFase);\n\n            Challenge.RiferimentoFase = 1000;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.RiferimentoFase);\n\n            Challenge.RiferimentoFase = 1;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.RiferimentoFase);\n\n            Challenge.RiferimentoFase = 999;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.RiferimentoFase);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiTrasmissioneValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing FatturaElettronica.Validators;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiTrasmissioneValidator\n        : BaseClass<DatiTrasmissione, FatturaElettronica.Validators.DatiTrasmissioneValidator>\n    {\n        [TestMethod]\n        public void IdTrasmittenteHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdTrasmittente,\n                typeof(IdTrasmittenteValidator));\n        }\n\n        [TestMethod]\n        public void ProgressivoInvioIsRequired()\n        {\n            AssertRequired(x => x.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ContattiTrasmittenteHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.ContattiTrasmittente,\n                typeof(FatturaElettronica.Validators.ContattiTrasmittenteValidator));\n        }\n\n        [TestMethod]\n        public void ProgressivoInvioMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.ProgressivoInvio, 1, 10);\n        }\n\n        [TestMethod]\n        public void ProgressivoInvioMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void FormatoTrasmissioneIsRequired()\n        {\n            AssertRequired(x => x.FormatoTrasmissione);\n        }\n\n        [TestMethod]\n        public void FormatoTrasmissioneOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<FormatoTrasmissione>(x => x.FormatoTrasmissione, expectedErrorCode: \"00428\");\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioIsRequired()\n        {\n            AssertRequired(x => x.CodiceDestinatario);\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioMustBeValid()\n        {\n            Challenge.CodiceDestinatario = \"hello\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceDestinatario);\n            \n            Challenge.CodiceDestinatario = \"Subm70N\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceDestinatario);\n            \n            Challenge.CodiceDestinatario = \"Sub-70N\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceDestinatario);\n            \n            Challenge.CodiceDestinatario = \"SUBM70N\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.CodiceDestinatario);\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioWhenFormatoTrasmissioneHasValueFPA12()\n        {\n            // Quando FormatoTrasmissione = FPA12 ProgressivioInvio.Lenght = 6.\n            Challenge.FormatoTrasmissione = Defaults.FormatoTrasmissione.PubblicaAmministrazione;\n            AssertLength(x => x.CodiceDestinatario, 6, expectedErrorCode: \"00427\", filler: 'X');\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioWhenFormatoTrasmissioneHasValueFPR12()\n        {\n            // Quando FormatoTrasmissione = FPR12 ProgressivioInvio.Lenght = 7.\n            Challenge.FormatoTrasmissione = Defaults.FormatoTrasmissione.Privati;\n            AssertLength(x => x.CodiceDestinatario, 7, expectedErrorCode: \"00427\", filler: 'X');\n        }\n\n        [TestMethod]\n        public void PECDestinatarioIsOptional()\n        {\n            AssertOptional(x => x.PECDestinatario);\n        }\n\n        [TestMethod]\n        public void PECDestinatarioMustBeValid()\n        {\n            Challenge.PECDestinatario = \"not really\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PECDestinatario);\n            \n            Challenge.PECDestinatario = \"not@really,com\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PECDestinatario);\n            \n            Challenge.PECDestinatario = \"test@2bbresine.it\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PECDestinatario);\n            \n            Challenge.PECDestinatario = \"maybe@we.can\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PECDestinatario);\n            \n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiTrasportoValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiTrasportoValidator\n        : BaseClass<DatiTrasporto, FatturaElettronica.Validators.DatiTrasportoValidator>\n    {\n        [TestMethod]\n        public void DatiAnagraficiVettoreHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.DatiAnagraficiVettore, typeof(FatturaElettronica.Validators.DatiAnagraficiVettoreValidator));\n        }\n\n        [TestMethod]\n        public void MezzoTrasportoIsOptional()\n        {\n            AssertOptional(x => x.MezzoTrasporto);\n        }\n\n        [TestMethod]\n        public void MezzoTrasportoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.MezzoTrasporto, 1, 80);\n        }\n\n        [TestMethod]\n        public void MezzoTrasportoMinMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.MezzoTrasporto);\n        }\n\n        [TestMethod]\n        public void CausaleTrasportoIsOptional()\n        {\n            AssertOptional(x => x.CausaleTrasporto);\n        }\n\n        [TestMethod]\n        public void CausaleTrasportoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CausaleTrasporto, 1, 100);\n        }\n\n        [TestMethod]\n        public void CausaleTrasportoMinMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.CausaleTrasporto);\n        }\n\n        [TestMethod]\n        public void DescrizioneIsOptional()\n        {\n            AssertOptional(x => x.Descrizione);\n        }\n\n        [TestMethod]\n        public void DescrizioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Descrizione, 1, 100);\n        }\n\n        [TestMethod]\n        public void DescrizioneMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Descrizione);\n        }\n\n        [TestMethod]\n        public void UnitaMisuraPesoIsOptional()\n        {\n            AssertOptional(x => x.UnitaMisuraPeso);\n        }\n\n        [TestMethod]\n        public void UnitaMisuraPesoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.UnitaMisuraPeso, 1, 10);\n        }\n\n        [TestMethod]\n        public void UnitaMisuraPesoMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.UnitaMisuraPeso);\n        }\n\n        [TestMethod]\n        public void TipoResaIsOptional()\n        {\n            AssertOptional(x => x.TipoResa);\n        }\n\n        [TestMethod]\n        public void TipoResaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<TipoResa>(x => x.TipoResa);\n        }\n\n        [TestMethod]\n        public void IndirizzoResaHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.IndirizzoResa,\n                typeof(Validators.IndirizzoResaValidator));\n        }\n\n        [TestMethod]\n        public void PesoNettoMaxValue()\n        {\n            Challenge.PesoNetto = 10000m;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PesoNetto);\n\n            Challenge.PesoNetto = 9999.99m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PesoNetto);\n        }\n\n        [TestMethod]\n        public void PesoLordoMaxValue()\n        {\n            Challenge.PesoLordo = 10000m;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PesoLordo);\n\n            Challenge.PesoLordo = 9999.99m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PesoLordo);\n        }\n\n        [TestMethod]\n        public void NumeroColliMinMax()\n        {\n            Challenge.NumeroColli = -1;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.NumeroColli);\n\n            Challenge.NumeroColli = 10000;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.NumeroColli);\n\n            Challenge.NumeroColli = 1;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.NumeroColli);\n\n            Challenge.NumeroColli = 9999;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.NumeroColli);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DatiVeicoliValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiVeicoli;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DatiVeicoliValidator : BaseClass<DatiVeicoli, FatturaElettronica.Validators.DatiVeicoliValidator>\n    {\n        [TestMethod]\n        public void TotalePercorsoIsRequired()\n        {\n            AssertRequired(x => x.TotalePercorso);\n        }\n\n        [TestMethod]\n        public void TotalePercorsoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.TotalePercorso, 1, 15);\n        }\n\n        [TestMethod]\n        public void TotalePercorsoMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.TotalePercorso);\n        }\n\n        [TestMethod]\n        public void DataIsRequired()\n        {\n            AssertRequired(x => x.Data);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DenominazioneNomeCognomeValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FluentValidation;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public abstract class DenominazioneNomeCognomeValidator<TClass, TValidator>\n        : BaseClass<TClass, TValidator>\n        where TClass : DenominazioneNomeCognome\n        where TValidator : IValidator<TClass>\n    {\n        [TestMethod]\n        public void DenominazioneIsRequiredWhenNomeCognomeIsEmpty()\n        {\n            Challenge.Nome = null;\n            Challenge.Cognome = null;\n\n            AssertRequired(x => x.Denominazione, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Denominazione, 1, 80, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Denominazione);\n        }\n\n        [TestMethod]\n        public void DenominazioneMustBeEmptyWhenNomeCognoneIsNotEmpty()\n        {\n            Challenge.Nome = \"nome\";\n\n            Challenge.Denominazione = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Denominazione).WithErrorCode(\"00200\");\n\n            Challenge.Denominazione = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Denominazione);\n            \n            Challenge.Denominazione = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Denominazione);\n        }\n\n        [TestMethod]\n        public void NomeIsRequiredWhenDenominazioneIsEmpty()\n        {\n            Challenge.Denominazione = null;\n\n            AssertRequired(x => x.Nome, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Nome, 1, 60, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Nome);\n        }\n\n        [TestMethod]\n        public void NomeMustBeEmptyWhenDenominazioneIsNotEmpty()\n        {\n            Challenge.Denominazione = \"denominazione\";\n\n            Challenge.Nome = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Nome).WithErrorCode(\"00200\");\n\n            Challenge.Nome = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Nome);\n            \n            Challenge.Nome = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Nome);\n        }\n\n        [TestMethod]\n        public void CognomeIsRequiredWhenDenominazioneIsEmpty()\n        {\n            Challenge.Denominazione = null;\n\n            AssertRequired(x => x.Cognome, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Cognome, 1, 60, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Cognome);\n        }\n\n        [TestMethod]\n        public void CognomeMustBeEmptyWhenDenominazioneIsNotEmpty()\n        {\n            Challenge.Denominazione = \"denominazione\";\n            Challenge.Cognome = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Cognome).WithErrorCode(\"00200\");\n\n            Challenge.Cognome = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Cognome);\n            \n            Challenge.Cognome = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Cognome);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DettaglioLineeValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class\n        DettaglioLineeValidator : BaseClass<DettaglioLinee, FatturaElettronica.Validators.DettaglioLineeValidator>\n    {\n        [TestMethod]\n        public void NumeroLineaValidatorMinMax()\n        {\n            Challenge.NumeroLinea = 0;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.NumeroLinea);\n\n            Challenge.NumeroLinea = 10000;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.NumeroLinea);\n\n            Challenge.NumeroLinea = 1;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.NumeroLinea);\n\n            Challenge.NumeroLinea = 9999;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.NumeroLinea);\n        }\n\n        [TestMethod]\n        public void TipoCessionePrestazioneIsOptional()\n        {\n            AssertOptional(x => x.TipoCessionePrestazione);\n        }\n\n        [TestMethod]\n        public void TipoCessionePrestazioneOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<TipoCessionePrestazione>(x => x.TipoCessionePrestazione);\n        }\n\n        [TestMethod]\n        public void CodiceArticoloHasCollectionValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.CodiceArticolo,\n                typeof(FatturaElettronica.Validators.CodiceArticoloValidator));\n        }\n\n        [TestMethod]\n        public void CodiceArticoloCollectionCanBeEmpty()\n        {\n            AssertCollectionCanBeEmpty(x => x.CodiceArticolo);\n        }\n\n        [TestMethod]\n        public void DescrizioneIsRequired()\n        {\n            AssertRequired(x => x.Descrizione);\n        }\n\n        [TestMethod]\n        public void DescrizioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Descrizione, 1, 1000);\n        }\n\n        [TestMethod]\n        public void DescrizioneMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Descrizione);\n        }\n\n        [TestMethod]\n        public void UnitaMisuraIsOptional()\n        {\n            AssertOptional(x => x.UnitaMisura);\n        }\n\n        [TestMethod]\n        public void UnitaMisuraMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.UnitaMisura, 1, 10);\n        }\n\n        [TestMethod]\n        public void UnitaMisuraMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.UnitaMisura);\n        }\n\n        [TestMethod]\n        public void ScontoMaggioazioneHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.ScontoMaggiorazione,\n                typeof(Validators.ScontoMaggiorazioneValidator));\n        }\n\n        [TestMethod]\n        public void ScontoMaggiorazioneCollectionCanBeEmpty()\n        {\n            AssertCollectionCanBeEmpty(x => x.ScontoMaggiorazione);\n        }\n\n        [TestMethod]\n        public void PrezzoTotaleValidatesAgainstError00423()\n        {\n            Challenge.PrezzoUnitario = 13.4426m;\n            Challenge.Quantita = 2;\n            Challenge.PrezzoTotale = 26.89m;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 3.0246m;\n            Challenge.Quantita = 5;\n            Challenge.PrezzoTotale = 15.12m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 5.7377m;\n            Challenge.Quantita = 0.2m;\n            Challenge.PrezzoTotale = 1.15m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 0.0492m;\n            Challenge.Quantita = 4;\n            Challenge.PrezzoTotale = 0.20m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 22;\n            Challenge.Quantita = 4;\n            Challenge.PrezzoTotale = 88;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 9.2425m;\n            Challenge.Quantita = 4;\n            Challenge.PrezzoTotale = 36.97m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 12.235m;\n            Challenge.Quantita = 1;\n            Challenge.PrezzoTotale = 12.24m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 19.30m;\n            Challenge.Quantita = 1;\n            Challenge.ScontoMaggiorazione.Add(\n                new() { Tipo = \"SC\", Percentuale = 15m });\n            Challenge.PrezzoTotale = 16.41m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoUnitario = 20.5m;\n            Challenge.Quantita = 2;\n            Challenge.PrezzoTotale = 42;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PrezzoTotale).WithErrorCode(\"00423\");\n\n            // https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/45\n            Challenge.ScontoMaggiorazione.Clear();\n            Challenge.PrezzoUnitario = 0.865951m;\n            Challenge.Quantita = 98;\n            Challenge.PrezzoTotale = 84.863198m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            // https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/66\n            Challenge.PrezzoUnitario = 20.5m;\n            Challenge.Quantita = 1;\n            Challenge.PrezzoTotale = 20.5m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoTotale = 20.51m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoTotale = 20.52m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PrezzoTotale).WithErrorCode(\"00423\");\n\n            Challenge.PrezzoTotale = 20.49m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            Challenge.PrezzoTotale = 20.48m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PrezzoTotale).WithErrorCode(\"00423\");\n\n            // https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/71\n            Challenge.ScontoMaggiorazione.Clear();\n            Challenge.ScontoMaggiorazione.Add(new() { Importo = 0, Tipo = \"SC\" });\n            Challenge.PrezzoUnitario = 1m;\n            Challenge.Quantita = 1;\n            Challenge.PrezzoTotale = 1m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            //numero massimo di decimali\n            Challenge.ScontoMaggiorazione.Clear();\n            Challenge.PrezzoUnitario = 0.12345678m;\n            Challenge.Quantita = 1000000000;\n            Challenge.PrezzoTotale = Challenge.PrezzoUnitario * Challenge.Quantita.Value;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n\n            //Errore 00423 per prezzo unitario per arrotondamento\n            Challenge.ScontoMaggiorazione.Clear();\n            Challenge.PrezzoUnitario = 0.123456789m;\n            Challenge.Quantita = 10000000000;\n            Challenge.PrezzoTotale = Challenge.PrezzoUnitario * Challenge.Quantita.Value;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PrezzoTotale).WithErrorCode(\"00423\");\n\n            // https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/394\n            Challenge.PrezzoUnitario = 0.093m;\n            Challenge.Quantita = 200;\n            Challenge.PrezzoTotale = 9.66m;\n            Challenge.ScontoMaggiorazione.Add(new() { Tipo = \"SC\", Percentuale = 48m });\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PrezzoTotale);\n        }\n\n        [TestMethod]\n        public void RitenutaIsOptional()\n        {\n            AssertOptional(x => x.Ritenuta);\n        }\n\n        [TestMethod]\n        public void RitenutaOnlyAccepstSIValue()\n        {\n            AssertOnlyAcceptsSIValue(x => x.Ritenuta);\n        }\n\n        [TestMethod]\n        public void NaturaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<Natura>(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void NaturaValidateAgainstError00400()\n        {\n            Challenge.AliquotaIVA = 0;\n            Challenge.Natura = string.Empty;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00400\");\n\n            Challenge.AliquotaIVA = 0;\n            Challenge.Natura = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00400\");\n\n            Challenge.AliquotaIVA = 22m;\n            Challenge.Natura = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void RiferimentoAmministrazioneIsOptional()\n        {\n            AssertOptional(x => x.RiferimentoAmministrazione);\n        }\n\n        [TestMethod]\n        public void RiferimentoAmministrazioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.RiferimentoAmministrazione, 1, 20);\n        }\n\n        [TestMethod]\n        public void RiferimentoAmministrazioneMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.RiferimentoAmministrazione);\n        }\n\n        [TestMethod]\n        public void AltriDatiGestionaliHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.AltriDatiGestionali,\n                typeof(FatturaElettronica.Validators.AltriDatiGestionaliValidator));\n        }\n\n        [TestMethod]\n        public void AltriDatiGestionaliCollectionCanBeEmpty()\n        {\n            AssertCollectionCanBeEmpty(x => x.AltriDatiGestionali);\n        }\n\n        [TestMethod]\n        public void QuantitaIsOptional()\n        {\n            AssertOptional(x => x.Quantita);\n        }\n\n        [TestMethod]\n        public void QuantitaCannotBeNegative()\n        {\n            Challenge.Quantita = -1;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Quantita);\n\n            Challenge.Quantita = 0;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Quantita);\n        }\n\n        [TestMethod]\n        public void PrezzoUnitario()\n        {\n            AssertDecimalType(x => x.PrezzoUnitario, 8, 19);\n        }\n\n        [TestMethod]\n        public void AliquotaIvaShouldBeLessOrEqualTo100()\n        {\n            Challenge.AliquotaIVA = 101;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.AliquotaIVA);\n\n            Challenge.AliquotaIVA = 100;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.AliquotaIVA);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/DettaglioPagamentoValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiPagamento;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class DettaglioPagamentoValidator\n        : BaseClass<DettaglioPagamento, FatturaElettronica.Validators.DettaglioPagamentoValidator>\n    {\n        [TestMethod]\n        public void BeneficiarioIsOptional()\n        {\n            AssertOptional(x => x.Beneficiario);\n        }\n\n        [TestMethod]\n        public void BeneficiarioMisuraMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Beneficiario, 1, 200);\n        }\n\n        [TestMethod]\n        public void BeneficiarioMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Beneficiario);\n        }\n\n        [TestMethod]\n        public void ModalitaPagamentoIsRequired()\n        {\n            AssertRequired(x => x.ModalitaPagamento);\n        }\n\n        [TestMethod]\n        public void ModalitaPagamentoOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<ModalitaPagamento>(x => x.ModalitaPagamento);\n        }\n\n        [TestMethod]\n        public void CodUfficioPostaleIsOptional()\n        {\n            AssertOptional(x => x.CodUfficioPostale);\n        }\n\n        [TestMethod]\n        public void CodUfficioPostaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodUfficioPostale, 1, 20);\n        }\n\n        [TestMethod]\n        public void CodUfficioPostaleMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.CodUfficioPostale);\n        }\n\n        [TestMethod]\n        public void CognomeQuietanzanteIsOptional()\n        {\n            AssertOptional(x => x.CognomeQuietanzante);\n        }\n\n        [TestMethod]\n        public void CognomeQuietanzanteMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CognomeQuietanzante, 1, 60);\n        }\n\n        [TestMethod]\n        public void CognomeQuietanzanteMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.CognomeQuietanzante);\n        }\n\n        [TestMethod]\n        public void NomeQuietanzanteIsOptional()\n        {\n            AssertOptional(x => x.NomeQuietanzante);\n        }\n\n        [TestMethod]\n        public void NomeQuietanzanteMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NomeQuietanzante, 1, 60);\n        }\n\n        [TestMethod]\n        public void NomeQuietanzanteMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.NomeQuietanzante);\n        }\n\n        [TestMethod]\n        public void CFQuietanzanteIsOptional()\n        {\n            AssertOptional(x => x.CFQuietanzante);\n        }\n\n        [TestMethod]\n        public void CFQuietanzanteMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CFQuietanzante, 1, 16);\n        }\n\n        [TestMethod]\n        public void TitoloQuietanzanteIsOptional()\n        {\n            AssertOptional(x => x.TitoloQuietanzante);\n        }\n\n        [TestMethod]\n        public void TitoloQuietanzanteMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.TitoloQuietanzante, 2, 10);\n        }\n\n        [TestMethod]\n        public void TitoloQuietanzanteMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.TitoloQuietanzante);\n        }\n\n        [TestMethod]\n        public void IstitutoFinanziarioIsOptional()\n        {\n            AssertOptional(x => x.IstitutoFinanziario);\n        }\n\n        [TestMethod]\n        public void IstitutoFinanziarioMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.IstitutoFinanziario, 1, 80);\n        }\n\n        [TestMethod]\n        public void IstitutoFinanziarioMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.IstitutoFinanziario);\n        }\n\n        [TestMethod]\n        public void IBANIsOptional()\n        {\n            AssertOptional(x => x.IBAN);\n        }\n\n        [TestMethod]\n        public void IBANMustBeValid()\n        {\n            Challenge.IBAN = \"hello\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.IBAN);\n            \n            Challenge.IBAN = \"IBAN IT17 X060 5502 1000 0000 1234 567\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.IBAN);\n            \n            Challenge.IBAN = \"ITQ0103071210000000011561\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.IBAN);\n        }\n\n        [TestMethod]\n        public void ABIIsOptional()\n        {\n            AssertOptional(x => x.ABI);\n        }\n\n        [TestMethod]\n        public void ABIMinMaxLength()\n        {\n            AssertLength(x => x.ABI, 5);\n        }\n\n        [TestMethod]\n        public void CABIsOptional()\n        {\n            AssertOptional(x => x.CAB);\n        }\n\n        [TestMethod]\n        public void CABMinMaxLength()\n        {\n            AssertLength(x => x.CAB, 5);\n        }\n\n        [TestMethod]\n        public void BICIsOptional()\n        {\n            AssertOptional(x => x.BIC);\n        }\n\n        [TestMethod]\n        public void BICMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.BIC, 8, 11);\n        }\n\n        [TestMethod]\n        public void CodicePagamentoIsOptional()\n        {\n            AssertOptional(x => x.CodicePagamento);\n        }\n\n        [TestMethod]\n        public void CodicePagamentoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodicePagamento, 1, 60);\n        }\n\n        [TestMethod]\n        public void CodicePagamentoMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.CodicePagamento);\n        }\n\n        [TestMethod]\n        public void ScontoPagamentoAnticipato()\n        {\n            AssertDecimalType(x => x.ScontoPagamentoAnticipato, 2, 13);\n        }\n        \n        [TestMethod]\n        public void PenalitaPagamentiRitardati()\n        {\n            AssertDecimalType(x => x.PenalitaPagamentiRitardati, 2, 13);\n        }\n        \n        [TestMethod]\n        public void ImportoPagamento()\n        {\n            AssertDecimalType(x => x.ImportoPagamento, 2, 13);\n        }\n        [TestMethod]\n        public void GiorniTerminiPagamentoMinMax()\n        {\n            Challenge.GiorniTerminiPagamento = -1;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.GiorniTerminiPagamento);\n\n            Challenge.GiorniTerminiPagamento = 1000;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.GiorniTerminiPagamento);\n            \n            Challenge.GiorniTerminiPagamento = 1;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.GiorniTerminiPagamento);\n            \n            Challenge.GiorniTerminiPagamento = 999;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.GiorniTerminiPagamento);\n            \n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/FatturaCreateInstance.cs",
    "content": "﻿using FatturaElettronica.Defaults;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class FatturaCreateInstance\n    {\n        FatturaBase _challenge;\n\n        [TestMethod]\n        public void CreatePubblicaAmministrazioneInstance()\n        {\n            _challenge = FatturaOrdinaria.CreateInstance(Instance.PubblicaAmministrazione);\n            Assert.AreEqual(FormatoTrasmissione.PubblicaAmministrazione,\n                ((FatturaOrdinaria) _challenge).FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione);\n        }\n\n        [TestMethod]\n        public void CreatePrivatiInstance()\n        {\n            _challenge = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            Assert.AreEqual(FormatoTrasmissione.Privati,\n                ((FatturaOrdinaria) _challenge).FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione);\n            Assert.AreEqual(\"0000000\",\n                ((FatturaOrdinaria) _challenge).FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/FatturaElettronicaBodyValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody;\nusing FatturaElettronica.Resources;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class FatturaElettronicaBodyValidator\n        : BaseClass<FatturaElettronicaBody, FatturaElettronica.Validators.FatturaElettronicaBodyValidator>\n    {\n        [TestMethod]\n        public void DatiGeneraliHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiGenerali, typeof(FatturaElettronica.Validators.DatiGeneraliValidator));\n        }\n\n        [TestMethod]\n        public void DatiBeniServiziHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiBeniServizi, typeof(FatturaElettronica.Validators.DatiBeniServiziValidator));\n        }\n\n        [TestMethod]\n        public void DatiBeniServiziCannotBeEmpty()\n        {\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(ValidatorMessages.DatiBeniServiziEObbligatorio,\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiBeniServizi\")?.ErrorMessage);\n        }\n\n        [TestMethod]\n        public void TipoDocumentoValidateAgainstError00474()\n        {\n            Challenge.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD21\";\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {AliquotaIVA = 1m});\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {AliquotaIVA = 0m});\n\n            Assert.IsNotNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00474\"));\n\n            Challenge.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD01\";\n            Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00474\"));\n\n            Challenge.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD21\";\n            Challenge.DatiBeniServizi.DettaglioLinee[1].AliquotaIVA = 2m;\n            Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00474\"));\n        }\n\n        [TestMethod]\n        public void DatiRitenutaValidateAgainstError00411()\n        {\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {Ritenuta = \"SI\"});\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(\"00411\",\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiGenerali.DatiGeneraliDocumento.DatiRitenuta\")\n                    ?.ErrorCode);\n\n            Challenge.DatiBeniServizi.DettaglioLinee[0].Ritenuta = null;\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x =>\n                x.PropertyName == \"DatiGenerali.DatiGeneraliDocumento.DatiRitenuta\"));\n        }\n\n        [TestMethod]\n        public void DatiRitenutaValidateAgainstError00422()\n        {\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {AliquotaIVA = 10m, PrezzoTotale = 100m});\n            Challenge.DatiBeniServizi.DatiRiepilogo.Add(new()\n            {\n                AliquotaIVA = 10m, ImponibileImporto = 101m\n            });\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(\"00422\",\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiBeniServizi.DatiRiepilogo\")?.ErrorCode);\n\n            Challenge.DatiBeniServizi.DatiRiepilogo[0].ImponibileImporto = 100m;\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiBeniServizi.DatiRiepilogo\"));\n        }\n\n        [TestMethod]\n        public void DatiRitenutaValidateAgainstError00419()\n        {\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {AliquotaIVA = 1});\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {AliquotaIVA = 2});\n            Challenge.DatiBeniServizi.DettaglioLinee.Add(new() {AliquotaIVA = 3});\n\n            Challenge.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale.Add(\n                new() {AliquotaIVA = 4});\n\n            Challenge.DatiBeniServizi.DatiRiepilogo.Add(new() {AliquotaIVA = 1});\n            Challenge.DatiBeniServizi.DatiRiepilogo.Add(new() {AliquotaIVA = 2});\n            Challenge.DatiBeniServizi.DatiRiepilogo.Add(new() {AliquotaIVA = 3});\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(\"00419\",\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiBeniServizi.DatiRiepilogo\")?.ErrorCode);\n\n            Challenge.DatiBeniServizi.DatiRiepilogo.Add(new() {AliquotaIVA = 4});\n            r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiBeniServizi.DatiRiepilogo\"));\n        }\n\n        [TestMethod]\n        public void DatiVeicoliHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiGenerali, typeof(FatturaElettronica.Validators.DatiGeneraliValidator));\n        }\n\n        [TestMethod]\n        public void DatiPagamentoHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiPagamento, typeof(FatturaElettronica.Validators.DatiPagamentoValidator));\n        }\n\n        [TestMethod]\n        public void AllegatiHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.Allegati, typeof(FatturaElettronica.Validators.AllegatiValidator));\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Ordinaria/FatturaElettronicaHeaderValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaHeader;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class FatturaElettronicaHeaderValidator\n        : BaseClass<FatturaElettronicaHeader, FatturaElettronica.Validators.FatturaElettronicaHeaderValidator>\n    {\n        [TestMethod]\n        public void DatiTramissioneHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiTrasmissione, typeof(FatturaElettronica.Validators.DatiTrasmissioneValidator));\n        }\n\n        [TestMethod]\n        public void CedentePrestatoreHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.CedentePrestatore, typeof(FatturaElettronica.Validators.CedentePrestatoreValidator));\n        }\n\n        [TestMethod]\n        public void RappresentanteFiscaleHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.Rappresentante, typeof(FatturaElettronica.Validators.RappresentanteFiscaleValidator));\n        }\n\n        [TestMethod]\n        public void CessionarioCommittenteHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.CessionarioCommittente, typeof(FatturaElettronica.Validators.CessionarioCommittenteValidator));\n        }\n\n        [TestMethod]\n        public void TerzoIntermediarioHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.TerzoIntermediarioOSoggettoEmittente,\n                typeof(FatturaElettronica.Validators.TerzoIntermediarioOSoggettoEmittenteValidator));\n        }\n\n        [TestMethod]\n        public void SoggettoEmittenteIsOptional()\n        {\n            AssertOptional(x => x.SoggettoEmittente);\n        }\n\n        [TestMethod]\n        public void SoggettoEmittenteOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<SoggettoEmittente>(x => x.SoggettoEmittente);\n        }\n\n        [TestMethod]\n        public void HeaderValidateAgainstError00313()\n        {\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.DatiTrasmissione.CodiceDestinatario = \"XXXXXXX\";\n            var result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00313\"));\n\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"FR\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00313\"));\n\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.DatiTrasmissione.CodiceDestinatario = \"0123456\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00313\"));\n        }\n\n        [TestMethod]\n        public void HeaderValidateAgainstError00476()\n        {\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"FR\";\n            Challenge.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"FR\";\n            var result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"FR\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"FT\";\n            Challenge.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"IT\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n            \n            Challenge.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n            \n            Challenge.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese = null;\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/FatturaPrincipaleValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class\n        FatturaPrincipaleValidator : BaseClass<FatturaPrincipale,\n            FatturaElettronica.Validators.FatturaPrincipaleValidator>\n    {\n        [TestMethod]\n        public void NumeroFatturaPrincipaleIsRequired()\n        {\n            AssertRequired(x => x.NumeroFatturaPrincipale);\n        }\n\n        [TestMethod]\n        public void NumeroFatturaPrinicipaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumeroFatturaPrincipale, 1, 20);\n        }\n\n        [TestMethod]\n        public void NumeroFatturaPrincipaleMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.NumeroFatturaPrincipale);\n        }\n\n        [TestMethod]\n        public void DataFatturaPrincipaleIsRequired()\n        {\n            AssertRequired(x => x.DataFatturaPrincipale);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/FatturaValidator.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Linq;\nusing FatturaElettronica.Common;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class FatturaValidator : BaseClass<FatturaOrdinaria, Validators.FatturaOrdinariaValidator>\n    {\n        [TestInitialize]\n        public new void Init()\n        {\n            Validator = new();\n            Challenge = new();\n        }\n\n        [TestMethod]\n        public void FatturaElettronicaHeaderHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.FatturaElettronicaHeader,\n                typeof(Validators.FatturaElettronicaHeaderValidator));\n        }\n\n        [TestMethod]\n        public void FatturaElettronicaBodyHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.FatturaElettronicaBody, typeof(Validators.FatturaElettronicaBodyValidator));\n        }\n\n        [TestMethod]\n        public void FatturaValidateAgainstError00475()\n        {\n            var tipiDocumento = new[] { \"TD16\", \"TD17\", \"TD18\", \"TD19\", \"TD20\", \"TD22\", \"TD23\" };\n            var datiAnagrafici = Challenge.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici;\n            var idEmpty = new IdFiscaleIVA();\n            var id123 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"123\" };\n\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                Challenge.FatturaElettronicaBody.Clear();\n                var body = new FatturaElettronicaBody();\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody.Add(body);\n\n                datiAnagrafici.IdFiscaleIVA = idEmpty;\n                var result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00475\"));\n\n                datiAnagrafici.IdFiscaleIVA = id123;\n                result = Challenge.Validate();\n                Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00475\"));\n            }\n        }\n\n        [TestMethod]\n        public void FatturaValidateAgainstError00473()\n        {\n            var tipiDocumento = new[] { \"TD17\", \"TD18\", \"TD19\", \"TD28\" };\n            var cedente = Challenge.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici;\n\n            cedente.IdFiscaleIVA = new() { IdPaese = \"IT\" };\n            var body = new FatturaElettronicaBody();\n            Challenge.FatturaElettronicaBody.Add(body);\n\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Assert.IsNotNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00473\"));\n            }\n\n            body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD01\";\n            Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00473\"));\n\n            cedente.IdFiscaleIVA = new() { IdPaese = \"SM\" };\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00473\"));\n            }\n            \n        }\n\n        [TestMethod]\n        public void FatturaValidateAgainstError00472()\n        {\n            var cedente = Challenge.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici;\n            var cessionario = Challenge.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici;\n            var id123 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"123\" };\n            var id456 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"456\" };\n\n            var tipiDocumento = new[] { \"TD21\", \"TD27\" };\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                var body = new FatturaElettronicaBody();\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody.Add(body);\n\n                cedente.CodiceFiscale=\"123\";\n                cessionario.CodiceFiscale = \"123\";\n                Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n\n                cedente.CodiceFiscale = null;\n                cessionario.CodiceFiscale = null;\n                \n                cedente.IdFiscaleIVA = id123;\n                cessionario.IdFiscaleIVA = id456;\n                Assert.IsNotNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n\n                cessionario.IdFiscaleIVA = id123;\n                Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n\n                cedente.CodiceFiscale = \"123\";\n                cessionario.CodiceFiscale = \"456\";\n                Assert.IsNotNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n\n                cedente.CodiceFiscale = \"123\";\n                Assert.IsNotNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n\n                // https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/396\n                cedente.IdFiscaleIVA = id123;\n                cessionario.IdFiscaleIVA = id123;\n                cessionario.CodiceFiscale = null;\n                Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n                cessionario.CodiceFiscale = \"\";\n                Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n                \n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD01\";\n                Assert.IsNull(Challenge.Validate().Errors.FirstOrDefault(x => x.ErrorCode == \"00472\"));\n                \n                \n            }\n        }\n\n        [TestMethod]\n        public void FatturaValidateAgainstError00471()\n        {\n            var tipiDocumento = new[]\n            {\n                \"TD01\", \"TD02\", \"TD03\", \"TD06\", \"TD16\", \"TD17\", \"TD18\", \"TD19\", \"TD20\", \"TD24\", \"TD25\", \"TD28\"\n            };\n            var cedente = Challenge.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici;\n            var cessionario = Challenge.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici;\n            var id123 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"123\" };\n            var id456 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"456\" };\n\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                var body = new FatturaElettronicaBody();\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody.Add(body);\n\n                cedente.IdFiscaleIVA = id123;\n                cessionario.IdFiscaleIVA = id123;\n                var result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00471\"));\n\n                cedente.IdFiscaleIVA = id456;\n                result = Challenge.Validate();\n                Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00471\"));\n\n                cedente.IdFiscaleIVA = new();\n                cessionario.IdFiscaleIVA = new();\n                result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00471\"));\n            }\n        }\n\n        [TestMethod]\n        public void BodyValidateAgainstError00444()\n        {\n            var body = new FatturaElettronicaBody();\n            body.DatiBeniServizi.DettaglioLinee.Add(new() { Natura = \"N1\" });\n            body.DatiBeniServizi.DettaglioLinee.Add(new() { Natura = \"N2\" });\n            body.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale.Add(\n                new() { Natura = \"N3\" });\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { Natura = \"N1\" });\n            Challenge.FatturaElettronicaBody.Add(body);\n\n            var result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00444\"));\n\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { Natura = \"N2\" });\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00444\"));\n\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { Natura = \"N3\" });\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00444\"));\n\n            body.DatiBeniServizi.DettaglioLinee.Add(new() { Natura = null });\n            result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00444\"));\n\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { Natura = null });\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00444\"));\n        }\n\n        [TestMethod]\n        public void BodyValidateAgainstError00443()\n        {\n            var body = new FatturaElettronicaBody();\n            body.DatiBeniServizi.DettaglioLinee.Add(new() { AliquotaIVA = 1m });\n            body.DatiBeniServizi.DettaglioLinee.Add(new() { AliquotaIVA = 2m });\n            body.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale.Add(\n                new() { AliquotaIVA = 3m });\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 1m });\n            Challenge.FatturaElettronicaBody.Add(body);\n\n            var result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00443\"));\n\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 2m });\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00443\"));\n\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 3m });\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00443\"));\n\n            body.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 4m });\n            result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00443\"));\n        }\n\n        [TestMethod]\n        public void BodyValidateAgainstError00401()\n        {\n            var tipiDocumento = new[]\n            {\n                \"TD01\", \"TD02\", \"TD03\", \"TD06\", \"TD17\", \"TD18\", \"TD19\", \"TD20\", \"TD24\", \"TD25\", \"TD28\"\n            };\n\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                var body = new FatturaElettronicaBody();\n                body.DatiBeniServizi.DettaglioLinee.Add(new() { AliquotaIVA = 1m, Natura = \"N6.1\" });\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody = new List<FatturaElettronicaBody>() { body };\n\n                var result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00401\"));\n\n                body = new FatturaElettronicaBody();\n                body.DatiBeniServizi.DettaglioLinee.Add(new() { AliquotaIVA = 0m, Natura = \"N6.1\" });\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody = new List<FatturaElettronicaBody>() { body };\n\n                result = Challenge.Validate();\n                Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00401\"));\n            }\n\n            var bodyTD16 = new FatturaElettronicaBody();\n            bodyTD16.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD16\";\n            bodyTD16.DatiBeniServizi.DettaglioLinee.Add(new() { AliquotaIVA = 1m, Natura = \"N6.1\" });\n            Challenge.FatturaElettronicaBody = new List<FatturaElettronicaBody>() { bodyTD16 };\n            \n            var resultTD16 = Challenge.Validate();\n            Assert.IsNull(resultTD16.Errors.FirstOrDefault(x => x.ErrorCode == \"00401\"));\n        }\n\n        [TestMethod]\n        public void BodyValidateAgainstError00430()\n        {\n            var tipiDocumento = new[]\n            {\n                \"TD01\", \"TD02\", \"TD03\", \"TD06\", \"TD17\", \"TD18\", \"TD19\", \"TD20\", \"TD24\", \"TD25\", \"TD28\"\n            };\n\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                var body = new FatturaElettronicaBody();\n                body.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 1m, Natura = \"N6.1\" });\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody = new List<FatturaElettronicaBody>() { body };\n\n                var result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00430\"));\n\n                body = new FatturaElettronicaBody();\n                body.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 0m, Natura = \"N6.1\" });\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody = new List<FatturaElettronicaBody>() { body };\n\n                result = Challenge.Validate();\n                Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00430\"));\n            }\n\n            var bodyTD16 = new FatturaElettronicaBody();\n            bodyTD16.DatiBeniServizi.DatiRiepilogo.Add(new() { AliquotaIVA = 1m, Natura = \"N6.1\" });\n            bodyTD16.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = \"TD16\";\n            Challenge.FatturaElettronicaBody = new List<FatturaElettronicaBody>() { bodyTD16 };\n\n            var resultTD16 = Challenge.Validate();\n            Assert.IsNull(resultTD16.Errors.FirstOrDefault(x => x.ErrorCode == \"00430\"));\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/IscrizioneREAValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FatturaElettronica.Tabelle;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class IscrizioneREAValidator\n        : BaseClass<IscrizioneREA, FatturaElettronica.Validators.IscrizioneREAValidator>\n    {\n        [TestMethod]\n        public void UfficioIsRequired()\n        {\n            AssertRequired(x => x.Ufficio);\n        }\n\n        [TestMethod]\n        public void UfficioOnlyAcceptsValidValues()\n        {\n            AssertProvinciaOnlyAcceptsValidValues(x => x.Ufficio);\n        }\n\n        [TestMethod]\n        public void NumeroREAIsRequired()\n        {\n            AssertRequired(x => x.NumeroREA);\n        }\n\n        [TestMethod]\n        public void NumeroREAMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NumeroREA, 1, 20);\n        }\n\n        [TestMethod]\n        public void NumeroREAMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.NumeroREA);\n        }\n\n        [TestMethod]\n        public void SocioUnicoIsOptional()\n        {\n            AssertOptional(x => x.SocioUnico);\n        }\n\n        [TestMethod]\n        public void SocioUnicoOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<SocioUnico>(x => x.SocioUnico);\n        }\n\n        [TestMethod]\n        public void StatoLiquidazioneIsRequired()\n        {\n            AssertRequired(x => x.StatoLiquidazione);\n        }\n\n        [TestMethod]\n        public void StatoLiquidazioneOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<StatoLiquidazione>(x => x.StatoLiquidazione);\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/RappresentanteFiscaleCessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class RappresentateFiscaleCessionarioCommittenteValidator\n        : DenominazioneNomeCognomeValidator<RappresentanteFiscaleCessionarioCommittente,\n            Validators.RappresentanteFiscaleCessionarioCommittenteValidator>\n    {\n        [TestMethod]\n        public void IdFiscaleIVAHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdFiscaleIVA,\n                typeof(Validators.IdFiscaleIVAValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/RappresentanteFiscaleValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.RappresentanteFiscale;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class RappresentanteFiscaleValidator :\n        BaseClass<RappresentanteFiscale, FatturaElettronica.Validators.RappresentanteFiscaleValidator>\n    {\n        [TestMethod]\n        public void DatiAnagraficiHasDelegateChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiAnagrafici,\n                typeof(Validators.DatiAnagraficiRappresentanteFiscaleValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/SedeCedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class SedeCedentePrestatoreValidator\n        : BaseLocalitàValidator<SedeCedentePrestatore, FatturaElettronica.Validators.SedeCedentePrestatoreValidator>\n    {\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/SedeCessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class SedeCessionarioCommittenteValidator\n        : BaseLocalitàValidator<SedeCessionarioCommittente,\n            FatturaElettronica.Validators.SedeCessionarioCommittenteValidator>\n    {\n    }\n}"
  },
  {
    "path": "Test/Ordinaria/TerzoIntermediarioOSoggettoEmittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.TerzoIntermediarioOSoggettoEmittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Ordinaria\n{\n    [TestClass]\n    public class TerzoIntermediarioOSoggettoEmittenteValidator :\n        BaseClass<TerzoIntermediarioOSoggettoEmittente,\n            FatturaElettronica.Validators.TerzoIntermediarioOSoggettoEmittenteValidator>\n    {\n        [TestMethod]\n        public void DatiAnagraficiHasDelegateChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiAnagrafici,\n                typeof(FatturaElettronica.Validators.DatiAnagraficiTerzoIntermediarioValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Samples/IT01234567890_FPA02.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<p:FatturaElettronica versione=\"FPA12\" SistemaEmittente=\"abc\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:p=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \nxsi:schemaLocation=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 fatturaordinaria_v1.2.xsd \">\n  <?xml-stylesheet type=\"text/xsl\"href=\"fatturaordinaria_v1.2.1.xslsl\"?>\n  <FatturaElettronicaHeader>\n    <DatiTrasmissione>\n      <IdTrasmittente>\n        <IdPaese>IT</IdPaese>\n        <IdCodice>01234567890</IdCodice>\n      </IdTrasmittente>\n      <ProgressivoInvio>00001</ProgressivoInvio>\n      <FormatoTrasmissione>FPA12</FormatoTrasmissione>\n      <CodiceDestinatario>AAAAAA</CodiceDestinatario>\n    </DatiTrasmissione>\n    <CedentePrestatore>\n      <DatiAnagrafici>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>01234567890</IdCodice>\n        </IdFiscaleIVA>\n        <Anagrafica>\n          <Denominazione>SOCIETA' ALPHA SRL</Denominazione>\n          <Titolo>Titolo</Titolo>\n        </Anagrafica>\n        <RegimeFiscale>RF01</RegimeFiscale>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>VIALE ROMA 543</Indirizzo>\n        <CAP>07100</CAP>\n        <Comune>SASSARI</Comune>\n        <Provincia>SS</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n    </CedentePrestatore>\n    <CessionarioCommittente>\n      <DatiAnagrafici>\n        <CodiceFiscale>09876543210</CodiceFiscale>\n        <Anagrafica>\n          <Denominazione>AMMINISTRAZIONE BETA</Denominazione>\n          <Titolo>Titolo</Titolo>\n        </Anagrafica>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>VIA TORINO 38-B</Indirizzo>\n        <CAP>00145</CAP>\n        <Comune>ROMA</Comune>\n        <Provincia>RM</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n    </CessionarioCommittente>\n  </FatturaElettronicaHeader>\n  <FatturaElettronicaBody>\n    <DatiGenerali>\n      <DatiGeneraliDocumento>\n        <TipoDocumento>TD01</TipoDocumento>\n        <Divisa>EUR</Divisa>\n        <Data>2014-12-18</Data>\n        <Numero>123</Numero>\n        <Causale>LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS</Causale>\n        <Causale>SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB</Causale>\n      </DatiGeneraliDocumento>\n      <DatiOrdineAcquisto>\n        <RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>\n        <IdDocumento>66685</IdDocumento>\n        <NumItem>1</NumItem>\n        <CodiceCUP>123abc</CodiceCUP>\n\t    <CodiceCIG>456def</CodiceCIG>\n      </DatiOrdineAcquisto>\n      <DatiContratto>\n\t    <RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>\n\t    <IdDocumento>123</IdDocumento>\n\t    <Data>2016-09-01</Data>\n\t    <NumItem>5</NumItem>\n\t    <CodiceCUP>123abc</CodiceCUP>\n\t    <CodiceCIG>456def</CodiceCIG>\n      </DatiContratto>\n      <DatiConvenzione>\n\t    <RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>\n\t    <IdDocumento>456</IdDocumento>\n\t    <NumItem>5</NumItem>\n\t    <CodiceCUP>123abc</CodiceCUP>\n\t    <CodiceCIG>456def</CodiceCIG>\n      </DatiConvenzione>\n      <DatiRicezione>\n\t    <RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>\n\t    <IdDocumento>789</IdDocumento>\n\t    <NumItem>5</NumItem>\n\t    <CodiceCUP>123abc</CodiceCUP>\n\t    <CodiceCIG>456def</CodiceCIG>\n      </DatiRicezione>\n      <DatiTrasporto>\n\t    <DatiAnagraficiVettore>\t\t\t\t\n\t      <IdFiscaleIVA>\n\t        <IdPaese>IT</IdPaese>\n\t        <IdCodice>24681012141</IdCodice>\n\t      </IdFiscaleIVA>\n    \t  <Anagrafica>\n\t        <Denominazione>Trasporto spa</Denominazione>\n\t      </Anagrafica>\n\t    </DatiAnagraficiVettore>\n\t    <DataOraConsegna>2012-10-22T16:46:12</DataOraConsegna>\n      </DatiTrasporto>\n    </DatiGenerali>\n    <DatiBeniServizi>\n      <DettaglioLinee>\n        <NumeroLinea>1</NumeroLinea>\n        <Descrizione>LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI</Descrizione>\n        <Quantita>5.00</Quantita>\n        <PrezzoUnitario>1.00</PrezzoUnitario>\n        <PrezzoTotale>5.00</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>2</NumeroLinea>\n        <Descrizione>FORNITURE VARIE PER UFFICIO</Descrizione>\n        <Quantita>10.00</Quantita>\n        <PrezzoUnitario>2.00</PrezzoUnitario>\n        <PrezzoTotale>20.00</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>3</NumeroLinea>\n        <Descrizione>TUBI RITORNO GASOLIO</Descrizione>\n        <Quantita>2.00</Quantita>\n        <UnitaMisura>Pezzo</UnitaMisura>\n        <PrezzoUnitario>5.00</PrezzoUnitario>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Importo>-1.71</Importo>\n        </ScontoMaggiorazione>\n        <PrezzoTotale>6.58</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DettaglioLinee> \n        <NumeroLinea>4</NumeroLinea> \n        <Descrizione>TUBI RITORNO GASOLIO</Descrizione> \n        <Quantita>1.00</Quantita> \n        <UnitaMisura>Pezzo</UnitaMisura> \n        <PrezzoUnitario>5.00</PrezzoUnitario> \n        <ScontoMaggiorazione> \n          <Tipo>SC</Tipo> \n          <Percentuale>10.0</Percentuale> \n        </ScontoMaggiorazione> \n        <PrezzoTotale>4.50</PrezzoTotale> \n        <AliquotaIVA>22.00</AliquotaIVA> \n      </DettaglioLinee> \n      <DatiRiepilogo>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <ImponibileImporto>36.08</ImponibileImporto>\n        <Imposta>7.94</Imposta>\n        <EsigibilitaIVA>D</EsigibilitaIVA>\n      </DatiRiepilogo>\n    </DatiBeniServizi>\n    <DatiPagamento>\n      <CondizioniPagamento>TP01</CondizioniPagamento>\n      <DettaglioPagamento>\n        <ModalitaPagamento>MP01</ModalitaPagamento>\n        <DataScadenzaPagamento>2015-01-30</DataScadenzaPagamento>\n        <ImportoPagamento>36.08</ImportoPagamento>\n      </DettaglioPagamento>\n    </DatiPagamento>\n  </FatturaElettronicaBody>\n</p:FatturaElettronica>"
  },
  {
    "path": "Test/Samples/IT01234567890_FPR02.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<p:FatturaElettronica versione=\"FPR12\" SistemaEmittente=\"abc\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:p=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \nxsi:schemaLocation=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 fatturaordinaria_v1.2.xsd \">\n  <?xml-stylesheet type=\"text/xsl\"href=\"fatturaordinaria_v1.2.1.xslsl\"?>\n  <FatturaElettronicaHeader>\n    <DatiTrasmissione>\n      <IdTrasmittente>\n        <IdPaese>IT</IdPaese>\n        <IdCodice>01234567890</IdCodice>\n      </IdTrasmittente>\n      <ProgressivoInvio>00001</ProgressivoInvio>\n      <FormatoTrasmissione>FPR12</FormatoTrasmissione>\n      <CodiceDestinatario>0000000</CodiceDestinatario>\n\t  <ContattiTrasmittente/>\n\t  <PECDestinatario>betagamma@pec.it</PECDestinatario>\n    </DatiTrasmissione>\n    <CedentePrestatore>\n      <DatiAnagrafici>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>01234567890</IdCodice>\n        </IdFiscaleIVA>\n        <Anagrafica>\n          <Denominazione>SOCIETA' ALPHA SRL</Denominazione>\n          <Titolo>Titolo</Titolo>\n        </Anagrafica>\n        <RegimeFiscale>RF01</RegimeFiscale>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>VIALE ROMA 543</Indirizzo>\n        <CAP>07100</CAP>\n        <Comune>SASSARI</Comune>\n        <Provincia>SS</Provincia>\n        <Nazione/>\n      </Sede>\n    </CedentePrestatore>\n    <CessionarioCommittente>\n      <DatiAnagrafici>\n        <CodiceFiscale>09876543210</CodiceFiscale>\n        <Anagrafica>\n          <Denominazione>BETA GAMMA</Denominazione>\n          <Titolo>Titolo</Titolo>\n        </Anagrafica>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>VIA TORINO 38-B</Indirizzo>\n        <CAP>00145</CAP>\n        <Comune>ROMA</Comune>\n        <Provincia>RM</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n      <RappresentanteFiscale>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>01234567891</IdCodice>\n        </IdFiscaleIVA>\n        <Denominazione>Rappresentante fiscale</Denominazione>\n      </RappresentanteFiscale>\n    </CessionarioCommittente>\n  </FatturaElettronicaHeader>\n  <FatturaElettronicaBody>\n    <DatiGenerali>\n      <DatiGeneraliDocumento>\n        <TipoDocumento>TD01</TipoDocumento>\n        <Divisa>EUR</Divisa>\n        <Data>2014-12-18</Data>\n        <Numero>123</Numero>\n        <Causale>LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS</Causale>\n        <Causale>SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB</Causale>\n      </DatiGeneraliDocumento>\n      <DatiOrdineAcquisto>\n        <RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>\n        <IdDocumento>66685</IdDocumento>\n        <NumItem>1</NumItem>\n      </DatiOrdineAcquisto>\n      <DatiTrasporto>\n\t<DatiAnagraficiVettore>\t\t\t\t\n\t  <IdFiscaleIVA>\n\t    <IdPaese>IT</IdPaese>\n\t    <IdCodice>24681012141</IdCodice>\n\t  </IdFiscaleIVA>\n    \t  <Anagrafica>\n\t    <Denominazione>Trasporto spa</Denominazione>\n\t  </Anagrafica>\n\t</DatiAnagraficiVettore>\n\t<DataOraConsegna>2012-10-22T16:46:12</DataOraConsegna>\n      </DatiTrasporto>\n    </DatiGenerali>\n    <DatiBeniServizi>\n      <DettaglioLinee>\n        <NumeroLinea>1</NumeroLinea>\n        <Descrizione>LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI</Descrizione>\n        <Quantita>5.00</Quantita>\n        <PrezzoUnitario>1.00</PrezzoUnitario>\n        <PrezzoTotale>5.00</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>2</NumeroLinea>\n        <Descrizione>FORNITURE VARIE PER UFFICIO</Descrizione>\n        <Quantita>10.00</Quantita>\n        <PrezzoUnitario>2.00</PrezzoUnitario>\n        <PrezzoTotale>20.00</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>3</NumeroLinea>\n        <Descrizione>TUBI RITORNO GASOLIO</Descrizione>\n        <Quantita>2.00</Quantita>\n        <UnitaMisura>Pezzo</UnitaMisura>\n        <PrezzoUnitario>5.00</PrezzoUnitario>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Importo>-1.71</Importo>\n        </ScontoMaggiorazione>\n        <PrezzoTotale>6.58</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DettaglioLinee> \n        <NumeroLinea>4</NumeroLinea> \n        <Descrizione>TUBI RITORNO GASOLIO</Descrizione> \n        <Quantita>1.00</Quantita> \n        <UnitaMisura>Pezzo</UnitaMisura> \n        <PrezzoUnitario>5.00</PrezzoUnitario> \n        <ScontoMaggiorazione> \n          <Tipo>SC</Tipo> \n          <Percentuale>10.0</Percentuale> \n        </ScontoMaggiorazione> \n        <PrezzoTotale>4.50</PrezzoTotale> \n        <AliquotaIVA>22.00</AliquotaIVA> \n      </DettaglioLinee> \n      <DatiRiepilogo>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <ImponibileImporto>36.08</ImponibileImporto>\n        <Imposta>7.94</Imposta>\n        <EsigibilitaIVA>D</EsigibilitaIVA>\n      </DatiRiepilogo>\n    </DatiBeniServizi>\n    <DatiPagamento>\n      <CondizioniPagamento>TP01</CondizioniPagamento>\n      <DettaglioPagamento>\n        <ModalitaPagamento>MP01</ModalitaPagamento>\n        <DataScadenzaPagamento>2015-01-30</DataScadenzaPagamento>\n        <ImportoPagamento>36.08</ImportoPagamento>\n      </DettaglioPagamento>\n    </DatiPagamento>\n  </FatturaElettronicaBody>\n</p:FatturaElettronica>"
  },
  {
    "path": "Test/Samples/IT01234567890_FSM10.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ns2:FatturaElettronicaSemplificata versione=\"FSM10\" SistemaEmittente=\"abc\" xmlns:ns2=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0\">\n    <FatturaElettronicaHeader>\n        <DatiTrasmissione>\n            <IdTrasmittente>\n                <IdPaese>IT</IdPaese>\n                <IdCodice>01234567890</IdCodice>\n            </IdTrasmittente>\n            <ProgressivoInvio>00001</ProgressivoInvio>\n            <FormatoTrasmissione>FSM10</FormatoTrasmissione>\n            <CodiceDestinatario>0000000</CodiceDestinatario>\n            <PECDestinatario>betagamma@pec.it</PECDestinatario>\n        </DatiTrasmissione>\n        <CedentePrestatore>\n            <IdFiscaleIVA>\n                <IdPaese>IT</IdPaese>\n                <IdCodice>01234567890</IdCodice>\n            </IdFiscaleIVA>\n          <Denominazione>SOCIETA' ALPHA SRL</Denominazione>\n           <Sede>\n        <Indirizzo>VIALE ROMA 543</Indirizzo>\n        <CAP>07100</CAP>\n        <Comune>SASSARI</Comune>\n        <Provincia>SS</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n            <RegimeFiscale>RF01</RegimeFiscale>\n        </CedentePrestatore>\n        <CessionarioCommittente>\n            <IdentificativiFiscali>\n                <IdFiscaleIVA>\n                    <IdPaese>IT</IdPaese>\n                    <IdCodice>09876543210</IdCodice>\n                </IdFiscaleIVA>\n            </IdentificativiFiscali>\n            <AltriDatiIdentificativi>\n                <Denominazione>BETA GAMMA</Denominazione>\n                <Sede>\n                    <Indirizzo>VIA TORINO 38-B</Indirizzo>\n        <CAP>00145</CAP>\n        <Comune>ROMA</Comune>\n        <Provincia>RM</Provincia>\n        <Nazione>IT</Nazione>\n                </Sede>\n            </AltriDatiIdentificativi>\n        </CessionarioCommittente>\n    </FatturaElettronicaHeader>\n    <FatturaElettronicaBody>\n        <DatiGenerali>\n            <DatiGeneraliDocumento>\n                <TipoDocumento>TD07</TipoDocumento>\n                <Divisa>EUR</Divisa>\n                <Data>2019-01-01</Data>\n                <Numero>123</Numero>\n            </DatiGeneraliDocumento>\n        </DatiGenerali>\n        <DatiBeniServizi>\n            <Descrizione>LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI</Descrizione>\n            <Importo>25.00</Importo>\n            <DatiIVA>\n                <Aliquota>22.00</Aliquota>\n            </DatiIVA>\n        </DatiBeniServizi>\n    </FatturaElettronicaBody>\n</ns2:FatturaElettronicaSemplificata>"
  },
  {
    "path": "Test/Samples/IT02182030391_31.Base64.CRLF.xml.p7m",
    "content": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwGggCSABIID\r\n6O+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQo8cDpGYXR0dXJhRWxl\r\ndHRyb25pY2EgdmVyc2lvbmU9IkZQUjEyIiB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAw\r\nMC8wOS94bWxkc2lnIyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt\r\nYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vaXZhc2Vydml6aS5hZ2Vuemlh\r\nZW50cmF0ZS5nb3YuaXQvZG9jcy94c2QvZmF0dHVyZS92MS4yIGZhdHR1cmFvcmRpbmFyaWFfdjEu\r\nMi54c2QiIHhtbG5zOnA9Imh0dHA6Ly9pdmFzZXJ2aXppLmFnZW56aWFlbnRyYXRlLmdvdi5pdC9k\r\nb2NzL3hzZC9mYXR0dXJlL3YxLjIiPg0KICA8RmF0dHVyYUVsZXR0cm9uaWNhSGVhZGVyPg0KICAg\r\nIDxEYXRpVHJhc21pc3Npb25lPg0KICAgICAgPElkVHJhc21pdHRlbnRlPg0KICAgICAgICA8SWRQ\r\nYWVzZT5JVDwvSWRQYWVzZT4NCiAgICAgICAgPElkQ29kaWNlPjAyMTgyMDMwMzkxPC9JZENvZGlj\r\nZT4NCiAgICAgIDwvSWRUcmFzbWl0dGVudGU+DQogICAgICA8UHJvZ3Jlc3Npdm9JbnZpbz4zMTwv\r\nUHJvZ3Jlc3Npdm9JbnZpbz4NCiAgICAgIDxGb3JtYXRvVHJhc21pc3Npb25lPkZQUjEyPC9Gb3Jt\r\nYXRvVHJhc21pc3Npb25lPg0KICAgICAgPENvZGljZURlc3RpbmF0YXJpbz4wMDAwMDAwPC9Db2Rp\r\nY2VEZXN0aW5hdGFyaW8+DQogICAgICA8Q29udGF0dGlUcmFzbWl0dGVudGU+DQogICAgICAgIDxU\r\nZWxlZm9ubz4zNDUvNTU1NDQ0PC9UZWxlZm9ubz4NCiAgICAgIDwvQ29udGF0dGlUcmFzbWl0dGVu\r\ndGU+DQogICAgICA8UEVDRGVzdGluYXRhcmlvPmNpcjIwMDBzbmNAcGVjLml0PC9QRUNEZXN0aW5h\r\ndGFyaW8+DQogICAgPC9EYXRpVHJhc21pc3Npb25lPg0KICAgIDxDZWRlbnRlUHJlc3RhdG9yZT4N\r\nCiAgICAgIDxEYXRpQW5hZ3JhZmljaT4NCiAgICAgICAgPElkRmlzY2FsZUlWQT4NCiAgICAgICAg\r\nICA8SWRQYWVzZT5JVDwvSWRQYWVzZT4NCiAgICAgICAEggPoICAgPElkQ29kaWNlPjAyMTgyMDMw\r\nMzkxPC9JZENvZGljZT4NCiAgICAgICAgPC9JZEZpc2NhbGVJVkE+DQogICAgICAgIDxDb2RpY2VG\r\naXNjYWxlPjAyMTgyMDMwMzkxPC9Db2RpY2VGaXNjYWxlPg0KICAgICAgICA8QW5hZ3JhZmljYT4N\r\nCiAgICAgICAgICA8RGVub21pbmF6aW9uZT5BemllbmRhIGRpIGVzZW1waW88L0Rlbm9taW5hemlv\r\nbmU+DQogICAgICAgIDwvQW5hZ3JhZmljYT4NCiAgICAgICAgPFJlZ2ltZUZpc2NhbGU+UkYwMTwv\r\nUmVnaW1lRmlzY2FsZT4NCiAgICAgIDwvRGF0aUFuYWdyYWZpY2k+DQogICAgICA8U2VkZT4NCiAg\r\nICAgICAgPEluZGlyaXp6bz5WaWEgZGVpIFJvZGl0b3JpIDE1L3Y8L0luZGlyaXp6bz4NCiAgICAg\r\nICAgPENBUD4xMjEwMDwvQ0FQPg0KICAgICAgICA8Q29tdW5lPlZpbGxhIGRlaSBSb2RpdG9yaTwv\r\nQ29tdW5lPg0KICAgICAgICA8UHJvdmluY2lhPlJBPC9Qcm92aW5jaWE+DQogICAgICAgIDxOYXpp\r\nb25lPklUPC9OYXppb25lPg0KICAgICAgPC9TZWRlPg0KICAgICAgPENvbnRhdHRpPg0KICAgICAg\r\nICA8VGVsZWZvbm8+MzQ1LzU1NTQ0NDwvVGVsZWZvbm8+DQogICAgICAgIDxGYXg+MDM1LzU1NTQ0\r\nMzwvRmF4Pg0KICAgICAgPC9Db250YXR0aT4NCiAgICA8L0NlZGVudGVQcmVzdGF0b3JlPg0KICAg\r\nIDxDZXNzaW9uYXJpb0NvbW1pdHRlbnRlPg0KICAgICAgPERhdGlBbmFncmFmaWNpPg0KICAgICAg\r\nICA8SWRGaXNjYWxlSVZBPg0KICAgICAgICAgIDxJZFBhZXNlPklUPC9JZFBhZXNlPg0KICAgICAg\r\nICAgIDxJZENvZGljZT4wMTE4MDY4MDM5NzwvSWRDb2RpY2U+DQogICAgICAgIDwvSWRGaXNjYWxl\r\nSVZBPg0KICAgICAgICA8QW5hZ3JhZmljYT4NCiAgICAgICAgICA8RGVub21pbmF6aW9uZT5DSVIg\r\nMjAwMCBzbmM8L0Rlbm9taW5hemlvbmU+DQogICAgICAgIDwvQW5hZ3JhZmljYT4NCiAgICAgIDwv\r\nRGF0aUFuYWdyYWZpY2k+DQogICAgICA8U2VkZT4NCiAgICAgICAgPEluZGlyaXp6bz52aWEgU2Fu\r\nc292aW5vIDQ1PASCA+gvSW5kaXJpenpvPg0KICAgICAgICA8Q0FQPjQ4MTI0PC9DQVA+DQogICAg\r\nICAgIDxDb211bmU+UmF2ZW5uYTwvQ29tdW5lPg0KICAgICAgICA8UHJvdmluY2lhPlJBPC9Qcm92\r\naW5jaWE+DQogICAgICAgIDxOYXppb25lPklUPC9OYXppb25lPg0KICAgICAgPC9TZWRlPg0KICAg\r\nIDwvQ2Vzc2lvbmFyaW9Db21taXR0ZW50ZT4NCiAgPC9GYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+\r\nDQogIDxGYXR0dXJhRWxldHRyb25pY2FCb2R5Pg0KICAgIDxEYXRpR2VuZXJhbGk+DQogICAgICA8\r\nRGF0aUdlbmVyYWxpRG9jdW1lbnRvPg0KICAgICAgICA8VGlwb0RvY3VtZW50bz5URDAxPC9UaXBv\r\nRG9jdW1lbnRvPg0KICAgICAgICA8RGl2aXNhPkVVUjwvRGl2aXNhPg0KICAgICAgICA8RGF0YT4y\r\nMDE4LTA2LTA4PC9EYXRhPg0KICAgICAgICA8TnVtZXJvPjI8L051bWVybz4NCiAgICAgICAgPElt\r\ncG9ydG9Ub3RhbGVEb2N1bWVudG8+MTIyLjAwPC9JbXBvcnRvVG90YWxlRG9jdW1lbnRvPg0KICAg\r\nICAgICA8QXJyb3RvbmRhbWVudG8+MC4wMDwvQXJyb3RvbmRhbWVudG8+DQogICAgICA8L0RhdGlH\r\nZW5lcmFsaURvY3VtZW50bz4NCiAgICA8L0RhdGlHZW5lcmFsaT4NCiAgICA8RGF0aUJlbmlTZXJ2\r\naXppPg0KICAgICAgPERldHRhZ2xpb0xpbmVlPg0KICAgICAgICA8TnVtZXJvTGluZWE+MTwvTnVt\r\nZXJvTGluZWE+DQogICAgICAgIDxEZXNjcml6aW9uZT50ZXN0IHByb2RvdHRpPC9EZXNjcml6aW9u\r\nZT4NCiAgICAgICAgPFF1YW50aXRhPjEuMDA8L1F1YW50aXRhPg0KICAgICAgICA8UHJlenpvVW5p\r\ndGFyaW8+MTAwLjAwPC9QcmV6em9Vbml0YXJpbz4NCiAgICAgICAgPFByZXp6b1RvdGFsZT4xMDAu\r\nMDA8L1ByZXp6b1RvdGFsZT4NCiAgICAgICAgPEFsaXF1b3RhSVZBPjIyLjAwPC9BbGlxdW90YUlW\r\nQT4NCiAgICAgIDwvRGV0dGFnbGlvTGluZWU+DQogICAgICA8RGF0aVJpZXBpbG9nbz4NCiAgICAg\r\nICAgPEFsaXF1b3RhSVZBPjIyLjAwPC9BbGlxdW90YUlWQT4NCiAgICAgICAgBIHhPEltcG9uaWJp\r\nbGVJbXBvcnRvPjEwMC4wMDwvSW1wb25pYmlsZUltcG9ydG8+DQogICAgICAgIDxJbXBvc3RhPjIy\r\nLjAwPC9JbXBvc3RhPg0KICAgICAgICA8RXNpZ2liaWxpdGFJVkE+UzwvRXNpZ2liaWxpdGFJVkE+\r\nDQogICAgICA8L0RhdGlSaWVwaWxvZ28+DQogICAgPC9EYXRpQmVuaVNlcnZpemk+DQogIDwvRmF0\r\ndHVyYUVsZXR0cm9uaWNhQm9keT4NCjwvcDpGYXR0dXJhRWxldHRyb25pY2E+AAAAAAAAoIAwggci\r\nMIIGCqADAgECAgQAjv0WMA0GCSqGSIb3DQEBCwUAMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwM\r\nSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQF\r\nEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMjAeFw0x\r\nODA5MDMwODAyMDBaFw0yMTA5MDMwMDAwMDBaMIGFMQswCQYDVQQGEwJJVDEQMA4GA1UEBAwHR0FS\r\nRElOSTEfMB0GA1UEBRMWVElOSVQtR1JEU0ZONjZEMTdIMTk5SzEYMBYGA1UEAwwPR0FSRElOSSBT\r\nVEVGQU5PMRcwFQYDVQQuEw4yMDE4NzExNTMwMjc2NTEQMA4GA1UEKgwHU1RFRkFOTzCCASIwDQYJ\r\nKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJOvXBHkSre8SxWp0S/Qc7gb8QxPsMGGqYJaGbjk76ug\r\nwYpSD3vXC20N9aWCHk/Krgxy7uEOpFYsvlIckzgd898sGq6cphZsG7ZEPdGeQt7QuC7adslBxsWG\r\nSG0saOUb9QCm4jZHjtxLzb3mKOmtSDt8Gc6cmcF9o/KGC9p4DlMwNN8cZjrnSNi1S/tt9PBs5H0Z\r\n/3LtGinGuFh6chv7lROSECLdO5NtXnN9yLodZn8icZaNXDyhtzfaAaL8lp8xNKQAxAR6yPHHAl5k\r\nOcKtpb4b2C5EOes59Hszm0e9ApvM0LAH3QxnwtmBxg5v7D81eiWhyqlFWHePTwO9JN6vIK8CAwEA\r\nAaOCA5YwggOSMAkGA1UdEwQCMAAwJQYDVR0SBB4wHIEaZmlybWEuZGlnaXRhbGVAaW5mb2NlcnQu\r\naXQwgecGA1UdHwSB3zCB3DAyoDCgLoYsaHR0cDovL2NybC5pbmZvY2VydC5pdC9jcmxzL2Zpcm1h\r\nMi9DUkwyMi5jcmwwgaWggaKggZ+GgZxsZGFwOi8vbGRhcC5pbmZvY2VydC5pdC9jbiUzREluZm9D\r\nZXJ0JTIwRmlybWElMjBRdWFsaWZpY2F0YSUyMDIlMjBDUkwyMixvdSUzRENlcnRpZmljYXRvcmUl\r\nMjBBY2NyZWRpdGF0byxvJTNESU5GT0NFUlQlMjBTUEEsYyUzRElUP2NlcnRpZmljYXRlUmV2b2Nh\r\ndGlvbkxpc3QwbgYIKwYBBQUHAQEEYjBgMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5zYy5pbmZv\r\nY2VydC5pdC8wNQYIKwYBBQUHMAKGKWh0dHA6Ly9jZXJ0LmluZm9jZXJ0Lml0L2NhMi9maXJtYTIv\r\nQ0EuY3J0MG8GA1UdIARoMGYwTwYGK0wkAQEgMEUwQwYIKwYBBQUHAgEWN2h0dHA6Ly93d3cuZmly\r\nbWEuaW5mb2NlcnQuaXQvZG9jdW1lbnRhemlvbmUvbWFudWFsaS5waHAwCAYGK0wYAQECMAkGBwQA\r\ni+xAAQIwgYQGCCsGAQUFBwEDBHgwdjAIBgYEAI5GAQEwCAYGBACORgEEMAsGBgQAjkYBAwIBFDAT\r\nBgYEAI5GAQYwCQYHBACORgEGATA+BgYEAI5GAQUwNDAyFixodHRwczovL3d3dy5maXJtYS5pbmZv\r\nY2VydC5pdC9wZGYvUEtJLURTLnBkZhMCRU4wDgYDVR0PAQH/BAQDAgZAMCgGA1UdCQQhMB8wHQYI\r\nKwYBBQUHCQExERgPMTk2NjA0MTcwMDAwMDBaMIGyBgNVHSMEgaowgaeAFJPdIfwD0BUKcq2jzNWa\r\nCZ04i53poYGLpIGIMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NFUlQgU1BBMSIwIAYD\r\nVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMG\r\nA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMoIBATAdBgNVHQ4EFgQUPNbGO0PcNnhl\r\nuwh5x4mA/EKDowkwDQYJKoZIhvcNAQELBQADggEBAJFxk7yprs2pRt54eCjAkFQT1vQgRbm3a38G\r\nFC3yPD/kOpm5wTwqJ02vXBJ9Ewd2BiUpkfQoRlohka09JKMETsskkpXJl80mz+3HA7eh74V4HAWb\r\nn4jAGTk/EwtrOLtBW03y0FDtwkidYmaICYbAnGqvt/2aYEhqzxbpZUE/QVQ49nSzbo/vngs+cVr5\r\nbDr5+Khn6Z49jtqe0vEh7GSIlbwd+1rd1gf4EKCrU9Bi+3gNzX7JLn2fVZkEL9oLd7CAyQbAmxM5\r\nEcA3SLHBpW27ErSDU52IfJDZxxcpqHnAB8wpUGzIY7YXW+tfINudZ8B7YWPs8eO5epFsRMuiE+i1\r\nplYAADGCAl8wggJbAgEBMIGOMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NFUlQgU1BB\r\nMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAw\r\nNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMgIEAI79FjANBglghkgBZQME\r\nAgEFAKCBojAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xODA5MDgx\r\nMzMyNDVaMC8GCSqGSIb3DQEJBDEiBCABysgtzQA23ElCqf8USCICb5LCM/xfwWRReaU662KYhzA3\r\nBgsqhkiG9w0BCRACLzEoMCYwJDAiBCDqu+rMsnRYKeYEe1d/dicQcLGAQWgUaWC2RQWdKtZxrjAN\r\nBgkqhkiG9w0BAQEFAASCAQB6tDATVv5YYCivkdtf87I/zKNXQSdqq5BvMcuwC2MX7htjtI3q0YsP\r\nPvo53Wc+JChuo9IvwHtpc2nQmN26RPWrcVtSGZVPhcosiL0lOcDQN79RnWHKcPcX9SZHzBP3EgF0\r\nYnQeBvOjRoaV9Ee/CA0CirIAIp5Vv4d1GUs5a59dYaBJ6Q4az4a6xK6YbUU1qfsxwSu5Q3+LvvXD\r\nYh8GQM0j72vylzOgV/VHnXj53Zbdg6JXHyd0DLxVdFFkkW+osCezIejhpY7OOvEamH9l88pBKG1y\r\n9Oy+et16UJWe36p22iwHlt5dRV8K82sLpAEqFYCCA9pAa8ME8QvGlxa3oPAyAAAAAAAA\r"
  },
  {
    "path": "Test/Samples/IT02182030391_31.Base64.xml.p7m",
    "content": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwGggCSABIID6O+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQo8cDpGYXR0dXJhRWxldHRyb25pY2EgdmVyc2lvbmU9IkZQUjEyIiB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vaXZhc2Vydml6aS5hZ2VuemlhZW50cmF0ZS5nb3YuaXQvZG9jcy94c2QvZmF0dHVyZS92MS4yIGZhdHR1cmFvcmRpbmFyaWFfdjEuMi54c2QiIHhtbG5zOnA9Imh0dHA6Ly9pdmFzZXJ2aXppLmFnZW56aWFlbnRyYXRlLmdvdi5pdC9kb2NzL3hzZC9mYXR0dXJlL3YxLjIiPg0KICA8RmF0dHVyYUVsZXR0cm9uaWNhSGVhZGVyPg0KICAgIDxEYXRpVHJhc21pc3Npb25lPg0KICAgICAgPElkVHJhc21pdHRlbnRlPg0KICAgICAgICA8SWRQYWVzZT5JVDwvSWRQYWVzZT4NCiAgICAgICAgPElkQ29kaWNlPjAyMTgyMDMwMzkxPC9JZENvZGljZT4NCiAgICAgIDwvSWRUcmFzbWl0dGVudGU+DQogICAgICA8UHJvZ3Jlc3Npdm9JbnZpbz4zMTwvUHJvZ3Jlc3Npdm9JbnZpbz4NCiAgICAgIDxGb3JtYXRvVHJhc21pc3Npb25lPkZQUjEyPC9Gb3JtYXRvVHJhc21pc3Npb25lPg0KICAgICAgPENvZGljZURlc3RpbmF0YXJpbz4wMDAwMDAwPC9Db2RpY2VEZXN0aW5hdGFyaW8+DQogICAgICA8Q29udGF0dGlUcmFzbWl0dGVudGU+DQogICAgICAgIDxUZWxlZm9ubz4zNDUvNTU1NDQ0PC9UZWxlZm9ubz4NCiAgICAgIDwvQ29udGF0dGlUcmFzbWl0dGVudGU+DQogICAgICA8UEVDRGVzdGluYXRhcmlvPmNpcjIwMDBzbmNAcGVjLml0PC9QRUNEZXN0aW5hdGFyaW8+DQogICAgPC9EYXRpVHJhc21pc3Npb25lPg0KICAgIDxDZWRlbnRlUHJlc3RhdG9yZT4NCiAgICAgIDxEYXRpQW5hZ3JhZmljaT4NCiAgICAgICAgPElkRmlzY2FsZUlWQT4NCiAgICAgICAgICA8SWRQYWVzZT5JVDwvSWRQYWVzZT4NCiAgICAgICAEggPoICAgPElkQ29kaWNlPjAyMTgyMDMwMzkxPC9JZENvZGljZT4NCiAgICAgICAgPC9JZEZpc2NhbGVJVkE+DQogICAgICAgIDxDb2RpY2VGaXNjYWxlPjAyMTgyMDMwMzkxPC9Db2RpY2VGaXNjYWxlPg0KICAgICAgICA8QW5hZ3JhZmljYT4NCiAgICAgICAgICA8RGVub21pbmF6aW9uZT5BemllbmRhIGRpIGVzZW1waW88L0Rlbm9taW5hemlvbmU+DQogICAgICAgIDwvQW5hZ3JhZmljYT4NCiAgICAgICAgPFJlZ2ltZUZpc2NhbGU+UkYwMTwvUmVnaW1lRmlzY2FsZT4NCiAgICAgIDwvRGF0aUFuYWdyYWZpY2k+DQogICAgICA8U2VkZT4NCiAgICAgICAgPEluZGlyaXp6bz5WaWEgZGVpIFJvZGl0b3JpIDE1L3Y8L0luZGlyaXp6bz4NCiAgICAgICAgPENBUD4xMjEwMDwvQ0FQPg0KICAgICAgICA8Q29tdW5lPlZpbGxhIGRlaSBSb2RpdG9yaTwvQ29tdW5lPg0KICAgICAgICA8UHJvdmluY2lhPlJBPC9Qcm92aW5jaWE+DQogICAgICAgIDxOYXppb25lPklUPC9OYXppb25lPg0KICAgICAgPC9TZWRlPg0KICAgICAgPENvbnRhdHRpPg0KICAgICAgICA8VGVsZWZvbm8+MzQ1LzU1NTQ0NDwvVGVsZWZvbm8+DQogICAgICAgIDxGYXg+MDM1LzU1NTQ0MzwvRmF4Pg0KICAgICAgPC9Db250YXR0aT4NCiAgICA8L0NlZGVudGVQcmVzdGF0b3JlPg0KICAgIDxDZXNzaW9uYXJpb0NvbW1pdHRlbnRlPg0KICAgICAgPERhdGlBbmFncmFmaWNpPg0KICAgICAgICA8SWRGaXNjYWxlSVZBPg0KICAgICAgICAgIDxJZFBhZXNlPklUPC9JZFBhZXNlPg0KICAgICAgICAgIDxJZENvZGljZT4wMTE4MDY4MDM5NzwvSWRDb2RpY2U+DQogICAgICAgIDwvSWRGaXNjYWxlSVZBPg0KICAgICAgICA8QW5hZ3JhZmljYT4NCiAgICAgICAgICA8RGVub21pbmF6aW9uZT5DSVIgMjAwMCBzbmM8L0Rlbm9taW5hemlvbmU+DQogICAgICAgIDwvQW5hZ3JhZmljYT4NCiAgICAgIDwvRGF0aUFuYWdyYWZpY2k+DQogICAgICA8U2VkZT4NCiAgICAgICAgPEluZGlyaXp6bz52aWEgU2Fuc292aW5vIDQ1PASCA+gvSW5kaXJpenpvPg0KICAgICAgICA8Q0FQPjQ4MTI0PC9DQVA+DQogICAgICAgIDxDb211bmU+UmF2ZW5uYTwvQ29tdW5lPg0KICAgICAgICA8UHJvdmluY2lhPlJBPC9Qcm92aW5jaWE+DQogICAgICAgIDxOYXppb25lPklUPC9OYXppb25lPg0KICAgICAgPC9TZWRlPg0KICAgIDwvQ2Vzc2lvbmFyaW9Db21taXR0ZW50ZT4NCiAgPC9GYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+DQogIDxGYXR0dXJhRWxldHRyb25pY2FCb2R5Pg0KICAgIDxEYXRpR2VuZXJhbGk+DQogICAgICA8RGF0aUdlbmVyYWxpRG9jdW1lbnRvPg0KICAgICAgICA8VGlwb0RvY3VtZW50bz5URDAxPC9UaXBvRG9jdW1lbnRvPg0KICAgICAgICA8RGl2aXNhPkVVUjwvRGl2aXNhPg0KICAgICAgICA8RGF0YT4yMDE4LTA2LTA4PC9EYXRhPg0KICAgICAgICA8TnVtZXJvPjI8L051bWVybz4NCiAgICAgICAgPEltcG9ydG9Ub3RhbGVEb2N1bWVudG8+MTIyLjAwPC9JbXBvcnRvVG90YWxlRG9jdW1lbnRvPg0KICAgICAgICA8QXJyb3RvbmRhbWVudG8+MC4wMDwvQXJyb3RvbmRhbWVudG8+DQogICAgICA8L0RhdGlHZW5lcmFsaURvY3VtZW50bz4NCiAgICA8L0RhdGlHZW5lcmFsaT4NCiAgICA8RGF0aUJlbmlTZXJ2aXppPg0KICAgICAgPERldHRhZ2xpb0xpbmVlPg0KICAgICAgICA8TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+DQogICAgICAgIDxEZXNjcml6aW9uZT50ZXN0IHByb2RvdHRpPC9EZXNjcml6aW9uZT4NCiAgICAgICAgPFF1YW50aXRhPjEuMDA8L1F1YW50aXRhPg0KICAgICAgICA8UHJlenpvVW5pdGFyaW8+MTAwLjAwPC9QcmV6em9Vbml0YXJpbz4NCiAgICAgICAgPFByZXp6b1RvdGFsZT4xMDAuMDA8L1ByZXp6b1RvdGFsZT4NCiAgICAgICAgPEFsaXF1b3RhSVZBPjIyLjAwPC9BbGlxdW90YUlWQT4NCiAgICAgIDwvRGV0dGFnbGlvTGluZWU+DQogICAgICA8RGF0aVJpZXBpbG9nbz4NCiAgICAgICAgPEFsaXF1b3RhSVZBPjIyLjAwPC9BbGlxdW90YUlWQT4NCiAgICAgICAgBIHhPEltcG9uaWJpbGVJbXBvcnRvPjEwMC4wMDwvSW1wb25pYmlsZUltcG9ydG8+DQogICAgICAgIDxJbXBvc3RhPjIyLjAwPC9JbXBvc3RhPg0KICAgICAgICA8RXNpZ2liaWxpdGFJVkE+UzwvRXNpZ2liaWxpdGFJVkE+DQogICAgICA8L0RhdGlSaWVwaWxvZ28+DQogICAgPC9EYXRpQmVuaVNlcnZpemk+DQogIDwvRmF0dHVyYUVsZXR0cm9uaWNhQm9keT4NCjwvcDpGYXR0dXJhRWxldHRyb25pY2E+AAAAAAAAoIAwggciMIIGCqADAgECAgQAjv0WMA0GCSqGSIb3DQEBCwUAMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMjAeFw0xODA5MDMwODAyMDBaFw0yMTA5MDMwMDAwMDBaMIGFMQswCQYDVQQGEwJJVDEQMA4GA1UEBAwHR0FSRElOSTEfMB0GA1UEBRMWVElOSVQtR1JEU0ZONjZEMTdIMTk5SzEYMBYGA1UEAwwPR0FSRElOSSBTVEVGQU5PMRcwFQYDVQQuEw4yMDE4NzExNTMwMjc2NTEQMA4GA1UEKgwHU1RFRkFOTzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJOvXBHkSre8SxWp0S/Qc7gb8QxPsMGGqYJaGbjk76ugwYpSD3vXC20N9aWCHk/Krgxy7uEOpFYsvlIckzgd898sGq6cphZsG7ZEPdGeQt7QuC7adslBxsWGSG0saOUb9QCm4jZHjtxLzb3mKOmtSDt8Gc6cmcF9o/KGC9p4DlMwNN8cZjrnSNi1S/tt9PBs5H0Z/3LtGinGuFh6chv7lROSECLdO5NtXnN9yLodZn8icZaNXDyhtzfaAaL8lp8xNKQAxAR6yPHHAl5kOcKtpb4b2C5EOes59Hszm0e9ApvM0LAH3QxnwtmBxg5v7D81eiWhyqlFWHePTwO9JN6vIK8CAwEAAaOCA5YwggOSMAkGA1UdEwQCMAAwJQYDVR0SBB4wHIEaZmlybWEuZGlnaXRhbGVAaW5mb2NlcnQuaXQwgecGA1UdHwSB3zCB3DAyoDCgLoYsaHR0cDovL2NybC5pbmZvY2VydC5pdC9jcmxzL2Zpcm1hMi9DUkwyMi5jcmwwgaWggaKggZ+GgZxsZGFwOi8vbGRhcC5pbmZvY2VydC5pdC9jbiUzREluZm9DZXJ0JTIwRmlybWElMjBRdWFsaWZpY2F0YSUyMDIlMjBDUkwyMixvdSUzRENlcnRpZmljYXRvcmUlMjBBY2NyZWRpdGF0byxvJTNESU5GT0NFUlQlMjBTUEEsYyUzRElUP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QwbgYIKwYBBQUHAQEEYjBgMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5zYy5pbmZvY2VydC5pdC8wNQYIKwYBBQUHMAKGKWh0dHA6Ly9jZXJ0LmluZm9jZXJ0Lml0L2NhMi9maXJtYTIvQ0EuY3J0MG8GA1UdIARoMGYwTwYGK0wkAQEgMEUwQwYIKwYBBQUHAgEWN2h0dHA6Ly93d3cuZmlybWEuaW5mb2NlcnQuaXQvZG9jdW1lbnRhemlvbmUvbWFudWFsaS5waHAwCAYGK0wYAQECMAkGBwQAi+xAAQIwgYQGCCsGAQUFBwEDBHgwdjAIBgYEAI5GAQEwCAYGBACORgEEMAsGBgQAjkYBAwIBFDATBgYEAI5GAQYwCQYHBACORgEGATA+BgYEAI5GAQUwNDAyFixodHRwczovL3d3dy5maXJtYS5pbmZvY2VydC5pdC9wZGYvUEtJLURTLnBkZhMCRU4wDgYDVR0PAQH/BAQDAgZAMCgGA1UdCQQhMB8wHQYIKwYBBQUHCQExERgPMTk2NjA0MTcwMDAwMDBaMIGyBgNVHSMEgaowgaeAFJPdIfwD0BUKcq2jzNWaCZ04i53poYGLpIGIMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMoIBATAdBgNVHQ4EFgQUPNbGO0PcNnhluwh5x4mA/EKDowkwDQYJKoZIhvcNAQELBQADggEBAJFxk7yprs2pRt54eCjAkFQT1vQgRbm3a38GFC3yPD/kOpm5wTwqJ02vXBJ9Ewd2BiUpkfQoRlohka09JKMETsskkpXJl80mz+3HA7eh74V4HAWbn4jAGTk/EwtrOLtBW03y0FDtwkidYmaICYbAnGqvt/2aYEhqzxbpZUE/QVQ49nSzbo/vngs+cVr5bDr5+Khn6Z49jtqe0vEh7GSIlbwd+1rd1gf4EKCrU9Bi+3gNzX7JLn2fVZkEL9oLd7CAyQbAmxM5EcA3SLHBpW27ErSDU52IfJDZxxcpqHnAB8wpUGzIY7YXW+tfINudZ8B7YWPs8eO5epFsRMuiE+i1plYAADGCAl8wggJbAgEBMIGOMIGFMQswCQYDVQQGEwJJVDEVMBMGA1UECgwMSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMgIEAI79FjANBglghkgBZQMEAgEFAKCBojAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xODA5MDgxMzMyNDVaMC8GCSqGSIb3DQEJBDEiBCABysgtzQA23ElCqf8USCICb5LCM/xfwWRReaU662KYhzA3BgsqhkiG9w0BCRACLzEoMCYwJDAiBCDqu+rMsnRYKeYEe1d/dicQcLGAQWgUaWC2RQWdKtZxrjANBgkqhkiG9w0BAQEFAASCAQB6tDATVv5YYCivkdtf87I/zKNXQSdqq5BvMcuwC2MX7htjtI3q0YsPPvo53Wc+JChuo9IvwHtpc2nQmN26RPWrcVtSGZVPhcosiL0lOcDQN79RnWHKcPcX9SZHzBP3EgF0YnQeBvOjRoaV9Ee/CA0CirIAIp5Vv4d1GUs5a59dYaBJ6Q4az4a6xK6YbUU1qfsxwSu5Q3+LvvXDYh8GQM0j72vylzOgV/VHnXj53Zbdg6JXHyd0DLxVdFFkkW+osCezIejhpY7OOvEamH9l88pBKG1y9Oy+et16UJWe36p22iwHlt5dRV8K82sLpAEqFYCCA9pAa8ME8QvGlxa3oPAyAAAAAAAA"
  },
  {
    "path": "Test/Samples/IT02182030391_31_tampered.Base64.xml.p7m",
    "content": "MOKCrAYJKuKAoEjigKDDtw0KAQcCwqDigqww4oKsAgEBMQ8wDQoGCWDigKBIAWUDBAIBBSAw4oKsBgkq4oCgSOKAoMO3DQoBBwHCoOKCrCTigqwE4oCaA8Oow6/Cu8K/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxwOkZhdHR1cmFFbGV0dHJvbmljYSB2ZXJzaW9uZT0iRlBSMTIiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9pdmFzZXJ2aXppLmFnZW56aWFlbnRyYXRlLmdvdi5pdC9kb2NzL3hzZC9mYXR0dXJlL3YxLjIgZmF0dHVyYW9yZGluYXJpYV92MS4yLnhzZCIgeG1sbnM6cD0iaHR0cDovL2l2YXNlcnZpemkuYWdlbnppYWVudHJhdGUuZ292Lml0L2RvY3MveHNkL2ZhdHR1cmUvdjEuMiI+DQogIDxGYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+DQogICAgPERhdGlUcmFzbWlzc2lvbmU+DQogICAgICA8SWRUcmFzbWl0dGVudGU+DQogICAgICAgIDxJZFBhZXNlPklUPC9JZFBhZXNlPg0KICAgICAgICA8SWRDb2RpY2U+MDIxODIwMzAzOTE8L0lkQ29kaWNlPg0KICAgICAgPC9JZFRyYXNtaXR0ZW50ZT4NCiAgICAgIDxQcm9ncmVzc2l2b0ludmlvPjMxPC9Qcm9ncmVzc2l2b0ludmlvPg0KICAgICAgPEZvcm1hdG9UcmFzbWlzc2lvbmU+RlBSMTI8L0Zvcm1hdG9UcmFzbWlzc2lvbmU+DQogICAgICA8Q29kaWNlRGVzdGluYXRhcmlvPjAwMDAwMDA8L0NvZGljZURlc3RpbmF0YXJpbz4NCiAgICAgIDxDb250YXR0aVRyYXNtaXR0ZW50ZT4NCiAgICAgICAgPFRlbGVmb25vPjM0NS81NDIxNTUxPC9UZWxlZm9ubz4NCiAgICAgIDwvQ29udGF0dGlUcmFzbWl0dGVudGU+DQogICAgICA8UEVDRGVzdGluYXRhcmlvPmNpcjIwMDBzbmNAcGVjLml0PC9QRUNEZXN0aW5hdGFyaW8+DQogICAgPC9EYXRpVHJhc21pc3Npb25lPg0KICAgIDxDZWRlbnRlUHJlc3RhdG9yZT4NCiAgICAgIDxEYXRpQW5hZ3JhZmljaT4NCiAgICAgICAgPElkRmlzY2FsZUlWQT4NCiAgICAgICAgICA8SWRQYWVzZT5JVDwvSWRQYWVzZT4NCiAgICAgICAE4oCaA8OoICAgPElkQ29kaWNlPjAyMTgyMDMwMzkxPC9JZENvZGljZT4NCiAgICAgICAgPC9JZEZpc2NhbGVJVkE+DQogICAgICAgIDxDb2RpY2VGaXNjYWxlPjAyMTgyMDMwMzkxPC9Db2RpY2VGaXNjYWxlPg0KICAgICAgICA8QW5hZ3JhZmljYT4NCiAgICAgICAgICA8RGVub21pbmF6aW9uZT5BemllbmRhIGRpIGVzZW1waW88L0Rlbm9taW5hemlvbmU+DQogICAgICAgIDwvQW5hZ3JhZmljYT4NCiAgICAgICAgPFJlZ2ltZUZpc2NhbGU+UkYwMTwvUmVnaW1lRmlzY2FsZT4NCiAgICAgIDwvRGF0aUFuYWdyYWZpY2k+DQogICAgICA8U2VkZT4NCiAgICAgICAgPEluZGlyaXp6bz5WaWEgZGVpIFJvZGl0b3JpIDE1L3Y8L0luZGlyaXp6bz4NCiAgICAgICAgPENBUD4xMjEwMDwvQ0FQPg0KICAgICAgICA8Q29tdW5lPlZpbGxhIGRlaSBSb2RpdG9yaTwvQ29tdW5lPg0KICAgICAgICA8UHJvdmluY2lhPlJBPC9Qcm92aW5jaWE+DQogICAgICAgIDxOYXppb25lPklUPC9OYXppb25lPg0KICAgICAgPC9TZWRlPg0KICAgICAgPENvbnRhdHRpPg0KICAgICAgICA8VGVsZWZvbm8+MzQ1LzU1NTQ0NDwvVGVsZWZvbm8+DQogICAgICAgIDxGYXg+MDM1LzU1NTQ0MzwvRmF4Pg0KICAgICAgPC9Db250YXR0aT4NCiAgICA8L0NlZGVudGVQcmVzdGF0b3JlPg0KICAgIDxDZXNzaW9uYXJpb0NvbW1pdHRlbnRlPg0KICAgICAgPERhdGlBbmFncmFmaWNpPg0KICAgICAgICA8SWRGaXNjYWxlSVZBPg0KICAgICAgICAgIDxJZFBhZXNlPklUPC9JZFBhZXNlPg0KICAgICAgICAgIDxJZENvZGljZT4wMTE4MDY4MDM5NzwvSWRDb2RpY2U+DQogICAgICAgIDwvSWRGaXNjYWxlSVZBPg0KICAgICAgICA8QW5hZ3JhZmljYT4NCiAgICAgICAgICA8RGVub21pbmF6aW9uZT5DSVIgMjAwMCBzbmM8L0Rlbm9taW5hemlvbmU+DQogICAgICAgIDwvQW5hZ3JhZmljYT4NCiAgICAgIDwvRGF0aUFuYWdyYWZpY2k+DQogICAgICA8U2VkZT4NCiAgICAgICAgPEluZGlyaXp6bz52aWEgU2Fuc292aW5vIDQ1PATigJoDw6gvSW5kaXJpenpvPg0KICAgICAgICA8Q0FQPjQ4MTI0PC9DQVA+DQogICAgICAgIDxDb211bmU+UmF2ZW5uYTwvQ29tdW5lPg0KICAgICAgICA8UHJvdmluY2lhPlJBPC9Qcm92aW5jaWE+DQogICAgICAgIDxOYXppb25lPklUPC9OYXppb25lPg0KICAgICAgPC9TZWRlPg0KICAgIDwvQ2Vzc2lvbmFyaW9Db21taXR0ZW50ZT4NCiAgPC9GYXR0dXJhRWxldHRyb25pY2FIZWFkZXI+DQogIDxGYXR0dXJhRWxldHRyb25pY2FCb2R5Pg0KICAgIDxEYXRpR2VuZXJhbGk+DQogICAgICA8RGF0aUdlbmVyYWxpRG9jdW1lbnRvPg0KICAgICAgICA8VGlwb0RvY3VtZW50bz5URDAxPC9UaXBvRG9jdW1lbnRvPg0KICAgICAgICA8RGl2aXNhPkVVUjwvRGl2aXNhPg0KICAgICAgICA8RGF0YT4yMDE4LTA2LTA4PC9EYXRhPg0KICAgICAgICA8TnVtZXJvPjI8L051bWVybz4NCiAgICAgICAgPEltcG9ydG9Ub3RhbGVEb2N1bWVudG8+MTIyLjAwPC9JbXBvcnRvVG90YWxlRG9jdW1lbnRvPg0KICAgICAgICA8QXJyb3RvbmRhbWVudG8+MC4wMDwvQXJyb3RvbmRhbWVudG8+DQogICAgICA8L0RhdGlHZW5lcmFsaURvY3VtZW50bz4NCiAgICA8L0RhdGlHZW5lcmFsaT4NCiAgICA8RGF0aUJlbmlTZXJ2aXppPg0KICAgICAgPERldHRhZ2xpb0xpbmVlPg0KICAgICAgICA8TnVtZXJvTGluZWE+MTwvTnVtZXJvTGluZWE+DQogICAgICAgIDxEZXNjcml6aW9uZT50ZXN0IHByb2RvdHRpPC9EZXNjcml6aW9uZT4NCiAgICAgICAgPFF1YW50aXRhPjEuMDA8L1F1YW50aXRhPg0KICAgICAgICA8UHJlenpvVW5pdGFyaW8+MTAwLjAwPC9QcmV6em9Vbml0YXJpbz4NCiAgICAgICAgPFByZXp6b1RvdGFsZT4xMDAuMDA8L1ByZXp6b1RvdGFsZT4NCiAgICAgICAgPEFsaXF1b3RhSVZBPjIyLjAwPC9BbGlxdW90YUlWQT4NCiAgICAgIDwvRGV0dGFnbGlvTGluZWU+DQogICAgICA8RGF0aVJpZXBpbG9nbz4NCiAgICAgICAgPEFsaXF1b3RhSVZBPjIyLjAwPC9BbGlxdW90YUlWQT4NCiAgICAgICAgBMKBw6E8SW1wb25pYmlsZUltcG9ydG8+MTAwLjAwPC9JbXBvbmliaWxlSW1wb3J0bz4NCiAgICAgICAgPEltcG9zdGE+MjIuMDA8L0ltcG9zdGE+DQogICAgICAgIDxFc2lnaWJpbGl0YUlWQT5TPC9Fc2lnaWJpbGl0YUlWQT4NCiAgICAgIDwvRGF0aVJpZXBpbG9nbz4NCiAgICA8L0RhdGlCZW5pU2Vydml6aT4NCiAgPC9GYXR0dXJhRWxldHRyb25pY2FCb2R5Pg0KPC9wOkZhdHR1cmFFbGV0dHJvbmljYT4gICAgICDCoOKCrDDigJoHIjDigJoGDQrCoAMCAQICBCDFvcO9FjANCgYJKuKAoEjigKDDtw0KAQELBSAwwoHigKYxCzAJBgNVBAYTAklUMRUwEwYDVQQNCgwMSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMjAeFw0KMTgwOTAzMDgwMjAwWhcNCjIxMDkwMzAwMDAwMFowwoHigKYxCzAJBgNVBAYTAklUMRAwDgYDVQQEDAdHQVJESU5JMR8wHQYDVQQFExZUSU5JVC1HUkRTRk42NkQxN0gxOTlLMRgwFgYDVQQDDA9HQVJESU5JIFNURUZBTk8xFzAVBgNVBC4TDjIwMTg3MTE1MzAyNzY1MRAwDgYDVQQqDAdTVEVGQU5PMOKAmgEiMA0KBgkq4oCgSOKAoMO3DQoBAQEFIAPigJoBDyAw4oCaAQ0KAuKAmgEBIOKAnMKvXBHDpErCt8K8SxXCqcORL8OQc8K4G8OxDE/CsMOB4oCgwqnigJpaGcK4w6TDr8KrwqDDgcWgUg97w5cLbQ0Kw7XCpeKAmh5Pw4rCrgxyw67DoQ7CpFYswr5SHOKAnDgdw7PDnywawq7Fk8KmFmwbwrZEPcORxb5Cw57DkMK4LsOadsOJQcOGw4XigKBIbSxow6Ubw7UgwqbDojZHxb3DnEvDjcK9w6Yow6nCrUg7fBnDjsWT4oSiw4F9wqPDsuKAoAvDmngOUzA0w58cZjrDp0jDmMK1S8O7bcO0w7Bsw6R9GcO/csOtGinDhsK4WHpyG8O74oCiE+KAmRAiw5074oCcbV5zfcOIwrodZn8iceKAk8KNXDzCocK3N8OaAcKiw7zigJPFuDE0wqQgw4QEesOIw7HDhwJeZDnDgsKtwqXCvhvDmC5EOcOrOcO0ezPigLpHwr0C4oC6w4zDkMKwB8OdDGfDgsOZwoHDhg5vw6w/NXolwqHDisKpRVh3wo9PA8K9JMOewq8gwq8CAwEgAcKj4oCaA+KAkzDigJoD4oCZMAkGA1UdEwQCMCAwJQYDVR0SBB4wHMKBGmZpcm1hLmRpZ2l0YWxlQGluZm9jZXJ0Lml0MMKBw6cGA1UdHwTCgcOfMMKBw5wwMsKgMMKgLuKAoCxodHRwOi8vY3JsLmluZm9jZXJ0Lml0L2NybHMvZmlybWEyL0NSTDIyLmNybDDCgcKlwqDCgcKiwqDCgcW44oCgwoHFk2xkYXA6Ly9sZGFwLmluZm9jZXJ0Lml0L2NuJTNESW5mb0NlcnQlMjBGaXJtYSUyMFF1YWxpZmljYXRhJTIwMiUyMENSTDIyLG91JTNEQ2VydGlmaWNhdG9yZSUyMEFjY3JlZGl0YXRvLG8lM0RJTkZPQ0VSVCUyMFNQQSxjJTNESVQ/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDBuBggrBgEFBQcBAQRiMGAwJwYIKwYBBQUHMAHigKAbaHR0cDovL29jc3Auc2MuaW5mb2NlcnQuaXQvMDUGCCsGAQUFBzAC4oCgKWh0dHA6Ly9jZXJ0LmluZm9jZXJ0Lml0L2NhMi9maXJtYTIvQ0EuY3J0MG8GA1UdIARoMGYwTwYGK0wkAQEgMEUwQwYIKwYBBQUHAgEWN2h0dHA6Ly93d3cuZmlybWEuaW5mb2NlcnQuaXQvZG9jdW1lbnRhemlvbmUvbWFudWFsaS5waHAwCAYGK0wYAQECMAkGBwQg4oC5w6xAAQIwwoHigJ4GCCsGAQUFBwEDBHgwdjAIBgYEIMW9RgEBMAgGBgQgxb1GAQQwCwYGBCDFvUYBAwIBFDATBgYEIMW9RgEGMAkGBwQgxb1GAQYBMD4GBgQgxb1GAQUwNDAyFixodHRwczovL3d3dy5maXJtYS5pbmZvY2VydC5pdC9wZGYvUEtJLURTLnBkZhMCRU4wDgYDVR0PAQHDvwQEAwIGQDAoBgNVHQkEITAfMB0GCCsGAQUFBwkBMREYDzE5NjYwNDE3MDAwMDAwWjDCgcKyBgNVHSMEwoHCqjDCgcKn4oKsFOKAnMOdIcO8A8OQFQ0KcsKtwqPDjMOVxaEJwp044oC5wp3DqcKhwoHigLnCpMKBy4YwwoHigKYxCzAJBgNVBAYTAklUMRUwEwYDVQQNCgwMSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMuKAmgEBMB0GA1UdDgQWBBQ8w5bDhjtDw5w2eGXCuwh5w4figLDigqzDvELGksKjCTANCgYJKuKAoEjigKDDtw0KAQELBSAD4oCaAQEg4oCYceKAnMK8wqnCrsONwqlGw554eCjDgMKQVBPDlsO0IEXCucK3a38GFC3Dsjw/w6Q64oSiwrnDgTwqJ03Cr1wSfRMHdgYlKeKAmMO0KEZaIeKAmMKtPSTCowROw4sk4oCZ4oCiw4nigJTDjSbDj8Otw4cDwrfCocOv4oCmeBwF4oC6xbjLhsOAGTk/EwtrOMK7QVtNw7LDkFDDrcOCSMKdYmbLhgnigKDDgMWTasKvwrfDvcWhYEhqw48Ww6llQT9BVDjDtnTCs27Cj8Ovxb4LPnFaw7lsOsO5w7jCqGfDqcW+PcW9w5rFvsOSw7Ehw6xky4bigKLCvB3Du1rDncOWB8O4EMKgwqtTw5Biw7t4DQrDjX7DiS59xbhV4oSiBC/Dmgt3wrDigqzDiQbDgOKAuhM5EcOAN0jCscOBwqVtwrsSwrTGklPCncuGfMKQw5nDhxcpwqh5w4AHw4wpUGzDiGPCthdbw6tfIMObwp1nw4B7YWPDrMOxw6PCuXrigJhsRMOLwqITw6jCtcKmViAgMeKAmgJfMOKAmgJbAgEBMMKBxb0wwoHigKYxCzAJBgNVBAYTAklUMRUwEwYDVQQNCgwMSU5GT0NFUlQgU1BBMSIwIAYDVQQLDBlDZXJ0aWZpY2F0b3JlIEFjY3JlZGl0YXRvMRQwEgYDVQQFEwswNzk0NTIxMTAwNjElMCMGA1UEAwwcSW5mb0NlcnQgRmlybWEgUXVhbGlmaWNhdGEgMgIEIMW9w70WMA0KBglg4oCgSAFlAwQCAQUgwqDCgcKiMBgGCSrigKBI4oCgw7cNCgEJAzELBgkq4oCgSOKAoMO3DQoBBwEwHAYJKuKAoEjigKDDtw0KAQkFMQ8XDQoxODA5MDgxMzMyNDVaMC8GCSrigKBI4oCgw7cNCgEJBDEiBCABw4rDiC3DjSA2w5xJQsKpw78USCICb+KAmcOCM8O8X8OBZFF5wqU6w6tiy5zigKEwNwYLKuKAoEjigKDDtw0KAQkQAi8xKDAmMCQwIgQgw6rCu8Oqw4zCsnRYKcOmBHtXf3YnEHDCseKCrEFoFGlgwrZFBcKdKsOWccKuMA0KBgkq4oCgSOKAoMO3DQoBAQEFIATigJoBIHrCtDATVsO+WGAowq/igJjDm1/Ds8KyP8OMwqNXQSdqwqvCkG8xw4vCsAtjF8OuG2PCtMKNw6rDkeKAuQ8+w7o5w51nPiQobsKjw5Ivw4B7aXNpw5DLnMOdwrpEw7XCq3FbUhnigKJP4oCmw4osy4bCvSU5w4DDkDfCv1HCnWHDinDDtxfDtSZHw4wTw7cSAXRidB4Gw7PCo0bigKDigKLDtEfCvwgNCgLFoMKyICLFvlXCv+KAoXUZSzlrxbhdYcKgScOpDhrDj+KAoMK6w4TCrsucbUU1wqnDuzHDgSvCuUN/4oC5wr7DtcODYh8GQMONI8Ova8Oy4oCUM8KgV8O1R8KdeMO5w53igJPDncaSwqJXHyd0DMK8VXRRZOKAmG/CqMKwJ8KzIcOow6HCpcW9w446w7Eay5x/ZcOzw4pBKG1yw7TDrMK+esOdelDigKLFvsOfwqp2w5osB+KAk8OeXUVfDQrDs2sLwqQBKhXigqzigJoDw5pAa8ODBMOxC8OG4oCUFsK3wqDDsDIgICAgICA="
  },
  {
    "path": "Test/Samples/IT02182030391_32.windows-1252.xml",
    "content": "<?xml version=\"1.0\" encoding=\"windows-1252\"?>\n<?xml-stylesheet type=\"text/xsl\" href=\"fatturaordinaria_v1.2.1.xsl\" ?>\n<p:FatturaElettronica versione=\"FPR12\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 fatturaordinaria_v1.2.xsd\" xmlns:p=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\">\n  <FatturaElettronicaHeader>\n    <DatiTrasmissione>\n      <IdTrasmittente>\n        <IdPaese>IT</IdPaese>\n        <IdCodice>02182030391</IdCodice>\n      </IdTrasmittente>\n      <ProgressivoInvio>32</ProgressivoInvio>\n      <FormatoTrasmissione>FPR12</FormatoTrasmissione>\n      <CodiceDestinatario>UFYAGJK</CodiceDestinatario>\n      <ContattiTrasmittente>\n        <Telefono>345/555444</Telefono>\n      </ContattiTrasmittente>\n      <PECDestinatario>cir2000snc@pec.it</PECDestinatario>\n    </DatiTrasmissione>\n    <CedentePrestatore>\n      <DatiAnagrafici>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>12345678901</IdCodice>\n        </IdFiscaleIVA>\n        <CodiceFiscale>02182030391</CodiceFiscale>\n        <Anagrafica>\n          <Denominazione>Azienda di esempio</Denominazione>\n        </Anagrafica>\n        <RegimeFiscale>RF01</RegimeFiscale>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>Via dei Roditori 15/v</Indirizzo>\n        <CAP>12100</CAP>\n        <Comune>Villa dei Roditori</Comune>\n        <Provincia>RA</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n      <Contatti>\n        <Telefono>345/555444</Telefono>\n        <Fax>035/555443</Fax>\n      </Contatti>\n    </CedentePrestatore>\n    <CessionarioCommittente>\n      <DatiAnagrafici>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>01180680397</IdCodice>\n        </IdFiscaleIVA>\n        <Anagrafica>\n          <Denominazione>CIR 2000 snc</Denominazione>\n        </Anagrafica>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>viale IV Novembre 86</Indirizzo>\n        <CAP>48122</CAP>\n        <Comune>Marina di Ravenna</Comune>\n        <Provincia>RI</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n    </CessionarioCommittente>\n  </FatturaElettronicaHeader>\n  <FatturaElettronicaBody>\n    <DatiGenerali>\n      <DatiGeneraliDocumento>\n        <TipoDocumento>TD06</TipoDocumento>\n        <Divisa>EUR</Divisa>\n        <Data>2017-01-27</Data>\n        <Numero>3</Numero>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Importo>7.00</Importo>\n        </ScontoMaggiorazione>\n        <DatiRitenuta>\n          <TipoRitenuta>RT02</TipoRitenuta>\n          <ImportoRitenuta>27.55</ImportoRitenuta>\n          <AliquotaRitenuta>20.00</AliquotaRitenuta>\n          <CausalePagamento>A</CausalePagamento>\n        </DatiRitenuta>\n        <DatiCassaPrevidenziale>\n          <TipoCassa>TC03</TipoCassa>\n          <AlCassa>4.00</AlCassa>\n          <ImportoContributoCassa>5.51</ImportoContributoCassa>\n          <ImponibileCassa>0.00</ImponibileCassa>\n          <AliquotaIVA>23.00</AliquotaIVA>\n        </DatiCassaPrevidenziale>\n        <ImportoTotaleDocumento>174.80</ImportoTotaleDocumento>\n        <Arrotondamento>0.00</Arrotondamento>\n      </DatiGeneraliDocumento>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiOrdineAcquisto>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n      </DatiOrdineAcquisto>\n      <DatiContratto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiContratto>\n      <DatiContratto>\n        <IdDocumento>99</IdDocumento>\n      </DatiContratto>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiConvenzione>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n      </DatiConvenzione>\n      <DatiRicezione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiRicezione>\n      <DatiRicezione>\n        <IdDocumento>99s</IdDocumento>\n      </DatiRicezione>\n      <DatiFattureCollegate>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiFattureCollegate>\n      <DatiFattureCollegate>\n        <IdDocumento>99bis</IdDocumento>\n      </DatiFattureCollegate>\n      <DatiSAL>\n        <RiferimentoFase>1</RiferimentoFase>\n      </DatiSAL>\n      <DatiSAL>\n        <RiferimentoFase>2</RiferimentoFase>\n      </DatiSAL>\n      <DatiDDT>\n        <NumeroDDT>12tries</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiDDT>\n        <NumeroDDT>12triesdf</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiTrasporto>\n        <DatiAnagraficiVettore>\n          <IdFiscaleIVA>\n            <IdPaese>IT</IdPaese>\n            <IdCodice>02182030391</IdCodice>\n          </IdFiscaleIVA>\n          <NumeroLicenzaGuida>AB123</NumeroLicenzaGuida>\n        </DatiAnagraficiVettore>\n        <NumeroColli>88</NumeroColli>\n        <Descrizione>pallet</Descrizione>\n        <UnitaMisuraPeso>KG</UnitaMisuraPeso>\n        <PesoLordo>10.99</PesoLordo>\n        <DataOraRitiro>2017-02-28T15:00:00</DataOraRitiro>\n        <DataInizioTrasporto>2017-02-28</DataInizioTrasporto>\n      </DatiTrasporto>\n    </DatiGenerali>\n    <DatiBeniServizi>\n      <DettaglioLinee>\n        <NumeroLinea>1</NumeroLinea>\n        <Descrizione>servizio</Descrizione>\n        <Quantita>1.00</Quantita>\n        <UnitaMisura>KG</UnitaMisura>\n        <DataInizioPeriodo>2017-02-28</DataInizioPeriodo>\n        <DataFinePeriodo>2017-02-28</DataFinePeriodo>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <ScontoMaggiorazione>\n          <Tipo>MG</Tipo>\n          <Percentuale>15.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>15.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>20.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>25.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <PrezzoTotale>23.24</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <Ritenuta>SI</Ritenuta>\n        <RiferimentoAmministrazione>ciao</RiferimentoAmministrazione>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>2</NumeroLinea>\n        <Descrizione>articolo</Descrizione>\n        <CodiceArticolo>\n          <CodiceTipo>EAN</CodiceTipo>\n          <CodiceValore>ALFA</CodiceValore>\n        </CodiceArticolo>\n        <Quantita>2.00</Quantita>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <PrezzoTotale>275.54</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DatiRiepilogo>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <ImponibileImporto>143.28</ImponibileImporto>\n        <Imposta>31.52</Imposta>\n        <EsigibilitaIVA>S</EsigibilitaIVA>\n      </DatiRiepilogo>\n    </DatiBeniServizi>\n    <DatiPagamento>\n      <CondizioniPagamento>TP02</CondizioniPagamento>\n      <DettaglioPagamento>\n        <ModalitaPagamento>MP05</ModalitaPagamento>\n        <DataScadenzaPagamento>2017-02-28</DataScadenzaPagamento>\n        <ImportoPagamento>119.86</ImportoPagamento>\n      </DettaglioPagamento>\n    </DatiPagamento>\n  </FatturaElettronicaBody>\n  <FatturaElettronicaBody>\n    <DatiGenerali>\n      <DatiGeneraliDocumento>\n        <TipoDocumento>TD06</TipoDocumento>\n        <Divisa>EUR</Divisa>\n        <Data>2017-01-27</Data>\n        <Numero>4</Numero>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Importo>7.00</Importo>\n        </ScontoMaggiorazione>\n        <DatiRitenuta>\n          <TipoRitenuta>RT02</TipoRitenuta>\n          <ImportoRitenuta>27.55</ImportoRitenuta>\n          <AliquotaRitenuta>20.00</AliquotaRitenuta>\n          <CausalePagamento>A</CausalePagamento>\n        </DatiRitenuta>\n        <DatiCassaPrevidenziale>\n          <TipoCassa>TC03</TipoCassa>\n          <AlCassa>4.00</AlCassa>\n          <ImportoContributoCassa>5.51</ImportoContributoCassa>\n          <ImponibileCassa>0.00</ImponibileCassa>\n          <AliquotaIVA>23.00</AliquotaIVA>\n        </DatiCassaPrevidenziale>\n        <ImportoTotaleDocumento>174.80</ImportoTotaleDocumento>\n        <Arrotondamento>0.00</Arrotondamento>\n      </DatiGeneraliDocumento>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiOrdineAcquisto>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n      </DatiOrdineAcquisto>\n      <DatiContratto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiContratto>\n      <DatiContratto>\n        <IdDocumento>99</IdDocumento>\n      </DatiContratto>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiConvenzione>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n      </DatiConvenzione>\n      <DatiRicezione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiRicezione>\n      <DatiRicezione>\n        <IdDocumento>99s</IdDocumento>\n      </DatiRicezione>\n      <DatiFattureCollegate>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiFattureCollegate>\n      <DatiFattureCollegate>\n        <IdDocumento>99bis</IdDocumento>\n      </DatiFattureCollegate>\n      <DatiSAL>\n        <RiferimentoFase>1</RiferimentoFase>\n      </DatiSAL>\n      <DatiSAL>\n        <RiferimentoFase>2</RiferimentoFase>\n      </DatiSAL>\n      <DatiDDT>\n        <NumeroDDT>12tries</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiDDT>\n        <NumeroDDT>12triesdf</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiTrasporto>\n        <DatiAnagraficiVettore>\n          <IdFiscaleIVA>\n            <IdPaese>IT</IdPaese>\n            <IdCodice>02182030391</IdCodice>\n          </IdFiscaleIVA>\n          <NumeroLicenzaGuida>AB123</NumeroLicenzaGuida>\n        </DatiAnagraficiVettore>\n        <NumeroColli>88</NumeroColli>\n        <Descrizione>pallet</Descrizione>\n        <UnitaMisuraPeso>KG</UnitaMisuraPeso>\n        <PesoLordo>10.99</PesoLordo>\n        <DataOraRitiro>2017-02-28T15:00:00</DataOraRitiro>\n        <DataInizioTrasporto>2017-02-28</DataInizioTrasporto>\n      </DatiTrasporto>\n    </DatiGenerali>\n    <DatiBeniServizi>\n      <DettaglioLinee>\n        <NumeroLinea>1</NumeroLinea>\n        <Descrizione>servizio</Descrizione>\n        <Quantita>1.00</Quantita>\n        <UnitaMisura>KG</UnitaMisura>\n        <DataInizioPeriodo>2017-02-28</DataInizioPeriodo>\n        <DataFinePeriodo>2017-02-28</DataFinePeriodo>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>15.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>20.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>25.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <PrezzoTotale>23.24</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <Ritenuta>SI</Ritenuta>\n        <RiferimentoAmministrazione>ciao</RiferimentoAmministrazione>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>2</NumeroLinea>\n        <Descrizione>articolo</Descrizione>\n        <CodiceArticolo>\n          <CodiceTipo>EAN</CodiceTipo>\n          <CodiceValore>ALFA</CodiceValore>\n        </CodiceArticolo>\n        <Quantita>2.00</Quantita>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <PrezzoTotale>275.54</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DatiRiepilogo>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <ImponibileImporto>143.28</ImponibileImporto>\n        <Imposta>31.52</Imposta>\n        <EsigibilitaIVA>S</EsigibilitaIVA>\n      </DatiRiepilogo>\n    </DatiBeniServizi>\n    <DatiPagamento>\n      <CondizioniPagamento>TP02</CondizioniPagamento>\n      <DettaglioPagamento>\n        <ModalitaPagamento>MP05</ModalitaPagamento>\n        <DataScadenzaPagamento>2017-02-28</DataScadenzaPagamento>\n        <ImportoPagamento>119.86</ImportoPagamento>\n      </DettaglioPagamento>\n    </DatiPagamento>\n  </FatturaElettronicaBody>\n</p:FatturaElettronica>"
  },
  {
    "path": "Test/Samples/IT02182030391_32.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<?xml-stylesheet type=\"text/xsl\" href=\"fatturaordinaria_v1.2.1.xsl\" ?>\n<p:FatturaElettronica versione=\"FPR12\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 fatturaordinaria_v1.2.xsd\" xmlns:p=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\">\n  <FatturaElettronicaHeader>\n    <DatiTrasmissione>\n      <IdTrasmittente>\n        <IdPaese>IT</IdPaese>\n        <IdCodice>02182030391</IdCodice>\n      </IdTrasmittente>\n      <ProgressivoInvio>32</ProgressivoInvio>\n      <FormatoTrasmissione>FPR12</FormatoTrasmissione>\n      <CodiceDestinatario>UFYAGJK</CodiceDestinatario>\n      <ContattiTrasmittente>\n        <Telefono>345/555444</Telefono>\n      </ContattiTrasmittente>\n      <PECDestinatario>cir2000snc@pec.it</PECDestinatario>\n    </DatiTrasmissione>\n    <CedentePrestatore>\n      <DatiAnagrafici>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>12345678901</IdCodice>\n        </IdFiscaleIVA>\n        <CodiceFiscale>02182030391</CodiceFiscale>\n        <Anagrafica>\n          <Denominazione>Azienda di esempio</Denominazione>\n        </Anagrafica>\n        <RegimeFiscale>RF01</RegimeFiscale>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>Via dei Roditori 15/v</Indirizzo>\n        <CAP>12100</CAP>\n        <Comune>Villa dei Roditori</Comune>\n        <Provincia>RA</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n      <Contatti>\n        <Telefono>345/555444</Telefono>\n        <Fax>035/555443</Fax>\n      </Contatti>\n    </CedentePrestatore>\n    <CessionarioCommittente>\n      <DatiAnagrafici>\n        <IdFiscaleIVA>\n          <IdPaese>IT</IdPaese>\n          <IdCodice>01180680397</IdCodice>\n        </IdFiscaleIVA>\n        <Anagrafica>\n          <Denominazione>CIR 2000 snc</Denominazione>\n        </Anagrafica>\n      </DatiAnagrafici>\n      <Sede>\n        <Indirizzo>viale IV Novembre 86</Indirizzo>\n        <CAP>48122</CAP>\n        <Comune>Marina di Ravenna</Comune>\n        <Provincia>RI</Provincia>\n        <Nazione>IT</Nazione>\n      </Sede>\n    </CessionarioCommittente>\n  </FatturaElettronicaHeader>\n  <FatturaElettronicaBody>\n    <DatiGenerali>\n      <DatiGeneraliDocumento>\n        <TipoDocumento>TD06</TipoDocumento>\n        <Divisa>EUR</Divisa>\n        <Data>2017-01-27</Data>\n        <Numero>3</Numero>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Importo>7.00</Importo>\n        </ScontoMaggiorazione>\n        <DatiRitenuta>\n          <TipoRitenuta>RT02</TipoRitenuta>\n          <ImportoRitenuta>27.55</ImportoRitenuta>\n          <AliquotaRitenuta>20.00</AliquotaRitenuta>\n          <CausalePagamento>A</CausalePagamento>\n        </DatiRitenuta>\n        <DatiCassaPrevidenziale>\n          <TipoCassa>TC03</TipoCassa>\n          <AlCassa>4.00</AlCassa>\n          <ImportoContributoCassa>5.51</ImportoContributoCassa>\n          <ImponibileCassa>0.00</ImponibileCassa>\n          <AliquotaIVA>23.00</AliquotaIVA>\n        </DatiCassaPrevidenziale>\n        <ImportoTotaleDocumento>174.80</ImportoTotaleDocumento>\n        <Arrotondamento>0.00</Arrotondamento>\n      </DatiGeneraliDocumento>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiOrdineAcquisto>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n      </DatiOrdineAcquisto>\n      <DatiContratto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiContratto>\n      <DatiContratto>\n        <IdDocumento>99</IdDocumento>\n      </DatiContratto>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiConvenzione>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n      </DatiConvenzione>\n      <DatiRicezione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiRicezione>\n      <DatiRicezione>\n        <IdDocumento>99s</IdDocumento>\n      </DatiRicezione>\n      <DatiFattureCollegate>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiFattureCollegate>\n      <DatiFattureCollegate>\n        <IdDocumento>99bis</IdDocumento>\n      </DatiFattureCollegate>\n      <DatiSAL>\n        <RiferimentoFase>1</RiferimentoFase>\n      </DatiSAL>\n      <DatiSAL>\n        <RiferimentoFase>2</RiferimentoFase>\n      </DatiSAL>\n      <DatiDDT>\n        <NumeroDDT>12tries</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiDDT>\n        <NumeroDDT>12triesdf</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiTrasporto>\n        <DatiAnagraficiVettore>\n          <IdFiscaleIVA>\n            <IdPaese>IT</IdPaese>\n            <IdCodice>02182030391</IdCodice>\n          </IdFiscaleIVA>\n          <NumeroLicenzaGuida>AB123</NumeroLicenzaGuida>\n        </DatiAnagraficiVettore>\n        <NumeroColli>88</NumeroColli>\n        <Descrizione>pallet</Descrizione>\n        <UnitaMisuraPeso>KG</UnitaMisuraPeso>\n        <PesoLordo>10.99</PesoLordo>\n        <DataOraRitiro>2017-02-28T15:00:00</DataOraRitiro>\n        <DataInizioTrasporto>2017-02-28</DataInizioTrasporto>\n      </DatiTrasporto>\n    </DatiGenerali>\n    <DatiBeniServizi>\n      <DettaglioLinee>\n        <NumeroLinea>1</NumeroLinea>\n        <Descrizione>servizio</Descrizione>\n        <Quantita>1.00</Quantita>\n        <UnitaMisura>KG</UnitaMisura>\n        <DataInizioPeriodo>2017-02-28</DataInizioPeriodo>\n        <DataFinePeriodo>2017-02-28</DataFinePeriodo>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <ScontoMaggiorazione>\n          <Tipo>MG</Tipo>\n          <Percentuale>15.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>15.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>20.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>25.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <PrezzoTotale>23.24</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <Ritenuta>SI</Ritenuta>\n        <RiferimentoAmministrazione>ciao</RiferimentoAmministrazione>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>2</NumeroLinea>\n        <Descrizione>articolo</Descrizione>\n        <CodiceArticolo>\n          <CodiceTipo>EAN</CodiceTipo>\n          <CodiceValore>ALFA</CodiceValore>\n        </CodiceArticolo>\n        <Quantita>2.00</Quantita>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <PrezzoTotale>275.54</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DatiRiepilogo>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <ImponibileImporto>143.28</ImponibileImporto>\n        <Imposta>31.52</Imposta>\n        <EsigibilitaIVA>S</EsigibilitaIVA>\n      </DatiRiepilogo>\n    </DatiBeniServizi>\n    <DatiPagamento>\n      <CondizioniPagamento>TP02</CondizioniPagamento>\n      <DettaglioPagamento>\n        <ModalitaPagamento>MP05</ModalitaPagamento>\n        <DataScadenzaPagamento>2017-02-28</DataScadenzaPagamento>\n        <ImportoPagamento>119.86</ImportoPagamento>\n      </DettaglioPagamento>\n    </DatiPagamento>\n  </FatturaElettronicaBody>\n  <FatturaElettronicaBody>\n    <DatiGenerali>\n      <DatiGeneraliDocumento>\n        <TipoDocumento>TD06</TipoDocumento>\n        <Divisa>EUR</Divisa>\n        <Data>2017-01-27</Data>\n        <Numero>4</Numero>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Importo>7.00</Importo>\n        </ScontoMaggiorazione>\n        <DatiRitenuta>\n          <TipoRitenuta>RT02</TipoRitenuta>\n          <ImportoRitenuta>27.55</ImportoRitenuta>\n          <AliquotaRitenuta>20.00</AliquotaRitenuta>\n          <CausalePagamento>A</CausalePagamento>\n        </DatiRitenuta>\n        <DatiCassaPrevidenziale>\n          <TipoCassa>TC03</TipoCassa>\n          <AlCassa>4.00</AlCassa>\n          <ImportoContributoCassa>5.51</ImportoContributoCassa>\n          <ImponibileCassa>0.00</ImponibileCassa>\n          <AliquotaIVA>23.00</AliquotaIVA>\n        </DatiCassaPrevidenziale>\n        <ImportoTotaleDocumento>174.80</ImportoTotaleDocumento>\n        <Arrotondamento>0.00</Arrotondamento>\n      </DatiGeneraliDocumento>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiOrdineAcquisto>\n      <DatiOrdineAcquisto>\n        <IdDocumento>99/bis</IdDocumento>\n      </DatiOrdineAcquisto>\n      <DatiContratto>\n        <IdDocumento>99/bis</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiContratto>\n      <DatiContratto>\n        <IdDocumento>99</IdDocumento>\n      </DatiContratto>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiConvenzione>\n      <DatiConvenzione>\n        <IdDocumento>99</IdDocumento>\n      </DatiConvenzione>\n      <DatiRicezione>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiRicezione>\n      <DatiRicezione>\n        <IdDocumento>99s</IdDocumento>\n      </DatiRicezione>\n      <DatiFattureCollegate>\n        <IdDocumento>99</IdDocumento>\n        <Data>2017-02-28</Data>\n        <CodiceCommessaConvenzione>alfacomm</CodiceCommessaConvenzione>\n        <CodiceCUP>cup</CodiceCUP>\n        <CodiceCIG>cig</CodiceCIG>\n      </DatiFattureCollegate>\n      <DatiFattureCollegate>\n        <IdDocumento>99bis</IdDocumento>\n      </DatiFattureCollegate>\n      <DatiSAL>\n        <RiferimentoFase>1</RiferimentoFase>\n      </DatiSAL>\n      <DatiSAL>\n        <RiferimentoFase>2</RiferimentoFase>\n      </DatiSAL>\n      <DatiDDT>\n        <NumeroDDT>12tries</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiDDT>\n        <NumeroDDT>12triesdf</NumeroDDT>\n        <DataDDT>2017-02-28</DataDDT>\n      </DatiDDT>\n      <DatiTrasporto>\n        <DatiAnagraficiVettore>\n          <IdFiscaleIVA>\n            <IdPaese>IT</IdPaese>\n            <IdCodice>02182030391</IdCodice>\n          </IdFiscaleIVA>\n          <NumeroLicenzaGuida>AB123</NumeroLicenzaGuida>\n        </DatiAnagraficiVettore>\n        <NumeroColli>88</NumeroColli>\n        <Descrizione>pallet</Descrizione>\n        <UnitaMisuraPeso>KG</UnitaMisuraPeso>\n        <PesoLordo>10.99</PesoLordo>\n        <DataOraRitiro>2017-02-28T15:00:00</DataOraRitiro>\n        <DataInizioTrasporto>2017-02-28</DataInizioTrasporto>\n      </DatiTrasporto>\n    </DatiGenerali>\n    <DatiBeniServizi>\n      <DettaglioLinee>\n        <NumeroLinea>1</NumeroLinea>\n        <Descrizione>servizio</Descrizione>\n        <Quantita>1.00</Quantita>\n        <UnitaMisura>KG</UnitaMisura>\n        <DataInizioPeriodo>2017-02-28</DataInizioPeriodo>\n        <DataFinePeriodo>2017-02-28</DataFinePeriodo>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>10.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>15.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>20.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <ScontoMaggiorazione>\n          <Tipo>SC</Tipo>\n          <Percentuale>25.00</Percentuale>\n          <Importo>10</Importo>\n        </ScontoMaggiorazione>\n        <PrezzoTotale>23.24</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <Ritenuta>SI</Ritenuta>\n        <RiferimentoAmministrazione>ciao</RiferimentoAmministrazione>\n      </DettaglioLinee>\n      <DettaglioLinee>\n        <NumeroLinea>2</NumeroLinea>\n        <Descrizione>articolo</Descrizione>\n        <CodiceArticolo>\n          <CodiceTipo>EAN</CodiceTipo>\n          <CodiceValore>ALFA</CodiceValore>\n        </CodiceArticolo>\n        <Quantita>2.00</Quantita>\n        <PrezzoUnitario>137.77</PrezzoUnitario>\n        <PrezzoTotale>275.54</PrezzoTotale>\n        <AliquotaIVA>22.00</AliquotaIVA>\n      </DettaglioLinee>\n      <DatiRiepilogo>\n        <AliquotaIVA>22.00</AliquotaIVA>\n        <ImponibileImporto>143.28</ImponibileImporto>\n        <Imposta>31.52</Imposta>\n        <EsigibilitaIVA>S</EsigibilitaIVA>\n      </DatiRiepilogo>\n    </DatiBeniServizi>\n    <DatiPagamento>\n      <CondizioniPagamento>TP02</CondizioniPagamento>\n      <DettaglioPagamento>\n        <ModalitaPagamento>MP05</ModalitaPagamento>\n        <DataScadenzaPagamento>2017-02-28</DataScadenzaPagamento>\n        <ImportoPagamento>119.86</ImportoPagamento>\n      </DettaglioPagamento>\n    </DatiPagamento>\n  </FatturaElettronicaBody>\n</p:FatturaElettronica>"
  },
  {
    "path": "Test/Samples/fatturaPA_v1.2.1.xsl",
    "content": "﻿<?xml version=\"1.0\"?>\r\n<xsl:stylesheet \r\n\tversion=\"1.1\" \r\n\txmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" \r\n\txmlns:a=\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\">\r\n\t<xsl:output method=\"html\" />\r\n\r\n\t<xsl:template name=\"FormatDate\">\r\n\t\t<xsl:param name=\"DateTime\" />\r\n\r\n\t\t<xsl:variable name=\"year\" select=\"substring($DateTime,1,4)\" />\r\n\t\t<xsl:variable name=\"month\" select=\"substring($DateTime,6,2)\" />\r\n\t\t<xsl:variable name=\"day\" select=\"substring($DateTime,9,2)\" />\r\n\r\n\t\t<xsl:value-of select=\"' ('\" />\r\n\t\t<xsl:value-of select=\"$day\" />\r\n\t\t<xsl:value-of select=\"' '\" />\r\n\t\t<xsl:choose>\r\n\t\t\t<xsl:when test=\"$month = '1' or $month = '01'\">\r\n\t\t\t\tGennaio\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '2' or $month = '02'\">\r\n\t\t\t\tFebbraio\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '3' or $month = '03'\">\r\n\t\t\t\tMarzo\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '4' or $month = '04'\">\r\n\t\t\t\tAprile\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '5' or $month = '05'\">\r\n\t\t\t\tMaggio\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '6' or $month = '06'\">\r\n\t\t\t\tGiugno\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '7' or $month = '07'\">\r\n\t\t\t\tLuglio\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '8' or $month = '08'\">\r\n\t\t\t\tAgosto\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '9' or $month = '09'\">\r\n\t\t\t\tSettembre\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '10'\">\r\n\t\t\t\tOttobre\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '11'\">\r\n\t\t\t\tNovembre\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:when test=\"$month = '12'\">\r\n\t\t\t\tDicembre\r\n\t\t\t</xsl:when>\r\n\t\t\t<xsl:otherwise>\r\n\t\t\t\tMese non riconosciuto\r\n\t\t\t</xsl:otherwise>\r\n\t\t</xsl:choose>\r\n\t\t<xsl:value-of select=\"' '\" />\r\n\t\t<xsl:value-of select=\"$year\" />\r\n\r\n\t\t<xsl:variable name=\"time\" select=\"substring($DateTime,12)\" />\r\n\t\t<xsl:if test=\"$time != ''\">\r\n\t\t\t<xsl:variable name=\"hh\" select=\"substring($time,1,2)\" />\r\n\t\t\t<xsl:variable name=\"mm\" select=\"substring($time,4,2)\" />\r\n\t\t\t<xsl:variable name=\"ss\" select=\"substring($time,7,2)\" />\r\n\r\n\t\t\t<xsl:value-of select=\"' '\" />\r\n\t\t\t<xsl:value-of select=\"$hh\" />\r\n\t\t\t<xsl:value-of select=\"':'\" />\r\n\t\t\t<xsl:value-of select=\"$mm\" />\r\n\t\t\t<xsl:value-of select=\"':'\" />\r\n\t\t\t<xsl:value-of select=\"$ss\" />\r\n\t\t</xsl:if>\r\n\t\t<xsl:value-of select=\"')'\" />\r\n\t</xsl:template>\r\n\r\n\t<xsl:template match=\"/\">\r\n\t\t<html>\r\n\t\t\t<head>\r\n\t\t\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\r\n\t\t\t\t<style type=\"text/css\">\r\n\t\t\t\t\t#fattura-container { width: 100%; position: relative; }\r\n\r\n\t\t\t\t\t#fattura-elettronica { font-family: sans-serif; margin-left: auto; margin-right: auto; max-width: 1280px; min-width: 930px; padding: 0; }\r\n\t\t\t\t\t#fattura-elettronica .versione { font-size: 11px; float:right; color: #777777; }\r\n\t\t\t\t\t#fattura-elettronica h1 { padding: 20px 0 0 0; margin: 0; font-size: 30px; }\r\n\t\t\t\t\t#fattura-elettronica h2 { padding: 20px 0 0 0; margin: 0; font-size: 20px; }\r\n\t\t\t\t\t#fattura-elettronica h3 { padding: 20px 0 0 0; margin: 0; font-size: 25px; }\r\n\t\t\t\t\t#fattura-elettronica h4 { padding: 20px 0 0 0; margin: 0; font-size: 20px; }\r\n\t\t\t\t\t#fattura-elettronica h5 { padding: 15px 0 0 0; margin: 0;\r\n\t\t\t\t\tfont-size: 17px; font-style: italic; }\r\n\t\t\t\t\t#fattura-elettronica ul { list-style-type: none; margin: 0 !important; padding: 15px 0 0 40px !important; }\r\n\t\t\t\t\t#fattura-elettronica ul li {}\r\n\t\t\t\t\t#fattura-elettronica ul li span { font-weight: bold; }\r\n\t\t\t\t\t#fattura-elettronica div { padding: 0; margin: 0; }\r\n\r\n\t\t\t\t\t#fattura-elettronica\r\n\t\t\t\t\tdiv.page {\r\n\t\t\t\t\tbackground-color: #fff !important;\r\n\t\t\t\t\tposition: relative;\r\n\r\n\t\t\t\t\tmargin: 20px 0\r\n\t\t\t\t\t50px 0;\r\n\t\t\t\t\tpadding: 60px;\r\n\r\n\t\t\t\t\tbackground: -moz-linear-gradient(0% 0 360deg, #FFFFFF, #F2F2F2 20%, #FFFFFF) repeat scroll 0 0 transparent;\r\n\t\t\t\t\tborder: 1px solid #CCCCCC;\r\n\t\t\t\t\t-webkitbox-shadow: 0 0 10px rgba(0, 0, 0,\r\n\t\t\t\t\t0.3);\r\n\t\t\t\t\t-mozbox-shadow: 0\r\n\t\t\t\t\t0 10px rgba(0, 0, 0, 0.3);\r\n\t\t\t\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.3);\r\n\r\n\t\t\t\t\tbackground: url('logo_sdi_trasparente.jpg') 98% 50px no-repeat;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t#fattura-elettronica div.footer { padding: 50px 0 0 0; margin: 0; font-size: 11px; text-align: center; color: #777777; }\r\n\t\t\t\t</style>\r\n\t\t\t</head>\r\n\t\t\t<body>\r\n\t\t\t\t<div id=\"fattura-container\">\r\n\t\t\t\t\t<!--INIZIO DATI HEADER-->\r\n\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica\">\r\n\r\n\t\t\t\t\t\t<div id=\"fattura-elettronica\">\r\n\r\n\t\t\t\t\t\t\t<h1>FATTURA ELETTRONICA</h1>\r\n\r\n\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader\">\r\n\t\t\t\t\t\t\t\t<div class=\"page\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"versione\">\r\n\t\t\t\t\t\t\t\t\t\tVersione <xsl:value-of select=\"a:FatturaElettronica/@versione\"/>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/DatiTrasmissione\">\r\n\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DELLA TRASMISSIONE-->\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"dati-trasmissione\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati relativi alla trasmissione</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/DatiTrasmissione\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdTrasmittente\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo del trasmittente:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdTrasmittente/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdTrasmittente/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ProgressivoInvio\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProgressivo di invio:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ProgressivoInvio\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"FormatoTrasmissione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFormato Trasmissione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"FormatoTrasmissione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceDestinatario\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Amministrazione destinataria:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceDestinatario\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ContattiTrasmittente/Telefono\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTelefono del trasmittente:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ContattiTrasmittente/Telefono\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ContattiTrasmittente/Email\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tE-mail del trasmittente:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ContattiTrasmittente/Email\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"PECDestinatario\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDestinatario PEC:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"PECDestinatario\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI DELLA TRASMISSIONE-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI CEDENTE PRESTATORE-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"cedente\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati del cedente / prestatore</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati anagrafici</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdFiscaleIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fiscale ai fini IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice fiscale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Denominazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDenominazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Denominazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Nome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Nome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Cognome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Cognome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Titolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitolo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Titolo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/CodEORI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice EORI:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/CodEORI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AlboProfessionale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAlbo professionale di appartenenza:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AlboProfessionale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ProvinciaAlbo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia di competenza dell'Albo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ProvinciaAlbo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroIscrizioneAlbo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero iscrizione all'Albo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroIscrizioneAlbo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataIscrizioneAlbo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData iscrizione all'Albo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataIscrizioneAlbo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataIscrizioneAlbo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RegimeFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRegime fiscale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RegimeFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"RF\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RegimeFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF01'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(ordinario)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF02'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(contribuenti minimi)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF03'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(nuove iniziative produttive) - Non più valido in quanto abrogato dalla legge di stabilità 2015\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF04'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(agricoltura e attività connesse e pesca)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF05'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(vendita sali e tabacchi)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF06'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(commercio fiammiferi)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF07'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(editoria)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF08'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(gestione servizi telefonia pubblica)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF09'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(rivendita documenti di trasporto pubblico e di sosta)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF10'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(intrattenimenti, giochi e altre attività di cui alla tariffa allegata al DPR 640/72)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF11'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(agenzie viaggi e turismo)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF12'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(agriturismo)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF13'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(vendite a domicilio)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF14'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(rivendita beni usati, oggetti d’arte,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\td’antiquariato o da collezione)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF15'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(agenzie di vendite all’asta di oggetti d’arte,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tantiquariato o da collezione)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF16'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(IVA per cassa P.A.)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF17'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(IVA per cassa - art. 32-bis, D.L. 83/2012)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF19'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Regime forfettario)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF='RF18'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(altro)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$RF=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/Sede\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati della sede</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/Sede\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Indirizzo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIndirizzo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Indirizzo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroCivico\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero civico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroCivico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CAP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCAP:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CAP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Comune\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tComune:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Comune\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Provincia\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Provincia\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Nazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Nazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati della stabile organizzazione</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/StabileOrganizzazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Indirizzo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIndirizzo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Indirizzo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroCivico\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero civico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroCivico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CAP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCAP:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CAP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Comune\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tComune:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Comune\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Provincia\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Provincia\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Nazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Nazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati di iscrizione nel registro delle imprese</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/IscrizioneREA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Ufficio\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia Ufficio Registro Imprese:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Ufficio\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroREA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero di iscrizione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroREA\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CapitaleSociale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCapitale sociale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CapitaleSociale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"SocioUnico\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero soci:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"SocioUnico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"NS\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"SocioUnico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NS='SU'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(socio unico)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NS='SM'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(più soci)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NS=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"StatoLiquidazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tStato di liquidazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"StatoLiquidazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"SL\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"StatoLiquidazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$SL='LS'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(in liquidazione)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$SL='LN'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non in liquidazione)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$SL=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/Contatti\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Telefono or Fax or Email\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Recapiti</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Telefono\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTelefono:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Telefono\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Fax\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFax:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Fax\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Email\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tE-mail:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Email\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/RiferimentoAmministrazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Riferimento amministrativo</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tRiferimento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"a:FatturaElettronica/FatturaElettronicaHeader/CedentePrestatore/RiferimentoAmministrazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI CEDENTE PRESTATORE-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI RAPPRESENTANTE FISCALE-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/RappresentanteFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"rappresentante-fiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati del rappresentante fiscale del cedente / prestatore</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati anagrafici</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/RappresentanteFiscale/DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdFiscaleIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fiscale ai fini IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice fiscale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Denominazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDenominazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Denominazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Nome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Nome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Cognome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Cognome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Titolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitolo onorifico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Titolo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/CodEORI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice EORI:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/CodEORI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI RAPPRESENTANTE FISCALE-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI CESSIONARIO COMMITTENTE-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"cessionario\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati del cessionario / committente</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati anagrafici</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdFiscaleIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fiscale ai fini IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Fiscale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Denominazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDenominazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Denominazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Nome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Nome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Cognome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Cognome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Titolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitolo onorifico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Titolo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/CodEORI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice EORI:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/CodEORI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/Sede\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati della sede</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/Sede\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Indirizzo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIndirizzo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Indirizzo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroCivico\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero civico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroCivico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CAP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCAP:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CAP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Comune\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tComune:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Comune\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Provincia\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Provincia\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Nazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Nazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h4>Stabile organizzazione del cessionario / committente</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/StabileOrganizzazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Indirizzo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIndirizzo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Indirizzo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroCivico\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero civico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroCivico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CAP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCAP:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CAP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Comune\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tComune:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Comune\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Provincia\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Provincia\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Nazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Nazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"rappresentante-fiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati del rappresentante fiscale del cessionario / committente</h4>\r\n\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/CessionarioCommittente/RappresentanteFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdFiscaleIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fiscale ai fini IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Denominazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDenominazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Denominazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Nome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Nome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Cognome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Cognome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI RAPPRESENTANTE FISCALE-->\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI CESSIONARIO COMMITTENTE-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI TERZO INTERMEDIARIO SOGGETTO EMITTENTE-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"terzointermediario\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaHeader/TerzoIntermediarioOSoggettoEmittente\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati del terzo intermediario soggetto emittente</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati anagrafici</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/IdFiscaleIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fiscale ai fini IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/IdFiscaleIVA/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/IdFiscaleIVA/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/CodiceFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Fiscale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/CodiceFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/Anagrafica/Denominazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDenominazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/Anagrafica/Denominazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/Anagrafica/Nome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/Anagrafica/Nome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/Anagrafica/Cognome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/Anagrafica/Cognome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/Anagrafica/Titolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitolo onorifico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/Anagrafica/Titolo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiAnagrafici/Anagrafica/CodEORI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice EORI:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiAnagrafici/Anagrafica/CodEORI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI TERZO INTERMEDIARIO SOGGETTO EMITTENTE-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI SOGGETTO EMITTENTE-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"a:FatturaElettronica/FatturaElettronicaHeader/SoggettoEmittente\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"soggetto-emittente\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Soggetto emittente la fattura</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSoggetto emittente:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"a:FatturaElettronica/FatturaElettronicaHeader/SoggettoEmittente\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"SC\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"a:FatturaElettronica/FatturaElettronicaHeader/SoggettoEmittente\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$SC='CC'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(cessionario/committente)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$SC='TZ'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(terzo)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$SC=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI SOGGETTO EMITTENTE-->\r\n\r\n\t\t\t\t\t\t\t\t\t<div class=\"footer\">\r\n\t\t\t\t\t\t\t\t\t\tVersione prodotta con foglio di stile SdI\r\n\t\t\t\t\t\t\t\t\t\t<a href=\"http://www.fatturapa.gov.it\">www.fatturapa.gov.it</a>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t<!--FINE DATI HEADER-->\r\n\r\n\t\t\t\t\t\t\t<!--INIZIO DATI BODY-->\r\n\r\n\t\t\t\t\t\t\t<xsl:variable name=\"TOTALBODY\">\r\n\t\t\t\t\t\t\t\t<xsl:value-of select=\"count(a:FatturaElettronica/FatturaElettronicaBody)\" />\r\n\t\t\t\t\t\t\t</xsl:variable>\r\n\r\n\t\t\t\t\t\t\t<xsl:for-each select=\"a:FatturaElettronica/FatturaElettronicaBody\">\r\n\t\t\t\t\t\t\t\t<xsl:if test=\"$TOTALBODY>1\">\r\n\t\t\t\t\t\t\t\t\t<h2>\r\n\t\t\t\t\t\t\t\t\t\tNumero documento nel lotto:\r\n\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"position()\" />\r\n\t\t\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t<div class=\"page\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"versione\">\r\n\t\t\t\t\t\t\t\t\t\tVersione <xsl:value-of select=\"../@versione\"/>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali\">\r\n\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI GENERALI-->\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"dati-generali\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI GENERALI DOCUMENTO-->\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-generali-documento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati generali del documento</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/TipoDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia documento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/TipoDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"TD\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/TipoDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD='TD01'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(fattura)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD='TD02'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(acconto/anticipo su fattura)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD='TD03'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(acconto/anticipo su parcella)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD='TD04'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(nota di credito)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD='TD05'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(nota di debito)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD='TD06'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(parcella)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TD=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/Divisa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValuta importi:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/Divisa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData documento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DatiGenerali/DatiGeneraliDocumento/Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/Numero\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero documento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/Numero\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/ImportoTotaleDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto totale documento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/ImportoTotaleDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/Arrotondamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tArrotondamento su Importo totale documento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/Arrotondamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiGeneraliDocumento/Causale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCausale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"current()\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/Art73\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tArt. 73 DPR 633/72:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/DatiGeneraliDocumento/Art73\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DELLA RITENUTA-->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/DatiRitenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-ritenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiGeneraliDocumento/DatiRitenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Ritenuta</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TipoRitenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia ritenuta:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoRitenuta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"TR\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoRitenuta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TR='RT01'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(ritenuta persone fisiche)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TR='RT02'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(ritenuta persone giuridiche)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TR=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ImportoRitenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto ritenuta:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ImportoRitenuta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AliquotaRitenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAliquota ritenuta (%):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AliquotaRitenuta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CausalePagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCausale di pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CausalePagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"CP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CausalePagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"$CP!=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(decodifica come da modello 770S)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DELLA RITENUTA-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DEL BOLLO-->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/DatiBollo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-bollo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiGeneraliDocumento/DatiBollo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Bollo</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"BolloVirtuale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBollo virtuale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"BolloVirtuale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ImportoBollo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto bollo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ImportoBollo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DEL BOLLO-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DELLA CASSA PREVIDENZIALE-->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/DatiCassaPrevidenziale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-cassa-previdenziale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Cassa previdenziale</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiGeneraliDocumento/DatiCassaPrevidenziale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TipoCassa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia cassa previdenziale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoCassa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"TC\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoCassa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC01'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Nazionale Previdenza e Assistenza Avvocati\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te Procuratori legali)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC02'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Previdenza Dottori Commercialisti)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC03'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Previdenza e Assistenza Geometri)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC04'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIngegneri e Architetti liberi profess.)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC05'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Nazionale del Notariato)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC06'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRagionieri e Periti commerciali)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC07'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Assistenza Agenti e Rappresentanti\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdi Commercio-ENASARCO)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC08'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza Consulenti\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdel Lavoro-ENPACL)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC09'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMedici-ENPAM)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC10'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFarmacisti-ENPAF)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC11'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tVeterinari-ENPAV)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC12'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza Impiegati\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdell'Agricoltura-ENPAIA)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC13'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Fondo Previdenza Impiegati Imprese di Spedizione\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te Agenzie Marittime)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC14'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Istituto Nazionale Previdenza Giornalisti\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tItaliani-INPGI)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC15'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Opera Nazionale Assistenza Orfani Sanitari\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tItaliani-ONAOSI)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC16'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Cassa Autonoma Assistenza Integrativa\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tGiornalisti Italiani-CASAGIT)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC17'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Previdenza Periti Industriali e Periti\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIndustriali Laureati-EPPI)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC18'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPluricategoriale-EPAP)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC19'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBiologi-ENPAB)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC20'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProfessione Infermieristica-ENPAPI)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC21'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Ente Nazionale Previdenza e Assistenza\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPsicologi-ENPAP)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC='TC22'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(INPS)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TC=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AlCassa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAliquota contributo cassa (%):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AlCassa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ImportoContributoCassa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto contributo cassa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ImportoContributoCassa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ImponibileCassa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImponibile previdenziale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ImponibileCassa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AliquotaIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAliquota IVA applicata:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AliquotaIVA\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Ritenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tContributo cassa soggetto a ritenuta:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Ritenuta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Natura\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia di non imponibilità del contributo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Natura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"NT\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Natura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N1'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(escluse ex art. 15)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N2'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non soggette)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N3'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non imponibili)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N4'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(esenti)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N5'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(regime del margine / IVA non esposta in fattura)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N6'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(inversione contabile)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT='N7'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(IVA assolta in altro stato UE)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NT=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoAmministrazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRiferimento amministrativo / contabile:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RiferimentoAmministrazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DELLA CASSA PREVIDENZIALE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI SCONTO / MAGGIORAZIONE-->\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiGeneraliDocumento/ScontoMaggiorazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Sconto/maggiorazione</h4>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-sconto-maggiorazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiGeneraliDocumento/ScontoMaggiorazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Tipo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Tipo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"TSM\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Tipo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TSM='SC'\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(sconto)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TSM='MG'\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(maggiorazione)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Percentuale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPercentuale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Percentuale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Importo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Importo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI SCONTO / MAGGIORAZIONE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI GENERALI DOCUMENTO-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DELL'ORDINE DI ACQUISTO-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiOrdineAcquisto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-ordine-acquisto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati dell'ordine di acquisto</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiOrdineAcquisto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea di fattura a cui si riferisce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo ordine di acquisto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData ordine di acquisto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumItem\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea ordine di acquisto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumItem\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCommessaConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice commessa/convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCommessaConvenzione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCUP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Unitario Progetto (CUP):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCUP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCIG\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Identificativo Gara (CIG):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCIG\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DELL'ORDINE DI ACQUISTO-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DEL CONTRATTO-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiContratto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-contratto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati del contratto</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiContratto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea di fattura a cui si riferisce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo contratto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData contratto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumItem\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea contratto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumItem\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCommessaConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice commessa/convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCommessaConvenzione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCUP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Unitario Progetto (CUP):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCUP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCIG\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Identificativo Gara (CIG):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCIG\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DEL CONTRATTO-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI CONVENZIONE-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-convenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati della convenzione</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea di fattura a cui si riferisce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumItem\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumItem\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCommessaConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice commessa/convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCommessaConvenzione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCUP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Unitario Progetto (CUP):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCUP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCIG\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Identificativo Gara (CIG):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCIG\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI CONVENZIONE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI RICEZIONE-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiRicezione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-ricezione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati della ricezione</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiRicezione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea di fattura a cui si riferisce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo ricezione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData ricezione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumItem\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea ricezione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumItem\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCommessaConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice commessa/convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCommessaConvenzione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCUP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Unitario Progetto (CUP):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCUP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCIG\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Identificativo Gara (CIG):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCIG\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI RICEZIONE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI FATTURE COLLEGATE-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiFattureCollegate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-fatture-collegate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati della fattura collegata</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiFattureCollegate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea di fattura a cui si riferisce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdDocumento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fattura collegata:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdDocumento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData fattura collegata:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumItem\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea fattura collegata:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumItem\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCommessaConvenzione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice commessa/convenzione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCommessaConvenzione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCUP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Unitario Progetto (CUP):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCUP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceCIG\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Identificativo Gara (CIG):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceCIG\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI FATTURE COLLEGATE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI RIFERIMENTO SAL-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiSAL\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-sal\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Stato avanzamento lavori</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiSAL/RiferimentoFase\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero fase avanzamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiSAL/RiferimentoFase\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI RIFERIMENTO SAL-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI  DDT-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiDDT\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-ddt\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati del documento di trasporto</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiDDT\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroDDT\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero DDT:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroDDT\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataDDT\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData DDT:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataDDT\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataDDT\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero linea di fattura a cui si riferisce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"RiferimentoNumeroLinea\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"(position( )) > 1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\".\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DDT-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI  TRASPORTO-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiTrasporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"dati-trasporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati relativi al trasporto</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/DatiTrasporto/DatiAnagraficiVettore\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Dati del vettore</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiTrasporto/DatiAnagraficiVettore\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IdFiscaleIVA/IdPaese\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIdentificativo fiscale ai fini IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdPaese\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IdFiscaleIVA/IdCodice\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceFiscale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Fiscale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceFiscale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Denominazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDenominazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Denominazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Nome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Nome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Cognome\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Cognome\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/Titolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitolo onorifico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/Titolo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Anagrafica/CodEORI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice EORI:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Anagrafica/CodEORI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroLicenzaGuida\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero licenza di guida:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroLicenzaGuida\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttest=\"DatiGenerali/DatiTrasporto/MezzoTrasporto or DatiGenerali/DatiTrasporto/CausaleTrasporto or DatiGenerali/DatiTrasporto/NumeroColli or DatiGenerali/DatiTrasporto/Descrizione or DatiGenerali/DatiTrasporto/UnitaMisuraPeso or DatiGenerali/DatiTrasporto/PesoLordo or DatiGenerali/DatiTrasporto/PesoNetto or DatiGenerali/DatiTrasporto/DataOraRitiro or DatiGenerali/DatiTrasporto/DataInizioTrasporto or DatiGenerali/DatiTrasporto/TipoResa or DatiGenerali/DatiTrasporto/IndirizzoResa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4>Altri dati</h4>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiGenerali/DatiTrasporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"MezzoTrasporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMezzo di trasporto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"MezzoTrasporto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CausaleTrasporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCausale trasporto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CausaleTrasporto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NumeroColli\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero colli trasportati:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroColli\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Descrizione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDescrizione beni trasportati:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Descrizione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"UnitaMisuraPeso\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUnità di misura del peso merce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"UnitaMisuraPeso\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"PesoLordo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPeso lordo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"PesoLordo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"PesoNetto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPeso netto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"PesoNetto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataOraRitiro\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData e ora ritiro merce:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataOraRitiro\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataOraRitiro\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataInizioTrasporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData inizio trasporto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataInizioTrasporto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataInizioTrasporto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TipoResa\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipologia di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoResa\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(codifica secondo standard ICC)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IndirizzoResa/Indirizzo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIndirizzo di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IndirizzoResa/Indirizzo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IndirizzoResa/NumeroCivico\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero civico indirizzo di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IndirizzoResa/NumeroCivico\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IndirizzoResa/CAP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCAP indirizzo di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IndirizzoResa/CAP\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IndirizzoResa/Comune\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tComune di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IndirizzoResa/Comune\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IndirizzoResa/Provincia\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tProvincia di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IndirizzoResa/Provincia\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IndirizzoResa/Nazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNazione di resa:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IndirizzoResa/Nazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI TRASPORTO-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO FATTURA PRINCIPALE-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/FatturaPrincipale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"fattura-principale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati relativi alla fattura principale</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/FatturaPrincipale/NumeroFatturaPrincipale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNumero fattura principale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/FatturaPrincipale/NumeroFatturaPrincipale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiGenerali/FatturaPrincipale/DataFatturaPrincipale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData fattura principale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DatiGenerali/FatturaPrincipale/DataFatturaPrincipale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DatiGenerali/FatturaPrincipale/DataFatturaPrincipale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE FATTURA PRINCIPALE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI GENERALI-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI BENI E SERVIZI-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiBeniServizi\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"dati-dettaglio-linee\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DI DETTAGLIO DELLE LINEE-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiBeniServizi/DettaglioLinee\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"righe\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati relativi alle linee di dettaglio della fornitura</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiBeniServizi/DettaglioLinee\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h5>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNr. linea:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NumeroLinea\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</h5>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TipoCessionePrestazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipo cessione/prestazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoCessionePrestazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"TCP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoCessionePrestazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TCP='SC'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(sconto)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TCP='PR'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(premio)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TCP='AB'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(abbuono)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TCP='AC'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(spesa accessoria)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceArticolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h5>Codifica articolo</h5>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"CodiceArticolo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceTipo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceTipo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodiceValore\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValore:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodiceValore\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Descrizione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDescrizione bene/servizio:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Descrizione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Quantita\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tQuantità:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Quantita\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"UnitaMisura\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUnità di misura:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"UnitaMisura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataInizioPeriodo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData inizio periodo di riferimento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataInizioPeriodo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataInizioPeriodo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataFinePeriodo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData fine periodo di riferimento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataFinePeriodo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataFinePeriodo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"PrezzoUnitario\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValore unitario:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"PrezzoUnitario\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ScontoMaggiorazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h5>Sconto/Maggiorazione</h5>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"ScontoMaggiorazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Tipo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Tipo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"TSCM\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Tipo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TSCM='SC'\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(sconto)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$TSCM='MG'\">\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(maggiorazione)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Percentuale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPercentuale (%):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Percentuale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Importo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Importo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"PrezzoTotale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValore totale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"PrezzoTotale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AliquotaIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIVA (%):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AliquotaIVA\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Ritenuta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSoggetta a ritenuta:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Ritenuta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Natura\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNatura operazione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Natura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"NAT\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Natura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N1'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(esclusa ex art.15)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N2'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non soggetta)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N3'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non imponibile)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N4'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(esente)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N5'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(regime del margine / IVA non esposta in fattura)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N6'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(inversione contabile)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT='N7'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(IVA assolta in altro stato UE)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoAmministrazione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRiferimento amministrativo/contabile:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RiferimentoAmministrazione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AltriDatiGestionali\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h5>Altri dati gestionali</h5>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"AltriDatiGestionali\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TipoDato\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTipo dato:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TipoDato\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoTesto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValore testo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RiferimentoTesto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNumero\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValore numerico:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RiferimentoNumero\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoData\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tValore data:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RiferimentoData\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"RiferimentoData\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI DI DETTAGLIO DELLE LINEE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<!--INIZIO DATI DI RIEPILOGO ALIQUOTE E NATURE-->\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiBeniServizi/DatiRiepilogo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<div id=\"riepilogo-aliquote-nature\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3>Dati di riepilogo per aliquota IVA e natura</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiBeniServizi/DatiRiepilogo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AliquotaIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAliquota IVA (%):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AliquotaIVA\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Natura\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNatura operazioni:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Natura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"NAT1\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Natura\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N1'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(escluse ex art.15)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N2'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non soggette)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N3'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(non imponibili)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N4'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(esenti)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N5'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(regime del margine / IVA non esposta in fattura)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N6'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(inversione contabile)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$NAT1='N7'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(IVA assolta in altro stato UE)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"SpeseAccessorie\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSpese accessorie:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"SpeseAccessorie\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Arrotondamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tArrotondamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Arrotondamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ImponibileImporto\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTotale imponibile/importo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ImponibileImporto\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Imposta\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTotale imposta:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Imposta\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"EsigibilitaIVA\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEsigibilità IVA:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"EsigibilitaIVA\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"EI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"EsigibilitaIVA\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$EI='I'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(esigibilità immediata)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$EI='D'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(esigibilità differita)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$EI='S'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(scissione dei pagamenti)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"RiferimentoNormativo\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRiferimento normativo:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"RiferimentoNormativo\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t<!--FINE DATI RIEPILOGO ALIQUOTE E NATURE-->\r\n\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI BENI E SERVIZI-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI VEICOLI-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiVeicoli\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"dati-veicoli\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati Veicoli ex art. 38 dl 331/1993</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiVeicoli\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Data\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData prima immatricolazione / iscrizione PR:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"Data\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TotalePercorso\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTotale percorso:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TotalePercorso\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI VEICOLI-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO DATI PAGAMENTO-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"DatiPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"dati-pagamento-condizioni\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati relativi al pagamento</h3>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DatiPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CondizioniPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCondizioni di pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CondizioniPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"CP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CondizioniPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$CP='TP01'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(pagamento a rate)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$CP='TP02'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(pagamento completo)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$CP='TP03'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(anticipo)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$CP=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DettaglioPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h5>Dettaglio pagamento</h5>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"DettaglioPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"Beneficiario\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBeneficiario del pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"Beneficiario\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ModalitaPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tModalità:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ModalitaPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:variable name=\"MP\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ModalitaPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:variable>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP01'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(contanti)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP02'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(assegno)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP03'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(assegno circolare)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP04'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(contanti presso Tesoreria)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP05'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(bonifico)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP06'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(vaglia cambiario)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP07'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(bollettino bancario)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP08'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(carta di pagamento)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP09'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(RID)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP10'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(RID utenze)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP11'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(RID veloce)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP12'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(RIBA)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP13'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(MAV)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP14'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(quietanza erario)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP15'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(giroconto su conti di contabilità speciale)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP16'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(domiciliazione bancaria)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP17'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(domiciliazione postale)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP18'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(bollettino di c/c postale)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP19'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(SEPA Direct Debit)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP20'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(SEPA Direct Debit CORE)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP21'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(SEPA Direct Debit B2B)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP='MP22'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(Trattenuta su somme già riscosse)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:when test=\"$MP=''\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:when>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>(!!! codice non previsto !!!)</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:otherwise>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:choose>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataRiferimentoTerminiPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDecorrenza termini di pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataRiferimentoTerminiPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataRiferimentoTerminiPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"GiorniTerminiPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTermini di pagamento (in giorni):\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"GiorniTerminiPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataScadenzaPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData scadenza pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataScadenzaPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataScadenzaPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ImportoPagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImporto:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ImportoPagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodUfficioPostale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice Ufficio Postale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodUfficioPostale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CognomeQuietanzante\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCognome del quietanzante:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CognomeQuietanzante\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NomeQuietanzante\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome del quietanzante:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NomeQuietanzante\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CFQuietanzante\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCF del quietanzante:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CFQuietanzante\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"TitoloQuietanzante\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTitolo del quietanzante:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"TitoloQuietanzante\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IstitutoFinanziario\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tIstituto finanziario:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IstitutoFinanziario\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"IBAN\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice IBAN:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"IBAN\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ABI\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice ABI:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ABI\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CAB\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice CAB:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CAB\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"BIC\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice BIC:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"BIC\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"ScontoPagamentoAnticipato\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSconto per pagamento anticipato:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"ScontoPagamentoAnticipato\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataLimitePagamentoAnticipato\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData limite per il pagamento anticipato:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataLimitePagamentoAnticipato\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataLimitePagamentoAnticipato\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"PenalitaPagamentiRitardati\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPenale per ritardato pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"PenalitaPagamentiRitardati\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DataDecorrenzaPenale\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tData di decorrenza della penale:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DataDecorrenzaPenale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:call-template name=\"FormatDate\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:with-param name=\"DateTime\" select=\"DataDecorrenzaPenale\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:call-template>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"CodicePagamento\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCodice pagamento:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"CodicePagamento\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE DATI PAGAMENTO-->\r\n\r\n\t\t\t\t\t\t\t\t\t<!--INIZIO ALLEGATI-->\r\n\t\t\t\t\t\t\t\t\t<xsl:if test=\"Allegati\">\r\n\t\t\t\t\t\t\t\t\t\t<div id=\"allegati\">\r\n\t\t\t\t\t\t\t\t\t\t\t<h3>Dati relativi agli allegati</h3>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t<xsl:for-each select=\"Allegati\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ul>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"NomeAttachment\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNome dell'allegato:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"NomeAttachment\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"AlgoritmoCompressione\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAlgoritmo di compressione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"AlgoritmoCompressione\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"FormatoAttachment\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFormato:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"FormatoAttachment\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:if test=\"DescrizioneAttachment\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDescrizione:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<xsl:value-of select=\"DescrizioneAttachment\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</xsl:if>\r\n\t\t\t\t\t\t\t\t\t<!--FINE ALLEGATI-->\r\n\r\n\t\t\t\t\t\t\t\t\t<div class=\"footer\">\r\n\t\t\t\t\t\t\t\t\t\tVersione prodotta con foglio di stile SdI\r\n\t\t\t\t\t\t\t\t\t\t<a href=\"http://www.fatturapa.gov.it\">www.fatturapa.gov.it</a>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</xsl:for-each>\r\n\t\t\t\t\t\t\t<!--FINE BODY-->\r\n\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</xsl:if>\r\n\t\t\t\t</div>\r\n\t\t\t</body>\r\n\t\t</html>\r\n\t</xsl:template>\r\n</xsl:stylesheet>"
  },
  {
    "path": "Test/Semplificata/AllegatiValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class AllegatiValidator : BaseClass<Allegati, FatturaElettronica.Validators.Semplificata.AllegatiValidator>\n    {\n        [TestMethod]\n        public void NomeAttachmentIsRequired()\n        {\n            AssertRequired(x => x.NomeAttachment);\n        }\n\n        [TestMethod]\n        public void NomeAttachmentMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.NomeAttachment, 1, 60);\n        }\n\n        [TestMethod]\n        public void NomeAttachmentMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.NomeAttachment);\n        }\n\n        [TestMethod]\n        public void AlgoritmoCompressioneIsOptional()\n        {\n            AssertOptional(x => x.AlgoritmoCompressione);\n        }\n\n        [TestMethod]\n        public void AlgoritmoCompressioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.AlgoritmoCompressione, 1, 60);\n        }\n\n        [TestMethod]\n        public void AlgoritmoCompressioneMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.AlgoritmoCompressione);\n        }\n\n        [TestMethod]\n        public void FormatoAttachmentIsOptional()\n        {\n            AssertOptional(x => x.FormatoAttachment);\n        }\n\n        [TestMethod]\n        public void FormatoAttachmentMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.FormatoAttachment, 1, 10);\n        }\n\n        [TestMethod]\n        public void FormatoAttachmentMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.FormatoAttachment);\n        }\n\n        [TestMethod]\n        public void DescrizioneAttachmentIsOptional()\n        {\n            AssertOptional(x => x.DescrizioneAttachment);\n        }\n\n        [TestMethod]\n        public void DescrizioneAttachmentMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.DescrizioneAttachment, 1, 100);\n        }\n\n        [TestMethod]\n        public void DescrizioneAttachmentMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.DescrizioneAttachment);\n        }\n\n        [TestMethod]\n        public void AttachmentIsRequired()\n        {\n            AssertRequired(x => x.Attachment);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/AltriDatiIdentificativiValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class AltriDatiIdentificativiValidator : BaseClass<AltriDatiIdentificativi,\n        FatturaElettronica.Validators.Semplificata.AltriDatiIdentificativiValidator>\n    {\n        [TestMethod]\n        public void DenominazioneIsRequiredWhenNomeCognomeIsEmpty()\n        {\n            Challenge.Nome = null;\n            Challenge.Cognome = null;\n\n            AssertRequired(x => x.Denominazione, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Denominazione, 1, 80, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Denominazione);\n        }\n\n        [TestMethod]\n        public void DenominazioneMustBeEmptyWhenNomeCognoneIsNotEmpty()\n        {\n            Challenge.Nome = \"nome\";\n\n            Challenge.Denominazione = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Denominazione).WithErrorCode(\"00200\");\n\n            Challenge.Denominazione = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Denominazione);\n\n            Challenge.Denominazione = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Denominazione);\n        }\n\n        [TestMethod]\n        public void NomeIsRequiredWhenDenominazioneIsEmpty()\n        {\n            Challenge.Denominazione = null;\n\n            AssertRequired(x => x.Nome, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Nome, 1, 60, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Nome);\n        }\n\n        [TestMethod]\n        public void NomeMustBeEmptyWhenDenominazioneIsNotEmpty()\n        {\n            Challenge.Denominazione = \"denominazione\";\n\n            Challenge.Nome = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Nome).WithErrorCode(\"00200\");\n\n            Challenge.Nome = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Nome);\n\n            Challenge.Nome = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Nome);\n        }\n\n        [TestMethod]\n        public void CognomeIsRequiredWhenDenominazioneIsEmpty()\n        {\n            Challenge.Denominazione = null;\n\n            AssertRequired(x => x.Cognome, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Cognome, 1, 60, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Cognome);\n        }\n\n        [TestMethod]\n        public void CognomeMustBeEmptyWhenDenominazioneIsNotEmpty()\n        {\n            Challenge.Denominazione = \"denominazione\";\n            Challenge.Cognome = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Cognome).WithErrorCode(\"00200\");\n\n            Challenge.Cognome = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Cognome);\n\n            Challenge.Cognome = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Cognome);\n        }\n\n        [TestMethod]\n        public void SedeHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Sede,\n                typeof(FatturaElettronica.Validators.Semplificata.SedeCessionarioCommittenteValidator));\n        }\n\n        [TestMethod]\n        public void StabileOrganizzazioneHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.StabileOrganizzazione,\n                typeof(FatturaElettronica.Validators.Semplificata.StabileOrganizzazioneValidator));\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/CedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class CedentePrestatoreValidator\n        : BaseClass<CedentePrestatore, FatturaElettronica.Validators.Semplificata.CedentePrestatoreValidator>\n    {\n        [TestMethod]\n        public void IdFiscaleIVAHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdFiscaleIVA,\n                typeof(Validators.IdFiscaleIVAValidator));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleIsOptional()\n        {\n            AssertOptional(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMustBeDigitsOrUpperCase()\n        {\n            AssertDigitsOrUppercase(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceFiscale, 11, 16, 'X', \"RegularExpressionValidator\");\n        }\n\n        [TestMethod]\n        public void DenominazioneIsRequiredWhenNomeCognomeIsEmpty()\n        {\n            Challenge.Nome = null;\n            Challenge.Cognome = null;\n\n            AssertRequired(x => x.Denominazione, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Denominazione, 1, 80, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Denominazione);\n        }\n\n        [TestMethod]\n        public void DenominazioneMustBeEmptyWhenNomeCognoneIsNotEmpty()\n        {\n            Challenge.Nome = \"nome\";\n\n            Challenge.Denominazione = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Denominazione).WithErrorCode(\"00200\");\n\n            Challenge.Denominazione = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Denominazione);\n\n            Challenge.Denominazione = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Denominazione);\n        }\n\n        [TestMethod]\n        public void NomeIsRequiredWhenDenominazioneIsEmpty()\n        {\n            Challenge.Denominazione = null;\n\n            AssertRequired(x => x.Nome, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Nome, 1, 60, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Nome);\n        }\n\n        [TestMethod]\n        public void NomeMustBeEmptyWhenDenominazioneIsNotEmpty()\n        {\n            Challenge.Denominazione = \"denominazione\";\n\n            Challenge.Nome = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Nome).WithErrorCode(\"00200\");\n\n            Challenge.Nome = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Nome);\n\n            Challenge.Nome = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Nome);\n        }\n\n        [TestMethod]\n        public void CognomeIsRequiredWhenDenominazioneIsEmpty()\n        {\n            Challenge.Denominazione = null;\n\n            AssertRequired(x => x.Cognome, expectedErrorCode: \"00200\");\n            AssertMinMaxLength(x => x.Cognome, 1, 60, expectedErrorCode: \"00200\");\n            AssertMustBeLatin1Supplement(x => x.Cognome);\n        }\n\n        [TestMethod]\n        public void CognomeMustBeEmptyWhenDenominazioneIsNotEmpty()\n        {\n            Challenge.Denominazione = \"denominazione\";\n            Challenge.Cognome = \"x\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Cognome).WithErrorCode(\"00200\");\n\n            Challenge.Cognome = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Cognome);\n\n            Challenge.Cognome = string.Empty;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Cognome);\n        }\n\n        [TestMethod]\n        public void SedeHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.Sede,\n                typeof(FatturaElettronica.Validators.Semplificata.SedeCedentePrestatoreValidator));\n        }\n\n        [TestMethod]\n        public void StabileOrganizzazioneHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(\n                x => x.StabileOrganizzazione,\n                typeof(FatturaElettronica.Validators.Semplificata.StabileOrganizzazioneValidator));\n        }\n\n        [TestMethod]\n        public void IscrizioneREAHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.IscrizioneREA,\n                typeof(FatturaElettronica.Validators.Semplificata.IscrizioneREAValidator));\n        }\n\n        [TestMethod]\n        public void RegimeFiscaleIsRequired()\n        {\n            AssertRequired(x => x.RegimeFiscale);\n        }\n\n        [TestMethod]\n        public void RegimeFiscaleOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<RegimeFiscale>(x => x.RegimeFiscale);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/CessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\nusing System.Linq;\nusing FatturaElettronica.Resources;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class CessionarioCommittenteValidator : BaseClass<CessionarioCommittente,\n        FatturaElettronica.Validators.Semplificata.CessionarioCommittenteValidator>\n    {\n        [TestMethod]\n        public void IdentificativiFiscaliHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdentificativiFiscali,\n                typeof(FatturaElettronica.Validators.Semplificata.IdentificativiFiscaliValidator));\n        }\n\n        [TestMethod]\n        public void IdentificativiFiscaliCannotBeEmpty()\n        {\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(ValidatorMessages.IdentificativiFiscaliEObbligatorio,\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"IdentificativiFiscali\")?.ErrorMessage);\n        }\n\n        [TestMethod]\n        public void AltriDatiIdentificativiHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.AltriDatiIdentificativi,\n                typeof(FatturaElettronica.Validators.Semplificata.AltriDatiIdentificativiValidator));\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Semplificata/DatiBeniServiziValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class DatiBeniServiziValidator : BaseClass<DatiBeniServizi,\n        FatturaElettronica.Validators.Semplificata.DatiBeniServiziValidator>\n    {\n        [TestMethod]\n        public void DescrizioneIsRequired()\n        {\n            AssertRequired(x => x.Descrizione);\n        }\n\n        [TestMethod]\n        public void DescrizioneMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.Descrizione, 1, 1000);\n        }\n\n        [TestMethod]\n        public void DescrizioneMustBeLatin1Supplement()\n        {\n            AssertMustBeLatin1Supplement(x => x.Descrizione);\n        }\n\n        [TestMethod]\n        public void ImportoIsRequired()\n        {\n            AssertRequired(x => x.Importo);\n        }\n\n        [TestMethod]\n        public void DatiIVAHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.DatiIVA,\n                typeof(FatturaElettronica.Validators.Semplificata.DatiIVAValidator));\n        }\n\n        [TestMethod]\n        public void NaturaOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<NaturaSemplificata>(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void NaturaValidateAgainstError00401()\n        {\n            Challenge.DatiIVA.Aliquota = 22m;\n            Challenge.DatiIVA.Imposta = 0m;\n            Challenge.Natura = \"N1\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00401\");\n\n            Challenge.DatiIVA.Aliquota = 0m;\n            Challenge.DatiIVA.Imposta = 22m;\n            Challenge.Natura = \"N1\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00401\");\n\n            Challenge.DatiIVA.Aliquota = 0m;\n            Challenge.DatiIVA.Imposta = 0m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Natura);\n        }\n\n        [TestMethod]\n        public void NaturaValidateAgainstError00400()\n        {\n            Challenge.DatiIVA.Aliquota = 0m;\n            Challenge.DatiIVA.Imposta = 0m;\n            Challenge.Natura = string.Empty;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00400\");\n\n            Challenge.DatiIVA.Aliquota = 0m;\n            Challenge.DatiIVA.Imposta = 0m;\n            Challenge.Natura = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Natura).WithErrorCode(\"00400\");\n        }\n\n        [TestMethod]\n        public void RiferimentoNormativoIsOptional()\n        {\n            AssertOptional(x => x.RiferimentoNormativo);\n        }\n\n        [TestMethod]\n        public void RiferimentoNormativoMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.RiferimentoNormativo, 1, 100);\n        }\n\n        [TestMethod]\n        public void RiferimentoNormativoMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.RiferimentoNormativo);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/DatiGeneraliDocumentoValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class DatiGeneraliDocumentoValidator\n        : BaseClass<DatiGeneraliDocumento, FatturaElettronica.Validators.Semplificata.DatiGeneraliDocumentoValidator>\n    {\n        [TestMethod]\n        public void BolloVirtualeIsOptional()\n        {\n            AssertOptional(x => x.BolloVirtuale, emptyStringAllowed: false);\n        }\n\n        [TestMethod]\n        public void BolloVirtualeOnlyAcceptsSIValue()\n        {\n            AssertOnlyAcceptsSIValue(x => x.BolloVirtuale);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/DatiIVAValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class DatiIVAValidator : BaseClass<DatiIVA, FatturaElettronica.Validators.Semplificata.DatiIVAValidator>\n    {\n        [TestMethod]\n        public void AliquotaOImportoRequired()\n        {\n            Challenge.Imposta = null;\n            Challenge.Aliquota = null;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Imposta);\n            result.ShouldHaveValidationErrorFor(x => x.Aliquota);\n\n            Challenge.Aliquota = null;\n            Challenge.Imposta = 0m;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Imposta);\n            result.ShouldNotHaveValidationErrorFor(x => x.Aliquota);\n\n            Challenge.Aliquota = 0m;\n            Challenge.Imposta = null;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Imposta);\n            result.ShouldNotHaveValidationErrorFor(x => x.Aliquota);\n        }\n\n        [TestMethod]\n        public void AliquotaShouldBeLessOrEqualTo100()\n        {\n            Challenge.Imposta = null;\n            Challenge.Aliquota = 101;\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.Aliquota);\n\n            Challenge.Imposta = null;\n            Challenge.Aliquota = 100;\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.Aliquota);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/DatiTrasmissioneValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.DatiTrasmissione;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class DatiTrasmissioneValidator\n        : BaseClass<DatiTrasmissione, FatturaElettronica.Validators.Semplificata.DatiTrasmissioneValidator>\n    {\n        [TestMethod]\n        public void IdTrasmittenteHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(x => x.IdTrasmittente,\n                typeof(Validators.IdTrasmittenteValidator));\n        }\n\n        [TestMethod]\n        public void ProgressivoInvioIsRequired()\n        {\n            AssertRequired(x => x.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void ProgressivoInvioMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.ProgressivoInvio, 1, 10);\n        }\n\n        [TestMethod]\n        public void ProgressivoInvioMustBeBasicLatin()\n        {\n            AssertMustBeBasicLatin(x => x.ProgressivoInvio);\n        }\n\n        [TestMethod]\n        public void FormatoTrasmissioneIsRequired()\n        {\n            AssertRequired(x => x.FormatoTrasmissione);\n        }\n\n        [TestMethod]\n        public void FormatoTrasmissioneOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<FormatoTrasmissione>(x => x.FormatoTrasmissione, expectedErrorCode: \"00428\");\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioIsRequired()\n        {\n            AssertRequired(x => x.CodiceDestinatario);\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioMustBeValid()\n        {\n            Challenge.CodiceDestinatario = \"hello\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceDestinatario);\n\n            Challenge.CodiceDestinatario = \"Subm70N\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceDestinatario);\n\n            Challenge.CodiceDestinatario = \"Sub-70N\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceDestinatario);\n\n            Challenge.CodiceDestinatario = \"SUBM70N\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.CodiceDestinatario);\n        }\n\n        [TestMethod]\n        public void CodiceDestinatarioWhenFormatoTrasmissioneHasValueFSM10()\n        {\n            // Quando FormatoTrasmissione = FSM10 ProgressivioInvio.Lenght = 7.\n            Challenge.FormatoTrasmissione = Defaults.FormatoTrasmissione.Semplificata;\n            AssertLength(x => x.CodiceDestinatario, 7, expectedErrorCode: \"00311\", filler: 'X');\n        }\n\n        [TestMethod]\n        public void PECDestinatarioIsOptional()\n        {\n            AssertOptional(x => x.PECDestinatario);\n        }\n\n        [TestMethod]\n        public void PECDestinatarioMustBeValid()\n        {\n            Challenge.PECDestinatario = \"not really\";\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.PECDestinatario);\n            \n            Challenge.PECDestinatario = \"maybe@we.can\";\n            result = Validator.TestValidate(Challenge);\n            result.ShouldNotHaveValidationErrorFor(x => x.PECDestinatario);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/FatturaCreateInstance.cs",
    "content": "﻿using FatturaElettronica.Defaults;\nusing FatturaElettronica.Semplificata;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class FatturaSemplificataCreateInstance\n    {\n        FatturaSemplificata _challenge;\n\n        [TestMethod]\n        public void CreateSemplificataInstance()\n        {\n            _challenge = FatturaSemplificata.CreateInstance(Instance.Semplificata);\n\n            Assert.AreEqual(FormatoTrasmissione.Semplificata,\n                _challenge.FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione);\n            Assert.AreEqual(\"0000000\", _challenge.FatturaElettronicaHeader.DatiTrasmissione.CodiceDestinatario);\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/FatturaElettronicaBodyValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class FatturaElettronicaBodyValidator\n        : BaseClass<FatturaElettronicaBody, FatturaElettronica.Validators.Semplificata.FatturaElettronicaBodyValidator>\n    {\n        [TestMethod]\n        public void DatiGeneraliHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiGenerali, typeof(FatturaElettronica.Validators.Semplificata.DatiGeneraliValidator));\n        }\n\n        [TestMethod]\n        public void DatiBeniServiziHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiBeniServizi, typeof(FatturaElettronica.Validators.Semplificata.DatiBeniServiziValidator));\n        }\n\n        [TestMethod]\n        public void DatiBeniServiziCannotBeEmpty()\n        {\n            var r = Validator.Validate(Challenge);\n            Assert.AreEqual(ValidatorMessages.DatiBeniServiziEObbligatorio,\n                r.Errors.FirstOrDefault(x => x.PropertyName == \"DatiBeniServizi\")?.ErrorMessage);\n        }\n\n        [TestMethod]\n        public void AllegatiHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.Allegati, typeof(FatturaElettronica.Validators.Semplificata.AllegatiValidator));\n        }\n    }\n}\n"
  },
  {
    "path": "Test/Semplificata/FatturaElettronicaHeaderValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Semplificata.FatturaElettronicaHeader;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class FatturaElettronicaHeaderValidator\n        : BaseClass<FatturaElettronicaHeader,\n            FatturaElettronica.Validators.Semplificata.FatturaElettronicaHeaderValidator>\n    {\n        [TestMethod]\n        public void DatiTramissioneHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.DatiTrasmissione, typeof(FatturaElettronica.Validators.Semplificata.DatiTrasmissioneValidator));\n        }\n\n        [TestMethod]\n        public void CedentePrestatoreHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.CedentePrestatore,\n                typeof(FatturaElettronica.Validators.Semplificata.CedentePrestatoreValidator));\n        }\n\n        [TestMethod]\n        public void CessionarioCommittenteHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.CessionarioCommittente,\n                typeof(FatturaElettronica.Validators.Semplificata.CessionarioCommittenteValidator));\n        }\n\n        [TestMethod]\n        public void SoggettoEmittenteIsOptional()\n        {\n            AssertOptional(x => x.SoggettoEmittente);\n        }\n\n        [TestMethod]\n        public void SoggettoEmittenteOnlyAcceptsTableValues()\n        {\n            AssertOnlyAcceptsTableValues<SoggettoEmittente>(x => x.SoggettoEmittente);\n        }\n\n        [TestMethod]\n        public void HeaderValidateAgainstError00476()\n        {\n            Challenge.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdPaese = \"FR\";\n            Challenge.CedentePrestatore.IdFiscaleIVA.IdPaese = \"FR\";\n            var result = Validator.Validate(Challenge);\n            Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n\n            Challenge.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.CedentePrestatore.IdFiscaleIVA.IdPaese = \"FR\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n\n            Challenge.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdPaese = \"FT\";\n            Challenge.CedentePrestatore.IdFiscaleIVA.IdPaese = \"IT\";\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n            \n            Challenge.CedentePrestatore.IdFiscaleIVA.IdPaese = \"IT\";\n            Challenge.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdPaese = null;\n            result = Validator.Validate(Challenge);\n            Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00476\"));\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/FatturaSemplificataValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Common;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Semplificata;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class FatturaSemplificataValidator : BaseClass<FatturaSemplificata,\n        FatturaElettronica.Validators.Semplificata.FatturaSemplificataValidator>\n    {\n        [TestInitialize]\n        public new void Init()\n        {\n            Validator = new();\n            Challenge = new();\n        }\n\n        [TestMethod]\n        public void FatturaElettronicaHeaderHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.FatturaElettronicaHeader,\n                typeof(FatturaElettronica.Validators.Semplificata.FatturaElettronicaHeaderValidator));\n        }\n\n        [TestMethod]\n        public void FatturaElettronicaBodyHasChildValidator()\n        {\n            Validator.ShouldHaveChildValidator(\n                x => x.FatturaElettronicaBody,\n                typeof(FatturaElettronica.Validators.Semplificata.FatturaElettronicaBodyValidator));\n        }\n\n        [TestMethod]\n        public void FatturaValidateAgainstError00471()\n        {\n            var tipiDocumento = new[] { \"TD07\" };\n            var cedente = Challenge.FatturaElettronicaHeader.CedentePrestatore;\n            var cessionario = Challenge.FatturaElettronicaHeader.CessionarioCommittente;\n            var id123 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"123\" };\n            var id456 = new IdFiscaleIVA { IdPaese = \"IT\", IdCodice = \"456\" };\n\n            foreach (var tipoDocumento in tipiDocumento)\n            {\n                var body = new FatturaElettronicaBody();\n                body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento = tipoDocumento;\n                Challenge.FatturaElettronicaBody.Add(body);\n\n                cedente.IdFiscaleIVA = id123;\n                cessionario.IdentificativiFiscali.IdFiscaleIVA = id123;\n                var result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00471\"));\n\n                cedente.IdFiscaleIVA = id456;\n                result = Challenge.Validate();\n                Assert.IsNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00471\"));\n\n                cedente.IdFiscaleIVA = new();\n                cessionario.IdentificativiFiscali.IdFiscaleIVA = new();\n                result = Challenge.Validate();\n                Assert.IsNotNull(result.Errors.FirstOrDefault(x => x.ErrorCode == \"00471\"));\n            }\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/IdentificativiFiscaliValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation.TestHelper;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class IdentificativiFiscaliValidator : BaseClass<IdentificativiFiscali,\n        FatturaElettronica.Validators.Semplificata.IdentificativiFiscaliValidator>\n    {\n        [TestMethod]\n        public void IdFiscaleIVAHasChildValidator()\n        {\n            Validator.ShouldHaveDelegatePropertyChildValidator(x => x.IdFiscaleIVA,\n                typeof(Validators.IdFiscaleIVAValidator));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleIsOptional()\n        {\n            Challenge.IdFiscaleIVA.IdCodice = \"x\";\n            AssertOptional(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMustBeDigitsOrUpperCase()\n        {\n            AssertDigitsOrUppercase(x => x.CodiceFiscale);\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMinMaxLength()\n        {\n            AssertMinMaxLength(x => x.CodiceFiscale, 11, 16, 'X', \"RegularExpressionValidator\");\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleMustBeInUpperCase()\n        {\n            AssertMinMaxLength(x => x.CodiceFiscale, 11, 16, 'X', \"RegularExpressionValidator\");\n        }\n\n        [TestMethod]\n        public void IdFiscaleIVAIsOptional()\n        {\n            Challenge.CodiceFiscale = \"x\";\n            Assert.IsTrue(Challenge.IdFiscaleIVA.IsEmpty());\n\n            var r = Validator.Validate(Challenge);\n            Assert.IsNull(r.Errors.FirstOrDefault(x => x.PropertyName == \"IdFiscaleIVA\"));\n        }\n\n        [TestMethod]\n        public void CodiceFiscaleOrIdFiscaleIVAMustHaveValue()\n        {\n            Assert.IsTrue(string.IsNullOrEmpty(Challenge.CodiceFiscale));\n            Assert.IsTrue(Challenge.IdFiscaleIVA.IsEmpty());\n\n            var result = Validator.TestValidate(Challenge);\n            result.ShouldHaveValidationErrorFor(x => x.CodiceFiscale).WithErrorCode(\"00417\");\n        }\n    }\n}"
  },
  {
    "path": "Test/Semplificata/XMLDeSerialize.cs",
    "content": "﻿using System.IO;\nusing System.Xml;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Semplificata;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test.Semplificata\n{\n    [TestClass]\n    public class XmlDeSerialize\n    {\n        [TestMethod]\n        public void SerializeFatturaSemplificataHeader()\n        {\n            SerializeAndAssertRootElementAttributes(FatturaSemplificata.CreateInstance(Instance.Semplificata));\n        }\n\n        [TestMethod]\n        public void DeserializeAndThenSerializeOfficialSample()\n        {\n            DeserializeAndThenSerialize(\"Samples/IT01234567890_FSM10.xml\");\n        }\n\n        private void DeserializeAndThenSerialize(string filename)\n        {\n            var f = Deserialize(filename);\n\n            Assert.IsTrue(f.Validate().IsValid);\n            ValidateInvoice(f);\n\n            // Serialize it back to disk, to another file\n            using (var w = XmlWriter.Create(\"challenge.xml\", new() {Indent = true}))\n            {\n                f.WriteXml(w);\n            }\n\n            // Deserialize the new file and validate it\n            var f2 = Deserialize(\"challenge.xml\");\n\n            Assert.IsTrue(f2.Validate().IsValid);\n            ValidateInvoice(f2);\n\n            File.Delete(\"challenge.xml\");\n        }\n\n        private FatturaSemplificata Deserialize(string fileName)\n        {\n            var f = FatturaSemplificata.CreateInstance(Instance.Semplificata);\n            using (var r = XmlReader.Create(fileName, new() {IgnoreWhitespace = true}))\n            {\n                f.ReadXml(r);\n            }\n\n            return f;\n        }\n\n        private void ValidateInvoice(FatturaSemplificata f)\n        {\n            var header = f.FatturaElettronicaHeader;\n\n            // DatiTrasmissione\n            Assert.AreEqual(\"00001\", header.DatiTrasmissione.ProgressivoInvio);\n            Assert.AreEqual(\"0000000\", header.DatiTrasmissione.CodiceDestinatario);\n\n            Assert.AreEqual(\"IT\", header.DatiTrasmissione.IdTrasmittente.IdPaese);\n            Assert.AreEqual(\"01234567890\", header.DatiTrasmissione.IdTrasmittente.IdCodice);\n            Assert.AreEqual(\"betagamma@pec.it\", header.DatiTrasmissione.PECDestinatario);\n\n            // CedentePrestatore\n            Assert.AreEqual(\"IT\", header.CedentePrestatore.IdFiscaleIVA.IdPaese);\n            Assert.AreEqual(\"01234567890\", header.CedentePrestatore.IdFiscaleIVA.IdCodice);\n            Assert.AreEqual(\"SOCIETA' ALPHA SRL\", header.CedentePrestatore.Denominazione);\n            Assert.AreEqual(\"RF01\", header.CedentePrestatore.RegimeFiscale);\n            Assert.AreEqual(\"VIALE ROMA 543\", header.CedentePrestatore.Sede.Indirizzo);\n            Assert.AreEqual(\"07100\", header.CedentePrestatore.Sede.CAP);\n            Assert.AreEqual(\"SASSARI\", header.CedentePrestatore.Sede.Comune);\n            Assert.AreEqual(\"IT\", header.CedentePrestatore.Sede.Nazione);\n            // CessionarioCommittente\n            Assert.AreEqual(\"09876543210\", header.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdCodice);\n            Assert.AreEqual(\"IT\", header.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdPaese);\n            Assert.AreEqual(\"BETA GAMMA\", header.CessionarioCommittente.AltriDatiIdentificativi.Denominazione);\n            Assert.AreEqual(\"VIA TORINO 38-B\", header.CessionarioCommittente.AltriDatiIdentificativi.Sede.Indirizzo);\n            Assert.AreEqual(\"00145\", header.CessionarioCommittente.AltriDatiIdentificativi.Sede.CAP);\n            Assert.AreEqual(\"ROMA\", header.CessionarioCommittente.AltriDatiIdentificativi.Sede.Comune);\n            Assert.AreEqual(\"RM\", header.CessionarioCommittente.AltriDatiIdentificativi.Sede.Provincia);\n            Assert.AreEqual(\"IT\", header.CessionarioCommittente.AltriDatiIdentificativi.Sede.Nazione);\n\n            var body = f.FatturaElettronicaBody[0];\n            // DatiGeneraliDocumento\n            Assert.AreEqual(\"TD07\", body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento);\n            Assert.AreEqual(\"EUR\", body.DatiGenerali.DatiGeneraliDocumento.Divisa);\n            Assert.AreEqual(new(2019, 01, 01), body.DatiGenerali.DatiGeneraliDocumento.Data);\n            Assert.AreEqual(\"123\", body.DatiGenerali.DatiGeneraliDocumento.Numero);\n            // DatiBeniServizi\n            Assert.AreEqual(\n                \"LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI\",\n                body.DatiBeniServizi[0].Descrizione);\n            Assert.AreEqual(25m, body.DatiBeniServizi[0].Importo);\n            Assert.AreEqual(22m, body.DatiBeniServizi[0].DatiIVA.Aliquota);\n            Assert.AreEqual(null, body.DatiBeniServizi[0].Natura);\n            Assert.AreEqual(null, body.DatiBeniServizi[0].RiferimentoNormativo);\n        }\n\n        private void SerializeAndAssertRootElementAttributes(FatturaBase f)\n        {\n            using (var w = XmlWriter.Create(\"test\", new() {Indent = true}))\n            {\n                f.WriteXml(w);\n            }\n\n            using (var r = XmlReader.Create(\"test\"))\n            {\n                while (r.Read())\n                {\n                    if (r.NodeType == XmlNodeType.Element)\n                    {\n                        if (r.Prefix == RootElement.Prefix && r.LocalName == \"FatturaElettronicaSemplificata\")\n                        {\n                            Assert.AreEqual(\n                                ((FatturaSemplificata) f).FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione,\n                                r.GetAttribute(\"versione\"));\n                            Assert.AreEqual(\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0\",\n                                r.NamespaceURI);\n                            foreach (var a in RootElement.ExtraAttributes)\n                            {\n                                Assert.AreEqual(a.value,\n                                    r.GetAttribute($\"{a.Prefix}:{a.LocalName}\"));\n                            }\n\n                            break;\n                        }\n                    }\n                }\n            }\n\n            File.Delete(\"test\");\n        }\n    }\n}"
  },
  {
    "path": "Test/TestHelpers.cs",
    "content": "﻿using System;\nusing System.Linq;\nusing System.Linq.Expressions;\nusing FluentValidation;\nusing FluentValidation.Internal;\nusing FluentValidation.TestHelper;\nusing FluentValidation.Validators;\n\nnamespace FatturaElettronica.Test\n{\n    public static class TestHelpers\n    {\n        public static void ShouldHaveDelegatePropertyChildValidator<T, TProperty>(this IValidator<T> validator,\n            Expression<Func<T, TProperty>> expression, Type propertyValidatorType)\n        {\n            var descriptor = validator.CreateDescriptor();\n            var expressionMemberName = expression.GetMember().Name;\n            var matchingValidators = descriptor.GetValidatorsForMember(expressionMemberName).ToArray();\n            var propertyValidatorTypes = matchingValidators\n                .Select(v => ((ChildValidatorAdaptor<T, TProperty>)v.Validator).ValidatorType);\n\n            if (propertyValidatorTypes.All(x => x != propertyValidatorType))\n            {\n                throw new ValidationTestException(\n                    $\"Expected property '{expressionMemberName}' to have a property validator of type '{propertyValidatorType.Name}.'\");\n            }\n        }\n    }\n}"
  },
  {
    "path": "Test/XMLDeSerialize.cs",
    "content": "﻿using System;\nusing System.IO;\nusing System.Net.NetworkInformation;\nusing System.Xml;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria;\nusing Microsoft.VisualStudio.TestTools.UnitTesting;\n\nnamespace FatturaElettronica.Test\n{\n    [TestClass]\n    public class XMLDeSerialize\n    {\n        [TestMethod]\n        public void SerializePrivatiHeader()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n\n            Assert.IsNull(f.SistemaEmittente);\n            SerializeAndAssertRootElementAttributes(f);\n\n            f.SistemaEmittente = \"sistema emittente\";\n            SerializeAndAssertRootElementAttributes(f);\n        }\n\n        [TestMethod]\n        public void SerializePubblicaAmministrazioneHeader()\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.PubblicaAmministrazione);\n\n            Assert.IsNull(f.SistemaEmittente);\n            SerializeAndAssertRootElementAttributes(f);\n\n            f.SistemaEmittente = \"sistema emittente\";\n            SerializeAndAssertRootElementAttributes(f);\n        }\n\n        [TestMethod]\n        public void DeserializeAndThenSerializeOfficialPASample()\n        {\n            // Deserialize from an official example file \n            // (downloaded from http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm)\n            DeserializeAndThenSerialize(\"Samples/IT01234567890_FPA02.xml\", FormatoTrasmissione.PubblicaAmministrazione);\n        }\n\n        [TestMethod]\n        public void DeserializeAndThenSerializeOfficialPRSample()\n        {\n            // Deserialize from an official example file \n            // (downloaded from http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm)\n            DeserializeAndThenSerialize(\"Samples/IT01234567890_FPR02.xml\", FormatoTrasmissione.Privati);\n        }\n\n        [TestMethod]\n        public void DeserializeShouldRewindStreams()\n        {\n            using var signedStream = new FileStream(\"Samples/IT02182030391_31.xml.p7m\", FileMode.Open, FileAccess.Read);\n            signedStream.Position = 283; //Assumption is reading would fail if the stream were not rewound\n            var invoice = FatturaBase.CreateInstanceFromXml(signedStream, false);\n            Assert.IsTrue(invoice.Validate().IsValid && invoice.GetFormatoTrasmissione() == FormatoTrasmissione.Privati);\n        \n            using var baseEncodedStream = new FileStream(\"Samples/IT02182030391_31.Base64.xml.p7m\", FileMode.Open, FileAccess.Read);\n            baseEncodedStream.Position = 283;//Assumption is reading would fail if the stream were not rewound\n            var baseEncodedInvoice = FatturaBase.CreateInstanceFromXml(baseEncodedStream, false);\n            Assert.IsTrue(baseEncodedInvoice.Validate().IsValid && baseEncodedInvoice.GetFormatoTrasmissione() == FormatoTrasmissione.Privati);\n        }\n\n        [TestMethod]\n        public void DeserializeAnyType()\n        {\n            \n            var f = DeserializeAny(\"Samples/IT01234567890_FPA02.xml\");\n            Assert.IsTrue(f.Validate().IsValid &&\n                          f.GetFormatoTrasmissione() == FormatoTrasmissione.PubblicaAmministrazione);\n            Assert.AreEqual(\"abc\", f.SistemaEmittente);\n            \n            f = DeserializeAny(\"Samples/IT01234567890_FPR02.xml\");\n            Assert.IsTrue(f.Validate().IsValid && f.GetFormatoTrasmissione() == FormatoTrasmissione.Privati);\n            Assert.AreEqual(\"abc\", f.SistemaEmittente);\n            \n            f = DeserializeAny(\"Samples/IT01234567890_FSM10.xml\");\n            Assert.IsTrue(f.Validate().IsValid && f.GetFormatoTrasmissione() == FormatoTrasmissione.Semplificata);\n            Assert.AreEqual(\"abc\", f.SistemaEmittente);\n            \n            f = DeserializeAny(\"Samples/IT02182030391_31.xml.p7m\");\n            Assert.IsTrue(f.Validate().IsValid && f.GetFormatoTrasmissione() == FormatoTrasmissione.Privati);\n            f = DeserializeAny(\"Samples/IT02182030391_31.Base64.xml.p7m\");\n            Assert.IsTrue(f.Validate().IsValid && f.GetFormatoTrasmissione() == FormatoTrasmissione.Privati);\n        }\n\n        private void DeserializeAndThenSerialize(string filename, string expectedFormat)\n        {\n            var f = Deserialize(filename);\n\n            Assert.IsTrue(f.Validate().IsValid);\n            ValidateInvoice(f, expectedFormat);\n\n            // Serialize it back to disk, to another file\n            using (var w = XmlWriter.Create(\"challenge.xml\", new() {Indent = true}))\n            {\n                f.WriteXml(w);\n            }\n\n            // Deserialize the new file and validate it\n            var f2 = Deserialize(\"challenge.xml\");\n\n            Assert.IsTrue(f2.Validate().IsValid);\n            ValidateInvoice(f2, expectedFormat);\n\n            File.Delete(\"challenge.xml\");\n        }\n\n        private FatturaOrdinaria Deserialize(string fileName)\n        {\n            var f = FatturaOrdinaria.CreateInstance(Instance.Privati);\n            using (var r = XmlReader.Create(fileName, new() {IgnoreWhitespace = true}))\n            {\n                f.ReadXml(r);\n            }\n\n            return f;\n        }\n\n        [TestMethod]\n        public void DeserializeWindows1252EncodedXml()\n        {\n            var f = DeserializeAny(\"Samples/IT02182030391_32.windows-1252.xml\");\n            Assert.AreEqual(FormatoTrasmissione.Privati, f.GetFormatoTrasmissione());\n        }\n\n        private FatturaBase DeserializeAny(string fileName)\n        {\n            using var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);\n            return FatturaBase.CreateInstanceFromXml(fileStream);\n        }\n\n        private void ValidateInvoice(FatturaOrdinaria f, string expectedFormat)\n        {\n            var header = f.FatturaElettronicaHeader;\n\n            // DatiTrasmissione\n            Assert.AreEqual(\"00001\", header.DatiTrasmissione.ProgressivoInvio);\n            Assert.AreEqual((expectedFormat == FormatoTrasmissione.Privati) ? \"0000000\" : \"AAAAAA\",\n                header.DatiTrasmissione.CodiceDestinatario);\n\n            Assert.AreEqual(\"IT\", header.DatiTrasmissione.IdTrasmittente.IdPaese);\n            Assert.AreEqual(\"01234567890\", header.DatiTrasmissione.IdTrasmittente.IdCodice);\n            Assert.AreEqual((expectedFormat == FormatoTrasmissione.Privati) ? \"betagamma@pec.it\" : null,\n                header.DatiTrasmissione.PECDestinatario);\n\n            // CedentePrestatore\n            Assert.AreEqual(\"IT\", header.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese);\n            Assert.AreEqual(\"01234567890\", header.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdCodice);\n            Assert.AreEqual(\"SOCIETA' ALPHA SRL\", header.CedentePrestatore.DatiAnagrafici.Anagrafica.Denominazione);\n            Assert.AreEqual(\"Titolo\", header.CedentePrestatore.DatiAnagrafici.Anagrafica.Titolo);\n            Assert.AreEqual(\"RF01\", header.CedentePrestatore.DatiAnagrafici.RegimeFiscale);\n            Assert.AreEqual(\"VIALE ROMA 543\", header.CedentePrestatore.Sede.Indirizzo);\n            Assert.AreEqual(\"07100\", header.CedentePrestatore.Sede.CAP);\n            Assert.AreEqual(\"SASSARI\", header.CedentePrestatore.Sede.Comune);\n            Assert.AreEqual(\"IT\", header.CedentePrestatore.Sede.Nazione);\n            // CessionarioCommittente\n            Assert.AreEqual(\"09876543210\", header.CessionarioCommittente.DatiAnagrafici.CodiceFiscale);\n            Assert.AreEqual((expectedFormat == FormatoTrasmissione.Privati) ? \"BETA GAMMA\" : \"AMMINISTRAZIONE BETA\",\n                header.CessionarioCommittente.DatiAnagrafici.Anagrafica.Denominazione);\n            Assert.AreEqual(\"Titolo\", header.CessionarioCommittente.DatiAnagrafici.Anagrafica.Titolo);\n            Assert.AreEqual(\"VIA TORINO 38-B\", header.CessionarioCommittente.Sede.Indirizzo);\n            Assert.AreEqual(\"00145\", header.CessionarioCommittente.Sede.CAP);\n            Assert.AreEqual(\"ROMA\", header.CessionarioCommittente.Sede.Comune);\n            Assert.AreEqual(\"RM\", header.CessionarioCommittente.Sede.Provincia);\n            Assert.AreEqual(\"IT\", header.CessionarioCommittente.Sede.Nazione);\n\n            var body = f.FatturaElettronicaBody[0];\n            // DatiGeneraliDocumento\n            Assert.AreEqual(\"TD01\", body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento);\n            Assert.AreEqual(\"EUR\", body.DatiGenerali.DatiGeneraliDocumento.Divisa);\n            Assert.AreEqual(new(2014, 12, 18), body.DatiGenerali.DatiGeneraliDocumento.Data);\n            Assert.AreEqual(\"123\", body.DatiGenerali.DatiGeneraliDocumento.Numero);\n            Assert.AreEqual(\n                \"LA FATTURA FA RIFERIMENTO AD UNA OPERAZIONE AAAA BBBBBBBBBBBBBBBBBB CCC DDDDDDDDDDDDDDD E FFFFFFFFFFFFFFFFFFFF GGGGGGGGGG HHHHHHH II LLLLLLLLLLLLLLLLL MMM NNNNN OO PPPPPPPPPPP QQQQ RRRR SSSSSSSSSSSSSS\",\n                body.DatiGenerali.DatiGeneraliDocumento.Causale[0]);\n            Assert.AreEqual(\n                \"SEGUE DESCRIZIONE CAUSALE NEL CASO IN CUI NON SIANO STATI SUFFICIENTI 200 CARATTERI AAAAAAAAAAA BBBBBBBBBBBBBBBBB\",\n                body.DatiGenerali.DatiGeneraliDocumento.Causale[1]);\n            // DatiOrdineAcquisto\n            Assert.AreEqual(1, body.DatiGenerali.DatiOrdineAcquisto[0].RiferimentoNumeroLinea[0]);\n            Assert.AreEqual(\"66685\", body.DatiGenerali.DatiOrdineAcquisto[0].IdDocumento);\n            Assert.AreEqual(\"1\", body.DatiGenerali.DatiOrdineAcquisto[0].NumItem);\n\n            if (expectedFormat == FormatoTrasmissione.PubblicaAmministrazione)\n            {\n                Assert.AreEqual(\"123abc\", body.DatiGenerali.DatiOrdineAcquisto[0].CodiceCUP);\n                Assert.AreEqual(\"456def\", body.DatiGenerali.DatiOrdineAcquisto[0].CodiceCIG);\n                // DatiContratto\n                Assert.AreEqual(1, body.DatiGenerali.DatiContratto[0].RiferimentoNumeroLinea[0]);\n                Assert.AreEqual(\"123\", body.DatiGenerali.DatiContratto[0].IdDocumento);\n                Assert.AreEqual(new(2016, 9, 1), body.DatiGenerali.DatiContratto[0].Data.Value);\n                Assert.AreEqual(\"5\", body.DatiGenerali.DatiContratto[0].NumItem);\n                Assert.AreEqual(\"123abc\", body.DatiGenerali.DatiContratto[0].CodiceCUP);\n                Assert.AreEqual(\"456def\", body.DatiGenerali.DatiContratto[0].CodiceCIG);\n                // DatiConvenzione\n                Assert.AreEqual(1, body.DatiGenerali.DatiConvenzione[0].RiferimentoNumeroLinea[0]);\n                Assert.AreEqual(\"456\", body.DatiGenerali.DatiConvenzione[0].IdDocumento);\n                Assert.AreEqual(\"5\", body.DatiGenerali.DatiConvenzione[0].NumItem);\n                Assert.AreEqual(\"123abc\", body.DatiGenerali.DatiConvenzione[0].CodiceCUP);\n                Assert.AreEqual(\"456def\", body.DatiGenerali.DatiConvenzione[0].CodiceCIG);\n                // DatiRicezione\n                Assert.AreEqual(1, body.DatiGenerali.DatiRicezione[0].RiferimentoNumeroLinea[0]);\n                Assert.AreEqual(\"789\", body.DatiGenerali.DatiRicezione[0].IdDocumento);\n                Assert.AreEqual(\"5\", body.DatiGenerali.DatiRicezione[0].NumItem);\n                Assert.AreEqual(\"123abc\", body.DatiGenerali.DatiRicezione[0].CodiceCUP);\n                Assert.AreEqual(\"456def\", body.DatiGenerali.DatiRicezione[0].CodiceCIG);\n            }\n\n            // DatiAnagraficiVettore\n            Assert.AreEqual(\"IT\", body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore.IdFiscaleIVA.IdPaese);\n            Assert.AreEqual(\"24681012141\", body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore.IdFiscaleIVA.IdCodice);\n            Assert.AreEqual(\"Trasporto spa\",\n                body.DatiGenerali.DatiTrasporto.DatiAnagraficiVettore.Anagrafica.Denominazione);\n            // DataOraConsegna\n            Assert.AreEqual(new DateTime(2012, 10, 22, 16, 46, 12), body.DatiGenerali.DatiTrasporto.DataOraConsegna);\n            // DatiBeniServizi\n            Assert.AreEqual(1, body.DatiBeniServizi.DettaglioLinee[0].NumeroLinea);\n            Assert.AreEqual(\n                \"LA DESCRIZIONE DELLA FORNITURA PUO' SUPERARE I CENTO CARATTERI CHE RAPPRESENTAVANO IL PRECEDENTE LIMITE DIMENSIONALE. TALE LIMITE NELLA NUOVA VERSIONE E' STATO PORTATO A MILLE CARATTERI\",\n                body.DatiBeniServizi.DettaglioLinee[0].Descrizione);\n            Assert.AreEqual(5m, body.DatiBeniServizi.DettaglioLinee[0].Quantita);\n            Assert.AreEqual(1m, body.DatiBeniServizi.DettaglioLinee[0].PrezzoUnitario);\n            Assert.AreEqual(5m, body.DatiBeniServizi.DettaglioLinee[0].PrezzoTotale);\n            Assert.AreEqual(22m, body.DatiBeniServizi.DettaglioLinee[0].AliquotaIVA);\n            Assert.AreEqual(2, body.DatiBeniServizi.DettaglioLinee[1].NumeroLinea);\n            Assert.AreEqual(\"FORNITURE VARIE PER UFFICIO\", body.DatiBeniServizi.DettaglioLinee[1].Descrizione);\n            Assert.AreEqual(10m, body.DatiBeniServizi.DettaglioLinee[1].Quantita);\n            Assert.AreEqual(2m, body.DatiBeniServizi.DettaglioLinee[1].PrezzoUnitario);\n            Assert.AreEqual(20m, body.DatiBeniServizi.DettaglioLinee[1].PrezzoTotale);\n            Assert.AreEqual(22m, body.DatiBeniServizi.DettaglioLinee[1].AliquotaIVA);\n            Assert.AreEqual(3, body.DatiBeniServizi.DettaglioLinee[2].NumeroLinea);\n            Assert.AreEqual(\"TUBI RITORNO GASOLIO\", body.DatiBeniServizi.DettaglioLinee[2].Descrizione);\n            Assert.AreEqual(2m, body.DatiBeniServizi.DettaglioLinee[2].Quantita);\n            Assert.AreEqual(5m, body.DatiBeniServizi.DettaglioLinee[2].PrezzoUnitario);\n            Assert.AreEqual(6.58m, body.DatiBeniServizi.DettaglioLinee[2].PrezzoTotale);\n            Assert.AreEqual(22m, body.DatiBeniServizi.DettaglioLinee[2].AliquotaIVA);\n            Assert.AreEqual(\"SC\", body.DatiBeniServizi.DettaglioLinee[2].ScontoMaggiorazione[0].Tipo);\n            Assert.AreEqual(-1.71m, body.DatiBeniServizi.DettaglioLinee[2].ScontoMaggiorazione[0].Importo);\n            Assert.AreEqual(\"TUBI RITORNO GASOLIO\", body.DatiBeniServizi.DettaglioLinee[2].Descrizione);\n            Assert.AreEqual(1m, body.DatiBeniServizi.DettaglioLinee[3].Quantita);\n            Assert.AreEqual(5m, body.DatiBeniServizi.DettaglioLinee[3].PrezzoUnitario);\n            Assert.AreEqual(4.5m, body.DatiBeniServizi.DettaglioLinee[3].PrezzoTotale);\n            Assert.AreEqual(22m, body.DatiBeniServizi.DettaglioLinee[3].AliquotaIVA);\n            Assert.AreEqual(\"SC\", body.DatiBeniServizi.DettaglioLinee[3].ScontoMaggiorazione[0].Tipo);\n            Assert.AreEqual(10.0m, body.DatiBeniServizi.DettaglioLinee[3].ScontoMaggiorazione[0].Percentuale);\n            // DatiRiepilogo\n            Assert.AreEqual(22m, body.DatiBeniServizi.DatiRiepilogo[0].AliquotaIVA);\n            Assert.AreEqual(36.08m, body.DatiBeniServizi.DatiRiepilogo[0].ImponibileImporto);\n            Assert.AreEqual(7.94m, body.DatiBeniServizi.DatiRiepilogo[0].Imposta);\n            Assert.AreEqual(\"D\", body.DatiBeniServizi.DatiRiepilogo[0].EsigibilitaIVA);\n            // DatiPagamento\n            Assert.AreEqual(\"TP01\", body.DatiPagamento[0].CondizioniPagamento);\n            Assert.AreEqual(\"MP01\", body.DatiPagamento[0].DettaglioPagamento[0].ModalitaPagamento);\n            Assert.AreEqual(new(2015, 01, 30),\n                body.DatiPagamento[0].DettaglioPagamento[0].DataScadenzaPagamento.Value);\n            Assert.AreEqual(36.08m, body.DatiPagamento[0].DettaglioPagamento[0].ImportoPagamento);\n        }\n\n        private void SerializeAndAssertRootElementAttributes(FatturaBase f)\n        {\n            using (var w = XmlWriter.Create(\"test\", new() {Indent = true}))\n            {\n                f.WriteXml(w);\n            }\n\n            using (var r = XmlReader.Create(\"test\"))\n            {\n                while (r.Read())\n                {\n                    if (r.NodeType != XmlNodeType.Element) continue;\n                    if (r.Prefix != RootElement.Prefix || r.LocalName != \"FatturaElettronica\") continue;\n\n                    Assert.AreEqual(\n                        ((FatturaOrdinaria) f).FatturaElettronicaHeader.DatiTrasmissione.FormatoTrasmissione,\n                        r.GetAttribute(\"versione\"));\n                    Assert.AreEqual(f.SistemaEmittente, r.GetAttribute(\"SistemaEmittente\"));\n                    Assert.AreEqual(\"http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2\", r.NamespaceURI);\n                    foreach (var a in RootElement.ExtraAttributes)\n                    {\n                        Assert.AreEqual(a.value, r.GetAttribute($\"{a.Prefix}:{a.LocalName}\"));\n                    }\n\n                    break;\n                }\n            }\n\n            File.Delete(\"test\");\n        }\n    }\n}"
  },
  {
    "path": "Validators/AllegatiValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Validators\n{\n    public class AllegatiValidator : AbstractValidator<Allegati>\n    {\n        public AllegatiValidator()\n        {\n            RuleFor(x => x.NomeAttachment)\n                .NotEmpty()\n                .Latin1SupplementValidator()\n                .Length(1, 60);\n            RuleFor(x => x.AlgoritmoCompressione)\n                .Length(1, 60)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.AlgoritmoCompressione));\n            RuleFor(x => x.FormatoAttachment)\n                .Length(1, 10)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.FormatoAttachment));\n            RuleFor(x => x.DescrizioneAttachment)\n                .Length(1, 100)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.DescrizioneAttachment));\n            RuleFor(x => x.Attachment)\n                .NotEmpty();\n        }\n    }\n}"
  },
  {
    "path": "Validators/AltriDatiGestionaliValidator.cs",
    "content": "﻿using FatturaElettronica.Extensions;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\n\nnamespace FatturaElettronica.Validators\n{\n    public class AltriDatiGestionaliValidator : AbstractValidator<AltriDatiGestionali>\n    {\n        public AltriDatiGestionaliValidator()\n        {\n            RuleFor(x => x.TipoDato)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 10);\n            RuleFor(x => x.RiferimentoTesto)\n                .Length(1, 60)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.RiferimentoTesto));\n            RuleFor(x => x.RiferimentoNumero)\n                .ScalePrecision8DecimalType();\n        }\n    }\n}"
  },
  {
    "path": "Validators/AnagraficaValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Validators\n{\n    public class AnagraficaValidator : DenominazioneNomeCognomeValidator<Anagrafica>\n    {\n        public AnagraficaValidator()\n        {\n            RuleFor(x => x.Titolo)\n                .Length(2, 10)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.Titolo));\n            RuleFor(x => x.CodEORI)\n                .Length(13, 17)\n                .When(x => !string.IsNullOrEmpty(x.CodEORI));\n        }\n    }\n}"
  },
  {
    "path": "Validators/CausaleValidator.cs",
    "content": "﻿using FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class CausaleValidator : AbstractValidator<string>\n    {\n        public CausaleValidator(int min, int max)\n        {\n            RuleFor(x => x)\n                .NotEmpty()\n                .Length(min, max)\n                .Latin1SupplementValidator();\n        }\n    }\n}"
  },
  {
    "path": "Validators/CedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class CedentePrestatoreValidator : AbstractValidator<CedentePrestatore>\n    {\n        public CedentePrestatoreValidator()\n        {\n            RuleFor(x => x.DatiAnagrafici)\n                .SetValidator(new DatiAnagraficiCedentePrestatoreValidator());\n            RuleFor(x => x.Sede)\n                .SetValidator(new SedeCedentePrestatoreValidator());\n            RuleFor(x => x.StabileOrganizzazione)\n                .SetValidator(new StabileOrganizzazioneValidator())\n                .When(x => x.StabileOrganizzazione != null && !x.StabileOrganizzazione.IsEmpty());\n            RuleFor(x => x.IscrizioneREA)\n                .SetValidator(new IscrizioneREAValidator())\n                .When(x => x.IscrizioneREA != null && !x.IscrizioneREA.IsEmpty());\n            RuleFor(x => x.Contatti)\n                .SetValidator(new ContattiValidator())\n                .When(x => x.Contatti != null && !x.Contatti.IsEmpty());\n            RuleFor(x => x.RiferimentoAmministrazione)\n                .BasicLatinValidator()\n                .Length(1, 20);\n        }\n    }\n}"
  },
  {
    "path": "Validators/CessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class CessionarioCommittenteValidator : AbstractValidator<CessionarioCommittente>\n    {\n        public CessionarioCommittenteValidator()\n        {\n            RuleFor(x => x.DatiAnagrafici)\n                .SetValidator(new DatiAnagraficiCessionarioCommittenteValidator());\n            RuleFor(x => x.Sede)\n                .SetValidator(new SedeCessionarioCommittenteValidator());\n            RuleFor(x => x.StabileOrganizzazione)\n                .SetValidator(new StabileOrganizzazioneValidator())\n                .When(x => x.StabileOrganizzazione != null && !x.StabileOrganizzazione.IsEmpty());\n            RuleFor(x => x.RappresentanteFiscale)\n                .SetValidator(new RappresentanteFiscaleCessionarioCommittenteValidator())\n                .When(x => x.RappresentanteFiscale != null && !x.RappresentanteFiscale.IsEmpty());\n        }\n    }\n}"
  },
  {
    "path": "Validators/CodiceArticoloValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\n\nnamespace FatturaElettronica.Validators\n{\n    public class CodiceArticoloValidator : AbstractValidator<CodiceArticolo>\n    {\n        public CodiceArticoloValidator()\n        {\n            RuleFor(x => x.CodiceTipo)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 35);\n            RuleFor(x => x.CodiceValore)\n                .NotEmpty()\n                .Latin1SupplementValidator()\n                .Length(1, 35);\n        }\n    }\n}"
  },
  {
    "path": "Validators/Constants.cs",
    "content": "﻿namespace FatturaElettronica.Validators;\n\npublic class Constants\n{\n    // Vedi 'EmailType' in https://www.agenziaentrate.gov.it/portale/documents/20143/4631413/Schema_VFPR12.xsd\n    public static string EmailRegex = \"^([!#-'*+/0-9=?A-Z^-~\\\\-]+(\\\\.[!#-'*+/0-9=?A-Z^-~\\\\-]+)*|\\\"([\\\\[\\\\]!#\\\\-[^\\\\-~ \\\\t]|(\\\\\\\\[\\\\t \\\\-~]))+\\\")@([!#-'*+/0-9=?A-Z^-~\\\\-]+(\\\\.[!#-'*+/0-9=?A-Z^-~\\\\-]+)*|\\\\[[\\\\t \\\\-Z^-~]*\\\\])$\";\n\n}\n"
  },
  {
    "path": "Validators/ContattiTrasmittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class ContattiTrasmittenteValidator : AbstractValidator<ContattiTrasmittente>\n    {\n        public ContattiTrasmittenteValidator()\n        {\n            RuleFor(dt => dt.Telefono)\n                .Length(5, 12)\n                .When(x => !string.IsNullOrEmpty(x.Telefono));\n            RuleFor(dt => dt.Email)\n                .Length(7, 256)\n                .Matches(Constants.EmailRegex)\n                .When(x => !string.IsNullOrEmpty(x.Email));\n        }\n    }\n}"
  },
  {
    "path": "Validators/ContattiValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class ContattiValidator : AbstractValidator<Contatti>\n    {\n        public ContattiValidator()\n        {\n            RuleFor(x => x.Telefono)\n                .Length(5, 12)\n                .When(x => !string.IsNullOrEmpty(x.Telefono));\n            RuleFor(x => x.Fax)\n                .Length(5, 12)\n                .When(x => !string.IsNullOrEmpty(x.Fax));\n            RuleFor(x => x.Email)\n                .Length(7, 256)\n                .Matches(Constants.EmailRegex)\n                .When(x => !string.IsNullOrEmpty(x.Email));\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiAnagraficiCedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Tabelle;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiAnagraficiCedentePrestatoreValidator : AbstractValidator<DatiAnagraficiCedentePrestatore>\n    {\n        public DatiAnagraficiCedentePrestatoreValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.Anagrafica)\n                .SetValidator(new AnagraficaValidator());\n            RuleFor(x => x.AlboProfessionale)\n                .Length(1, 60)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.AlboProfessionale));\n            RuleFor(x => x.ProvinciaAlbo)\n                .Matches(@\"^[A-Z]{2}$\")\n                .When(x => !string.IsNullOrEmpty(x.ProvinciaAlbo));\n            RuleFor(x => x.NumeroIscrizioneAlbo)\n                .Length(1, 60)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.NumeroIscrizioneAlbo));\n            RuleFor(x => x.RegimeFiscale)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiAnagraficiCedentePrestatore, string, RegimeFiscale>());\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiAnagraficiCessionarioCommittenteValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\nusing FatturaElettronica.Resources;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiAnagraficiCessionarioCommittenteValidator\n        : AbstractValidator<DatiAnagraficiCessionarioCommittente>\n    {\n        public DatiAnagraficiCessionarioCommittenteValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator())\n                .When(x => x.IdFiscaleIVA != null && !x.IdFiscaleIVA.IsEmpty());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.Anagrafica)\n                .SetValidator(new AnagraficaValidator());\n            RuleFor(x => x.CodiceFiscale)\n                .Must((challenge, _) =>\n                    !(string.IsNullOrEmpty(challenge.CodiceFiscale) && challenge.IdFiscaleIVA.IsEmpty()))\n                .WithMessage(ValidatorMessages.E00417)\n                .WithErrorCode(\"00417\");\n            RuleFor(x => x.IdFiscaleIVA)\n                .Must((challenge, _) =>\n                    !(string.IsNullOrEmpty(challenge.CodiceFiscale) && challenge.IdFiscaleIVA.IsEmpty()))\n                .WithMessage(ValidatorMessages.E00417)\n                .WithErrorCode(\"00417\");\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiAnagraficiRappresentanteFiscaleValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiAnagraficiRappresentanteFiscaleValidator : AbstractValidator<DatiAnagrafici>\n    {\n        public DatiAnagraficiRappresentanteFiscaleValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.Anagrafica)\n                .SetValidator(new AnagraficaValidator());\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiAnagraficiTerzoIntermediarioValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiAnagraficiTerzoIntermediarioValidator : AbstractValidator<DatiAnagrafici>\n    {\n        public DatiAnagraficiTerzoIntermediarioValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator())\n                .When(x => x.IdFiscaleIVA != null && !x.IdFiscaleIVA.IsEmpty());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.Anagrafica)\n                .SetValidator(new AnagraficaValidator());\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiAnagraficiVettoreValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiAnagraficiVettoreValidator : AbstractValidator<DatiAnagraficiVettore>\n    {\n        public DatiAnagraficiVettoreValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.Anagrafica)\n                .SetValidator(new AnagraficaValidator());\n            RuleFor(x => x.NumeroLicenzaGuida)\n                .Length(1, 20)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.NumeroLicenzaGuida));\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiBeniServiziValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiBeniServiziValidator : AbstractValidator<DatiBeniServizi>\n    {\n        public DatiBeniServiziValidator()\n        {\n            RuleForEach(x => x.DettaglioLinee)\n                .SetValidator(new DettaglioLineeValidator());\n            RuleFor(x => x.DettaglioLinee)\n                .NotEmpty();\n            RuleForEach(x => x.DatiRiepilogo)\n                .SetValidator(new DatiRiepilogoValidator());\n            RuleFor(x => x.DatiRiepilogo)\n                .NotEmpty();\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiBolloValidator.cs",
    "content": "﻿using FatturaElettronica.Extensions;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiBolloValidator : AbstractValidator<DatiBollo>\n    {\n        public DatiBolloValidator()\n        {\n            RuleFor(x => x.BolloVirtuale)\n                .NotEmpty()\n                .Equal(\"SI\");\n            RuleFor(x => x.ImportoBollo)\n                .ScalePrecision2DecimalType();\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiCassaPrevidenzialeValidator.cs",
    "content": "﻿using FatturaElettronica.Extensions;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiCassaPrevidenzialeValidator : AbstractValidator<DatiCassaPrevidenziale>\n    {\n        public DatiCassaPrevidenzialeValidator()\n        {\n            RuleFor(x => x.TipoCassa)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiCassaPrevidenziale, string, TipoCassa>());\n            RuleFor(x => x.AlCassa)\n                .NotNull();\n            RuleFor(x => x.ImportoContributoCassa)\n                .NotNull();\n            RuleFor(x => x.AliquotaIVA)\n                .NotNull();\n            RuleFor(x => x.Ritenuta)\n                .Equal(\"SI\")\n                .When(x => !string.IsNullOrEmpty(x.Ritenuta));\n            RuleFor(x => x.Natura)\n                .NotEmpty()\n                .When(x => x.AliquotaIVA == 0).WithErrorCode(\"00413\");\n            RuleFor(x => x.Natura)\n                .SetValidator(new IsValidValidator<DatiCassaPrevidenziale, string, Natura>())\n                .When(x => x.AliquotaIVA == 0);\n            RuleFor(x => x.Natura)\n                .Empty()\n                .When(x => x.AliquotaIVA != 0).WithErrorCode(\"00414\");\n            RuleFor(x => x.RiferimentoAmministrazione)\n                .Length(1, 20)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.RiferimentoAmministrazione));\n            RuleFor(x => x.ImportoContributoCassa)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.ImponibileCassa)\n                .ScalePrecision2DecimalType();\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiContrattoValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class DatiContrattoValidator : DatiDocumentoValidator\n    {\n    }\n}"
  },
  {
    "path": "Validators/DatiConvenzioneValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class DatiConvenzioneValidator : DatiDocumentoValidator\n    {\n    }\n}"
  },
  {
    "path": "Validators/DatiDDTValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Resources;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiDDTValidator : AbstractValidator<DatiDDT>\n    {\n        public DatiDDTValidator()\n        {\n            RuleFor(x => x.NumeroDDT)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleForEach(x => x.RiferimentoNumeroLinea)\n                .InclusiveBetween(1, 9999)\n                .WithMessage(string.Format(ValidatorMessages.ValidNumberRange_X_Y, 1, 9999));\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiDocumentoValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiDocumentoValidator : AbstractValidator<DatiDocumento>\n    {\n        protected DatiDocumentoValidator()\n        {\n            RuleFor(x => x.IdDocumento)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.NumItem)\n                .Length(1, 20)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.NumItem));\n            RuleFor(x => x.CodiceCommessaConvenzione)\n                .Length(1, 100)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.CodiceCommessaConvenzione));\n            RuleFor(x => x.CodiceCUP)\n                .Length(1, 15)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.CodiceCUP));\n            RuleFor(x => x.CodiceCIG)\n                .Length(1, 15)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.CodiceCIG));\n            RuleForEach(x => x.RiferimentoNumeroLinea)\n                .InclusiveBetween(1, 9999)\n                .WithMessage(string.Format(ValidatorMessages.ValidNumberRange_X_Y, 1, 9999));\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiFattureCollegateValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class DatiFattureCollegateValidator : DatiDocumentoValidator\n    {\n    }\n}"
  },
  {
    "path": "Validators/DatiGeneraliDocumentoValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing System.Linq;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Resources;\nusing Divisa = FatturaElettronica.Tabelle.Divisa;\nusing TipoDocumento = FatturaElettronica.Tabelle.TipoDocumento;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiGeneraliDocumentoValidator : AbstractValidator<DatiGeneraliDocumento>\n    {\n        public DatiGeneraliDocumentoValidator()\n        {\n            RuleFor(x => x.TipoDocumento)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiGeneraliDocumento, string, TipoDocumento>());\n            RuleFor(x => x.Divisa)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiGeneraliDocumento, string, Divisa>());\n            RuleFor(x => x.Numero)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.Numero)\n                .Matches(@\"\\d\")\n                .WithMessage(ValidatorMessages.E00425)\n                .WithErrorCode(\"00425\");\n            RuleForEach(x => x.DatiRitenuta)\n                .SetValidator(new DatiRitenutaValidator());\n            RuleFor(x => x.DatiBollo)\n                .SetValidator(new DatiBolloValidator())\n                .When(x => x.DatiBollo != null && !x.DatiBollo.IsEmpty());\n            RuleForEach(x => x.DatiCassaPrevidenziale)\n                .SetValidator(new DatiCassaPrevidenzialeValidator());\n            RuleFor(x => x.DatiCassaPrevidenziale)\n                .Must((datiGeneraliDocumento, datiCassa) =>\n                {\n                    return (datiCassa.Count(a => a.Ritenuta == \"SI\") <= 0) ||\n                           datiGeneraliDocumento.DatiRitenuta.Count > 0;\n                })\n                .WithMessage(ValidatorMessages.E00415)\n                .WithErrorCode(\"00415\");\n            RuleForEach(x => x.ScontoMaggiorazione)\n                .SetValidator(new ScontoMaggiorazioneValidator());\n            RuleForEach(x => x.Causale)\n                .SetValidator(new CausaleValidator(1, 200));\n            RuleFor(x => x.Art73)\n                .Equal(\"SI\")\n                .When(x => !string.IsNullOrEmpty(x.Art73));\n            RuleFor(x => x.ImportoTotaleDocumento)\n                .PrecisionScale(13, 2, false);\n            RuleFor(x => x.Arrotondamento)\n                .PrecisionScale(13, 2, false);\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiGeneraliValidator.cs",
    "content": "﻿using System.Linq;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Resources;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiGeneraliValidator : AbstractValidator<DatiGenerali>\n    {\n        public DatiGeneraliValidator()\n        {\n            RuleFor(x => x.DatiGeneraliDocumento)\n                .SetValidator(new DatiGeneraliDocumentoValidator());\n            RuleFor(x => x.DatiGeneraliDocumento.Data)\n                .Must((datigenerali, data) =>\n                {\n                    return datigenerali.DatiFattureCollegate.All(fc => !(data < fc.Data));\n                })\n                .WithMessage(ValidatorMessages.E00418)\n                .WithErrorCode(\"00418\");\n            RuleForEach(x => x.DatiOrdineAcquisto)\n                .SetValidator(new DatiOrdineAcquistoValidator());\n            RuleForEach(x => x.DatiContratto)\n                .SetValidator(new DatiContrattoValidator());\n            RuleForEach(x => x.DatiConvenzione)\n                .SetValidator(new DatiConvenzioneValidator());\n            RuleForEach(x => x.DatiRicezione)\n                .SetValidator(new DatiRicezioneValidator());\n            RuleForEach(x => x.DatiFattureCollegate)\n                .SetValidator(new DatiFattureCollegateValidator());\n            RuleForEach(x => x.DatiDDT)\n                .SetValidator(new DatiDDTValidator());\n            RuleFor(x => x.DatiTrasporto)\n                .SetValidator(new DatiTrasportoValidator())\n                .When(x => x.DatiTrasporto != null && !x.DatiTrasporto.IsEmpty());\n            RuleFor(x => x.FatturaPrincipale)\n                .SetValidator(new FatturaPrincipaleValidator())\n                .When(x => x.FatturaPrincipale != null && !x.FatturaPrincipale.IsEmpty());\n            RuleForEach(x => x.DatiSAL)\n                .SetValidator(new DatiSALValidator());\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiOrdineAcquistoValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class DatiOrdineAcquistoValidator : DatiDocumentoValidator\n    {\n    }\n}"
  },
  {
    "path": "Validators/DatiPagamentoValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiPagamento;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiPagamentoValidator : AbstractValidator<DatiPagamento>\n    {\n        public DatiPagamentoValidator()\n        {\n            RuleFor(x => x.CondizioniPagamento)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiPagamento, string, CondizioniPagamento>());\n            RuleForEach(x => x.DettaglioPagamento)\n                .SetValidator(new DettaglioPagamentoValidator());\n            RuleFor(x => x.DettaglioPagamento)\n                .NotEmpty();\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiRicezioneValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class DatiRicezioneValidator : DatiDocumentoValidator\n    {\n    }\n}"
  },
  {
    "path": "Validators/DatiRiepilogoValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing System;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Resources;\nusing EsigibilitaIVA = FatturaElettronica.Tabelle.EsigibilitaIVA;\nusing Natura = FatturaElettronica.Tabelle.Natura;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiRiepilogoValidator : AbstractValidator<DatiRiepilogo>\n    {\n        public DatiRiepilogoValidator()\n        {\n            RuleFor(x => x.Natura)\n                .SetValidator(new IsValidValidator<DatiRiepilogo, string, Natura>())\n                .When(x => !string.IsNullOrEmpty(x.Natura));\n            RuleFor(x => x.Natura)\n                .Must(natura => !string.IsNullOrEmpty(natura))\n                .When(x => x.AliquotaIVA == 0)\n                .WithMessage(ValidatorMessages.E00429)\n                .WithErrorCode(\"00429\");\n            RuleFor(x => x.Natura)\n                .Must(natura => natura == null || !natura.StartsWith(\"N6\"))\n                .When(x => x.EsigibilitaIVA == \"S\")\n                .WithMessage(ValidatorMessages.E00420)\n                .WithErrorCode(\"00420\");\n            RuleFor(x => x.Imposta)\n                .Must((challenge, _) => ImpostaValidateAgainstError00421(challenge))\n                .WithErrorCode(\"00421\");\n            RuleFor(x => x.EsigibilitaIVA)\n                .SetValidator(new IsValidValidator<DatiRiepilogo, string, EsigibilitaIVA>())\n                .When(x => !string.IsNullOrEmpty(x.EsigibilitaIVA));\n            RuleFor(x => x.RiferimentoNormativo)\n                .Length(1, 100)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.RiferimentoNormativo));\n            RuleFor(x => x.SpeseAccessorie)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.ImponibileImporto)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.Imposta)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.Arrotondamento)\n                .ScalePrecision8DecimalType();\n        }\n\n        private static bool ImpostaValidateAgainstError00421(DatiRiepilogo datiRiepilogo)\n        {\n            return (Math.Abs(datiRiepilogo.Imposta -\n                             decimal.Parse(((datiRiepilogo.AliquotaIVA * datiRiepilogo.ImponibileImporto) / 100)\n                                 .ToString(\"0.00\"))) <= 0.019m);\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiRitenutaValidator.cs",
    "content": "﻿using FatturaElettronica.Extensions;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Tabelle;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiRitenutaValidator : AbstractValidator<DatiRitenuta>\n    {\n        public DatiRitenutaValidator()\n        {\n            RuleFor(x => x.TipoRitenuta)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiRitenuta, string, TipoRitenuta>());\n            RuleFor(x => x.CausalePagamento)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiRitenuta, string, CausalePagamento>());\n            RuleFor(x => x.ImportoRitenuta)\n                .ScalePrecision2DecimalType();\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiSALValidator.cs",
    "content": "using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators;\n\npublic class DatiSALValidator : AbstractValidator<DatiSAL>\n{\n    public DatiSALValidator()\n    {\n        RuleFor(x => x.RiferimentoFase)\n            .InclusiveBetween(1, 999)\n            .WithMessage(string.Format(ValidatorMessages.ValidNumberRange_X_Y, 1, 999));\n    }\n}\n"
  },
  {
    "path": "Validators/DatiTrasmissioneValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.DatiTrasmissione;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiTrasmissioneValidator : AbstractValidator<DatiTrasmissione>\n    {\n        public DatiTrasmissioneValidator()\n        {\n            RuleFor(dt => dt.IdTrasmittente)\n                .SetValidator(new IdTrasmittenteValidator());\n            RuleFor(dt => dt.ProgressivoInvio)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 10);\n            RuleFor(dt => dt.FormatoTrasmissione)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiTrasmissione, string, FormatoTrasmissione>())\n                .WithErrorCode(\"00428\");\n            RuleFor(dt => dt.CodiceDestinatario)\n                .NotEmpty();\n            RuleFor(dt => dt.CodiceDestinatario)\n                .Matches(@\"^[A-Z0-9]+$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceDestinatario));\n            RuleFor(dt => dt.CodiceDestinatario)\n                .Length(6)\n                .When(dt => dt.FormatoTrasmissione == Defaults.FormatoTrasmissione.PubblicaAmministrazione)\n                .WithErrorCode(\"00427\");\n            RuleFor(dt => dt.CodiceDestinatario)\n                .Length(7)\n                .When(dt => dt.FormatoTrasmissione == Defaults.FormatoTrasmissione.Privati)\n                .WithErrorCode(\"00427\");\n            RuleFor(dt => dt.ContattiTrasmittente)\n                .SetValidator(new ContattiTrasmittenteValidator())\n                .When(x => x.ContattiTrasmittente != null && !x.ContattiTrasmittente.IsEmpty());\n            RuleFor(dt => dt.PECDestinatario)\n                .Length(7, 256)\n                .Matches(Constants.EmailRegex)\n                .When(x => !string.IsNullOrEmpty(x.PECDestinatario));\n        }\n    }\n}"
  },
  {
    "path": "Validators/DatiTrasportoValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\nusing FatturaElettronica.Resources;\nusing TipoResa = FatturaElettronica.Tabelle.TipoResa;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiTrasportoValidator : AbstractValidator<DatiTrasporto>\n    {\n        public DatiTrasportoValidator()\n        {\n            RuleFor(x => x.DatiAnagraficiVettore)\n                .SetValidator(new DatiAnagraficiVettoreValidator())\n                .When(x => x.DatiAnagraficiVettore != null && !x.DatiAnagraficiVettore.IsEmpty());\n            RuleFor(x => x.MezzoTrasporto)\n                .Length(1, 80)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.MezzoTrasporto));\n            RuleFor(x => x.CausaleTrasporto)\n                .Length(1, 100)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.CausaleTrasporto));\n            RuleFor(x => x.Descrizione)\n                .Length(1, 100)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.Descrizione));\n            RuleFor(x => x.UnitaMisuraPeso)\n                .Length(1, 10)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.UnitaMisuraPeso));\n            RuleFor(x => x.TipoResa)\n                .SetValidator(new IsValidValidator<DatiTrasporto, string, TipoResa>())\n                .When(x => !string.IsNullOrEmpty(x.TipoResa));\n            RuleFor(x => x.IndirizzoResa)\n                .SetValidator(new IndirizzoResaValidator())\n                .When(x => x.IndirizzoResa != null && !x.IndirizzoResa.IsEmpty());\n            RuleFor(x => x.PesoLordo)\n                .LessThanOrEqualTo(9999.99m);\n            RuleFor(x => x.PesoNetto)\n                .LessThanOrEqualTo(9999.99m);\n            RuleFor(x=>x.NumeroColli)\n                .InclusiveBetween(1,9999)\n                .WithMessage(string.Format(ValidatorMessages.ValidNumberRange_X_Y, 1, 9999));\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/DatiVeicoliValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiVeicoli;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DatiVeicoliValidator : AbstractValidator<DatiVeicoli>\n    {\n        public DatiVeicoliValidator()\n        {\n            RuleFor(x => x.Data)\n                .NotNull();\n            RuleFor(x => x.TotalePercorso)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 15);\n        }\n    }\n}"
  },
  {
    "path": "Validators/DenominazioneNomeCognomeValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Validators\n{\n    public abstract class DenominazioneNomeCognomeValidator<T> : AbstractValidator<T> where T : DenominazioneNomeCognome\n    {\n        protected DenominazioneNomeCognomeValidator()\n        {\n            const string expectedErrorCode = \"00200\";\n\n            RuleFor(x => x.Denominazione)\n                .NotEmpty()\n                .WithErrorCode(expectedErrorCode)\n                .Length(1, 80)\n                .WithErrorCode(expectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Denominazione)\n                .Empty()\n                .WithErrorCode(expectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Nome)\n                .NotEmpty()\n                .WithErrorCode(expectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(expectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Nome)\n                .Empty()\n                .WithErrorCode(expectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .NotEmpty()\n                .WithErrorCode(expectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(expectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .Empty()\n                .WithErrorCode(expectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n        }\n    }\n}"
  },
  {
    "path": "Validators/DettaglioLineeValidator.cs",
    "content": "﻿using System;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiBeniServizi;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\nusing Natura = FatturaElettronica.Tabelle.Natura;\nusing TipoCessionePrestazione = FatturaElettronica.Tabelle.TipoCessionePrestazione;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DettaglioLineeValidator : AbstractValidator<DettaglioLinee>\n    {\n        public DettaglioLineeValidator()\n        {\n            RuleFor(x => x.NumeroLinea)\n                .InclusiveBetween(1, 9999)\n                .WithMessage(string.Format(ValidatorMessages.ValidNumberRange_X_Y, 1, 9999));\n            RuleFor(x => x.TipoCessionePrestazione)\n                .SetValidator(new IsValidValidator<DettaglioLinee, string, TipoCessionePrestazione>())\n                .When(x => !string.IsNullOrEmpty(x.TipoCessionePrestazione));\n            RuleForEach(x => x.CodiceArticolo)\n                .SetValidator(new CodiceArticoloValidator());\n            RuleFor(x => x.Descrizione)\n                .NotEmpty()\n                .Length(1, 1000)\n                .Latin1SupplementValidator();\n            RuleFor(x => x.UnitaMisura)\n                .Length(1, 10)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.UnitaMisura));\n            RuleForEach(x => x.ScontoMaggiorazione)\n                .SetValidator(new ScontoMaggiorazioneValidator());\n            RuleFor(x => x.PrezzoTotale)\n                .Must((dettaglioLinee, _) => PrezzoTotaleValidateAgainstError00423(dettaglioLinee))\n                .WithMessage(ValidatorMessages.E00423)\n                .WithErrorCode(\"00423\");\n            RuleFor(x => x.Ritenuta)\n                .Equal(\"SI\")\n                .When(x => !string.IsNullOrEmpty(x.Ritenuta));\n            RuleFor(x => x.Natura)\n                .SetValidator(new IsValidValidator<DettaglioLinee, string, Natura>())\n                .When(x => !string.IsNullOrEmpty(x.Natura));\n            RuleFor(x => x.Natura)\n                .Must(natura => !string.IsNullOrEmpty(natura))\n                .When(x => x.AliquotaIVA == 0)\n                .WithMessage(ValidatorMessages.E00400)\n                .WithErrorCode(\"00400\");\n            RuleFor(x => x.RiferimentoAmministrazione)\n                .Length(1, 20)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.RiferimentoAmministrazione));\n            RuleForEach(x => x.AltriDatiGestionali)\n                .SetValidator(new AltriDatiGestionaliValidator());\n            RuleFor(x => x.Quantita)\n                .GreaterThanOrEqualTo(0);\n            RuleFor(x => x.PrezzoUnitario)\n                .ScalePrecision8DecimalType();\n            RuleFor(x => x.PrezzoTotale)\n                .ScalePrecision8DecimalType();\n            RuleFor(x => x.AliquotaIVA)\n                .LessThanOrEqualTo(100);\n        }\n\n        private static bool PrezzoTotaleValidateAgainstError00423(DettaglioLinee challenge)\n        {\n            var prezzo = Math.Round(challenge.PrezzoUnitario, 8, MidpointRounding.AwayFromZero);\n            foreach (var sconto in challenge.ScontoMaggiorazione)\n            {\n                if (sconto.Importo == null && sconto.Percentuale == null) continue;\n\n                var importo =\n                    (decimal)(sconto.Importo != null\n                        ? Math.Abs((decimal)sconto.Importo)\n                        : sconto.Percentuale != null\n                            ? prezzo * sconto.Percentuale / 100\n                            : prezzo);\n\n                if (sconto.Tipo == \"SC\")\n                    prezzo -= importo;\n                else\n                    prezzo += importo;\n            }\n\n            return Math.Abs(Math.Round(challenge.PrezzoTotale, 2, MidpointRounding.AwayFromZero)\n                            - prezzo * (challenge.Quantita ?? 1)) <= 0.019m;\n        }\n    }\n}"
  },
  {
    "path": "Validators/DettaglioPagamentoValidator.cs",
    "content": "﻿using FatturaElettronica.Extensions;\nusing FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiPagamento;\nusing FatturaElettronica.Resources;\nusing ModalitaPagamento = FatturaElettronica.Tabelle.ModalitaPagamento;\n\nnamespace FatturaElettronica.Validators\n{\n    public class DettaglioPagamentoValidator : AbstractValidator<DettaglioPagamento>\n    {\n        public DettaglioPagamentoValidator()\n        {\n            RuleFor(x => x.Beneficiario)\n                .Length(1, 200)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.Beneficiario));\n            RuleFor(x => x.ModalitaPagamento)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DettaglioPagamento, string, ModalitaPagamento>());\n            RuleFor(x => x.CodUfficioPostale)\n                .Length(1, 20)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.CodUfficioPostale));\n            RuleFor(x => x.CognomeQuietanzante)\n                .Length(1, 60)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.CognomeQuietanzante));\n            RuleFor(x => x.NomeQuietanzante)\n                .Length(1, 60)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.NomeQuietanzante));\n            RuleFor(x => x.CFQuietanzante)\n                .Length(1, 16)\n                .When(x => !string.IsNullOrEmpty(x.CFQuietanzante));\n            RuleFor(x => x.TitoloQuietanzante)\n                .Length(2, 10)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.TitoloQuietanzante));\n            RuleFor(x => x.IstitutoFinanziario)\n                .Length(1, 80)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.IstitutoFinanziario));\n            RuleFor(x => x.IBAN)\n                .Matches(@\"^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{11,30}$\")\n                .When(x => !string.IsNullOrEmpty(x.IBAN));\n            RuleFor(x => x.ABI)\n                .Length(5)\n                .When(x => !string.IsNullOrEmpty(x.ABI));\n            RuleFor(x => x.CAB)\n                .Length(5)\n                .When(x => !string.IsNullOrEmpty(x.CAB));\n            RuleFor(x => x.BIC)\n                .Length(8, 11)\n                .When(x => !string.IsNullOrEmpty(x.BIC));\n            RuleFor(x => x.CodicePagamento)\n                .Length(1, 60)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.CodicePagamento));\n            RuleFor(x => x.ScontoPagamentoAnticipato)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.PenalitaPagamentiRitardati)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.ImportoPagamento)\n                .ScalePrecision2DecimalType();\n            RuleFor(x => x.GiorniTerminiPagamento)\n                .InclusiveBetween(0, 999)\n                .WithMessage(string.Format(ValidatorMessages.ValidNumberRange_X_Y, 1, 999));\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/FatturaElettronicaBodyValidator.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class FatturaElettronicaBodyValidator : AbstractValidator<FatturaElettronicaBody>\n    {\n        public FatturaElettronicaBodyValidator()\n        {\n            RuleFor(x => x.DatiGenerali)\n                .SetValidator(new DatiGeneraliValidator());\n            RuleFor(x => x.DatiBeniServizi)\n                .SetValidator(new DatiBeniServiziValidator());\n            RuleFor(x => x.DatiBeniServizi)\n                .Must(x => !x.IsEmpty()).WithMessage(ValidatorMessages.DatiBeniServiziEObbligatorio);\n            RuleFor(x => x.DatiGenerali.DatiGeneraliDocumento.DatiRitenuta)\n                .Must((body, _) => DatiRitenutaAgainstDettaglioLinee(body))\n                .When(x => x.DatiGenerali.DatiGeneraliDocumento.DatiRitenuta.Count == 0)\n                .WithMessage(ValidatorMessages.E00411)\n                .WithErrorCode(\"00411\");\n            RuleFor(x => x.DatiBeniServizi.DatiRiepilogo)\n                .Must((body, _) => DatiRiepilogoValidateAgainstError00422(body))\n                .WithMessage(ValidatorMessages.E00422)\n                .WithErrorCode(\"00422\");\n            RuleFor(x => x.DatiBeniServizi.DatiRiepilogo)\n                .Must((body, _) => DatiRiepilogoValidateAgainstError00419(body))\n                .WithMessage(ValidatorMessages.E00419)\n                .WithErrorCode(\"00419\");\n            RuleFor(x => x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento)\n                .Must((body, _) => body.DatiBeniServizi.DettaglioLinee.All(linea => linea.AliquotaIVA != 0))\n                .When(x => x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento == \"TD21\")\n                .WithMessage(ValidatorMessages.E00474)\n                .WithErrorCode(\"00474\");\n            RuleFor(x => x.DatiVeicoli)\n                .SetValidator(new DatiVeicoliValidator())\n                .When(x => x.DatiVeicoli != null && !x.DatiVeicoli.IsEmpty());\n            RuleForEach(x => x.DatiPagamento)\n                .SetValidator(new DatiPagamentoValidator());\n            RuleForEach(x => x.Allegati)\n                .SetValidator(new AllegatiValidator());\n        }\n\n        private static bool DatiRitenutaAgainstDettaglioLinee(FatturaElettronicaBody body)\n        {\n            return body.DatiBeniServizi.DettaglioLinee.All(linea => linea.Ritenuta != \"SI\");\n        }\n\n        private static bool DatiRiepilogoValidateAgainstError00422(FatturaElettronicaBody body)\n        {\n            var totals = new Dictionary<decimal, Totals>();\n\n            foreach (var r in body.DatiBeniServizi.DatiRiepilogo)\n            {\n                if (!totals.ContainsKey(r.AliquotaIVA))\n                    totals.Add(r.AliquotaIVA, new());\n\n                totals[r.AliquotaIVA].ImponibileImporto += r.ImponibileImporto;\n                totals[r.AliquotaIVA].Arrotondamento += r.Arrotondamento ?? 0;\n            }\n\n            foreach (var l in body.DatiBeniServizi.DettaglioLinee)\n            {\n                if (!totals.ContainsKey(l.AliquotaIVA))\n                    totals.Add(l.AliquotaIVA, new());\n\n                totals[l.AliquotaIVA].PrezzoTotale += l.PrezzoTotale;\n            }\n\n            foreach (var c in body.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale)\n            {\n                if (!totals.ContainsKey(c.AliquotaIVA))\n                    totals.Add(c.AliquotaIVA, new());\n\n                totals[c.AliquotaIVA].ImportoContrCassa += c.ImportoContributoCassa;\n            }\n\n            return totals.Values.All(t => Math.Abs(t.ImponibileImporto - (t.PrezzoTotale + t.ImportoContrCassa + t.Arrotondamento)) < 1);\n        }\n\n        private static bool DatiRiepilogoValidateAgainstError00419(FatturaElettronicaBody body)\n        {\n            var hash = new HashSet<decimal>();\n            foreach (var cp in body.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale.Where(cp => !hash.Contains(cp.AliquotaIVA)))\n                hash.Add(cp.AliquotaIVA);\n\n            foreach (var l in body.DatiBeniServizi.DettaglioLinee.Where(l => !hash.Contains(l.AliquotaIVA)))\n                hash.Add(l.AliquotaIVA);\n\n            return body.DatiBeniServizi.DatiRiepilogo.Count >= hash.Count;\n        }\n\n        private class Totals\n        {\n            public decimal ImponibileImporto;\n            public decimal PrezzoTotale;\n            public decimal Arrotondamento;\n            public decimal ImportoContrCassa;\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/FatturaElettronicaHeaderValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\nusing SoggettoEmittente = FatturaElettronica.Tabelle.SoggettoEmittente;\n\nnamespace FatturaElettronica.Validators\n{\n    public class FatturaElettronicaHeaderValidator : AbstractValidator<FatturaElettronicaHeader>\n    {\n        public FatturaElettronicaHeaderValidator()\n        {\n            RuleFor(x => x.DatiTrasmissione)\n                .SetValidator(new DatiTrasmissioneValidator());\n            RuleFor(x => x.CedentePrestatore)\n                .SetValidator(new CedentePrestatoreValidator());\n            RuleFor(x => x.Rappresentante)\n                .SetValidator(new RappresentanteFiscaleValidator())\n                .When(x => x.Rappresentante != null && !x.Rappresentante.IsEmpty());\n            RuleFor(x => x.CessionarioCommittente)\n                .SetValidator(new CessionarioCommittenteValidator());\n            RuleFor(x => x.TerzoIntermediarioOSoggettoEmittente)\n                .SetValidator(new TerzoIntermediarioOSoggettoEmittenteValidator())\n                .When(x => x.TerzoIntermediarioOSoggettoEmittente != null &&\n                           !x.TerzoIntermediarioOSoggettoEmittente.IsEmpty());\n            RuleFor(x => x.SoggettoEmittente)\n                .SetValidator(new IsValidValidator<FatturaElettronicaHeader, string, SoggettoEmittente>())\n                .When(x => !string.IsNullOrEmpty(x.SoggettoEmittente));\n            RuleFor(x => x.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese)\n                .Must(idPaese => idPaese != \"IT\")\n                .When(x => x.DatiTrasmissione.CodiceDestinatario == \"XXXXXXX\")\n                .WithErrorCode(\"00313\");\n            RuleFor(x => x)\n                .Must((header, _) => HeaderValidateAgainstError00476(header))\n                .WithMessage(ValidatorMessages.E00476)\n                .WithErrorCode(\"00476\");\n        }\n\n        private static bool HeaderValidateAgainstError00476(FatturaElettronicaHeader header)\n        {\n            var idCedente = header.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA.IdPaese;\n            var idCommittente =\n                header.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA is null ||\n                header.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IsEmpty()\n                    ? \"\"\n                    : header.CessionarioCommittente.DatiAnagrafici.IdFiscaleIVA.IdPaese;\n\n            return idCedente == \"IT\" || idCommittente is \"IT\" or \"\";\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/FatturaOrdinariaValidator.cs",
    "content": "﻿using System;\nusing System.Linq;\nusing FatturaElettronica.Ordinaria;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class FatturaOrdinariaValidator : AbstractValidator<FatturaOrdinaria>\n    {\n        public FatturaOrdinariaValidator()\n        {\n            RuleFor(x => x.FatturaElettronicaHeader)\n                .SetValidator(new FatturaElettronicaHeaderValidator());\n            RuleFor(x => x)\n                .Must((fattura, _) => FatturaValidateAgainstError00475(fattura))\n                .WithMessage(ValidatorMessages.E00475)\n                .WithErrorCode(\"00475\");\n            RuleFor(x => x)\n                .Must((fattura, _) => FatturaValidateAgainstError00471(fattura))\n                .WithMessage(ValidatorMessages.E00471)\n                .WithErrorCode(\"00471\");\n            RuleFor(x => x)\n                .Must((fattura, _) => FatturaValidateAgainstError00472(fattura))\n                .WithMessage(ValidatorMessages.E00472)\n                .WithErrorCode(\"00472\");\n            RuleFor(x => x)\n                .Must((fattura, _) => FatturaValidateAgainstError00473(fattura))\n                .WithMessage(ValidatorMessages.E00473)\n                .WithErrorCode(\"00473\");\n            RuleForEach(x => x.FatturaElettronicaBody)\n                .SetValidator(new FatturaElettronicaBodyValidator());\n            RuleForEach(x => x.FatturaElettronicaBody)\n                .Must((_, body) => BodyValidateAgainstError00443(body))\n                .WithMessage(ValidatorMessages.E00443)\n                .WithErrorCode(\"00443\");\n            RuleForEach(x => x.FatturaElettronicaBody)\n                .Must((_, body) => BodyValidateAgainstError00444(body))\n                .WithMessage(ValidatorMessages.E00444)\n                .WithErrorCode(\"00444\");\n            RuleForEach(x => x.FatturaElettronicaBody)\n                .Must((_, body) => BodyValidateAgainstError00401(body))\n                .WithMessage(ValidatorMessages.E00401)\n                .WithErrorCode(\"00401\");\n            RuleForEach(x => x.FatturaElettronicaBody)\n                .Must((_, body) => BodyValidateAgainstError00430(body))\n                .WithMessage(ValidatorMessages.E00430)\n                .WithErrorCode(\"00430\");\n        }\n\n        private static bool FatturaValidateAgainstError00475(FatturaOrdinaria fatturaOrdinaria)\n        {\n            var tipiDocumento = new[] { \"TD16\", \"TD17\", \"TD18\", \"TD19\", \"TD20\", \"TD22\", \"TD23\" };\n\n            if (!fatturaOrdinaria.FatturaElettronicaBody.Any(x =>\n                    tipiDocumento.Contains(x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento)))\n                return true;\n\n            var idFiscaleIva = fatturaOrdinaria.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici\n                .IdFiscaleIVA;\n\n            return idFiscaleIva != null && !idFiscaleIva.IsEmpty();\n        }\n\n        private static bool FatturaValidateAgainstError00473(FatturaOrdinaria fatturaOrdinaria)\n        {\n            var cedente = fatturaOrdinaria.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici;\n\n            if (cedente.IdFiscaleIVA.IdPaese != \"IT\")\n                return true;\n\n            var tipiDocumento = new[] { \"TD17\", \"TD18\", \"TD19\", \"TD28\" };\n\n            var success = fatturaOrdinaria.FatturaElettronicaBody.All(x =>\n                !tipiDocumento.Contains(x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento));\n\n            return success;\n        }\n\n        private static bool FatturaValidateAgainstError00472(FatturaOrdinaria fatturaOrdinaria)\n        {\n            var bodies =\n                fatturaOrdinaria.FatturaElettronicaBody.Where(x =>\n                    x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento is \"TD21\" or \"TD27\");\n\n            if (!bodies.Any())\n                return true;\n\n            var cedente = fatturaOrdinaria.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici;\n            var cessionario =\n                fatturaOrdinaria.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici;\n\n            if (cessionario.IdFiscaleIVA.IsEmpty() && cessionario.CodiceFiscale == cedente.CodiceFiscale)\n                // Vedi https://github.com/FatturaElettronica/FatturaElettronica.NET/issues/388\n                return true;\n\n            if (string.IsNullOrEmpty(cessionario.CodiceFiscale) &&\n                cedente.IdFiscaleIVA?.ToString() == cessionario.IdFiscaleIVA?.ToString())\n                return true;\n\n            return cedente.IdFiscaleIVA?.ToString() == cessionario.IdFiscaleIVA?.ToString() &&\n                   cedente.CodiceFiscale == cessionario.CodiceFiscale;\n        }\n\n        private static bool FatturaValidateAgainstError00471(FatturaOrdinaria fatturaOrdinaria)\n        {\n            var cedente = fatturaOrdinaria.FatturaElettronicaHeader.CedentePrestatore.DatiAnagrafici.IdFiscaleIVA\n                .ToString();\n            var cessionario = fatturaOrdinaria.FatturaElettronicaHeader.CessionarioCommittente.DatiAnagrafici\n                .IdFiscaleIVA.ToString();\n\n            var tipiDocumento = new[]\n            {\n                \"TD01\", \"TD02\", \"TD03\", \"TD06\", \"TD16\", \"TD17\", \"TD18\", \"TD19\", \"TD20\", \"TD24\", \"TD25\", \"TD28\"\n            };\n\n            return cedente != cessionario || fatturaOrdinaria.FatturaElettronicaBody.All(x =>\n                !tipiDocumento.Contains(x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento));\n        }\n\n        private static bool BodyValidateAgainstError00444(FatturaElettronicaBody body)\n        {\n            var cassaPrevidenziale = body.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale;\n            var dettaglioLinee = body.DatiBeniServizi.DettaglioLinee;\n\n            var nature = dettaglioLinee.Select(x => x.Natura)\n                .Concat(cassaPrevidenziale.Select(x => x.Natura))\n                .ToArray();\n\n            var riepilogo = body.DatiBeniServizi.DatiRiepilogo.Select(x => x.Natura);\n\n            return nature.All(natura => riepilogo.Contains(natura)) &&\n                   riepilogo.All(natura => nature.Contains(natura));\n        }\n\n        private static bool BodyValidateAgainstError00443(FatturaElettronicaBody body)\n        {\n            var cassaPrevidenziale = body.DatiGenerali.DatiGeneraliDocumento.DatiCassaPrevidenziale;\n            var dettaglioLinee = body.DatiBeniServizi.DettaglioLinee;\n\n            var aliquote = dettaglioLinee.Select(x => x.AliquotaIVA)\n                .Concat(cassaPrevidenziale.Select(x => x.AliquotaIVA))\n                .ToArray();\n\n            var riepilogo = body.DatiBeniServizi.DatiRiepilogo.Select(x => x.AliquotaIVA);\n\n            return aliquote.All(aliquota => riepilogo.Contains(aliquota)) &&\n                   riepilogo.All(aliquota => aliquote.Contains(aliquota));\n        }\n\n        private bool BodyValidateAgainstError00401(FatturaElettronicaBody body)\n        {\n            if (body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento == \"TD16\")\n            {\n                return true;\n            }\n\n            return body.DatiBeniServizi.DettaglioLinee.All(x =>\n                x.AliquotaIVA > 0 && string.IsNullOrEmpty(x.Natura) ||\n                x.AliquotaIVA == 0 && !string.IsNullOrEmpty(x.Natura));\n        }\n\n        private bool BodyValidateAgainstError00430(FatturaElettronicaBody body)\n        {\n            if (body.DatiGenerali.DatiGeneraliDocumento.TipoDocumento == \"TD16\")\n            {\n                return true;\n            }\n\n            return body.DatiBeniServizi.DatiRiepilogo.All(x =>\n                x.AliquotaIVA > 0 && string.IsNullOrEmpty(x.Natura) ||\n                x.AliquotaIVA == 0 && !string.IsNullOrEmpty(x.Natura));\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/FatturaPrincipaleValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Validators\n{\n    public class FatturaPrincipaleValidator : AbstractValidator<FatturaPrincipale>\n    {\n        public FatturaPrincipaleValidator()\n        {\n            RuleFor(x => x.NumeroFatturaPrincipale)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.DataFatturaPrincipale)\n                .NotNull();\n        }\n    }\n}"
  },
  {
    "path": "Validators/IdFiscaleIVAValidator.cs",
    "content": "﻿using FatturaElettronica.Common;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class IdFiscaleIVAValidator : AbstractValidator<IdFiscaleIVA>\n    {\n        public IdFiscaleIVAValidator()\n        {\n            RuleFor(id => id.IdPaese)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<IdFiscaleIVA, string, IdPaese>());\n            RuleFor(id => id.IdCodice)\n                .NotEmpty()\n                .Length(1, 28);\n        }\n    }\n}"
  },
  {
    "path": "Validators/IdTrasmittenteValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class IdTrasmittenteValidator : IdFiscaleIVAValidator\n    {\n    }\n}"
  },
  {
    "path": "Validators/IndirizzoResaValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaBody.DatiGenerali;\n\nnamespace FatturaElettronica.Validators\n{\n    public class IndirizzoResaValidator : LocalitàBaseValidator<IndirizzoResa>\n    {\n    }\n}"
  },
  {
    "path": "Validators/IsValidValidator.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing FatturaElettronica.Resources;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\nusing FluentValidation.Validators;\n\nnamespace FatturaElettronica.Validators\n{\n    public class IsValidValidator<T, TProperty, TTabella> : PropertyValidator<T, TProperty>\n        where TTabella : Tabella, new()\n    {\n        private static readonly Lazy<TTabella> DomainObjectLazy = new(() => new());\n\n        protected override string GetDefaultMessageTemplate(string errorCode)\n        {\n            return ValidatorMessages.PropertyName_valoriAccettati_AcceptedValues;\n        }\n\n        public override bool IsValid(ValidationContext<T> context, TProperty value)\n        {\n            context.MessageFormatter.AppendArgument(\"AcceptedValues\", string.Format(string.Join(\", \", Domain)));\n\n            if (value is string codice)\n                return Domain.Contains(codice);\n\n            return false;\n        }\n\n        private static HashSet<string> Domain\n        {\n            get { return DomainObjectLazy.Value.Codici; }\n        }\n\n        public override string Name => \"IsValidValidator\";\n    }\n}\n"
  },
  {
    "path": "Validators/IscrizioneREAValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class IscrizioneREAValidator : AbstractValidator<IscrizioneREA>\n    {\n        public IscrizioneREAValidator()\n        {\n            RuleFor(x => x.Ufficio)\n                .NotEmpty()\n                .Matches(@\"^[A-Z]{2}$\");\n            RuleFor(x => x.NumeroREA)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.SocioUnico)\n                .SetValidator(new IsValidValidator<IscrizioneREA, string, SocioUnico>())\n                .When(x => !string.IsNullOrEmpty(x.SocioUnico));\n            RuleFor(x => x.StatoLiquidazione)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<IscrizioneREA, string, StatoLiquidazione>());\n        }\n    }\n}"
  },
  {
    "path": "Validators/LatinValidators.cs",
    "content": "﻿using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.RegularExpressions;\nusing FatturaElettronica.Resources;\nusing FluentValidation;\nusing FluentValidation.Validators;\n\nnamespace FatturaElettronica.Validators\n{\n    public abstract class LatinBaseValidator<T, TProperty> : PropertyValidator<T, TProperty>\n    {\n        private readonly Charsets _charset;\n\n        protected LatinBaseValidator(Charsets charset)\n        {\n            _charset = charset;\n        }\n\n        protected override string GetDefaultMessageTemplate(string errorCode)\n        {\n            var unicodeLatinSupplement = _charset == Charsets.BasicLatin ? \"Unicode Basic Latin\" : \"Unicode Latin-1 Supplement\";\n            return string.Format(ValidatorMessages.TestoContententeCaratteriNonValidi, unicodeLatinSupplement);\n        }\n\n        public override bool IsValid(ValidationContext<T> context, TProperty value)\n        {\n            if (value == null || value.ToString() == string.Empty) return true;\n\n            var challenge = _charset switch\n            {\n                Charsets.BasicLatin => @\"^[\\p{IsBasicLatin}]+$\",\n                Charsets.Latin1Supplement => @\"^[\\p{IsBasicLatin}\\p{IsLatin-1Supplement}]+$\",\n                _ => string.Empty\n            };\n\n            var invalidLetters = new HashSet<char>();\n            foreach (var letter in value.ToString())\n            {\n                var upperLimit = _charset switch\n                {\n                    Charsets.BasicLatin => 0x7F,\n                    Charsets.Latin1Supplement => 0xFF,\n                    _ => throw new ArgumentOutOfRangeException()\n                };\n\n                if (letter > upperLimit)\n                    invalidLetters.Add(letter);\n            }\n\n            context.MessageFormatter.AppendArgument(\"NonLatinCode\", new string(invalidLetters.ToArray()));\n\n            return Regex.Match(value.ToString(), challenge).Success;\n        }\n\n        public override string Name => \"LatinBaseValidator\";\n\n    }\n\n    public class BasicLatinValidator<T, TProperty> : LatinBaseValidator<T, TProperty>\n    {\n        public BasicLatinValidator() : base(Charsets.BasicLatin)\n        {\n        }\n    }\n\n    public class Latin1SupplementValidator<T, TProperty> : LatinBaseValidator<T, TProperty>\n    {\n        public Latin1SupplementValidator() : base(Charsets.Latin1Supplement)\n        {\n        }\n    }\n\n    public enum Charsets\n    {\n        BasicLatin,\n        Latin1Supplement\n    }\n\n    public static class MyValidatorExtensions\n    {\n        public static IRuleBuilderOptions<T, TElement> BasicLatinValidator<T, TElement>(\n            this IRuleBuilder<T, TElement> ruleBuilder)\n        {\n            return ruleBuilder.SetValidator(new BasicLatinValidator<T, TElement>());\n        }\n\n        public static IRuleBuilderOptions<T, TElement> Latin1SupplementValidator<T, TElement>(\n            this IRuleBuilder<T, TElement> ruleBuilder)\n        {\n            return ruleBuilder.SetValidator(new Latin1SupplementValidator<T, TElement>());\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/LocalitàBaseValidator.cs",
    "content": "﻿using FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public abstract class LocalitàBaseValidator<T> : AbstractValidator<T> where T : Common.Località\n    {\n        protected LocalitàBaseValidator()\n        {\n            RuleFor(x => x.Indirizzo)\n                .NotEmpty()\n                .Length(1, 60)\n                .Latin1SupplementValidator();\n            RuleFor(x => x.NumeroCivico)\n                .Length(1, 8)\n                .When(x => !string.IsNullOrEmpty(x.NumeroCivico));\n            RuleFor(x => x.CAP)\n                .NotEmpty()\n                .Length(5)\n                .Matches(@\"^[0-9]+$\");\n            RuleFor(x => x.Comune)\n                .NotEmpty()\n                .Length(1, 60)\n                .Latin1SupplementValidator();\n            RuleFor(x => x.Provincia)\n                .Matches(@\"^[A-Z]{2}$\")\n                .When(x => !string.IsNullOrEmpty(x.Provincia));\n            RuleFor(id => id.Nazione)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<T, string, IdPaese>());\n        }\n    }\n}"
  },
  {
    "path": "Validators/RappresentanteFiscaleCessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\n\nnamespace FatturaElettronica.Validators\n{\n    public class\n        RappresentanteFiscaleCessionarioCommittenteValidator : DenominazioneNomeCognomeValidator<\n            RappresentanteFiscaleCessionarioCommittente>\n    {\n        public RappresentanteFiscaleCessionarioCommittenteValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator());\n        }\n    }\n}"
  },
  {
    "path": "Validators/RappresentanteFiscaleValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.RappresentanteFiscale;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class RappresentanteFiscaleValidator : AbstractValidator<RappresentanteFiscale>\n    {\n        public RappresentanteFiscaleValidator()\n        {\n            RuleFor(x => x.DatiAnagrafici)\n                .SetValidator(new DatiAnagraficiRappresentanteFiscaleValidator());\n        }\n    }\n}"
  },
  {
    "path": "Validators/RegimeFiscaleValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    // public class RegimeFiscaleValidator<T> : IsValidValidator<T> where T : RegimeFiscale, new()\n    // {\n    //     protected override ValidationFailure CreateValidationError(PropertyValidatorContext context)\n    //     {\n    //         var err = base.CreateValidationError(context);\n    //         if (context.PropertyValue != null && context.PropertyValue.ToString() == \"RF03\")\n    //             err.ErrorCode = \"00459\";\n    //\n    //         return err;\n    //     }\n    // }\n}"
  },
  {
    "path": "Validators/ScontoMaggiorazioneValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Extensions;\nusing FatturaElettronica.Resources;\nusing ScontoMaggiorazione = FatturaElettronica.Common.ScontoMaggiorazione;\n\nnamespace FatturaElettronica.Validators\n{\n    public class ScontoMaggiorazioneValidator : AbstractValidator<ScontoMaggiorazione>\n    {\n        public ScontoMaggiorazioneValidator()\n        {\n            RuleFor(x => x.Tipo)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<ScontoMaggiorazione, string, Tabelle.ScontoMaggiorazione>());\n            RuleFor(x => x.Tipo)\n                .Must((challenge, _) => challenge.Importo != null || challenge.Percentuale != null)\n                .WithMessage(ValidatorMessages.E00437)\n                .WithErrorCode(\"00437\");\n            RuleFor(x => x.Importo)\n                .ScalePrecision8DecimalType();\n            RuleFor(x => x.Percentuale)\n                .ScalePrecisionPercentualeDecimalType();\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/SedeCedentePrestatoreValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    using Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\n\n    public class SedeCedentePrestatoreValidator : LocalitàBaseValidator<SedeCedentePrestatore>\n    {\n    }\n}"
  },
  {
    "path": "Validators/SedeCessionarioCommittenteValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    using Ordinaria.FatturaElettronicaHeader.CessionarioCommittente;\n\n    public class SedeCessionarioCommittenteValidator : LocalitàBaseValidator<SedeCessionarioCommittente>\n    {\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/AllegatiValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class AllegatiValidator : AbstractValidator<Allegati>\n    {\n        public AllegatiValidator()\n        {\n            RuleFor(x => x.NomeAttachment)\n                .NotEmpty()\n                .Latin1SupplementValidator()\n                .Length(1, 60);\n            RuleFor(x => x.AlgoritmoCompressione)\n                .Length(1, 60)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.AlgoritmoCompressione));\n            RuleFor(x => x.FormatoAttachment)\n                .Length(1, 10)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.FormatoAttachment));\n            RuleFor(x => x.DescrizioneAttachment)\n                .Length(1, 100)\n                .Latin1SupplementValidator()\n                .When(x => !string.IsNullOrEmpty(x.DescrizioneAttachment));\n            RuleFor(x => x.Attachment)\n                .NotEmpty();\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/AltriDatiIdentificativiValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class AltriDatiIdentificativiValidator : AbstractValidator<AltriDatiIdentificativi>\n    {\n        private const string ExpectedErrorCode = \"00200\";\n\n        public AltriDatiIdentificativiValidator()\n        {\n            RuleFor(x => x.Denominazione)\n                .NotEmpty()\n                .WithErrorCode(ExpectedErrorCode)\n                .Length(1, 80)\n                .WithErrorCode(ExpectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Denominazione)\n                .Empty()\n                .WithErrorCode(ExpectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Nome)\n                .NotEmpty()\n                .WithErrorCode(ExpectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(ExpectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Nome)\n                .Empty()\n                .WithErrorCode(ExpectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .NotEmpty()\n                .WithErrorCode(ExpectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(ExpectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .Empty()\n                .WithErrorCode(ExpectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Sede)\n                .SetValidator(new SedeCessionarioCommittenteValidator());\n            RuleFor(x => x.StabileOrganizzazione)\n                .SetValidator(new StabileOrganizzazioneValidator())\n                .When(x => x.StabileOrganizzazione != null && !x.StabileOrganizzazione.IsEmpty());\n            RuleFor(x => x.RappresentanteFiscale)\n                .SetValidator(new RappresentanteFiscaleCessionarioCommittenteValidator())\n                .When(x => x.RappresentanteFiscale != null && !x.RappresentanteFiscale.IsEmpty());\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/CedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class CedentePrestatoreValidator : AbstractValidator<CedentePrestatore>\n    {\n        private const string ExpectedErrorCode = \"00200\";\n\n        public CedentePrestatoreValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.Denominazione)\n                .NotEmpty()\n                .WithErrorCode(ExpectedErrorCode)\n                .Length(1, 80)\n                .WithErrorCode(ExpectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Denominazione)\n                .Empty()\n                .WithErrorCode(ExpectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Nome)\n                .NotEmpty()\n                .WithErrorCode(ExpectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(ExpectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Nome)\n                .Empty()\n                .WithErrorCode(ExpectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .NotEmpty()\n                .WithErrorCode(ExpectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(ExpectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .Empty()\n                .WithErrorCode(ExpectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Sede)\n                .SetValidator(new SedeCedentePrestatoreValidator());\n            RuleFor(x => x.StabileOrganizzazione)\n                .SetValidator(new StabileOrganizzazioneValidator())\n                .When(x => x.StabileOrganizzazione != null && !x.StabileOrganizzazione.IsEmpty());\n            RuleFor(x => x.IscrizioneREA)\n                .SetValidator(new IscrizioneREAValidator())\n                .When(x => x.IscrizioneREA != null && !x.IscrizioneREA.IsEmpty());\n            RuleFor(x => x.RegimeFiscale)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<CedentePrestatore, string, RegimeFiscale>());\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/CessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class CessionarioCommittenteValidator : AbstractValidator<CessionarioCommittente>\n    {\n        public CessionarioCommittenteValidator()\n        {\n            RuleFor(x => x.IdentificativiFiscali)\n                .SetValidator(new IdentificativiFiscaliValidator());\n            RuleFor(x => x.IdentificativiFiscali)\n                .Must(x => !x.IsEmpty()).WithMessage(ValidatorMessages.IdentificativiFiscaliEObbligatorio);\n            RuleFor(x => x.AltriDatiIdentificativi)\n                .SetValidator(new AltriDatiIdentificativiValidator())\n                .When(x => x.AltriDatiIdentificativi != null && !x.AltriDatiIdentificativi.IsEmpty());\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/Semplificata/DatiBeniServiziValidator.cs",
    "content": "﻿using FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi;\nusing FluentValidation;\nusing NaturaSemplificata = FatturaElettronica.Tabelle.NaturaSemplificata;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class DatiBeniServiziValidator : AbstractValidator<DatiBeniServizi>\n    {\n        public DatiBeniServiziValidator()\n        {\n            RuleFor(x => x.Descrizione)\n                .NotEmpty()\n                .Length(1, 1000)\n                .Latin1SupplementValidator();\n            RuleFor(x => x.Importo)\n                .NotEmpty();\n            RuleFor(x => x.DatiIVA)\n                .SetValidator(new DatiIVAValidator());\n            RuleFor(x => x.Natura)\n                .Must(natura => !string.IsNullOrEmpty(natura))\n                .When(x => x.DatiIVA.Aliquota == 0m && x.DatiIVA.Imposta == 0m)\n                .WithMessage(ValidatorMessages.E00400_S)\n                .WithErrorCode(\"00400\");\n            RuleFor(x => x.Natura)\n                .Must(string.IsNullOrEmpty)\n                .When(x => x.DatiIVA.Aliquota > 0m || x.DatiIVA.Imposta > 0m)\n                .WithMessage(ValidatorMessages.E00401_S)\n                .WithErrorCode(\"00401\");\n            RuleFor(x => x.Natura)\n                .SetValidator(new IsValidValidator<DatiBeniServizi, string, NaturaSemplificata>())\n                .When(x => x.Natura != null);\n            RuleFor(x => x.RiferimentoNormativo)\n                .Length(1, 100)\n                .BasicLatinValidator()\n                .When(x => !string.IsNullOrEmpty(x.RiferimentoNormativo));\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/Semplificata/DatiFatturaRettificataValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class DatiFatturaRettificataValidator : AbstractValidator<DatiFatturaRettificata>\n    {\n        public DatiFatturaRettificataValidator()\n        {\n            RuleFor(x => x.NumeroFR)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.DataFR)\n                .NotEmpty();\n            RuleFor(x => x.ElementiRettificati)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 1000);\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/DatiGeneraliDocumentoValidator.cs",
    "content": "﻿using FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation;\nusing Divisa = FatturaElettronica.Tabelle.Divisa;\nusing TipoDocumentoSemplificata = FatturaElettronica.Tabelle.TipoDocumentoSemplificata;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class DatiGeneraliDocumentoValidator : AbstractValidator<DatiGeneraliDocumento>\n    {\n        public DatiGeneraliDocumentoValidator()\n        {\n            RuleFor(x => x.TipoDocumento)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiGeneraliDocumento, string, TipoDocumentoSemplificata>());\n            RuleFor(x => x.Divisa)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiGeneraliDocumento, string, Divisa>());\n            RuleFor(x => x.Numero)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.Numero)\n                .Matches(@\"\\d\")\n                .WithMessage(ValidatorMessages.E00425)\n                .WithErrorCode(\"00425\");\n            RuleFor(x => x.BolloVirtuale)\n                .Equal(\"SI\")\n                .When(x => x.BolloVirtuale != null);\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/Semplificata/DatiGeneraliValidator.cs",
    "content": "﻿using FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiGenerali;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class DatiGeneraliValidator : AbstractValidator<DatiGenerali>\n    {\n        public DatiGeneraliValidator()\n        {\n            RuleFor(x => x.DatiGeneraliDocumento)\n                .SetValidator(new DatiGeneraliDocumentoValidator());\n            RuleFor(x => x.DatiFatturaRettificata)\n                .SetValidator(new DatiFatturaRettificataValidator())\n                .When(x => x.DatiFatturaRettificata != null && !x.DatiFatturaRettificata.IsEmpty());\n            RuleFor(x => x.DatiFatturaRettificata.DataFR)\n                .Must((datigenerali, data) => datigenerali.DatiGeneraliDocumento.Data >= data)\n                .WithMessage(ValidatorMessages.E00418_S)\n                .WithErrorCode(\"00418\")\n                .When(x => !x.DatiFatturaRettificata.IsEmpty());\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/Semplificata/DatiIVAValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class DatiIVAValidator : AbstractValidator<DatiIVA>\n    {\n        public DatiIVAValidator()\n        {\n            RuleFor(x => x.Imposta)\n                .NotNull()\n                .When(x => x.Aliquota == null);\n            RuleFor(x => x.Aliquota)\n                .NotNull()\n                .LessThanOrEqualTo(100)\n                .When(x => x.Imposta == null);\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/DatiTrasmissioneValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.DatiTrasmissione;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class DatiTrasmissioneValidator : AbstractValidator<DatiTrasmissione>\n    {\n        public DatiTrasmissioneValidator()\n        {\n            RuleFor(dt => dt.IdTrasmittente)\n                .SetValidator(new IdTrasmittenteValidator());\n            RuleFor(dt => dt.ProgressivoInvio)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 10);\n            RuleFor(dt => dt.FormatoTrasmissione)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<DatiTrasmissione, string, FormatoTrasmissione>())\n                .WithErrorCode(\"00428\");\n            RuleFor(dt => dt.CodiceDestinatario)\n                .NotEmpty();\n            RuleFor(dt => dt.CodiceDestinatario)\n                .Matches(@\"^[A-Z0-9]+$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceDestinatario));\n            RuleFor(dt => dt.CodiceDestinatario)\n                .Length(7)\n                .When(dt => dt.FormatoTrasmissione == Defaults.FormatoTrasmissione.Semplificata)\n                .WithErrorCode(\"00311\");\n            RuleFor(dt => dt.PECDestinatario)\n                .Matches(Constants.EmailRegex)\n                .When(x => !string.IsNullOrEmpty(x.PECDestinatario));\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/DenominazioneNomeCognomeValidator.cs",
    "content": "﻿using FluentValidation;\nusing FatturaElettronica.Common;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public abstract class DenominazioneNomeCognomeValidator<T> : AbstractValidator<T> where T : DenominazioneNomeCognome\n    {\n        protected DenominazioneNomeCognomeValidator()\n        {\n            const string expectedErrorCode = \"00200\";\n\n            RuleFor(x => x.Denominazione)\n                .NotEmpty()\n                .WithErrorCode(expectedErrorCode)\n                .Length(1, 80)\n                .WithErrorCode(expectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Denominazione)\n                .Empty()\n                .WithErrorCode(expectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.CognomeNome));\n            RuleFor(x => x.Nome)\n                .NotEmpty()\n                .WithErrorCode(expectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(expectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Nome)\n                .Empty()\n                .WithErrorCode(expectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .NotEmpty()\n                .WithErrorCode(expectedErrorCode)\n                .Length(1, 60)\n                .WithErrorCode(expectedErrorCode)\n                .Latin1SupplementValidator()\n                .When(x => string.IsNullOrEmpty(x.Denominazione));\n            RuleFor(x => x.Cognome)\n                .Empty()\n                .WithErrorCode(expectedErrorCode)\n                .When(x => !string.IsNullOrEmpty(x.Denominazione));\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/FatturaElettronicaBodyValidator.cs",
    "content": "﻿using System.Collections.Generic;\nusing System.Linq;\nusing FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody;\nusing FatturaElettronica.Semplificata.FatturaElettronicaBody.DatiBeniServizi;\nusing FatturaElettronica.Semplificata.FatturaElettronicaHeader;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class FatturaElettronicaBodyValidator : AbstractValidator<FatturaElettronicaBody>\n    {\n        public FatturaElettronicaBodyValidator()\n        {\n            RuleFor(x => x.DatiGenerali)\n                .SetValidator(new DatiGeneraliValidator());\n            RuleForEach(x => x.DatiBeniServizi)\n                .SetValidator(new DatiBeniServiziValidator());\n            RuleFor(x => x.DatiBeniServizi)\n                .NotEmpty().WithMessage(ValidatorMessages.DatiBeniServiziEObbligatorio);\n\n            RuleForEach(x => x.Allegati)\n                .SetValidator(new AllegatiValidator());\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/FatturaElettronicaHeaderValidator.cs",
    "content": "﻿using FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaHeader;\nusing FluentValidation;\nusing SoggettoEmittente = FatturaElettronica.Tabelle.SoggettoEmittente;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class FatturaElettronicaHeaderValidator : AbstractValidator<FatturaElettronicaHeader>\n    {\n        public FatturaElettronicaHeaderValidator()\n        {\n            RuleFor(x => x.DatiTrasmissione)\n                .SetValidator(new DatiTrasmissioneValidator());\n            RuleFor(x => x.CedentePrestatore)\n                .SetValidator(new CedentePrestatoreValidator());\n            RuleFor(x => x.CessionarioCommittente)\n                .SetValidator(new CessionarioCommittenteValidator());\n            RuleFor(x => x.SoggettoEmittente)\n                .SetValidator(new IsValidValidator<FatturaElettronicaHeader, string, SoggettoEmittente>())\n                .When(x => !string.IsNullOrEmpty(x.SoggettoEmittente));\n            RuleFor(x => x)\n                .Must((header, _) => HeaderValidateAgainstError00476(header))\n                .WithMessage(ValidatorMessages.E00476)\n                .WithErrorCode(\"00476\");\n        }\n\n        private static bool HeaderValidateAgainstError00476(FatturaElettronicaHeader header)\n        {\n            var idCedente = header.CedentePrestatore.IdFiscaleIVA.IdPaese;\n            var idCommittente =\n                header.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA is null ||\n                header.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IsEmpty()\n                    ? \"\"\n                    : header.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA.IdPaese;\n\n            return idCedente == \"IT\" || idCommittente is \"IT\" or \"\";\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/Semplificata/FatturaSemplificataValidator.cs",
    "content": "﻿using System.Linq;\nusing FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class FatturaSemplificataValidator : AbstractValidator<FatturaSemplificata>\n    {\n        public FatturaSemplificataValidator()\n        {\n            RuleFor(dt => dt.FatturaElettronicaHeader)\n                .SetValidator(new FatturaElettronicaHeaderValidator());\n            RuleForEach(dt => dt.FatturaElettronicaBody)\n                .SetValidator(new FatturaElettronicaBodyValidator());\n            RuleFor(x => x)\n                .Must((fattura, _) => ImportoTotaleValidateAgainstError00460(fattura))\n                .WithMessage(ValidatorMessages.E00460)\n                .WithErrorCode(\"00460\");\n            RuleFor(x => x)\n                .Must((fattura, _) => FatturaValidateAgainstError00471(fattura))\n                .WithMessage(ValidatorMessages.E00471_S)\n                .WithErrorCode(\"00471\");\n        }\n\n        private static bool FatturaValidateAgainstError00471(FatturaSemplificata fatturaSemplificata)\n        {\n            var cedente = fatturaSemplificata.FatturaElettronicaHeader.CedentePrestatore.IdFiscaleIVA.ToString();\n            var cessionario =\n                fatturaSemplificata.FatturaElettronicaHeader.CessionarioCommittente.IdentificativiFiscali.IdFiscaleIVA\n                    .ToString();\n\n            return cedente != cessionario || fatturaSemplificata.FatturaElettronicaBody.All(x =>\n                x.DatiGenerali.DatiGeneraliDocumento.TipoDocumento != \"TD07\");\n        }\n\n        private static bool ImportoTotaleValidateAgainstError00460(FatturaSemplificata fatturaSemplificata)\n        {\n            var regimeFiscale = fatturaSemplificata.FatturaElettronicaHeader.CedentePrestatore.RegimeFiscale;\n            if (regimeFiscale == RegimeFiscale.RF19 || regimeFiscale == RegimeFiscale.RF20)\n                return true;\n\n            return fatturaSemplificata.FatturaElettronicaBody.All(body =>\n            {\n                var importoTotale = body.DatiBeniServizi.Sum(x => x.Importo);\n\n                if (importoTotale > 400)\n                    return !body.DatiGenerali.DatiFatturaRettificata.IsEmpty();\n                return true;\n            });\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/IdentificativiFiscaliValidator.cs",
    "content": "﻿using FatturaElettronica.Resources;\nusing FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class IdentificativiFiscaliValidator : AbstractValidator<IdentificativiFiscali>\n    {\n        public IdentificativiFiscaliValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator())\n                .When(x => x.IdFiscaleIVA != null && !x.IdFiscaleIVA.IsEmpty());\n            RuleFor(x => x.CodiceFiscale)\n                .Matches(\"^[A-Z0-9]{11,16}$\")\n                .When(x => !string.IsNullOrEmpty(x.CodiceFiscale));\n            RuleFor(x => x.CodiceFiscale)\n                .Must((challenge, _) =>\n                    !(string.IsNullOrEmpty(challenge.CodiceFiscale) && challenge.IdFiscaleIVA.IsEmpty()))\n                .WithMessage(ValidatorMessages.E00417_S)\n                .WithErrorCode(\"00417\");\n            RuleFor(x => x.IdFiscaleIVA)\n                .Must((challenge, _) =>\n                    !(string.IsNullOrEmpty(challenge.CodiceFiscale) && challenge.IdFiscaleIVA.IsEmpty()))\n                .WithMessage(ValidatorMessages.E00417_S)\n                .WithErrorCode(\"00417\");\n        }\n    }\n}\n"
  },
  {
    "path": "Validators/Semplificata/IscrizioneREAValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore;\nusing FatturaElettronica.Tabelle;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class IscrizioneREAValidator : AbstractValidator<IscrizioneREA>\n    {\n        public IscrizioneREAValidator()\n        {\n            RuleFor(x => x.Ufficio)\n                .NotEmpty()\n                .Matches(@\"^[A-Z]{2}$\");\n            RuleFor(x => x.NumeroREA)\n                .NotEmpty()\n                .BasicLatinValidator()\n                .Length(1, 20);\n            RuleFor(x => x.SocioUnico)\n                .SetValidator(new IsValidValidator<IscrizioneREA, string, SocioUnico>())\n                .When(x => x.SocioUnico != null && !string.IsNullOrEmpty(x.SocioUnico));\n            RuleFor(x => x.StatoLiquidazione)\n                .NotEmpty()\n                .SetValidator(new IsValidValidator<IscrizioneREA, string, StatoLiquidazione>());\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/RappresentanteFiscaleCessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class\n        RappresentanteFiscaleCessionarioCommittenteValidator : DenominazioneNomeCognomeValidator<\n            RappresentanteFiscaleCessionarioCommittente>\n    {\n        public RappresentanteFiscaleCessionarioCommittenteValidator()\n        {\n            RuleFor(x => x.IdFiscaleIVA)\n                .SetValidator(new IdFiscaleIVAValidator());\n        }\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/SedeCedentePrestatoreValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CedentePrestatore;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class SedeCedentePrestatoreValidator : LocalitàBaseValidator<SedeCedentePrestatore>\n    {\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/SedeCessionarioCommittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Semplificata.FatturaElettronicaHeader.CessionarioCommittente;\n\nnamespace FatturaElettronica.Validators.Semplificata\n{\n    public class SedeCessionarioCommittenteValidator : LocalitàBaseValidator<SedeCessionarioCommittente>\n    {\n    }\n}"
  },
  {
    "path": "Validators/Semplificata/StabileOrganizzazioneValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators.Semplificata\n{\n    public class StabileOrganizzazioneValidator : LocalitàBaseValidator<Common.StabileOrganizzazione>\n    {\n    }\n}"
  },
  {
    "path": "Validators/StabileOrganizzazioneValidator.cs",
    "content": "﻿namespace FatturaElettronica.Validators\n{\n    public class StabileOrganizzazioneValidator : LocalitàBaseValidator<Common.StabileOrganizzazione>\n    {\n    }\n}"
  },
  {
    "path": "Validators/TerzoIntermediarioOSoggettoEmittenteValidator.cs",
    "content": "﻿using FatturaElettronica.Ordinaria.FatturaElettronicaHeader.TerzoIntermediarioOSoggettoEmittente;\nusing FluentValidation;\n\nnamespace FatturaElettronica.Validators\n{\n    public class TerzoIntermediarioOSoggettoEmittenteValidator : AbstractValidator<TerzoIntermediarioOSoggettoEmittente>\n    {\n        public TerzoIntermediarioOSoggettoEmittenteValidator()\n        {\n            RuleFor(x => x.DatiAnagrafici)\n                .SetValidator(new DatiAnagraficiTerzoIntermediarioValidator());\n        }\n    }\n}"
  },
  {
    "path": "docs/authors.md",
    "content": "[!include[<Autori>](<../AUTHORS.md>)]"
  },
  {
    "path": "docs/changelog.md",
    "content": "[!include[<Cronologia>](<../CHANGES.md>)]\n"
  },
  {
    "path": "docs/extensions.md",
    "content": "﻿# Extensions\n\nIl namespace `FatturaElettronica.Extensions` mette a disposizione una serie di extension method che aggiungono\nfunzionalità o semplificano il lavoro quotidiano con le fatture elettroniche.\n\n### XML\n\n- `ReadXml(string filePath)`: deserializza da file XML;\n- `ReadXml(Stream stream)`: deserializza da stream;\n- `ReadXmlSigned(string filePath)`: deserializza da XML firmato con algoritmo CADES (.p7m). Supporta anche file codificati Base64;\n- `ReadXmlSigned(Stream stream)`: deserializza da stream firmato con algoritmo CADES (.p7m). Supporta anche file codificati Base64;\n- `ReadXmlSignedBase64(string filePath)`: consigliato quando si sa in anticipo che il file è codificato Base64;\n- `WriteXml(string filePath)`: serializza su file XML non firmato;\n- `WriteXmlSigned(string pfxFile, string pfxPassword, string p7mFilePath)`: serializza su file XML, firmando con algoritmo CADES (.p7m);\n\n### HTML\n\n- `WriteHtml(string outPath, string xslPath)`: crea un HTML con rappresentazione della fattura, usando un foglio di stile;\n\n### JSON\n\n- `FromJson(string json)`: deserializza da JSON;\n\n### Altro\n\n- `FatturaElettronicaFileNameGenerator`: classe per la generazione di nomi file conformi allo standard fattura elettronica.\n\n> [!note]\n> A partire dalla v3 di FatturaElettronica le Extensions sono incluse nel package principale e non più rilasciate come package a parte."
  },
  {
    "path": "docs/faq.md",
    "content": "# Domande frequenti\n\n## Quali lingue sono supportate?\n\nAl momento [Italiano e Tedesco](https://github.com/FatturaElettronica/FatturaElettronica.NET/tree/master/Resources). Vuoi aggiungere la tua lingua? [Apri una pull request](https://github.com/FatturaElettronica/FatturaElettronica.NET/pulls).\n\n## Non si installa su NET Framework 3.5\n\nQuesto progetto è NetStandard 2.0. Supporta NET Framework v4.6.1 o superiori.\n\n## Non si installa su NET Framework 4.5\n\nQuesto progetto è NetStandard 2.0. Supporta NET Framework v4.6.1 o superiori.\n\n## Verrà mai aggiunto il supporto per Net Framework 3.5?\n\nNo.\n\n## Verrà mai aggiunto il supporto per Net Framework 4.5?\n\nVersioni precedenti alla 3.0 supportano NET45, ma sono probabilmente obsolete.\nNon pensiamo di tornare a supportare NET45 in futuro.\n\n## Che fine ha fatto FatturaElettronica.Extensions?\n\nÈ stato incorporato nel package FatturaElettronica a partire dalla versione 3.\n\n## Che fine ha fatto il FatturaElettronica.Core?\n\nÈ stato incorporato nel package FatturaElettronica a partire dalla versione 3.\n"
  },
  {
    "path": "docs/index.md",
    "content": "[!include[<Fattura Elettronica per .NET>](<../README.md>)]"
  },
  {
    "path": "docs/toc.md",
    "content": "# [Introduzione](index.md)\n# [Guida all'uso](tutorial.md)\n# [Estensioni](extensions.md)\n# [Domande frequenti](faq.md)\n# [Cronologia](changelog.md)\n# [API Reference](/docs/api/FatturaElettronica)\n# [Autori](authors.md)\n"
  },
  {
    "path": "docs/tutorial.md",
    "content": "# Guida all'uso\n\nSono supportate sie fatture ordinarie che seplificate. Qui\nviene usata una `FatturaOrdinaria`, ma gli esempi sono validi quasi sempre\nanche per una instanza di `FatturaSemplificata`.\n\n## Instanziare la fattura\n\n```cs\n    var fattura = new FatturaOrdinaria();\n\n    // In alternativa usare CreateInstance() per ottenere una istanza già tipizzata.\n    // Questa chiamata restituisce fattura con CodiceDestinatario = \"0000000\"\n    // FormatoTrasmissione = \"FPR12\":\n    fattura = FatturaOrdinaria.CreateInstance(Instance.Privati);\n\n```\n\n## Caricare la fattura da XML\n\n```cs\n    // Lettura da file XML\n    var readerSettings = new XmlReaderSettings\n    {\n        IgnoreWhitespace = true,\n        IgnoreComments = true,\n        IgnoreProcessingInstructions = true\n    };\n    using (var r = XmlReader.Create(\"IT01234567890_12345.xml\", readerSettings))\n    {\n        fattura.ReadXml(r);\n    }\n```\n\nIn alternativa `CreateInstanceFromXml` restituisce una istanza di `FatturaOrdinaria` o `FatturaSemplificata`\na seconda dei contenuti del file:\n\n```\n    using var stream = new FileStream(\"IT02182030391_31.xml.p7m\", FileMode.Open, FileAccess.Read);\n    var fattura = FatturaBase.CreateInstanceFromXml(stream);\n\n    Console.WriteLine(fattura.GetFormatoTrasmissione());\n    // \"FSM10\"\n```\n\n`CreateInstanceFromXml` supporta sia file XML puri (*.xml*) che firmati digitalmente (*.p7m*), eventualmente anche \ncodificati Base64. Questa comodità ha un costo, ovvero un leggero impatto sulle prestazioni in quanto è necessaria \nuna pre-scasione dello stream per determinarne il formato e la tipologia di fattura.\n\n## Consultare la fattura\n\n```cs\n    // Ogni file di fattura contiene un array di elementi FatturaElettronicaBody.\n    Console.WriteLine($\"Numero documenti: {fattura.FatturaElettronicaBody.Count}.\");\n\n    // Iterazione documenti presenti nel file.\n    Console.WriteLine(\"Documenti inclusi nel file FatturaPA:\");\n    foreach (var doc in fattura.FatturaElettronicaBody)\n    {\n        var datiDocumento = doc.DatiGenerali.DatiGeneraliDocumento;\n        Console.WriteLine($\"Numero: {datiDocumento.Numero}\");\n        Console.WriteLine($\"Data: {datiDocumento.Data.ToShortDateString()}\");\n        Console.WriteLine($\"Importo totale: {datiDocumento.ImportoTotaleDocumento}\");\n        Console.WriteLine();\n    }\n```\n\n## Convalidare la fattura\n\n```cs\n    // Convalida del documento.\n    var validator = new FatturaOrdinariaValidator();\n    var result = validator.Validate(fattura);\n    Console.WriteLine(result.IsValid);\n\n    // Introspezione errori di convalida.\n    foreach (var error in result.Errors)\n    {\n        Console.WriteLine(error.PropertyName);\n        Console.WriteLine(error.ErrorMessage);\n\n        // ErrorCode conterrà il codice errore (es: \"00423\").\n        Console.WriteLine(error.ErrorCode);\n    }\n\n    // Per brevità è possibile usare un extension method.\n    result = fattura.Validate();\n    Console.WriteLine(result.IsValid);\n\n    // Sono disponibili validatori per ogni classe esposta da FatturaElettronica.\n    var anagrafica = new DatiAnagraficiCedentePrestatore();\n    var anagraficaValidator = new DatiAnagraficiCedentePrestatoreValidator();\n    Console.WriteLine(anagraficaValidator.Validate(anagrafica).IsValid);\n\n    // Oppure, come già visto:\n    Console.WriteLine(anagrafica.Validate().IsValid);\n```\n\n## Modificare e aggiungere elementi alla fattura\n\n```cs\n    // Modifica proprietà Header.\n    var header = fattura.FatturaElettronicaHeader;\n    header.CedentePrestatore.DatiAnagrafici.Anagrafica.Denominazione = \"Bianchi Srl\";\n\n    //  Modifica proprietà Body\n    var body = fattura.FatturaElettronicaBody[0];\n    body.DatiGenerali.DatiGeneraliDocumento.Numero = \"12345\";\n\n    // Aggiunta di un nuovo elemento Body.\n    body = new FatturaElettronicaBody();\n    body.DatiGenerali.DatiGeneraliDocumento.Numero = \"99\";\n    fattura.FatturaElettronicaBody.Add(body);\n```\n\n## Salvare la fattura su XML\n\n```cs\n    // Serializzazione XML\n    var writerSettings = new XmlWriterSettings { Indent = true };\n    using (var w = XmlWriter.Create(\"IT01234567890_FPA01.xml\", writerSettings))\n    {\n        fattura.WriteXml(w);\n    }\n```\n\n## Scrittura e lettura da JSON\n\n```cs\n    // Serializzazione JSON.\n    var json = fattura.ToJson(JsonOptions.Indented);\n    Console.WriteLine(json);\n\n    // Deserializzazione da JSON.\n    var fatturaFromJson = new FatturaOrdinaria();\n    fatturaFromJson.FromJson(new JsonTextReader(new StringReader(json)));\n```\n\n## Esempio completo\n\n```cs\nusing FatturaElettronica.Ordinaria;\nusing FatturaElettronica.Common;\nusing FatturaElettronica.Defaults;\nusing FatturaElettronica.Validators;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaBody;\nusing FatturaElettronica.Ordinaria.FatturaElettronicaHeader.CedentePrestatore;\n\nusing System;\nusing System.Xml;\nusing System.IO;\n\nusing Newtonsoft.Json;\nusing FatturaElettronica;\n\nnamespace DemoApp\n{\n    class Program\n    {\n        static void Main(string[] args)\n        {\n\n            var fattura = new FatturaOrdinaria();\n            // In alternativa usare CreateInstance() per ottenere una istanza già tipizzata.\n            // Questa chiamata restituisce fattura con CodiceDestinatario = \"0000000\"\n            // FormatoTrasmissione = \"FPR12\":\n            fattura = FatturaOrdinaria.CreateInstance(Instance.Privati);\n\n            // Lettura da file XML\n            var readerSettings = new XmlReaderSettings\n            {\n                IgnoreWhitespace = true,\n                IgnoreComments = true,\n                IgnoreProcessingInstructions = true\n\n            };\n            using (var r = XmlReader.Create(\"IT01234567890_12345.xml\", readerSettings))\n            {\n                fattura.ReadXml(r);\n            }\n\n            // Ogni file di fattura contiene un array di elementi FatturaElettronicaBody.\n            Console.WriteLine($\"Numero documenti: {fattura.FatturaElettronicaBody.Count}.\");\n\n            // Iterazione documenti presenti nel file.\n            Console.WriteLine(\"Documenti inclusi nel file FatturaPA:\");\n            foreach (var doc in fattura.FatturaElettronicaBody)\n            {\n                var datiDocumento = doc.DatiGenerali.DatiGeneraliDocumento;\n                Console.WriteLine($\"Numero: {datiDocumento.Numero}\");\n                Console.WriteLine($\"Data: {datiDocumento.Data.ToShortDateString()}\");\n                Console.WriteLine($\"Importo totale: {datiDocumento.ImportoTotaleDocumento}\");\n                Console.WriteLine();\n            }\n\n            // Convalida del documento.\n            var validator = new FatturaOrdinariaValidator();\n            var result = validator.Validate(fattura);\n            Console.WriteLine(result.IsValid);\n\n            // Introspezione errori di convalida.\n            foreach (var error in result.Errors)\n            {\n                Console.WriteLine(error.PropertyName);\n                Console.WriteLine(error.ErrorMessage);\n\n                // ErrorCode conterrà il codice errore (es: \"00423\").\n                Console.WriteLine(error.ErrorCode);\n            }\n\n            // Per brevità è possibile usare un extension method.\n            result = fattura.Validate();\n            Console.WriteLine(result.IsValid);\n\n            // Sono disponibili validatori per ogni classe esposta da FatturaElettronica.\n            var anagrafica = new DatiAnagraficiCedentePrestatore();\n            var anagraficaValidator = new DatiAnagraficiCedentePrestatoreValidator();\n            Console.WriteLine(anagraficaValidator.Validate(anagrafica).IsValid);\n\n            // Oppure, come già visto:\n            Console.WriteLine(anagrafica.Validate().IsValid);\n\n            // Modifica proprietà Header.\n            var header = fattura.FatturaElettronicaHeader;\n            header.CedentePrestatore.DatiAnagrafici.Anagrafica.Denominazione = \"Bianchi Srl\";\n\n            //  Modifica proprietà Body\n            var body = fattura.FatturaElettronicaBody[0];\n            body.DatiGenerali.DatiGeneraliDocumento.Numero = \"12345\";\n\n            // Aggiunta di un nuovo elemento Body.\n            body = new FatturaElettronicaBody();\n            body.DatiGenerali.DatiGeneraliDocumento.Numero = \"99\";\n            fattura.FatturaElettronicaBody.Add(body);\n\n            // Serializzazione XML\n            var writerSettings = new XmlWriterSettings { Indent = true };\n            using (var w = XmlWriter.Create(\"IT01234567890_FPA01.xml\", writerSettings))\n            {\n                fattura.WriteXml(w);\n            }\n\n            // Serializzazione JSON.\n            var json = fattura.ToJson(JsonOptions.Indented);\n            Console.WriteLine(json);\n\n            // Deserializzazione da JSON.\n            var fatturaFromJson = new FatturaOrdinaria();\n            fatturaFromJson.FromJson(new JsonTextReader(new StringReader(json)));\n        }\n    }\n}\n```\n\n## Limitazioni\n\nIn convalida non sono supportati gli errori di tipo `3xx` in quanto risultato dei riscontri fatti da PA sui propri server.\nIn lettura di file firmati, non è possibile leggere con successo file la cui firma digitale o il contenuto siano stati alterati, e si riceverà un SignatureException, \nindipendentemente dall'impostazione del parametro validate nei metodi ReadXMLSigned e CreateInstanceFromXml\n"
  }
]