[PATCH] Bugs: 1172 3579 3596 fixes to patron detail in opac

Nicole Engard nengard at gmail.com
Fri Sep 11 01:46:50 CEST 2009


This patch makes it so that the patron can see their
details even if the OPACPatronDetails sys pref is OFF.

It also removed the messaging options from the patron
details and leaves them on the messaging tab.

Finally it adds in address fields that were missing
previously on the update patron form.
---
 koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc  |    2 -
 .../opac-tmpl/prog/en/modules/opac-messaging.tmpl  |    2 +-
 .../opac-tmpl/prog/en/modules/opac-userupdate.tmpl |  143 ++++++++++++--------
 opac/opac-userupdate.pl                            |   19 ++-
 4 files changed, 102 insertions(+), 64 deletions(-)

diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
index a8fc320..d4df7c2 100644
--- a/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
+++ b/koha-tmpl/opac-tmpl/prog/en/includes/usermenu.inc
@@ -5,9 +5,7 @@
   <!-- TMPL_IF NAME="OPACFinesTab" -->
   <!-- TMPL_IF NAME="accountview" --><li class="active"><!--
TMPL_ELSE --><li><!-- /TMPL_IF --><a
href="/cgi-bin/koha/opac-account.pl">my fines</a></li>
   <!-- /TMPL_IF -->
-  <!-- TMPL_IF NAME="OPACPatronDetails" -->
   <!-- TMPL_IF NAME="userupdateview" --><li class="active"><!--
TMPL_ELSE --><li><!-- /TMPL_IF --><a
href="/cgi-bin/koha/opac-userupdate.pl">my personal details</a></li>
-    <!-- /TMPL_IF -->
   <!-- TMPL_IF NAME="TagsEnabled" -->
     <!-- TMPL_IF NAME="tagsview" --><li class="active"><!-- TMPL_ELSE
--><li><!-- /TMPL_IF --><a href="/cgi-bin/koha/opac-tags.pl">my
tags</a></li>
   <!-- /TMPL_IF -->
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-messaging.tmpl
b/koha-tmpl/opac-tmpl/prog/en/modules/opac-messaging.tmpl
index 53df177..f1532e2 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-messaging.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-messaging.tmpl
@@ -100,11 +100,11 @@

 </fieldset>

-
 <fieldset class="action">
   <input type="submit" value="Submit Changes" /> <a class="cancel"
href="/cgi-bin/koha/opac-user.pl">Cancel</a>
 </fieldset>

+
 </form>
 </div>
 </div>
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-userupdate.tmpl
b/koha-tmpl/opac-tmpl/prog/en/modules/opac-userupdate.tmpl
index 4ae620c..62ec6be 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-userupdate.tmpl
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-userupdate.tmpl
@@ -9,24 +9,25 @@
 	<div id="yui-main">
 	<div class="yui-b"><div class="yui-g" id="userupdate">

-<div class="container" style="overflow:auto;">
+<div class="container">
 <!-- TMPL_LOOP name="BORROWER_INFO" -->
 <h3><a href="/cgi-bin/koha/opac-user.pl"><!-- TMPL_VAR
NAME="firstname" --> <!-- TMPL_VAR NAME="surname" -->'s account</a>
<img src="<!-- TMPL_VAR NAME="themelang" -->../../images/caret.gif"
width="16" height="16" alt="&gt;" border="0" /> Your Personal
Details</h3>

+<!-- TMPL_IF NAME="OPACPatronDetails" -->
 <form action="/cgi-bin/koha/opac-userupdate.pl" method="get">
 <div class="yui-u first">
-
 <input type="hidden" name="modify" value="yes" />
 <fieldset class="brief"><legend>Name</legend><ol>
 <li><label for="firstname">First Name:</label> <input id="firstname"
type="text" value="<!-- TMPL_VAR name="firstname" -->"
name="firstname" /></li>
+<li><label for="othernames">Other Name:</label> <input
id="othernames" type="text" value="<!-- TMPL_VAR name="othernames"
-->"  name="othernames" /></li>
 <li><label for="surname">Last Name:</label> <input id="surname"
type="text" value="<!-- TMPL_VAR name="surname" -->"  name="surname"
/></li>
 </ol>
 </fieldset>

 <fieldset class="brief"><legend>Contact Information</legend>
 <ol>
-<li>
-    <label for="address">Address:</label>
+<li><label for="address">Address:</label>
+	<input id="streetnumber" size ="7" type="text" value="<!-- TMPL_VAR
name="streetnumber" -->"  name="streetnumber" />
 	<input type="text" name="address" value="<!-- TMPL_VAR
NAME="address" -->" id="address" />
 	<input type="text" name="address2" value="<!-- TMPL_VAR
NAME="address2" -->" id="address2" /></li>
 <li><label for="city">City, State:</label> <input id="city"
type="text" value="<!-- TMPL_VAR name="city" -->"  name="city" /></li>
@@ -34,71 +35,30 @@
 <li><label for="country">Country: </label><input id="country"
name="country" value="<!-- TMPL_VAR NAME="country" -->" name="country"
/></li>
 <li><label for="phone">Home Phone:</label> <input id="phone"
type="text" value="<!-- TMPL_VAR name="phone" -->"  name="phone"
/></li>
 <li><label for="mobile">Mobile Phone:</label> <input id="mobile"
type="text" value="<!-- TMPL_VAR name="mobile" -->"  name="mobile"
/></li>
-<li><label for="fax">Fax:</label> <input id="fax" type="text"
value="<!-- TMPL_VAR name="fax" -->"  name="fax" /></li>
-
 <li><label for="phonepro">Work phone:</label> <input id="phonepro"
type="text" value="<!-- TMPL_VAR name="phonepro" -->"  name="phonepro"
/></li>
-
+<li><label for="fax">Fax:</label> <input id="fax" type="text"
value="<!-- TMPL_VAR name="fax" -->"  name="fax" /></li>
 <li><label for="emailaddress">Email:</label> <input id="emailaddress"
type="text" value="<!-- TMPL_VAR name="email" -->"
name="emailaddress" /></li>
-</ol>
-</fieldset>
-
-<fieldset class="brief">
-<legend>Items Borrowed Notifications</legend>
-<ol>
-<li>
-  <label for="items_borrowed_email">Email:</label>
-  <!-- TMPL_IF items_borrowed_email -->
-  <input type="checkbox" id="items_borrowed_email"
name="items_borrowed_email" value="1" checked="checked" />
-  <!-- TMPL_ELSE -->
-  <input type="checkbox" id="items_borrowed_email"
name="items_borrowed_email" value="1" />
-  <!-- /TMPL_IF -->
-</li>
-<li>
-  <label for="items_borrowed_sms">Text Message:</label>
-  <!-- TMPL_IF items_borrowed_sms -->
-  <input type="checkbox" id="items_borrowed_sms"
name="items_borrowed_sms" value="1" checked="checked" />
-  <!-- TMPL_ELSE -->
-  <input type="checkbox" id="items_borrowed_sms"
name="items_borrowed_sms" value="1" />
-  <!-- /TMPL_IF -->
-</li>
-</ol>
-</fieldset>
-
-<fieldset class="brief">
-<legend>Items Returned Notifications</legend>
-<ol>
-<li>
-  <label for="items_returned_email">Email:</label>
-  <!-- TMPL_IF items_returned_email -->
-  <input type="checkbox" id="items_returned_email"
name="items_returned_email" value="1" checked="checked" />
-  <!-- TMPL_ELSE -->
-  <input type="checkbox" id="items_returned_email"
name="items_returned_email" value="1" />
-  <!-- /TMPL_IF -->
-</li>
-<li>
-  <label for="items_returned_sms">Text Message:</label>
-  <!-- TMPL_IF items_returned_sms -->
-  <input type="checkbox" id="items_returned_sms"
name="items_returned_sms" value="1" checked="checked" />
-  <!-- TMPL_ELSE -->
-  <input type="checkbox" id="items_returned_sms"
name="items_returned_sms" value="1" />
-  <!-- /TMPL_IF -->
-</li>
+<li><label for="emailpro">Work Email:</label> <input id="emailpro"
type="text" value="<!-- TMPL_VAR name="emailpro" -->"  name="emailpro"
/></li>
 </ol>
 </fieldset>

 </div>
 <div class="yui-u">
 <fieldset class="brief">
