<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>80700</bug_id>
          
          <creation_ts>2012-03-09 06:30:14 -0800</creation_ts>
          <short_desc>[Qt] Move notification icon download out of WebCore</short_desc>
          <delta_ts>2012-04-24 18:09:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79666</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jianli</cc>
    
    <cc>jonlee</cc>
    
    <cc>ossy</cc>
    
    <cc>savagobr</cc>
    
    <cc>szledan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574856</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-03-09 06:30:14 -0800</bug_when>
    <thetext>Initially, I thought that ports other than Qt would want to use this code, but it seems that only Qt is using this.
Moreover, the downloaded icon is not passed to WebKit2 and that triggers 2 downloads.
We should move the code that downloads the notification icon to WebKit/qt .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607037</commentid>
    <comment_count>1</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-04-20 16:36:00 -0700</bug_when>
    <thetext>*** Bug 84484 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607375</commentid>
    <comment_count>2</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-04-22 13:36:54 -0700</bug_when>
    <thetext>Simon, if I remove the code to download the notifications icon out of webcore, can I change the API in the platform plugin to take a url instead of the icon itself, or should I reimplement the download code in webkit1 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607526</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-04-23 00:50:14 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Simon, if I remove the code to download the notifications icon out of webcore, can I change the API in the platform plugin to take a url instead of the icon itself, or should I reimplement the download code in webkit1 ?

Feel free to change the API of the platform plugin to suit your needs. Just remember to change the version part of the interface string at the bottom of qwebkitplatformplugin.h and also adjust the example that has a copy of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608285</commentid>
    <comment_count>4</comment_count>
      <attachid>138485</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-04-23 18:36:26 -0700</bug_when>
    <thetext>Created attachment 138485
Patch.

Remove the code that handles the notification&apos;s icon and use the icon url instead.
The &quot;display&quot; event has to be asynchronous, so a timer was added to achieve that.
The platform plugin API and example were updated to reflect this change.
This change does not address the recent changes in web notifications spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608453</commentid>
    <comment_count>5</comment_count>
      <attachid>138485</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 01:36:07 -0700</bug_when>
    <thetext>Comment on attachment 138485
Patch.

Clearing flags on attachment: 138485

Committed r115011: &lt;http://trac.webkit.org/changeset/115011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608454</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 01:36:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608476</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-04-24 02:11:36 -0700</bug_when>
    <thetext>Reopen, because it broke a test:

--- /ramdisk/qt-linux-release/build/layout-test-results/http/tests/notifications/icon-exists-cancel-expected.txt 
+++ /ramdisk/qt-linux-release/build/layout-test-results/http/tests/notifications/icon-exists-cancel-actual.txt 
@@ -1,5 +1,7 @@
+DESKTOP NOTIFICATION: icon http://127.0.0.1:8000/notifications/resources/icon-exists.png, title New E-mail, text Meet me tonight at 8!
+DESKTOP NOTIFICATION CLOSED: New E-mail
 DESKTOP NOTIFICATION: icon http://127.0.0.1:8000/notifications/resources/icon-exists.png, title Second E-mail, text Actually, meet me tonight at 9!
 Sending notification, cancelling it while the icon is loading and sending a second notification. Only the second notification should be displayed
 
-PASS: display event invoked.
+FAIL: close event invoked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608536</commentid>
    <comment_count>8</comment_count>
    <who name="Szilard Ledan">szledan</who>
    <bug_when>2012-04-24 04:25:13 -0700</bug_when>
    <thetext>This patch made http/tests/notifications/icon-exists-cancel.html fail. This test has been skipped until it is fixed. See http://trac.webkit.org/changeset/115024
Please unskip it with the proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608558</commentid>
    <comment_count>9</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-04-24 05:01:22 -0700</bug_when>
    <thetext>Sorry for this :)
I added http/tests/notifications tests in order to test the icon loading, which I just removed. 

Any objection to removing the tests, since the code is removed too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608580</commentid>
    <comment_count>10</comment_count>
      <attachid>138543</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-04-24 05:43:16 -0700</bug_when>
    <thetext>Created attachment 138543
Patch.

Remove http/tests/notifications after the code the tests were testing has been removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609336</commentid>
    <comment_count>11</comment_count>
      <attachid>138543</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 18:09:29 -0700</bug_when>
    <thetext>Comment on attachment 138543
Patch.

Clearing flags on attachment: 138543

Committed r115153: &lt;http://trac.webkit.org/changeset/115153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609337</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 18:09:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138485</attachid>
            <date>2012-04-23 18:36:26 -0700</date>
            <delta_ts>2012-04-24 01:36:07 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>80700.patch</filename>
            <type>text/plain</type>
            <size>15975</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDk3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA0LTIzICBZYWVsIEFo
YXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIE1vdmUgbm90aWZp
Y2F0aW9uIGljb24gZG93bmxvYWQgb3V0IG9mIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwNzAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBjb2RlIHRoYXQgZG93bmxvYWRz
IHRoZSBub3RpZmljYXRpb24ncyBpY29uIG91dCBvZiBXZWJDb3JlLgorICAgICAgICBPdGhlciBw
b3J0cyBsZXQgdGhlIGNsaWVudCBkZWNpZGUgaWYgdG8gZG93bmxvYWQgdGhlIGljb24gb3Igbm90
LgorICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgcGF0Y2ggaXMgb25seSByZW1vdmluZyBjb2Rl
LgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm90aWZpY2F0aW9uOjp+Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbjo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6Y29udGV4dERlc3Ryb3llZCk6
CisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaDoKKyAgICAgICAgKE5vdGlm
aWNhdGlvbik6CisKIDIwMTItMDQtMjMgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgog
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY0OQpJ
bmRleDogU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAko
cmV2aXNpb24gMTE0OTYxKQorKysgU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsMTAgKzExNiw2IEBAIE5vdGlmaWNhdGlv
bjo6Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGkKIAogTm90aWZpY2F0aW9uOjp+Tm90aWZpY2F0
aW9uKCkgCiB7Ci0gICAgaWYgKG1fc3RhdGUgPT0gTG9hZGluZ0ljb24pIHsKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNsb3NlKCk7Ci0gICAgfQogfQogCiAjaWYgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpAQCAtMTcxLDI2ICsxNjcsMTEgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBOb3RpZmljYXRpb246OmludGVyZgogCiB2b2lkIE5vdGlmaWNhdGlvbjo6c2hv
dygpIAogewotI2lmIFBMQVRGT1JNKFFUKQotICAgIGlmIChpY29uVVJMKCkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIC8vIFNldCB0aGUgc3RhdGUgYmVmb3JlIGFjdHVhbGx5IHNob3dpbmcsIGJlY2F1
c2UKLSAgICAgICAgLy8gaGFuZGxpbmcgb2Ygb25kaXNwbGF5IG1heSByZWx5IG9uIHRoYXQuCi0g
ICAgICAgIGlmIChtX3N0YXRlID09IElkbGUpIHsKLSAgICAgICAgICAgIG1fc3RhdGUgPSBTaG93
aW5nOwotICAgICAgICAgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSkgewot
ICAgICAgICAgICAgICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+c2hvdyh0aGlz
KTsKLSAgICAgICAgICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgc3RhcnRMb2FkaW5nSWNvbigpOwot
I2Vsc2UKICAgICAvLyBwcmV2ZW50IGRvdWJsZS1zaG93aW5nCiAgICAgaWYgKG1fc3RhdGUgPT0g
SWRsZSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkgJiYgbV9ub3RpZmljYXRpb25D
ZW50ZXItPmNsaWVudCgpLT5zaG93KHRoaXMpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBTaG93aW5n
OwogICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAgICAgfQotI2VuZGlmCiB9CiAK
IHZvaWQgTm90aWZpY2F0aW9uOjpjbG9zZSgpCkBAIC0xOTgsMTUgKzE3OSwxMCBAQCB2b2lkIE5v
dGlmaWNhdGlvbjo6Y2xvc2UoKQogICAgIHN3aXRjaCAobV9zdGF0ZSkgewogICAgIGNhc2UgSWRs
ZToKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMb2FkaW5nSWNvbjoKLSAgICAgICAgbV9zdGF0
ZSA9IENhbmNlbGxlZEljb247Ci0gICAgICAgIHN0b3BMb2FkaW5nSWNvbigpOwotICAgICAgICBi
cmVhazsKICAgICBjYXNlIFNob3dpbmc6CiAgICAgICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRl
ci0+Y2xpZW50KCkpCiAgICAgICAgICAgICBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkt
PmNhbmNlbCh0aGlzKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDYW5jZWxsZWRJY29uOgog
ICAgIGNhc2UgQ2xvc2VkOgogICAgICAgICBicmVhazsKICAgICB9CkBAIC0yMjksNjYgKzIwNSw2
IEBAIHZvaWQgTm90aWZpY2F0aW9uOjpjb250ZXh0RGVzdHJveWVkKCkKICAgICAgICAgbV9ub3Rp
ZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5ub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQodGhp
cyk7CiB9CiAKLXZvaWQgTm90aWZpY2F0aW9uOjpzdGFydExvYWRpbmdJY29uKCkKLXsKLSAgICBp
ZiAobV9zdGF0ZSAhPSBJZGxlKQotICAgICAgICByZXR1cm47Ci0gICAgc2V0UGVuZGluZ0FjdGl2
aXR5KHRoaXMpOwotICAgIG1fc3RhdGUgPSBMb2FkaW5nSWNvbjsKLSAgICBUaHJlYWRhYmxlTG9h
ZGVyT3B0aW9ucyBvcHRpb25zOwotICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBEb05v
dFNlbmRDYWxsYmFja3M7Ci0gICAgb3B0aW9ucy5zbmlmZkNvbnRlbnQgPSBEb05vdFNuaWZmQ29u
dGVudDsKLSAgICBvcHRpb25zLnByZWZsaWdodFBvbGljeSA9IENvbnNpZGVyUHJlZmxpZ2h0Owot
ICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0g
ICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBBbGxvd0Nyb3NzT3JpZ2luUmVx
dWVzdHM7Ci0gICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCB0aGlzLCBSZXNvdXJjZVJlcXVlc3QoaWNvblVSTCgpKSwgb3B0aW9u
cyk7Ci19Ci0KLXZvaWQgTm90aWZpY2F0aW9uOjpzdG9wTG9hZGluZ0ljb24oKQotewotICAgIG1f
aWNvbkRhdGEgPSAwOwotICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBwcm90ZWN0KG1fbG9h
ZGVyKTsKLSAgICBtX2xvYWRlci0+Y2FuY2VsKCk7Ci19Ci0KLXZvaWQgTm90aWZpY2F0aW9uOjpk
aWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCi17Ci0gICAgaW50IHN0YXR1cyA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7
Ci0gICAgaWYgKHN0YXR1cyAmJiAoc3RhdHVzIDwgMjAwIHx8IHN0YXR1cyA+IDI5OSkpIHsKLSAg
ICAgICAgc3RvcExvYWRpbmdJY29uKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9p
Y29uRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7Ci19Ci0KLXZvaWQgTm90aWZpY2F0aW9u
OjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkKLXsKLSAg
ICBtX2ljb25EYXRhLT5hcHBlbmQoZGF0YSwgZGF0YUxlbmd0aCk7Ci19Ci0KLXZvaWQgTm90aWZp
Y2F0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcsIGRvdWJsZSkKLXsKLSAgICBm
aW5pc2hMb2FkaW5nSWNvbigpOwotfQotCi12b2lkIE5vdGlmaWNhdGlvbjo6ZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJikKLXsKLSAgICBmaW5pc2hMb2FkaW5nSWNvbigpOwotfQotCi12b2lk
IE5vdGlmaWNhdGlvbjo6ZGlkRmFpbFJlZGlyZWN0Q2hlY2soKQotewotICAgIGZpbmlzaExvYWRp
bmdJY29uKCk7Ci19Ci0KLXZvaWQgTm90aWZpY2F0aW9uOjpmaW5pc2hMb2FkaW5nSWNvbigpCi17
Ci0gICAgaWYgKG1fc3RhdGUgPT0gTG9hZGluZ0ljb24pIHsKLSAgICAgICAgaWYgKG1fbm90aWZp
Y2F0aW9uQ2VudGVyLT5jbGllbnQoKSAmJiBtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2xpZW50KCkt
PnNob3codGhpcykpCi0gICAgICAgICAgICBtX3N0YXRlID0gU2hvd2luZzsKLSAgICB9Ci19Ci0K
IHZvaWQgTm90aWZpY2F0aW9uOjpmaW5hbGl6ZSgpCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gQ2xv
c2VkKQpJbmRleDogU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5o
CShyZXZpc2lvbiAxMTQ5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIFRocmVhZGFi
bGVMb2FkZXI7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIE5vdGlmaWNh
dGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QsIHB1YmxpYyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQg
eworY2xhc3MgTm90aWZpY2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uPiwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0IHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBOb3RpZmljYXRpb24oKTsKQEAgLTEzMCwx
OCArMTMwLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdG9wTG9hZGluZ0ljb24oKTsKIAotICAg
IFNoYXJlZEJ1ZmZlciogaWNvbkRhdGEoKSB7IHJldHVybiBtX2ljb25EYXRhLmdldCgpOyB9Ci0g
ICAgdm9pZCByZWxlYXNlSWNvbkRhdGEoKSB7IG1faWNvbkRhdGEgPSAwOyB9Ci0KICAgICAvLyBE
ZXByZWNhdGVkLiBVc2UgZnVuY3Rpb25zIGZyb20gTm90aWZpY2F0aW9uQ2VudGVyLgogICAgIHZv
aWQgZGV0YWNoUHJlc2VudGVyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgp
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFJlZGlyZWN0Q2hlY2so
KTsKLQogICAgIHZvaWQgZmluYWxpemUoKTsKIAogcHJpdmF0ZToKQEAgLTE4MiwxMCArMTczLDgg
QEAgcHJpdmF0ZToKIAogICAgIGVudW0gTm90aWZpY2F0aW9uU3RhdGUgewogICAgICAgICBJZGxl
ID0gMCwKLSAgICAgICAgTG9hZGluZ0ljb24gPSAxLAotICAgICAgICBTaG93aW5nID0gMiwKLSAg
ICAgICAgQ2FuY2VsbGVkSWNvbiA9IDMsCi0gICAgICAgIENsb3NlZCA9IDQsCisgICAgICAgIFNo
b3dpbmcgPSAxLAorICAgICAgICBDbG9zZWQgPSAyLAogICAgIH07CiAKICAgICBOb3RpZmljYXRp
b25TdGF0ZSBtX3N0YXRlOwpAQCAtMTk0LDggKzE4Myw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
RXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJnZXREYXRhOwogCi0gICAgUmVmUHRyPFRocmVhZGFi
bGVMb2FkZXI+IG1fbG9hZGVyOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1faWNvbkRhdGE7
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgT3duUHRyPFRpbWVyPE5vdGlmaWNhdGlv
bj4gPiBtX3Nob3dUYXNrVGltZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAxMTQ5NzUpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDMzIEBACisyMDEyLTA0LTIzICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4KKworICAgICAgICBbUXRdIE1vdmUgbm90aWZpY2F0aW9uIGljb24gZG93bmxvYWQg
b3V0IG9mIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwNzAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBjb2RlIHRoYXQgaGFuZGxlcyB0aGUgbm90aWZpY2F0aW9uJ3MgaWNv
biBhbmQgdXNlIHRoZSBpY29uIHVybCBpbnN0ZWFkLgorICAgICAgICBUaGUgImRpc3BsYXkiIGV2
ZW50IGhhcyB0byBiZSBhc3luY2hyb25vdXMsIHNvIGEgdGltZXIgd2FzIGFkZGVkIHRvIGFjaGll
dmUgdGhhdC4KKyAgICAgICAgVGhlIHBsYXRmb3JtIHBsdWdpbiBBUEkgYW5kIGV4YW1wbGUgd2Vy
ZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UuCisgICAgICAgIFRoaXMgY2hhbmdlIGRv
ZXMgbm90IGFkZHJlc3MgdGhlIHJlY2VudCBjaGFuZ2VzIGluIHdlYiBub3RpZmljYXRpb25zIHNw
ZWMuCisKKyAgICAgICAgKiBBcGkvcXdlYmtpdHBsYXRmb3JtcGx1Z2luLmg6CisgICAgICAgIChR
V2ViTm90aWZpY2F0aW9uRGF0YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0
aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
V3JhcHBlcjo6Tm90aWZpY2F0aW9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmlj
YXRpb25XcmFwcGVyOjpzZW5kRGlzcGxheUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uV3JhcHBlcjo6aWNvblVybCk6CisgICAgICAgIChX
ZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6c2hvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6c2Vu
ZERpc3BsYXlFdmVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJl
c2VudGVyQ2xpZW50UXQuaDoKKyAgICAgICAgKE5vdGlmaWNhdGlvbldyYXBwZXIpOgorICAgICAg
ICAoTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQpOgorICAgICAgICAqIGV4YW1wbGVzL3Bs
YXRmb3JtcGx1Z2luL1dlYk5vdGlmaWNhdGlvblByZXNlbnRlci5jcHA6CisgICAgICAgIChXZWJO
b3RpZmljYXRpb25XaWRnZXQ6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAqIGV4YW1wbGVz
L3BsYXRmb3JtcGx1Z2luL3F3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oOgorICAgICAgICAoUVdlYk5v
dGlmaWNhdGlvbkRhdGEpOgorCiAyMDEyLTA0LTE4ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxh
bGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIENsZWFuLXVwIFdoZWVsRXZlbnQgQ29u
dmVyc2lvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBsdWdp
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJraXRwbGF0Zm9ybXBs
dWdpbi5oCShyZXZpc2lvbiAxMTQ5NjEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Via2l0
cGxhdGZvcm1wbHVnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGNvbnN0IFFTdHJpbmcgdGl0bGUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBjb25zdCBRU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBjb25z
dCBRQnl0ZUFycmF5IGljb25EYXRhKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgUVVy
bCBpY29uVXJsKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUVVybCBvcGVuZXJQYWdl
VXJsKCkgY29uc3QgPSAwOwogfTsKIApAQCAtMTgwLDcgKzE4MCw3IEBAIHB1YmxpYzoKIH07CiAK
IFFUX0JFR0lOX05BTUVTUEFDRQotUV9ERUNMQVJFX0lOVEVSRkFDRShRV2ViS2l0UGxhdGZvcm1Q
bHVnaW4sICJjb20ubm9raWEuUXQuV2ViS2l0LlBsYXRmb3JtUGx1Z2luLzEuOCIpOworUV9ERUNM
QVJFX0lOVEVSRkFDRShRV2ViS2l0UGxhdGZvcm1QbHVnaW4sICJjb20ubm9raWEuUXQuV2ViS2l0
LlBsYXRmb3JtUGx1Z2luLzEuOSIpOwogUVRfRU5EX05BTUVTUEFDRQogCiAjZW5kaWYgLy8gUVdF
QktJVFBMQVRGT1JNUExVR0lOX0gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQu
Y3BwCShyZXZpc2lvbiAxMTQ5NjEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L05vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjks
NiArNjksNyBAQCBOb3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdCogTm90aWZpY2F0CiAKIE5v
dGlmaWNhdGlvbldyYXBwZXI6Ok5vdGlmaWNhdGlvbldyYXBwZXIoKQogICAgIDogbV9jbG9zZVRp
bWVyKHRoaXMsICZOb3RpZmljYXRpb25XcmFwcGVyOjpjbG9zZSkKKyAgICAsIG1fZGlzcGxheUV2
ZW50VGltZXIodGhpcywgJk5vdGlmaWNhdGlvbldyYXBwZXI6OnNlbmREaXNwbGF5RXZlbnQpCiB7
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9O
UykKIApAQCAtODYsNiArODcsMTMgQEAgdm9pZCBOb3RpZmljYXRpb25XcmFwcGVyOjpjbG9zZShU
aW1lcjxObwogI2VuZGlmCiB9CiAKK3ZvaWQgTm90aWZpY2F0aW9uV3JhcHBlcjo6c2VuZERpc3Bs
YXlFdmVudChUaW1lcjxOb3RpZmljYXRpb25XcmFwcGVyPiopCit7CisjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBOb3RpZmljYXRp
b25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCktPnNlbmREaXNwbGF5
RXZlbnQodGhpcyk7CisjZW5kaWYKK30KKwogY29uc3QgUVN0cmluZyBOb3RpZmljYXRpb25XcmFw
cGVyOjp0aXRsZSgpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJM
RShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKQEAgLTEwNiwxNyArMTE0LDE0IEBAIGNvbnN0IFFTdHJp
bmcgTm90aWZpY2F0aW9uV3JhcHBlcjo6bWVzc2EKICAgICByZXR1cm4gUVN0cmluZygpOwogfQog
Ci1jb25zdCBRQnl0ZUFycmF5IE5vdGlmaWNhdGlvbldyYXBwZXI6Omljb25EYXRhKCkgY29uc3QK
K2NvbnN0IFFVcmwgTm90aWZpY2F0aW9uV3JhcHBlcjo6aWNvblVybCgpIGNvbnN0CiB7Ci0gICAg
UUJ5dGVBcnJheSBpY29uRGF0YTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0g
Tm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpLT5u
b3RpZmljYXRpb25Gb3JXcmFwcGVyKHRoaXMpOwotICAgIGlmIChub3RpZmljYXRpb24pIHsKLSAg
ICAgICAgaWYgKG5vdGlmaWNhdGlvbi0+aWNvbkRhdGEoKSkKLSAgICAgICAgICAgIGljb25EYXRh
ID0gUUJ5dGVBcnJheTo6ZnJvbVJhd0RhdGEobm90aWZpY2F0aW9uLT5pY29uRGF0YSgpLT5kYXRh
KCksIG5vdGlmaWNhdGlvbi0+aWNvbkRhdGEoKS0+c2l6ZSgpKTsKLSAgICB9CisgICAgaWYgKG5v
dGlmaWNhdGlvbikKKyAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+aWNvblVSTCgpOwogI2Vu
ZGlmCi0gICAgcmV0dXJuIGljb25EYXRhOworICAgIHJldHVybiBRVXJsKCk7CiB9CiAKIGNvbnN0
IFFVcmwgTm90aWZpY2F0aW9uV3JhcHBlcjo6b3BlbmVyUGFnZVVybCgpIGNvbnN0CkBAIC0xNzks
MTUgKzE4NCwxMSBAQCBib29sIE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjpzaG93CiAg
ICAgICAgIHJlbW92ZVJlcGxhY2VkTm90aWZpY2F0aW9uRnJvbVF1ZXVlKG5vdGlmaWNhdGlvbik7
CiAgICAgaWYgKGR1bXBOb3RpZmljYXRpb24pCiAgICAgICAgIGR1bXBTaG93VGV4dChub3RpZmlj
YXRpb24pOwotICAgIFFCeXRlQXJyYXkgaWNvbkRhdGE7Ci0gICAgaWYgKG5vdGlmaWNhdGlvbi0+
aWNvbkRhdGEoKSkKLSAgICAgICAgaWNvbkRhdGEgPSBRQnl0ZUFycmF5Ojpmcm9tUmF3RGF0YShu
b3RpZmljYXRpb24tPmljb25EYXRhKCktPmRhdGEoKSwgbm90aWZpY2F0aW9uLT5pY29uRGF0YSgp
LT5zaXplKCkpOwotICAgIGRpc3BsYXlOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBpY29uRGF0
YSk7Ci0gICAgbm90aWZpY2F0aW9uLT5yZWxlYXNlSWNvbkRhdGEoKTsKKyAgICBkaXNwbGF5Tm90
aWZpY2F0aW9uKG5vdGlmaWNhdGlvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgTm90
aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50UXQ6OmRpc3BsYXlOb3RpZmljYXRpb24oTm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24sIGNvbnN0IFFCeXRlQXJyYXkmIGJ5dGVzKQordm9pZCBOb3RpZmlj
YXRpb25QcmVzZW50ZXJDbGllbnRRdDo6ZGlzcGxheU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24q
IG5vdGlmaWNhdGlvbikKIHsKICAgICBOb3RpZmljYXRpb25XcmFwcGVyKiB3cmFwcGVyID0gbmV3
IE5vdGlmaWNhdGlvbldyYXBwZXIoKTsKICAgICBtX25vdGlmaWNhdGlvbnMuaW5zZXJ0KG5vdGlm
aWNhdGlvbiwgd3JhcHBlcik7CkBAIC0yMDgsMTYgKzIwOSwxMSBAQCB2b2lkIE5vdGlmaWNhdGlv
blByZXNlbnRlckNsaWVudFF0OjpkaXNwCiAjaWZuZGVmIFFUX05PX1NZU1RFTVRSQVlJQ09OCiAg
ICAgICAgIGlmICghZHVtcE5vdGlmaWNhdGlvbikKICAgICAgICAgICAgIHdyYXBwZXItPm1fY2xv
c2VUaW1lci5zdGFydE9uZVNob3Qobm90aWZpY2F0aW9uVGltZW91dCk7Ci0gICAgICAgIFFQaXht
YXAgcGl4bWFwOwotICAgICAgICBpZiAoYnl0ZXMubGVuZ3RoKCkgJiYgcGl4bWFwLmxvYWRGcm9t
RGF0YShieXRlcykpIHsKLSAgICAgICAgICAgIFFJY29uIGljb24ocGl4bWFwKTsKLSAgICAgICAg
ICAgIHdyYXBwZXItPm1fbm90aWZpY2F0aW9uSWNvbiA9IGFkb3B0UHRyKG5ldyBRU3lzdGVtVHJh
eUljb24oaWNvbikpOwotICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHdyYXBwZXItPm1fbm90
aWZpY2F0aW9uSWNvbiA9IGFkb3B0UHRyKG5ldyBRU3lzdGVtVHJheUljb24oKSk7CiAjZW5kaWYK
ICAgICB9CiAKLSAgICBzZW5kRXZlbnQobm90aWZpY2F0aW9uLCAiZGlzcGxheSIpOworICAgIHdy
YXBwZXItPm1fZGlzcGxheUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOwogCiAgICAgLy8gTWFr
ZSBzdXJlIHRoZSBub3RpZmljYXRpb24gd2FzIG5vdCBjYW5jZWxsZWQgZHVyaW5nIGhhbmRsaW5n
IHRoZSBkaXNwbGF5IGV2ZW50CiAgICAgaWYgKG1fbm90aWZpY2F0aW9ucy5maW5kKG5vdGlmaWNh
dGlvbikgPT0gbV9ub3RpZmljYXRpb25zLmVuZCgpKQpAQCAtMzg0LDYgKzM4MCwxNCBAQCB2b2lk
IE5vdGlmaWNhdGlvblByZXNlbnRlckNsaWVudFF0OjphbGxvCiAgICAgbV9wZW5kaW5nUGVybWlz
c2lvblJlcXVlc3RzLnJlbW92ZShpdGVyLmtleSgpKTsKIH0KIAordm9pZCBOb3RpZmljYXRpb25Q
cmVzZW50ZXJDbGllbnRRdDo6c2VuZERpc3BsYXlFdmVudChOb3RpZmljYXRpb25XcmFwcGVyKiB3
cmFwcGVyKQoreworICAgIE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uID0gbm90aWZpY2F0aW9u
Rm9yV3JhcHBlcih3cmFwcGVyKTsKKyAgICBpZiAobm90aWZpY2F0aW9uKQorICAgICAgICBzZW5k
RXZlbnQobm90aWZpY2F0aW9uLCAiZGlzcGxheSIpOworfQorCisKIHZvaWQgTm90aWZpY2F0aW9u
UHJlc2VudGVyQ2xpZW50UXQ6OnNlbmRFdmVudChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCiB7CiAgICAgaWYgKG5vdGlmaWNhdGlvbi0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50
UXQuaAkocmV2aXNpb24gMTE0OTYxKQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw5
ICs1OSwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBjbG9zZShU
aW1lcjxOb3RpZmljYXRpb25XcmFwcGVyPiopOworICAgIHZvaWQgc2VuZERpc3BsYXlFdmVudChU
aW1lcjxOb3RpZmljYXRpb25XcmFwcGVyPiopOwogICAgIGNvbnN0IFFTdHJpbmcgdGl0bGUoKSBj
b25zdDsKICAgICBjb25zdCBRU3RyaW5nIG1lc3NhZ2UoKSBjb25zdDsKLSAgICBjb25zdCBRQnl0
ZUFycmF5IGljb25EYXRhKCkgY29uc3Q7CisgICAgY29uc3QgUVVybCBpY29uVXJsKCkgY29uc3Q7
CiAgICAgY29uc3QgUVVybCBvcGVuZXJQYWdlVXJsKCkgY29uc3Q7CiAKIHB1YmxpYyBRX1NMT1RT
OgpAQCAtNzUsNiArNzYsNyBAQCBwdWJsaWM6CiAKICAgICBPd25QdHI8UVdlYk5vdGlmaWNhdGlv
blByZXNlbnRlcj4gbV9wcmVzZW50ZXI7CiAgICAgVGltZXI8Tm90aWZpY2F0aW9uV3JhcHBlcj4g
bV9jbG9zZVRpbWVyOworICAgIFRpbWVyPE5vdGlmaWNhdGlvbldyYXBwZXI+IG1fZGlzcGxheUV2
ZW50VGltZXI7CiB9OwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKQEAgLTEwOCwxMCArMTEwLDExIEBAIHB1YmxpYzoKICAgICBOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbkZvcldyYXBwZXIoY29uc3QgTm90aWZpY2F0aW9uV3JhcHBl
ciopIGNvbnN0OwogICAgIHZvaWQgbm90aWZpY2F0aW9uQ2xpY2tlZChOb3RpZmljYXRpb25XcmFw
cGVyKik7CiAgICAgdm9pZCBub3RpZmljYXRpb25DbGlja2VkKGNvbnN0IFFTdHJpbmcmIHRpdGxl
KTsKKyAgICB2b2lkIHNlbmREaXNwbGF5RXZlbnQoTm90aWZpY2F0aW9uV3JhcHBlciopOwogCiBw
cml2YXRlOgogICAgIHZvaWQgc2VuZEV2ZW50KE5vdGlmaWNhdGlvbiosIGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnROYW1lKTsKLSAgICB2b2lkIGRpc3BsYXlOb3RpZmljYXRpb24oTm90aWZpY2F0
aW9uKiwgY29uc3QgUUJ5dGVBcnJheSYpOworICAgIHZvaWQgZGlzcGxheU5vdGlmaWNhdGlvbihO
b3RpZmljYXRpb24qKTsKICAgICB2b2lkIHJlbW92ZVJlcGxhY2VkTm90aWZpY2F0aW9uRnJvbVF1
ZXVlKE5vdGlmaWNhdGlvbiopOwogICAgIHZvaWQgZGV0YWNoTm90aWZpY2F0aW9uKE5vdGlmaWNh
dGlvbiopOwogICAgIHZvaWQgZHVtcFJlcGxhY2VkSWRUZXh0KE5vdGlmaWNhdGlvbiopOwpJbmRl
eDogU291cmNlL1dlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3RpZmljYXRp
b25QcmVzZW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvZXhhbXBsZXMv
cGxhdGZvcm1wbHVnaW4vV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmNwcAkocmV2aXNpb24gMTE0
OTYxKQorKysgU291cmNlL1dlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9XZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMyArMzksNyBAQCB2
b2lkIFdlYk5vdGlmaWNhdGlvbldpZGdldDo6c2hvd05vdGlmaWNhCiAgICAgUUdyaWRMYXlvdXQq
IGxheW91dCA9IG5ldyBRR3JpZExheW91dCh0aGlzKTsKICAgICBsYXlvdXQtPmFkZFdpZGdldChu
ZXcgUUxhYmVsKGRhdGEtPnRpdGxlKCkpLCAwLCAwLCAxLCA1KTsKICAgICBpbnQgbWVzc2FnZVBv
c2l0aW9uID0gMDsKLSAgICBRUGl4bWFwIHBpeG1hcDsKLSAgICBpZiAoZGF0YS0+aWNvbkRhdGEo
KS5sZW5ndGgoKSAmJiBwaXhtYXAubG9hZEZyb21EYXRhKGRhdGEtPmljb25EYXRhKCkpKSB7Ci0g
ICAgICAgIFFMYWJlbCogbGFiZWwgPSBuZXcgUUxhYmVsOwotICAgICAgICBsYWJlbC0+c2V0UGl4
bWFwKHBpeG1hcCk7Ci0gICAgICAgIGxheW91dC0+YWRkV2lkZ2V0KGxhYmVsLCAxLCAwLCAxLCAx
KTsKLSAgICAgICAgbWVzc2FnZVBvc2l0aW9uKys7Ci0gICAgfQorCiAgICAgUUxhYmVsKiBtZXNz
YWdlTGFiZWwgPSBuZXcgUUxhYmVsKGRhdGEtPm1lc3NhZ2UoKSk7CiAgICAgbWVzc2FnZUxhYmVs
LT5zZXRNYXNrKGJpdG1hcCk7CiAgICAgbWVzc2FnZUxhYmVsLT5zZXRXb3JkV3JhcCh0cnVlKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvZXhhbXBsZXMvcGxhdGZvcm1wbHVnaW4vcXdlYmtpdHBs
YXRmb3JtcGx1Z2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9leGFtcGxlcy9w
bGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZvcm1wbHVnaW4uaAkocmV2aXNpb24gMTE0OTYxKQor
KysgU291cmNlL1dlYktpdC9xdC9leGFtcGxlcy9wbGF0Zm9ybXBsdWdpbi9xd2Via2l0cGxhdGZv
cm1wbHVnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGNvbnN0IFFTdHJpbmcgdGl0bGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBj
b25zdCBRU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBjb25zdCBRQnl0
ZUFycmF5IGljb25EYXRhKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgUVVybCBpY29u
VXJsKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUVVybCBvcGVuZXJQYWdlVXJsKCkg
Y29uc3QgPSAwOwogfTsKIApAQCAtMTgwLDcgKzE4MCw3IEBAIHB1YmxpYzoKIH07CiAKIFFUX0JF
R0lOX05BTUVTUEFDRQotUV9ERUNMQVJFX0lOVEVSRkFDRShRV2ViS2l0UGxhdGZvcm1QbHVnaW4s
ICJjb20ubm9raWEuUXQuV2ViS2l0LlBsYXRmb3JtUGx1Z2luLzEuOCIpOworUV9ERUNMQVJFX0lO
VEVSRkFDRShRV2ViS2l0UGxhdGZvcm1QbHVnaW4sICJjb20ubm9raWEuUXQuV2ViS2l0LlBsYXRm
b3JtUGx1Z2luLzEuOSIpOwogUVRfRU5EX05BTUVTUEFDRQogCiAjZW5kaWYgLy8gUVdFQktJVFBM
QVRGT1JNUExVR0lOX0gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138543</attachid>
            <date>2012-04-24 05:43:16 -0700</date>
            <delta_ts>2012-04-24 18:09:28 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>80700.patch</filename>
            <type>text/plain</type>
            <size>19068</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDExNTAzNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA0LTI0ICBZYWVsIEFoYXJvbiAgPHlh
ZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIE1vdmUgbm90aWZpY2F0aW9uIGlj
b24gZG93bmxvYWQgb3V0IG9mIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwNzAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucyBhZnRlciB0
aGUgY29kZSB0aGUgdGVzdHMgd2VyZSB0ZXN0aW5nIGhhcyBiZWVuIHJlbW92ZWQuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnM6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZG9lcy1ub3QtZXhpc3QtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWRvZXMtbm90LWV4
aXN0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2lj
b24tZXhpc3RzLWNhbmNlbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3RzLWNhbmNlbC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWV4aXN0cy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3Rz
LXNob3ctYWxlcnQtZHVyaW5nLWxvYWQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWV4aXN0cy1zaG93LWFsZXJ0LWR1cmluZy1s
b2FkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2lj
b24tZXhpc3RzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRp
b25zL2ljb24tcmVxdWlyZXMtYXV0aC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tcmVxdWlyZXMtYXV0aC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXM6IFJlbW92ZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Jlc291cmNlcy9pY29uLWV4aXN0
cy5wbmc6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Jlc291
cmNlcy9pY29uLXJlcXVpcmVzLWF1dGgucGhwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
U2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0LTUu
MC13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBw
ZWQ6CisKIDIwMTItMDQtMjQgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVu
aUBsaW51eC5pbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gW0RSVF0gRW5hYmxlIHBhc3Npbmcg
c3B1dG5payB0ZXN0cwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25z
L2ljb24tZG9lcy1ub3QtZXhpc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWRvZXMtbm90LWV4aXN0LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTE1MDMzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmlj
YXRpb25zL2ljb24tZG9lcy1ub3QtZXhpc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzAsMCBAQAotREVTS1RPUCBOT1RJRklDQVRJT046IGljb24gaHR0cDovLzEyNy4wLjAu
MTo4MDAwL25vdGlmaWNhdGlvbnMvcmVzb3VyY2VzL2ljb24tZG9lcy1ub3QtZXhpc3QucGhwLCB0
aXRsZSBOZXcgRS1tYWlsLCB0ZXh0IE1lZXQgbWUgdG9uaWdodCBhdCA4IQotU2VuZGluZyBub3Rp
ZmljYXRpb25zIHdpdGggbWlzc2luZyBpY29uLiBUaGUgbG9hZCB3b3VsZCBmYWlsLCBidXQgdGhl
IG5vdGlmaWNhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkLgotCi1QQVNTOiBkaXNwbGF5IGV2ZW50
IGludm9rZWQuCi0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9p
Y29uLWRvZXMtbm90LWV4aXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZG9lcy1ub3QtZXhpc3QuaHRtbAkocmV2aXNpb24gMTE1
MDMzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZG9lcy1u
b3QtZXhpc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotICAgICAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKLSAgICAgICAgewotICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsg
Ijxicj4iOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ncmFudERlc2t0b3BOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKCJodHRwOi8vMTI3LjAuMC4xIik7Ci0gICAgICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgaWYgKCF3aW5kb3cud2Via2l0Tm90aWZpY2F0aW9ucykgewotICAgICAgICAgICAgICAg
IGxvZygiRkFJTDogTm8gd2Via2l0Tm90aWZpY2F0aW9ucyBpbnRlcmZhY2UhIik7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZhciBOID0gd2luZG93LndlYmtpdE5v
dGlmaWNhdGlvbnMuY3JlYXRlTm90aWZpY2F0aW9uKCJyZXNvdXJjZXMvaWNvbi1kb2VzLW5vdC1l
eGlzdC5waHAiLCAiTmV3IEUtbWFpbCIsICJNZWV0IG1lIHRvbmlnaHQgYXQgOCEiKTsKLQotICAg
ICAgICAgICAgTi5vbmRpc3BsYXkgPSBmdW5jdGlvbigpIHsgbG9nKCJQQVNTOiBkaXNwbGF5IGV2
ZW50IGludm9rZWQuIik7IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTt9Ci0gICAg
ICAgICAgICBOLnNob3coKTsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cD5TZW5kaW5nIG5vdGlmaWNhdGlvbnMgd2l0aCBtaXNzaW5nIGljb24uIFRoZSBsb2Fk
IHdvdWxkIGZhaWwsIGJ1dCB0aGUgbm90aWZpY2F0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQuPC9w
PgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4gICAgCi0gICAgCi08c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci1ydW5UZXN0cygpOwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvaWNvbi1leGlzdHMtY2Fu
Y2VsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25v
dGlmaWNhdGlvbnMvaWNvbi1leGlzdHMtY2FuY2VsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTE1
MDMzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3Rz
LWNhbmNlbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMCwwIEBACi1ERVNL
VE9QIE5PVElGSUNBVElPTjogaWNvbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbm90aWZpY2F0aW9u
cy9yZXNvdXJjZXMvaWNvbi1leGlzdHMucG5nLCB0aXRsZSBTZWNvbmQgRS1tYWlsLCB0ZXh0IEFj
dHVhbGx5LCBtZWV0IG1lIHRvbmlnaHQgYXQgOSEKLVNlbmRpbmcgbm90aWZpY2F0aW9uLCBjYW5j
ZWxsaW5nIGl0IHdoaWxlIHRoZSBpY29uIGlzIGxvYWRpbmcgYW5kIHNlbmRpbmcgYSBzZWNvbmQg
bm90aWZpY2F0aW9uLiBPbmx5IHRoZSBzZWNvbmQgbm90aWZpY2F0aW9uIHNob3VsZCBiZSBkaXNw
bGF5ZWQKLQotUEFTUzogZGlzcGxheSBldmVudCBpbnZva2VkLgotCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvaWNvbi1leGlzdHMtY2FuY2VsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3Rz
LWNhbmNlbC5odG1sCShyZXZpc2lvbiAxMTUwMzMpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMvaWNvbi1leGlzdHMtY2FuY2VsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICAgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQi
KS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+IjsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbigiaHR0cDovLzEyNy4w
LjAuMSIpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghd2luZG93LndlYmtpdE5vdGlmaWNh
dGlvbnMpIHsKLSAgICAgICAgICAgICAgICBsb2coIkZBSUw6IE5vIHdlYmtpdE5vdGlmaWNhdGlv
bnMgaW50ZXJmYWNlISIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFyIE4gPSB3aW5k
b3cud2Via2l0Tm90aWZpY2F0aW9ucy5jcmVhdGVOb3RpZmljYXRpb24oInJlc291cmNlcy9pY29u
LWV4aXN0cy5wbmciLCAiTmV3IEUtbWFpbCIsICJNZWV0IG1lIHRvbmlnaHQgYXQgOCEiKTsKLSAg
ICAgICAgICAgIE4ub25kaXNwbGF5ID0gZnVuY3Rpb24oKSB7IGxvZygiRkFJTDogZGlzcGxheSBl
dmVudCBpbnZva2VkLiIpOyBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7IH0KLSAg
ICAgICAgICAgIE4ub25jbG9zZSA9IGZ1bmN0aW9uKCkgeyBsb2coIkZBSUw6IGNsb3NlIGV2ZW50
IGludm9rZWQuIik7IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsgfQotICAgICAg
ICAgICAgTi5zaG93KCk7Ci0gICAgICAgICAgICBOLmNhbmNlbCgpOwotICAgICAgICAgICAgdmFy
IG90aGVyID0gd2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMuY3JlYXRlTm90aWZpY2F0aW9uKCJy
ZXNvdXJjZXMvaWNvbi1leGlzdHMucG5nIiwgIlNlY29uZCBFLW1haWwiLCAiQWN0dWFsbHksIG1l
ZXQgbWUgdG9uaWdodCBhdCA5ISIpOwotICAgICAgICAgICAgb3RoZXIub25kaXNwbGF5ID0gZnVu
Y3Rpb24oKSB7IGxvZygiUEFTUzogZGlzcGxheSBldmVudCBpbnZva2VkLiIpOyBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7IH0KLSAgICAgICAgICAgIG90aGVyLnNob3coKTsKLSAg
ICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5TZW5kaW5nIG5vdGlm
aWNhdGlvbiwgY2FuY2VsbGluZyBpdCB3aGlsZSB0aGUgaWNvbiBpcyBsb2FkaW5nIGFuZCBzZW5k
aW5nIGEgc2Vjb25kIG5vdGlmaWNhdGlvbi4gT25seSB0aGUgc2Vjb25kIG5vdGlmaWNhdGlvbiBz
aG91bGQgYmUgZGlzcGxheWVkPC9wPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4gICAgCi0gICAg
Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1ydW5UZXN0cygpOwotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNh
dGlvbnMvaWNvbi1leGlzdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWV4aXN0cy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDExNTAzMykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29u
LWV4aXN0cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMCwwIEBACi1ERVNL
VE9QIE5PVElGSUNBVElPTjogaWNvbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbm90aWZpY2F0aW9u
cy9yZXNvdXJjZXMvaWNvbi1leGlzdHMucG5nLCB0aXRsZSBOZXcgRS1tYWlsLCB0ZXh0IE1lZXQg
bWUgdG9uaWdodCBhdCA4IQotU2VuZGluZyBub3RpZmljYXRpb25zIHdpdGggYW4gaWNvbi4gVGhl
IGljb24gc2hvdWxkIGJlIGxvYWRlZC4KLQotUEFTUzogZGlzcGxheSBldmVudCBpbnZva2VkLgot
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvaWNvbi1leGlzdHMt
c2hvdy1hbGVydC1kdXJpbmctbG9hZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3RzLXNob3ctYWxlcnQtZHVy
aW5nLWxvYWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTUwMzMpCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvaWNvbi1leGlzdHMtc2hvdy1hbGVydC1kdXJpbmctbG9h
ZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMCwwIEBACi1BTEVSVDogTG9h
ZCBzaG91bGQgYmUgZGVmZXJyZWQgZHVlIHRvIGFsZXJ0Ci1ERVNLVE9QIE5PVElGSUNBVElPTjog
aWNvbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbm90aWZpY2F0aW9ucy9yZXNvdXJjZXMvaWNvbi1l
eGlzdHMucG5nLCB0aXRsZSBOZXcgRS1tYWlsLCB0ZXh0IE1lZXQgbWUgdG9uaWdodCBhdCA4IQot
U2VuZGluZyBub3RpZmljYXRpb24sIGFuZCB0aGVuIGFsZXJ0LiBMb2FkIHNob3VsZCBiZSBkZWZl
cnJlZCBidXQgY29udGludWUgYWZ0ZXIgdGhlIGFsZXJ0LgotCi1QQVNTOiBkaXNwbGF5IGV2ZW50
IGludm9rZWQuCi0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9p
Y29uLWV4aXN0cy1zaG93LWFsZXJ0LWR1cmluZy1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3RzLXNob3ctYWxlcnQt
ZHVyaW5nLWxvYWQuaHRtbAkocmV2aXNpb24gMTE1MDMzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ub3RpZmljYXRpb25zL2ljb24tZXhpc3RzLXNob3ctYWxlcnQtZHVyaW5nLWxvYWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKLSAgICAgICAgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwotICAg
ICAgICB9Ci0gICAgICAgIAotICAgICAgICBmdW5jdGlvbiBydW5UZXN0cygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJt
aXNzaW9uKCJodHRwOi8vMTI3LjAuMC4xIik7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCF3
aW5kb3cud2Via2l0Tm90aWZpY2F0aW9ucykgewotICAgICAgICAgICAgICAgIGxvZygiRkFJTDog
Tm8gd2Via2l0Tm90aWZpY2F0aW9ucyBpbnRlcmZhY2UhIik7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2YXIgTiA9IHdpbmRvdy53ZWJraXROb3RpZmljYXRpb25zLmNyZWF0ZU5vdGlmaWNh
dGlvbigicmVzb3VyY2VzL2ljb24tZXhpc3RzLnBuZyIsICJOZXcgRS1tYWlsIiwgIk1lZXQgbWUg
dG9uaWdodCBhdCA4ISIpOwotICAgICAgICAgICAgTi5vbmRpc3BsYXkgPSBmdW5jdGlvbigpIHsg
bG9nKCJQQVNTOiBkaXNwbGF5IGV2ZW50IGludm9rZWQuIik7IGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsgfQotICAgICAgICAgICAgTi5zaG93KCk7Ci0gICAgICAgICAgICBhbGVy
dCgiTG9hZCBzaG91bGQgYmUgZGVmZXJyZWQgZHVlIHRvIGFsZXJ0Iik7Ci0gICAgICAgIH0KLSAg
ICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+U2VuZGluZyBub3RpZmljYXRpb24sIGFu
ZCB0aGVuIGFsZXJ0LiBMb2FkIHNob3VsZCBiZSBkZWZlcnJlZCBidXQgY29udGludWUgYWZ0ZXIg
dGhlIGFsZXJ0LjwvcD4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+ICAgIAotICAgIAotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotcnVuVGVzdHMoKTsKLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL2lj
b24tZXhpc3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3Rp
ZmljYXRpb25zL2ljb24tZXhpc3RzLmh0bWwJKHJldmlzaW9uIDExNTAzMykKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWV4aXN0cy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDM2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgICAgIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQotICAgICAgICB7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0IikuaW5uZXJIVE1MICs9IG1lc3NhZ2UgKyAiPGJyPiI7Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oImh0dHA6
Ly8xMjcuMC4wLjEiKTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIXdpbmRvdy53ZWJraXRO
b3RpZmljYXRpb25zKSB7Ci0gICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBObyB3ZWJraXROb3Rp
ZmljYXRpb25zIGludGVyZmFjZSEiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgdmFyIE4gPSB3aW5kb3cud2Via2l0Tm90aWZpY2F0aW9ucy5jcmVhdGVOb3RpZmlj
YXRpb24oInJlc291cmNlcy9pY29uLWV4aXN0cy5wbmciLCAiTmV3IEUtbWFpbCIsICJNZWV0IG1l
IHRvbmlnaHQgYXQgOCEiKTsKLSAgICAgICAgICAgIE4ub25kaXNwbGF5ID0gZnVuY3Rpb24oKSB7
IGxvZygiUEFTUzogZGlzcGxheSBldmVudCBpbnZva2VkLiIpOyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7fQotICAgICAgICAgICAgTi5zaG93KCk7Ci0gICAgICAgIH0KLSAgICA8
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+U2VuZGluZyBub3RpZmljYXRpb25zIHdpdGgg
YW4gaWNvbi4gVGhlIGljb24gc2hvdWxkIGJlIGxvYWRlZC48L3A+Ci08ZGl2IGlkPSJyZXN1bHQi
PjwvZGl2PiAgICAKLSAgICAKLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXJ1blRl
c3RzKCk7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLXJlcXVpcmVzLWF1dGgtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLXJl
cXVpcmVzLWF1dGgtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMTUwMzMpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvaWNvbi1yZXF1aXJlcy1hdXRoLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICswLDAgQEAKLURFU0tUT1AgTk9USUZJQ0FUSU9OOiBp
Y29uIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9ub3RpZmljYXRpb25zL3Jlc291cmNlcy9pY29uLXJl
cXVpcmVzLWF1dGgucGhwLCB0aXRsZSBOZXcgRS1tYWlsLCB0ZXh0IE1lZXQgbWUgdG9uaWdodCBh
dCA4IQotU2VuZGluZyBub3RpZmljYXRpb24gdGhhdCByZXF1aXJlcyBhdXRoZW50aWNhdGlvbi4g
VGhlIGxvYWQgd291bGQgZmFpbCwgYnV0IHRoZSBub3RpZmljYXRpb24gd291bGQgYmUgZGlzcGxh
eWVkLgotCi1QQVNTOiBkaXNwbGF5IGV2ZW50IGludm9rZWQuCi0KSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLXJlcXVpcmVzLWF1dGguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvaWNvbi1yZXF1aXJl
cy1hdXRoLmh0bWwJKHJldmlzaW9uIDExNTAzMykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9pY29uLXJlcXVpcmVzLWF1dGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwzNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgICAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkK
LSAgICAgICAgewotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIp
LmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBmdW5jdGlvbiBydW5UZXN0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKCJodHRwOi8vMTI3LjAu
MC4xIik7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCF3aW5kb3cud2Via2l0Tm90aWZpY2F0
aW9ucykgewotICAgICAgICAgICAgICAgIGxvZygiRkFJTDogTm8gd2Via2l0Tm90aWZpY2F0aW9u
cyBpbnRlcmZhY2UhIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHZhciBOID0gd2luZG93LndlYmtpdE5vdGlmaWNhdGlvbnMuY3JlYXRlTm90aWZpY2F0aW9uKCJy
ZXNvdXJjZXMvaWNvbi1yZXF1aXJlcy1hdXRoLnBocCIsICJOZXcgRS1tYWlsIiwgIk1lZXQgbWUg
dG9uaWdodCBhdCA4ISIpOwotICAgICAgICAgICAgTi5vbmRpc3BsYXkgPSBmdW5jdGlvbigpIHsg
bG9nKCJQQVNTOiBkaXNwbGF5IGV2ZW50IGludm9rZWQuIik7IGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTt9Ci0gICAgICAgICAgICBOLnNob3coKTsKLSAgICAgICAgfQotICAgIDwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5TZW5kaW5nIG5vdGlmaWNhdGlvbiB0aGF0IHJl
cXVpcmVzIGF1dGhlbnRpY2F0aW9uLiBUaGUgbG9hZCB3b3VsZCBmYWlsLCBidXQgdGhlIG5vdGlm
aWNhdGlvbiB3b3VsZCBiZSBkaXNwbGF5ZWQuPC9wPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4g
ICAgCi0gICAgCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1ydW5UZXN0cygpOwot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMvcmVzb3VyY2VzL2ljb24tZXhpc3RzLnBuZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
aW1hZ2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVz
b3VyY2VzL2ljb24tcmVxdWlyZXMtYXV0aC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3Jlc291cmNlcy9pY29uLXJlcXVpcmVzLWF1dGgucGhw
CShyZXZpc2lvbiAxMTUwMzMpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvcmVzb3VyY2VzL2ljb24tcmVxdWlyZXMtYXV0aC5waHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMCwwIEBACi08P3BocAotICAgaGVhZGVyKCdXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFs
bT0iV2ViS2l0IFRlc3QgUmVhbG0iJyk7Ci0gICBoZWFkZXIoJ0hUVFAvMS4wIDQwMSBVbmF1dGhv
cml6ZWQnKTsKLSAgIGVjaG8gJ0F1dGhlbnRpY2F0aW9uIGNhbmNlbGVkJzsKLSAgIGV4aXQ7Ci0/
PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAkocmV2aXNpb24gMTE1MDMzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03NTIsOSAr
NzUyLDYgQEAgV09OVEZJWCBTS0lQIDogbWVkaWEvdmlkZW8tZG9jdW1lbnQtdHlwZQogV09OVEZJ
WCBTS0lQIDogbWVkaWEvdmlkZW8tZWxlbWVudC1vdGhlci1uYW1lc3BhY2UtY3Jhc2guaHRtbCA9
IFRJTUVPVVQKIFdPTlRGSVggU0tJUCA6IG1lZGlhL3ZpZGVvLXNpemUtaW50cmluc2ljLXNjYWxl
Lmh0bWwgPSBUSU1FT1VUIEZBSUwKIAotLy8gQ2hyb21pdW0gZG9lcyBub3QgdXNlIHRoZSBpY29u
IGxvYWRlciBpbiBXZWJDb3JlIGZvciBsb2FkaW5nIG5vdGlmaWNhdGlvbnMuCi1XT05URklYIFNL
SVAgOiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMgPSBGQUlMCi0KIC8vIERvZXNuJ3QgYXBwbHkg
dG8gQ2hyb21pdW0gKFF1aWNrVGltZS1zcGVjaWZpYyBiZWhhdmlvcikKIFdPTlRGSVggU0tJUCA6
IG1lZGlhL3ZpZGVvLWRvZXMtbm90LWxvb3AuaHRtbCA9IFRJTUVPVVQKIApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQJKHJldmlzaW9uIDExNTAzMykKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC03NjMsNyArNzYzLDYgQEAgaHR0cC90
ZXN0cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZQogCiAjIFRoZSBFRkwgcG9ydCBoYXMg
bm8gc3VwcG9ydCBmb3IgZGVza3RvcCBub3RpZmljYXRpb25zCiBmYXN0L25vdGlmaWNhdGlvbnMK
LWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucwogCiAjIFRoZSBFRkwgcG9ydCBoYXMgbm8gc3VwcG9y
dCBmb3IgV2ViUCBkZWNvZGluZwogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1s
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50
eHQJKHJldmlzaW9uIDExNTAzMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4
cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDYgQEAgQlVHV0tHVEsg
U0tJUCA6IGZhc3QvZG9tL0RldmljZU9yaWVudGF0aQogCiAvLyBEZXNrdG9wIG5vdGlmaWNhdGlv
bnMgYXJlIG5vdCBzdXBwb3J0ZWQuCiBCVUdXS0dUSyBTS0lQIDogZmFzdC9ub3RpZmljYXRpb25z
ID0gRkFJTAotQlVHV0tHVEsgU0tJUCA6IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucyA9IEZBSUwK
IAogLy8gV2UgbGFjayB1c2Vyc2NyaXB0cyBzdXBwb3J0LgogQlVHV0tHVEsgU0tJUCA6IHVzZXJz
Y3JpcHRzID0gRkFJTApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDEx
NTAzMykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw3ICs0Myw2IEBAIGZhc3QvcmVwYWludC9ib2R5LWJhY2tncm91bmQtaW1hZ2UuaHRt
bAogCiAjIFRoaXMgcG9ydCBkb2Vzbid0IHN1cHBvcnQgTm90aWZpY2F0aW9ucy4KIGZhc3Qvbm90
aWZpY2F0aW9ucwotaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zCiAKICMgU2tpcHBlZCB3aGlsZSBF
cmljIENhcmxzb24gd29ya3Mgb24gYSBmaXguCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yODIyMQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdr
Mi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIv
U2tpcHBlZAkocmV2aXNpb24gMTE1MDMzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4w
LXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsOSArMTgwLDYgQEAgc3ZnL2R5bmFt
aWMtdXBkYXRlcwogIyBsYXlvdXRUZXN0Q29udHJvbGxlci5pZ25vcmVEZXNrdG9wTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RzIGlzIHVuaW1wbGVtZW50ZWQKIGZhc3Qvbm90aWZpY2F0aW9u
cwogCi0jIGxheW91dFRlc3RDb250cm9sbGVyLmdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1p
c3Npb24gaXMgdW5pbXBsZW1lbnRlZAotaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zCi0KICMgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0U2Nyb2xsYmFyUG9saWN5IGlzIHVuaW1wbGVtZW50ZWQKIGZh
c3Qvb3ZlcmZsb3cvc2Nyb2xsYmFyLXJlc3RvcmVkLWFuZC10aGVuLWxvY2tlZC5odG1sCiAKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNpb24gMTE1MDMzKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNjQxLDExICs2NDEsNiBA
QCBodHRwL3Rlc3RzL21pc2MvcmVkaXJlY3QtdG8tZXh0ZXJuYWwtdXJsCiAjIEpTQyBkb2VzIG5v
dCBzdXBwb3J0IHNldElzb2xhdGVkV29ybGRTZWN1cml0eU9yaWdpbiAoaHR0cDovL3dlYmtpdC5v
cmcvYi82MTU0MCkKIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1vcmln
aW4teGhyLmh0bWwKIAotIyBbUXRdIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucyB0ZXN0cyBtYWtl
IGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwgZmFpbAot
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE2OTMKLWh0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9pY29uLWRvZXMtbm90LWV4aXN0Lmh0bWwKLWh0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9pY29uLWV4aXN0cy1zaG93LWFsZXJ0LWR1cmluZy1sb2FkLmh0bWwKLQogIyBb
UXRdIG5ldyB0ZXN0IGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQuaHRtbCBpcyBmYWls
aW5nCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI1MgogaHR0
cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC5odG1sCkBAIC02NTQsOSArNjQ5LDYgQEAgaHR0
cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDAxNgogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sCiAKLSMgUkVHUkVT
U0lPTiAocjExNTAxMSkgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODA3MDAKLWh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9pY29uLWV4aXN0cy1jYW5jZWwuaHRtbAot
CiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAjCiAjICAgICAgIEZhaWxpbmcgeG1saHR0cHJlcXVlc3Qg
dGVzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAjCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24g
MTE1MDMzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29w
eSkKQEAgLTgyNyw3ICs4MjcsNiBAQCBmYXN0L2RvbS9HZW9sb2NhdGlvbgogCiAjIFRoaXMgcG9y
dCBkb2Vzbid0IHN1cHBvcnQgTm90aWZpY2F0aW9ucy4KIGZhc3Qvbm90aWZpY2F0aW9ucwotaHR0
cC90ZXN0cy9ub3RpZmljYXRpb25zCiAKICMgVGhlc2UgbWVkaWEgdGVzdHMgcmVncmVzc2VkIG9u
IHRoZSBib3RzLiAgU2tpcHBpbmcgdG8gbWFrZSB0aGUgYm90cyBncmVlbiBhZ2Fpbi4KICMgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjgxCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQJKHJldmlzaW9uIDExNTAzMykKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEzNTIsNyAr
MTM1Miw2IEBAIGZhc3QvZG9tL0dlb2xvY2F0aW9uCiAKICMgVGhpcyBwb3J0IGRvZXNuJ3Qgc3Vw
cG9ydCBOb3RpZmljYXRpb25zLgogZmFzdC9ub3RpZmljYXRpb25zCi1odHRwL3Rlc3RzL25vdGlm
aWNhdGlvbnMKIAogIyBUaGVzZSBtZWRpYSB0ZXN0cyByZWdyZXNzZWQgb24gdGhlIGJvdHMuICBT
a2lwcGluZyB0byBtYWtlIHRoZSBib3RzIGdyZWVuIGFnYWluLgogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyODEK
</data>

          </attachment>
      

    </bug>

</bugzilla>