Bugzilla – Attachment 124382 Details for
Bug 11175
Show the parent record's component parts in the detailed views
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11175: Show record component parts in the detail view
Bug-11175-Show-record-component-parts-in-the-detai.patch (text/plain), 19.22 KB, created by
Martin Renvoize (ashimema)
on 2021-09-01 15:17:50 UTC
(
hide
)
Description:
Bug 11175: Show record component parts in the detail view
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2021-09-01 15:17:50 UTC
Size:
19.22 KB
patch
obsolete
>From 75a929cbb13b80cc5ffedbf1e640dd0d99e16471 Mon Sep 17 00:00:00 2001 >From: Pasi Kallinen <pasi.kallinen@joensuu.fi> >Date: Mon, 20 Aug 2018 09:51:55 +0300 >Subject: [PATCH] Bug 11175: Show record component parts in the detail view >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >Shows the component records of a host, on the hosts detail view in >staff client or OPAC, with clickable links to the component records. > >The host does not require linking entries to the components, but >components do require a link to the host record via 773$w. > >Adds a new search index, Control-number-identifier (aka cni), which >indexes the 003 controlfield. > >Adds 'Yet Another System Preference', ShowComponentRecords, which can >be used to turn this feature on or off in staff client and/or OPAC, >and defaults to off. > >When looking up the component part records, the code searches for >records with (773$w=Host001 and 003=Host003) or 773$w='Host003 Host001' >or, if the 003 is not defined in the Host, 773$w=Host001. > >Does not use easyanalytics or useControlNumber. > >Only for MARC21 biblios - UNIMARC has not been updated. > >staff-global.css and opac.css have not been recreated, so you need >to use sass to recreate those from staff-global.scss and opac.scss > >Test plan: > >0) Apply patch >1) perl bulkmarcimport -file /tmp/easypiano.mrc -m MARCXML > (This file is an attachment on the bug) >2) rebuild the zebra biblio index >3) Search for "easy piano" in staff client, and go to > the biblio detail page. You should not see anything different > in the record detail page. >4) Do the same on OPAC. >5) Change the ShowComponentRecords syspref appropriately and check > the record detail page in staff client and OPAC. > You should see a list of component part records. > >Rebased-by: Joonas Kylmälä <joonas.kylmala@helsinki.fi> >Signed-off-by: Nick Clemens <nick@bywatersolutions.com> >Signed-off-by: Pasi Kallinen <pasi.kallinen@koha-suomi.fi> >Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> >--- > C4/XSLT.pm | 23 ++++++- > Koha/Biblio.pm | 45 +++++++++++++ > .../data/mysql/atomicupdate/bug_11175.perl | 6 ++ > installer/data/mysql/mandatory/sysprefs.sql | 1 + > .../prog/css/src/staff-global.scss | 8 +++ > .../admin/preferences/staff_interface.pref | 9 +++ > .../en/xslt/MARC21slim2intranetDetail.xsl | 2 + > .../prog/en/xslt/MARC21slimUtils.xsl | 66 +++++++++++++++++++ > .../opac-tmpl/bootstrap/css/src/opac.scss | 8 +++ > .../en/xslt/MARC21slim2OPACDetail.xsl | 2 + > .../bootstrap/en/xslt/MARC21slimUtils.xsl | 66 +++++++++++++++++++ > 11 files changed, 235 insertions(+), 1 deletion(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_11175.perl > >diff --git a/C4/XSLT.pm b/C4/XSLT.pm >index a96d60b1ec..4deb65ffe6 100644 >--- a/C4/XSLT.pm >+++ b/C4/XSLT.pm >@@ -288,8 +288,29 @@ sub XSLTParse4Display { > } > $varxml .= "</variables>\n"; > >+ my $partsxml = ''; >+ # possibly insert component records into Detail views >+ if ($xslsyspref =~ m/Details/) { >+ my $showcomp = C4::Context->preference('ShowComponentRecords'); >+ if ( $showcomp eq 'both' || >+ ($showcomp eq 'staff' && $xslsyspref !~ m/OPAC/ ) || >+ ($showcomp eq 'opac' && $xslsyspref =~ m/OPAC/ ) ) { >+ my $biblio = Koha::Biblios->find( $biblionumber ); >+ if ( $biblio->components() ) { >+ my @componentPartRecordXML = ('<componentPartRecords>'); >+ for my $cb ( @{ $biblio->components() } ) { >+ # Remove the xml header >+ $cb =~ s/^<\?xml.*?\?>//; >+ push @componentPartRecordXML, decode('utf8', $cb); >+ } >+ push @componentPartRecordXML, '</componentPartRecords>'; >+ $partsxml = join "\n", @componentPartRecordXML; >+ } >+ } >+ } >+ > my $sysxml = get_xslt_sysprefs(); >- $xmlrecord =~ s/\<\/record\>/$itemsxml$sysxml$varxml\<\/record\>/; >+ $xmlrecord =~ s/\<\/record\>/$itemsxml$sysxml$varxml$partsxml\<\/record\>/; > if ($fixamps) { # We need to correct the ampersand entities that Zebra outputs > $xmlrecord =~ s/\&amp;/\&/g; > $xmlrecord =~ s/\&\;lt\;/\<\;/g; >diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm >index 26ee7abd96..8a115175f0 100644 >--- a/Koha/Biblio.pm >+++ b/Koha/Biblio.pm >@@ -41,6 +41,8 @@ use Koha::Items; > use Koha::Libraries; > use Koha::Suggestions; > use Koha::Subscriptions; >+use Koha::SearchEngine; >+use Koha::SearchEngine::Search; > > =head1 NAME > >@@ -495,6 +497,49 @@ sub suggestions { > return Koha::Suggestions->_new_from_dbic( $suggestions_rs ); > } > >+=head3 components >+ >+my $components = $self->components(); >+ >+Returns an array of MARCXML data, which are component parts of >+this object (MARC21 773$w points to this) >+ >+=cut >+ >+sub components { >+ my ($self) = @_; >+ >+ return undef if (C4::Context->preference('marcflavour') ne 'MARC21'); >+ >+ if (!defined($self->{_components})) { >+ my $marc = C4::Biblio::GetMarcBiblio({ biblionumber => $self->id }); >+ my $pf001 = $marc->field('001') || undef; >+ my $searcher = Koha::SearchEngine::Search->new({index => $Koha::SearchEngine::BIBLIOS_INDEX}); >+ >+ if (defined($pf001)) { >+ my $pf003 = $marc->field('003') || undef; >+ my $searchstr; >+ >+ if (!defined($pf003)) { >+ # search for 773$w='Host001' >+ $searchstr = "rcn='".$pf001->data()."'"; >+ } else { >+ # search for (773$w='Host001' and 003='Host003') or 773$w='Host003 Host001') >+ $searchstr = "(rcn='".$pf001->data()."' and cni='".$pf003->data()."')"; >+ $searchstr .= " or rcn='".$pf003->data()." ".$pf001->data()."'"; >+ } >+ >+ my ( $errors, $results, $total_hits ) = $searcher->simple_search_compat( $searchstr, 0, undef ); >+ >+ $self->{_components} = $results if ( defined($results) && scalar(@$results) ); >+ } else { >+ warn "Record $self->id has no 001"; >+ } >+ } >+ >+ return $self->{_components}; >+} >+ > =head3 subscriptions > > my $subscriptions = $self->subscriptions >diff --git a/installer/data/mysql/atomicupdate/bug_11175.perl b/installer/data/mysql/atomicupdate/bug_11175.perl >new file mode 100644 >index 0000000000..889a816331 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_11175.perl >@@ -0,0 +1,6 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if( CheckVersion( $DBversion ) ) { >+ $dbh->do("INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES ('ShowComponentRecords', 'nowhere', 'nowhere|staff|opac|both','In which record detail pages to show list of the component records, as linked via 773','Choice')"); >+ SetVersion( $DBversion ); >+ print "Upgrade to $DBversion done (Bug 11175: Show component records in detail views)\n"; >+} >diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql >index 59db857ca6..63668c49d6 100644 >--- a/installer/data/mysql/mandatory/sysprefs.sql >+++ b/installer/data/mysql/mandatory/sysprefs.sql >@@ -613,6 +613,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('ShelfBrowserUsesHomeBranch','1','1','Use the item home branch when finding items for the shelf browser.','YesNo'), > ('ShelfBrowserUsesLocation','1','1','Use the item location when finding items for the shelf browser.','YesNo'), > ('ShowAllCheckins', '0', '', 'Show all checkins', 'YesNo'), >+('ShowComponentRecords', 'nowhere', 'nowhere|staff|opac|both','In which record detail pages to show list of the component records, as linked via 773','Choice'), > ('showLastPatron','0','','If ON, enables the last patron feature in the intranet','YesNo'), > ('ShowPatronImageInWebBasedSelfCheck','0','','If ON, displays patron image when a patron uses web-based self-checkout','YesNo'), > ('ShowReviewer','full','none|full|first|surname|firstandinitial|username','Choose how a commenter\'s identity is presented alongside comments in the OPAC','Choice'), >diff --git a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss >index 9d8f5e8069..8a050caa16 100644 >--- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss >+++ b/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss >@@ -609,6 +609,14 @@ ol { > padding: 7px 0; > } > >+.componentPartRecordsContainer { >+ float: right; >+ overflow-y: auto; >+ overflow-x: hidden; >+ max-width: 50%; >+ max-height: 25em; >+} >+ > #editions { > table, > td { >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_interface.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_interface.pref >index b568ff421b..aa00b18a17 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_interface.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/staff_interface.pref >@@ -181,6 +181,15 @@ Staff interface: > 1: Show > 0: "Don't show" > - a search field pulldown for 'Search the catalog' boxes. >+ - >+ - Show a list of component records, as linked via field 773, in >+ - pref: ShowComponentRecords >+ choices: >+ nowhere: "no" >+ staff: "staff client" >+ opac: "OPAC" >+ both: "both staff client and OPAC" >+ - record detail pages. > Authentication: > - > - pref: staffShibOnly >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >index 49cbd715f6..0142de249c 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl >@@ -115,6 +115,8 @@ > </h1> > </xsl:if> > >+ <xsl:call-template name="showComponentParts"/> >+ > <!--Bug 13381 --> > <xsl:if test="marc:datafield[@tag=245]"> > <h1 class="title" property="name"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl >index 1916a711dd..7a0d708d91 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl >+++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slimUtils.xsl >@@ -578,6 +578,72 @@ > </xsl:if> > </xsl:template> > >+ <xsl:template name="showComponentParts"> >+ <!-- Component part records: Displaying title and author of component part records --> >+ <xsl:if test="marc:componentPartRecords"> >+ <div class="results_summary componentPartRecordsContainer"> >+ <h5>Component part records</h5> >+ <ol class="componentParts"> >+ <xsl:for-each select="marc:componentPartRecords/marc:record"> >+ <li> >+ <span class="componentPartRecord"> >+ <span class="componentPartRecordTitle"> >+ <a> >+ <xsl:attribute name="href">/cgi-bin/koha/catalogue/detail.pl?biblionumber=<xsl:value-of select="marc:datafield[@tag=999]/marc:subfield[@code='c']" /></xsl:attribute> >+ <xsl:choose> >+ <xsl:when test="marc:datafield[@tag=245]/marc:subfield[@code='a']"> >+ <xsl:value-of select="substring-before( concat(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/'), '/')" /> >+ </xsl:when> >+ <xsl:when test="marc:datafield[@tag=240]/marc:subfield[@code='a']"> >+ <xsl:for-each select="marc:datafield[@tag=240]"> >+ <xsl:call-template name="chopPunctuation"> >+ <xsl:with-param name="chopString"> >+ <xsl:call-template name="subfieldSelect"> >+ <xsl:with-param name="codes">amnp</xsl:with-param> >+ </xsl:call-template> >+ </xsl:with-param> >+ </xsl:call-template> >+ </xsl:for-each> >+ </xsl:when> >+ <xsl:when test="marc:datafield[@tag=130]/marc:subfield[@code='a']"> >+ <xsl:for-each select="marc:datafield[@tag=130]"> >+ <xsl:call-template name="chopPunctuation"> >+ <xsl:with-param name="chopString"> >+ <xsl:call-template name="subfieldSelect"> >+ <xsl:with-param name="codes">amnp</xsl:with-param> >+ </xsl:call-template> >+ </xsl:with-param> >+ </xsl:call-template> >+ </xsl:for-each> >+ </xsl:when> >+ <xsl:otherwise> >+ <xsl:text>[Record with no title statement]</xsl:text> >+ </xsl:otherwise> >+ </xsl:choose> >+ </a> >+ </span> >+ <xsl:choose> >+ <xsl:when test="marc:datafield[@tag=100]/marc:subfield[@code='a']"> >+ - >+ <span class="componentPartRecordAuthor"> >+ <xsl:value-of select="marc:datafield[@tag=100]/marc:subfield[@code='a']" /> >+ </span> >+ </xsl:when> >+ <xsl:when test="marc:datafield[@tag=110]/marc:subfield[@code='a']"> >+ - >+ <span class="componentPartRecordAuthor"> >+ <xsl:value-of select="marc:datafield[@tag=110]/marc:subfield[@code='a']" /> >+ </span> >+ </xsl:when> >+ </xsl:choose> >+ </span> >+ </li> >+ </xsl:for-each> >+ </ol> >+ </div> >+ </xsl:if> >+ </xsl:template> >+ > </xsl:stylesheet> > > <!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp. >diff --git a/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss b/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss >index c665cfea5d..75b88c149a 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss >+++ b/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss >@@ -292,6 +292,14 @@ th { > } > > >+.componentPartRecordsContainer { >+ float: right; >+ overflow-y: auto; >+ overflow-x: hidden; >+ max-width: 50%; >+ max-height: 25em; >+} >+ > #members { > p { > color: #727272; >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >index 1704004ea1..4e42738636 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACDetail.xsl >@@ -127,6 +127,8 @@ > </h2> > </xsl:if> > >+ <xsl:call-template name="showComponentParts"/> >+ > <!--Bug 13381 --> > <xsl:if test="marc:datafield[@tag=245]"> > <h1 class="title" property="name"> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl >index 13e70d0ee8..11b1bbebcf 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slimUtils.xsl >@@ -542,6 +542,72 @@ > </xsl:if> > </xsl:template> > >+ <xsl:template name="showComponentParts"> >+ <!-- Component part records: Displaying title and author of component part records --> >+ <xsl:if test="marc:componentPartRecords"> >+ <div class="results_summary componentPartRecordsContainer"> >+ <h5>Component part records</h5> >+ <ol class="componentParts"> >+ <xsl:for-each select="marc:componentPartRecords/marc:record"> >+ <li> >+ <span class="componentPartRecord"> >+ <span class="componentPartRecordTitle"> >+ <a> >+ <xsl:attribute name="href">/cgi-bin/koha/opac-detail.pl?biblionumber=<xsl:value-of select="marc:datafield[@tag=999]/marc:subfield[@code='c']" /></xsl:attribute> >+ <xsl:choose> >+ <xsl:when test="marc:datafield[@tag=245]/marc:subfield[@code='a']"> >+ <xsl:value-of select="substring-before( concat(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/'), '/')" /> >+ </xsl:when> >+ <xsl:when test="marc:datafield[@tag=240]/marc:subfield[@code='a']"> >+ <xsl:for-each select="marc:datafield[@tag=240]"> >+ <xsl:call-template name="chopPunctuation"> >+ <xsl:with-param name="chopString"> >+ <xsl:call-template name="subfieldSelect"> >+ <xsl:with-param name="codes">amnp</xsl:with-param> >+ </xsl:call-template> >+ </xsl:with-param> >+ </xsl:call-template> >+ </xsl:for-each> >+ </xsl:when> >+ <xsl:when test="marc:datafield[@tag=130]/marc:subfield[@code='a']"> >+ <xsl:for-each select="marc:datafield[@tag=130]"> >+ <xsl:call-template name="chopPunctuation"> >+ <xsl:with-param name="chopString"> >+ <xsl:call-template name="subfieldSelect"> >+ <xsl:with-param name="codes">amnp</xsl:with-param> >+ </xsl:call-template> >+ </xsl:with-param> >+ </xsl:call-template> >+ </xsl:for-each> >+ </xsl:when> >+ <xsl:otherwise> >+ <xsl:text>[Record with no title statement]</xsl:text> >+ </xsl:otherwise> >+ </xsl:choose> >+ </a> >+ </span> >+ <xsl:choose> >+ <xsl:when test="marc:datafield[@tag=100]/marc:subfield[@code='a']"> >+ - >+ <span class="componentPartRecordAuthor"> >+ <xsl:value-of select="marc:datafield[@tag=100]/marc:subfield[@code='a']" /> >+ </span> >+ </xsl:when> >+ <xsl:when test="marc:datafield[@tag=110]/marc:subfield[@code='a']"> >+ - >+ <span class="componentPartRecordAuthor"> >+ <xsl:value-of select="marc:datafield[@tag=110]/marc:subfield[@code='a']" /> >+ </span> >+ </xsl:when> >+ </xsl:choose> >+ </span> >+ </li> >+ </xsl:for-each> >+ </ol> >+ </div> >+ </xsl:if> >+ </xsl:template> >+ > </xsl:stylesheet> > > <!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp. >-- >2.20.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11175
:
22612
|
22649
|
23049
|
24788
|
24789
|
24790
|
24791
|
26402
|
26403
|
26404
|
26405
|
26766
|
26767
|
78022
|
78023
|
78024
|
79687
|
79803
|
79809
|
79810
|
105631
|
105641
|
105703
|
105706
|
105707
|
106692
|
112838
|
112839
|
112840
|
112841
|
112846
|
112847
|
112851
|
112852
|
112853
|
112854
|
112855
|
112856
|
112857
|
113649
|
113650
|
113962
|
113964
|
114326
|
114327
|
114328
|
114329
|
114330
|
114331
|
114332
|
114333
|
114334
|
116819
|
116820
|
116821
|
116822
|
116823
|
116824
|
116825
|
116826
|
116827
|
116828
|
119499
|
119506
|
120206
|
122707
|
122708
|
122709
|
122710
|
122711
|
122712
|
122713
|
122714
|
122715
|
122716
|
122717
|
122718
|
123081
|
123082
|
123083
|
123084
|
123085
|
123086
|
123087
|
123088
|
123089
|
123090
|
123091
|
123092
|
123093
|
123406
|
123410
|
123508
|
123509
|
123510
|
123511
|
123512
|
123513
|
123514
|
123515
|
123516
|
123517
|
123518
|
123519
|
123520
|
123521
|
123522
|
123523
|
123524
|
123541
|
123542
|
123543
|
123544
|
123545
|
123546
|
123547
|
123548
|
123549
|
123550
|
123551
|
123552
|
123553
|
123554
|
123555
|
123556
|
123557
|
123562
|
123564
|
123569
|
123570
|
123571
|
123572
|
123573
|
123574
|
123582
|
123583
|
123608
|
123609
|
123611
|
123612
|
123613
|
123614
|
123617
|
123618
|
123619
|
123620
|
123621
|
123622
|
123623
|
123624
|
123625
|
123626
|
123627
|
123628
|
123629
|
123630
|
123631
|
123632
|
123633
|
123634
|
123635
|
123636
|
123637
|
123638
|
123736
|
123737
|
123738
|
123739
|
123740
|
123741
|
123742
|
123743
|
123744
|
123745
|
123746
|
123747
|
123748
|
123749
|
123750
|
123751
|
123752
|
123753
|
123754
|
123755
|
123756
|
124134
|
124135
|
124136
|
124137
|
124138
|
124139
|
124140
|
124141
|
124142
|
124143
|
124144
|
124145
|
124146
|
124147
|
124148
|
124149
|
124150
|
124151
|
124152
|
124153
|
124154
|
124155
|
124382
|
124383
|
124384
|
124385
|
124386
|
124387
|
124388
|
124389
|
124390
|
124391
|
124392
|
124393
|
124394
|
124395
|
124396
|
124397
|
124398
|
124399
|
124400
|
124401
|
124402
|
124403
|
124404
|
124534
|
124535
|
124536
|
124537
|
124538
|
124539
|
124540
|
124541
|
124542
|
124544
|
124545
|
124546
|
124547
|
124548
|
124549
|
124550
|
124551
|
124552
|
124553
|
124554
|
124555
|
124556
|
124557
|
126057
|
126058
|
126059
|
126060
|
126061
|
126062
|
126063
|
126064
|
126065
|
126066
|
126067
|
126068
|
126069
|
126070
|
126071
|
126072
|
126073
|
126074
|
126075
|
126076
|
126077
|
126078
|
126079
|
126080
|
126081
|
126084
|
126441
|
126442
|
126443
|
126687
|
126688
|
126689
|
126690
|
126692
|
126693
|
126694
|
126695
|
126696
|
126697
|
126698
|
126699
|
126700
|
126701
|
126702
|
126703
|
126704
|
126705
|
126706
|
126707
|
126708
|
126709
|
126710
|
126711
|
126712
|
126713
|
126714
|
126715
|
126716
|
126717
|
126718
|
126719
|
126720
|
126721
|
126722
|
126723
|
126724
|
126725
|
126726
|
126727
|
126728
|
126729
|
126730
|
126731
|
126732
|
126733
|
126734
|
126735
|
126736
|
126737
|
126738
|
126739
|
126740
|
126741
|
126742
|
126743
|
126744
|
126745
|
126816
|
126817
|
126869
|
126870
|
126871
|
126872
|
126873
|
126874
|
126875
|
126876
|
126877
|
126878
|
126879
|
126880
|
126881
|
126882
|
126883
|
126884
|
126885
|
126886
|
126887
|
126888
|
126889
|
126890
|
126891
|
126892
|
126893
|
126894
|
126895
|
126897
|
126898
|
126904
|
126911
|
126912
|
126913