-<legend>Permanent Address</legend>
+<legend>Alternate Contact Information</legend>
 <ol>
 <li>
-    <label for="B_streetaddress">Permanent or Alternate Address:</label>
-        <textarea id="B_streetaddress" cols="25" rows="3"
name="B_streetaddress"><!--TMPL_VAR NAME="B_streetnumber"--> <!--
TMPL_VAR name="B_address" --> <!-- TMPL_VAR name="B_address2"
--></textarea>
+    <label for="B_streetaddress">Alternate Address:</label>
+    <input id="B_streetnumber" size ="7" type="text" value="<!--
TMPL_VAR name="B_streetnumber" -->"  name="B_streetnumber" />
+    <input id="B_address" type="text" value="<!-- TMPL_VAR
name="B_address" -->"  name="B_address" />
+    <input id="B_address2" type="text" value="<!-- TMPL_VAR
name="B_address2" -->"  name="B_address2" />
 </li>

 <li><label for="B_city">City, State:</label> <input id="B_city"
type="text" value="<!-- TMPL_VAR name="B_city" -->"  name="B_city"
/></li>
-<li><label for="B_zipcode">Zip Code</label> <input type="text"
id="B_zipcode" name="B_zipcode" value="<!-- TMPL_VAR NAME="B_zipcode"
-->" name="B_zipcode" /></li>
-<li><label for="B_country">Country</label> <input type="text"
id="B_country" name="B_country" value="<!-- TMPL_VAR NAME="B_country"
-->" name="B_country" /></li>
+<li><label for="B_zipcode">Zip Code:</label> <input type="text"
id="B_zipcode" name="B_zipcode" value="<!-- TMPL_VAR NAME="B_zipcode"
-->" name="B_zipcode" /></li>
+<li><label for="B_country">Country:</label> <input type="text"
id="B_country" name="B_country" value="<!-- TMPL_VAR NAME="B_country"
-->" name="B_country" /></li>
+<li><label for="B_phone">Phone:</label> <input type="text"
id="B_phone" name="B_phone" value="<!-- TMPL_VAR NAME="B_phone" -->"
name="B_phone" /></li>
+<li><label for="B_email">Email:</label> <input type="text"
id="B_email" name="B_email" value="<!-- TMPL_VAR NAME="B_email" -->"
name="B_email" /></li>
 </ol>
 </fieldset>
 <fieldset class="brief">
@@ -136,6 +96,77 @@
 </div>

 </form>
+<!-- TMPL_ELSE -->
+<p style="clear:left;padding:1em 0">To make changes to your record
please contact the library.</p>
+<div class="yui-u first">
+<fieldset class="rows">
+<legend>Contact Information</legend>
+<ol>
+<li><span class="label">Name:</span> <!-- TMPL_VAR NAME="firstname"
--> <!-- TMPL_VAR NAME="surname" --></li>
+<li><span class="label">Other Name:</span> <!-- TMPL_VAR
NAME="othernames" --></li>
+<li><span class="label">Address:</span> <!-- TMPL_VAR
NAME="streetnumber" --> <!-- TMPL_VAR NAME="address" --></li>
+<li><span class="label">&nbsp;</span><!-- TMPL_VAR NAME="address2" --></li>
+<li><span class="label">City, State:</span>  <!-- TMPL_VAR name="city" --></li>
+<li><span class="label">Zip Code:</span>  <!-- TMPL_VAR NAME="zipcode" --></li>
+<li><span class="label">Country:</span>  <!-- TMPL_VAR NAME="country" --></li>
+<li><span class="label">Home Phone:</span>  <!-- TMPL_VAR name="phone" --></li>
+<li><span class="label">Mobile Phone:</span>  <!-- TMPL_VAR
name="mobile" --></li>
+<li><span class="label">Work phone:</span>  <!-- TMPL_VAR
name="phonepro" --></li>
+<li><span class="label">Fax:</span>  <!-- TMPL_VAR name="fax" --></li>
+<li><span class="label">Email:</span>  <!-- TMPL_VAR name="email" --></li>
+<li><span class="label">Work Email:</span>  <!-- TMPL_VAR
name="emailpro" --></li>
+</ol>
+</fieldset>
+
+<fieldset class="rows">
+<legend>Personal Information</legend>
+<ol>
+<li><span class="label">Date of Birth:</span> <!-- TMPL_VAR
NAME="dateofbirth" --></li>
+<li><span class="label">Sex:</span>
+<!-- TMPL_IF EXPR="sex eq 'F'" -->Female<!-- /TMPL_IF -->
+<!-- TMPL_IF EXPR="sex eq 'M'" -->Male<!-- /TMPL_IF -->
+</li>
+</ol>
+</fieldset>
+</div>
+
+<div class="yui-u">
+<fieldset class="rows">
+<legend>Alternate Contact Information</legend>
+<ol>
+<li><span class="label">Alternate Address:</span> <!--TMPL_VAR
NAME="B_streetnumber"--> <!-- TMPL_VAR name="B_address" --> </li>
+<li><span class="label">&nbsp;</span><!-- TMPL_VAR NAME="B_address2" --></li>
+<li><span class="label">City, State:</span> <!-- TMPL_VAR
name="B_city" --></li>
+<li><span class="label">Zip Code:</span> <!-- TMPL_VAR
NAME="B_zipcode" --></li>
+<li><span class="label">Country:</span> <!-- TMPL_VAR NAME="B_country" --></li>
+<li><span class="label">Phone:</span> <!-- TMPL_VAR NAME="B_phone" --></li>
+<li><span class="label">Email:</span> <!-- TMPL_VAR NAME="B_email" --></li>
+</ol>
+</fieldset>
+
+<fieldset class="rows">
+<legend>Library Use:</legend>
+<ol>
+<li><span class="label">Card number:</span> <!-- TMPL_VAR
NAME="cardnumber" --></li>
+<li><span class="label">Patron Number:</span> <!-- TMPL_VAR
NAME="borrowernumber" --></li>
+<li><span class="label">Patron Category:</span> <!-- TMPL_VAR
NAME="description" --> (<!-- TMPL_VAR NAME="categorycode" -->)</li>
+<li><span class="label">Joined:</span> <!-- TMPL_VAR
NAME="dateenrolled" --></li>
+<li><span class="label">Expires:</span> <!-- TMPL_VAR
NAME="dateexpiry" --></li>
+   <!-- TMPL_IF NAME="ExtendedPatronAttributes" -->
+    <!-- TMPL_LOOP NAME="patron_attributes" -->
+        <li><span class="label"><!-- TMPL_VAR NAME="description" --></span>
+        <!-- TMPL_IF NAME="value_description" -->
+            <!-- TMPL_VAR NAME="value_description" -->
+        <!-- TMPL_ELSE -->
+            <!-- TMPL_VAR NAME="value" -->
+        <!-- /TMPL_IF -->
+        </li>
+    <!-- /TMPL_LOOP -->
+   <!-- /TMPL_IF  -->
+</ol>
+</fieldset>
+</div>
+<!-- /TMPL_IF  -->
 <!-- /TMPL_LOOP -->
 </div>
 </div>
diff --git a/opac/opac-userupdate.pl b/opac/opac-userupdate.pl
index 8664316..b083779 100755
--- a/opac/opac-userupdate.pl
+++ b/opac/opac-userupdate.pl
@@ -53,13 +53,12 @@ my $lib = GetBranchDetail($borr->{'branchcode'});
 # handle the new information....
 # collect the form values and send an email.
 my @fields = (
-    'surname',       'firstname',
-    'address','address2','city','zipcode','phone','mobile','fax','phonepro',
'emailaddress','B_streetaddress','B_city','B_zipcode','dateofbirth','sex'
+    'surname','firstname','othernames','streetaddress','city','zipcode','country','phone','mobile','fax','phonepro',
'emailaddress','emailpro','B_streetnumber','B_streetaddress','B_city','B_zipcode','B_country','B_phone','B_email','dateofbirth','sex'
 );
 my $update;
 my $updateemailaddress = $lib->{'branchemail'};
 $updateemailaddress =
