diff --git a/src/Controller/AdminPages/BaseAdminController.php b/src/Controller/AdminPages/BaseAdminController.php index b7c25229f..053f12e86 100644 --- a/src/Controller/AdminPages/BaseAdminController.php +++ b/src/Controller/AdminPages/BaseAdminController.php @@ -126,6 +126,14 @@ protected function additionalActionEdit(FormInterface $form, AbstractNamedDBElem return true; } + /** + * @return AbstractDBElement[] + */ + protected function getHistoryElements(AbstractNamedDBElement $entity): array + { + return $this->historyHelper->getAssociatedElements($entity); + } + protected function _edit(AbstractNamedDBElement $entity, Request $request, EntityManagerInterface $em, ?string $timestamp = null): Response { $this->denyAccessUnlessGranted('read', $entity); @@ -136,7 +144,7 @@ protected function _edit(AbstractNamedDBElement $entity, Request $request, Entit $table = $this->dataTableFactory->createFromType( LogDataTable::class, [ - 'filter_elements' => $this->historyHelper->getAssociatedElements($entity), + 'filter_elements' => $this->getHistoryElements($entity), 'mode' => 'element_history', ], ['pageLength' => 10] diff --git a/src/Controller/AdminPages/ProjectAdminController.php b/src/Controller/AdminPages/ProjectAdminController.php index 41287b691..6d763cf40 100644 --- a/src/Controller/AdminPages/ProjectAdminController.php +++ b/src/Controller/AdminPages/ProjectAdminController.php @@ -25,6 +25,8 @@ use App\Entity\Attachments\ProjectAttachment; use App\Entity\ProjectSystem\Project; use App\Entity\Parameters\ProjectParameter; +use App\Entity\Base\AbstractDBElement; +use App\Entity\Base\AbstractNamedDBElement; use App\Form\AdminPages\ProjectAdminForm; use App\Services\ImportExportSystem\EntityExporter; use App\Services\ImportExportSystem\EntityImporter; @@ -45,6 +47,18 @@ class ProjectAdminController extends BaseAdminController protected string $attachment_class = ProjectAttachment::class; protected ?string $parameter_class = ProjectParameter::class; + /** + * Project BOM history remains available on individual BOM entries. Do not + * expand it while rendering project metadata, as that would create an + * unbounded log query for large projects. + * + * @return AbstractDBElement[] + */ + protected function getHistoryElements(AbstractNamedDBElement $entity): array + { + return $this->historyHelper->getAssociatedElements($entity, false); + } + #[Route(path: '/{id}', name: 'project_delete', methods: ['DELETE'])] public function delete(Request $request, Project $entity, StructuralElementRecursionHelper $recursionHelper): RedirectResponse { diff --git a/src/Controller/ProjectController.php b/src/Controller/ProjectController.php index de16eb6e1..f3f938547 100644 --- a/src/Controller/ProjectController.php +++ b/src/Controller/ProjectController.php @@ -27,6 +27,7 @@ use App\Entity\ProjectSystem\Project; use App\Entity\ProjectSystem\ProjectBOMEntry; use App\Form\ProjectSystem\ProjectAddPartsType; +use App\Form\ProjectSystem\ProjectBOMEntryType; use App\Form\ProjectSystem\ProjectBuildType; use App\Helpers\Projects\ProjectBuildRequest; use App\Services\ImportExportSystem\BOMImporter; @@ -50,6 +51,9 @@ use Symfony\Component\HttpFoundation\ResponseHeaderBag; use Symfony\Component\Serializer\SerializerInterface; use App\Services\ImportExportSystem\ProjectBomExporter; +use App\Services\LogSystem\EventCommentHelper; +use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; +use Symfony\Bridge\Doctrine\Attribute\MapEntity; use function Symfony\Component\Translation\t; @@ -83,6 +87,72 @@ public function info(Project $project, Request $request, ProjectBuildHelper $bui ]); } + #[Route(path: '/{id}/bom/{bomEntry}/edit', name: 'project_bom_entry_edit', requirements: ['id' => '\d+', 'bomEntry' => '\d+'])] + public function editBOMEntry( + #[MapEntity(id: 'id')] Project $project, + #[MapEntity(mapping: ['bomEntry' => 'id'])] ProjectBOMEntry $bomEntry, + Request $request, + EntityManagerInterface $entityManager, + EventCommentHelper $commentHelper, + ): Response { + if ($bomEntry->getProject()?->getId() !== $project->getId()) { + throw $this->createNotFoundException(); + } + + $this->denyAccessUnlessGranted('edit', $project); + + $form = $this->createForm(ProjectBOMEntryType::class, $bomEntry, [ + 'include_log_comment' => true, + 'constraints' => [ + new UniqueEntity(fields: ['part', 'project'], message: 'project.bom_entry.part_already_in_bom', entityClass: ProjectBOMEntry::class), + new UniqueEntity(fields: ['name', 'project'], message: 'project.bom_entry.name_already_in_bom', entityClass: ProjectBOMEntry::class, ignoreNull: true), + ], + ]); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $commentHelper->setMessage($form->get('log_comment')->getData()); + $entityManager->flush(); + $this->addFlash('success', 'entity.edit_flash'); + + return $this->redirectToRoute('project_info', ['id' => $project->getId()]); + } + + if ($form->isSubmitted()) { + $this->addFlash('error', 'entity.edit_flash.invalid'); + } + + return $this->render('projects/edit_bom_entry.html.twig', [ + 'project' => $project, + 'bom_entry' => $bomEntry, + 'form' => $form, + ]); + } + + #[Route(path: '/{id}/bom/{bomEntry}', name: 'project_bom_entry_delete', requirements: ['id' => '\d+', 'bomEntry' => '\d+'], methods: ['DELETE'])] + public function deleteBOMEntry( + #[MapEntity(id: 'id')] Project $project, + #[MapEntity(mapping: ['bomEntry' => 'id'])] ProjectBOMEntry $bomEntry, + Request $request, + EntityManagerInterface $entityManager, + EventCommentHelper $commentHelper, + ): Response { + if ($bomEntry->getProject()?->getId() !== $project->getId()) { + throw $this->createNotFoundException(); + } + + $this->denyAccessUnlessGranted('edit', $project); + + if ($this->isCsrfTokenValid('delete' . $bomEntry->getId(), $request->request->get('_token'))) { + $commentHelper->setMessage($request->request->get('log_comment')); + $entityManager->remove($bomEntry); + $entityManager->flush(); + $this->addFlash('success', 'attachment_type.deleted'); + } + + return $this->redirectToRoute('project_info', ['id' => $project->getId()]); + } + #[Route(path: '/{id}/build', name: 'project_build', requirements: ['id' => '\d+'])] public function build(Project $project, Request $request, ProjectBuildHelper $buildHelper, EntityManagerInterface $entityManager): Response { @@ -343,7 +413,7 @@ public function importBOM( ]); // Validate the project entries - $errors = $validator->validateProperty($project, 'bom_entries'); + $errors = $validator->validateProperty($project, 'bom_entries', ['project_bom']); // If no validation errors occurred, save the changes and redirect to edit page if (count($errors) === 0) { @@ -583,7 +653,7 @@ public function importBOMMapFields( } // Validate the project entries (includes collection constraints) - $errors = $validator->validateProperty($project, 'bom_entries'); + $errors = $validator->validateProperty($project, 'bom_entries', ['project_bom']); // If no validation errors occurred, save and redirect if (count($errors) === 0) { diff --git a/src/DataTables/ProjectBomEntriesDataTable.php b/src/DataTables/ProjectBomEntriesDataTable.php index f65f0df7d..aa442e60d 100644 --- a/src/DataTables/ProjectBomEntriesDataTable.php +++ b/src/DataTables/ProjectBomEntriesDataTable.php @@ -26,6 +26,7 @@ use App\DataTables\Column\EntityColumn; use App\DataTables\Column\EnumColumn; use App\DataTables\Column\HTMLColumn; +use App\DataTables\Column\IconLinkColumn; use App\DataTables\Column\LocaleDateTimeColumn; use App\DataTables\Column\MarkdownColumn; use App\DataTables\Helpers\PartDataTableHelper; @@ -47,6 +48,8 @@ use Omines\DataTablesBundle\Column\TextColumn; use Omines\DataTablesBundle\DataTable; use Omines\DataTablesBundle\DataTableTypeInterface; +use Symfony\Bundle\SecurityBundle\Security; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Contracts\Translation\TranslatorInterface; final readonly class ProjectBomEntriesDataTable implements DataTableTypeInterface @@ -58,6 +61,8 @@ public function __construct( protected PartDataTableHelper $partDataTableHelper, protected ProjectBuildHelper $projectBuildHelper, protected MoneyFormatter $moneyFormatter, + protected Security $security, + protected UrlGeneratorInterface $urlGenerator, ) { } @@ -86,7 +91,6 @@ public function configure(DataTable $dataTable, array $options): void 'label' => $this->translator->trans('part.table.id'), 'visible' => false, ]) - ->add('quantity', TextColumn::class, [ 'label' => $this->translator->trans('project.bom.quantity'), 'className' => 'text-center', @@ -241,6 +245,16 @@ public function configure(DataTable $dataTable, array $options): void 'label' => $this->translator->trans('part.table.lastModified'), 'visible' => false, ]) + ->add('edit', IconLinkColumn::class, [ + 'label' => $this->translator->trans('part.table.edit'), + 'className' => 'no-colvis no-export', + 'href' => fn(mixed $value, ProjectBOMEntry $context): string => $this->urlGenerator->generate( + 'project_bom_entry_edit', + ['id' => $options['project']->getId(), 'bomEntry' => $context->getId()] + ), + 'disabled' => fn(mixed $value, ProjectBOMEntry $context): bool => !$this->security->isGranted('edit', $context->getProject()), + 'title' => $this->translator->trans('part.table.edit.title'), + ]) ; $dataTable->addOrderBy('name', DataTable::SORT_ASCENDING); diff --git a/src/Entity/ProjectSystem/Project.php b/src/Entity/ProjectSystem/Project.php index e170b3761..bcbefd6bc 100644 --- a/src/Entity/ProjectSystem/Project.php +++ b/src/Entity/ProjectSystem/Project.php @@ -126,11 +126,11 @@ class Project extends AbstractStructuralDBElement /** * @var Collection */ - #[Assert\Valid] + #[Assert\Valid(groups: ['project_bom'])] #[Groups(['extended', 'full', 'import', 'mcp_project_details:read'])] - #[ORM\OneToMany(mappedBy: 'project', targetEntity: ProjectBOMEntry::class, cascade: ['persist', 'remove'], orphanRemoval: true)] - #[UniqueObjectCollection(message: 'project.bom_entry.part_already_in_bom', fields: ['part'])] - #[UniqueObjectCollection(message: 'project.bom_entry.name_already_in_bom', fields: ['name'])] + #[ORM\OneToMany(mappedBy: 'project', targetEntity: ProjectBOMEntry::class, cascade: ['persist', 'remove'], orphanRemoval: true, fetch: 'EXTRA_LAZY')] + #[UniqueObjectCollection(message: 'project.bom_entry.part_already_in_bom', fields: ['part'], groups: ['project_bom'])] + #[UniqueObjectCollection(message: 'project.bom_entry.name_already_in_bom', fields: ['name'], groups: ['project_bom'])] protected Collection $bom_entries; #[ORM\Column(type: Types::INTEGER)] @@ -358,14 +358,11 @@ public function validate(ExecutionContextInterface $context, $payload): void if (!$child->getBuildPart() instanceof Part) { continue; } - //We have to search all bom entries for the build part - $found = false; - foreach ($this->getBomEntries() as $bom_entry) { - if ($bom_entry->getPart() === $child->getBuildPart()) { - $found = true; - break; - } - } + //Use the extra-lazy collection so validating project metadata does + //not initialize the complete BOM. + $found = !$this->getBomEntries()->matching( + Criteria::create()->where(Criteria::expr()->eq('part', $child->getBuildPart())) + )->isEmpty(); //When the build part is not found, we have to add an error if (!$found) { diff --git a/src/Entity/ProjectSystem/ProjectBOMEntry.php b/src/Entity/ProjectSystem/ProjectBOMEntry.php index e78021ced..d1e5874dd 100644 --- a/src/Entity/ProjectSystem/ProjectBOMEntry.php +++ b/src/Entity/ProjectSystem/ProjectBOMEntry.php @@ -81,7 +81,7 @@ class ProjectBOMEntry extends AbstractDBElement implements UniqueValidatableInte { use TimestampTrait; - #[Assert\Positive] + #[Assert\Positive(groups: ['Default', 'project_bom'])] #[ORM\Column(name: 'quantity', type: Types::FLOAT)] #[Groups(['bom_entry:read', 'bom_entry:write', 'import', 'simple', 'extended', 'full', 'mcp_project_details:read'])] protected float $quantity = 1.0; @@ -96,7 +96,7 @@ class ProjectBOMEntry extends AbstractDBElement implements UniqueValidatableInte /** * @var string|null An optional name describing this BOM entry (useful for non-part entries) */ - #[Assert\Expression('this.getPart() !== null or this.getName() !== null', message: 'validator.project.bom_entry.name_or_part_needed')] + #[Assert\Expression('this.getPart() !== null or this.getName() !== null', message: 'validator.project.bom_entry.name_or_part_needed', groups: ['Default', 'project_bom'])] #[ORM\Column(type: Types::STRING, nullable: true)] #[Groups(['bom_entry:read', 'bom_entry:write', 'import', 'simple', 'extended', 'full', 'mcp_project_details:read'])] protected ?string $name = null; @@ -128,7 +128,7 @@ class ProjectBOMEntry extends AbstractDBElement implements UniqueValidatableInte /** * @var BigDecimal|null The price of this non-part BOM entry */ - #[Assert\AtLeastOneOf([new BigDecimalPositive(), new Assert\IsNull()])] + #[Assert\AtLeastOneOf([new BigDecimalPositive(), new Assert\IsNull()], groups: ['Default', 'project_bom'])] #[ORM\Column(type: 'big_decimal', precision: 11, scale: 5, nullable: true)] #[Groups(['bom_entry:read', 'bom_entry:write', 'import', 'extended', 'full', 'mcp_project_details:read'])] protected ?BigDecimal $price = null; @@ -138,7 +138,7 @@ class ProjectBOMEntry extends AbstractDBElement implements UniqueValidatableInte */ #[ORM\ManyToOne(targetEntity: Currency::class)] #[ORM\JoinColumn] - #[Selectable] + #[Selectable(groups: ['Default', 'project_bom'])] protected ?Currency $price_currency = null; public function __construct() @@ -256,7 +256,7 @@ public function isPartBomEntry(): bool return $this->part instanceof Part; } - #[Assert\Callback] + #[Assert\Callback(groups: ['Default', 'project_bom'])] public function validate(ExecutionContextInterface $context, $payload): void { //Round quantity to whole numbers, if the part is not a decimal part diff --git a/src/Form/AdminPages/ProjectAdminForm.php b/src/Form/AdminPages/ProjectAdminForm.php index 2d4683c97..c75288903 100644 --- a/src/Form/AdminPages/ProjectAdminForm.php +++ b/src/Form/AdminPages/ProjectAdminForm.php @@ -23,7 +23,6 @@ namespace App\Form\AdminPages; use App\Entity\Base\AbstractNamedDBElement; -use App\Form\ProjectSystem\ProjectBOMEntryCollectionType; use App\Form\Type\RichTextEditorType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; @@ -43,8 +42,6 @@ protected function additionalFormElements(FormBuilderInterface $builder, array $ ], ]); - $builder->add('bom_entries', ProjectBOMEntryCollectionType::class); - $builder->add('status', ChoiceType::class, [ 'attr' => [ 'class' => 'form-select', diff --git a/src/Form/ProjectSystem/ProjectBOMEntryType.php b/src/Form/ProjectSystem/ProjectBOMEntryType.php index cac362fbb..4fdf538f8 100644 --- a/src/Form/ProjectSystem/ProjectBOMEntryType.php +++ b/src/Form/ProjectSystem/ProjectBOMEntryType.php @@ -10,6 +10,8 @@ use App\Form\Type\PartSelectType; use App\Form\Type\RichTextEditorType; use App\Form\Type\SIUnitType; +use App\Services\LogSystem\EventCommentNeededHelper; +use App\Services\LogSystem\EventCommentType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Event\PreSetDataEvent; use Symfony\Component\Form\Extension\Core\Type\TextType; @@ -20,6 +22,10 @@ class ProjectBOMEntryType extends AbstractType { + public function __construct(private readonly EventCommentNeededHelper $eventCommentNeededHelper) + { + } + public function buildForm(FormBuilderInterface $builder, array $options): void { @@ -81,12 +87,24 @@ public function buildForm(FormBuilderInterface $builder, array $options): void ; + if ($options['include_log_comment']) { + $builder->add('log_comment', TextType::class, [ + 'label' => 'edit.log_comment', + 'mapped' => false, + 'required' => $this->eventCommentNeededHelper->isCommentNeeded(EventCommentType::DATASTRUCTURE_EDIT), + 'empty_data' => null, + ]); + } + } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => ProjectBOMEntry::class, + 'include_log_comment' => false, ]); + + $resolver->setAllowedTypes('include_log_comment', 'bool'); } } diff --git a/src/Services/ImportExportSystem/EntityImporter.php b/src/Services/ImportExportSystem/EntityImporter.php index c33d6e6a9..8e2014115 100644 --- a/src/Services/ImportExportSystem/EntityImporter.php +++ b/src/Services/ImportExportSystem/EntityImporter.php @@ -27,6 +27,7 @@ use App\Entity\Base\AbstractStructuralDBElement; use App\Entity\Parts\Category; use App\Entity\Parts\Part; +use App\Entity\ProjectSystem\Project; use App\Repository\StructuralDBElementRepository; use App\Serializer\APIPlatform\SkippableItemNormalizer; use Symfony\Component\Validator\ConstraintViolationList; @@ -149,7 +150,11 @@ public function massCreation(string $lines, string $class_name, ?AbstractStructu //Validate entity foreach ($entities as $entity) { - $tmp = $this->validator->validate($entity); + $tmp = $this->validator->validate( + $entity, + null, + $entity instanceof Project ? ['Default', 'project_bom'] : null + ); //If no error occured, write entry to DB: if (0 === count($tmp)) { $valid_entities[] = $entity; @@ -245,7 +250,11 @@ public function importString(string $data, array $options = [], array &$errors = } //Validate entity - $tmp = $this->validator->validate($entity); + $tmp = $this->validator->validate( + $entity, + null, + $entity instanceof Project ? ['Default', 'project_bom'] : null + ); if (count($tmp) > 0) { //Log validation errors to global log. $name = $entity instanceof AbstractStructuralDBElement ? $entity->getFullPath() : $entity->getName(); diff --git a/src/Services/LogSystem/HistoryHelper.php b/src/Services/LogSystem/HistoryHelper.php index 3a31f1278..45da2e0b4 100644 --- a/src/Services/LogSystem/HistoryHelper.php +++ b/src/Services/LogSystem/HistoryHelper.php @@ -59,7 +59,7 @@ public function __construct() * * @return AbstractDBElement[] */ - public function getAssociatedElements(AbstractDBElement $element): array + public function getAssociatedElements(AbstractDBElement $element, bool $includeProjectBomEntries = true): array { $array = [$element]; if ($element instanceof AttachmentContainingDBElement) { @@ -81,7 +81,7 @@ public function getAssociatedElements(AbstractDBElement $element): array $array = array_merge($array, $element->getParameters()->toArray()); } - if ($element instanceof Project) { + if ($includeProjectBomEntries && $element instanceof Project) { $array = array_merge($array, $element->getBomEntries()->toArray()); } diff --git a/templates/admin/project_admin.html.twig b/templates/admin/project_admin.html.twig index 11c41397b..04c57103c 100644 --- a/templates/admin/project_admin.html.twig +++ b/templates/admin/project_admin.html.twig @@ -14,14 +14,13 @@ {% trans %}project.new{% endtrans %} {% endblock %} -{% block additional_pills %} - -{% endblock %} - {% block quick_links %}
+ {% if entity.id %} + + {% endif %}
{% endblock %} @@ -45,18 +44,3 @@ {% endif %} {% endblock %} - -{% block additional_panes %} -
- {% form_theme form.bom_entries with ['form/collection_types_layout.html.twig'] %} - {{ form_errors(form.bom_entries) }} - {{ form_widget(form.bom_entries) }} - {% if entity.id %} - - - {% trans %}project.edit.bom.import_bom{% endtrans %} - - {% endif %} -
-{% endblock %} diff --git a/templates/projects/edit_bom_entry.html.twig b/templates/projects/edit_bom_entry.html.twig new file mode 100644 index 000000000..6685e6f92 --- /dev/null +++ b/templates/projects/edit_bom_entry.html.twig @@ -0,0 +1,44 @@ +{% extends "main_card.html.twig" %} + +{% block title %}BOM: {{ project.name }}{% endblock %} + +{% block card_title %} + BOM: {{ project.name }} +{% endblock %} + +{% block card_content %} + {{ form_start(form) }} + {{ form_errors(form) }} + {{ form_row(form.quantity) }} + {{ form_row(form.part) }} + {{ form_row(form.name) }} + {{ form_row(form.mountnames) }} + {{ form_row(form.comment) }} +
+
{{ form_row(form.price) }}
+
{{ form_row(form.priceCurrency) }}
+
+ {{ form_row(form.log_comment) }} +
+ + {% trans %}cancel{% endtrans %} +
+ {{ form_end(form) }} + +
+ + +
+ + + +
+
+{% endblock %} diff --git a/tests/Controller/ProjectControllerTest.php b/tests/Controller/ProjectControllerTest.php index 938cd71e8..f2a71d76b 100644 --- a/tests/Controller/ProjectControllerTest.php +++ b/tests/Controller/ProjectControllerTest.php @@ -6,9 +6,12 @@ use App\Entity\ProjectSystem\Project; use App\Entity\ProjectSystem\ProjectBOMEntry; +use App\Services\ImportExportSystem\BOMImporter; use Doctrine\ORM\EntityManagerInterface; +use PHPUnit\Framework\Attributes\DataProvider; use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; +use Symfony\Component\HttpFoundation\File\File; use App\Entity\UserSystem\User; final class ProjectControllerTest extends WebTestCase @@ -377,6 +380,107 @@ public function testExportBOMRequiresExportColumns(): void ); } + #[DataProvider('projectBOMCsvProvider')] + public function testProjectMetadataEditDoesNotRenderTheCompleteBOM(string $filename, int $expectedEntries): void + { + $project = $this->createProject(sprintf('Large project metadata edit test %d', $expectedEntries)); + $importer = self::getContainer()->get(BOMImporter::class); + + $entries = $importer->importFileIntoProject( + new File(dirname(__DIR__) . '/assets/project_bom/issue_911/' . $filename), + $project, + ['type' => 'kicad_pcbnew'] + ); + + $this->entityManager->flush(); + $this->assertCount($expectedEntries, $entries); + + $crawler = $this->client->request( + 'GET', + sprintf('/en/project/%d/edit', $project->getID()) + ); + + $this->assertTrue($this->client->getResponse()->isSuccessful()); + $this->assertSame( + 0, + $crawler->filter('[name^="project_admin_form[bom_entries]"]')->count(), + 'Project metadata editing must not render every BOM entry.' + ); + + $form = $crawler->filter('form[name="project_admin_form"]')->form([ + 'project_admin_form[name]' => sprintf('Large project metadata edit test %d renamed', $expectedEntries), + ]); + $this->client->submit($form); + + $this->assertTrue($this->client->getResponse()->isSuccessful()); + $updatedProject = $this->entityManager->getRepository(Project::class)->find($project->getID()); + $this->assertInstanceOf(Project::class, $updatedProject); + $this->assertSame(sprintf('Large project metadata edit test %d renamed', $expectedEntries), $updatedProject->getName()); + } + + /** + * @return iterable + */ + public static function projectBOMCsvProvider(): iterable + { + yield '100 BOM entries' => ['Parts_0100.csv', 100]; + yield '200 BOM entries' => ['Parts_0200.csv', 200]; + yield '500 BOM entries' => ['Parts_0500.csv', 500]; + yield '1000 BOM entries' => ['Parts_1000.csv', 1000]; + yield '1400 BOM entries' => ['Parts_1400.csv', 1400]; + yield '1500 BOM entries' => ['Parts_1500.csv', 1500]; + } + + public function testBOMEntriesCanBeEditedSeparately(): void + { + $project = $this->createProject('Separate BOM edit test'); + $entry = $this->createBOMEntry($project, 'Original BOM entry', 'R1', 1.0, ''); + $this->entityManager->flush(); + + $crawler = $this->client->request( + 'GET', + sprintf('/en/project/%d/bom/%d/edit', $project->getID(), $entry->getID()) + ); + + $this->assertTrue($this->client->getResponse()->isSuccessful()); + $formCrawler = $crawler->filterXPath('//form[.//input[@name="project_bom_entry[name]"]]'); + $this->assertCount(1, $formCrawler); + $form = $formCrawler->form(); + $nameField = $formCrawler->filter('input[name$="[name]"]')->first()->attr('name'); + $this->assertIsString($nameField); + $form->setValues([ + $nameField => 'Changed BOM entry', + ]); + $this->client->submit($form); + + $this->assertTrue($this->client->getResponse()->isRedirect()); + $updatedEntry = $this->entityManager->getRepository(ProjectBOMEntry::class)->find($entry->getID()); + $this->assertInstanceOf(ProjectBOMEntry::class, $updatedEntry); + $this->assertSame('Changed BOM entry', $updatedEntry->getName()); + } + + public function testBOMEntriesCanBeDeletedSeparately(): void + { + $project = $this->createProject('Separate BOM delete test'); + $entry = $this->createBOMEntry($project, 'BOM entry to delete', 'R1', 1.0, ''); + $this->entityManager->flush(); + + $crawler = $this->client->request( + 'GET', + sprintf('/en/project/%d/bom/%d/edit', $project->getID(), $entry->getID()) + ); + + $this->client->submit($crawler->filter('form')->last()->form()); + + $this->assertTrue($this->client->getResponse()->isRedirect()); + $this->assertSame( + 0, + (int) $this->entityManager->createQuery( + 'SELECT COUNT(bom_entry.id) FROM App\\Entity\\ProjectSystem\\ProjectBOMEntry bom_entry WHERE bom_entry.id = :id' + )->setParameter('id', $entry->getID())->getSingleScalarResult() + ); + } + private function createProject(string $name): Project { $project = new Project(); diff --git a/tests/assets/project_bom/issue_911/Parts_0100.csv b/tests/assets/project_bom/issue_911/Parts_0100.csv new file mode 100644 index 000000000..1846b8248 --- /dev/null +++ b/tests/assets/project_bom/issue_911/Parts_0100.csv @@ -0,0 +1,101 @@ +Id;Designator;Footprint;Quantity;Value;Supplier and Supplier Part Number +1;Part 1;;1;1;R1 +2;Part 2;;1;2;R2 +3;Part 3;;1;3;R3 +4;Part 4;;1;4;R4 +5;Part 5;;1;5;R5 +6;Part 6;;1;6;R6 +7;Part 7;;1;7;R7 +8;Part 8;;1;8;R8 +9;Part 9;;1;9;R9 +10;Part 10;;1;10;R10 +11;Part 11;;1;11;R11 +12;Part 12;;1;12;R12 +13;Part 13;;1;13;R13 +14;Part 14;;1;14;R14 +15;Part 15;;1;15;R15 +16;Part 16;;1;16;R16 +17;Part 17;;1;17;R17 +18;Part 18;;1;18;R18 +19;Part 19;;1;19;R19 +20;Part 20;;1;20;R20 +21;Part 21;;1;21;R21 +22;Part 22;;1;22;R22 +23;Part 23;;1;23;R23 +24;Part 24;;1;24;R24 +25;Part 25;;1;25;R25 +26;Part 26;;1;26;R26 +27;Part 27;;1;27;R27 +28;Part 28;;1;28;R28 +29;Part 29;;1;29;R29 +30;Part 30;;1;30;R30 +31;Part 31;;1;31;R31 +32;Part 32;;1;32;R32 +33;Part 33;;1;33;R33 +34;Part 34;;1;34;R34 +35;Part 35;;1;35;R35 +36;Part 36;;1;36;R36 +37;Part 37;;1;37;R37 +38;Part 38;;1;38;R38 +39;Part 39;;1;39;R39 +40;Part 40;;1;40;R40 +41;Part 41;;1;41;R41 +42;Part 42;;1;42;R42 +43;Part 43;;1;43;R43 +44;Part 44;;1;44;R44 +45;Part 45;;1;45;R45 +46;Part 46;;1;46;R46 +47;Part 47;;1;47;R47 +48;Part 48;;1;48;R48 +49;Part 49;;1;49;R49 +50;Part 50;;1;50;R50 +51;Part 51;;1;51;R51 +52;Part 52;;1;52;R52 +53;Part 53;;1;53;R53 +54;Part 54;;1;54;R54 +55;Part 55;;1;55;R55 +56;Part 56;;1;56;R56 +57;Part 57;;1;57;R57 +58;Part 58;;1;58;R58 +59;Part 59;;1;59;R59 +60;Part 60;;1;60;R60 +61;Part 61;;1;61;R61 +62;Part 62;;1;62;R62 +63;Part 63;;1;63;R63 +64;Part 64;;1;64;R64 +65;Part 65;;1;65;R65 +66;Part 66;;1;66;R66 +67;Part 67;;1;67;R67 +68;Part 68;;1;68;R68 +69;Part 69;;1;69;R69 +70;Part 70;;1;70;R70 +71;Part 71;;1;71;R71 +72;Part 72;;1;72;R72 +73;Part 73;;1;73;R73 +74;Part 74;;1;74;R74 +75;Part 75;;1;75;R75 +76;Part 76;;1;76;R76 +77;Part 77;;1;77;R77 +78;Part 78;;1;78;R78 +79;Part 79;;1;79;R79 +80;Part 80;;1;80;R80 +81;Part 81;;1;81;R81 +82;Part 82;;1;82;R82 +83;Part 83;;1;83;R83 +84;Part 84;;1;84;R84 +85;Part 85;;1;85;R85 +86;Part 86;;1;86;R86 +87;Part 87;;1;87;R87 +88;Part 88;;1;88;R88 +89;Part 89;;1;89;R89 +90;Part 90;;1;90;R90 +91;Part 91;;1;91;R91 +92;Part 92;;1;92;R92 +93;Part 93;;1;93;R93 +94;Part 94;;1;94;R94 +95;Part 95;;1;95;R95 +96;Part 96;;1;96;R96 +97;Part 97;;1;97;R97 +98;Part 98;;1;98;R98 +99;Part 99;;1;99;R99 +100;Part 100;;1;100;R100 diff --git a/tests/assets/project_bom/issue_911/Parts_0200.csv b/tests/assets/project_bom/issue_911/Parts_0200.csv new file mode 100644 index 000000000..9ade952cf --- /dev/null +++ b/tests/assets/project_bom/issue_911/Parts_0200.csv @@ -0,0 +1,201 @@ +Id;Designator;Footprint;Quantity;Value;Supplier and Supplier Part Number +1;Part 1;;1;1;R1 +2;Part 2;;1;2;R2 +3;Part 3;;1;3;R3 +4;Part 4;;1;4;R4 +5;Part 5;;1;5;R5 +6;Part 6;;1;6;R6 +7;Part 7;;1;7;R7 +8;Part 8;;1;8;R8 +9;Part 9;;1;9;R9 +10;Part 10;;1;10;R10 +11;Part 11;;1;11;R11 +12;Part 12;;1;12;R12 +13;Part 13;;1;13;R13 +14;Part 14;;1;14;R14 +15;Part 15;;1;15;R15 +16;Part 16;;1;16;R16 +17;Part 17;;1;17;R17 +18;Part 18;;1;18;R18 +19;Part 19;;1;19;R19 +20;Part 20;;1;20;R20 +21;Part 21;;1;21;R21 +22;Part 22;;1;22;R22 +23;Part 23;;1;23;R23 +24;Part 24;;1;24;R24 +25;Part 25;;1;25;R25 +26;Part 26;;1;26;R26 +27;Part 27;;1;27;R27 +28;Part 28;;1;28;R28 +29;Part 29;;1;29;R29 +30;Part 30;;1;30;R30 +31;Part 31;;1;31;R31 +32;Part 32;;1;32;R32 +33;Part 33;;1;33;R33 +34;Part 34;;1;34;R34 +35;Part 35;;1;35;R35 +36;Part 36;;1;36;R36 +37;Part 37;;1;37;R37 +38;Part 38;;1;38;R38 +39;Part 39;;1;39;R39 +40;Part 40;;1;40;R40 +41;Part 41;;1;41;R41 +42;Part 42;;1;42;R42 +43;Part 43;;1;43;R43 +44;Part 44;;1;44;R44 +45;Part 45;;1;45;R45 +46;Part 46;;1;46;R46 +47;Part 47;;1;47;R47 +48;Part 48;;1;48;R48 +49;Part 49;;1;49;R49 +50;Part 50;;1;50;R50 +51;Part 51;;1;51;R51 +52;Part 52;;1;52;R52 +53;Part 53;;1;53;R53 +54;Part 54;;1;54;R54 +55;Part 55;;1;55;R55 +56;Part 56;;1;56;R56 +57;Part 57;;1;57;R57 +58;Part 58;;1;58;R58 +59;Part 59;;1;59;R59 +60;Part 60;;1;60;R60 +61;Part 61;;1;61;R61 +62;Part 62;;1;62;R62 +63;Part 63;;1;63;R63 +64;Part 64;;1;64;R64 +65;Part 65;;1;65;R65 +66;Part 66;;1;66;R66 +67;Part 67;;1;67;R67 +68;Part 68;;1;68;R68 +69;Part 69;;1;69;R69 +70;Part 70;;1;70;R70 +71;Part 71;;1;71;R71 +72;Part 72;;1;72;R72 +73;Part 73;;1;73;R73 +74;Part 74;;1;74;R74 +75;Part 75;;1;75;R75 +76;Part 76;;1;76;R76 +77;Part 77;;1;77;R77 +78;Part 78;;1;78;R78 +79;Part 79;;1;79;R79 +80;Part 80;;1;80;R80 +81;Part 81;;1;81;R81 +82;Part 82;;1;82;R82 +83;Part 83;;1;83;R83 +84;Part 84;;1;84;R84 +85;Part 85;;1;85;R85 +86;Part 86;;1;86;R86 +87;Part 87;;1;87;R87 +88;Part 88;;1;88;R88 +89;Part 89;;1;89;R89 +90;Part 90;;1;90;R90 +91;Part 91;;1;91;R91 +92;Part 92;;1;92;R92 +93;Part 93;;1;93;R93 +94;Part 94;;1;94;R94 +95;Part 95;;1;95;R95 +96;Part 96;;1;96;R96 +97;Part 97;;1;97;R97 +98;Part 98;;1;98;R98 +99;Part 99;;1;99;R99 +100;Part 100;;1;100;R100 +101;Part 101;;1;101;R101 +102;Part 102;;1;102;R102 +103;Part 103;;1;103;R103 +104;Part 104;;1;104;R104 +105;Part 105;;1;105;R105 +106;Part 106;;1;106;R106 +107;Part 107;;1;107;R107 +108;Part 108;;1;108;R108 +109;Part 109;;1;109;R109 +110;Part 110;;1;110;R110 +111;Part 111;;1;111;R111 +112;Part 112;;1;112;R112 +113;Part 113;;1;113;R113 +114;Part 114;;1;114;R114 +115;Part 115;;1;115;R115 +116;Part 116;;1;116;R116 +117;Part 117;;1;117;R117 +118;Part 118;;1;118;R118 +119;Part 119;;1;119;R119 +120;Part 120;;1;120;R120 +121;Part 121;;1;121;R121 +122;Part 122;;1;122;R122 +123;Part 123;;1;123;R123 +124;Part 124;;1;124;R124 +125;Part 125;;1;125;R125 +126;Part 126;;1;126;R126 +127;Part 127;;1;127;R127 +128;Part 128;;1;128;R128 +129;Part 129;;1;129;R129 +130;Part 130;;1;130;R130 +131;Part 131;;1;131;R131 +132;Part 132;;1;132;R132 +133;Part 133;;1;133;R133 +134;Part 134;;1;134;R134 +135;Part 135;;1;135;R135 +136;Part 136;;1;136;R136 +137;Part 137;;1;137;R137 +138;Part 138;;1;138;R138 +139;Part 139;;1;139;R139 +140;Part 140;;1;140;R140 +141;Part 141;;1;141;R141 +142;Part 142;;1;142;R142 +143;Part 143;;1;143;R143 +144;Part 144;;1;144;R144 +145;Part 145;;1;145;R145 +146;Part 146;;1;146;R146 +147;Part 147;;1;147;R147 +148;Part 148;;1;148;R148 +149;Part 149;;1;149;R149 +150;Part 150;;1;150;R150 +151;Part 151;;1;151;R151 +152;Part 152;;1;152;R152 +153;Part 153;;1;153;R153 +154;Part 154;;1;154;R154 +155;Part 155;;1;155;R155 +156;Part 156;;1;156;R156 +157;Part 157;;1;157;R157 +158;Part 158;;1;158;R158 +159;Part 159;;1;159;R159 +160;Part 160;;1;160;R160 +161;Part 161;;1;161;R161 +162;Part 162;;1;162;R162 +163;Part 163;;1;163;R163 +164;Part 164;;1;164;R164 +165;Part 165;;1;165;R165 +166;Part 166;;1;166;R166 +167;Part 167;;1;167;R167 +168;Part 168;;1;168;R168 +169;Part 169;;1;169;R169 +170;Part 170;;1;170;R170 +171;Part 171;;1;171;R171 +172;Part 172;;1;172;R172 +173;Part 173;;1;173;R173 +174;Part 174;;1;174;R174 +175;Part 175;;1;175;R175 +176;Part 176;;1;176;R176 +177;Part 177;;1;177;R177 +178;Part 178;;1;178;R178 +179;Part 179;;1;179;R179 +180;Part 180;;1;180;R180 +181;Part 181;;1;181;R181 +182;Part 182;;1;182;R182 +183;Part 183;;1;183;R183 +184;Part 184;;1;184;R184 +185;Part 185;;1;185;R185 +186;Part 186;;1;186;R186 +187;Part 187;;1;187;R187 +188;Part 188;;1;188;R188 +189;Part 189;;1;189;R189 +190;Part 190;;1;190;R190 +191;Part 191;;1;191;R191 +192;Part 192;;1;192;R192 +193;Part 193;;1;193;R193 +194;Part 194;;1;194;R194 +195;Part 195;;1;195;R195 +196;Part 196;;1;196;R196 +197;Part 197;;1;197;R197 +198;Part 198;;1;198;R198 +199;Part 199;;1;199;R199 +200;Part 200;;1;200;R200 diff --git a/tests/assets/project_bom/issue_911/Parts_0500.csv b/tests/assets/project_bom/issue_911/Parts_0500.csv new file mode 100644 index 000000000..3d2ffbd4a --- /dev/null +++ b/tests/assets/project_bom/issue_911/Parts_0500.csv @@ -0,0 +1,501 @@ +Id;Designator;Footprint;Quantity;Value;Supplier and Supplier Part Number +1;Part 1;;1;1;R1 +2;Part 2;;1;2;R2 +3;Part 3;;1;3;R3 +4;Part 4;;1;4;R4 +5;Part 5;;1;5;R5 +6;Part 6;;1;6;R6 +7;Part 7;;1;7;R7 +8;Part 8;;1;8;R8 +9;Part 9;;1;9;R9 +10;Part 10;;1;10;R10 +11;Part 11;;1;11;R11 +12;Part 12;;1;12;R12 +13;Part 13;;1;13;R13 +14;Part 14;;1;14;R14 +15;Part 15;;1;15;R15 +16;Part 16;;1;16;R16 +17;Part 17;;1;17;R17 +18;Part 18;;1;18;R18 +19;Part 19;;1;19;R19 +20;Part 20;;1;20;R20 +21;Part 21;;1;21;R21 +22;Part 22;;1;22;R22 +23;Part 23;;1;23;R23 +24;Part 24;;1;24;R24 +25;Part 25;;1;25;R25 +26;Part 26;;1;26;R26 +27;Part 27;;1;27;R27 +28;Part 28;;1;28;R28 +29;Part 29;;1;29;R29 +30;Part 30;;1;30;R30 +31;Part 31;;1;31;R31 +32;Part 32;;1;32;R32 +33;Part 33;;1;33;R33 +34;Part 34;;1;34;R34 +35;Part 35;;1;35;R35 +36;Part 36;;1;36;R36 +37;Part 37;;1;37;R37 +38;Part 38;;1;38;R38 +39;Part 39;;1;39;R39 +40;Part 40;;1;40;R40 +41;Part 41;;1;41;R41 +42;Part 42;;1;42;R42 +43;Part 43;;1;43;R43 +44;Part 44;;1;44;R44 +45;Part 45;;1;45;R45 +46;Part 46;;1;46;R46 +47;Part 47;;1;47;R47 +48;Part 48;;1;48;R48 +49;Part 49;;1;49;R49 +50;Part 50;;1;50;R50 +51;Part 51;;1;51;R51 +52;Part 52;;1;52;R52 +53;Part 53;;1;53;R53 +54;Part 54;;1;54;R54 +55;Part 55;;1;55;R55 +56;Part 56;;1;56;R56 +57;Part 57;;1;57;R57 +58;Part 58;;1;58;R58 +59;Part 59;;1;59;R59 +60;Part 60;;1;60;R60 +61;Part 61;;1;61;R61 +62;Part 62;;1;62;R62 +63;Part 63;;1;63;R63 +64;Part 64;;1;64;R64 +65;Part 65;;1;65;R65 +66;Part 66;;1;66;R66 +67;Part 67;;1;67;R67 +68;Part 68;;1;68;R68 +69;Part 69;;1;69;R69 +70;Part 70;;1;70;R70 +71;Part 71;;1;71;R71 +72;Part 72;;1;72;R72 +73;Part 73;;1;73;R73 +74;Part 74;;1;74;R74 +75;Part 75;;1;75;R75 +76;Part 76;;1;76;R76 +77;Part 77;;1;77;R77 +78;Part 78;;1;78;R78 +79;Part 79;;1;79;R79 +80;Part 80;;1;80;R80 +81;Part 81;;1;81;R81 +82;Part 82;;1;82;R82 +83;Part 83;;1;83;R83 +84;Part 84;;1;84;R84 +85;Part 85;;1;85;R85 +86;Part 86;;1;86;R86 +87;Part 87;;1;87;R87 +88;Part 88;;1;88;R88 +89;Part 89;;1;89;R89 +90;Part 90;;1;90;R90 +91;Part 91;;1;91;R91 +92;Part 92;;1;92;R92 +93;Part 93;;1;93;R93 +94;Part 94;;1;94;R94 +95;Part 95;;1;95;R95 +96;Part 96;;1;96;R96 +97;Part 97;;1;97;R97 +98;Part 98;;1;98;R98 +99;Part 99;;1;99;R99 +100;Part 100;;1;100;R100 +101;Part 101;;1;101;R101 +102;Part 102;;1;102;R102 +103;Part 103;;1;103;R103 +104;Part 104;;1;104;R104 +105;Part 105;;1;105;R105 +106;Part 106;;1;106;R106 +107;Part 107;;1;107;R107 +108;Part 108;;1;108;R108 +109;Part 109;;1;109;R109 +110;Part 110;;1;110;R110 +111;Part 111;;1;111;R111 +112;Part 112;;1;112;R112 +113;Part 113;;1;113;R113 +114;Part 114;;1;114;R114 +115;Part 115;;1;115;R115 +116;Part 116;;1;116;R116 +117;Part 117;;1;117;R117 +118;Part 118;;1;118;R118 +119;Part 119;;1;119;R119 +120;Part 120;;1;120;R120 +121;Part 121;;1;121;R121 +122;Part 122;;1;122;R122 +123;Part 123;;1;123;R123 +124;Part 124;;1;124;R124 +125;Part 125;;1;125;R125 +126;Part 126;;1;126;R126 +127;Part 127;;1;127;R127 +128;Part 128;;1;128;R128 +129;Part 129;;1;129;R129 +130;Part 130;;1;130;R130 +131;Part 131;;1;131;R131 +132;Part 132;;1;132;R132 +133;Part 133;;1;133;R133 +134;Part 134;;1;134;R134 +135;Part 135;;1;135;R135 +136;Part 136;;1;136;R136 +137;Part 137;;1;137;R137 +138;Part 138;;1;138;R138 +139;Part 139;;1;139;R139 +140;Part 140;;1;140;R140 +141;Part 141;;1;141;R141 +142;Part 142;;1;142;R142 +143;Part 143;;1;143;R143 +144;Part 144;;1;144;R144 +145;Part 145;;1;145;R145 +146;Part 146;;1;146;R146 +147;Part 147;;1;147;R147 +148;Part 148;;1;148;R148 +149;Part 149;;1;149;R149 +150;Part 150;;1;150;R150 +151;Part 151;;1;151;R151 +152;Part 152;;1;152;R152 +153;Part 153;;1;153;R153 +154;Part 154;;1;154;R154 +155;Part 155;;1;155;R155 +156;Part 156;;1;156;R156 +157;Part 157;;1;157;R157 +158;Part 158;;1;158;R158 +159;Part 159;;1;159;R159 +160;Part 160;;1;160;R160 +161;Part 161;;1;161;R161 +162;Part 162;;1;162;R162 +163;Part 163;;1;163;R163 +164;Part 164;;1;164;R164 +165;Part 165;;1;165;R165 +166;Part 166;;1;166;R166 +167;Part 167;;1;167;R167 +168;Part 168;;1;168;R168 +169;Part 169;;1;169;R169 +170;Part 170;;1;170;R170 +171;Part 171;;1;171;R171 +172;Part 172;;1;172;R172 +173;Part 173;;1;173;R173 +174;Part 174;;1;174;R174 +175;Part 175;;1;175;R175 +176;Part 176;;1;176;R176 +177;Part 177;;1;177;R177 +178;Part 178;;1;178;R178 +179;Part 179;;1;179;R179 +180;Part 180;;1;180;R180 +181;Part 181;;1;181;R181 +182;Part 182;;1;182;R182 +183;Part 183;;1;183;R183 +184;Part 184;;1;184;R184 +185;Part 185;;1;185;R185 +186;Part 186;;1;186;R186 +187;Part 187;;1;187;R187 +188;Part 188;;1;188;R188 +189;Part 189;;1;189;R189 +190;Part 190;;1;190;R190 +191;Part 191;;1;191;R191 +192;Part 192;;1;192;R192 +193;Part 193;;1;193;R193 +194;Part 194;;1;194;R194 +195;Part 195;;1;195;R195 +196;Part 196;;1;196;R196 +197;Part 197;;1;197;R197 +198;Part 198;;1;198;R198 +199;Part 199;;1;199;R199 +200;Part 200;;1;200;R200 +201;Part 201;;1;201;R201 +202;Part 202;;1;202;R202 +203;Part 203;;1;203;R203 +204;Part 204;;1;204;R204 +205;Part 205;;1;205;R205 +206;Part 206;;1;206;R206 +207;Part 207;;1;207;R207 +208;Part 208;;1;208;R208 +209;Part 209;;1;209;R209 +210;Part 210;;1;210;R210 +211;Part 211;;1;211;R211 +212;Part 212;;1;212;R212 +213;Part 213;;1;213;R213 +214;Part 214;;1;214;R214 +215;Part 215;;1;215;R215 +216;Part 216;;1;216;R216 +217;Part 217;;1;217;R217 +218;Part 218;;1;218;R218 +219;Part 219;;1;219;R219 +220;Part 220;;1;220;R220 +221;Part 221;;1;221;R221 +222;Part 222;;1;222;R222 +223;Part 223;;1;223;R223 +224;Part 224;;1;224;R224 +225;Part 225;;1;225;R225 +226;Part 226;;1;226;R226 +227;Part 227;;1;227;R227 +228;Part 228;;1;228;R228 +229;Part 229;;1;229;R229 +230;Part 230;;1;230;R230 +231;Part 231;;1;231;R231 +232;Part 232;;1;232;R232 +233;Part 233;;1;233;R233 +234;Part 234;;1;234;R234 +235;Part 235;;1;235;R235 +236;Part 236;;1;236;R236 +237;Part 237;;1;237;R237 +238;Part 238;;1;238;R238 +239;Part 239;;1;239;R239 +240;Part 240;;1;240;R240 +241;Part 241;;1;241;R241 +242;Part 242;;1;242;R242 +243;Part 243;;1;243;R243 +244;Part 244;;1;244;R244 +245;Part 245;;1;245;R245 +246;Part 246;;1;246;R246 +247;Part 247;;1;247;R247 +248;Part 248;;1;248;R248 +249;Part 249;;1;249;R249 +250;Part 250;;1;250;R250 +251;Part 251;;1;251;R251 +252;Part 252;;1;252;R252 +253;Part 253;;1;253;R253 +254;Part 254;;1;254;R254 +255;Part 255;;1;255;R255 +256;Part 256;;1;256;R256 +257;Part 257;;1;257;R257 +258;Part 258;;1;258;R258 +259;Part 259;;1;259;R259 +260;Part 260;;1;260;R260 +261;Part 261;;1;261;R261 +262;Part 262;;1;262;R262 +263;Part 263;;1;263;R263 +264;Part 264;;1;264;R264 +265;Part 265;;1;265;R265 +266;Part 266;;1;266;R266 +267;Part 267;;1;267;R267 +268;Part 268;;1;268;R268 +269;Part 269;;1;269;R269 +270;Part 270;;1;270;R270 +271;Part 271;;1;271;R271 +272;Part 272;;1;272;R272 +273;Part 273;;1;273;R273 +274;Part 274;;1;274;R274 +275;Part 275;;1;275;R275 +276;Part 276;;1;276;R276 +277;Part 277;;1;277;R277 +278;Part 278;;1;278;R278 +279;Part 279;;1;279;R279 +280;Part 280;;1;280;R280 +281;Part 281;;1;281;R281 +282;Part 282;;1;282;R282 +283;Part 283;;1;283;R283 +284;Part 284;;1;284;R284 +285;Part 285;;1;285;R285 +286;Part 286;;1;286;R286 +287;Part 287;;1;287;R287 +288;Part 288;;1;288;R288 +289;Part 289;;1;289;R289 +290;Part 290;;1;290;R290 +291;Part 291;;1;291;R291 +292;Part 292;;1;292;R292 +293;Part 293;;1;293;R293 +294;Part 294;;1;294;R294 +295;Part 295;;1;295;R295 +296;Part 296;;1;296;R296 +297;Part 297;;1;297;R297 +298;Part 298;;1;298;R298 +299;Part 299;;1;299;R299 +300;Part 300;;1;300;R300 +301;Part 301;;1;301;R301 +302;Part 302;;1;302;R302 +303;Part 303;;1;303;R303 +304;Part 304;;1;304;R304 +305;Part 305;;1;305;R305 +306;Part 306;;1;306;R306 +307;Part 307;;1;307;R307 +308;Part 308;;1;308;R308 +309;Part 309;;1;309;R309 +310;Part 310;;1;310;R310 +311;Part 311;;1;311;R311 +312;Part 312;;1;312;R312 +313;Part 313;;1;313;R313 +314;Part 314;;1;314;R314 +315;Part 315;;1;315;R315 +316;Part 316;;1;316;R316 +317;Part 317;;1;317;R317 +318;Part 318;;1;318;R318 +319;Part 319;;1;319;R319 +320;Part 320;;1;320;R320 +321;Part 321;;1;321;R321 +322;Part 322;;1;322;R322 +323;Part 323;;1;323;R323 +324;Part 324;;1;324;R324 +325;Part 325;;1;325;R325 +326;Part 326;;1;326;R326 +327;Part 327;;1;327;R327 +328;Part 328;;1;328;R328 +329;Part 329;;1;329;R329 +330;Part 330;;1;330;R330 +331;Part 331;;1;331;R331 +332;Part 332;;1;332;R332 +333;Part 333;;1;333;R333 +334;Part 334;;1;334;R334 +335;Part 335;;1;335;R335 +336;Part 336;;1;336;R336 +337;Part 337;;1;337;R337 +338;Part 338;;1;338;R338 +339;Part 339;;1;339;R339 +340;Part 340;;1;340;R340 +341;Part 341;;1;341;R341 +342;Part 342;;1;342;R342 +343;Part 343;;1;343;R343 +344;Part 344;;1;344;R344 +345;Part 345;;1;345;R345 +346;Part 346;;1;346;R346 +347;Part 347;;1;347;R347 +348;Part 348;;1;348;R348 +349;Part 349;;1;349;R349 +350;Part 350;;1;350;R350 +351;Part 351;;1;351;R351 +352;Part 352;;1;352;R352 +353;Part 353;;1;353;R353 +354;Part 354;;1;354;R354 +355;Part 355;;1;355;R355 +356;Part 356;;1;356;R356 +357;Part 357;;1;357;R357 +358;Part 358;;1;358;R358 +359;Part 359;;1;359;R359 +360;Part 360;;1;360;R360 +361;Part 361;;1;361;R361 +362;Part 362;;1;362;R362 +363;Part 363;;1;363;R363 +364;Part 364;;1;364;R364 +365;Part 365;;1;365;R365 +366;Part 366;;1;366;R366 +367;Part 367;;1;367;R367 +368;Part 368;;1;368;R368 +369;Part 369;;1;369;R369 +370;Part 370;;1;370;R370 +371;Part 371;;1;371;R371 +372;Part 372;;1;372;R372 +373;Part 373;;1;373;R373 +374;Part 374;;1;374;R374 +375;Part 375;;1;375;R375 +376;Part 376;;1;376;R376 +377;Part 377;;1;377;R377 +378;Part 378;;1;378;R378 +379;Part 379;;1;379;R379 +380;Part 380;;1;380;R380 +381;Part 381;;1;381;R381 +382;Part 382;;1;382;R382 +383;Part 383;;1;383;R383 +384;Part 384;;1;384;R384 +385;Part 385;;1;385;R385 +386;Part 386;;1;386;R386 +387;Part 387;;1;387;R387 +388;Part 388;;1;388;R388 +389;Part 389;;1;389;R389 +390;Part 390;;1;390;R390 +391;Part 391;;1;391;R391 +392;Part 392;;1;392;R392 +393;Part 393;;1;393;R393 +394;Part 394;;1;394;R394 +395;Part 395;;1;395;R395 +396;Part 396;;1;396;R396 +397;Part 397;;1;397;R397 +398;Part 398;;1;398;R398 +399;Part 399;;1;399;R399 +400;Part 400;;1;400;R400 +401;Part 401;;1;401;R401 +402;Part 402;;1;402;R402 +403;Part 403;;1;403;R403 +404;Part 404;;1;404;R404 +405;Part 405;;1;405;R405 +406;Part 406;;1;406;R406 +407;Part 407;;1;407;R407 +408;Part 408;;1;408;R408 +409;Part 409;;1;409;R409 +410;Part 410;;1;410;R410 +411;Part 411;;1;411;R411 +412;Part 412;;1;412;R412 +413;Part 413;;1;413;R413 +414;Part 414;;1;414;R414 +415;Part 415;;1;415;R415 +416;Part 416;;1;416;R416 +417;Part 417;;1;417;R417 +418;Part 418;;1;418;R418 +419;Part 419;;1;419;R419 +420;Part 420;;1;420;R420 +421;Part 421;;1;421;R421 +422;Part 422;;1;422;R422 +423;Part 423;;1;423;R423 +424;Part 424;;1;424;R424 +425;Part 425;;1;425;R425 +426;Part 426;;1;426;R426 +427;Part 427;;1;427;R427 +428;Part 428;;1;428;R428 +429;Part 429;;1;429;R429 +430;Part 430;;1;430;R430 +431;Part 431;;1;431;R431 +432;Part 432;;1;432;R432 +433;Part 433;;1;433;R433 +434;Part 434;;1;434;R434 +435;Part 435;;1;435;R435 +436;Part 436;;1;436;R436 +437;Part 437;;1;437;R437 +438;Part 438;;1;438;R438 +439;Part 439;;1;439;R439 +440;Part 440;;1;440;R440 +441;Part 441;;1;441;R441 +442;Part 442;;1;442;R442 +443;Part 443;;1;443;R443 +444;Part 444;;1;444;R444 +445;Part 445;;1;445;R445 +446;Part 446;;1;446;R446 +447;Part 447;;1;447;R447 +448;Part 448;;1;448;R448 +449;Part 449;;1;449;R449 +450;Part 450;;1;450;R450 +451;Part 451;;1;451;R451 +452;Part 452;;1;452;R452 +453;Part 453;;1;453;R453 +454;Part 454;;1;454;R454 +455;Part 455;;1;455;R455 +456;Part 456;;1;456;R456 +457;Part 457;;1;457;R457 +458;Part 458;;1;458;R458 +459;Part 459;;1;459;R459 +460;Part 460;;1;460;R460 +461;Part 461;;1;461;R461 +462;Part 462;;1;462;R462 +463;Part 463;;1;463;R463 +464;Part 464;;1;464;R464 +465;Part 465;;1;465;R465 +466;Part 466;;1;466;R466 +467;Part 467;;1;467;R467 +468;Part 468;;1;468;R468 +469;Part 469;;1;469;R469 +470;Part 470;;1;470;R470 +471;Part 471;;1;471;R471 +472;Part 472;;1;472;R472 +473;Part 473;;1;473;R473 +474;Part 474;;1;474;R474 +475;Part 475;;1;475;R475 +476;Part 476;;1;476;R476 +477;Part 477;;1;477;R477 +478;Part 478;;1;478;R478 +479;Part 479;;1;479;R479 +480;Part 480;;1;480;R480 +481;Part 481;;1;481;R481 +482;Part 482;;1;482;R482 +483;Part 483;;1;483;R483 +484;Part 484;;1;484;R484 +485;Part 485;;1;485;R485 +486;Part 486;;1;486;R486 +487;Part 487;;1;487;R487 +488;Part 488;;1;488;R488 +489;Part 489;;1;489;R489 +490;Part 490;;1;490;R490 +491;Part 491;;1;491;R491 +492;Part 492;;1;492;R492 +493;Part 493;;1;493;R493 +494;Part 494;;1;494;R494 +495;Part 495;;1;495;R495 +496;Part 496;;1;496;R496 +497;Part 497;;1;497;R497 +498;Part 498;;1;498;R498 +499;Part 499;;1;499;R499 +500;Part 500;;1;500;R500 diff --git a/tests/assets/project_bom/issue_911/Parts_1000.csv b/tests/assets/project_bom/issue_911/Parts_1000.csv new file mode 100644 index 000000000..f8ad35d61 --- /dev/null +++ b/tests/assets/project_bom/issue_911/Parts_1000.csv @@ -0,0 +1,1001 @@ +Id;Designator;Footprint;Quantity;Value;Supplier and Supplier Part Number +1;Part 1;;1;1;R1 +2;Part 2;;1;2;R2 +3;Part 3;;1;3;R3 +4;Part 4;;1;4;R4 +5;Part 5;;1;5;R5 +6;Part 6;;1;6;R6 +7;Part 7;;1;7;R7 +8;Part 8;;1;8;R8 +9;Part 9;;1;9;R9 +10;Part 10;;1;10;R10 +11;Part 11;;1;11;R11 +12;Part 12;;1;12;R12 +13;Part 13;;1;13;R13 +14;Part 14;;1;14;R14 +15;Part 15;;1;15;R15 +16;Part 16;;1;16;R16 +17;Part 17;;1;17;R17 +18;Part 18;;1;18;R18 +19;Part 19;;1;19;R19 +20;Part 20;;1;20;R20 +21;Part 21;;1;21;R21 +22;Part 22;;1;22;R22 +23;Part 23;;1;23;R23 +24;Part 24;;1;24;R24 +25;Part 25;;1;25;R25 +26;Part 26;;1;26;R26 +27;Part 27;;1;27;R27 +28;Part 28;;1;28;R28 +29;Part 29;;1;29;R29 +30;Part 30;;1;30;R30 +31;Part 31;;1;31;R31 +32;Part 32;;1;32;R32 +33;Part 33;;1;33;R33 +34;Part 34;;1;34;R34 +35;Part 35;;1;35;R35 +36;Part 36;;1;36;R36 +37;Part 37;;1;37;R37 +38;Part 38;;1;38;R38 +39;Part 39;;1;39;R39 +40;Part 40;;1;40;R40 +41;Part 41;;1;41;R41 +42;Part 42;;1;42;R42 +43;Part 43;;1;43;R43 +44;Part 44;;1;44;R44 +45;Part 45;;1;45;R45 +46;Part 46;;1;46;R46 +47;Part 47;;1;47;R47 +48;Part 48;;1;48;R48 +49;Part 49;;1;49;R49 +50;Part 50;;1;50;R50 +51;Part 51;;1;51;R51 +52;Part 52;;1;52;R52 +53;Part 53;;1;53;R53 +54;Part 54;;1;54;R54 +55;Part 55;;1;55;R55 +56;Part 56;;1;56;R56 +57;Part 57;;1;57;R57 +58;Part 58;;1;58;R58 +59;Part 59;;1;59;R59 +60;Part 60;;1;60;R60 +61;Part 61;;1;61;R61 +62;Part 62;;1;62;R62 +63;Part 63;;1;63;R63 +64;Part 64;;1;64;R64 +65;Part 65;;1;65;R65 +66;Part 66;;1;66;R66 +67;Part 67;;1;67;R67 +68;Part 68;;1;68;R68 +69;Part 69;;1;69;R69 +70;Part 70;;1;70;R70 +71;Part 71;;1;71;R71 +72;Part 72;;1;72;R72 +73;Part 73;;1;73;R73 +74;Part 74;;1;74;R74 +75;Part 75;;1;75;R75 +76;Part 76;;1;76;R76 +77;Part 77;;1;77;R77 +78;Part 78;;1;78;R78 +79;Part 79;;1;79;R79 +80;Part 80;;1;80;R80 +81;Part 81;;1;81;R81 +82;Part 82;;1;82;R82 +83;Part 83;;1;83;R83 +84;Part 84;;1;84;R84 +85;Part 85;;1;85;R85 +86;Part 86;;1;86;R86 +87;Part 87;;1;87;R87 +88;Part 88;;1;88;R88 +89;Part 89;;1;89;R89 +90;Part 90;;1;90;R90 +91;Part 91;;1;91;R91 +92;Part 92;;1;92;R92 +93;Part 93;;1;93;R93 +94;Part 94;;1;94;R94 +95;Part 95;;1;95;R95 +96;Part 96;;1;96;R96 +97;Part 97;;1;97;R97 +98;Part 98;;1;98;R98 +99;Part 99;;1;99;R99 +100;Part 100;;1;100;R100 +101;Part 101;;1;101;R101 +102;Part 102;;1;102;R102 +103;Part 103;;1;103;R103 +104;Part 104;;1;104;R104 +105;Part 105;;1;105;R105 +106;Part 106;;1;106;R106 +107;Part 107;;1;107;R107 +108;Part 108;;1;108;R108 +109;Part 109;;1;109;R109 +110;Part 110;;1;110;R110 +111;Part 111;;1;111;R111 +112;Part 112;;1;112;R112 +113;Part 113;;1;113;R113 +114;Part 114;;1;114;R114 +115;Part 115;;1;115;R115 +116;Part 116;;1;116;R116 +117;Part 117;;1;117;R117 +118;Part 118;;1;118;R118 +119;Part 119;;1;119;R119 +120;Part 120;;1;120;R120 +121;Part 121;;1;121;R121 +122;Part 122;;1;122;R122 +123;Part 123;;1;123;R123 +124;Part 124;;1;124;R124 +125;Part 125;;1;125;R125 +126;Part 126;;1;126;R126 +127;Part 127;;1;127;R127 +128;Part 128;;1;128;R128 +129;Part 129;;1;129;R129 +130;Part 130;;1;130;R130 +131;Part 131;;1;131;R131 +132;Part 132;;1;132;R132 +133;Part 133;;1;133;R133 +134;Part 134;;1;134;R134 +135;Part 135;;1;135;R135 +136;Part 136;;1;136;R136 +137;Part 137;;1;137;R137 +138;Part 138;;1;138;R138 +139;Part 139;;1;139;R139 +140;Part 140;;1;140;R140 +141;Part 141;;1;141;R141 +142;Part 142;;1;142;R142 +143;Part 143;;1;143;R143 +144;Part 144;;1;144;R144 +145;Part 145;;1;145;R145 +146;Part 146;;1;146;R146 +147;Part 147;;1;147;R147 +148;Part 148;;1;148;R148 +149;Part 149;;1;149;R149 +150;Part 150;;1;150;R150 +151;Part 151;;1;151;R151 +152;Part 152;;1;152;R152 +153;Part 153;;1;153;R153 +154;Part 154;;1;154;R154 +155;Part 155;;1;155;R155 +156;Part 156;;1;156;R156 +157;Part 157;;1;157;R157 +158;Part 158;;1;158;R158 +159;Part 159;;1;159;R159 +160;Part 160;;1;160;R160 +161;Part 161;;1;161;R161 +162;Part 162;;1;162;R162 +163;Part 163;;1;163;R163 +164;Part 164;;1;164;R164 +165;Part 165;;1;165;R165 +166;Part 166;;1;166;R166 +167;Part 167;;1;167;R167 +168;Part 168;;1;168;R168 +169;Part 169;;1;169;R169 +170;Part 170;;1;170;R170 +171;Part 171;;1;171;R171 +172;Part 172;;1;172;R172 +173;Part 173;;1;173;R173 +174;Part 174;;1;174;R174 +175;Part 175;;1;175;R175 +176;Part 176;;1;176;R176 +177;Part 177;;1;177;R177 +178;Part 178;;1;178;R178 +179;Part 179;;1;179;R179 +180;Part 180;;1;180;R180 +181;Part 181;;1;181;R181 +182;Part 182;;1;182;R182 +183;Part 183;;1;183;R183 +184;Part 184;;1;184;R184 +185;Part 185;;1;185;R185 +186;Part 186;;1;186;R186 +187;Part 187;;1;187;R187 +188;Part 188;;1;188;R188 +189;Part 189;;1;189;R189 +190;Part 190;;1;190;R190 +191;Part 191;;1;191;R191 +192;Part 192;;1;192;R192 +193;Part 193;;1;193;R193 +194;Part 194;;1;194;R194 +195;Part 195;;1;195;R195 +196;Part 196;;1;196;R196 +197;Part 197;;1;197;R197 +198;Part 198;;1;198;R198 +199;Part 199;;1;199;R199 +200;Part 200;;1;200;R200 +201;Part 201;;1;201;R201 +202;Part 202;;1;202;R202 +203;Part 203;;1;203;R203 +204;Part 204;;1;204;R204 +205;Part 205;;1;205;R205 +206;Part 206;;1;206;R206 +207;Part 207;;1;207;R207 +208;Part 208;;1;208;R208 +209;Part 209;;1;209;R209 +210;Part 210;;1;210;R210 +211;Part 211;;1;211;R211 +212;Part 212;;1;212;R212 +213;Part 213;;1;213;R213 +214;Part 214;;1;214;R214 +215;Part 215;;1;215;R215 +216;Part 216;;1;216;R216 +217;Part 217;;1;217;R217 +218;Part 218;;1;218;R218 +219;Part 219;;1;219;R219 +220;Part 220;;1;220;R220 +221;Part 221;;1;221;R221 +222;Part 222;;1;222;R222 +223;Part 223;;1;223;R223 +224;Part 224;;1;224;R224 +225;Part 225;;1;225;R225 +226;Part 226;;1;226;R226 +227;Part 227;;1;227;R227 +228;Part 228;;1;228;R228 +229;Part 229;;1;229;R229 +230;Part 230;;1;230;R230 +231;Part 231;;1;231;R231 +232;Part 232;;1;232;R232 +233;Part 233;;1;233;R233 +234;Part 234;;1;234;R234 +235;Part 235;;1;235;R235 +236;Part 236;;1;236;R236 +237;Part 237;;1;237;R237 +238;Part 238;;1;238;R238 +239;Part 239;;1;239;R239 +240;Part 240;;1;240;R240 +241;Part 241;;1;241;R241 +242;Part 242;;1;242;R242 +243;Part 243;;1;243;R243 +244;Part 244;;1;244;R244 +245;Part 245;;1;245;R245 +246;Part 246;;1;246;R246 +247;Part 247;;1;247;R247 +248;Part 248;;1;248;R248 +249;Part 249;;1;249;R249 +250;Part 250;;1;250;R250 +251;Part 251;;1;251;R251 +252;Part 252;;1;252;R252 +253;Part 253;;1;253;R253 +254;Part 254;;1;254;R254 +255;Part 255;;1;255;R255 +256;Part 256;;1;256;R256 +257;Part 257;;1;257;R257 +258;Part 258;;1;258;R258 +259;Part 259;;1;259;R259 +260;Part 260;;1;260;R260 +261;Part 261;;1;261;R261 +262;Part 262;;1;262;R262 +263;Part 263;;1;263;R263 +264;Part 264;;1;264;R264 +265;Part 265;;1;265;R265 +266;Part 266;;1;266;R266 +267;Part 267;;1;267;R267 +268;Part 268;;1;268;R268 +269;Part 269;;1;269;R269 +270;Part 270;;1;270;R270 +271;Part 271;;1;271;R271 +272;Part 272;;1;272;R272 +273;Part 273;;1;273;R273 +274;Part 274;;1;274;R274 +275;Part 275;;1;275;R275 +276;Part 276;;1;276;R276 +277;Part 277;;1;277;R277 +278;Part 278;;1;278;R278 +279;Part 279;;1;279;R279 +280;Part 280;;1;280;R280 +281;Part 281;;1;281;R281 +282;Part 282;;1;282;R282 +283;Part 283;;1;283;R283 +284;Part 284;;1;284;R284 +285;Part 285;;1;285;R285 +286;Part 286;;1;286;R286 +287;Part 287;;1;287;R287 +288;Part 288;;1;288;R288 +289;Part 289;;1;289;R289 +290;Part 290;;1;290;R290 +291;Part 291;;1;291;R291 +292;Part 292;;1;292;R292 +293;Part 293;;1;293;R293 +294;Part 294;;1;294;R294 +295;Part 295;;1;295;R295 +296;Part 296;;1;296;R296 +297;Part 297;;1;297;R297 +298;Part 298;;1;298;R298 +299;Part 299;;1;299;R299 +300;Part 300;;1;300;R300 +301;Part 301;;1;301;R301 +302;Part 302;;1;302;R302 +303;Part 303;;1;303;R303 +304;Part 304;;1;304;R304 +305;Part 305;;1;305;R305 +306;Part 306;;1;306;R306 +307;Part 307;;1;307;R307 +308;Part 308;;1;308;R308 +309;Part 309;;1;309;R309 +310;Part 310;;1;310;R310 +311;Part 311;;1;311;R311 +312;Part 312;;1;312;R312 +313;Part 313;;1;313;R313 +314;Part 314;;1;314;R314 +315;Part 315;;1;315;R315 +316;Part 316;;1;316;R316 +317;Part 317;;1;317;R317 +318;Part 318;;1;318;R318 +319;Part 319;;1;319;R319 +320;Part 320;;1;320;R320 +321;Part 321;;1;321;R321 +322;Part 322;;1;322;R322 +323;Part 323;;1;323;R323 +324;Part 324;;1;324;R324 +325;Part 325;;1;325;R325 +326;Part 326;;1;326;R326 +327;Part 327;;1;327;R327 +328;Part 328;;1;328;R328 +329;Part 329;;1;329;R329 +330;Part 330;;1;330;R330 +331;Part 331;;1;331;R331 +332;Part 332;;1;332;R332 +333;Part 333;;1;333;R333 +334;Part 334;;1;334;R334 +335;Part 335;;1;335;R335 +336;Part 336;;1;336;R336 +337;Part 337;;1;337;R337 +338;Part 338;;1;338;R338 +339;Part 339;;1;339;R339 +340;Part 340;;1;340;R340 +341;Part 341;;1;341;R341 +342;Part 342;;1;342;R342 +343;Part 343;;1;343;R343 +344;Part 344;;1;344;R344 +345;Part 345;;1;345;R345 +346;Part 346;;1;346;R346 +347;Part 347;;1;347;R347 +348;Part 348;;1;348;R348 +349;Part 349;;1;349;R349 +350;Part 350;;1;350;R350 +351;Part 351;;1;351;R351 +352;Part 352;;1;352;R352 +353;Part 353;;1;353;R353 +354;Part 354;;1;354;R354 +355;Part 355;;1;355;R355 +356;Part 356;;1;356;R356 +357;Part 357;;1;357;R357 +358;Part 358;;1;358;R358 +359;Part 359;;1;359;R359 +360;Part 360;;1;360;R360 +361;Part 361;;1;361;R361 +362;Part 362;;1;362;R362 +363;Part 363;;1;363;R363 +364;Part 364;;1;364;R364 +365;Part 365;;1;365;R365 +366;Part 366;;1;366;R366 +367;Part 367;;1;367;R367 +368;Part 368;;1;368;R368 +369;Part 369;;1;369;R369 +370;Part 370;;1;370;R370 +371;Part 371;;1;371;R371 +372;Part 372;;1;372;R372 +373;Part 373;;1;373;R373 +374;Part 374;;1;374;R374 +375;Part 375;;1;375;R375 +376;Part 376;;1;376;R376 +377;Part 377;;1;377;R377 +378;Part 378;;1;378;R378 +379;Part 379;;1;379;R379 +380;Part 380;;1;380;R380 +381;Part 381;;1;381;R381 +382;Part 382;;1;382;R382 +383;Part 383;;1;383;R383 +384;Part 384;;1;384;R384 +385;Part 385;;1;385;R385 +386;Part 386;;1;386;R386 +387;Part 387;;1;387;R387 +388;Part 388;;1;388;R388 +389;Part 389;;1;389;R389 +390;Part 390;;1;390;R390 +391;Part 391;;1;391;R391 +392;Part 392;;1;392;R392 +393;Part 393;;1;393;R393 +394;Part 394;;1;394;R394 +395;Part 395;;1;395;R395 +396;Part 396;;1;396;R396 +397;Part 397;;1;397;R397 +398;Part 398;;1;398;R398 +399;Part 399;;1;399;R399 +400;Part 400;;1;400;R400 +401;Part 401;;1;401;R401 +402;Part 402;;1;402;R402 +403;Part 403;;1;403;R403 +404;Part 404;;1;404;R404 +405;Part 405;;1;405;R405 +406;Part 406;;1;406;R406 +407;Part 407;;1;407;R407 +408;Part 408;;1;408;R408 +409;Part 409;;1;409;R409 +410;Part 410;;1;410;R410 +411;Part 411;;1;411;R411 +412;Part 412;;1;412;R412 +413;Part 413;;1;413;R413 +414;Part 414;;1;414;R414 +415;Part 415;;1;415;R415 +416;Part 416;;1;416;R416 +417;Part 417;;1;417;R417 +418;Part 418;;1;418;R418 +419;Part 419;;1;419;R419 +420;Part 420;;1;420;R420 +421;Part 421;;1;421;R421 +422;Part 422;;1;422;R422 +423;Part 423;;1;423;R423 +424;Part 424;;1;424;R424 +425;Part 425;;1;425;R425 +426;Part 426;;1;426;R426 +427;Part 427;;1;427;R427 +428;Part 428;;1;428;R428 +429;Part 429;;1;429;R429 +430;Part 430;;1;430;R430 +431;Part 431;;1;431;R431 +432;Part 432;;1;432;R432 +433;Part 433;;1;433;R433 +434;Part 434;;1;434;R434 +435;Part 435;;1;435;R435 +436;Part 436;;1;436;R436 +437;Part 437;;1;437;R437 +438;Part 438;;1;438;R438 +439;Part 439;;1;439;R439 +440;Part 440;;1;440;R440 +441;Part 441;;1;441;R441 +442;Part 442;;1;442;R442 +443;Part 443;;1;443;R443 +444;Part 444;;1;444;R444 +445;Part 445;;1;445;R445 +446;Part 446;;1;446;R446 +447;Part 447;;1;447;R447 +448;Part 448;;1;448;R448 +449;Part 449;;1;449;R449 +450;Part 450;;1;450;R450 +451;Part 451;;1;451;R451 +452;Part 452;;1;452;R452 +453;Part 453;;1;453;R453 +454;Part 454;;1;454;R454 +455;Part 455;;1;455;R455 +456;Part 456;;1;456;R456 +457;Part 457;;1;457;R457 +458;Part 458;;1;458;R458 +459;Part 459;;1;459;R459 +460;Part 460;;1;460;R460 +461;Part 461;;1;461;R461 +462;Part 462;;1;462;R462 +463;Part 463;;1;463;R463 +464;Part 464;;1;464;R464 +465;Part 465;;1;465;R465 +466;Part 466;;1;466;R466 +467;Part 467;;1;467;R467 +468;Part 468;;1;468;R468 +469;Part 469;;1;469;R469 +470;Part 470;;1;470;R470 +471;Part 471;;1;471;R471 +472;Part 472;;1;472;R472 +473;Part 473;;1;473;R473 +474;Part 474;;1;474;R474 +475;Part 475;;1;475;R475 +476;Part 476;;1;476;R476 +477;Part 477;;1;477;R477 +478;Part 478;;1;478;R478 +479;Part 479;;1;479;R479 +480;Part 480;;1;480;R480 +481;Part 481;;1;481;R481 +482;Part 482;;1;482;R482 +483;Part 483;;1;483;R483 +484;Part 484;;1;484;R484 +485;Part 485;;1;485;R485 +486;Part 486;;1;486;R486 +487;Part 487;;1;487;R487 +488;Part 488;;1;488;R488 +489;Part 489;;1;489;R489 +490;Part 490;;1;490;R490 +491;Part 491;;1;491;R491 +492;Part 492;;1;492;R492 +493;Part 493;;1;493;R493 +494;Part 494;;1;494;R494 +495;Part 495;;1;495;R495 +496;Part 496;;1;496;R496 +497;Part 497;;1;497;R497 +498;Part 498;;1;498;R498 +499;Part 499;;1;499;R499 +500;Part 500;;1;500;R500 +501;Part 501;;1;501;R501 +502;Part 502;;1;502;R502 +503;Part 503;;1;503;R503 +504;Part 504;;1;504;R504 +505;Part 505;;1;505;R505 +506;Part 506;;1;506;R506 +507;Part 507;;1;507;R507 +508;Part 508;;1;508;R508 +509;Part 509;;1;509;R509 +510;Part 510;;1;510;R510 +511;Part 511;;1;511;R511 +512;Part 512;;1;512;R512 +513;Part 513;;1;513;R513 +514;Part 514;;1;514;R514 +515;Part 515;;1;515;R515 +516;Part 516;;1;516;R516 +517;Part 517;;1;517;R517 +518;Part 518;;1;518;R518 +519;Part 519;;1;519;R519 +520;Part 520;;1;520;R520 +521;Part 521;;1;521;R521 +522;Part 522;;1;522;R522 +523;Part 523;;1;523;R523 +524;Part 524;;1;524;R524 +525;Part 525;;1;525;R525 +526;Part 526;;1;526;R526 +527;Part 527;;1;527;R527 +528;Part 528;;1;528;R528 +529;Part 529;;1;529;R529 +530;Part 530;;1;530;R530 +531;Part 531;;1;531;R531 +532;Part 532;;1;532;R532 +533;Part 533;;1;533;R533 +534;Part 534;;1;534;R534 +535;Part 535;;1;535;R535 +536;Part 536;;1;536;R536 +537;Part 537;;1;537;R537 +538;Part 538;;1;538;R538 +539;Part 539;;1;539;R539 +540;Part 540;;1;540;R540 +541;Part 541;;1;541;R541 +542;Part 542;;1;542;R542 +543;Part 543;;1;543;R543 +544;Part 544;;1;544;R544 +545;Part 545;;1;545;R545 +546;Part 546;;1;546;R546 +547;Part 547;;1;547;R547 +548;Part 548;;1;548;R548 +549;Part 549;;1;549;R549 +550;Part 550;;1;550;R550 +551;Part 551;;1;551;R551 +552;Part 552;;1;552;R552 +553;Part 553;;1;553;R553 +554;Part 554;;1;554;R554 +555;Part 555;;1;555;R555 +556;Part 556;;1;556;R556 +557;Part 557;;1;557;R557 +558;Part 558;;1;558;R558 +559;Part 559;;1;559;R559 +560;Part 560;;1;560;R560 +561;Part 561;;1;561;R561 +562;Part 562;;1;562;R562 +563;Part 563;;1;563;R563 +564;Part 564;;1;564;R564 +565;Part 565;;1;565;R565 +566;Part 566;;1;566;R566 +567;Part 567;;1;567;R567 +568;Part 568;;1;568;R568 +569;Part 569;;1;569;R569 +570;Part 570;;1;570;R570 +571;Part 571;;1;571;R571 +572;Part 572;;1;572;R572 +573;Part 573;;1;573;R573 +574;Part 574;;1;574;R574 +575;Part 575;;1;575;R575 +576;Part 576;;1;576;R576 +577;Part 577;;1;577;R577 +578;Part 578;;1;578;R578 +579;Part 579;;1;579;R579 +580;Part 580;;1;580;R580 +581;Part 581;;1;581;R581 +582;Part 582;;1;582;R582 +583;Part 583;;1;583;R583 +584;Part 584;;1;584;R584 +585;Part 585;;1;585;R585 +586;Part 586;;1;586;R586 +587;Part 587;;1;587;R587 +588;Part 588;;1;588;R588 +589;Part 589;;1;589;R589 +590;Part 590;;1;590;R590 +591;Part 591;;1;591;R591 +592;Part 592;;1;592;R592 +593;Part 593;;1;593;R593 +594;Part 594;;1;594;R594 +595;Part 595;;1;595;R595 +596;Part 596;;1;596;R596 +597;Part 597;;1;597;R597 +598;Part 598;;1;598;R598 +599;Part 599;;1;599;R599 +600;Part 600;;1;600;R600 +601;Part 601;;1;601;R601 +602;Part 602;;1;602;R602 +603;Part 603;;1;603;R603 +604;Part 604;;1;604;R604 +605;Part 605;;1;605;R605 +606;Part 606;;1;606;R606 +607;Part 607;;1;607;R607 +608;Part 608;;1;608;R608 +609;Part 609;;1;609;R609 +610;Part 610;;1;610;R610 +611;Part 611;;1;611;R611 +612;Part 612;;1;612;R612 +613;Part 613;;1;613;R613 +614;Part 614;;1;614;R614 +615;Part 615;;1;615;R615 +616;Part 616;;1;616;R616 +617;Part 617;;1;617;R617 +618;Part 618;;1;618;R618 +619;Part 619;;1;619;R619 +620;Part 620;;1;620;R620 +621;Part 621;;1;621;R621 +622;Part 622;;1;622;R622 +623;Part 623;;1;623;R623 +624;Part 624;;1;624;R624 +625;Part 625;;1;625;R625 +626;Part 626;;1;626;R626 +627;Part 627;;1;627;R627 +628;Part 628;;1;628;R628 +629;Part 629;;1;629;R629 +630;Part 630;;1;630;R630 +631;Part 631;;1;631;R631 +632;Part 632;;1;632;R632 +633;Part 633;;1;633;R633 +634;Part 634;;1;634;R634 +635;Part 635;;1;635;R635 +636;Part 636;;1;636;R636 +637;Part 637;;1;637;R637 +638;Part 638;;1;638;R638 +639;Part 639;;1;639;R639 +640;Part 640;;1;640;R640 +641;Part 641;;1;641;R641 +642;Part 642;;1;642;R642 +643;Part 643;;1;643;R643 +644;Part 644;;1;644;R644 +645;Part 645;;1;645;R645 +646;Part 646;;1;646;R646 +647;Part 647;;1;647;R647 +648;Part 648;;1;648;R648 +649;Part 649;;1;649;R649 +650;Part 650;;1;650;R650 +651;Part 651;;1;651;R651 +652;Part 652;;1;652;R652 +653;Part 653;;1;653;R653 +654;Part 654;;1;654;R654 +655;Part 655;;1;655;R655 +656;Part 656;;1;656;R656 +657;Part 657;;1;657;R657 +658;Part 658;;1;658;R658 +659;Part 659;;1;659;R659 +660;Part 660;;1;660;R660 +661;Part 661;;1;661;R661 +662;Part 662;;1;662;R662 +663;Part 663;;1;663;R663 +664;Part 664;;1;664;R664 +665;Part 665;;1;665;R665 +666;Part 666;;1;666;R666 +667;Part 667;;1;667;R667 +668;Part 668;;1;668;R668 +669;Part 669;;1;669;R669 +670;Part 670;;1;670;R670 +671;Part 671;;1;671;R671 +672;Part 672;;1;672;R672 +673;Part 673;;1;673;R673 +674;Part 674;;1;674;R674 +675;Part 675;;1;675;R675 +676;Part 676;;1;676;R676 +677;Part 677;;1;677;R677 +678;Part 678;;1;678;R678 +679;Part 679;;1;679;R679 +680;Part 680;;1;680;R680 +681;Part 681;;1;681;R681 +682;Part 682;;1;682;R682 +683;Part 683;;1;683;R683 +684;Part 684;;1;684;R684 +685;Part 685;;1;685;R685 +686;Part 686;;1;686;R686 +687;Part 687;;1;687;R687 +688;Part 688;;1;688;R688 +689;Part 689;;1;689;R689 +690;Part 690;;1;690;R690 +691;Part 691;;1;691;R691 +692;Part 692;;1;692;R692 +693;Part 693;;1;693;R693 +694;Part 694;;1;694;R694 +695;Part 695;;1;695;R695 +696;Part 696;;1;696;R696 +697;Part 697;;1;697;R697 +698;Part 698;;1;698;R698 +699;Part 699;;1;699;R699 +700;Part 700;;1;700;R700 +701;Part 701;;1;701;R701 +702;Part 702;;1;702;R702 +703;Part 703;;1;703;R703 +704;Part 704;;1;704;R704 +705;Part 705;;1;705;R705 +706;Part 706;;1;706;R706 +707;Part 707;;1;707;R707 +708;Part 708;;1;708;R708 +709;Part 709;;1;709;R709 +710;Part 710;;1;710;R710 +711;Part 711;;1;711;R711 +712;Part 712;;1;712;R712 +713;Part 713;;1;713;R713 +714;Part 714;;1;714;R714 +715;Part 715;;1;715;R715 +716;Part 716;;1;716;R716 +717;Part 717;;1;717;R717 +718;Part 718;;1;718;R718 +719;Part 719;;1;719;R719 +720;Part 720;;1;720;R720 +721;Part 721;;1;721;R721 +722;Part 722;;1;722;R722 +723;Part 723;;1;723;R723 +724;Part 724;;1;724;R724 +725;Part 725;;1;725;R725 +726;Part 726;;1;726;R726 +727;Part 727;;1;727;R727 +728;Part 728;;1;728;R728 +729;Part 729;;1;729;R729 +730;Part 730;;1;730;R730 +731;Part 731;;1;731;R731 +732;Part 732;;1;732;R732 +733;Part 733;;1;733;R733 +734;Part 734;;1;734;R734 +735;Part 735;;1;735;R735 +736;Part 736;;1;736;R736 +737;Part 737;;1;737;R737 +738;Part 738;;1;738;R738 +739;Part 739;;1;739;R739 +740;Part 740;;1;740;R740 +741;Part 741;;1;741;R741 +742;Part 742;;1;742;R742 +743;Part 743;;1;743;R743 +744;Part 744;;1;744;R744 +745;Part 745;;1;745;R745 +746;Part 746;;1;746;R746 +747;Part 747;;1;747;R747 +748;Part 748;;1;748;R748 +749;Part 749;;1;749;R749 +750;Part 750;;1;750;R750 +751;Part 751;;1;751;R751 +752;Part 752;;1;752;R752 +753;Part 753;;1;753;R753 +754;Part 754;;1;754;R754 +755;Part 755;;1;755;R755 +756;Part 756;;1;756;R756 +757;Part 757;;1;757;R757 +758;Part 758;;1;758;R758 +759;Part 759;;1;759;R759 +760;Part 760;;1;760;R760 +761;Part 761;;1;761;R761 +762;Part 762;;1;762;R762 +763;Part 763;;1;763;R763 +764;Part 764;;1;764;R764 +765;Part 765;;1;765;R765 +766;Part 766;;1;766;R766 +767;Part 767;;1;767;R767 +768;Part 768;;1;768;R768 +769;Part 769;;1;769;R769 +770;Part 770;;1;770;R770 +771;Part 771;;1;771;R771 +772;Part 772;;1;772;R772 +773;Part 773;;1;773;R773 +774;Part 774;;1;774;R774 +775;Part 775;;1;775;R775 +776;Part 776;;1;776;R776 +777;Part 777;;1;777;R777 +778;Part 778;;1;778;R778 +779;Part 779;;1;779;R779 +780;Part 780;;1;780;R780 +781;Part 781;;1;781;R781 +782;Part 782;;1;782;R782 +783;Part 783;;1;783;R783 +784;Part 784;;1;784;R784 +785;Part 785;;1;785;R785 +786;Part 786;;1;786;R786 +787;Part 787;;1;787;R787 +788;Part 788;;1;788;R788 +789;Part 789;;1;789;R789 +790;Part 790;;1;790;R790 +791;Part 791;;1;791;R791 +792;Part 792;;1;792;R792 +793;Part 793;;1;793;R793 +794;Part 794;;1;794;R794 +795;Part 795;;1;795;R795 +796;Part 796;;1;796;R796 +797;Part 797;;1;797;R797 +798;Part 798;;1;798;R798 +799;Part 799;;1;799;R799 +800;Part 800;;1;800;R800 +801;Part 801;;1;801;R801 +802;Part 802;;1;802;R802 +803;Part 803;;1;803;R803 +804;Part 804;;1;804;R804 +805;Part 805;;1;805;R805 +806;Part 806;;1;806;R806 +807;Part 807;;1;807;R807 +808;Part 808;;1;808;R808 +809;Part 809;;1;809;R809 +810;Part 810;;1;810;R810 +811;Part 811;;1;811;R811 +812;Part 812;;1;812;R812 +813;Part 813;;1;813;R813 +814;Part 814;;1;814;R814 +815;Part 815;;1;815;R815 +816;Part 816;;1;816;R816 +817;Part 817;;1;817;R817 +818;Part 818;;1;818;R818 +819;Part 819;;1;819;R819 +820;Part 820;;1;820;R820 +821;Part 821;;1;821;R821 +822;Part 822;;1;822;R822 +823;Part 823;;1;823;R823 +824;Part 824;;1;824;R824 +825;Part 825;;1;825;R825 +826;Part 826;;1;826;R826 +827;Part 827;;1;827;R827 +828;Part 828;;1;828;R828 +829;Part 829;;1;829;R829 +830;Part 830;;1;830;R830 +831;Part 831;;1;831;R831 +832;Part 832;;1;832;R832 +833;Part 833;;1;833;R833 +834;Part 834;;1;834;R834 +835;Part 835;;1;835;R835 +836;Part 836;;1;836;R836 +837;Part 837;;1;837;R837 +838;Part 838;;1;838;R838 +839;Part 839;;1;839;R839 +840;Part 840;;1;840;R840 +841;Part 841;;1;841;R841 +842;Part 842;;1;842;R842 +843;Part 843;;1;843;R843 +844;Part 844;;1;844;R844 +845;Part 845;;1;845;R845 +846;Part 846;;1;846;R846 +847;Part 847;;1;847;R847 +848;Part 848;;1;848;R848 +849;Part 849;;1;849;R849 +850;Part 850;;1;850;R850 +851;Part 851;;1;851;R851 +852;Part 852;;1;852;R852 +853;Part 853;;1;853;R853 +854;Part 854;;1;854;R854 +855;Part 855;;1;855;R855 +856;Part 856;;1;856;R856 +857;Part 857;;1;857;R857 +858;Part 858;;1;858;R858 +859;Part 859;;1;859;R859 +860;Part 860;;1;860;R860 +861;Part 861;;1;861;R861 +862;Part 862;;1;862;R862 +863;Part 863;;1;863;R863 +864;Part 864;;1;864;R864 +865;Part 865;;1;865;R865 +866;Part 866;;1;866;R866 +867;Part 867;;1;867;R867 +868;Part 868;;1;868;R868 +869;Part 869;;1;869;R869 +870;Part 870;;1;870;R870 +871;Part 871;;1;871;R871 +872;Part 872;;1;872;R872 +873;Part 873;;1;873;R873 +874;Part 874;;1;874;R874 +875;Part 875;;1;875;R875 +876;Part 876;;1;876;R876 +877;Part 877;;1;877;R877 +878;Part 878;;1;878;R878 +879;Part 879;;1;879;R879 +880;Part 880;;1;880;R880 +881;Part 881;;1;881;R881 +882;Part 882;;1;882;R882 +883;Part 883;;1;883;R883 +884;Part 884;;1;884;R884 +885;Part 885;;1;885;R885 +886;Part 886;;1;886;R886 +887;Part 887;;1;887;R887 +888;Part 888;;1;888;R888 +889;Part 889;;1;889;R889 +890;Part 890;;1;890;R890 +891;Part 891;;1;891;R891 +892;Part 892;;1;892;R892 +893;Part 893;;1;893;R893 +894;Part 894;;1;894;R894 +895;Part 895;;1;895;R895 +896;Part 896;;1;896;R896 +897;Part 897;;1;897;R897 +898;Part 898;;1;898;R898 +899;Part 899;;1;899;R899 +900;Part 900;;1;900;R900 +901;Part 901;;1;901;R901 +902;Part 902;;1;902;R902 +903;Part 903;;1;903;R903 +904;Part 904;;1;904;R904 +905;Part 905;;1;905;R905 +906;Part 906;;1;906;R906 +907;Part 907;;1;907;R907 +908;Part 908;;1;908;R908 +909;Part 909;;1;909;R909 +910;Part 910;;1;910;R910 +911;Part 911;;1;911;R911 +912;Part 912;;1;912;R912 +913;Part 913;;1;913;R913 +914;Part 914;;1;914;R914 +915;Part 915;;1;915;R915 +916;Part 916;;1;916;R916 +917;Part 917;;1;917;R917 +918;Part 918;;1;918;R918 +919;Part 919;;1;919;R919 +920;Part 920;;1;920;R920 +921;Part 921;;1;921;R921 +922;Part 922;;1;922;R922 +923;Part 923;;1;923;R923 +924;Part 924;;1;924;R924 +925;Part 925;;1;925;R925 +926;Part 926;;1;926;R926 +927;Part 927;;1;927;R927 +928;Part 928;;1;928;R928 +929;Part 929;;1;929;R929 +930;Part 930;;1;930;R930 +931;Part 931;;1;931;R931 +932;Part 932;;1;932;R932 +933;Part 933;;1;933;R933 +934;Part 934;;1;934;R934 +935;Part 935;;1;935;R935 +936;Part 936;;1;936;R936 +937;Part 937;;1;937;R937 +938;Part 938;;1;938;R938 +939;Part 939;;1;939;R939 +940;Part 940;;1;940;R940 +941;Part 941;;1;941;R941 +942;Part 942;;1;942;R942 +943;Part 943;;1;943;R943 +944;Part 944;;1;944;R944 +945;Part 945;;1;945;R945 +946;Part 946;;1;946;R946 +947;Part 947;;1;947;R947 +948;Part 948;;1;948;R948 +949;Part 949;;1;949;R949 +950;Part 950;;1;950;R950 +951;Part 951;;1;951;R951 +952;Part 952;;1;952;R952 +953;Part 953;;1;953;R953 +954;Part 954;;1;954;R954 +955;Part 955;;1;955;R955 +956;Part 956;;1;956;R956 +957;Part 957;;1;957;R957 +958;Part 958;;1;958;R958 +959;Part 959;;1;959;R959 +960;Part 960;;1;960;R960 +961;Part 961;;1;961;R961 +962;Part 962;;1;962;R962 +963;Part 963;;1;963;R963 +964;Part 964;;1;964;R964 +965;Part 965;;1;965;R965 +966;Part 966;;1;966;R966 +967;Part 967;;1;967;R967 +968;Part 968;;1;968;R968 +969;Part 969;;1;969;R969 +970;Part 970;;1;970;R970 +971;Part 971;;1;971;R971 +972;Part 972;;1;972;R972 +973;Part 973;;1;973;R973 +974;Part 974;;1;974;R974 +975;Part 975;;1;975;R975 +976;Part 976;;1;976;R976 +977;Part 977;;1;977;R977 +978;Part 978;;1;978;R978 +979;Part 979;;1;979;R979 +980;Part 980;;1;980;R980 +981;Part 981;;1;981;R981 +982;Part 982;;1;982;R982 +983;Part 983;;1;983;R983 +984;Part 984;;1;984;R984 +985;Part 985;;1;985;R985 +986;Part 986;;1;986;R986 +987;Part 987;;1;987;R987 +988;Part 988;;1;988;R988 +989;Part 989;;1;989;R989 +990;Part 990;;1;990;R990 +991;Part 991;;1;991;R991 +992;Part 992;;1;992;R992 +993;Part 993;;1;993;R993 +994;Part 994;;1;994;R994 +995;Part 995;;1;995;R995 +996;Part 996;;1;996;R996 +997;Part 997;;1;997;R997 +998;Part 998;;1;998;R998 +999;Part 999;;1;999;R999 +1000;Part 1000;;1;1000;R1000 diff --git a/tests/assets/project_bom/issue_911/Parts_1400.csv b/tests/assets/project_bom/issue_911/Parts_1400.csv new file mode 100644 index 000000000..63cb7470c --- /dev/null +++ b/tests/assets/project_bom/issue_911/Parts_1400.csv @@ -0,0 +1,1401 @@ +Id;Designator;Footprint;Quantity;Value;Supplier and Supplier Part Number +1;Part 1;;1;1;R1 +2;Part 2;;1;2;R2 +3;Part 3;;1;3;R3 +4;Part 4;;1;4;R4 +5;Part 5;;1;5;R5 +6;Part 6;;1;6;R6 +7;Part 7;;1;7;R7 +8;Part 8;;1;8;R8 +9;Part 9;;1;9;R9 +10;Part 10;;1;10;R10 +11;Part 11;;1;11;R11 +12;Part 12;;1;12;R12 +13;Part 13;;1;13;R13 +14;Part 14;;1;14;R14 +15;Part 15;;1;15;R15 +16;Part 16;;1;16;R16 +17;Part 17;;1;17;R17 +18;Part 18;;1;18;R18 +19;Part 19;;1;19;R19 +20;Part 20;;1;20;R20 +21;Part 21;;1;21;R21 +22;Part 22;;1;22;R22 +23;Part 23;;1;23;R23 +24;Part 24;;1;24;R24 +25;Part 25;;1;25;R25 +26;Part 26;;1;26;R26 +27;Part 27;;1;27;R27 +28;Part 28;;1;28;R28 +29;Part 29;;1;29;R29 +30;Part 30;;1;30;R30 +31;Part 31;;1;31;R31 +32;Part 32;;1;32;R32 +33;Part 33;;1;33;R33 +34;Part 34;;1;34;R34 +35;Part 35;;1;35;R35 +36;Part 36;;1;36;R36 +37;Part 37;;1;37;R37 +38;Part 38;;1;38;R38 +39;Part 39;;1;39;R39 +40;Part 40;;1;40;R40 +41;Part 41;;1;41;R41 +42;Part 42;;1;42;R42 +43;Part 43;;1;43;R43 +44;Part 44;;1;44;R44 +45;Part 45;;1;45;R45 +46;Part 46;;1;46;R46 +47;Part 47;;1;47;R47 +48;Part 48;;1;48;R48 +49;Part 49;;1;49;R49 +50;Part 50;;1;50;R50 +51;Part 51;;1;51;R51 +52;Part 52;;1;52;R52 +53;Part 53;;1;53;R53 +54;Part 54;;1;54;R54 +55;Part 55;;1;55;R55 +56;Part 56;;1;56;R56 +57;Part 57;;1;57;R57 +58;Part 58;;1;58;R58 +59;Part 59;;1;59;R59 +60;Part 60;;1;60;R60 +61;Part 61;;1;61;R61 +62;Part 62;;1;62;R62 +63;Part 63;;1;63;R63 +64;Part 64;;1;64;R64 +65;Part 65;;1;65;R65 +66;Part 66;;1;66;R66 +67;Part 67;;1;67;R67 +68;Part 68;;1;68;R68 +69;Part 69;;1;69;R69 +70;Part 70;;1;70;R70 +71;Part 71;;1;71;R71 +72;Part 72;;1;72;R72 +73;Part 73;;1;73;R73 +74;Part 74;;1;74;R74 +75;Part 75;;1;75;R75 +76;Part 76;;1;76;R76 +77;Part 77;;1;77;R77 +78;Part 78;;1;78;R78 +79;Part 79;;1;79;R79 +80;Part 80;;1;80;R80 +81;Part 81;;1;81;R81 +82;Part 82;;1;82;R82 +83;Part 83;;1;83;R83 +84;Part 84;;1;84;R84 +85;Part 85;;1;85;R85 +86;Part 86;;1;86;R86 +87;Part 87;;1;87;R87 +88;Part 88;;1;88;R88 +89;Part 89;;1;89;R89 +90;Part 90;;1;90;R90 +91;Part 91;;1;91;R91 +92;Part 92;;1;92;R92 +93;Part 93;;1;93;R93 +94;Part 94;;1;94;R94 +95;Part 95;;1;95;R95 +96;Part 96;;1;96;R96 +97;Part 97;;1;97;R97 +98;Part 98;;1;98;R98 +99;Part 99;;1;99;R99 +100;Part 100;;1;100;R100 +101;Part 101;;1;101;R101 +102;Part 102;;1;102;R102 +103;Part 103;;1;103;R103 +104;Part 104;;1;104;R104 +105;Part 105;;1;105;R105 +106;Part 106;;1;106;R106 +107;Part 107;;1;107;R107 +108;Part 108;;1;108;R108 +109;Part 109;;1;109;R109 +110;Part 110;;1;110;R110 +111;Part 111;;1;111;R111 +112;Part 112;;1;112;R112 +113;Part 113;;1;113;R113 +114;Part 114;;1;114;R114 +115;Part 115;;1;115;R115 +116;Part 116;;1;116;R116 +117;Part 117;;1;117;R117 +118;Part 118;;1;118;R118 +119;Part 119;;1;119;R119 +120;Part 120;;1;120;R120 +121;Part 121;;1;121;R121 +122;Part 122;;1;122;R122 +123;Part 123;;1;123;R123 +124;Part 124;;1;124;R124 +125;Part 125;;1;125;R125 +126;Part 126;;1;126;R126 +127;Part 127;;1;127;R127 +128;Part 128;;1;128;R128 +129;Part 129;;1;129;R129 +130;Part 130;;1;130;R130 +131;Part 131;;1;131;R131 +132;Part 132;;1;132;R132 +133;Part 133;;1;133;R133 +134;Part 134;;1;134;R134 +135;Part 135;;1;135;R135 +136;Part 136;;1;136;R136 +137;Part 137;;1;137;R137 +138;Part 138;;1;138;R138 +139;Part 139;;1;139;R139 +140;Part 140;;1;140;R140 +141;Part 141;;1;141;R141 +142;Part 142;;1;142;R142 +143;Part 143;;1;143;R143 +144;Part 144;;1;144;R144 +145;Part 145;;1;145;R145 +146;Part 146;;1;146;R146 +147;Part 147;;1;147;R147 +148;Part 148;;1;148;R148 +149;Part 149;;1;149;R149 +150;Part 150;;1;150;R150 +151;Part 151;;1;151;R151 +152;Part 152;;1;152;R152 +153;Part 153;;1;153;R153 +154;Part 154;;1;154;R154 +155;Part 155;;1;155;R155 +156;Part 156;;1;156;R156 +157;Part 157;;1;157;R157 +158;Part 158;;1;158;R158 +159;Part 159;;1;159;R159 +160;Part 160;;1;160;R160 +161;Part 161;;1;161;R161 +162;Part 162;;1;162;R162 +163;Part 163;;1;163;R163 +164;Part 164;;1;164;R164 +165;Part 165;;1;165;R165 +166;Part 166;;1;166;R166 +167;Part 167;;1;167;R167 +168;Part 168;;1;168;R168 +169;Part 169;;1;169;R169 +170;Part 170;;1;170;R170 +171;Part 171;;1;171;R171 +172;Part 172;;1;172;R172 +173;Part 173;;1;173;R173 +174;Part 174;;1;174;R174 +175;Part 175;;1;175;R175 +176;Part 176;;1;176;R176 +177;Part 177;;1;177;R177 +178;Part 178;;1;178;R178 +179;Part 179;;1;179;R179 +180;Part 180;;1;180;R180 +181;Part 181;;1;181;R181 +182;Part 182;;1;182;R182 +183;Part 183;;1;183;R183 +184;Part 184;;1;184;R184 +185;Part 185;;1;185;R185 +186;Part 186;;1;186;R186 +187;Part 187;;1;187;R187 +188;Part 188;;1;188;R188 +189;Part 189;;1;189;R189 +190;Part 190;;1;190;R190 +191;Part 191;;1;191;R191 +192;Part 192;;1;192;R192 +193;Part 193;;1;193;R193 +194;Part 194;;1;194;R194 +195;Part 195;;1;195;R195 +196;Part 196;;1;196;R196 +197;Part 197;;1;197;R197 +198;Part 198;;1;198;R198 +199;Part 199;;1;199;R199 +200;Part 200;;1;200;R200 +201;Part 201;;1;201;R201 +202;Part 202;;1;202;R202 +203;Part 203;;1;203;R203 +204;Part 204;;1;204;R204 +205;Part 205;;1;205;R205 +206;Part 206;;1;206;R206 +207;Part 207;;1;207;R207 +208;Part 208;;1;208;R208 +209;Part 209;;1;209;R209 +210;Part 210;;1;210;R210 +211;Part 211;;1;211;R211 +212;Part 212;;1;212;R212 +213;Part 213;;1;213;R213 +214;Part 214;;1;214;R214 +215;Part 215;;1;215;R215 +216;Part 216;;1;216;R216 +217;Part 217;;1;217;R217 +218;Part 218;;1;218;R218 +219;Part 219;;1;219;R219 +220;Part 220;;1;220;R220 +221;Part 221;;1;221;R221 +222;Part 222;;1;222;R222 +223;Part 223;;1;223;R223 +224;Part 224;;1;224;R224 +225;Part 225;;1;225;R225 +226;Part 226;;1;226;R226 +227;Part 227;;1;227;R227 +228;Part 228;;1;228;R228 +229;Part 229;;1;229;R229 +230;Part 230;;1;230;R230 +231;Part 231;;1;231;R231 +232;Part 232;;1;232;R232 +233;Part 233;;1;233;R233 +234;Part 234;;1;234;R234 +235;Part 235;;1;235;R235 +236;Part 236;;1;236;R236 +237;Part 237;;1;237;R237 +238;Part 238;;1;238;R238 +239;Part 239;;1;239;R239 +240;Part 240;;1;240;R240 +241;Part 241;;1;241;R241 +242;Part 242;;1;242;R242 +243;Part 243;;1;243;R243 +244;Part 244;;1;244;R244 +245;Part 245;;1;245;R245 +246;Part 246;;1;246;R246 +247;Part 247;;1;247;R247 +248;Part 248;;1;248;R248 +249;Part 249;;1;249;R249 +250;Part 250;;1;250;R250 +251;Part 251;;1;251;R251 +252;Part 252;;1;252;R252 +253;Part 253;;1;253;R253 +254;Part 254;;1;254;R254 +255;Part 255;;1;255;R255 +256;Part 256;;1;256;R256 +257;Part 257;;1;257;R257 +258;Part 258;;1;258;R258 +259;Part 259;;1;259;R259 +260;Part 260;;1;260;R260 +261;Part 261;;1;261;R261 +262;Part 262;;1;262;R262 +263;Part 263;;1;263;R263 +264;Part 264;;1;264;R264 +265;Part 265;;1;265;R265 +266;Part 266;;1;266;R266 +267;Part 267;;1;267;R267 +268;Part 268;;1;268;R268 +269;Part 269;;1;269;R269 +270;Part 270;;1;270;R270 +271;Part 271;;1;271;R271 +272;Part 272;;1;272;R272 +273;Part 273;;1;273;R273 +274;Part 274;;1;274;R274 +275;Part 275;;1;275;R275 +276;Part 276;;1;276;R276 +277;Part 277;;1;277;R277 +278;Part 278;;1;278;R278 +279;Part 279;;1;279;R279 +280;Part 280;;1;280;R280 +281;Part 281;;1;281;R281 +282;Part 282;;1;282;R282 +283;Part 283;;1;283;R283 +284;Part 284;;1;284;R284 +285;Part 285;;1;285;R285 +286;Part 286;;1;286;R286 +287;Part 287;;1;287;R287 +288;Part 288;;1;288;R288 +289;Part 289;;1;289;R289 +290;Part 290;;1;290;R290 +291;Part 291;;1;291;R291 +292;Part 292;;1;292;R292 +293;Part 293;;1;293;R293 +294;Part 294;;1;294;R294 +295;Part 295;;1;295;R295 +296;Part 296;;1;296;R296 +297;Part 297;;1;297;R297 +298;Part 298;;1;298;R298 +299;Part 299;;1;299;R299 +300;Part 300;;1;300;R300 +301;Part 301;;1;301;R301 +302;Part 302;;1;302;R302 +303;Part 303;;1;303;R303 +304;Part 304;;1;304;R304 +305;Part 305;;1;305;R305 +306;Part 306;;1;306;R306 +307;Part 307;;1;307;R307 +308;Part 308;;1;308;R308 +309;Part 309;;1;309;R309 +310;Part 310;;1;310;R310 +311;Part 311;;1;311;R311 +312;Part 312;;1;312;R312 +313;Part 313;;1;313;R313 +314;Part 314;;1;314;R314 +315;Part 315;;1;315;R315 +316;Part 316;;1;316;R316 +317;Part 317;;1;317;R317 +318;Part 318;;1;318;R318 +319;Part 319;;1;319;R319 +320;Part 320;;1;320;R320 +321;Part 321;;1;321;R321 +322;Part 322;;1;322;R322 +323;Part 323;;1;323;R323 +324;Part 324;;1;324;R324 +325;Part 325;;1;325;R325 +326;Part 326;;1;326;R326 +327;Part 327;;1;327;R327 +328;Part 328;;1;328;R328 +329;Part 329;;1;329;R329 +330;Part 330;;1;330;R330 +331;Part 331;;1;331;R331 +332;Part 332;;1;332;R332 +333;Part 333;;1;333;R333 +334;Part 334;;1;334;R334 +335;Part 335;;1;335;R335 +336;Part 336;;1;336;R336 +337;Part 337;;1;337;R337 +338;Part 338;;1;338;R338 +339;Part 339;;1;339;R339 +340;Part 340;;1;340;R340 +341;Part 341;;1;341;R341 +342;Part 342;;1;342;R342 +343;Part 343;;1;343;R343 +344;Part 344;;1;344;R344 +345;Part 345;;1;345;R345 +346;Part 346;;1;346;R346 +347;Part 347;;1;347;R347 +348;Part 348;;1;348;R348 +349;Part 349;;1;349;R349 +350;Part 350;;1;350;R350 +351;Part 351;;1;351;R351 +352;Part 352;;1;352;R352 +353;Part 353;;1;353;R353 +354;Part 354;;1;354;R354 +355;Part 355;;1;355;R355 +356;Part 356;;1;356;R356 +357;Part 357;;1;357;R357 +358;Part 358;;1;358;R358 +359;Part 359;;1;359;R359 +360;Part 360;;1;360;R360 +361;Part 361;;1;361;R361 +362;Part 362;;1;362;R362 +363;Part 363;;1;363;R363 +364;Part 364;;1;364;R364 +365;Part 365;;1;365;R365 +366;Part 366;;1;366;R366 +367;Part 367;;1;367;R367 +368;Part 368;;1;368;R368 +369;Part 369;;1;369;R369 +370;Part 370;;1;370;R370 +371;Part 371;;1;371;R371 +372;Part 372;;1;372;R372 +373;Part 373;;1;373;R373 +374;Part 374;;1;374;R374 +375;Part 375;;1;375;R375 +376;Part 376;;1;376;R376 +377;Part 377;;1;377;R377 +378;Part 378;;1;378;R378 +379;Part 379;;1;379;R379 +380;Part 380;;1;380;R380 +381;Part 381;;1;381;R381 +382;Part 382;;1;382;R382 +383;Part 383;;1;383;R383 +384;Part 384;;1;384;R384 +385;Part 385;;1;385;R385 +386;Part 386;;1;386;R386 +387;Part 387;;1;387;R387 +388;Part 388;;1;388;R388 +389;Part 389;;1;389;R389 +390;Part 390;;1;390;R390 +391;Part 391;;1;391;R391 +392;Part 392;;1;392;R392 +393;Part 393;;1;393;R393 +394;Part 394;;1;394;R394 +395;Part 395;;1;395;R395 +396;Part 396;;1;396;R396 +397;Part 397;;1;397;R397 +398;Part 398;;1;398;R398 +399;Part 399;;1;399;R399 +400;Part 400;;1;400;R400 +401;Part 401;;1;401;R401 +402;Part 402;;1;402;R402 +403;Part 403;;1;403;R403 +404;Part 404;;1;404;R404 +405;Part 405;;1;405;R405 +406;Part 406;;1;406;R406 +407;Part 407;;1;407;R407 +408;Part 408;;1;408;R408 +409;Part 409;;1;409;R409 +410;Part 410;;1;410;R410 +411;Part 411;;1;411;R411 +412;Part 412;;1;412;R412 +413;Part 413;;1;413;R413 +414;Part 414;;1;414;R414 +415;Part 415;;1;415;R415 +416;Part 416;;1;416;R416 +417;Part 417;;1;417;R417 +418;Part 418;;1;418;R418 +419;Part 419;;1;419;R419 +420;Part 420;;1;420;R420 +421;Part 421;;1;421;R421 +422;Part 422;;1;422;R422 +423;Part 423;;1;423;R423 +424;Part 424;;1;424;R424 +425;Part 425;;1;425;R425 +426;Part 426;;1;426;R426 +427;Part 427;;1;427;R427 +428;Part 428;;1;428;R428 +429;Part 429;;1;429;R429 +430;Part 430;;1;430;R430 +431;Part 431;;1;431;R431 +432;Part 432;;1;432;R432 +433;Part 433;;1;433;R433 +434;Part 434;;1;434;R434 +435;Part 435;;1;435;R435 +436;Part 436;;1;436;R436 +437;Part 437;;1;437;R437 +438;Part 438;;1;438;R438 +439;Part 439;;1;439;R439 +440;Part 440;;1;440;R440 +441;Part 441;;1;441;R441 +442;Part 442;;1;442;R442 +443;Part 443;;1;443;R443 +444;Part 444;;1;444;R444 +445;Part 445;;1;445;R445 +446;Part 446;;1;446;R446 +447;Part 447;;1;447;R447 +448;Part 448;;1;448;R448 +449;Part 449;;1;449;R449 +450;Part 450;;1;450;R450 +451;Part 451;;1;451;R451 +452;Part 452;;1;452;R452 +453;Part 453;;1;453;R453 +454;Part 454;;1;454;R454 +455;Part 455;;1;455;R455 +456;Part 456;;1;456;R456 +457;Part 457;;1;457;R457 +458;Part 458;;1;458;R458 +459;Part 459;;1;459;R459 +460;Part 460;;1;460;R460 +461;Part 461;;1;461;R461 +462;Part 462;;1;462;R462 +463;Part 463;;1;463;R463 +464;Part 464;;1;464;R464 +465;Part 465;;1;465;R465 +466;Part 466;;1;466;R466 +467;Part 467;;1;467;R467 +468;Part 468;;1;468;R468 +469;Part 469;;1;469;R469 +470;Part 470;;1;470;R470 +471;Part 471;;1;471;R471 +472;Part 472;;1;472;R472 +473;Part 473;;1;473;R473 +474;Part 474;;1;474;R474 +475;Part 475;;1;475;R475 +476;Part 476;;1;476;R476 +477;Part 477;;1;477;R477 +478;Part 478;;1;478;R478 +479;Part 479;;1;479;R479 +480;Part 480;;1;480;R480 +481;Part 481;;1;481;R481 +482;Part 482;;1;482;R482 +483;Part 483;;1;483;R483 +484;Part 484;;1;484;R484 +485;Part 485;;1;485;R485 +486;Part 486;;1;486;R486 +487;Part 487;;1;487;R487 +488;Part 488;;1;488;R488 +489;Part 489;;1;489;R489 +490;Part 490;;1;490;R490 +491;Part 491;;1;491;R491 +492;Part 492;;1;492;R492 +493;Part 493;;1;493;R493 +494;Part 494;;1;494;R494 +495;Part 495;;1;495;R495 +496;Part 496;;1;496;R496 +497;Part 497;;1;497;R497 +498;Part 498;;1;498;R498 +499;Part 499;;1;499;R499 +500;Part 500;;1;500;R500 +501;Part 501;;1;501;R501 +502;Part 502;;1;502;R502 +503;Part 503;;1;503;R503 +504;Part 504;;1;504;R504 +505;Part 505;;1;505;R505 +506;Part 506;;1;506;R506 +507;Part 507;;1;507;R507 +508;Part 508;;1;508;R508 +509;Part 509;;1;509;R509 +510;Part 510;;1;510;R510 +511;Part 511;;1;511;R511 +512;Part 512;;1;512;R512 +513;Part 513;;1;513;R513 +514;Part 514;;1;514;R514 +515;Part 515;;1;515;R515 +516;Part 516;;1;516;R516 +517;Part 517;;1;517;R517 +518;Part 518;;1;518;R518 +519;Part 519;;1;519;R519 +520;Part 520;;1;520;R520 +521;Part 521;;1;521;R521 +522;Part 522;;1;522;R522 +523;Part 523;;1;523;R523 +524;Part 524;;1;524;R524 +525;Part 525;;1;525;R525 +526;Part 526;;1;526;R526 +527;Part 527;;1;527;R527 +528;Part 528;;1;528;R528 +529;Part 529;;1;529;R529 +530;Part 530;;1;530;R530 +531;Part 531;;1;531;R531 +532;Part 532;;1;532;R532 +533;Part 533;;1;533;R533 +534;Part 534;;1;534;R534 +535;Part 535;;1;535;R535 +536;Part 536;;1;536;R536 +537;Part 537;;1;537;R537 +538;Part 538;;1;538;R538 +539;Part 539;;1;539;R539 +540;Part 540;;1;540;R540 +541;Part 541;;1;541;R541 +542;Part 542;;1;542;R542 +543;Part 543;;1;543;R543 +544;Part 544;;1;544;R544 +545;Part 545;;1;545;R545 +546;Part 546;;1;546;R546 +547;Part 547;;1;547;R547 +548;Part 548;;1;548;R548 +549;Part 549;;1;549;R549 +550;Part 550;;1;550;R550 +551;Part 551;;1;551;R551 +552;Part 552;;1;552;R552 +553;Part 553;;1;553;R553 +554;Part 554;;1;554;R554 +555;Part 555;;1;555;R555 +556;Part 556;;1;556;R556 +557;Part 557;;1;557;R557 +558;Part 558;;1;558;R558 +559;Part 559;;1;559;R559 +560;Part 560;;1;560;R560 +561;Part 561;;1;561;R561 +562;Part 562;;1;562;R562 +563;Part 563;;1;563;R563 +564;Part 564;;1;564;R564 +565;Part 565;;1;565;R565 +566;Part 566;;1;566;R566 +567;Part 567;;1;567;R567 +568;Part 568;;1;568;R568 +569;Part 569;;1;569;R569 +570;Part 570;;1;570;R570 +571;Part 571;;1;571;R571 +572;Part 572;;1;572;R572 +573;Part 573;;1;573;R573 +574;Part 574;;1;574;R574 +575;Part 575;;1;575;R575 +576;Part 576;;1;576;R576 +577;Part 577;;1;577;R577 +578;Part 578;;1;578;R578 +579;Part 579;;1;579;R579 +580;Part 580;;1;580;R580 +581;Part 581;;1;581;R581 +582;Part 582;;1;582;R582 +583;Part 583;;1;583;R583 +584;Part 584;;1;584;R584 +585;Part 585;;1;585;R585 +586;Part 586;;1;586;R586 +587;Part 587;;1;587;R587 +588;Part 588;;1;588;R588 +589;Part 589;;1;589;R589 +590;Part 590;;1;590;R590 +591;Part 591;;1;591;R591 +592;Part 592;;1;592;R592 +593;Part 593;;1;593;R593 +594;Part 594;;1;594;R594 +595;Part 595;;1;595;R595 +596;Part 596;;1;596;R596 +597;Part 597;;1;597;R597 +598;Part 598;;1;598;R598 +599;Part 599;;1;599;R599 +600;Part 600;;1;600;R600 +601;Part 601;;1;601;R601 +602;Part 602;;1;602;R602 +603;Part 603;;1;603;R603 +604;Part 604;;1;604;R604 +605;Part 605;;1;605;R605 +606;Part 606;;1;606;R606 +607;Part 607;;1;607;R607 +608;Part 608;;1;608;R608 +609;Part 609;;1;609;R609 +610;Part 610;;1;610;R610 +611;Part 611;;1;611;R611 +612;Part 612;;1;612;R612 +613;Part 613;;1;613;R613 +614;Part 614;;1;614;R614 +615;Part 615;;1;615;R615 +616;Part 616;;1;616;R616 +617;Part 617;;1;617;R617 +618;Part 618;;1;618;R618 +619;Part 619;;1;619;R619 +620;Part 620;;1;620;R620 +621;Part 621;;1;621;R621 +622;Part 622;;1;622;R622 +623;Part 623;;1;623;R623 +624;Part 624;;1;624;R624 +625;Part 625;;1;625;R625 +626;Part 626;;1;626;R626 +627;Part 627;;1;627;R627 +628;Part 628;;1;628;R628 +629;Part 629;;1;629;R629 +630;Part 630;;1;630;R630 +631;Part 631;;1;631;R631 +632;Part 632;;1;632;R632 +633;Part 633;;1;633;R633 +634;Part 634;;1;634;R634 +635;Part 635;;1;635;R635 +636;Part 636;;1;636;R636 +637;Part 637;;1;637;R637 +638;Part 638;;1;638;R638 +639;Part 639;;1;639;R639 +640;Part 640;;1;640;R640 +641;Part 641;;1;641;R641 +642;Part 642;;1;642;R642 +643;Part 643;;1;643;R643 +644;Part 644;;1;644;R644 +645;Part 645;;1;645;R645 +646;Part 646;;1;646;R646 +647;Part 647;;1;647;R647 +648;Part 648;;1;648;R648 +649;Part 649;;1;649;R649 +650;Part 650;;1;650;R650 +651;Part 651;;1;651;R651 +652;Part 652;;1;652;R652 +653;Part 653;;1;653;R653 +654;Part 654;;1;654;R654 +655;Part 655;;1;655;R655 +656;Part 656;;1;656;R656 +657;Part 657;;1;657;R657 +658;Part 658;;1;658;R658 +659;Part 659;;1;659;R659 +660;Part 660;;1;660;R660 +661;Part 661;;1;661;R661 +662;Part 662;;1;662;R662 +663;Part 663;;1;663;R663 +664;Part 664;;1;664;R664 +665;Part 665;;1;665;R665 +666;Part 666;;1;666;R666 +667;Part 667;;1;667;R667 +668;Part 668;;1;668;R668 +669;Part 669;;1;669;R669 +670;Part 670;;1;670;R670 +671;Part 671;;1;671;R671 +672;Part 672;;1;672;R672 +673;Part 673;;1;673;R673 +674;Part 674;;1;674;R674 +675;Part 675;;1;675;R675 +676;Part 676;;1;676;R676 +677;Part 677;;1;677;R677 +678;Part 678;;1;678;R678 +679;Part 679;;1;679;R679 +680;Part 680;;1;680;R680 +681;Part 681;;1;681;R681 +682;Part 682;;1;682;R682 +683;Part 683;;1;683;R683 +684;Part 684;;1;684;R684 +685;Part 685;;1;685;R685 +686;Part 686;;1;686;R686 +687;Part 687;;1;687;R687 +688;Part 688;;1;688;R688 +689;Part 689;;1;689;R689 +690;Part 690;;1;690;R690 +691;Part 691;;1;691;R691 +692;Part 692;;1;692;R692 +693;Part 693;;1;693;R693 +694;Part 694;;1;694;R694 +695;Part 695;;1;695;R695 +696;Part 696;;1;696;R696 +697;Part 697;;1;697;R697 +698;Part 698;;1;698;R698 +699;Part 699;;1;699;R699 +700;Part 700;;1;700;R700 +701;Part 701;;1;701;R701 +702;Part 702;;1;702;R702 +703;Part 703;;1;703;R703 +704;Part 704;;1;704;R704 +705;Part 705;;1;705;R705 +706;Part 706;;1;706;R706 +707;Part 707;;1;707;R707 +708;Part 708;;1;708;R708 +709;Part 709;;1;709;R709 +710;Part 710;;1;710;R710 +711;Part 711;;1;711;R711 +712;Part 712;;1;712;R712 +713;Part 713;;1;713;R713 +714;Part 714;;1;714;R714 +715;Part 715;;1;715;R715 +716;Part 716;;1;716;R716 +717;Part 717;;1;717;R717 +718;Part 718;;1;718;R718 +719;Part 719;;1;719;R719 +720;Part 720;;1;720;R720 +721;Part 721;;1;721;R721 +722;Part 722;;1;722;R722 +723;Part 723;;1;723;R723 +724;Part 724;;1;724;R724 +725;Part 725;;1;725;R725 +726;Part 726;;1;726;R726 +727;Part 727;;1;727;R727 +728;Part 728;;1;728;R728 +729;Part 729;;1;729;R729 +730;Part 730;;1;730;R730 +731;Part 731;;1;731;R731 +732;Part 732;;1;732;R732 +733;Part 733;;1;733;R733 +734;Part 734;;1;734;R734 +735;Part 735;;1;735;R735 +736;Part 736;;1;736;R736 +737;Part 737;;1;737;R737 +738;Part 738;;1;738;R738 +739;Part 739;;1;739;R739 +740;Part 740;;1;740;R740 +741;Part 741;;1;741;R741 +742;Part 742;;1;742;R742 +743;Part 743;;1;743;R743 +744;Part 744;;1;744;R744 +745;Part 745;;1;745;R745 +746;Part 746;;1;746;R746 +747;Part 747;;1;747;R747 +748;Part 748;;1;748;R748 +749;Part 749;;1;749;R749 +750;Part 750;;1;750;R750 +751;Part 751;;1;751;R751 +752;Part 752;;1;752;R752 +753;Part 753;;1;753;R753 +754;Part 754;;1;754;R754 +755;Part 755;;1;755;R755 +756;Part 756;;1;756;R756 +757;Part 757;;1;757;R757 +758;Part 758;;1;758;R758 +759;Part 759;;1;759;R759 +760;Part 760;;1;760;R760 +761;Part 761;;1;761;R761 +762;Part 762;;1;762;R762 +763;Part 763;;1;763;R763 +764;Part 764;;1;764;R764 +765;Part 765;;1;765;R765 +766;Part 766;;1;766;R766 +767;Part 767;;1;767;R767 +768;Part 768;;1;768;R768 +769;Part 769;;1;769;R769 +770;Part 770;;1;770;R770 +771;Part 771;;1;771;R771 +772;Part 772;;1;772;R772 +773;Part 773;;1;773;R773 +774;Part 774;;1;774;R774 +775;Part 775;;1;775;R775 +776;Part 776;;1;776;R776 +777;Part 777;;1;777;R777 +778;Part 778;;1;778;R778 +779;Part 779;;1;779;R779 +780;Part 780;;1;780;R780 +781;Part 781;;1;781;R781 +782;Part 782;;1;782;R782 +783;Part 783;;1;783;R783 +784;Part 784;;1;784;R784 +785;Part 785;;1;785;R785 +786;Part 786;;1;786;R786 +787;Part 787;;1;787;R787 +788;Part 788;;1;788;R788 +789;Part 789;;1;789;R789 +790;Part 790;;1;790;R790 +791;Part 791;;1;791;R791 +792;Part 792;;1;792;R792 +793;Part 793;;1;793;R793 +794;Part 794;;1;794;R794 +795;Part 795;;1;795;R795 +796;Part 796;;1;796;R796 +797;Part 797;;1;797;R797 +798;Part 798;;1;798;R798 +799;Part 799;;1;799;R799 +800;Part 800;;1;800;R800 +801;Part 801;;1;801;R801 +802;Part 802;;1;802;R802 +803;Part 803;;1;803;R803 +804;Part 804;;1;804;R804 +805;Part 805;;1;805;R805 +806;Part 806;;1;806;R806 +807;Part 807;;1;807;R807 +808;Part 808;;1;808;R808 +809;Part 809;;1;809;R809 +810;Part 810;;1;810;R810 +811;Part 811;;1;811;R811 +812;Part 812;;1;812;R812 +813;Part 813;;1;813;R813 +814;Part 814;;1;814;R814 +815;Part 815;;1;815;R815 +816;Part 816;;1;816;R816 +817;Part 817;;1;817;R817 +818;Part 818;;1;818;R818 +819;Part 819;;1;819;R819 +820;Part 820;;1;820;R820 +821;Part 821;;1;821;R821 +822;Part 822;;1;822;R822 +823;Part 823;;1;823;R823 +824;Part 824;;1;824;R824 +825;Part 825;;1;825;R825 +826;Part 826;;1;826;R826 +827;Part 827;;1;827;R827 +828;Part 828;;1;828;R828 +829;Part 829;;1;829;R829 +830;Part 830;;1;830;R830 +831;Part 831;;1;831;R831 +832;Part 832;;1;832;R832 +833;Part 833;;1;833;R833 +834;Part 834;;1;834;R834 +835;Part 835;;1;835;R835 +836;Part 836;;1;836;R836 +837;Part 837;;1;837;R837 +838;Part 838;;1;838;R838 +839;Part 839;;1;839;R839 +840;Part 840;;1;840;R840 +841;Part 841;;1;841;R841 +842;Part 842;;1;842;R842 +843;Part 843;;1;843;R843 +844;Part 844;;1;844;R844 +845;Part 845;;1;845;R845 +846;Part 846;;1;846;R846 +847;Part 847;;1;847;R847 +848;Part 848;;1;848;R848 +849;Part 849;;1;849;R849 +850;Part 850;;1;850;R850 +851;Part 851;;1;851;R851 +852;Part 852;;1;852;R852 +853;Part 853;;1;853;R853 +854;Part 854;;1;854;R854 +855;Part 855;;1;855;R855 +856;Part 856;;1;856;R856 +857;Part 857;;1;857;R857 +858;Part 858;;1;858;R858 +859;Part 859;;1;859;R859 +860;Part 860;;1;860;R860 +861;Part 861;;1;861;R861 +862;Part 862;;1;862;R862 +863;Part 863;;1;863;R863 +864;Part 864;;1;864;R864 +865;Part 865;;1;865;R865 +866;Part 866;;1;866;R866 +867;Part 867;;1;867;R867 +868;Part 868;;1;868;R868 +869;Part 869;;1;869;R869 +870;Part 870;;1;870;R870 +871;Part 871;;1;871;R871 +872;Part 872;;1;872;R872 +873;Part 873;;1;873;R873 +874;Part 874;;1;874;R874 +875;Part 875;;1;875;R875 +876;Part 876;;1;876;R876 +877;Part 877;;1;877;R877 +878;Part 878;;1;878;R878 +879;Part 879;;1;879;R879 +880;Part 880;;1;880;R880 +881;Part 881;;1;881;R881 +882;Part 882;;1;882;R882 +883;Part 883;;1;883;R883 +884;Part 884;;1;884;R884 +885;Part 885;;1;885;R885 +886;Part 886;;1;886;R886 +887;Part 887;;1;887;R887 +888;Part 888;;1;888;R888 +889;Part 889;;1;889;R889 +890;Part 890;;1;890;R890 +891;Part 891;;1;891;R891 +892;Part 892;;1;892;R892 +893;Part 893;;1;893;R893 +894;Part 894;;1;894;R894 +895;Part 895;;1;895;R895 +896;Part 896;;1;896;R896 +897;Part 897;;1;897;R897 +898;Part 898;;1;898;R898 +899;Part 899;;1;899;R899 +900;Part 900;;1;900;R900 +901;Part 901;;1;901;R901 +902;Part 902;;1;902;R902 +903;Part 903;;1;903;R903 +904;Part 904;;1;904;R904 +905;Part 905;;1;905;R905 +906;Part 906;;1;906;R906 +907;Part 907;;1;907;R907 +908;Part 908;;1;908;R908 +909;Part 909;;1;909;R909 +910;Part 910;;1;910;R910 +911;Part 911;;1;911;R911 +912;Part 912;;1;912;R912 +913;Part 913;;1;913;R913 +914;Part 914;;1;914;R914 +915;Part 915;;1;915;R915 +916;Part 916;;1;916;R916 +917;Part 917;;1;917;R917 +918;Part 918;;1;918;R918 +919;Part 919;;1;919;R919 +920;Part 920;;1;920;R920 +921;Part 921;;1;921;R921 +922;Part 922;;1;922;R922 +923;Part 923;;1;923;R923 +924;Part 924;;1;924;R924 +925;Part 925;;1;925;R925 +926;Part 926;;1;926;R926 +927;Part 927;;1;927;R927 +928;Part 928;;1;928;R928 +929;Part 929;;1;929;R929 +930;Part 930;;1;930;R930 +931;Part 931;;1;931;R931 +932;Part 932;;1;932;R932 +933;Part 933;;1;933;R933 +934;Part 934;;1;934;R934 +935;Part 935;;1;935;R935 +936;Part 936;;1;936;R936 +937;Part 937;;1;937;R937 +938;Part 938;;1;938;R938 +939;Part 939;;1;939;R939 +940;Part 940;;1;940;R940 +941;Part 941;;1;941;R941 +942;Part 942;;1;942;R942 +943;Part 943;;1;943;R943 +944;Part 944;;1;944;R944 +945;Part 945;;1;945;R945 +946;Part 946;;1;946;R946 +947;Part 947;;1;947;R947 +948;Part 948;;1;948;R948 +949;Part 949;;1;949;R949 +950;Part 950;;1;950;R950 +951;Part 951;;1;951;R951 +952;Part 952;;1;952;R952 +953;Part 953;;1;953;R953 +954;Part 954;;1;954;R954 +955;Part 955;;1;955;R955 +956;Part 956;;1;956;R956 +957;Part 957;;1;957;R957 +958;Part 958;;1;958;R958 +959;Part 959;;1;959;R959 +960;Part 960;;1;960;R960 +961;Part 961;;1;961;R961 +962;Part 962;;1;962;R962 +963;Part 963;;1;963;R963 +964;Part 964;;1;964;R964 +965;Part 965;;1;965;R965 +966;Part 966;;1;966;R966 +967;Part 967;;1;967;R967 +968;Part 968;;1;968;R968 +969;Part 969;;1;969;R969 +970;Part 970;;1;970;R970 +971;Part 971;;1;971;R971 +972;Part 972;;1;972;R972 +973;Part 973;;1;973;R973 +974;Part 974;;1;974;R974 +975;Part 975;;1;975;R975 +976;Part 976;;1;976;R976 +977;Part 977;;1;977;R977 +978;Part 978;;1;978;R978 +979;Part 979;;1;979;R979 +980;Part 980;;1;980;R980 +981;Part 981;;1;981;R981 +982;Part 982;;1;982;R982 +983;Part 983;;1;983;R983 +984;Part 984;;1;984;R984 +985;Part 985;;1;985;R985 +986;Part 986;;1;986;R986 +987;Part 987;;1;987;R987 +988;Part 988;;1;988;R988 +989;Part 989;;1;989;R989 +990;Part 990;;1;990;R990 +991;Part 991;;1;991;R991 +992;Part 992;;1;992;R992 +993;Part 993;;1;993;R993 +994;Part 994;;1;994;R994 +995;Part 995;;1;995;R995 +996;Part 996;;1;996;R996 +997;Part 997;;1;997;R997 +998;Part 998;;1;998;R998 +999;Part 999;;1;999;R999 +1000;Part 1000;;1;1000;R1000 +1001;Part 1001;;1;1001;R1001 +1002;Part 1002;;1;1002;R1002 +1003;Part 1003;;1;1003;R1003 +1004;Part 1004;;1;1004;R1004 +1005;Part 1005;;1;1005;R1005 +1006;Part 1006;;1;1006;R1006 +1007;Part 1007;;1;1007;R1007 +1008;Part 1008;;1;1008;R1008 +1009;Part 1009;;1;1009;R1009 +1010;Part 1010;;1;1010;R1010 +1011;Part 1011;;1;1011;R1011 +1012;Part 1012;;1;1012;R1012 +1013;Part 1013;;1;1013;R1013 +1014;Part 1014;;1;1014;R1014 +1015;Part 1015;;1;1015;R1015 +1016;Part 1016;;1;1016;R1016 +1017;Part 1017;;1;1017;R1017 +1018;Part 1018;;1;1018;R1018 +1019;Part 1019;;1;1019;R1019 +1020;Part 1020;;1;1020;R1020 +1021;Part 1021;;1;1021;R1021 +1022;Part 1022;;1;1022;R1022 +1023;Part 1023;;1;1023;R1023 +1024;Part 1024;;1;1024;R1024 +1025;Part 1025;;1;1025;R1025 +1026;Part 1026;;1;1026;R1026 +1027;Part 1027;;1;1027;R1027 +1028;Part 1028;;1;1028;R1028 +1029;Part 1029;;1;1029;R1029 +1030;Part 1030;;1;1030;R1030 +1031;Part 1031;;1;1031;R1031 +1032;Part 1032;;1;1032;R1032 +1033;Part 1033;;1;1033;R1033 +1034;Part 1034;;1;1034;R1034 +1035;Part 1035;;1;1035;R1035 +1036;Part 1036;;1;1036;R1036 +1037;Part 1037;;1;1037;R1037 +1038;Part 1038;;1;1038;R1038 +1039;Part 1039;;1;1039;R1039 +1040;Part 1040;;1;1040;R1040 +1041;Part 1041;;1;1041;R1041 +1042;Part 1042;;1;1042;R1042 +1043;Part 1043;;1;1043;R1043 +1044;Part 1044;;1;1044;R1044 +1045;Part 1045;;1;1045;R1045 +1046;Part 1046;;1;1046;R1046 +1047;Part 1047;;1;1047;R1047 +1048;Part 1048;;1;1048;R1048 +1049;Part 1049;;1;1049;R1049 +1050;Part 1050;;1;1050;R1050 +1051;Part 1051;;1;1051;R1051 +1052;Part 1052;;1;1052;R1052 +1053;Part 1053;;1;1053;R1053 +1054;Part 1054;;1;1054;R1054 +1055;Part 1055;;1;1055;R1055 +1056;Part 1056;;1;1056;R1056 +1057;Part 1057;;1;1057;R1057 +1058;Part 1058;;1;1058;R1058 +1059;Part 1059;;1;1059;R1059 +1060;Part 1060;;1;1060;R1060 +1061;Part 1061;;1;1061;R1061 +1062;Part 1062;;1;1062;R1062 +1063;Part 1063;;1;1063;R1063 +1064;Part 1064;;1;1064;R1064 +1065;Part 1065;;1;1065;R1065 +1066;Part 1066;;1;1066;R1066 +1067;Part 1067;;1;1067;R1067 +1068;Part 1068;;1;1068;R1068 +1069;Part 1069;;1;1069;R1069 +1070;Part 1070;;1;1070;R1070 +1071;Part 1071;;1;1071;R1071 +1072;Part 1072;;1;1072;R1072 +1073;Part 1073;;1;1073;R1073 +1074;Part 1074;;1;1074;R1074 +1075;Part 1075;;1;1075;R1075 +1076;Part 1076;;1;1076;R1076 +1077;Part 1077;;1;1077;R1077 +1078;Part 1078;;1;1078;R1078 +1079;Part 1079;;1;1079;R1079 +1080;Part 1080;;1;1080;R1080 +1081;Part 1081;;1;1081;R1081 +1082;Part 1082;;1;1082;R1082 +1083;Part 1083;;1;1083;R1083 +1084;Part 1084;;1;1084;R1084 +1085;Part 1085;;1;1085;R1085 +1086;Part 1086;;1;1086;R1086 +1087;Part 1087;;1;1087;R1087 +1088;Part 1088;;1;1088;R1088 +1089;Part 1089;;1;1089;R1089 +1090;Part 1090;;1;1090;R1090 +1091;Part 1091;;1;1091;R1091 +1092;Part 1092;;1;1092;R1092 +1093;Part 1093;;1;1093;R1093 +1094;Part 1094;;1;1094;R1094 +1095;Part 1095;;1;1095;R1095 +1096;Part 1096;;1;1096;R1096 +1097;Part 1097;;1;1097;R1097 +1098;Part 1098;;1;1098;R1098 +1099;Part 1099;;1;1099;R1099 +1100;Part 1100;;1;1100;R1100 +1101;Part 1101;;1;1101;R1101 +1102;Part 1102;;1;1102;R1102 +1103;Part 1103;;1;1103;R1103 +1104;Part 1104;;1;1104;R1104 +1105;Part 1105;;1;1105;R1105 +1106;Part 1106;;1;1106;R1106 +1107;Part 1107;;1;1107;R1107 +1108;Part 1108;;1;1108;R1108 +1109;Part 1109;;1;1109;R1109 +1110;Part 1110;;1;1110;R1110 +1111;Part 1111;;1;1111;R1111 +1112;Part 1112;;1;1112;R1112 +1113;Part 1113;;1;1113;R1113 +1114;Part 1114;;1;1114;R1114 +1115;Part 1115;;1;1115;R1115 +1116;Part 1116;;1;1116;R1116 +1117;Part 1117;;1;1117;R1117 +1118;Part 1118;;1;1118;R1118 +1119;Part 1119;;1;1119;R1119 +1120;Part 1120;;1;1120;R1120 +1121;Part 1121;;1;1121;R1121 +1122;Part 1122;;1;1122;R1122 +1123;Part 1123;;1;1123;R1123 +1124;Part 1124;;1;1124;R1124 +1125;Part 1125;;1;1125;R1125 +1126;Part 1126;;1;1126;R1126 +1127;Part 1127;;1;1127;R1127 +1128;Part 1128;;1;1128;R1128 +1129;Part 1129;;1;1129;R1129 +1130;Part 1130;;1;1130;R1130 +1131;Part 1131;;1;1131;R1131 +1132;Part 1132;;1;1132;R1132 +1133;Part 1133;;1;1133;R1133 +1134;Part 1134;;1;1134;R1134 +1135;Part 1135;;1;1135;R1135 +1136;Part 1136;;1;1136;R1136 +1137;Part 1137;;1;1137;R1137 +1138;Part 1138;;1;1138;R1138 +1139;Part 1139;;1;1139;R1139 +1140;Part 1140;;1;1140;R1140 +1141;Part 1141;;1;1141;R1141 +1142;Part 1142;;1;1142;R1142 +1143;Part 1143;;1;1143;R1143 +1144;Part 1144;;1;1144;R1144 +1145;Part 1145;;1;1145;R1145 +1146;Part 1146;;1;1146;R1146 +1147;Part 1147;;1;1147;R1147 +1148;Part 1148;;1;1148;R1148 +1149;Part 1149;;1;1149;R1149 +1150;Part 1150;;1;1150;R1150 +1151;Part 1151;;1;1151;R1151 +1152;Part 1152;;1;1152;R1152 +1153;Part 1153;;1;1153;R1153 +1154;Part 1154;;1;1154;R1154 +1155;Part 1155;;1;1155;R1155 +1156;Part 1156;;1;1156;R1156 +1157;Part 1157;;1;1157;R1157 +1158;Part 1158;;1;1158;R1158 +1159;Part 1159;;1;1159;R1159 +1160;Part 1160;;1;1160;R1160 +1161;Part 1161;;1;1161;R1161 +1162;Part 1162;;1;1162;R1162 +1163;Part 1163;;1;1163;R1163 +1164;Part 1164;;1;1164;R1164 +1165;Part 1165;;1;1165;R1165 +1166;Part 1166;;1;1166;R1166 +1167;Part 1167;;1;1167;R1167 +1168;Part 1168;;1;1168;R1168 +1169;Part 1169;;1;1169;R1169 +1170;Part 1170;;1;1170;R1170 +1171;Part 1171;;1;1171;R1171 +1172;Part 1172;;1;1172;R1172 +1173;Part 1173;;1;1173;R1173 +1174;Part 1174;;1;1174;R1174 +1175;Part 1175;;1;1175;R1175 +1176;Part 1176;;1;1176;R1176 +1177;Part 1177;;1;1177;R1177 +1178;Part 1178;;1;1178;R1178 +1179;Part 1179;;1;1179;R1179 +1180;Part 1180;;1;1180;R1180 +1181;Part 1181;;1;1181;R1181 +1182;Part 1182;;1;1182;R1182 +1183;Part 1183;;1;1183;R1183 +1184;Part 1184;;1;1184;R1184 +1185;Part 1185;;1;1185;R1185 +1186;Part 1186;;1;1186;R1186 +1187;Part 1187;;1;1187;R1187 +1188;Part 1188;;1;1188;R1188 +1189;Part 1189;;1;1189;R1189 +1190;Part 1190;;1;1190;R1190 +1191;Part 1191;;1;1191;R1191 +1192;Part 1192;;1;1192;R1192 +1193;Part 1193;;1;1193;R1193 +1194;Part 1194;;1;1194;R1194 +1195;Part 1195;;1;1195;R1195 +1196;Part 1196;;1;1196;R1196 +1197;Part 1197;;1;1197;R1197 +1198;Part 1198;;1;1198;R1198 +1199;Part 1199;;1;1199;R1199 +1200;Part 1200;;1;1200;R1200 +1201;Part 1201;;1;1201;R1201 +1202;Part 1202;;1;1202;R1202 +1203;Part 1203;;1;1203;R1203 +1204;Part 1204;;1;1204;R1204 +1205;Part 1205;;1;1205;R1205 +1206;Part 1206;;1;1206;R1206 +1207;Part 1207;;1;1207;R1207 +1208;Part 1208;;1;1208;R1208 +1209;Part 1209;;1;1209;R1209 +1210;Part 1210;;1;1210;R1210 +1211;Part 1211;;1;1211;R1211 +1212;Part 1212;;1;1212;R1212 +1213;Part 1213;;1;1213;R1213 +1214;Part 1214;;1;1214;R1214 +1215;Part 1215;;1;1215;R1215 +1216;Part 1216;;1;1216;R1216 +1217;Part 1217;;1;1217;R1217 +1218;Part 1218;;1;1218;R1218 +1219;Part 1219;;1;1219;R1219 +1220;Part 1220;;1;1220;R1220 +1221;Part 1221;;1;1221;R1221 +1222;Part 1222;;1;1222;R1222 +1223;Part 1223;;1;1223;R1223 +1224;Part 1224;;1;1224;R1224 +1225;Part 1225;;1;1225;R1225 +1226;Part 1226;;1;1226;R1226 +1227;Part 1227;;1;1227;R1227 +1228;Part 1228;;1;1228;R1228 +1229;Part 1229;;1;1229;R1229 +1230;Part 1230;;1;1230;R1230 +1231;Part 1231;;1;1231;R1231 +1232;Part 1232;;1;1232;R1232 +1233;Part 1233;;1;1233;R1233 +1234;Part 1234;;1;1234;R1234 +1235;Part 1235;;1;1235;R1235 +1236;Part 1236;;1;1236;R1236 +1237;Part 1237;;1;1237;R1237 +1238;Part 1238;;1;1238;R1238 +1239;Part 1239;;1;1239;R1239 +1240;Part 1240;;1;1240;R1240 +1241;Part 1241;;1;1241;R1241 +1242;Part 1242;;1;1242;R1242 +1243;Part 1243;;1;1243;R1243 +1244;Part 1244;;1;1244;R1244 +1245;Part 1245;;1;1245;R1245 +1246;Part 1246;;1;1246;R1246 +1247;Part 1247;;1;1247;R1247 +1248;Part 1248;;1;1248;R1248 +1249;Part 1249;;1;1249;R1249 +1250;Part 1250;;1;1250;R1250 +1251;Part 1251;;1;1251;R1251 +1252;Part 1252;;1;1252;R1252 +1253;Part 1253;;1;1253;R1253 +1254;Part 1254;;1;1254;R1254 +1255;Part 1255;;1;1255;R1255 +1256;Part 1256;;1;1256;R1256 +1257;Part 1257;;1;1257;R1257 +1258;Part 1258;;1;1258;R1258 +1259;Part 1259;;1;1259;R1259 +1260;Part 1260;;1;1260;R1260 +1261;Part 1261;;1;1261;R1261 +1262;Part 1262;;1;1262;R1262 +1263;Part 1263;;1;1263;R1263 +1264;Part 1264;;1;1264;R1264 +1265;Part 1265;;1;1265;R1265 +1266;Part 1266;;1;1266;R1266 +1267;Part 1267;;1;1267;R1267 +1268;Part 1268;;1;1268;R1268 +1269;Part 1269;;1;1269;R1269 +1270;Part 1270;;1;1270;R1270 +1271;Part 1271;;1;1271;R1271 +1272;Part 1272;;1;1272;R1272 +1273;Part 1273;;1;1273;R1273 +1274;Part 1274;;1;1274;R1274 +1275;Part 1275;;1;1275;R1275 +1276;Part 1276;;1;1276;R1276 +1277;Part 1277;;1;1277;R1277 +1278;Part 1278;;1;1278;R1278 +1279;Part 1279;;1;1279;R1279 +1280;Part 1280;;1;1280;R1280 +1281;Part 1281;;1;1281;R1281 +1282;Part 1282;;1;1282;R1282 +1283;Part 1283;;1;1283;R1283 +1284;Part 1284;;1;1284;R1284 +1285;Part 1285;;1;1285;R1285 +1286;Part 1286;;1;1286;R1286 +1287;Part 1287;;1;1287;R1287 +1288;Part 1288;;1;1288;R1288 +1289;Part 1289;;1;1289;R1289 +1290;Part 1290;;1;1290;R1290 +1291;Part 1291;;1;1291;R1291 +1292;Part 1292;;1;1292;R1292 +1293;Part 1293;;1;1293;R1293 +1294;Part 1294;;1;1294;R1294 +1295;Part 1295;;1;1295;R1295 +1296;Part 1296;;1;1296;R1296 +1297;Part 1297;;1;1297;R1297 +1298;Part 1298;;1;1298;R1298 +1299;Part 1299;;1;1299;R1299 +1300;Part 1300;;1;1300;R1300 +1301;Part 1301;;1;1301;R1301 +1302;Part 1302;;1;1302;R1302 +1303;Part 1303;;1;1303;R1303 +1304;Part 1304;;1;1304;R1304 +1305;Part 1305;;1;1305;R1305 +1306;Part 1306;;1;1306;R1306 +1307;Part 1307;;1;1307;R1307 +1308;Part 1308;;1;1308;R1308 +1309;Part 1309;;1;1309;R1309 +1310;Part 1310;;1;1310;R1310 +1311;Part 1311;;1;1311;R1311 +1312;Part 1312;;1;1312;R1312 +1313;Part 1313;;1;1313;R1313 +1314;Part 1314;;1;1314;R1314 +1315;Part 1315;;1;1315;R1315 +1316;Part 1316;;1;1316;R1316 +1317;Part 1317;;1;1317;R1317 +1318;Part 1318;;1;1318;R1318 +1319;Part 1319;;1;1319;R1319 +1320;Part 1320;;1;1320;R1320 +1321;Part 1321;;1;1321;R1321 +1322;Part 1322;;1;1322;R1322 +1323;Part 1323;;1;1323;R1323 +1324;Part 1324;;1;1324;R1324 +1325;Part 1325;;1;1325;R1325 +1326;Part 1326;;1;1326;R1326 +1327;Part 1327;;1;1327;R1327 +1328;Part 1328;;1;1328;R1328 +1329;Part 1329;;1;1329;R1329 +1330;Part 1330;;1;1330;R1330 +1331;Part 1331;;1;1331;R1331 +1332;Part 1332;;1;1332;R1332 +1333;Part 1333;;1;1333;R1333 +1334;Part 1334;;1;1334;R1334 +1335;Part 1335;;1;1335;R1335 +1336;Part 1336;;1;1336;R1336 +1337;Part 1337;;1;1337;R1337 +1338;Part 1338;;1;1338;R1338 +1339;Part 1339;;1;1339;R1339 +1340;Part 1340;;1;1340;R1340 +1341;Part 1341;;1;1341;R1341 +1342;Part 1342;;1;1342;R1342 +1343;Part 1343;;1;1343;R1343 +1344;Part 1344;;1;1344;R1344 +1345;Part 1345;;1;1345;R1345 +1346;Part 1346;;1;1346;R1346 +1347;Part 1347;;1;1347;R1347 +1348;Part 1348;;1;1348;R1348 +1349;Part 1349;;1;1349;R1349 +1350;Part 1350;;1;1350;R1350 +1351;Part 1351;;1;1351;R1351 +1352;Part 1352;;1;1352;R1352 +1353;Part 1353;;1;1353;R1353 +1354;Part 1354;;1;1354;R1354 +1355;Part 1355;;1;1355;R1355 +1356;Part 1356;;1;1356;R1356 +1357;Part 1357;;1;1357;R1357 +1358;Part 1358;;1;1358;R1358 +1359;Part 1359;;1;1359;R1359 +1360;Part 1360;;1;1360;R1360 +1361;Part 1361;;1;1361;R1361 +1362;Part 1362;;1;1362;R1362 +1363;Part 1363;;1;1363;R1363 +1364;Part 1364;;1;1364;R1364 +1365;Part 1365;;1;1365;R1365 +1366;Part 1366;;1;1366;R1366 +1367;Part 1367;;1;1367;R1367 +1368;Part 1368;;1;1368;R1368 +1369;Part 1369;;1;1369;R1369 +1370;Part 1370;;1;1370;R1370 +1371;Part 1371;;1;1371;R1371 +1372;Part 1372;;1;1372;R1372 +1373;Part 1373;;1;1373;R1373 +1374;Part 1374;;1;1374;R1374 +1375;Part 1375;;1;1375;R1375 +1376;Part 1376;;1;1376;R1376 +1377;Part 1377;;1;1377;R1377 +1378;Part 1378;;1;1378;R1378 +1379;Part 1379;;1;1379;R1379 +1380;Part 1380;;1;1380;R1380 +1381;Part 1381;;1;1381;R1381 +1382;Part 1382;;1;1382;R1382 +1383;Part 1383;;1;1383;R1383 +1384;Part 1384;;1;1384;R1384 +1385;Part 1385;;1;1385;R1385 +1386;Part 1386;;1;1386;R1386 +1387;Part 1387;;1;1387;R1387 +1388;Part 1388;;1;1388;R1388 +1389;Part 1389;;1;1389;R1389 +1390;Part 1390;;1;1390;R1390 +1391;Part 1391;;1;1391;R1391 +1392;Part 1392;;1;1392;R1392 +1393;Part 1393;;1;1393;R1393 +1394;Part 1394;;1;1394;R1394 +1395;Part 1395;;1;1395;R1395 +1396;Part 1396;;1;1396;R1396 +1397;Part 1397;;1;1397;R1397 +1398;Part 1398;;1;1398;R1398 +1399;Part 1399;;1;1399;R1399 +1400;Part 1400;;1;1400;R1400 diff --git a/tests/assets/project_bom/issue_911/Parts_1500.csv b/tests/assets/project_bom/issue_911/Parts_1500.csv new file mode 100644 index 000000000..6a507ba9f --- /dev/null +++ b/tests/assets/project_bom/issue_911/Parts_1500.csv @@ -0,0 +1,1501 @@ +Id;Designator;Footprint;Quantity;Value;Supplier and Supplier Part Number +1;Part 1;;1;1;R1 +2;Part 2;;1;2;R2 +3;Part 3;;1;3;R3 +4;Part 4;;1;4;R4 +5;Part 5;;1;5;R5 +6;Part 6;;1;6;R6 +7;Part 7;;1;7;R7 +8;Part 8;;1;8;R8 +9;Part 9;;1;9;R9 +10;Part 10;;1;10;R10 +11;Part 11;;1;11;R11 +12;Part 12;;1;12;R12 +13;Part 13;;1;13;R13 +14;Part 14;;1;14;R14 +15;Part 15;;1;15;R15 +16;Part 16;;1;16;R16 +17;Part 17;;1;17;R17 +18;Part 18;;1;18;R18 +19;Part 19;;1;19;R19 +20;Part 20;;1;20;R20 +21;Part 21;;1;21;R21 +22;Part 22;;1;22;R22 +23;Part 23;;1;23;R23 +24;Part 24;;1;24;R24 +25;Part 25;;1;25;R25 +26;Part 26;;1;26;R26 +27;Part 27;;1;27;R27 +28;Part 28;;1;28;R28 +29;Part 29;;1;29;R29 +30;Part 30;;1;30;R30 +31;Part 31;;1;31;R31 +32;Part 32;;1;32;R32 +33;Part 33;;1;33;R33 +34;Part 34;;1;34;R34 +35;Part 35;;1;35;R35 +36;Part 36;;1;36;R36 +37;Part 37;;1;37;R37 +38;Part 38;;1;38;R38 +39;Part 39;;1;39;R39 +40;Part 40;;1;40;R40 +41;Part 41;;1;41;R41 +42;Part 42;;1;42;R42 +43;Part 43;;1;43;R43 +44;Part 44;;1;44;R44 +45;Part 45;;1;45;R45 +46;Part 46;;1;46;R46 +47;Part 47;;1;47;R47 +48;Part 48;;1;48;R48 +49;Part 49;;1;49;R49 +50;Part 50;;1;50;R50 +51;Part 51;;1;51;R51 +52;Part 52;;1;52;R52 +53;Part 53;;1;53;R53 +54;Part 54;;1;54;R54 +55;Part 55;;1;55;R55 +56;Part 56;;1;56;R56 +57;Part 57;;1;57;R57 +58;Part 58;;1;58;R58 +59;Part 59;;1;59;R59 +60;Part 60;;1;60;R60 +61;Part 61;;1;61;R61 +62;Part 62;;1;62;R62 +63;Part 63;;1;63;R63 +64;Part 64;;1;64;R64 +65;Part 65;;1;65;R65 +66;Part 66;;1;66;R66 +67;Part 67;;1;67;R67 +68;Part 68;;1;68;R68 +69;Part 69;;1;69;R69 +70;Part 70;;1;70;R70 +71;Part 71;;1;71;R71 +72;Part 72;;1;72;R72 +73;Part 73;;1;73;R73 +74;Part 74;;1;74;R74 +75;Part 75;;1;75;R75 +76;Part 76;;1;76;R76 +77;Part 77;;1;77;R77 +78;Part 78;;1;78;R78 +79;Part 79;;1;79;R79 +80;Part 80;;1;80;R80 +81;Part 81;;1;81;R81 +82;Part 82;;1;82;R82 +83;Part 83;;1;83;R83 +84;Part 84;;1;84;R84 +85;Part 85;;1;85;R85 +86;Part 86;;1;86;R86 +87;Part 87;;1;87;R87 +88;Part 88;;1;88;R88 +89;Part 89;;1;89;R89 +90;Part 90;;1;90;R90 +91;Part 91;;1;91;R91 +92;Part 92;;1;92;R92 +93;Part 93;;1;93;R93 +94;Part 94;;1;94;R94 +95;Part 95;;1;95;R95 +96;Part 96;;1;96;R96 +97;Part 97;;1;97;R97 +98;Part 98;;1;98;R98 +99;Part 99;;1;99;R99 +100;Part 100;;1;100;R100 +101;Part 101;;1;101;R101 +102;Part 102;;1;102;R102 +103;Part 103;;1;103;R103 +104;Part 104;;1;104;R104 +105;Part 105;;1;105;R105 +106;Part 106;;1;106;R106 +107;Part 107;;1;107;R107 +108;Part 108;;1;108;R108 +109;Part 109;;1;109;R109 +110;Part 110;;1;110;R110 +111;Part 111;;1;111;R111 +112;Part 112;;1;112;R112 +113;Part 113;;1;113;R113 +114;Part 114;;1;114;R114 +115;Part 115;;1;115;R115 +116;Part 116;;1;116;R116 +117;Part 117;;1;117;R117 +118;Part 118;;1;118;R118 +119;Part 119;;1;119;R119 +120;Part 120;;1;120;R120 +121;Part 121;;1;121;R121 +122;Part 122;;1;122;R122 +123;Part 123;;1;123;R123 +124;Part 124;;1;124;R124 +125;Part 125;;1;125;R125 +126;Part 126;;1;126;R126 +127;Part 127;;1;127;R127 +128;Part 128;;1;128;R128 +129;Part 129;;1;129;R129 +130;Part 130;;1;130;R130 +131;Part 131;;1;131;R131 +132;Part 132;;1;132;R132 +133;Part 133;;1;133;R133 +134;Part 134;;1;134;R134 +135;Part 135;;1;135;R135 +136;Part 136;;1;136;R136 +137;Part 137;;1;137;R137 +138;Part 138;;1;138;R138 +139;Part 139;;1;139;R139 +140;Part 140;;1;140;R140 +141;Part 141;;1;141;R141 +142;Part 142;;1;142;R142 +143;Part 143;;1;143;R143 +144;Part 144;;1;144;R144 +145;Part 145;;1;145;R145 +146;Part 146;;1;146;R146 +147;Part 147;;1;147;R147 +148;Part 148;;1;148;R148 +149;Part 149;;1;149;R149 +150;Part 150;;1;150;R150 +151;Part 151;;1;151;R151 +152;Part 152;;1;152;R152 +153;Part 153;;1;153;R153 +154;Part 154;;1;154;R154 +155;Part 155;;1;155;R155 +156;Part 156;;1;156;R156 +157;Part 157;;1;157;R157 +158;Part 158;;1;158;R158 +159;Part 159;;1;159;R159 +160;Part 160;;1;160;R160 +161;Part 161;;1;161;R161 +162;Part 162;;1;162;R162 +163;Part 163;;1;163;R163 +164;Part 164;;1;164;R164 +165;Part 165;;1;165;R165 +166;Part 166;;1;166;R166 +167;Part 167;;1;167;R167 +168;Part 168;;1;168;R168 +169;Part 169;;1;169;R169 +170;Part 170;;1;170;R170 +171;Part 171;;1;171;R171 +172;Part 172;;1;172;R172 +173;Part 173;;1;173;R173 +174;Part 174;;1;174;R174 +175;Part 175;;1;175;R175 +176;Part 176;;1;176;R176 +177;Part 177;;1;177;R177 +178;Part 178;;1;178;R178 +179;Part 179;;1;179;R179 +180;Part 180;;1;180;R180 +181;Part 181;;1;181;R181 +182;Part 182;;1;182;R182 +183;Part 183;;1;183;R183 +184;Part 184;;1;184;R184 +185;Part 185;;1;185;R185 +186;Part 186;;1;186;R186 +187;Part 187;;1;187;R187 +188;Part 188;;1;188;R188 +189;Part 189;;1;189;R189 +190;Part 190;;1;190;R190 +191;Part 191;;1;191;R191 +192;Part 192;;1;192;R192 +193;Part 193;;1;193;R193 +194;Part 194;;1;194;R194 +195;Part 195;;1;195;R195 +196;Part 196;;1;196;R196 +197;Part 197;;1;197;R197 +198;Part 198;;1;198;R198 +199;Part 199;;1;199;R199 +200;Part 200;;1;200;R200 +201;Part 201;;1;201;R201 +202;Part 202;;1;202;R202 +203;Part 203;;1;203;R203 +204;Part 204;;1;204;R204 +205;Part 205;;1;205;R205 +206;Part 206;;1;206;R206 +207;Part 207;;1;207;R207 +208;Part 208;;1;208;R208 +209;Part 209;;1;209;R209 +210;Part 210;;1;210;R210 +211;Part 211;;1;211;R211 +212;Part 212;;1;212;R212 +213;Part 213;;1;213;R213 +214;Part 214;;1;214;R214 +215;Part 215;;1;215;R215 +216;Part 216;;1;216;R216 +217;Part 217;;1;217;R217 +218;Part 218;;1;218;R218 +219;Part 219;;1;219;R219 +220;Part 220;;1;220;R220 +221;Part 221;;1;221;R221 +222;Part 222;;1;222;R222 +223;Part 223;;1;223;R223 +224;Part 224;;1;224;R224 +225;Part 225;;1;225;R225 +226;Part 226;;1;226;R226 +227;Part 227;;1;227;R227 +228;Part 228;;1;228;R228 +229;Part 229;;1;229;R229 +230;Part 230;;1;230;R230 +231;Part 231;;1;231;R231 +232;Part 232;;1;232;R232 +233;Part 233;;1;233;R233 +234;Part 234;;1;234;R234 +235;Part 235;;1;235;R235 +236;Part 236;;1;236;R236 +237;Part 237;;1;237;R237 +238;Part 238;;1;238;R238 +239;Part 239;;1;239;R239 +240;Part 240;;1;240;R240 +241;Part 241;;1;241;R241 +242;Part 242;;1;242;R242 +243;Part 243;;1;243;R243 +244;Part 244;;1;244;R244 +245;Part 245;;1;245;R245 +246;Part 246;;1;246;R246 +247;Part 247;;1;247;R247 +248;Part 248;;1;248;R248 +249;Part 249;;1;249;R249 +250;Part 250;;1;250;R250 +251;Part 251;;1;251;R251 +252;Part 252;;1;252;R252 +253;Part 253;;1;253;R253 +254;Part 254;;1;254;R254 +255;Part 255;;1;255;R255 +256;Part 256;;1;256;R256 +257;Part 257;;1;257;R257 +258;Part 258;;1;258;R258 +259;Part 259;;1;259;R259 +260;Part 260;;1;260;R260 +261;Part 261;;1;261;R261 +262;Part 262;;1;262;R262 +263;Part 263;;1;263;R263 +264;Part 264;;1;264;R264 +265;Part 265;;1;265;R265 +266;Part 266;;1;266;R266 +267;Part 267;;1;267;R267 +268;Part 268;;1;268;R268 +269;Part 269;;1;269;R269 +270;Part 270;;1;270;R270 +271;Part 271;;1;271;R271 +272;Part 272;;1;272;R272 +273;Part 273;;1;273;R273 +274;Part 274;;1;274;R274 +275;Part 275;;1;275;R275 +276;Part 276;;1;276;R276 +277;Part 277;;1;277;R277 +278;Part 278;;1;278;R278 +279;Part 279;;1;279;R279 +280;Part 280;;1;280;R280 +281;Part 281;;1;281;R281 +282;Part 282;;1;282;R282 +283;Part 283;;1;283;R283 +284;Part 284;;1;284;R284 +285;Part 285;;1;285;R285 +286;Part 286;;1;286;R286 +287;Part 287;;1;287;R287 +288;Part 288;;1;288;R288 +289;Part 289;;1;289;R289 +290;Part 290;;1;290;R290 +291;Part 291;;1;291;R291 +292;Part 292;;1;292;R292 +293;Part 293;;1;293;R293 +294;Part 294;;1;294;R294 +295;Part 295;;1;295;R295 +296;Part 296;;1;296;R296 +297;Part 297;;1;297;R297 +298;Part 298;;1;298;R298 +299;Part 299;;1;299;R299 +300;Part 300;;1;300;R300 +301;Part 301;;1;301;R301 +302;Part 302;;1;302;R302 +303;Part 303;;1;303;R303 +304;Part 304;;1;304;R304 +305;Part 305;;1;305;R305 +306;Part 306;;1;306;R306 +307;Part 307;;1;307;R307 +308;Part 308;;1;308;R308 +309;Part 309;;1;309;R309 +310;Part 310;;1;310;R310 +311;Part 311;;1;311;R311 +312;Part 312;;1;312;R312 +313;Part 313;;1;313;R313 +314;Part 314;;1;314;R314 +315;Part 315;;1;315;R315 +316;Part 316;;1;316;R316 +317;Part 317;;1;317;R317 +318;Part 318;;1;318;R318 +319;Part 319;;1;319;R319 +320;Part 320;;1;320;R320 +321;Part 321;;1;321;R321 +322;Part 322;;1;322;R322 +323;Part 323;;1;323;R323 +324;Part 324;;1;324;R324 +325;Part 325;;1;325;R325 +326;Part 326;;1;326;R326 +327;Part 327;;1;327;R327 +328;Part 328;;1;328;R328 +329;Part 329;;1;329;R329 +330;Part 330;;1;330;R330 +331;Part 331;;1;331;R331 +332;Part 332;;1;332;R332 +333;Part 333;;1;333;R333 +334;Part 334;;1;334;R334 +335;Part 335;;1;335;R335 +336;Part 336;;1;336;R336 +337;Part 337;;1;337;R337 +338;Part 338;;1;338;R338 +339;Part 339;;1;339;R339 +340;Part 340;;1;340;R340 +341;Part 341;;1;341;R341 +342;Part 342;;1;342;R342 +343;Part 343;;1;343;R343 +344;Part 344;;1;344;R344 +345;Part 345;;1;345;R345 +346;Part 346;;1;346;R346 +347;Part 347;;1;347;R347 +348;Part 348;;1;348;R348 +349;Part 349;;1;349;R349 +350;Part 350;;1;350;R350 +351;Part 351;;1;351;R351 +352;Part 352;;1;352;R352 +353;Part 353;;1;353;R353 +354;Part 354;;1;354;R354 +355;Part 355;;1;355;R355 +356;Part 356;;1;356;R356 +357;Part 357;;1;357;R357 +358;Part 358;;1;358;R358 +359;Part 359;;1;359;R359 +360;Part 360;;1;360;R360 +361;Part 361;;1;361;R361 +362;Part 362;;1;362;R362 +363;Part 363;;1;363;R363 +364;Part 364;;1;364;R364 +365;Part 365;;1;365;R365 +366;Part 366;;1;366;R366 +367;Part 367;;1;367;R367 +368;Part 368;;1;368;R368 +369;Part 369;;1;369;R369 +370;Part 370;;1;370;R370 +371;Part 371;;1;371;R371 +372;Part 372;;1;372;R372 +373;Part 373;;1;373;R373 +374;Part 374;;1;374;R374 +375;Part 375;;1;375;R375 +376;Part 376;;1;376;R376 +377;Part 377;;1;377;R377 +378;Part 378;;1;378;R378 +379;Part 379;;1;379;R379 +380;Part 380;;1;380;R380 +381;Part 381;;1;381;R381 +382;Part 382;;1;382;R382 +383;Part 383;;1;383;R383 +384;Part 384;;1;384;R384 +385;Part 385;;1;385;R385 +386;Part 386;;1;386;R386 +387;Part 387;;1;387;R387 +388;Part 388;;1;388;R388 +389;Part 389;;1;389;R389 +390;Part 390;;1;390;R390 +391;Part 391;;1;391;R391 +392;Part 392;;1;392;R392 +393;Part 393;;1;393;R393 +394;Part 394;;1;394;R394 +395;Part 395;;1;395;R395 +396;Part 396;;1;396;R396 +397;Part 397;;1;397;R397 +398;Part 398;;1;398;R398 +399;Part 399;;1;399;R399 +400;Part 400;;1;400;R400 +401;Part 401;;1;401;R401 +402;Part 402;;1;402;R402 +403;Part 403;;1;403;R403 +404;Part 404;;1;404;R404 +405;Part 405;;1;405;R405 +406;Part 406;;1;406;R406 +407;Part 407;;1;407;R407 +408;Part 408;;1;408;R408 +409;Part 409;;1;409;R409 +410;Part 410;;1;410;R410 +411;Part 411;;1;411;R411 +412;Part 412;;1;412;R412 +413;Part 413;;1;413;R413 +414;Part 414;;1;414;R414 +415;Part 415;;1;415;R415 +416;Part 416;;1;416;R416 +417;Part 417;;1;417;R417 +418;Part 418;;1;418;R418 +419;Part 419;;1;419;R419 +420;Part 420;;1;420;R420 +421;Part 421;;1;421;R421 +422;Part 422;;1;422;R422 +423;Part 423;;1;423;R423 +424;Part 424;;1;424;R424 +425;Part 425;;1;425;R425 +426;Part 426;;1;426;R426 +427;Part 427;;1;427;R427 +428;Part 428;;1;428;R428 +429;Part 429;;1;429;R429 +430;Part 430;;1;430;R430 +431;Part 431;;1;431;R431 +432;Part 432;;1;432;R432 +433;Part 433;;1;433;R433 +434;Part 434;;1;434;R434 +435;Part 435;;1;435;R435 +436;Part 436;;1;436;R436 +437;Part 437;;1;437;R437 +438;Part 438;;1;438;R438 +439;Part 439;;1;439;R439 +440;Part 440;;1;440;R440 +441;Part 441;;1;441;R441 +442;Part 442;;1;442;R442 +443;Part 443;;1;443;R443 +444;Part 444;;1;444;R444 +445;Part 445;;1;445;R445 +446;Part 446;;1;446;R446 +447;Part 447;;1;447;R447 +448;Part 448;;1;448;R448 +449;Part 449;;1;449;R449 +450;Part 450;;1;450;R450 +451;Part 451;;1;451;R451 +452;Part 452;;1;452;R452 +453;Part 453;;1;453;R453 +454;Part 454;;1;454;R454 +455;Part 455;;1;455;R455 +456;Part 456;;1;456;R456 +457;Part 457;;1;457;R457 +458;Part 458;;1;458;R458 +459;Part 459;;1;459;R459 +460;Part 460;;1;460;R460 +461;Part 461;;1;461;R461 +462;Part 462;;1;462;R462 +463;Part 463;;1;463;R463 +464;Part 464;;1;464;R464 +465;Part 465;;1;465;R465 +466;Part 466;;1;466;R466 +467;Part 467;;1;467;R467 +468;Part 468;;1;468;R468 +469;Part 469;;1;469;R469 +470;Part 470;;1;470;R470 +471;Part 471;;1;471;R471 +472;Part 472;;1;472;R472 +473;Part 473;;1;473;R473 +474;Part 474;;1;474;R474 +475;Part 475;;1;475;R475 +476;Part 476;;1;476;R476 +477;Part 477;;1;477;R477 +478;Part 478;;1;478;R478 +479;Part 479;;1;479;R479 +480;Part 480;;1;480;R480 +481;Part 481;;1;481;R481 +482;Part 482;;1;482;R482 +483;Part 483;;1;483;R483 +484;Part 484;;1;484;R484 +485;Part 485;;1;485;R485 +486;Part 486;;1;486;R486 +487;Part 487;;1;487;R487 +488;Part 488;;1;488;R488 +489;Part 489;;1;489;R489 +490;Part 490;;1;490;R490 +491;Part 491;;1;491;R491 +492;Part 492;;1;492;R492 +493;Part 493;;1;493;R493 +494;Part 494;;1;494;R494 +495;Part 495;;1;495;R495 +496;Part 496;;1;496;R496 +497;Part 497;;1;497;R497 +498;Part 498;;1;498;R498 +499;Part 499;;1;499;R499 +500;Part 500;;1;500;R500 +501;Part 501;;1;501;R501 +502;Part 502;;1;502;R502 +503;Part 503;;1;503;R503 +504;Part 504;;1;504;R504 +505;Part 505;;1;505;R505 +506;Part 506;;1;506;R506 +507;Part 507;;1;507;R507 +508;Part 508;;1;508;R508 +509;Part 509;;1;509;R509 +510;Part 510;;1;510;R510 +511;Part 511;;1;511;R511 +512;Part 512;;1;512;R512 +513;Part 513;;1;513;R513 +514;Part 514;;1;514;R514 +515;Part 515;;1;515;R515 +516;Part 516;;1;516;R516 +517;Part 517;;1;517;R517 +518;Part 518;;1;518;R518 +519;Part 519;;1;519;R519 +520;Part 520;;1;520;R520 +521;Part 521;;1;521;R521 +522;Part 522;;1;522;R522 +523;Part 523;;1;523;R523 +524;Part 524;;1;524;R524 +525;Part 525;;1;525;R525 +526;Part 526;;1;526;R526 +527;Part 527;;1;527;R527 +528;Part 528;;1;528;R528 +529;Part 529;;1;529;R529 +530;Part 530;;1;530;R530 +531;Part 531;;1;531;R531 +532;Part 532;;1;532;R532 +533;Part 533;;1;533;R533 +534;Part 534;;1;534;R534 +535;Part 535;;1;535;R535 +536;Part 536;;1;536;R536 +537;Part 537;;1;537;R537 +538;Part 538;;1;538;R538 +539;Part 539;;1;539;R539 +540;Part 540;;1;540;R540 +541;Part 541;;1;541;R541 +542;Part 542;;1;542;R542 +543;Part 543;;1;543;R543 +544;Part 544;;1;544;R544 +545;Part 545;;1;545;R545 +546;Part 546;;1;546;R546 +547;Part 547;;1;547;R547 +548;Part 548;;1;548;R548 +549;Part 549;;1;549;R549 +550;Part 550;;1;550;R550 +551;Part 551;;1;551;R551 +552;Part 552;;1;552;R552 +553;Part 553;;1;553;R553 +554;Part 554;;1;554;R554 +555;Part 555;;1;555;R555 +556;Part 556;;1;556;R556 +557;Part 557;;1;557;R557 +558;Part 558;;1;558;R558 +559;Part 559;;1;559;R559 +560;Part 560;;1;560;R560 +561;Part 561;;1;561;R561 +562;Part 562;;1;562;R562 +563;Part 563;;1;563;R563 +564;Part 564;;1;564;R564 +565;Part 565;;1;565;R565 +566;Part 566;;1;566;R566 +567;Part 567;;1;567;R567 +568;Part 568;;1;568;R568 +569;Part 569;;1;569;R569 +570;Part 570;;1;570;R570 +571;Part 571;;1;571;R571 +572;Part 572;;1;572;R572 +573;Part 573;;1;573;R573 +574;Part 574;;1;574;R574 +575;Part 575;;1;575;R575 +576;Part 576;;1;576;R576 +577;Part 577;;1;577;R577 +578;Part 578;;1;578;R578 +579;Part 579;;1;579;R579 +580;Part 580;;1;580;R580 +581;Part 581;;1;581;R581 +582;Part 582;;1;582;R582 +583;Part 583;;1;583;R583 +584;Part 584;;1;584;R584 +585;Part 585;;1;585;R585 +586;Part 586;;1;586;R586 +587;Part 587;;1;587;R587 +588;Part 588;;1;588;R588 +589;Part 589;;1;589;R589 +590;Part 590;;1;590;R590 +591;Part 591;;1;591;R591 +592;Part 592;;1;592;R592 +593;Part 593;;1;593;R593 +594;Part 594;;1;594;R594 +595;Part 595;;1;595;R595 +596;Part 596;;1;596;R596 +597;Part 597;;1;597;R597 +598;Part 598;;1;598;R598 +599;Part 599;;1;599;R599 +600;Part 600;;1;600;R600 +601;Part 601;;1;601;R601 +602;Part 602;;1;602;R602 +603;Part 603;;1;603;R603 +604;Part 604;;1;604;R604 +605;Part 605;;1;605;R605 +606;Part 606;;1;606;R606 +607;Part 607;;1;607;R607 +608;Part 608;;1;608;R608 +609;Part 609;;1;609;R609 +610;Part 610;;1;610;R610 +611;Part 611;;1;611;R611 +612;Part 612;;1;612;R612 +613;Part 613;;1;613;R613 +614;Part 614;;1;614;R614 +615;Part 615;;1;615;R615 +616;Part 616;;1;616;R616 +617;Part 617;;1;617;R617 +618;Part 618;;1;618;R618 +619;Part 619;;1;619;R619 +620;Part 620;;1;620;R620 +621;Part 621;;1;621;R621 +622;Part 622;;1;622;R622 +623;Part 623;;1;623;R623 +624;Part 624;;1;624;R624 +625;Part 625;;1;625;R625 +626;Part 626;;1;626;R626 +627;Part 627;;1;627;R627 +628;Part 628;;1;628;R628 +629;Part 629;;1;629;R629 +630;Part 630;;1;630;R630 +631;Part 631;;1;631;R631 +632;Part 632;;1;632;R632 +633;Part 633;;1;633;R633 +634;Part 634;;1;634;R634 +635;Part 635;;1;635;R635 +636;Part 636;;1;636;R636 +637;Part 637;;1;637;R637 +638;Part 638;;1;638;R638 +639;Part 639;;1;639;R639 +640;Part 640;;1;640;R640 +641;Part 641;;1;641;R641 +642;Part 642;;1;642;R642 +643;Part 643;;1;643;R643 +644;Part 644;;1;644;R644 +645;Part 645;;1;645;R645 +646;Part 646;;1;646;R646 +647;Part 647;;1;647;R647 +648;Part 648;;1;648;R648 +649;Part 649;;1;649;R649 +650;Part 650;;1;650;R650 +651;Part 651;;1;651;R651 +652;Part 652;;1;652;R652 +653;Part 653;;1;653;R653 +654;Part 654;;1;654;R654 +655;Part 655;;1;655;R655 +656;Part 656;;1;656;R656 +657;Part 657;;1;657;R657 +658;Part 658;;1;658;R658 +659;Part 659;;1;659;R659 +660;Part 660;;1;660;R660 +661;Part 661;;1;661;R661 +662;Part 662;;1;662;R662 +663;Part 663;;1;663;R663 +664;Part 664;;1;664;R664 +665;Part 665;;1;665;R665 +666;Part 666;;1;666;R666 +667;Part 667;;1;667;R667 +668;Part 668;;1;668;R668 +669;Part 669;;1;669;R669 +670;Part 670;;1;670;R670 +671;Part 671;;1;671;R671 +672;Part 672;;1;672;R672 +673;Part 673;;1;673;R673 +674;Part 674;;1;674;R674 +675;Part 675;;1;675;R675 +676;Part 676;;1;676;R676 +677;Part 677;;1;677;R677 +678;Part 678;;1;678;R678 +679;Part 679;;1;679;R679 +680;Part 680;;1;680;R680 +681;Part 681;;1;681;R681 +682;Part 682;;1;682;R682 +683;Part 683;;1;683;R683 +684;Part 684;;1;684;R684 +685;Part 685;;1;685;R685 +686;Part 686;;1;686;R686 +687;Part 687;;1;687;R687 +688;Part 688;;1;688;R688 +689;Part 689;;1;689;R689 +690;Part 690;;1;690;R690 +691;Part 691;;1;691;R691 +692;Part 692;;1;692;R692 +693;Part 693;;1;693;R693 +694;Part 694;;1;694;R694 +695;Part 695;;1;695;R695 +696;Part 696;;1;696;R696 +697;Part 697;;1;697;R697 +698;Part 698;;1;698;R698 +699;Part 699;;1;699;R699 +700;Part 700;;1;700;R700 +701;Part 701;;1;701;R701 +702;Part 702;;1;702;R702 +703;Part 703;;1;703;R703 +704;Part 704;;1;704;R704 +705;Part 705;;1;705;R705 +706;Part 706;;1;706;R706 +707;Part 707;;1;707;R707 +708;Part 708;;1;708;R708 +709;Part 709;;1;709;R709 +710;Part 710;;1;710;R710 +711;Part 711;;1;711;R711 +712;Part 712;;1;712;R712 +713;Part 713;;1;713;R713 +714;Part 714;;1;714;R714 +715;Part 715;;1;715;R715 +716;Part 716;;1;716;R716 +717;Part 717;;1;717;R717 +718;Part 718;;1;718;R718 +719;Part 719;;1;719;R719 +720;Part 720;;1;720;R720 +721;Part 721;;1;721;R721 +722;Part 722;;1;722;R722 +723;Part 723;;1;723;R723 +724;Part 724;;1;724;R724 +725;Part 725;;1;725;R725 +726;Part 726;;1;726;R726 +727;Part 727;;1;727;R727 +728;Part 728;;1;728;R728 +729;Part 729;;1;729;R729 +730;Part 730;;1;730;R730 +731;Part 731;;1;731;R731 +732;Part 732;;1;732;R732 +733;Part 733;;1;733;R733 +734;Part 734;;1;734;R734 +735;Part 735;;1;735;R735 +736;Part 736;;1;736;R736 +737;Part 737;;1;737;R737 +738;Part 738;;1;738;R738 +739;Part 739;;1;739;R739 +740;Part 740;;1;740;R740 +741;Part 741;;1;741;R741 +742;Part 742;;1;742;R742 +743;Part 743;;1;743;R743 +744;Part 744;;1;744;R744 +745;Part 745;;1;745;R745 +746;Part 746;;1;746;R746 +747;Part 747;;1;747;R747 +748;Part 748;;1;748;R748 +749;Part 749;;1;749;R749 +750;Part 750;;1;750;R750 +751;Part 751;;1;751;R751 +752;Part 752;;1;752;R752 +753;Part 753;;1;753;R753 +754;Part 754;;1;754;R754 +755;Part 755;;1;755;R755 +756;Part 756;;1;756;R756 +757;Part 757;;1;757;R757 +758;Part 758;;1;758;R758 +759;Part 759;;1;759;R759 +760;Part 760;;1;760;R760 +761;Part 761;;1;761;R761 +762;Part 762;;1;762;R762 +763;Part 763;;1;763;R763 +764;Part 764;;1;764;R764 +765;Part 765;;1;765;R765 +766;Part 766;;1;766;R766 +767;Part 767;;1;767;R767 +768;Part 768;;1;768;R768 +769;Part 769;;1;769;R769 +770;Part 770;;1;770;R770 +771;Part 771;;1;771;R771 +772;Part 772;;1;772;R772 +773;Part 773;;1;773;R773 +774;Part 774;;1;774;R774 +775;Part 775;;1;775;R775 +776;Part 776;;1;776;R776 +777;Part 777;;1;777;R777 +778;Part 778;;1;778;R778 +779;Part 779;;1;779;R779 +780;Part 780;;1;780;R780 +781;Part 781;;1;781;R781 +782;Part 782;;1;782;R782 +783;Part 783;;1;783;R783 +784;Part 784;;1;784;R784 +785;Part 785;;1;785;R785 +786;Part 786;;1;786;R786 +787;Part 787;;1;787;R787 +788;Part 788;;1;788;R788 +789;Part 789;;1;789;R789 +790;Part 790;;1;790;R790 +791;Part 791;;1;791;R791 +792;Part 792;;1;792;R792 +793;Part 793;;1;793;R793 +794;Part 794;;1;794;R794 +795;Part 795;;1;795;R795 +796;Part 796;;1;796;R796 +797;Part 797;;1;797;R797 +798;Part 798;;1;798;R798 +799;Part 799;;1;799;R799 +800;Part 800;;1;800;R800 +801;Part 801;;1;801;R801 +802;Part 802;;1;802;R802 +803;Part 803;;1;803;R803 +804;Part 804;;1;804;R804 +805;Part 805;;1;805;R805 +806;Part 806;;1;806;R806 +807;Part 807;;1;807;R807 +808;Part 808;;1;808;R808 +809;Part 809;;1;809;R809 +810;Part 810;;1;810;R810 +811;Part 811;;1;811;R811 +812;Part 812;;1;812;R812 +813;Part 813;;1;813;R813 +814;Part 814;;1;814;R814 +815;Part 815;;1;815;R815 +816;Part 816;;1;816;R816 +817;Part 817;;1;817;R817 +818;Part 818;;1;818;R818 +819;Part 819;;1;819;R819 +820;Part 820;;1;820;R820 +821;Part 821;;1;821;R821 +822;Part 822;;1;822;R822 +823;Part 823;;1;823;R823 +824;Part 824;;1;824;R824 +825;Part 825;;1;825;R825 +826;Part 826;;1;826;R826 +827;Part 827;;1;827;R827 +828;Part 828;;1;828;R828 +829;Part 829;;1;829;R829 +830;Part 830;;1;830;R830 +831;Part 831;;1;831;R831 +832;Part 832;;1;832;R832 +833;Part 833;;1;833;R833 +834;Part 834;;1;834;R834 +835;Part 835;;1;835;R835 +836;Part 836;;1;836;R836 +837;Part 837;;1;837;R837 +838;Part 838;;1;838;R838 +839;Part 839;;1;839;R839 +840;Part 840;;1;840;R840 +841;Part 841;;1;841;R841 +842;Part 842;;1;842;R842 +843;Part 843;;1;843;R843 +844;Part 844;;1;844;R844 +845;Part 845;;1;845;R845 +846;Part 846;;1;846;R846 +847;Part 847;;1;847;R847 +848;Part 848;;1;848;R848 +849;Part 849;;1;849;R849 +850;Part 850;;1;850;R850 +851;Part 851;;1;851;R851 +852;Part 852;;1;852;R852 +853;Part 853;;1;853;R853 +854;Part 854;;1;854;R854 +855;Part 855;;1;855;R855 +856;Part 856;;1;856;R856 +857;Part 857;;1;857;R857 +858;Part 858;;1;858;R858 +859;Part 859;;1;859;R859 +860;Part 860;;1;860;R860 +861;Part 861;;1;861;R861 +862;Part 862;;1;862;R862 +863;Part 863;;1;863;R863 +864;Part 864;;1;864;R864 +865;Part 865;;1;865;R865 +866;Part 866;;1;866;R866 +867;Part 867;;1;867;R867 +868;Part 868;;1;868;R868 +869;Part 869;;1;869;R869 +870;Part 870;;1;870;R870 +871;Part 871;;1;871;R871 +872;Part 872;;1;872;R872 +873;Part 873;;1;873;R873 +874;Part 874;;1;874;R874 +875;Part 875;;1;875;R875 +876;Part 876;;1;876;R876 +877;Part 877;;1;877;R877 +878;Part 878;;1;878;R878 +879;Part 879;;1;879;R879 +880;Part 880;;1;880;R880 +881;Part 881;;1;881;R881 +882;Part 882;;1;882;R882 +883;Part 883;;1;883;R883 +884;Part 884;;1;884;R884 +885;Part 885;;1;885;R885 +886;Part 886;;1;886;R886 +887;Part 887;;1;887;R887 +888;Part 888;;1;888;R888 +889;Part 889;;1;889;R889 +890;Part 890;;1;890;R890 +891;Part 891;;1;891;R891 +892;Part 892;;1;892;R892 +893;Part 893;;1;893;R893 +894;Part 894;;1;894;R894 +895;Part 895;;1;895;R895 +896;Part 896;;1;896;R896 +897;Part 897;;1;897;R897 +898;Part 898;;1;898;R898 +899;Part 899;;1;899;R899 +900;Part 900;;1;900;R900 +901;Part 901;;1;901;R901 +902;Part 902;;1;902;R902 +903;Part 903;;1;903;R903 +904;Part 904;;1;904;R904 +905;Part 905;;1;905;R905 +906;Part 906;;1;906;R906 +907;Part 907;;1;907;R907 +908;Part 908;;1;908;R908 +909;Part 909;;1;909;R909 +910;Part 910;;1;910;R910 +911;Part 911;;1;911;R911 +912;Part 912;;1;912;R912 +913;Part 913;;1;913;R913 +914;Part 914;;1;914;R914 +915;Part 915;;1;915;R915 +916;Part 916;;1;916;R916 +917;Part 917;;1;917;R917 +918;Part 918;;1;918;R918 +919;Part 919;;1;919;R919 +920;Part 920;;1;920;R920 +921;Part 921;;1;921;R921 +922;Part 922;;1;922;R922 +923;Part 923;;1;923;R923 +924;Part 924;;1;924;R924 +925;Part 925;;1;925;R925 +926;Part 926;;1;926;R926 +927;Part 927;;1;927;R927 +928;Part 928;;1;928;R928 +929;Part 929;;1;929;R929 +930;Part 930;;1;930;R930 +931;Part 931;;1;931;R931 +932;Part 932;;1;932;R932 +933;Part 933;;1;933;R933 +934;Part 934;;1;934;R934 +935;Part 935;;1;935;R935 +936;Part 936;;1;936;R936 +937;Part 937;;1;937;R937 +938;Part 938;;1;938;R938 +939;Part 939;;1;939;R939 +940;Part 940;;1;940;R940 +941;Part 941;;1;941;R941 +942;Part 942;;1;942;R942 +943;Part 943;;1;943;R943 +944;Part 944;;1;944;R944 +945;Part 945;;1;945;R945 +946;Part 946;;1;946;R946 +947;Part 947;;1;947;R947 +948;Part 948;;1;948;R948 +949;Part 949;;1;949;R949 +950;Part 950;;1;950;R950 +951;Part 951;;1;951;R951 +952;Part 952;;1;952;R952 +953;Part 953;;1;953;R953 +954;Part 954;;1;954;R954 +955;Part 955;;1;955;R955 +956;Part 956;;1;956;R956 +957;Part 957;;1;957;R957 +958;Part 958;;1;958;R958 +959;Part 959;;1;959;R959 +960;Part 960;;1;960;R960 +961;Part 961;;1;961;R961 +962;Part 962;;1;962;R962 +963;Part 963;;1;963;R963 +964;Part 964;;1;964;R964 +965;Part 965;;1;965;R965 +966;Part 966;;1;966;R966 +967;Part 967;;1;967;R967 +968;Part 968;;1;968;R968 +969;Part 969;;1;969;R969 +970;Part 970;;1;970;R970 +971;Part 971;;1;971;R971 +972;Part 972;;1;972;R972 +973;Part 973;;1;973;R973 +974;Part 974;;1;974;R974 +975;Part 975;;1;975;R975 +976;Part 976;;1;976;R976 +977;Part 977;;1;977;R977 +978;Part 978;;1;978;R978 +979;Part 979;;1;979;R979 +980;Part 980;;1;980;R980 +981;Part 981;;1;981;R981 +982;Part 982;;1;982;R982 +983;Part 983;;1;983;R983 +984;Part 984;;1;984;R984 +985;Part 985;;1;985;R985 +986;Part 986;;1;986;R986 +987;Part 987;;1;987;R987 +988;Part 988;;1;988;R988 +989;Part 989;;1;989;R989 +990;Part 990;;1;990;R990 +991;Part 991;;1;991;R991 +992;Part 992;;1;992;R992 +993;Part 993;;1;993;R993 +994;Part 994;;1;994;R994 +995;Part 995;;1;995;R995 +996;Part 996;;1;996;R996 +997;Part 997;;1;997;R997 +998;Part 998;;1;998;R998 +999;Part 999;;1;999;R999 +1000;Part 1000;;1;1000;R1000 +1001;Part 1001;;1;1001;R1001 +1002;Part 1002;;1;1002;R1002 +1003;Part 1003;;1;1003;R1003 +1004;Part 1004;;1;1004;R1004 +1005;Part 1005;;1;1005;R1005 +1006;Part 1006;;1;1006;R1006 +1007;Part 1007;;1;1007;R1007 +1008;Part 1008;;1;1008;R1008 +1009;Part 1009;;1;1009;R1009 +1010;Part 1010;;1;1010;R1010 +1011;Part 1011;;1;1011;R1011 +1012;Part 1012;;1;1012;R1012 +1013;Part 1013;;1;1013;R1013 +1014;Part 1014;;1;1014;R1014 +1015;Part 1015;;1;1015;R1015 +1016;Part 1016;;1;1016;R1016 +1017;Part 1017;;1;1017;R1017 +1018;Part 1018;;1;1018;R1018 +1019;Part 1019;;1;1019;R1019 +1020;Part 1020;;1;1020;R1020 +1021;Part 1021;;1;1021;R1021 +1022;Part 1022;;1;1022;R1022 +1023;Part 1023;;1;1023;R1023 +1024;Part 1024;;1;1024;R1024 +1025;Part 1025;;1;1025;R1025 +1026;Part 1026;;1;1026;R1026 +1027;Part 1027;;1;1027;R1027 +1028;Part 1028;;1;1028;R1028 +1029;Part 1029;;1;1029;R1029 +1030;Part 1030;;1;1030;R1030 +1031;Part 1031;;1;1031;R1031 +1032;Part 1032;;1;1032;R1032 +1033;Part 1033;;1;1033;R1033 +1034;Part 1034;;1;1034;R1034 +1035;Part 1035;;1;1035;R1035 +1036;Part 1036;;1;1036;R1036 +1037;Part 1037;;1;1037;R1037 +1038;Part 1038;;1;1038;R1038 +1039;Part 1039;;1;1039;R1039 +1040;Part 1040;;1;1040;R1040 +1041;Part 1041;;1;1041;R1041 +1042;Part 1042;;1;1042;R1042 +1043;Part 1043;;1;1043;R1043 +1044;Part 1044;;1;1044;R1044 +1045;Part 1045;;1;1045;R1045 +1046;Part 1046;;1;1046;R1046 +1047;Part 1047;;1;1047;R1047 +1048;Part 1048;;1;1048;R1048 +1049;Part 1049;;1;1049;R1049 +1050;Part 1050;;1;1050;R1050 +1051;Part 1051;;1;1051;R1051 +1052;Part 1052;;1;1052;R1052 +1053;Part 1053;;1;1053;R1053 +1054;Part 1054;;1;1054;R1054 +1055;Part 1055;;1;1055;R1055 +1056;Part 1056;;1;1056;R1056 +1057;Part 1057;;1;1057;R1057 +1058;Part 1058;;1;1058;R1058 +1059;Part 1059;;1;1059;R1059 +1060;Part 1060;;1;1060;R1060 +1061;Part 1061;;1;1061;R1061 +1062;Part 1062;;1;1062;R1062 +1063;Part 1063;;1;1063;R1063 +1064;Part 1064;;1;1064;R1064 +1065;Part 1065;;1;1065;R1065 +1066;Part 1066;;1;1066;R1066 +1067;Part 1067;;1;1067;R1067 +1068;Part 1068;;1;1068;R1068 +1069;Part 1069;;1;1069;R1069 +1070;Part 1070;;1;1070;R1070 +1071;Part 1071;;1;1071;R1071 +1072;Part 1072;;1;1072;R1072 +1073;Part 1073;;1;1073;R1073 +1074;Part 1074;;1;1074;R1074 +1075;Part 1075;;1;1075;R1075 +1076;Part 1076;;1;1076;R1076 +1077;Part 1077;;1;1077;R1077 +1078;Part 1078;;1;1078;R1078 +1079;Part 1079;;1;1079;R1079 +1080;Part 1080;;1;1080;R1080 +1081;Part 1081;;1;1081;R1081 +1082;Part 1082;;1;1082;R1082 +1083;Part 1083;;1;1083;R1083 +1084;Part 1084;;1;1084;R1084 +1085;Part 1085;;1;1085;R1085 +1086;Part 1086;;1;1086;R1086 +1087;Part 1087;;1;1087;R1087 +1088;Part 1088;;1;1088;R1088 +1089;Part 1089;;1;1089;R1089 +1090;Part 1090;;1;1090;R1090 +1091;Part 1091;;1;1091;R1091 +1092;Part 1092;;1;1092;R1092 +1093;Part 1093;;1;1093;R1093 +1094;Part 1094;;1;1094;R1094 +1095;Part 1095;;1;1095;R1095 +1096;Part 1096;;1;1096;R1096 +1097;Part 1097;;1;1097;R1097 +1098;Part 1098;;1;1098;R1098 +1099;Part 1099;;1;1099;R1099 +1100;Part 1100;;1;1100;R1100 +1101;Part 1101;;1;1101;R1101 +1102;Part 1102;;1;1102;R1102 +1103;Part 1103;;1;1103;R1103 +1104;Part 1104;;1;1104;R1104 +1105;Part 1105;;1;1105;R1105 +1106;Part 1106;;1;1106;R1106 +1107;Part 1107;;1;1107;R1107 +1108;Part 1108;;1;1108;R1108 +1109;Part 1109;;1;1109;R1109 +1110;Part 1110;;1;1110;R1110 +1111;Part 1111;;1;1111;R1111 +1112;Part 1112;;1;1112;R1112 +1113;Part 1113;;1;1113;R1113 +1114;Part 1114;;1;1114;R1114 +1115;Part 1115;;1;1115;R1115 +1116;Part 1116;;1;1116;R1116 +1117;Part 1117;;1;1117;R1117 +1118;Part 1118;;1;1118;R1118 +1119;Part 1119;;1;1119;R1119 +1120;Part 1120;;1;1120;R1120 +1121;Part 1121;;1;1121;R1121 +1122;Part 1122;;1;1122;R1122 +1123;Part 1123;;1;1123;R1123 +1124;Part 1124;;1;1124;R1124 +1125;Part 1125;;1;1125;R1125 +1126;Part 1126;;1;1126;R1126 +1127;Part 1127;;1;1127;R1127 +1128;Part 1128;;1;1128;R1128 +1129;Part 1129;;1;1129;R1129 +1130;Part 1130;;1;1130;R1130 +1131;Part 1131;;1;1131;R1131 +1132;Part 1132;;1;1132;R1132 +1133;Part 1133;;1;1133;R1133 +1134;Part 1134;;1;1134;R1134 +1135;Part 1135;;1;1135;R1135 +1136;Part 1136;;1;1136;R1136 +1137;Part 1137;;1;1137;R1137 +1138;Part 1138;;1;1138;R1138 +1139;Part 1139;;1;1139;R1139 +1140;Part 1140;;1;1140;R1140 +1141;Part 1141;;1;1141;R1141 +1142;Part 1142;;1;1142;R1142 +1143;Part 1143;;1;1143;R1143 +1144;Part 1144;;1;1144;R1144 +1145;Part 1145;;1;1145;R1145 +1146;Part 1146;;1;1146;R1146 +1147;Part 1147;;1;1147;R1147 +1148;Part 1148;;1;1148;R1148 +1149;Part 1149;;1;1149;R1149 +1150;Part 1150;;1;1150;R1150 +1151;Part 1151;;1;1151;R1151 +1152;Part 1152;;1;1152;R1152 +1153;Part 1153;;1;1153;R1153 +1154;Part 1154;;1;1154;R1154 +1155;Part 1155;;1;1155;R1155 +1156;Part 1156;;1;1156;R1156 +1157;Part 1157;;1;1157;R1157 +1158;Part 1158;;1;1158;R1158 +1159;Part 1159;;1;1159;R1159 +1160;Part 1160;;1;1160;R1160 +1161;Part 1161;;1;1161;R1161 +1162;Part 1162;;1;1162;R1162 +1163;Part 1163;;1;1163;R1163 +1164;Part 1164;;1;1164;R1164 +1165;Part 1165;;1;1165;R1165 +1166;Part 1166;;1;1166;R1166 +1167;Part 1167;;1;1167;R1167 +1168;Part 1168;;1;1168;R1168 +1169;Part 1169;;1;1169;R1169 +1170;Part 1170;;1;1170;R1170 +1171;Part 1171;;1;1171;R1171 +1172;Part 1172;;1;1172;R1172 +1173;Part 1173;;1;1173;R1173 +1174;Part 1174;;1;1174;R1174 +1175;Part 1175;;1;1175;R1175 +1176;Part 1176;;1;1176;R1176 +1177;Part 1177;;1;1177;R1177 +1178;Part 1178;;1;1178;R1178 +1179;Part 1179;;1;1179;R1179 +1180;Part 1180;;1;1180;R1180 +1181;Part 1181;;1;1181;R1181 +1182;Part 1182;;1;1182;R1182 +1183;Part 1183;;1;1183;R1183 +1184;Part 1184;;1;1184;R1184 +1185;Part 1185;;1;1185;R1185 +1186;Part 1186;;1;1186;R1186 +1187;Part 1187;;1;1187;R1187 +1188;Part 1188;;1;1188;R1188 +1189;Part 1189;;1;1189;R1189 +1190;Part 1190;;1;1190;R1190 +1191;Part 1191;;1;1191;R1191 +1192;Part 1192;;1;1192;R1192 +1193;Part 1193;;1;1193;R1193 +1194;Part 1194;;1;1194;R1194 +1195;Part 1195;;1;1195;R1195 +1196;Part 1196;;1;1196;R1196 +1197;Part 1197;;1;1197;R1197 +1198;Part 1198;;1;1198;R1198 +1199;Part 1199;;1;1199;R1199 +1200;Part 1200;;1;1200;R1200 +1201;Part 1201;;1;1201;R1201 +1202;Part 1202;;1;1202;R1202 +1203;Part 1203;;1;1203;R1203 +1204;Part 1204;;1;1204;R1204 +1205;Part 1205;;1;1205;R1205 +1206;Part 1206;;1;1206;R1206 +1207;Part 1207;;1;1207;R1207 +1208;Part 1208;;1;1208;R1208 +1209;Part 1209;;1;1209;R1209 +1210;Part 1210;;1;1210;R1210 +1211;Part 1211;;1;1211;R1211 +1212;Part 1212;;1;1212;R1212 +1213;Part 1213;;1;1213;R1213 +1214;Part 1214;;1;1214;R1214 +1215;Part 1215;;1;1215;R1215 +1216;Part 1216;;1;1216;R1216 +1217;Part 1217;;1;1217;R1217 +1218;Part 1218;;1;1218;R1218 +1219;Part 1219;;1;1219;R1219 +1220;Part 1220;;1;1220;R1220 +1221;Part 1221;;1;1221;R1221 +1222;Part 1222;;1;1222;R1222 +1223;Part 1223;;1;1223;R1223 +1224;Part 1224;;1;1224;R1224 +1225;Part 1225;;1;1225;R1225 +1226;Part 1226;;1;1226;R1226 +1227;Part 1227;;1;1227;R1227 +1228;Part 1228;;1;1228;R1228 +1229;Part 1229;;1;1229;R1229 +1230;Part 1230;;1;1230;R1230 +1231;Part 1231;;1;1231;R1231 +1232;Part 1232;;1;1232;R1232 +1233;Part 1233;;1;1233;R1233 +1234;Part 1234;;1;1234;R1234 +1235;Part 1235;;1;1235;R1235 +1236;Part 1236;;1;1236;R1236 +1237;Part 1237;;1;1237;R1237 +1238;Part 1238;;1;1238;R1238 +1239;Part 1239;;1;1239;R1239 +1240;Part 1240;;1;1240;R1240 +1241;Part 1241;;1;1241;R1241 +1242;Part 1242;;1;1242;R1242 +1243;Part 1243;;1;1243;R1243 +1244;Part 1244;;1;1244;R1244 +1245;Part 1245;;1;1245;R1245 +1246;Part 1246;;1;1246;R1246 +1247;Part 1247;;1;1247;R1247 +1248;Part 1248;;1;1248;R1248 +1249;Part 1249;;1;1249;R1249 +1250;Part 1250;;1;1250;R1250 +1251;Part 1251;;1;1251;R1251 +1252;Part 1252;;1;1252;R1252 +1253;Part 1253;;1;1253;R1253 +1254;Part 1254;;1;1254;R1254 +1255;Part 1255;;1;1255;R1255 +1256;Part 1256;;1;1256;R1256 +1257;Part 1257;;1;1257;R1257 +1258;Part 1258;;1;1258;R1258 +1259;Part 1259;;1;1259;R1259 +1260;Part 1260;;1;1260;R1260 +1261;Part 1261;;1;1261;R1261 +1262;Part 1262;;1;1262;R1262 +1263;Part 1263;;1;1263;R1263 +1264;Part 1264;;1;1264;R1264 +1265;Part 1265;;1;1265;R1265 +1266;Part 1266;;1;1266;R1266 +1267;Part 1267;;1;1267;R1267 +1268;Part 1268;;1;1268;R1268 +1269;Part 1269;;1;1269;R1269 +1270;Part 1270;;1;1270;R1270 +1271;Part 1271;;1;1271;R1271 +1272;Part 1272;;1;1272;R1272 +1273;Part 1273;;1;1273;R1273 +1274;Part 1274;;1;1274;R1274 +1275;Part 1275;;1;1275;R1275 +1276;Part 1276;;1;1276;R1276 +1277;Part 1277;;1;1277;R1277 +1278;Part 1278;;1;1278;R1278 +1279;Part 1279;;1;1279;R1279 +1280;Part 1280;;1;1280;R1280 +1281;Part 1281;;1;1281;R1281 +1282;Part 1282;;1;1282;R1282 +1283;Part 1283;;1;1283;R1283 +1284;Part 1284;;1;1284;R1284 +1285;Part 1285;;1;1285;R1285 +1286;Part 1286;;1;1286;R1286 +1287;Part 1287;;1;1287;R1287 +1288;Part 1288;;1;1288;R1288 +1289;Part 1289;;1;1289;R1289 +1290;Part 1290;;1;1290;R1290 +1291;Part 1291;;1;1291;R1291 +1292;Part 1292;;1;1292;R1292 +1293;Part 1293;;1;1293;R1293 +1294;Part 1294;;1;1294;R1294 +1295;Part 1295;;1;1295;R1295 +1296;Part 1296;;1;1296;R1296 +1297;Part 1297;;1;1297;R1297 +1298;Part 1298;;1;1298;R1298 +1299;Part 1299;;1;1299;R1299 +1300;Part 1300;;1;1300;R1300 +1301;Part 1301;;1;1301;R1301 +1302;Part 1302;;1;1302;R1302 +1303;Part 1303;;1;1303;R1303 +1304;Part 1304;;1;1304;R1304 +1305;Part 1305;;1;1305;R1305 +1306;Part 1306;;1;1306;R1306 +1307;Part 1307;;1;1307;R1307 +1308;Part 1308;;1;1308;R1308 +1309;Part 1309;;1;1309;R1309 +1310;Part 1310;;1;1310;R1310 +1311;Part 1311;;1;1311;R1311 +1312;Part 1312;;1;1312;R1312 +1313;Part 1313;;1;1313;R1313 +1314;Part 1314;;1;1314;R1314 +1315;Part 1315;;1;1315;R1315 +1316;Part 1316;;1;1316;R1316 +1317;Part 1317;;1;1317;R1317 +1318;Part 1318;;1;1318;R1318 +1319;Part 1319;;1;1319;R1319 +1320;Part 1320;;1;1320;R1320 +1321;Part 1321;;1;1321;R1321 +1322;Part 1322;;1;1322;R1322 +1323;Part 1323;;1;1323;R1323 +1324;Part 1324;;1;1324;R1324 +1325;Part 1325;;1;1325;R1325 +1326;Part 1326;;1;1326;R1326 +1327;Part 1327;;1;1327;R1327 +1328;Part 1328;;1;1328;R1328 +1329;Part 1329;;1;1329;R1329 +1330;Part 1330;;1;1330;R1330 +1331;Part 1331;;1;1331;R1331 +1332;Part 1332;;1;1332;R1332 +1333;Part 1333;;1;1333;R1333 +1334;Part 1334;;1;1334;R1334 +1335;Part 1335;;1;1335;R1335 +1336;Part 1336;;1;1336;R1336 +1337;Part 1337;;1;1337;R1337 +1338;Part 1338;;1;1338;R1338 +1339;Part 1339;;1;1339;R1339 +1340;Part 1340;;1;1340;R1340 +1341;Part 1341;;1;1341;R1341 +1342;Part 1342;;1;1342;R1342 +1343;Part 1343;;1;1343;R1343 +1344;Part 1344;;1;1344;R1344 +1345;Part 1345;;1;1345;R1345 +1346;Part 1346;;1;1346;R1346 +1347;Part 1347;;1;1347;R1347 +1348;Part 1348;;1;1348;R1348 +1349;Part 1349;;1;1349;R1349 +1350;Part 1350;;1;1350;R1350 +1351;Part 1351;;1;1351;R1351 +1352;Part 1352;;1;1352;R1352 +1353;Part 1353;;1;1353;R1353 +1354;Part 1354;;1;1354;R1354 +1355;Part 1355;;1;1355;R1355 +1356;Part 1356;;1;1356;R1356 +1357;Part 1357;;1;1357;R1357 +1358;Part 1358;;1;1358;R1358 +1359;Part 1359;;1;1359;R1359 +1360;Part 1360;;1;1360;R1360 +1361;Part 1361;;1;1361;R1361 +1362;Part 1362;;1;1362;R1362 +1363;Part 1363;;1;1363;R1363 +1364;Part 1364;;1;1364;R1364 +1365;Part 1365;;1;1365;R1365 +1366;Part 1366;;1;1366;R1366 +1367;Part 1367;;1;1367;R1367 +1368;Part 1368;;1;1368;R1368 +1369;Part 1369;;1;1369;R1369 +1370;Part 1370;;1;1370;R1370 +1371;Part 1371;;1;1371;R1371 +1372;Part 1372;;1;1372;R1372 +1373;Part 1373;;1;1373;R1373 +1374;Part 1374;;1;1374;R1374 +1375;Part 1375;;1;1375;R1375 +1376;Part 1376;;1;1376;R1376 +1377;Part 1377;;1;1377;R1377 +1378;Part 1378;;1;1378;R1378 +1379;Part 1379;;1;1379;R1379 +1380;Part 1380;;1;1380;R1380 +1381;Part 1381;;1;1381;R1381 +1382;Part 1382;;1;1382;R1382 +1383;Part 1383;;1;1383;R1383 +1384;Part 1384;;1;1384;R1384 +1385;Part 1385;;1;1385;R1385 +1386;Part 1386;;1;1386;R1386 +1387;Part 1387;;1;1387;R1387 +1388;Part 1388;;1;1388;R1388 +1389;Part 1389;;1;1389;R1389 +1390;Part 1390;;1;1390;R1390 +1391;Part 1391;;1;1391;R1391 +1392;Part 1392;;1;1392;R1392 +1393;Part 1393;;1;1393;R1393 +1394;Part 1394;;1;1394;R1394 +1395;Part 1395;;1;1395;R1395 +1396;Part 1396;;1;1396;R1396 +1397;Part 1397;;1;1397;R1397 +1398;Part 1398;;1;1398;R1398 +1399;Part 1399;;1;1399;R1399 +1400;Part 1400;;1;1400;R1400 +1401;Part 1401;;1;1401;R1401 +1402;Part 1402;;1;1402;R1402 +1403;Part 1403;;1;1403;R1403 +1404;Part 1404;;1;1404;R1404 +1405;Part 1405;;1;1405;R1405 +1406;Part 1406;;1;1406;R1406 +1407;Part 1407;;1;1407;R1407 +1408;Part 1408;;1;1408;R1408 +1409;Part 1409;;1;1409;R1409 +1410;Part 1410;;1;1410;R1410 +1411;Part 1411;;1;1411;R1411 +1412;Part 1412;;1;1412;R1412 +1413;Part 1413;;1;1413;R1413 +1414;Part 1414;;1;1414;R1414 +1415;Part 1415;;1;1415;R1415 +1416;Part 1416;;1;1416;R1416 +1417;Part 1417;;1;1417;R1417 +1418;Part 1418;;1;1418;R1418 +1419;Part 1419;;1;1419;R1419 +1420;Part 1420;;1;1420;R1420 +1421;Part 1421;;1;1421;R1421 +1422;Part 1422;;1;1422;R1422 +1423;Part 1423;;1;1423;R1423 +1424;Part 1424;;1;1424;R1424 +1425;Part 1425;;1;1425;R1425 +1426;Part 1426;;1;1426;R1426 +1427;Part 1427;;1;1427;R1427 +1428;Part 1428;;1;1428;R1428 +1429;Part 1429;;1;1429;R1429 +1430;Part 1430;;1;1430;R1430 +1431;Part 1431;;1;1431;R1431 +1432;Part 1432;;1;1432;R1432 +1433;Part 1433;;1;1433;R1433 +1434;Part 1434;;1;1434;R1434 +1435;Part 1435;;1;1435;R1435 +1436;Part 1436;;1;1436;R1436 +1437;Part 1437;;1;1437;R1437 +1438;Part 1438;;1;1438;R1438 +1439;Part 1439;;1;1439;R1439 +1440;Part 1440;;1;1440;R1440 +1441;Part 1441;;1;1441;R1441 +1442;Part 1442;;1;1442;R1442 +1443;Part 1443;;1;1443;R1443 +1444;Part 1444;;1;1444;R1444 +1445;Part 1445;;1;1445;R1445 +1446;Part 1446;;1;1446;R1446 +1447;Part 1447;;1;1447;R1447 +1448;Part 1448;;1;1448;R1448 +1449;Part 1449;;1;1449;R1449 +1450;Part 1450;;1;1450;R1450 +1451;Part 1451;;1;1451;R1451 +1452;Part 1452;;1;1452;R1452 +1453;Part 1453;;1;1453;R1453 +1454;Part 1454;;1;1454;R1454 +1455;Part 1455;;1;1455;R1455 +1456;Part 1456;;1;1456;R1456 +1457;Part 1457;;1;1457;R1457 +1458;Part 1458;;1;1458;R1458 +1459;Part 1459;;1;1459;R1459 +1460;Part 1460;;1;1460;R1460 +1461;Part 1461;;1;1461;R1461 +1462;Part 1462;;1;1462;R1462 +1463;Part 1463;;1;1463;R1463 +1464;Part 1464;;1;1464;R1464 +1465;Part 1465;;1;1465;R1465 +1466;Part 1466;;1;1466;R1466 +1467;Part 1467;;1;1467;R1467 +1468;Part 1468;;1;1468;R1468 +1469;Part 1469;;1;1469;R1469 +1470;Part 1470;;1;1470;R1470 +1471;Part 1471;;1;1471;R1471 +1472;Part 1472;;1;1472;R1472 +1473;Part 1473;;1;1473;R1473 +1474;Part 1474;;1;1474;R1474 +1475;Part 1475;;1;1475;R1475 +1476;Part 1476;;1;1476;R1476 +1477;Part 1477;;1;1477;R1477 +1478;Part 1478;;1;1478;R1478 +1479;Part 1479;;1;1479;R1479 +1480;Part 1480;;1;1480;R1480 +1481;Part 1481;;1;1481;R1481 +1482;Part 1482;;1;1482;R1482 +1483;Part 1483;;1;1483;R1483 +1484;Part 1484;;1;1484;R1484 +1485;Part 1485;;1;1485;R1485 +1486;Part 1486;;1;1486;R1486 +1487;Part 1487;;1;1487;R1487 +1488;Part 1488;;1;1488;R1488 +1489;Part 1489;;1;1489;R1489 +1490;Part 1490;;1;1490;R1490 +1491;Part 1491;;1;1491;R1491 +1492;Part 1492;;1;1492;R1492 +1493;Part 1493;;1;1493;R1493 +1494;Part 1494;;1;1494;R1494 +1495;Part 1495;;1;1495;R1495 +1496;Part 1496;;1;1496;R1496 +1497;Part 1497;;1;1497;R1497 +1498;Part 1498;;1;1498;R1498 +1499;Part 1499;;1;1499;R1499 +1500;Part 1500;;1;1500;R1500