C4::Context->preference('KohaAdminEmailAddress') unless(
$updateemailaddress =~ /\w+@\w+/);
-if ( $updateemailaddress eq '' ) {
+if ( !$updateemailaddress || $updateemailaddress eq '' ) {
     warn
 "KohaAdminEmailAddress system preference not set.  Couldn't send
patron update information for $borr->{'firstname'} $borr->{'surname'}
(#$borrowernumber)\n";
     my ($template) = get_template_and_user(
@@ -91,8 +90,12 @@ has requested to change her/his personal details.
 Please check these new details and make the changes:
 EOF

+    my $streetnumber = $borr->{'streetnumber'} || '';
+    my $address = $borr->{'address'} || '';
+    my $address2 = $borr->{'address2'} || '';
     my $B_streetnumber = $borr->{'B_streetnumber'} || '';
     my $B_address = $borr->{'B_address'} || '';
+    my $B_address2 = $borr->{'B_address2'} || '';

     foreach my $field (@fields) {
         my $newfield = $query->param($field) || '';
@@ -100,11 +103,17 @@ EOF
         if($borr->{$field}) {
             $borrowerfield = $borr->{$field};
         }
+
+        # reconstruct the address
+        if($field eq "streetaddress") {
+            $borrowerfield = "$streetnumber $address, $address2";
+        }
+
         # reconstruct the alternate address
         if($field eq "B_streetaddress") {
-            $borrowerfield = "$B_streetnumber $B_address";
+            $borrowerfield = "$B_streetnumber $B_address, $B_address2";
         }
-
+
         if($field eq "dateofbirth") {
            $borrowerfield  = format_date( $borr->{'dateofbirth'} ) || '';
         }
-- 
1.5.6.5

--001636ed698020946c04734e1db2
Content-Type: application/octet-stream; 
	name="0001-Bugs-1172-3579-3596-fixes-to-patron-detail-in-opac.patch"
Content-Disposition: attachment; 
	filename="0001-Bugs-1172-3579-3596-fixes-to-patron-detail-in-opac.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fzh0v9hh0

RnJvbSA5ZjIzNzM5NjY5YTA4ZTAxOWI5YWNiN2IzZGZmNmIyYTAxNDQ3YzBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWNvbGUgRW5nYXJkIDxuZW5nYXJkQGdtYWlsLmNvbT4KRGF0
ZTogVGh1LCAxMCBTZXAgMjAwOSAxOTo0Njo1MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIEJ1Z3M6
IDExNzIgMzU3OSAzNTk2IGZpeGVzIHRvIHBhdHJvbiBkZXRhaWwgaW4gb3BhYwpDb250ZW50LVR5
cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgoKVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB0
aGF0IHRoZSBwYXRyb24gY2FuIHNlZSB0aGVpcgpkZXRhaWxzIGV2ZW4gaWYgdGhlIE9QQUNQYXRy
b25EZXRhaWxzIHN5cyBwcmVmIGlzIE9GRi4KCkl0IGFsc28gcmVtb3ZlZCB0aGUgbWVzc2FnaW5n
IG9wdGlvbnMgZnJvbSB0aGUgcGF0cm9uCmRldGFpbHMgYW5kIGxlYXZlcyB0aGVtIG9uIHRoZSBt
ZXNzYWdpbmcgdGFiLgoKRmluYWxseSBpdCBhZGRzIGluIGFkZHJlc3MgZmllbGRzIHRoYXQgd2Vy
ZSBtaXNzaW5nCnByZXZpb3VzbHkgb24gdGhlIHVwZGF0ZSBwYXRyb24gZm9ybS4KLS0tCiBrb2hh
LXRtcGwvb3BhYy10bXBsL3Byb2cvZW4vaW5jbHVkZXMvdXNlcm1lbnUuaW5jICB8ICAgIDIgLQog
Li4uL29wYWMtdG1wbC9wcm9nL2VuL21vZHVsZXMvb3BhYy1tZXNzYWdpbmcudG1wbCAgfCAgICAy
ICstCiAuLi4vb3BhYy10bXBsL3Byb2cvZW4vbW9kdWxlcy9vcGFjLXVzZXJ1cGRhdGUudG1wbCB8
ICAxNDMgKysrKysrKysrKysrLS0tLS0tLS0KIG9wYWMvb3BhYy11c2VydXBkYXRlLnBsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTAyIGlu
c2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2tvaGEtdG1wbC9vcGFj
LXRtcGwvcHJvZy9lbi9pbmNsdWRlcy91c2VybWVudS5pbmMgYi9rb2hhLXRtcGwvb3BhYy10bXBs
L3Byb2cvZW4vaW5jbHVkZXMvdXNlcm1lbnUuaW5jCmluZGV4IGE4ZmMzMjAuLmQ0ZGY3YzIgMTAw
NjQ0Ci0tLSBhL2tvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9pbmNsdWRlcy91c2VybWVudS5p
bmMKKysrIGIva29oYS10bXBsL29wYWMtdG1wbC9wcm9nL2VuL2luY2x1ZGVzL3VzZXJtZW51Lmlu
YwpAQCAtNSw5ICs1LDcgQEAKICAgPCEtLSBUTVBMX0lGIE5BTUU9Ik9QQUNGaW5lc1RhYiIgLS0+
CiAgIDwhLS0gVE1QTF9JRiBOQU1FPSJhY2NvdW50dmlldyIgLS0+PGxpIGNsYXNzPSJhY3RpdmUi
PjwhLS0gVE1QTF9FTFNFIC0tPjxsaT48IS0tIC9UTVBMX0lGIC0tPjxhIGhyZWY9Ii9jZ2ktYmlu
L2tvaGEvb3BhYy1hY2NvdW50LnBsIj5teSBmaW5lczwvYT48L2xpPgogICA8IS0tIC9UTVBMX0lG
IC0tPgotICA8IS0tIFRNUExfSUYgTkFNRT0iT1BBQ1BhdHJvbkRldGFpbHMiIC0tPgogICA8IS0t
IFRNUExfSUYgTkFNRT0idXNlcnVwZGF0ZXZpZXciIC0tPjxsaSBjbGFzcz0iYWN0aXZlIj48IS0t
IFRNUExfRUxTRSAtLT48bGk+PCEtLSAvVE1QTF9JRiAtLT48YSBocmVmPSIvY2dpLWJpbi9rb2hh
L29wYWMtdXNlcnVwZGF0ZS5wbCI+bXkgcGVyc29uYWwgZGV0YWlsczwvYT48L2xpPgotICAgIDwh
LS0gL1RNUExfSUYgLS0+CiAgIDwhLS0gVE1QTF9JRiBOQU1FPSJUYWdzRW5hYmxlZCIgLS0+CiAg
ICAgPCEtLSBUTVBMX0lGIE5BTUU9InRhZ3N2aWV3IiAtLT48bGkgY2xhc3M9ImFjdGl2ZSI+PCEt
LSBUTVBMX0VMU0UgLS0+PGxpPjwhLS0gL1RNUExfSUYgLS0+PGEgaHJlZj0iL2NnaS1iaW4va29o
YS9vcGFjLXRhZ3MucGwiPm15IHRhZ3M8L2E+PC9saT4KICAgPCEtLSAvVE1QTF9JRiAtLT4KZGlm
ZiAtLWdpdCBhL2tvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9tb2R1bGVzL29wYWMtbWVzc2Fn
aW5nLnRtcGwgYi9rb2hhLXRtcGwvb3BhYy10bXBsL3Byb2cvZW4vbW9kdWxlcy9vcGFjLW1lc3Nh
Z2luZy50bXBsCmluZGV4IDUzZGYxNzcuLmYxNTMyZTIgMTAwNjQ0Ci0tLSBhL2tvaGEtdG1wbC9v
cGFjLXRtcGwvcHJvZy9lbi9tb2R1bGVzL29wYWMtbWVzc2FnaW5nLnRtcGwKKysrIGIva29oYS10
bXBsL29wYWMtdG1wbC9wcm9nL2VuL21vZHVsZXMvb3BhYy1tZXNzYWdpbmcudG1wbApAQCAtMTAw
LDExICsxMDAsMTEgQEAKIAogPC9maWVsZHNldD4KIAotCiA8ZmllbGRzZXQgY2xhc3M9ImFjdGlv
biI+CiAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQgQ2hhbmdlcyIgLz4gPGEg
Y2xhc3M9ImNhbmNlbCIgaHJlZj0iL2NnaS1iaW4va29oYS9vcGFjLXVzZXIucGwiPkNhbmNlbDwv
YT4KIDwvZmllbGRzZXQ+CiAKKwogPC9mb3JtPgogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBh
L2tvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9tb2R1bGVzL29wYWMtdXNlcnVwZGF0ZS50bXBs
IGIva29oYS10bXBsL29wYWMtdG1wbC9wcm9nL2VuL21vZHVsZXMvb3BhYy11c2VydXBkYXRlLnRt
cGwKaW5kZXggNGFlNjIwYy4uNjJlYzZiZSAxMDA2NDQKLS0tIGEva29oYS10bXBsL29wYWMtdG1w
bC9wcm9nL2VuL21vZHVsZXMvb3BhYy11c2VydXBkYXRlLnRtcGwKKysrIGIva29oYS10bXBsL29w
YWMtdG1wbC9wcm9nL2VuL21vZHVsZXMvb3BhYy11c2VydXBkYXRlLnRtcGwKQEAgLTksMjQgKzks
MjUgQEAKIAk8ZGl2IGlkPSJ5dWktbWFpbiI+CiAJPGRpdiBjbGFzcz0ieXVpLWIiPjxkaXYgY2xh
c3M9Inl1aS1nIiBpZD0idXNlcnVwZGF0ZSI+CiAKLTxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5
bGU9Im92ZXJmbG93OmF1dG87Ij4KKzxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiA8IS0tIFRNUExf
TE9PUCBuYW1lPSJCT1JST1dFUl9JTkZPIiAtLT4KIDxoMz48YSBocmVmPSIvY2dpLWJpbi9rb2hh
L29wYWMtdXNlci5wbCI+PCEtLSBUTVBMX1ZBUiBOQU1FPSJmaXJzdG5hbWUiIC0tPiA8IS0tIFRN
UExfVkFSIE5BTUU9InN1cm5hbWUiIC0tPidzIGFjY291bnQ8L2E+IDxpbWcgc3JjPSI8IS0tIFRN
UExfVkFSIE5BTUU9InRoZW1lbGFuZyIgLS0+Li4vLi4vaW1hZ2VzL2NhcmV0LmdpZiIgd2lkdGg9
IjE2IiBoZWlnaHQ9IjE2IiBhbHQ9IiZndDsiIGJvcmRlcj0iMCIgLz4gWW91ciBQZXJzb25hbCBE
ZXRhaWxzPC9oMz4KIAorPCEtLSBUTVBMX0lGIE5BTUU9Ik9QQUNQYXRyb25EZXRhaWxzIiAtLT4K
IDxmb3JtIGFjdGlvbj0iL2NnaS1iaW4va29oYS9vcGFjLXVzZXJ1cGRhdGUucGwiIG1ldGhvZD0i
Z2V0Ij4KIDxkaXYgY2xhc3M9Inl1aS11IGZpcnN0Ij4KLQogPGlucHV0IHR5cGU9ImhpZGRlbiIg
bmFtZT0ibW9kaWZ5IiB2YWx1ZT0ieWVzIiAvPgogPGZpZWxkc2V0IGNsYXNzPSJicmllZiI+PGxl
Z2VuZD5OYW1lPC9sZWdlbmQ+PG9sPgogPGxpPjxsYWJlbCBmb3I9ImZpcnN0bmFtZSI+Rmlyc3Qg
TmFtZTo8L2xhYmVsPiA8aW5wdXQgaWQ9ImZpcnN0bmFtZSIgdHlwZT0idGV4dCIgdmFsdWU9Ijwh
LS0gVE1QTF9WQVIgbmFtZT0iZmlyc3RuYW1lIiAtLT4iICBuYW1lPSJmaXJzdG5hbWUiIC8+PC9s
aT4KKzxsaT48bGFiZWwgZm9yPSJvdGhlcm5hbWVzIj5PdGhlciBOYW1lOjwvbGFiZWw+IDxpbnB1
dCBpZD0ib3RoZXJuYW1lcyIgdHlwZT0idGV4dCIgdmFsdWU9IjwhLS0gVE1QTF9WQVIgbmFtZT0i
b3RoZXJuYW1lcyIgLS0+IiAgbmFtZT0ib3RoZXJuYW1lcyIgLz48L2xpPgogPGxpPjxsYWJlbCBm
b3I9InN1cm5hbWUiPkxhc3QgTmFtZTo8L2xhYmVsPiA8aW5wdXQgaWQ9InN1cm5hbWUiIHR5cGU9
InRleHQiIHZhbHVlPSI8IS0tIFRNUExfVkFSIG5hbWU9InN1cm5hbWUiIC0tPiIgIG5hbWU9InN1
cm5hbWUiIC8+PC9saT4KIDwvb2w+CiA8L2ZpZWxkc2V0PgogCiA8ZmllbGRzZXQgY2xhc3M9ImJy
aWVmIj48bGVnZW5kPkNvbnRhY3QgSW5mb3JtYXRpb248L2xlZ2VuZD4KIDxvbD4KLTxsaT4KLSAg
ICA8bGFiZWwgZm9yPSJhZGRyZXNzIj5BZGRyZXNzOjwvbGFiZWw+Cis8bGk+PGxhYmVsIGZvcj0i
YWRkcmVzcyI+QWRkcmVzczo8L2xhYmVsPgorCTxpbnB1dCBpZD0ic3RyZWV0bnVtYmVyIiBzaXpl
ID0iNyIgdHlwZT0idGV4dCIgdmFsdWU9IjwhLS0gVE1QTF9WQVIgbmFtZT0ic3RyZWV0bnVtYmVy
IiAtLT4iICBuYW1lPSJzdHJlZXRudW1iZXIiIC8+IAogCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1l
PSJhZGRyZXNzIiB2YWx1ZT0iPCEtLSBUTVBMX1ZBUiBOQU1FPSJhZGRyZXNzIiAtLT4iIGlkPSJh
ZGRyZXNzIiAvPgogCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJhZGRyZXNzMiIgdmFsdWU9Ijwh
LS0gVE1QTF9WQVIgTkFNRT0iYWRkcmVzczIiIC0tPiIgaWQ9ImFkZHJlc3MyIiAvPjwvbGk+CiA8
bGk+PGxhYmVsIGZvcj0iY2l0eSI+Q2l0eSwgU3RhdGU6PC9sYWJlbD4gPGlucHV0IGlkPSJjaXR5
IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iPCEtLSBUTVBMX1ZBUiBuYW1lPSJjaXR5IiAtLT4iICBuYW1l
PSJjaXR5IiAvPjwvbGk+CkBAIC0zNCw3MSArMzUsMzAgQEAKIDxsaT48bGFiZWwgZm9yPSJjb3Vu
dHJ5Ij5Db3VudHJ5OiA8L2xhYmVsPjxpbnB1dCBpZD0iY291bnRyeSIgbmFtZT0iY291bnRyeSIg
dmFsdWU9IjwhLS0gVE1QTF9WQVIgTkFNRT0iY291bnRyeSIgLS0+IiBuYW1lPSJjb3VudHJ5IiAv
PjwvbGk+CiA8bGk+PGxhYmVsIGZvcj0icGhvbmUiPkhvbWUgUGhvbmU6PC9sYWJlbD4gPGlucHV0
IGlkPSJwaG9uZSIgdHlwZT0idGV4dCIgdmFsdWU9IjwhLS0gVE1QTF9WQVIgbmFtZT0icGhvbmUi
IC0tPiIgIG5hbWU9InBob25lIiAvPjwvbGk+CiA8bGk+PGxhYmVsIGZvcj0ibW9iaWxlIj5Nb2Jp
bGUgUGhvbmU6PC9sYWJlbD4gPGlucHV0IGlkPSJtb2JpbGUiIHR5cGU9InRleHQiIHZhbHVlPSI8
IS0tIFRNUExfVkFSIG5hbWU9Im1vYmlsZSIgLS0+IiAgbmFtZT0ibW9iaWxlIiAvPjwvbGk+Ci08
bGk+PGxhYmVsIGZvcj0iZmF4Ij5GYXg6PC9sYWJlbD4gPGlucHV0IGlkPSJmYXgiIHR5cGU9InRl
eHQiIHZhbHVlPSI8IS0tIFRNUExfVkFSIG5hbWU9ImZheCIgLS0+IiAgbmFtZT0iZmF4IiAvPjwv
bGk+Ci0KIDxsaT48bGFiZWwgZm9yPSJwaG9uZXBybyI+V29yayBwaG9uZTo8L2xhYmVsPiA8aW5w
dXQgaWQ9InBob25lcHJvIiAgdHlwZT0idGV4dCIgdmFsdWU9IjwhLS0gVE1QTF9WQVIgbmFtZT0i
cGhvbmVwcm8iIC0tPiIgIG5hbWU9InBob25lcHJvIiAvPjwvbGk+Ci0KKzxsaT48bGFiZWwgZm9y
PSJmYXgiPkZheDo8L2xhYmVsPiA8aW5wdXQgaWQ9ImZheCIgdHlwZT0idGV4dCIgdmFsdWU9Ijwh
LS0gVE1QTF9WQVIgbmFtZT0iZmF4IiAtLT4iICBuYW1lPSJmYXgiIC8+PC9saT4KIDxsaT48bGFi
ZWwgZm9yPSJlbWFpbGFkZHJlc3MiPkVtYWlsOjwvbGFiZWw+IDxpbnB1dCBpZD0iZW1haWxhZGRy
ZXNzIiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iPCEtLSBUTVBMX1ZBUiBuYW1lPSJlbWFpbCIgLS0+IiAg
bmFtZT0iZW1haWxhZGRyZXNzIiAvPjwvbGk+Ci08L29sPgotPC9maWVsZHNldD4KLQotPGZpZWxk
c2V0IGNsYXNzPSJicmllZiI+Ci08bGVnZW5kPkl0ZW1zIEJvcnJvd2VkIE5vdGlmaWNhdGlvbnM8
L2xlZ2VuZD4KLTxvbD4KLTxsaT4KLSAgPGxhYmVsIGZvcj0iaXRlbXNfYm9ycm93ZWRfZW1haWwi
PkVtYWlsOjwvbGFiZWw+Ci0gIDwhLS0gVE1QTF9JRiBpdGVtc19ib3Jyb3dlZF9lbWFpbCAtLT4K
LSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iaXRlbXNfYm9ycm93ZWRfZW1haWwiIG5hbWU9
Iml0ZW1zX2JvcnJvd2VkX2VtYWlsIiB2YWx1ZT0iMSIgY2hlY2tlZD0iY2hlY2tlZCIgLz4KLSAg
PCEtLSBUTVBMX0VMU0UgLS0+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Iml0ZW1zX2Jv
cnJvd2VkX2VtYWlsIiBuYW1lPSJpdGVtc19ib3Jyb3dlZF9lbWFpbCIgdmFsdWU9IjEiIC8+Ci0g
IDwhLS0gL1RNUExfSUYgLS0+Ci08L2xpPgotPGxpPgotICA8bGFiZWwgZm9yPSJpdGVtc19ib3Jy
b3dlZF9zbXMiPlRleHQgTWVzc2FnZTo8L2xhYmVsPgotICA8IS0tIFRNUExfSUYgaXRlbXNfYm9y
cm93ZWRfc21zIC0tPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJpdGVtc19ib3Jyb3dl
ZF9zbXMiIG5hbWU9Iml0ZW1zX2JvcnJvd2VkX3NtcyIgdmFsdWU9IjEiIGNoZWNrZWQ9ImNoZWNr
ZWQiIC8+Ci0gIDwhLS0gVE1QTF9FTFNFIC0tPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlk
PSJpdGVtc19ib3Jyb3dlZF9zbXMiIG5hbWU9Iml0ZW1zX2JvcnJvd2VkX3NtcyIgdmFsdWU9IjEi
IC8+Ci0gIDwhLS0gL1RNUExfSUYgLS0+Ci08L2xpPgotPC9vbD4KLTwvZmllbGRzZXQ+Ci0KLTxm
aWVsZHNldCBjbGFzcz0iYnJpZWYiPgotPGxlZ2VuZD5JdGVtcyBSZXR1cm5lZCBOb3RpZmljYXRp
b25zPC9sZWdlbmQ+Ci08b2w+Ci08bGk+Ci0gIDxsYWJlbCBmb3I9Iml0ZW1zX3JldHVybmVkX2Vt
YWlsIj5FbWFpbDo8L2xhYmVsPgotICA8IS0tIFRNUExfSUYgaXRlbXNfcmV0dXJuZWRfZW1haWwg
LS0+Ci0gIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Iml0ZW1zX3JldHVybmVkX2VtYWlsIiBu
YW1lPSJpdGVtc19yZXR1cm5lZF9lbWFpbCIgdmFsdWU9IjEiIGNoZWNrZWQ9ImNoZWNrZWQiIC8+
Ci0gIDwhLS0gVE1QTF9FTFNFIC0tPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJpdGVt
c19yZXR1cm5lZF9lbWFpbCIgbmFtZT0iaXRlbXNfcmV0dXJuZWRfZW1haWwiIHZhbHVlPSIxIiAv
PgotICA8IS0tIC9UTVBMX0lGIC0tPgotPC9saT4KLTxsaT4KLSAgPGxhYmVsIGZvcj0iaXRlbXNf
cmV0dXJuZWRfc21zIj5UZXh0IE1lc3NhZ2U6PC9sYWJlbD4KLSAgPCEtLSBUTVBMX0lGIGl0ZW1z
X3JldHVybmVkX3NtcyAtLT4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iaXRlbXNfcmV0
dXJuZWRfc21zIiBuYW1lPSJpdGVtc19yZXR1cm5lZF9zbXMiIHZhbHVlPSIxIiBjaGVja2VkPSJj
aGVja2VkIiAvPgotICA8IS0tIFRNUExfRUxTRSAtLT4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94
IiBpZD0iaXRlbXNfcmV0dXJuZWRfc21zIiBuYW1lPSJpdGVtc19yZXR1cm5lZF9zbXMiIHZhbHVl
PSIxIiAvPgotICA8IS0tIC9UTVBMX0lGIC0tPgotPC9saT4KKzxsaT48bGFiZWwgZm9yPSJlbWFp
bHBybyI+V29yayBFbWFpbDo8L2xhYmVsPiA8aW5wdXQgaWQ9ImVtYWlscHJvIiB0eXBlPSJ0ZXh0
IiB2YWx1ZT0iPCEtLSBUTVBMX1ZBUiBuYW1lPSJlbWFpbHBybyIgLS0+IiAgbmFtZT0iZW1haWxw
cm8iIC8+PC9saT4KIDwvb2w+CiA8L2ZpZWxkc2V0PgogCiA8L2Rpdj4KIDxkaXYgY2xhc3M9Inl1
aS11Ij4KIDxmaWVsZHNldCBjbGFzcz0iYnJpZWYiPgotPGxlZ2VuZD5QZXJtYW5lbnQgQWRkcmVz
czwvbGVnZW5kPgorPGxlZ2VuZD5BbHRlcm5hdGUgQ29udGFjdCBJbmZvcm1hdGlvbjwvbGVnZW5k
PgogPG9sPgogPGxpPgotICAgIDxsYWJlbCBmb3I9IkJfc3RyZWV0YWRkcmVzcyI+UGVybWFuZW50
IG9yIEFsdGVybmF0ZSBBZGRyZXNzOjwvbGFiZWw+Ci0gICAgICAgIDx0ZXh0YXJlYSBpZD0iQl9z
dHJlZXRhZGRyZXNzIiBjb2xzPSIyNSIgcm93cz0iMyIgbmFtZT0iQl9zdHJlZXRhZGRyZXNzIj48
IS0tVE1QTF9WQVIgTkFNRT0iQl9zdHJlZXRudW1iZXIiLS0+IDwhLS0gVE1QTF9WQVIgbmFtZT0i
Ql9hZGRyZXNzIiAtLT4gPCEtLSBUTVBMX1ZBUiBuYW1lPSJCX2FkZHJlc3MyIiAtLT48L3RleHRh
cmVhPgorICAgIDxsYWJlbCBmb3I9IkJfc3RyZWV0YWRkcmVzcyI+QWx0ZXJuYXRlIEFkZHJlc3M6
PC9sYWJlbD4gCisgICAgPGlucHV0IGlkPSJCX3N0cmVldG51bWJlciIgc2l6ZSA9IjciIHR5cGU9
InRleHQiIHZhbHVlPSI8IS0tIFRNUExfVkFSIG5hbWU9IkJfc3RyZWV0bnVtYmVyIiAtLT4iICBu
YW1lPSJCX3N0cmVldG51bWJlciIgLz4gCisgICAgPGlucHV0IGlkPSJCX2FkZHJlc3MiIHR5cGU9
InRleHQiIHZhbHVlPSI8IS0tIFRNUExfVkFSIG5hbWU9IkJfYWRkcmVzcyIgLS0+IiAgbmFtZT0i
Ql9hZGRyZXNzIiAvPiAKKyAgICA8aW5wdXQgaWQ9IkJfYWRkcmVzczIiIHR5cGU9InRleHQiIHZh
bHVlPSI8IS0tIFRNUExfVkFSIG5hbWU9IkJfYWRkcmVzczIiIC0tPiIgIG5hbWU9IkJfYWRkcmVz
czIiIC8+CiA8L2xpPgogCiA8bGk+PGxhYmVsIGZvcj0iQl9jaXR5Ij5DaXR5LCBTdGF0ZTo8L2xh
YmVsPiA8aW5wdXQgaWQ9IkJfY2l0eSIgdHlwZT0idGV4dCIgdmFsdWU9IjwhLS0gVE1QTF9WQVIg
bmFtZT0iQl9jaXR5IiAtLT4iICBuYW1lPSJCX2NpdHkiIC8+PC9saT4KLTxsaT48bGFiZWwgZm9y
PSJCX3ppcGNvZGUiPlppcCBDb2RlPC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSJCX3pp
cGNvZGUiIG5hbWU9IkJfemlwY29kZSIgdmFsdWU9IjwhLS0gVE1QTF9WQVIgTkFNRT0iQl96aXBj
b2RlIiAtLT4iIG5hbWU9IkJfemlwY29kZSIgLz48L2xpPgotPGxpPjxsYWJlbCBmb3I9IkJfY291
bnRyeSI+Q291bnRyeTwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQl9jb3VudHJ5IiBu
YW1lPSJCX2NvdW50cnkiIHZhbHVlPSI8IS0tIFRNUExfVkFSIE5BTUU9IkJfY291bnRyeSIgLS0+
IiBuYW1lPSJCX2NvdW50cnkiIC8+PC9saT4KKzxsaT48bGFiZWwgZm9yPSJCX3ppcGNvZGUiPlpp
cCBDb2RlOjwvbGFiZWw+IDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQl96aXBjb2RlIiBuYW1lPSJC
X3ppcGNvZGUiIHZhbHVlPSI8IS0tIFRNUExfVkFSIE5BTUU9IkJfemlwY29kZSIgLS0+IiBuYW1l
PSJCX3ppcGNvZGUiIC8+PC9saT4KKzxsaT48bGFiZWwgZm9yPSJCX2NvdW50cnkiPkNvdW50cnk6
PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlkPSJCX2NvdW50cnkiIG5hbWU9IkJfY291bnRy
eSIgdmFsdWU9IjwhLS0gVE1QTF9WQVIgTkFNRT0iQl9jb3VudHJ5IiAtLT4iIG5hbWU9IkJfY291
bnRyeSIgLz48L2xpPgorPGxpPjxsYWJlbCBmb3I9IkJfcGhvbmUiPlBob25lOjwvbGFiZWw+IDxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iQl9waG9uZSIgbmFtZT0iQl9waG9uZSIgdmFsdWU9IjwhLS0g
VE1QTF9WQVIgTkFNRT0iQl9waG9uZSIgLS0+IiBuYW1lPSJCX3Bob25lIiAvPjwvbGk+Cis8bGk+
PGxhYmVsIGZvcj0iQl9lbWFpbCI+RW1haWw6PC9sYWJlbD4gPGlucHV0IHR5cGU9InRleHQiIGlk
PSJCX2VtYWlsIiBuYW1lPSJCX2VtYWlsIiB2YWx1ZT0iPCEtLSBUTVBMX1ZBUiBOQU1FPSJCX2Vt
YWlsIiAtLT4iIG5hbWU9IkJfZW1haWwiIC8+PC9saT4KIDwvb2w+CiA8L2ZpZWxkc2V0PgogPGZp
ZWxkc2V0IGNsYXNzPSJicmllZiI+CkBAIC0xMzYsNiArOTYsNzcgQEAKIDwvZGl2PgogCiA8L2Zv
cm0+Cis8IS0tIFRNUExfRUxTRSAtLT4KKzxwIHN0eWxlPSJjbGVhcjpsZWZ0O3BhZGRpbmc6MWVt
IDAiPlRvIG1ha2UgY2hhbmdlcyB0byB5b3VyIHJlY29yZCBwbGVhc2UgY29udGFjdCB0aGUgbGli
cmFyeS48L3A+Cis8ZGl2IGNsYXNzPSJ5dWktdSBmaXJzdCI+Cis8ZmllbGRzZXQgY2xhc3M9InJv
d3MiPgorPGxlZ2VuZD5Db250YWN0IEluZm9ybWF0aW9uPC9sZWdlbmQ+Cis8b2w+Cis8bGk+PHNw
YW4gY2xhc3M9ImxhYmVsIj5OYW1lOjwvc3Bhbj4gPCEtLSBUTVBMX1ZBUiBOQU1FPSJmaXJzdG5h
bWUiIC0tPiA8IS0tIFRNUExfVkFSIE5BTUU9InN1cm5hbWUiIC0tPjwvbGk+Cis8bGk+PHNwYW4g
Y2xhc3M9ImxhYmVsIj5PdGhlciBOYW1lOjwvc3Bhbj4gPCEtLSBUTVBMX1ZBUiBOQU1FPSJvdGhl
cm5hbWVzIiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJsYWJlbCI+QWRkcmVzczo8L3NwYW4+
IDwhLS0gVE1QTF9WQVIgTkFNRT0ic3RyZWV0bnVtYmVyIiAtLT4gPCEtLSBUTVBMX1ZBUiBOQU1F
PSJhZGRyZXNzIiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJsYWJlbCI+Jm5ic3A7PC9zcGFu
PjwhLS0gVE1QTF9WQVIgTkFNRT0iYWRkcmVzczIiIC0tPjwvbGk+Cis8bGk+PHNwYW4gY2xhc3M9
ImxhYmVsIj5DaXR5LCBTdGF0ZTo8L3NwYW4+ICA8IS0tIFRNUExfVkFSIG5hbWU9ImNpdHkiIC0t
PjwvbGk+Cis8bGk+PHNwYW4gY2xhc3M9ImxhYmVsIj5aaXAgQ29kZTo8L3NwYW4+ICA8IS0tIFRN
UExfVkFSIE5BTUU9InppcGNvZGUiIC0tPjwvbGk+Cis8bGk+PHNwYW4gY2xhc3M9ImxhYmVsIj5D
b3VudHJ5Ojwvc3Bhbj4gIDwhLS0gVE1QTF9WQVIgTkFNRT0iY291bnRyeSIgLS0+PC9saT4KKzxs
aT48c3BhbiBjbGFzcz0ibGFiZWwiPkhvbWUgUGhvbmU6PC9zcGFuPiAgPCEtLSBUTVBMX1ZBUiBu
YW1lPSJwaG9uZSIgLS0+PC9saT4KKzxsaT48c3BhbiBjbGFzcz0ibGFiZWwiPk1vYmlsZSBQaG9u
ZTo8L3NwYW4+ICA8IS0tIFRNUExfVkFSIG5hbWU9Im1vYmlsZSIgLS0+PC9saT4KKzxsaT48c3Bh
biBjbGFzcz0ibGFiZWwiPldvcmsgcGhvbmU6PC9zcGFuPiAgPCEtLSBUTVBMX1ZBUiBuYW1lPSJw
aG9uZXBybyIgLS0+PC9saT4KKzxsaT48c3BhbiBjbGFzcz0ibGFiZWwiPkZheDo8L3NwYW4+ICA8
IS0tIFRNUExfVkFSIG5hbWU9ImZheCIgLS0+PC9saT4KKzxsaT48c3BhbiBjbGFzcz0ibGFiZWwi
PkVtYWlsOjwvc3Bhbj4gIDwhLS0gVE1QTF9WQVIgbmFtZT0iZW1haWwiIC0tPjwvbGk+Cis8bGk+
PHNwYW4gY2xhc3M9ImxhYmVsIj5Xb3JrIEVtYWlsOjwvc3Bhbj4gIDwhLS0gVE1QTF9WQVIgbmFt
ZT0iZW1haWxwcm8iIC0tPjwvbGk+Cis8L29sPgorPC9maWVsZHNldD4KKworPGZpZWxkc2V0IGNs
YXNzPSJyb3dzIj4KKzxsZWdlbmQ+UGVyc29uYWwgSW5mb3JtYXRpb248L2xlZ2VuZD4KKzxvbD4K
KzxsaT48c3BhbiBjbGFzcz0ibGFiZWwiPkRhdGUgb2YgQmlydGg6PC9zcGFuPiA8IS0tIFRNUExf
VkFSIE5BTUU9ImRhdGVvZmJpcnRoIiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJsYWJlbCI+
U2V4Ojwvc3Bhbj4KKzwhLS0gVE1QTF9JRiBFWFBSPSJzZXggZXEgJ0YnIiAtLT5GZW1hbGU8IS0t
IC9UTVBMX0lGIC0tPgorPCEtLSBUTVBMX0lGIEVYUFI9InNleCBlcSAnTSciIC0tPk1hbGU8IS0t
IC9UTVBMX0lGIC0tPgorPC9saT4KKzwvb2w+Cis8L2ZpZWxkc2V0PgorPC9kaXY+CisKKzxkaXYg
Y2xhc3M9Inl1aS11Ij4KKzxmaWVsZHNldCBjbGFzcz0icm93cyI+Cis8bGVnZW5kPkFsdGVybmF0
ZSBDb250YWN0IEluZm9ybWF0aW9uPC9sZWdlbmQ+Cis8b2w+Cis8bGk+PHNwYW4gY2xhc3M9Imxh
YmVsIj5BbHRlcm5hdGUgQWRkcmVzczo8L3NwYW4+IDwhLS1UTVBMX1ZBUiBOQU1FPSJCX3N0cmVl
dG51bWJlciItLT4gPCEtLSBUTVBMX1ZBUiBuYW1lPSJCX2FkZHJlc3MiIC0tPiA8L2xpPgorPGxp
PjxzcGFuIGNsYXNzPSJsYWJlbCI+Jm5ic3A7PC9zcGFuPjwhLS0gVE1QTF9WQVIgTkFNRT0iQl9h
ZGRyZXNzMiIgLS0+PC9saT4KKzxsaT48c3BhbiBjbGFzcz0ibGFiZWwiPkNpdHksIFN0YXRlOjwv
c3Bhbj4gPCEtLSBUTVBMX1ZBUiBuYW1lPSJCX2NpdHkiIC0tPjwvbGk+Cis8bGk+PHNwYW4gY2xh
c3M9ImxhYmVsIj5aaXAgQ29kZTo8L3NwYW4+IDwhLS0gVE1QTF9WQVIgTkFNRT0iQl96aXBjb2Rl
IiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJsYWJlbCI+Q291bnRyeTo8L3NwYW4+IDwhLS0g
VE1QTF9WQVIgTkFNRT0iQl9jb3VudHJ5IiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJsYWJl
bCI+UGhvbmU6PC9zcGFuPiA8IS0tIFRNUExfVkFSIE5BTUU9IkJfcGhvbmUiIC0tPjwvbGk+Cis8
bGk+PHNwYW4gY2xhc3M9ImxhYmVsIj5FbWFpbDo8L3NwYW4+IDwhLS0gVE1QTF9WQVIgTkFNRT0i
Ql9lbWFpbCIgLS0+PC9saT4KKzwvb2w+Cis8L2ZpZWxkc2V0PgorCis8ZmllbGRzZXQgY2xhc3M9
InJvd3MiPgorPGxlZ2VuZD5MaWJyYXJ5IFVzZTo8L2xlZ2VuZD4KKzxvbD4KKzxsaT48c3BhbiBj
bGFzcz0ibGFiZWwiPkNhcmQgbnVtYmVyOjwvc3Bhbj4gPCEtLSBUTVBMX1ZBUiBOQU1FPSJjYXJk
bnVtYmVyIiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJsYWJlbCI+UGF0cm9uIE51bWJlcjo8
L3NwYW4+IDwhLS0gVE1QTF9WQVIgTkFNRT0iYm9ycm93ZXJudW1iZXIiIC0tPjwvbGk+Cis8bGk+
PHNwYW4gY2xhc3M9ImxhYmVsIj5QYXRyb24gQ2F0ZWdvcnk6PC9zcGFuPiA8IS0tIFRNUExfVkFS
IE5BTUU9ImRlc2NyaXB0aW9uIiAtLT4gKDwhLS0gVE1QTF9WQVIgTkFNRT0iY2F0ZWdvcnljb2Rl
IiAtLT4pPC9saT4KKzxsaT48c3BhbiBjbGFzcz0ibGFiZWwiPkpvaW5lZDo8L3NwYW4+IDwhLS0g
VE1QTF9WQVIgTkFNRT0iZGF0ZWVucm9sbGVkIiAtLT48L2xpPgorPGxpPjxzcGFuIGNsYXNzPSJs
YWJlbCI+RXhwaXJlczo8L3NwYW4+IDwhLS0gVE1QTF9WQVIgTkFNRT0iZGF0ZWV4cGlyeSIgLS0+
PC9saT4KKyAgIDwhLS0gVE1QTF9JRiBOQU1FPSJFeHRlbmRlZFBhdHJvbkF0dHJpYnV0ZXMiIC0t
PgorICAgIDwhLS0gVE1QTF9MT09QIE5BTUU9InBhdHJvbl9hdHRyaWJ1dGVzIiAtLT4KKyAgICAg
ICAgPGxpPjxzcGFuIGNsYXNzPSJsYWJlbCI+PCEtLSBUTVBMX1ZBUiBOQU1FPSJkZXNjcmlwdGlv
biIgLS0+PC9zcGFuPgorICAgICAgICA8IS0tIFRNUExfSUYgTkFNRT0idmFsdWVfZGVzY3JpcHRp
b24iIC0tPgorICAgICAgICAgICAgPCEtLSBUTVBMX1ZBUiBOQU1FPSJ2YWx1ZV9kZXNjcmlwdGlv
biIgLS0+CisgICAgICAgIDwhLS0gVE1QTF9FTFNFIC0tPgorICAgICAgICAgICAgPCEtLSBUTVBM
X1ZBUiBOQU1FPSJ2YWx1ZSIgLS0+CisgICAgICAgIDwhLS0gL1RNUExfSUYgLS0+CisgICAgICAg
IDwvbGk+CisgICAgPCEtLSAvVE1QTF9MT09QIC0tPgorICAgPCEtLSAvVE1QTF9JRiAgLS0+Cis8
L29sPgorPC9maWVsZHNldD4KKzwvZGl2PgorPCEtLSAvVE1QTF9JRiAgLS0+CiA8IS0tIC9UTVBM
X0xPT1AgLS0+CiA8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvb3BhYy9vcGFjLXVzZXJ1cGRh
dGUucGwgYi9vcGFjL29wYWMtdXNlcnVwZGF0ZS5wbAppbmRleCA4NjY0MzE2Li5iMDgzNzc5IDEw
MDc1NQotLS0gYS9vcGFjL29wYWMtdXNlcnVwZGF0ZS5wbAorKysgYi9vcGFjL29wYWMtdXNlcnVw
ZGF0ZS5wbApAQCAtNTMsMTMgKzUzLDEyIEBAIG15ICRsaWIgPSBHZXRCcmFuY2hEZXRhaWwoJGJv
cnItPnsnYnJhbmNoY29kZSd9KTsKICMgaGFuZGxlIHRoZSBuZXcgaW5mb3JtYXRpb24uLi4uCiAj
IGNvbGxlY3QgdGhlIGZvcm0gdmFsdWVzIGFuZCBzZW5kIGFuIGVtYWlsLgogbXkgQGZpZWxkcyA9
ICgKLSAgICAnc3VybmFtZScsICAgICAgICdmaXJzdG5hbWUnLCAKLSAgICAnYWRkcmVzcycsJ2Fk
ZHJlc3MyJywnY2l0eScsJ3ppcGNvZGUnLCdwaG9uZScsJ21vYmlsZScsJ2ZheCcsJ3Bob25lcHJv
JywgJ2VtYWlsYWRkcmVzcycsJ0Jfc3RyZWV0YWRkcmVzcycsJ0JfY2l0eScsJ0JfemlwY29kZScs
J2RhdGVvZmJpcnRoJywnc2V4JworICAgICdzdXJuYW1lJywnZmlyc3RuYW1lJywnb3RoZXJuYW1l
cycsJ3N0cmVldGFkZHJlc3MnLCdjaXR5JywnemlwY29kZScsJ2NvdW50cnknLCdwaG9uZScsJ21v
YmlsZScsJ2ZheCcsJ3Bob25lcHJvJywgJ2VtYWlsYWRkcmVzcycsJ2VtYWlscHJvJywnQl9zdHJl
ZXRudW1iZXInLCdCX3N0cmVldGFkZHJlc3MnLCdCX2NpdHknLCdCX3ppcGNvZGUnLCdCX2NvdW50
cnknLCdCX3Bob25lJywnQl9lbWFpbCcsJ2RhdGVvZmJpcnRoJywnc2V4JwogKTsKIG15ICR1cGRh
dGU7CiBteSAkdXBkYXRlZW1haWxhZGRyZXNzID0gJGxpYi0+eydicmFuY2hlbWFpbCd9OwogJHVw
ZGF0ZWVtYWlsYWRkcmVzcyA9IEM0OjpDb250ZXh0LT5wcmVmZXJlbmNlKCdLb2hhQWRtaW5FbWFp
bEFkZHJlc3MnKSB1bmxlc3MoICR1cGRhdGVlbWFpbGFkZHJlc3MgPX4gL1x3K0BcdysvKTsKLWlm
ICggJHVwZGF0ZWVtYWlsYWRkcmVzcyBlcSAnJyApIHsKK2lmICggISR1cGRhdGVlbWFpbGFkZHJl
c3MgfHwgJHVwZGF0ZWVtYWlsYWRkcmVzcyBlcSAnJyApIHsKICAgICB3YXJuCiAiS29oYUFkbWlu
RW1haWxBZGRyZXNzIHN5c3RlbSBwcmVmZXJlbmNlIG5vdCBzZXQuICBDb3VsZG4ndCBzZW5kIHBh
dHJvbiB1cGRhdGUgaW5mb3JtYXRpb24gZm9yICRib3JyLT57J2ZpcnN0bmFtZSd9ICRib3JyLT57
J3N1cm5hbWUnfSAoIyRib3Jyb3dlcm51bWJlcilcbiI7CiAgICAgbXkgKCR0ZW1wbGF0ZSkgPSBn
ZXRfdGVtcGxhdGVfYW5kX3VzZXIoCkBAIC05MSw4ICs5MCwxMiBAQCBoYXMgcmVxdWVzdGVkIHRv
IGNoYW5nZSBoZXIvaGlzIHBlcnNvbmFsIGRldGFpbHMuCiBQbGVhc2UgY2hlY2sgdGhlc2UgbmV3
IGRldGFpbHMgYW5kIG1ha2UgdGhlIGNoYW5nZXM6CiBFT0YKIAorICAgIG15ICRzdHJlZXRudW1i
ZXIgPSAkYm9yci0+eydzdHJlZXRudW1iZXInfSB8fCAnJzsKKyAgICBteSAkYWRkcmVzcyA9ICRi
b3JyLT57J2FkZHJlc3MnfSB8fCAnJzsKKyAgICBteSAkYWRkcmVzczIgPSAkYm9yci0+eydhZGRy
ZXNzMid9IHx8ICcnOwogICAgIG15ICRCX3N0cmVldG51bWJlciA9ICRib3JyLT57J0Jfc3RyZWV0
bnVtYmVyJ30gfHwgJyc7CiAgICAgbXkgJEJfYWRkcmVzcyA9ICRib3JyLT57J0JfYWRkcmVzcyd9
IHx8ICcnOworICAgIG15ICRCX2FkZHJlc3MyID0gJGJvcnItPnsnQl9hZGRyZXNzMid9IHx8ICcn
OwogCiAgICAgZm9yZWFjaCBteSAkZmllbGQgKEBmaWVsZHMpIHsKICAgICAgICAgbXkgJG5ld2Zp
ZWxkID0gJHF1ZXJ5LT5wYXJhbSgkZmllbGQpIHx8ICcnOwpAQCAtMTAwLDExICsxMDMsMTcgQEAg
RU9GCiAgICAgICAgIGlmKCRib3JyLT57JGZpZWxkfSkgewogICAgICAgICAgICAgJGJvcnJvd2Vy
ZmllbGQgPSAkYm9yci0+eyRmaWVsZH07CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICMg
cmVjb25zdHJ1Y3QgdGhlIGFkZHJlc3MKKyAgICAgICAgaWYoJGZpZWxkIGVxICJzdHJlZXRhZGRy
ZXNzIikgeworICAgICAgICAgICAgJGJvcnJvd2VyZmllbGQgPSAiJHN0cmVldG51bWJlciAkYWRk
cmVzcywgJGFkZHJlc3MyIjsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgIyByZWNvbnN0
cnVjdCB0aGUgYWx0ZXJuYXRlIGFkZHJlc3MKICAgICAgICAgaWYoJGZpZWxkIGVxICJCX3N0cmVl
dGFkZHJlc3MiKSB7Ci0gICAgICAgICAgICAkYm9ycm93ZXJmaWVsZCA9ICIkQl9zdHJlZXRudW1i
ZXIgJEJfYWRkcmVzcyI7CisgICAgICAgICAgICAkYm9ycm93ZXJmaWVsZCA9ICIkQl9zdHJlZXRu
dW1iZXIgJEJfYWRkcmVzcywgJEJfYWRkcmVzczIiOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgICAgIGlmKCRmaWVsZCBlcSAiZGF0ZW9mYmlydGgiKSB7CiAgICAgICAgICAgICRib3Jyb3dl
cmZpZWxkICA9IGZvcm1hdF9kYXRlKCAkYm9yci0+eydkYXRlb2ZiaXJ0aCd9ICkgfHwgJyc7CiAg
ICAgICAgIH0KLS0gCjEuNS42LjUKCg==
--001636ed698020946c04734e1db2--


More information about the Koha-patches mailing list