<?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>168812</bug_id>
          
          <creation_ts>2017-02-23 18:03:51 -0800</creation_ts>
          <short_desc>REGRESSION(r212542): Make TimeSeriesChart.computeTimeGrid stops x-axis grid prematurely</short_desc>
          <delta_ts>2017-02-23 19:14:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Perf Dashboard</component>
          <version>Other</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>168499</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1280603</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-23 18:03:51 -0800</bug_when>
    <thetext>When the time range is too big compared to the available width,
we don&apos;t stop drawing the x-axis grid before reaching the end.

This is a regression from https://trac.webkit.org/changeset/212542</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280604</commentid>
    <comment_count>1</comment_count>
      <attachid>302620</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-23 18:06:05 -0800</bug_when>
    <thetext>Created attachment 302620
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280605</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-23 18:07:26 -0800</bug_when>
    <thetext>Attachment 302620 did not pass style-queue:


ERROR: Source/WebCore/html/HTMLSlotElement.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/dom/Document.cpp:206:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/dom/Document.cpp:209:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/dom/ContainerNode.cpp:142:  Missing spaces around ||  [whitespace/operators] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:552:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:555:  Missing spaces around ||  [whitespace/operators] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:556:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:567:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:622:  Missing spaces around ||  [whitespace/operators] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:685:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:688:  Missing spaces around ||  [whitespace/operators] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:689:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:742:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/dom/ContainerNode.cpp:742:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:748:  Missing spaces around ||  [whitespace/operators] [3]
ERROR: Source/WebCore/dom/ContainerNode.cpp:749:  This { should be at the end of the previous line  [whitespace/braces] [4]
ERROR: Source/WebCore/dom/ContainerNode.cpp:749:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebCore/dom/Document.h:1293:  Missing spaces around ||  [whitespace/operators] [3]
Total errors found: 18 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280606</commentid>
    <comment_count>3</comment_count>
      <attachid>302621</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-23 18:07:29 -0800</bug_when>
    <thetext>Created attachment 302621
Removed superfluous changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280613</commentid>
    <comment_count>4</comment_count>
      <attachid>302621</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-02-23 18:25:49 -0800</bug_when>
    <thetext>Comment on attachment 302621
Removed superfluous changes

View in context: https://bugs.webkit.org/attachment.cgi?id=302621&amp;action=review

rs=me

&gt; Websites/perf.webkit.org/public/v3/components/time-series-chart.js:713
&gt;                  diff: 31 * DAY,

So this is 31 but the others are multiples of 30?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280620</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-23 18:45:22 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 302621 [details]
&gt; Removed superfluous changes
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302621&amp;action=review
&gt; 
&gt; rs=me
&gt; 
&gt; &gt; Websites/perf.webkit.org/public/v3/components/time-series-chart.js:713
&gt; &gt;                  diff: 31 * DAY,
&gt; 
&gt; So this is 31 but the others are multiples of 30?

Yeah, we can change it to 30 but I kept it this way for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280625</commentid>
    <comment_count>6</comment_count>
      <attachid>302621</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-23 19:14:26 -0800</bug_when>
    <thetext>Comment on attachment 302621
Removed superfluous changes

Clearing flags on attachment: 302621

Committed r212935: &lt;http://trac.webkit.org/changeset/212935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280626</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-23 19:14:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302620</attachid>
            <date>2017-02-23 18:06:05 -0800</date>
            <delta_ts>2017-02-23 18:07:29 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>fix168812.patch</filename>
            <type>text/plain</type>
            <size>45361</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9zbG90Y2hhbmdlLWV2ZW50LWJ1YmJs
aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3Rj
aGFuZ2UtZXZlbnQtYnViYmxpbmcuaHRtbAkocmV2aXNpb24gMjEyOTMxKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQtYnViYmxpbmcuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxODcgKzEsNTQgQEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+Ci08aGVh
ZD4KLTx0aXRsZT5TaGFkb3cgRE9NOiBzbG90Y2hhbmdlIGV2ZW50PC90aXRsZT4KLTxtZXRhIG5h
bWU9ImF1dGhvciIgdGl0bGU9IlJ5b3N1a2UgTml3YSIgaHJlZj0ibWFpbHRvOnJuaXdhQHdlYmtp
dC5vcmciPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RvbS5zcGVjLndoYXR3Zy5v
cmcvI3NpZ25hbGluZy1zbG90LWNoYW5nZSI+Cis8Ym9keT4KIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
IDxzY3JpcHQ+CiAKLWZ1bmN0aW9uIGNyZWF0ZV9zbG90Y2hhbmdlX29ic2VydmVyKCkgewotICAg
IGxldCBsb2cgPSBbXTsKLSAgICBjb25zdCBsaXN0ZW5lciA9IGZ1bmN0aW9uIChldmVudCkgewot
ICAgICAgICBsb2cucHVzaCh7bm9kZTogdGhpcywgZXZlbnQ6IGV2ZW50LCBldmVudFR5cGU6IGV2
ZW50LnR5cGUsIGV2ZW50VGFyZ2V0OiBldmVudC50YXJnZXR9KTsKLSAgICB9Ci0gICAgcmV0dXJu
IHsKLSAgICAgICAgb2JzZXJ2ZTogKG5vZGUpID0+IG5vZGUuYWRkRXZlbnRMaXN0ZW5lcignc2xv
dGNoYW5nZScsIGxpc3RlbmVyKSwKLSAgICAgICAgdGFrZUxvZzogKCkgPT4gewotICAgICAgICAg
ICAgY29uc3QgY3VycmVudExvZyA9IGxvZzsKLSAgICAgICAgICAgIGxvZyA9IFtdOwotICAgICAg
ICAgICAgcmV0dXJuIGN1cnJlbnRMb2c7Ci0gICAgICAgIH0KLSAgICB9OwotfQorcHJvbWlzZV90
ZXN0KCgpID0+IHsKKyAgICBjb25zdCBvdXRlckhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdvdXRlci1ob3N0Jyk7CiAKLWZ1bmN0aW9uIGFzc2VydF9zbG90Y2hhbmdlX2xvZyhsb2dFbnRy
eSwgbm9kZSwgdGFyZ2V0LCBkZXNjcmlwdGlvbikgewotICAgIGFzc2VydF9lcXVhbHMobG9nRW50
cnkubm9kZSwgbm9kZSwgZGVzY3JpcHRpb24pOwotICAgIGFzc2VydF9lcXVhbHMobG9nRW50cnku
ZXZlbnRUeXBlLCAnc2xvdGNoYW5nZScsIGRlc2NyaXB0aW9uKTsKLSAgICBhc3NlcnRfZXF1YWxz
KGxvZ0VudHJ5LmV2ZW50VGFyZ2V0LCB0YXJnZXQsIGRlc2NyaXB0aW9uKTsKLX0KKyAgICBjb25z
dCBvdXRlclNoYWRvdyA9IG91dGVySG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogJ29wZW4nfSk7
CisgICAgb3V0ZXJTaGFkb3cuaW5uZXJIVE1MID0gJzxpbm5lci1ob3N0PjxzbG90Pjwvc2xvdD48
L2lubmVyLWhvc3Q+JzsKIAotZnVuY3Rpb24gdGVzdF9zbG90Y2hhbmdlX2V2ZW50X2J1YmJsZXMo
bW9kZSwgY29ubmVjdGVkKSB7Ci0gICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKLSAgICAgICAgY29u
c3QgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgICAgICBpZiAoY29u
bmVjdGVkKQotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKKyAg
ICBjb25zdCBpbm5lclNoYWRvdyA9IG91dGVyU2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ2lubmVyLWhv
c3QnKS5hdHRhY2hTaGFkb3coeydtb2RlJzogJ29wZW4nfSk7CisgICAgaW5uZXJTaGFkb3cuaW5u
ZXJIVE1MID0gJzxzbG90Pjwvc2xvdD4nOworICAgIGNvbnN0IGlubmVyU2xvdCA9IGlubmVyU2hh
ZG93LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKTsKIAotICAgICAgICBjb25zdCBzaGFkb3dSb290ID0g
aG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogbW9kZX0pOwotICAgICAgICBzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8ZGl2PjxzbG90Pjwvc2xvdD48L2Rpdj4nOwotICAgICAgICBjb25zdCBjb250
YWluZXIgPSBzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpOwotICAgICAgICBjb25zdCBz
bG90ID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdzbG90Jyk7CisgICAgY29uc3QgbGlzdGVu
ZXIgPSBmdW5jdGlvbiAoKSB7IH0KKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzbG90
Y2hhbmdlJywgbGlzdGVuZXIpOworICAgIGlubmVyU2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90
Y2hhbmdlJywgbGlzdGVuZXIpOwogCi0gICAgICAgIGNvbnN0IG9ic2VydmVyID0gY3JlYXRlX3Ns
b3RjaGFuZ2Vfb2JzZXJ2ZXIoKTsKLSAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShzbG90KTsKLSAg
ICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShjb250YWluZXIpOwotICAgICAgICBvYnNlcnZlci5vYnNl
cnZlKHNoYWRvd1Jvb3QpOwotICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGhvc3QpOwotICAgICAg
ICBvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50KTsKLSAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh3
aW5kb3cpOworICAgIG91dGVySG9zdC50ZXh0Q29udGVudCA9ICcgJzsKKyAgICByZXR1cm4gUHJv
bWlzZS5yZXNvbHZlZCgpOworfSwgJycpOworLyoKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotICAgICAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGNvbnRhaW5lcik7Ci0gICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnc3BhbicpKTsKLSAgICAgICAgaG9zdC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdiJykpOworcnVuVGVzdCA9ICgpID0+IHsKKyAgICBjb25zdCBvdXRlckhv
c3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvdXRlci1ob3N0Jyk7CiAKLSAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhvYnNlcnZlci50YWtlTG9nKCksIFtdLCAnc2xvdGNoYW5nZSBldmVu
dCBtdXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0gICAgICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IGxvZyA9IG9ic2Vy
dmVyLnRha2VMb2coKTsKKyAgICBjb25zdCBvdXRlclNoYWRvdyA9IG91dGVySG9zdC5hdHRhY2hT
aGFkb3coeydtb2RlJzogJ29wZW4nfSk7CisgICAgb3V0ZXJTaGFkb3cuaW5uZXJIVE1MID0gJzxk
aXY+PGlubmVyLWhvc3Q+PHNsb3Q+PC9zbG90PjwvaW5uZXItaG9zdD48L2Rpdj4nOwogCi0gICAg
ICAgICAgICBjb25zdCBldmVudHMgPSBuZXcgU2V0KGxvZy5tYXAoKGVudHJ5KSA9PiBlbnRyeS5l
dmVudCkpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhldmVudHMuc2l6ZSwgMSwgJ011dGF0
aW5nIHRoZSBhc3NpZ25lZCBjb250ZW50IG9mIGEgc2xvdCBtdXN0IGZpcmUgZXhhY3RseSBvbmUg
c2xvdGNoYW5nZSBldmVudCcpOworICAgIGNvbnN0IGlubmVySG9zdCA9IG91dGVyU2hhZG93LnF1
ZXJ5U2VsZWN0b3IoJ2lubmVyLWhvc3QnKTsKKyAgICBjb25zdCBpbm5lclNoYWRvdyA9IGlubmVy
SG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogJ29wZW4nfSk7CisgICAgaW5uZXJTaGFkb3cuaW5u
ZXJIVE1MID0gJzxkaXY+PHNsb3Q+PC9zbG90PjwvZGl2Pic7CisgICAgY29uc3QgaW5uZXJTbG90
ID0gaW5uZXJTaGFkb3cucXVlcnlTZWxlY3Rvcignc2xvdCcpOwogCi0gICAgICAgICAgICBhc3Nl
cnRfc2xvdGNoYW5nZV9sb2cobG9nWzBdLCBzbG90LCBzbG90LCAnc2xvdGNoYW5nZSBldmVudCBt
dXN0IGJlIGRpc3BhdGNoZWQgYXQgdGhlIHNsb3QgZWxlbWVudCBmaXJzdCcpOwotICAgICAgICAg
ICAgYXNzZXJ0X3Nsb3RjaGFuZ2VfbG9nKGxvZ1sxXSwgY29udGFpbmVyLCBzbG90LCAnc2xvdGNo
YW5nZSBldmVudCBtdXN0IGJ1YmJsZSB1cCB0byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHNsb3Qn
KTsKLSAgICAgICAgICAgIGFzc2VydF9zbG90Y2hhbmdlX2xvZyhsb2dbMl0sIHNoYWRvd1Jvb3Qs
IHNsb3QsICdzbG90Y2hhbmdlIGV2ZW50IG11c3QgYnViYmxlIHVwIHRvIHRoZSBzaGFkb3cgcm9v
dCcpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCAzLCAnc2xvdGNoYW5n
ZSBtdXN0IG5vdCBidWJibGUgYmV5b25kIHRoZSBzaGFkb3cgcm9vdCcpOwotICAgICAgICB9KTsK
LSAgICB9LCBgc2xvdGNoYW5nZSBldmVudCBtdXN0IGJ1YmJsZSBpbiBhICR7Y29ubmVjdGVkID8g
J2Nvbm5lY3RlZCcgOiAnZGlzY29ubmVjdGVkJ30gJHttb2RlfS1tb2RlIHNoYWRvdyB0cmVlYCk7
Ci19CisgICAgY29uc3QgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7IH0KKyAgICBkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgbGlzdGVuZXIpOworICAgIGlubmVyU2xvdC5h
ZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgbGlzdGVuZXIpOwogCi10ZXN0X3Nsb3RjaGFu
Z2VfZXZlbnRfYnViYmxlcygnY2xvc2VkJywgZmFsc2UpOwotdGVzdF9zbG90Y2hhbmdlX2V2ZW50
X2J1YmJsZXMoJ2Nsb3NlZCcsIHRydWUpOwotdGVzdF9zbG90Y2hhbmdlX2V2ZW50X2J1YmJsZXMo
J29wZW4nLCBmYWxzZSk7Ci10ZXN0X3Nsb3RjaGFuZ2VfZXZlbnRfYnViYmxlcygnb3BlbicsIHRy
dWUpOwotCi1mdW5jdGlvbiB0ZXN0X3NpbmdsZV9zbG90Y2hhbmdlX2V2ZW50X2Zvcl9uZXN0ZWRf
c2xvdHMob3V0ZXJNb2RlLCBpbm5lck1vZGUsIGNvbm5lY3RlZCkgewotICAgIHByb21pc2VfdGVz
dCgoKSA9PiB7Ci0gICAgICAgIGNvbnN0IG91dGVySG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ291dGVyLWhvc3QnKTsKLSAgICAgICAgaWYgKGNvbm5lY3RlZCkKLSAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJIb3N0KTsKLQotICAgICAgICBjb25zdCBvdXRl
clNoYWRvdyA9IG91dGVySG9zdC5hdHRhY2hTaGFkb3coeydtb2RlJzogb3V0ZXJNb2RlfSk7Ci0g
ICAgICAgIG91dGVyU2hhZG93LmlubmVySFRNTCA9ICc8ZGl2Pjxpbm5lci1ob3N0PjxzbG90Pjwv
c2xvdD48L2lubmVyLWhvc3Q+PC9kaXY+JzsKLSAgICAgICAgY29uc3Qgb3V0ZXJIb3N0UGFyZW50
ID0gb3V0ZXJTaGFkb3cucXVlcnlTZWxlY3RvcignZGl2Jyk7Ci0gICAgICAgIGNvbnN0IG91dGVy
U2xvdCA9IG91dGVyU2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ3Nsb3QnKTsKLQotICAgICAgICBjb25z
dCBpbm5lckhvc3QgPSBvdXRlclNoYWRvdy5xdWVyeVNlbGVjdG9yKCdpbm5lci1ob3N0Jyk7Ci0g
ICAgICAgIGNvbnN0IGlubmVyU2hhZG93ID0gaW5uZXJIb3N0LmF0dGFjaFNoYWRvdyh7J21vZGUn
OiBpbm5lck1vZGV9KTsKLSAgICAgICAgaW5uZXJTaGFkb3cuaW5uZXJIVE1MID0gJzxkaXY+PHNs
b3Q+PC9zbG90PjwvZGl2Pic7Ci0gICAgICAgIGNvbnN0IGlubmVyU2xvdFBhcmVudCA9IGlubmVy
U2hhZG93LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpOwotICAgICAgICBjb25zdCBpbm5lclNsb3QgPSBp
bm5lclNoYWRvdy5xdWVyeVNlbGVjdG9yKCdzbG90Jyk7Ci0KLSAgICAgICAgY29uc3Qgb2JzZXJ2
ZXIgPSBjcmVhdGVfc2xvdGNoYW5nZV9vYnNlcnZlcigpOwotICAgICAgICBvYnNlcnZlci5vYnNl
cnZlKG91dGVyU2xvdCk7Ci0gICAgICAgIG9ic2VydmVyLm9ic2VydmUoaW5uZXJIb3N0KTsKLQot
ICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHdpbmRvdyk7Ci0gICAgICAgIG9ic2VydmVyLm9ic2Vy
dmUoZG9jdW1lbnQpOwotICAgICAgICBvYnNlcnZlci5vYnNlcnZlKG91dGVySG9zdCk7Ci0gICAg
ICAgIG9ic2VydmVyLm9ic2VydmUob3V0ZXJTaGFkb3cpOwotICAgICAgICBvYnNlcnZlci5vYnNl
cnZlKG91dGVySG9zdFBhcmVudCk7Ci0gICAgICAgIG9ic2VydmVyLm9ic2VydmUob3V0ZXJTbG90
KTsKLSAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShpbm5lckhvc3QpOwotICAgICAgICBvYnNlcnZl
ci5vYnNlcnZlKGlubmVyU2hhZG93KTsKLSAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShpbm5lclNs
b3RQYXJlbnQpOwotICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGlubmVyU2xvdCk7Ci0KLSAgICAg
ICAgb3V0ZXJIb3N0LnRleHRDb250ZW50ID0gJyAnOwotCi0gICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMob2JzZXJ2ZXIudGFrZUxvZygpLCBbXSwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBub3Qg
YmUgZmlyZWQgc3luY2hyb25vdXNseScpOwotICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZl
KCkudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBjb25zdCBsb2cgPSBvYnNlcnZlci50YWtlTG9n
KCk7Ci0KLSAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IG5ldyBTZXQobG9nLm1hcCgoZW50cnkp
ID0+IGVudHJ5LmV2ZW50KSk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50cy5zaXpl
LCAxLCAnTXV0YXRpbmcgdGhlIGFzc2lnbmVkIGNvbnRlbnQgb2YgYSBzbG90IG11c3QgZmlyZSBl
eGFjdGx5IG9uZSBzbG90Y2hhbmdlIGV2ZW50Jyk7Ci0KLSAgICAgICAgICAgIGFzc2VydF9zbG90
Y2hhbmdlX2xvZyhsb2dbMF0sIG91dGVyU2xvdCwgb3V0ZXJTbG90LCAnc2xvdGNoYW5nZSBldmVu
dCBtdXN0IGJlIGRpc3BhdGNoZWQgYXQgdGhlIHNsb3QgZWxlbWVudCBmaXJzdCcpOwotICAgICAg
ICAgICAgYXNzZXJ0X3Nsb3RjaGFuZ2VfbG9nKGxvZ1sxXSwgaW5uZXJTbG90LCBvdXRlclNsb3Qs
ICdzbG90Y2hhbmdlIGV2ZW50IG11c3QgYnViYmxlIHVwIGZyb20gYSBzbG90IGVsZW1lbnQgdG8g
aXRzIGFzc2lnbmVkIHNsb3QnKTsKLSAgICAgICAgICAgIGFzc2VydF9zbG90Y2hhbmdlX2xvZyhs
b2dbMl0sIGlubmVyU2xvdFBhcmVudCwgb3V0ZXJTbG90LCAnc2xvdGNoYW5nZSBldmVudCBtdXN0
IGJ1YmJsZSB1cCB0byB0aGUgcGFyZW50IG5vZGUgb2YgYSBzbG90Jyk7Ci0gICAgICAgICAgICBh
c3NlcnRfc2xvdGNoYW5nZV9sb2cobG9nWzNdLCBpbm5lclNoYWRvdywgb3V0ZXJTbG90LCAnc2xv
dGNoYW5nZSBldmVudCBtdXN0IGJ1YmJsZSB1cCB0byB0aGUgc2hhZG93IHJvb3QnKTsKLSAgICAg
ICAgICAgIGFzc2VydF9zbG90Y2hhbmdlX2xvZyhsb2dbNF0sIGlubmVySG9zdCwgb3V0ZXJTbG90
LAotICAgICAgICAgICAgICAgICdzbG90Y2hhbmdlIGV2ZW50IG11c3QgYnViYmxlIHVwIHRvIHRo
ZSBzaGFkb3cgaG9zdCBpZiB0aGUgaG9zdCBpcyBhIGRlc2NlbmRlbnQgb2YgdGhlIHRyZWUgaW4g
d2hpY2ggdGhlIGV2ZW50IHdhcyBmaXJlZCcpOwotICAgICAgICAgICAgYXNzZXJ0X3Nsb3RjaGFu
Z2VfbG9nKGxvZ1s1XSwgb3V0ZXJIb3N0UGFyZW50LCBvdXRlclNsb3QsCi0gICAgICAgICAgICAg
ICAgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBidWJibGUgdXAgdG8gdGhlIHBhcmVudCBvZiBhbiBp
bm5lciBzaGFkb3cgaG9zdCcpOwotICAgICAgICAgICAgYXNzZXJ0X3Nsb3RjaGFuZ2VfbG9nKGxv
Z1s2XSwgb3V0ZXJTaGFkb3csIG91dGVyU2xvdCwgJ3Nsb3RjaGFuZ2UgZXZlbnQgbXVzdCBidWJi
bGUgdXAgdG8gdGhlIHNoYWRvdyByb290Jyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGxv
Zy5sZW5ndGgsIDcsICdzbG90Y2hhbmdlIG11c3Qgbm90IGJ1YmJsZSBiZXlvbmQgdGhlIHNoYWRv
dyByb290IGluIHdoaWNoIHRoZSBldmVudCB3YXMgZmlyZWQnKTsKLSAgICAgICAgfSk7Ci0gICAg
fSwgYEEgc2luZ2xlIHNsb3RjaGFuZ2UgZXZlbnQgbXVzdCBidWJibGUgZnJvbSBhICR7Y29ubmVj
dGVkID8gJ2Nvbm5lY3RlZCcgOiAnZGlzY29ubmVjdGVkJ30gJHtpbm5lck1vZGV9LW1vZGUgc2hh
ZG93IHRyZWUgdG9gCi0gICAgICAgICsgYGEgc2xvdCBpbiBpdHMgcGFyZW50ICR7b3V0ZXJNb2Rl
fS1tb2RlIHNoYWRvdyB0cmVlYCk7CisgICAgb3V0ZXJIb3N0LnRleHRDb250ZW50ID0gJyAnOwor
ICAgIFByb21pc2UucmVzb2x2ZWQoKS50aGVuKCgpID0+IHsKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSAnJzsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
fSkKIH0KIAotdGVzdF9zaW5nbGVfc2xvdGNoYW5nZV9ldmVudF9mb3JfbmVzdGVkX3Nsb3RzKCdj
bG9zZWQnLCAnY2xvc2VkJywgZmFsc2UpOwotdGVzdF9zaW5nbGVfc2xvdGNoYW5nZV9ldmVudF9m
b3JfbmVzdGVkX3Nsb3RzKCdjbG9zZWQnLCAnY2xvc2VkJywgdHJ1ZSk7Ci10ZXN0X3NpbmdsZV9z
bG90Y2hhbmdlX2V2ZW50X2Zvcl9uZXN0ZWRfc2xvdHMoJ2Nsb3NlZCcsICdvcGVuJywgZmFsc2Up
OwotdGVzdF9zaW5nbGVfc2xvdGNoYW5nZV9ldmVudF9mb3JfbmVzdGVkX3Nsb3RzKCdjbG9zZWQn
LCAnb3BlbicsIHRydWUpOwotCi10ZXN0X3NpbmdsZV9zbG90Y2hhbmdlX2V2ZW50X2Zvcl9uZXN0
ZWRfc2xvdHMoJ29wZW4nLCAnY2xvc2VkJywgZmFsc2UpOwotdGVzdF9zaW5nbGVfc2xvdGNoYW5n
ZV9ldmVudF9mb3JfbmVzdGVkX3Nsb3RzKCdvcGVuJywgJ2Nsb3NlZCcsIHRydWUpOwotdGVzdF9z
aW5nbGVfc2xvdGNoYW5nZV9ldmVudF9mb3JfbmVzdGVkX3Nsb3RzKCdvcGVuJywgJ29wZW4nLCBm
YWxzZSk7Ci10ZXN0X3NpbmdsZV9zbG90Y2hhbmdlX2V2ZW50X2Zvcl9uZXN0ZWRfc2xvdHMoJ29w
ZW4nLCAnb3BlbicsIHRydWUpOwotCi1mdW5jdGlvbiB0ZXN0X3Nsb3RjaGFuZ2VfZXZlbnRfZmly
ZWRfd2l0aG91dF9saXN0ZW5lcl9vbl9zbG90KG1vZGUsIGNvbm5lY3RlZCkgewotICAgIHByb21p
c2VfdGVzdCgoKSA9PiB7Ci0gICAgICAgIGNvbnN0IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKLSAgICAgICAgaWYgKGNvbm5lY3RlZCkKLSAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLSAgICAgICAgY29uc3Qgc2hhZG93Um9vdCA9IGhv
c3QuYXR0YWNoU2hhZG93KHsnbW9kZSc6IG1vZGV9KTsKLSAgICAgICAgc2hhZG93Um9vdC5pbm5l
ckhUTUwgPSAnPGRpdj48c2xvdD48L3Nsb3Q+PC9kaXY+JzsKLSAgICAgICAgY29uc3QgY29udGFp
bmVyID0gc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdkaXYnKTsKLSAgICAgICAgY29uc3Qgc2xv
dCA9IHNoYWRvd1Jvb3QucXVlcnlTZWxlY3Rvcignc2xvdCcpOwotCi0gICAgICAgIGNvbnN0IG9i
c2VydmVyID0gY3JlYXRlX3Nsb3RjaGFuZ2Vfb2JzZXJ2ZXIoKTsKLSAgICAgICAgb2JzZXJ2ZXIu
b2JzZXJ2ZShjb250YWluZXIpOwotICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHNoYWRvd1Jvb3Qp
OwotICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGhvc3QpOwotICAgICAgICBvYnNlcnZlci5vYnNl
cnZlKGRvY3VtZW50KTsKLSAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh3aW5kb3cpOwotCi0gICAg
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKLSAgICAgICAgaG9zdC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpOwotICAgICAgICBob3N0LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2InKSk7Ci0KLSAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhvYnNlcnZlci50YWtlTG9nKCksIFtdLCAnc2xvdGNoYW5nZSBldmVudCBt
dXN0IG5vdCBiZSBmaXJlZCBzeW5jaHJvbm91c2x5Jyk7Ci0gICAgICAgIHJldHVybiBQcm9taXNl
LnJlc29sdmUoKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIGNvbnN0IGxvZyA9IG9ic2VydmVy
LnRha2VMb2coKTsKLQotICAgICAgICAgICAgY29uc3QgZXZlbnRzID0gbmV3IFNldChsb2cubWFw
KChlbnRyeSkgPT4gZW50cnkuZXZlbnQpKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZl
bnRzLnNpemUsIDEsICdNdXRhdGluZyB0aGUgYXNzaWduZWQgY29udGVudCBvZiBhIHNsb3QgbXVz
dCBmaXJlIGV4YWN0bHkgb25lIHNsb3RjaGFuZ2UgZXZlbnQnKTsKLQotICAgICAgICAgICAgYXNz
ZXJ0X3Nsb3RjaGFuZ2VfbG9nKGxvZ1swXSwgY29udGFpbmVyLCBzbG90LCAnc2xvdGNoYW5nZSBl
dmVudCBtdXN0IGJ1YmJsZSB1cCB0byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHNsb3QnKTsKLSAg
ICAgICAgICAgIGFzc2VydF9zbG90Y2hhbmdlX2xvZyhsb2dbMV0sIHNoYWRvd1Jvb3QsIHNsb3Qs
ICdzbG90Y2hhbmdlIGV2ZW50IG11c3QgYnViYmxlIHVwIHRvIHRoZSBzaGFkb3cgcm9vdCcpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhsb2cubGVuZ3RoLCAyLCAnc2xvdGNoYW5nZSBtdXN0
IG5vdCBidWJibGUgYmV5b25kIHRoZSBzaGFkb3cgcm9vdCcpOwotICAgICAgICB9KTsKLSAgICB9
LCBgc2xvdGNoYW5nZSBldmVudCBtdXN0IGJlIGZpcmVkIGluIGEgJHtjb25uZWN0ZWQgPyAnY29u
bmVjdGVkJyA6ICdkaXNjb25uZWN0ZWQnfSAke21vZGV9LW1vZGUgc2hhZG93IHRyZWVgCi0gICAg
ICAgICsgYCBldmVuIHdoZW4gdGhlIHNsb3QgZWxlbWVudCBpdHNlbGYgbGFja3MgYSBldmVudCBs
aXN0ZW5lci5gKTsKLX0KLQotdGVzdF9zbG90Y2hhbmdlX2V2ZW50X2ZpcmVkX3dpdGhvdXRfbGlz
dGVuZXJfb25fc2xvdCgnY2xvc2VkJywgZmFsc2UpOwotdGVzdF9zbG90Y2hhbmdlX2V2ZW50X2Zp
cmVkX3dpdGhvdXRfbGlzdGVuZXJfb25fc2xvdCgnY2xvc2VkJywgdHJ1ZSk7Ci10ZXN0X3Nsb3Rj
aGFuZ2VfZXZlbnRfZmlyZWRfd2l0aG91dF9saXN0ZW5lcl9vbl9zbG90KCdvcGVuJywgZmFsc2Up
OwotdGVzdF9zbG90Y2hhbmdlX2V2ZW50X2ZpcmVkX3dpdGhvdXRfbGlzdGVuZXJfb25fc2xvdCgn
b3BlbicsIHRydWUpOwotCitydW5UZXN0KCk7CisqLwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0
bWw+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmNwcAkocmV2aXNpb24gMjEyOTMxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRN
TERvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTFNsb3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKICNp
bmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgpAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkpTTG9jYXRpb24uaCIKICNpbmNsdWRlICJKU1hNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiTG9j
YXRpb24uaCIKKyNpbmNsdWRlICJOb2RlUmVtb3ZhbFNjb3BlLmgiCiAjaW5jbHVkZSAiTm9kZVRy
YXZlcnNhbC5oIgogI2luY2x1ZGUgIlNWR0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgpAQCAtMTU2LDcgKzE1OCwyNSBAQAogCiB2b2lkIEpTRG9jdW1lbnQ6OnZpc2l0
QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIHZpc2l0b3Iu
YWRkT3BhcXVlUm9vdChzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kj4oJndyYXBw
ZWQoKSkpOworICAgIGF1dG8mIGRvY3VtZW50ID0gd3JhcHBlZCgpOworICAgIHZpc2l0b3IuYWRk
T3BhcXVlUm9vdChzdGF0aWNfY2FzdDxTY3JpcHRFeGVjdXRpb25Db250ZXh0Kj4oJmRvY3VtZW50
KSk7CisKKyAgICAvLyBLZWVwIHRyYXNpZW50bHkgcmVtb3ZlZCBub2RlcyBhbGl2ZS4KKyAgICBm
b3IgKGF1dG8qIHJlbW92YWxTY29wZSA9IGRvY3VtZW50LnRvcE5vZGVSZW1vdmFsU2NvcGUoKTsg
cmVtb3ZhbFNjb3BlOyByZW1vdmFsU2NvcGUgPSByZW1vdmFsU2NvcGUtPnByZXZpb3VzU2NvcGUo
KSkgeworICAgICAgICBmb3IgKGNvbnN0IFJlZjxOb2RlPiYgbm9kZSA6IHJlbW92YWxTY29wZS0+
bm9kZXNUb0JlUmVtb3ZlZCgpKQorICAgICAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJv
b3Qobm9kZSkpOworICAgIH0KKworICAgIGZwcmludGYoc3RkZXJyLCAiPT09PT09PT09PT09PT09
PT1KU0RvY3VtZW50Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbjpiZWdpblxuIik7CisKKyAgICAv
LyBLZWVwIEhUTUxTbG90RWxlbWVudHMgd2FpdGluZyBmb3Igc2xvdGNoYW5nZSBldmVudCB0byBi
ZSBmaXJlZCBhbGl2ZS4KKyAgICBmb3IgKGF1dG8qIHNsb3QgOiBkb2N1bWVudC5zbG90c0luU2ln
bmFsU2xvdExpc3QoKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICAgICAgICAgICAg
ICAgIHNsb3Q9JXAsIHJvb3Q9JXBcbiIsIHNsb3QsIHJvb3QoKnNsb3QpKTsKKy8vICAgICAgICBz
bG90LT5zaG93VHJlZUZvclRoaXMoKTsKKyAgICAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJv
b3QoKnNsb3QpKTsKKyAgICB9CisKKyAgICBmcHJpbnRmKHN0ZGVyciwgIj09PT09PT09PT09PT09
PT09SlNEb2N1bWVudDo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW46ZW5kXG4iKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5v
ZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cAkocmV2aXNpb24gMjEyOTMxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTmFtZU5vZGVM
aXN0LmgiCiAjaW5jbHVkZSAiTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uLmgiCiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCisjaW5jbHVkZSAiTm9kZVJlbW92YWxTY29wZS5oIgogI2luY2x1ZGUg
Ik5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJhZGlvTm9kZUxpc3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJCb3guaCIKQEAgLTEyMSwxMiArMTIyLDEyIEBACiB7CiAgICAgQVNTRVJUKG9sZFBh
cmVudCk7CiAKLSAgICBOb2RlVmVjdG9yIGNoaWxkcmVuOwotICAgIGdldENoaWxkTm9kZXMoKm9s
ZFBhcmVudCwgY2hpbGRyZW4pOworICAgIE5vZGVSZW1vdmFsU2NvcGUgcmVtb3ZhbFNjb3BlKGRv
Y3VtZW50KCkpOworICAgIHJlbW92YWxTY29wZS5hZGRDaGlsZE5vZGVzKCpvbGRQYXJlbnQpOwog
CiAgICAgaWYgKG9sZFBhcmVudC0+ZG9jdW1lbnQoKS5oYXNNdXRhdGlvbk9ic2VydmVyc09mVHlw
ZShNdXRhdGlvbk9ic2VydmVyOjpDaGlsZExpc3QpKSB7CiAgICAgICAgIENoaWxkTGlzdE11dGF0
aW9uU2NvcGUgbXV0YXRpb24oKm9sZFBhcmVudCk7Ci0gICAgICAgIGZvciAoYXV0byYgY2hpbGQg
OiBjaGlsZHJlbikKKyAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IHJlbW92YWxTY29wZS5ub2Rl
c1RvQmVSZW1vdmVkKCkpCiAgICAgICAgICAgICBtdXRhdGlvbi53aWxsUmVtb3ZlQ2hpbGQoY2hp
bGQpOwogICAgIH0KIApAQCAtMTM2LDYgKzEzNywxMSBAQAogCiAgICAgICAgIG9sZFBhcmVudC0+
ZG9jdW1lbnQoKS5ub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKCpvbGRQYXJlbnQpOwogCis8PDw8
PDw8IC5taW5lCisgICAgZm9yIChhdXRvJiBjaGlsZCA6IHJlbW92YWxTY29wZS5ub2Rlc1RvQmVS
ZW1vdmVkKCkpIHsKK3x8fHx8fHwgLnIyMTE1NDAKKyAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hp
bGRyZW4pIHsKKz09PT09PT0KICAgICAgICAgV2lkZ2V0SGllcmFyY2h5VXBkYXRlc1N1c3BlbnNp
b25TY29wZSBzdXNwZW5kV2lkZ2V0SGllcmFyY2h5VXBkYXRlczsKICAgICAgICAgd2hpbGUgKFJl
ZlB0cjxOb2RlPiBjaGlsZCA9IG9sZFBhcmVudC0+bV9maXJzdENoaWxkKSB7CiAgICAgICAgICAg
ICBvbGRQYXJlbnQtPnJlbW92ZUJldHdlZW4obnVsbHB0ciwgY2hpbGQtPm5leHRTaWJsaW5nKCks
ICpjaGlsZCk7CkBAIC0xNDcsNiArMTUzLDcgQEAKIAogICAgIC8vIEZJWE1FOiBhc3NlcnQgdGhh
dCB3ZSBkb24ndCBkaXNwYXRjaCBldmVudHMgaGVyZSBzaW5jZSB0aGlzIGNvbnRhaW5lciBub2Rl
IGlzIHN0aWxsIGRpc2Nvbm5lY3RlZC4KICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW4p
IHsKKz4+Pj4+Pj4gLnIyMTI3ODkKICAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNoaWxkLT5wYXJl
bnROb2RlKCkgJiYgJmNoaWxkLT50cmVlU2NvcGUoKSA9PSAmdHJlZVNjb3BlKCkpOwogICAgICAg
ICBBU1NFUlQoIWVuc3VyZVByZUluc2VydGlvblZhbGlkaXR5KGNoaWxkLCBudWxscHRyKS5oYXNF
eGNlcHRpb24oKSk7CiAgICAgICAgIHRyZWVTY29wZSgpLmFkb3B0SWZOZWVkZWQoY2hpbGQpOwpA
QCAtNTI4LDEyICs1MzUsMTMgQEAKICAgICBpZiAob2xkQ2hpbGQucGFyZW50Tm9kZSgpICE9IHRo
aXMpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOT1RfRk9VTkRfRVJSIH07CiAKLSAgICBS
ZWY8Tm9kZT4gY2hpbGQob2xkQ2hpbGQpOworICAgIE5vZGVSZW1vdmFsU2NvcGUgcmVtb3ZhbFNj
b3BlKGRvY3VtZW50KCkpOworICAgIHJlbW92YWxTY29wZS5hZGRDaGlsZE5vZGUob2xkQ2hpbGQp
OwogCi0gICAgd2lsbFJlbW92ZUNoaWxkKCp0aGlzLCBjaGlsZCk7CisgICAgd2lsbFJlbW92ZUNo
aWxkKCp0aGlzLCBvbGRDaGlsZCk7CiAKICAgICAvLyBNdXRhdGlvbiBldmVudHMgaW4gd2lsbFJl
bW92ZUNoaWxkIG1pZ2h0IGhhdmUgbW92ZWQgdGhpcyBjaGlsZCBpbnRvIGEgZGlmZmVyZW50IHBh
cmVudC4KLSAgICBpZiAoY2hpbGQtPnBhcmVudE5vZGUoKSAhPSB0aGlzKQorICAgIGlmIChvbGRD
aGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5P
VF9GT1VORF9FUlIgfTsKIAogICAgIHsKQEAgLTU0MCwxMyArNTQ4LDIzIEBACiAgICAgICAgIFdp
ZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5zaW9uU2NvcGUgc3VzcGVuZFdpZGdldEhpZXJhcmNo
eVVwZGF0ZXM7CiAgICAgICAgIE5vRXZlbnREaXNwYXRjaEFzc2VydGlvbiBhc3NlcnROb0V2ZW50
RGlzcGF0Y2g7CiAKKzw8PDw8PDwgLm1pbmUKKyAgICAgICAgTm9kZSogcHJldiA9IG9sZENoaWxk
LnByZXZpb3VzU2libGluZygpOworICAgICAgICBOb2RlKiBuZXh0ID0gb2xkQ2hpbGQubmV4dFNp
YmxpbmcoKTsKKyAgICAgICAgcmVtb3ZlQmV0d2VlbihwcmV2LCBuZXh0LCBvbGRDaGlsZCk7Cit8
fHx8fHx8IC5yMjExNTQwCisgICAgICAgIE5vZGUqIHByZXYgPSBjaGlsZC0+cHJldmlvdXNTaWJs
aW5nKCk7CisgICAgICAgIE5vZGUqIG5leHQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKTsKKyAgICAg
ICAgcmVtb3ZlQmV0d2VlbihwcmV2LCBuZXh0LCBjaGlsZCk7Cis9PT09PT09CiAgICAgICAgIGRv
Y3VtZW50KCkubm9kZVdpbGxCZVJlbW92ZWQoY2hpbGQpOwogCiAgICAgICAgIE5vZGUqIHByZXYg
PSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCk7CiAgICAgICAgIE5vZGUqIG5leHQgPSBjaGlsZC0+
bmV4dFNpYmxpbmcoKTsKICAgICAgICAgcmVtb3ZlQmV0d2VlbihwcmV2LCBuZXh0LCBjaGlsZCk7
Cis+Pj4+Pj4+IC5yMjEyNzg5CiAKLSAgICAgICAgbm90aWZ5Q2hpbGRSZW1vdmVkKGNoaWxkLCBw
cmV2LCBuZXh0LCBDaGlsZENoYW5nZVNvdXJjZUFQSSk7CisgICAgICAgIG5vdGlmeUNoaWxkUmVt
b3ZlZChvbGRDaGlsZCwgcHJldiwgbmV4dCwgQ2hpbGRDaGFuZ2VTb3VyY2VBUEkpOwogICAgIH0K
IAogICAgIHJlYnVpbGRTVkdFeHRlbnNpb25zRWxlbWVudHNJZk5lY2Vzc2FyeSgpOwpAQCAtNTk1
LDggKzYxMywxOSBAQAogICAgIGlmIChvbGRDaGlsZC5wYXJlbnROb2RlKCkgIT0gdGhpcykKICAg
ICAgICAgcmV0dXJuOwogCis8PDw8PDw8IC5taW5lCisgICAgTm9kZVJlbW92YWxTY29wZSByZW1v
dmFsU2NvcGUoZG9jdW1lbnQoKSk7CisgICAgcmVtb3ZhbFNjb3BlLmFkZENoaWxkTm9kZShvbGRD
aGlsZCk7CisKKyAgICBOb2RlKiBwcmV2ID0gb2xkQ2hpbGQucHJldmlvdXNTaWJsaW5nKCk7Cisg
ICAgTm9kZSogbmV4dCA9IG9sZENoaWxkLm5leHRTaWJsaW5nKCk7Cit8fHx8fHx8IC5yMjExNTQw
CisgICAgTm9kZSogcHJldiA9IG9sZENoaWxkLnByZXZpb3VzU2libGluZygpOworICAgIE5vZGUq
IG5leHQgPSBvbGRDaGlsZC5uZXh0U2libGluZygpOworPT09PT09PQogICAgIHsKICAgICAgICAg
Tm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uIGFzc2VydE5vRXZlbnREaXNwYXRjaDsKKz4+Pj4+Pj4g
LnIyMTI3ODkKIAogICAgICAgICBkb2N1bWVudCgpLm5vZGVDaGlsZHJlbldpbGxCZVJlbW92ZWQo
KnRoaXMpOwogCkBAIC02NDYsOSArNjc1LDIxIEBACiAgICAgd2lsbFJlbW92ZUNoaWxkcmVuKCp0
aGlzKTsKIAogICAgIHsKKyAgICAgICAgTm9kZVJlbW92YWxTY29wZSByZW1vdmFsU2NvcGUoZG9j
dW1lbnQoKSk7CisgICAgICAgIHJlbW92YWxTY29wZS5hZGRDaGlsZE5vZGVzKCp0aGlzKTsKKwog
ICAgICAgICBXaWRnZXRIaWVyYXJjaHlVcGRhdGVzU3VzcGVuc2lvblNjb3BlIHN1c3BlbmRXaWRn
ZXRIaWVyYXJjaHlVcGRhdGVzOwogICAgICAgICB7CiAgICAgICAgICAgICBOb0V2ZW50RGlzcGF0
Y2hBc3NlcnRpb24gYXNzZXJ0Tm9FdmVudERpc3BhdGNoOworPDw8PDw8PCAubWluZQorICAgICAg
ICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IHJlbW92YWxTY29wZS5ub2Rlc1RvQmVSZW1vdmVkKCkp
IHsKKyAgICAgICAgICAgICAgICByZW1vdmVCZXR3ZWVuKG51bGxwdHIsIGNoaWxkLT5uZXh0U2li
bGluZygpLCBjaGlsZCk7CisgICAgICAgICAgICAgICAgbm90aWZ5Q2hpbGROb2RlUmVtb3ZlZCgq
dGhpcywgY2hpbGQpOworfHx8fHx8fCAucjIxMTU0MAorICAgICAgICAgICAgd2hpbGUgKFJlZlB0
cjxOb2RlPiBjaGlsZCA9IG1fZmlyc3RDaGlsZCkgeworICAgICAgICAgICAgICAgIHJlbW92ZUJl
dHdlZW4obnVsbHB0ciwgY2hpbGQtPm5leHRTaWJsaW5nKCksICpjaGlsZCk7CisgICAgICAgICAg
ICAgICAgbm90aWZ5Q2hpbGROb2RlUmVtb3ZlZCgqdGhpcywgKmNoaWxkKTsKKz09PT09PT0KIAog
ICAgICAgICAgICAgZG9jdW1lbnQoKS5ub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKCp0aGlzKTsK
IApAQCAtNjU1LDYgKzY5Niw3IEBACiAgICAgICAgICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGNo
aWxkID0gbV9maXJzdENoaWxkKSB7CiAgICAgICAgICAgICAgICAgcmVtb3ZlQmV0d2VlbihudWxs
cHRyLCBjaGlsZC0+bmV4dFNpYmxpbmcoKSwgKmNoaWxkKTsKICAgICAgICAgICAgICAgICBub3Rp
ZnlDaGlsZE5vZGVSZW1vdmVkKCp0aGlzLCAqY2hpbGQpOworPj4+Pj4+PiAucjIxMjc4OQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBJZiBub2RlIGlzIG5vdCBudWxsLCBpbnNlcnQg
bm9kZSBpbnRvIHBhcmVudCBiZWZvcmUgbnVsbC4KQEAgLTY5Miw3ICs3MzQsMjUgQEAKICAgICB3
aWxsUmVtb3ZlQ2hpbGRyZW4oKnRoaXMpOwogCiAgICAgeworICAgICAgICBOb2RlUmVtb3ZhbFNj
b3BlIHJlbW92YWxTY29wZShkb2N1bWVudCgpKTsKKyAgICAgICAgcmVtb3ZhbFNjb3BlLmFkZENo
aWxkTm9kZXMoKnRoaXMpOworCiAgICAgICAgIFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNTdXNwZW5z
aW9uU2NvcGUgc3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXM7Cis8PDw8PDw8IC5taW5lCisg
ICAgICAgIHsKKyAgICAgICAgICAgIE5vRXZlbnREaXNwYXRjaEFzc2VydGlvbiBhc3NlcnROb0V2
ZW50RGlzcGF0Y2g7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGNoaWxkIDogcmVtb3ZhbFNjb3Bl
Lm5vZGVzVG9CZVJlbW92ZWQoKSkgeworICAgICAgICAgICAgICAgIHJlbW92ZUJldHdlZW4oMCwg
Y2hpbGQtPm5leHRTaWJsaW5nKCksIGNoaWxkKTsKKyAgICAgICAgICAgICAgICBub3RpZnlDaGls
ZE5vZGVSZW1vdmVkKCp0aGlzLCBjaGlsZCk7CisgICAgICAgICAgICB9Cit8fHx8fHx8IC5yMjEx
NTQwCisgICAgICAgIHsKKyAgICAgICAgICAgIE5vRXZlbnREaXNwYXRjaEFzc2VydGlvbiBhc3Nl
cnROb0V2ZW50RGlzcGF0Y2g7CisgICAgICAgICAgICB3aGlsZSAoUmVmUHRyPE5vZGU+IGNoaWxk
ID0gbV9maXJzdENoaWxkKSB7CisgICAgICAgICAgICAgICAgcmVtb3ZlQmV0d2VlbigwLCBjaGls
ZC0+bmV4dFNpYmxpbmcoKSwgKmNoaWxkKTsKKyAgICAgICAgICAgICAgICBub3RpZnlDaGlsZE5v
ZGVSZW1vdmVkKCp0aGlzLCAqY2hpbGQpOworICAgICAgICAgICAgfQorPT09PT09PQogICAgICAg
ICBOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb24gYXNzZXJ0Tm9FdmVudERpc3BhdGNoOwogCiAgICAg
ICAgIGRvY3VtZW50KCkubm9kZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZCgqdGhpcyk7CkBAIC03MDAs
NiArNzYwLDcgQEAKICAgICAgICAgd2hpbGUgKFJlZlB0cjxOb2RlPiBjaGlsZCA9IG1fZmlyc3RD
aGlsZCkgewogICAgICAgICAgICAgcmVtb3ZlQmV0d2VlbigwLCBjaGlsZC0+bmV4dFNpYmxpbmco
KSwgKmNoaWxkKTsKICAgICAgICAgICAgIG5vdGlmeUNoaWxkTm9kZVJlbW92ZWQoKnRoaXMsICpj
aGlsZCk7Cis+Pj4+Pj4+IC5yMjEyNzg5CiAgICAgICAgIH0KIAogICAgICAgICBDaGlsZENoYW5n
ZSBjaGFuZ2UgPSB7IEFsbENoaWxkcmVuUmVtb3ZlZCwgbnVsbHB0ciwgbnVsbHB0ciwgQ2hpbGRD
aGFuZ2VTb3VyY2VBUEkgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24g
MjEyOTMxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjAzLDYgKzIwMywxMyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5o
PgogI2luY2x1ZGUgPHlhcnIvUmVndWxhckV4cHJlc3Npb24uaD4KIAorI2luY2x1ZGUgIkhUTUxT
bG90RWxlbWVudC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0SW5saW5l
cy5oPgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxp
bmVzLmg+CisKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogI2luY2x1ZGUgIkRldmlj
ZU1vdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIgpAQCAt
Njk3MCw0ICs2OTc3LDU5IEBACiAgICAgbV9pbkRvY3VtZW50U2hhZG93Um9vdHMucmVtb3ZlKCZz
aGFkb3dSb290KTsKIH0KIAorc3RhdGljIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0
Pj4mIHN0cm9uZ0xpc3QoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8SlND
OjpTdHJvbmc8SlNDOjpKU09iamVjdD4+PiBsaXN0OworICAgIHJldHVybiBsaXN0OworfQorCit2
b2lkIERvY3VtZW50OjpkaWRBZGRUb1NpZ25hbFNsb3RMaXN0KEhUTUxTbG90RWxlbWVudCYgc2xv
dEVsZW1lbnQpCit7CisgICAgQVNTRVJUKCFtX3Nsb3RzSW5TaWduYWxTbG90TGlzdC5jb250YWlu
cygmc2xvdEVsZW1lbnQpKTsKKyAgICBtX3Nsb3RzSW5TaWduYWxTbG90TGlzdC5hZGQoJnNsb3RF
bGVtZW50KTsKKworICAgIFdURlJlcG9ydEJhY2t0cmFjZSgpOworCisgICAgZnByaW50ZihzdGRl
cnIsICI9PT09PT09PT09PT09PT09PURvY3VtZW50OjpkaWRBZGRUb1NpZ25hbFNsb3RMaXN0OmJl
Z2luXG4iKTsKKworICAgIHNsb3RFbGVtZW50LnNob3dUcmVlRm9yVGhpcygpOworCisgICAgSlND
OjpWTSYgdm0gPSBjb21tb25WTSgpOworICAgIFZlY3RvcjxSZWY8RE9NV3JhcHBlcldvcmxkPj4g
d3JhcHBlcldvcmxkczsKKyAgICBTY3JpcHRDb250cm9sbGVyOjpnZXRBbGxXb3JsZHMod3JhcHBl
cldvcmxkcyk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHdyYXBwZXJXb3JsZHMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgRE9NT2JqZWN0V3JhcHBlck1hcCYgd3JhcHBlcnMgPSB3cmFw
cGVyV29ybGRzW2ldLT5tX3dyYXBwZXJzOworCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAg
ICAgICAgICAgICAgICBpc05vcm1hbD0lZFxuIiwgd3JhcHBlcldvcmxkc1tpXS0+aXNOb3JtYWwo
KSk7CisKKyAgICAgICAgSlNDOjpKU09iamVjdCogZG9jdW1lbnRXcmFwcGVyID0gd3JhcHBlcnMu
Z2V0KHRoaXMpOworICAgICAgICBKU0M6OkpTT2JqZWN0KiBzbG90V3JhcHBlciA9IHdyYXBwZXJz
LmdldCgmc2xvdEVsZW1lbnQpOworICAgICAgICBpZiAoc2xvdFdyYXBwZXIpCisgICAgICAgICAg
ICBzdHJvbmdMaXN0KCkuYXBwZW5kKEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+KHZtLCBzbG90
V3JhcHBlcikpOworCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgICAgICAgICAgICBz
bG90RWxlbWVudD0lcCwgd3JhcHBlcj0lcFxuIiwgJnNsb3RFbGVtZW50LCBzbG90V3JhcHBlcik7
CisKKyAgICAgICAgaWYgKGRvY3VtZW50V3JhcHBlciAmJiBzbG90V3JhcHBlcikKKyAgICAgICAg
ICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGRvY3VtZW50V3JhcHBlciwgc2xvdFdyYXBwZXIpOwor
ICAgIH0KKworICAgIGZwcmludGYoc3RkZXJyLCAiPT09PT09PT09PT09PT09PT1Eb2N1bWVudDo6
ZGlkQWRkVG9TaWduYWxTbG90TGlzdDplbmRcbiIpOworfQorCit2b2lkIERvY3VtZW50OjpkaWRS
ZW1vdmVGcm9tU2lnbmFsU2xvdExpc3QoSFRNTFNsb3RFbGVtZW50JiBzbG90RWxlbWVudCkKK3sK
KyAgICBBU1NFUlQobV9zbG90c0luU2lnbmFsU2xvdExpc3QuY29udGFpbnMoJnNsb3RFbGVtZW50
KSk7CisgICAgbV9zbG90c0luU2lnbmFsU2xvdExpc3QucmVtb3ZlKCZzbG90RWxlbWVudCk7Cisv
KgorICAgIEpTQzo6Vk0mIHZtID0gY29tbW9uVk0oKTsKKyAgICBWZWN0b3I8UmVmPERPTVdyYXBw
ZXJXb3JsZD4+IHdyYXBwZXJXb3JsZHM7CisgICAgU2NyaXB0Q29udHJvbGxlcjo6Z2V0QWxsV29y
bGRzKHdyYXBwZXJXb3JsZHMpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB3cmFwcGVy
V29ybGRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIERPTU9iamVjdFdyYXBwZXJNYXAmIHdyYXBw
ZXJzID0gd3JhcHBlcldvcmxkc1tpXS0+bV93cmFwcGVyczsKKyAgICAgICAgSlNDOjpKU09iamVj
dCogc2xvdFdyYXBwZXIgPSB3cmFwcGVycy5nZXQoJnNsb3RFbGVtZW50KTsKKyAgICAgICAgaWYg
KHNsb3RXcmFwcGVyKQorICAgICAgICAgICAgc3Ryb25nTGlzdCgpLnJlbW92ZShzbG90V3JhcHBl
cik7CisgICAgfSovCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCShyZXZpc2lvbiAyMTI5MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCw3IEBACiBjbGFzcyBIVE1MTWVkaWFF
bGVtZW50OwogY2xhc3MgSFRNTFBpY3R1cmVFbGVtZW50OwogY2xhc3MgSFRNTFNjcmlwdEVsZW1l
bnQ7CitjbGFzcyBIVE1MU2xvdEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNz
IEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJbnRQb2ludDsKQEAgLTEzNiw2ICsxMzcsNyBAQAogY2xh
c3MgTmFtZWRGbG93Q29sbGVjdGlvbjsKIGNsYXNzIE5vZGVGaWx0ZXI7CiBjbGFzcyBOb2RlSXRl
cmF0b3I7CitjbGFzcyBOb2RlUmVtb3ZhbFNjb3BlOwogY2xhc3MgUGFnZTsKIGNsYXNzIFBsYXRm
b3JtTW91c2VFdmVudDsKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKQEAgLTEyODAsOSAr
MTI4MiwyMCBAQAogICAgIHZvaWQgZGlkUmVtb3ZlSW5Eb2N1bWVudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCYpOwogICAgIGNvbnN0IEhhc2hTZXQ8U2hhZG93Um9vdCo+JiBpbkRvY3VtZW50U2hhZG93
Um9vdHMoKSBjb25zdCB7IHJldHVybiBtX2luRG9jdW1lbnRTaGFkb3dSb290czsgfQogCis8PDw8
PDw8IC5taW5lCisgICAgdm9pZCBkaWRBZGRUb1NpZ25hbFNsb3RMaXN0KEhUTUxTbG90RWxlbWVu
dCYpOworICAgIHZvaWQgZGlkUmVtb3ZlRnJvbVNpZ25hbFNsb3RMaXN0KEhUTUxTbG90RWxlbWVu
dCYpOworICAgIGNvbnN0IEhhc2hTZXQ8SFRNTFNsb3RFbGVtZW50Kj4mIHNsb3RzSW5TaWduYWxT
bG90TGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2xvdHNJblNpZ25hbFNsb3RMaXN0OyB9CisKKyAg
ICBOb2RlUmVtb3ZhbFNjb3BlKiB0b3BOb2RlUmVtb3ZhbFNjb3BlKCkgeyByZXR1cm4gbV90b3BO
b2RlUmVtb3ZhbFNjb3BlOyB9CisgICAgdm9pZCBzZXRUb3BOb2RlUmVtb3ZhbFNjb3BlKE5vZGVS
ZW1vdmFsU2NvcGUqIG5ld1Njb3BlKSB7IG1fdG9wTm9kZVJlbW92YWxTY29wZSA9IG5ld1Njb3Bl
OyB9CisKK3x8fHx8fHwgLnIyMTE1NDAKKz09PT09PT0KICAgICB2b2lkIGF0dGFjaFRvQ2FjaGVk
RnJhbWUoQ2FjaGVkRnJhbWVCYXNlJik7CiAgICAgdm9pZCBkZXRhY2hGcm9tQ2FjaGVkRnJhbWUo
Q2FjaGVkRnJhbWVCYXNlJik7CiAKKz4+Pj4+Pj4gLnIyMTI3ODkKIHByb3RlY3RlZDoKICAgICBl
bnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNl
aG9sZGVyID0gMSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNp
Z25lZCA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9
IDApOwpAQCAtMTcyMyw2ICsxNzM2LDggQEAKICAgICBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3MgbV9tZWRpYVN0YXRlIHsgTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nIH07CiAKICAg
ICBIYXNoU2V0PFNoYWRvd1Jvb3QqPiBtX2luRG9jdW1lbnRTaGFkb3dSb290czsKKyAgICBIYXNo
U2V0PEhUTUxTbG90RWxlbWVudCo+IG1fc2xvdHNJblNpZ25hbFNsb3RMaXN0OworICAgIE5vZGVS
ZW1vdmFsU2NvcGUqIG1fdG9wTm9kZVJlbW92YWxTY29wZSB7IG51bGxwdHIgfTsKIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2
NF90LCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q2xpZW50Kj4gVGFyZ2V0SWRUb0NsaWVu
dE1hcDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25PYnNlcnZlci5jcHAJKHJldmlz
aW9uIDIxMjkzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NdXRhdGlvbk9ic2VydmVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQ2LDEwICsxNDYsMTUgQEAKICAgICByZXR1cm4gc3VzcGVuZGVk
T2JzZXJ2ZXJzOwogfQogCitzdHJ1Y3QgU2xvdFJvb3RQYWlyIHsKKyAgICBSZWY8SFRNTFNsb3RF
bGVtZW50PiBzbG90RWxlbWVudDsKKyAgICBSZWY8Tm9kZT4gcm9vdE5vZGU7Cit9OworCiAvLyBo
dHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI3NpZ25hbC1zbG90LWxpc3QKLXN0YXRpYyBWZWN0
b3I8UmVmUHRyPEhUTUxTbG90RWxlbWVudD4+JiBzaWduYWxTbG90TGlzdCgpCitzdGF0aWMgVmVj
dG9yPFNsb3RSb290UGFpcj4mIHNpZ25hbFNsb3RMaXN0KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPFJlZlB0cjxIVE1MU2xvdEVsZW1lbnQ+Pj4gbGlzdDsKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPFNsb3RSb290UGFpcj4+IGxpc3Q7CiAgICAgcmV0dXJu
IGxpc3Q7CiB9CiAKQEAgLTE4NSw4ICsxOTAsMTQgQEAKIHZvaWQgTXV0YXRpb25PYnNlcnZlcjo6
ZW5xdWV1ZVNsb3RDaGFuZ2VFdmVudChIVE1MU2xvdEVsZW1lbnQmIHNsb3QpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQoIXNpZ25hbFNsb3RMaXN0KCkuY29udGFp
bnMoJnNsb3QpKTsKLSAgICBzaWduYWxTbG90TGlzdCgpLmFwcGVuZCgmc2xvdCk7CisjaWYgIUFT
U0VSVF9ESVNBQkxFRAorICAgIGZvciAoYXV0byYgZW50cnkgOiBzaWduYWxTbG90TGlzdCgpKQor
ICAgICAgICBBU1NFUlQoZW50cnkuc2xvdEVsZW1lbnQucHRyKCkgIT0gJnNsb3QpOworI2VuZGlm
CisgICAgTm9kZSYgcm9vdCA9IHNsb3Quc2hhZG93SW5jbHVkaW5nUm9vdCgpOworICAgIEFTU0VS
VCgmcm9vdCA9PSByb290Lm9wYXF1ZVJvb3QoKSk7CisgICAgc2lnbmFsU2xvdExpc3QoKS5hcHBl
bmQoe3Nsb3QsIHJvb3R9KTsKKyAgICBzbG90LmRvY3VtZW50KCkuZGlkQWRkVG9TaWduYWxTbG90
TGlzdChzbG90KTsKIAogICAgIHF1ZXVlTXV0YXRpb25PYnNlcnZlckNvbXBvdW5kTWljcm90YXNr
KCk7CiB9CkBAIC0yNzAsMTEgKzI4MSwxMSBAQAogCiAgICAgICAgIC8vIDMuIExldCBzaWduYWxM
aXN0IGJlIGEgY29weSBvZiB1bml0IG9mIHJlbGF0ZWQgc2ltaWxhci1vcmlnaW4gYnJvd3Npbmcg
Y29udGV4dHMnIHNpZ25hbCBzbG90IGxpc3QuCiAgICAgICAgIC8vIDQuIEVtcHR5IHVuaXQgb2Yg
cmVsYXRlZCBzaW1pbGFyLW9yaWdpbiBicm93c2luZyBjb250ZXh0cycgc2lnbmFsIHNsb3QgbGlz
dC4KLSAgICAgICAgVmVjdG9yPFJlZlB0cjxIVE1MU2xvdEVsZW1lbnQ+PiBzbG90TGlzdDsKKyAg
ICAgICAgVmVjdG9yPFNsb3RSb290UGFpcj4gc2xvdExpc3Q7CiAgICAgICAgIGlmICghc2lnbmFs
U2xvdExpc3QoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIHNsb3RMaXN0LnN3YXAoc2lnbmFs
U2xvdExpc3QoKSk7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIHNsb3QgOiBzbG90TGlzdCkKLSAg
ICAgICAgICAgICAgICBzbG90LT5kaWRSZW1vdmVGcm9tU2lnbmFsU2xvdExpc3QoKTsKKyAgICAg
ICAgICAgIGZvciAoYXV0byYgZW50cnkgOiBzbG90TGlzdCkKKyAgICAgICAgICAgICAgICBlbnRy
eS5zbG90RWxlbWVudC0+ZGlkUmVtb3ZlRnJvbVNpZ25hbFNsb3RMaXN0KCk7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyA1LiBGb3IgZWFjaCBNdXRhdGlvbk9ic2VydmVyIG9iamVjdCBtbyBpbiBu
b3RpZnkgbGlzdCwgZXhlY3V0ZSBhIGNvbXBvdW5kIG1pY3JvdGFzayBzdWJ0YXNrCkBAIC0yODYs
OCArMjk3LDEyIEBACiAgICAgICAgIH0KIAogICAgICAgICAvLyA2LiBGb3IgZWFjaCBzbG90IHNs
b3QgaW4gc2lnbmFsTGlzdCwgaW4gb3JkZXIsIGZpcmUgYW4gZXZlbnQgbmFtZWQgc2xvdGNoYW5n
ZSwgd2l0aCBpdHMgYnViYmxlcyBhdHRyaWJ1dGUgc2V0IHRvIHRydWUsIGF0IHNsb3QuCi0gICAg
ICAgIGZvciAoYXV0byYgc2xvdCA6IHNsb3RMaXN0KQotICAgICAgICAgICAgc2xvdC0+ZGlzcGF0
Y2hTbG90Q2hhbmdlRXZlbnQoKTsKKyAgICAgICAgZm9yIChhdXRvJiBlbnRyeSA6IHNsb3RMaXN0
KSB7CisgICAgICAgICAgICBlbnRyeS5zbG90RWxlbWVudC0+ZGlzcGF0Y2hTbG90Q2hhbmdlRXZl
bnQoKTsKKyAgICAgICAgICAgIGJvb2wgc2xvdElzU3RpbGxSZW1vdmVkRnJvbVNpZ25hbFNsb3RM
aXN0QWZ0ZXJOb3RpZmljYXRpb24gPSAhZW50cnkuc2xvdEVsZW1lbnQtPmluU2lnbmFsU2xvdExp
c3QoKTsKKyAgICAgICAgICAgIGlmIChzbG90SXNTdGlsbFJlbW92ZWRGcm9tU2lnbmFsU2xvdExp
c3RBZnRlck5vdGlmaWNhdGlvbikKKyAgICAgICAgICAgICAgICBlbnRyeS5zbG90RWxlbWVudC0+
ZG9jdW1lbnQoKS5kaWRSZW1vdmVGcm9tU2lnbmFsU2xvdExpc3QoZW50cnkuc2xvdEVsZW1lbnQp
OworICAgICAgICB9CiAgICAgfQogCiAgICAgZGVsaXZlcnlJblByb2dyZXNzID0gZmFsc2U7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbW92YWxTY29wZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVtb3ZhbFNjb3BlLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW1vdmFsU2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE5vZGVSZW1vdmFsU2NvcGUgeworcHVibGljOgorICAgIE5vZGVSZW1v
dmFsU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgICAgICA6IG1fZG9jdW1lbnQoZG9jdW1l
bnQpCisgICAgICAgICwgbV9wcmV2aW91c1Njb3BlKGRvY3VtZW50LnRvcE5vZGVSZW1vdmFsU2Nv
cGUoKSkKKyAgICB7CisgICAgICAgIG1fZG9jdW1lbnQuc2V0VG9wTm9kZVJlbW92YWxTY29wZSh0
aGlzKTsKKyAgICB9CisKKyAgICB+Tm9kZVJlbW92YWxTY29wZSgpCisgICAgeworICAgICAgICBt
X2RvY3VtZW50LnNldFRvcE5vZGVSZW1vdmFsU2NvcGUobV9wcmV2aW91c1Njb3BlKTsKKyAgICB9
CisKKyAgICB2b2lkIGFkZENoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSYgcGFyZW50KQorICAgIHsK
KyAgICAgICAgQVNTRVJUKG1fbm9kZXNUb0JlUmVtb3ZlZC5pc0VtcHR5KCkpOworICAgICAgICBm
b3IgKE5vZGUqIGNoaWxkID0gcGFyZW50LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICBtX25vZGVzVG9CZVJlbW92ZWQuYXBwZW5k
KCpjaGlsZCk7CisgICAgfQorCisgICAgdm9pZCBhZGRDaGlsZE5vZGUoTm9kZSYgY2hpbGQpCisg
ICAgeworICAgICAgICBtX25vZGVzVG9CZVJlbW92ZWQuYXBwZW5kKGNoaWxkKTsKKyAgICB9CisK
KyAgICAvLyBUaGlzIHZhbHVlIHdhcyBwaWNrZWQgdG8gYWNjb21tb2RhdGUgOTAlIHBlcmNlbnRp
bGUgb2YgRE9NIG9wZXJhdGlvbnMgb2JzZXJ2ZWQgb24gcG9wdWxhciB3ZWJzaXRlcyBzdWNoIGFz
IEZhY2Vib29rLgorICAgIHN0YXRpYyBjb25zdCBpbnQgaW5saW5lVmVjdG9yU2l6ZSA9IDExOwor
CisgICAgY29uc3QgVmVjdG9yPFJlZjxOb2RlPiwgaW5saW5lVmVjdG9yU2l6ZT4mIG5vZGVzVG9C
ZVJlbW92ZWQoKSBjb25zdCB7IHJldHVybiBtX25vZGVzVG9CZVJlbW92ZWQ7IH0KKyAgICBOb2Rl
UmVtb3ZhbFNjb3BlKiBwcmV2aW91c1Njb3BlKCkgeyByZXR1cm4gbV9wcmV2aW91c1Njb3BlOyB9
CisKK3ByaXZhdGU6CisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7CisgICAgVmVjdG9yPFJlZjxO
b2RlPiwgaW5saW5lVmVjdG9yU2l6ZT4gbV9ub2Rlc1RvQmVSZW1vdmVkOworICAgIE5vZGVSZW1v
dmFsU2NvcGUqIG1fcHJldmlvdXNTY29wZSB7IG51bGxwdHIgfTsKK307CisKK30KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxTbG90RWxlbWVudC5jcHAJKHJldmlzaW9uIDIxMjkzMSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNsb3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAKKyNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtNzMsNyArNzUsMTMgQEAKICAgICAg
ICAgQVNTRVJUKG9sZFNoYWRvd1Jvb3QpOwogICAgICAgICBvbGRTaGFkb3dSb290LT5yZW1vdmVT
bG90RWxlbWVudEJ5TmFtZShhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKG5hbWVBdHRy
KSwgKnRoaXMpOwogICAgIH0KLQorLyoKKyAgICBib29sIGRpc2Nvbm5lY3RlZCA9IGluRG9jdW1l
bnQoKTsKKyAgICBpZiAoZGlzY29ubmVjdGVkICYmIG1faW5TaWduYWxTbG90TGlzdCkgeworICAg
ICAgICBkb2N1bWVudCgpLmRpZFJlbW92ZUZyb21TaWduYWxTbG90TGlzdCgqdGhpcyk7CisgICAg
ICAgIGRvY3VtZW50KCkuZGlkQWRkVG9TaWduYWxTbG90TGlzdCgqdGhpcyk7CisgICAgfQorKi8K
ICAgICBIVE1MRWxlbWVudDo6cmVtb3ZlZEZyb20oaW5zZXJ0aW9uUG9pbnQpOwogfQogCkBAIC0x
MzgsNiArMTQ2LDE5IEBACiAgICAgICAgIHJldHVybjsKICAgICBtX2luU2lnbmFsU2xvdExpc3Qg
PSB0cnVlOwogICAgIE11dGF0aW9uT2JzZXJ2ZXI6OmVucXVldWVTbG90Q2hhbmdlRXZlbnQoKnRo
aXMpOworCisgICAgaWYgKGF1dG8qIGRhdGEgPSBldmVudFRhcmdldERhdGEoKSkgeworICAgICAg
ICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAgICBpZiAo
YXV0byogbGlzdGVuZXJzVmVjdG9yID0gZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5maW5kKGV2ZW50
TmFtZXMoKS5zbG90Y2hhbmdlRXZlbnQpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHJlZ2lz
dGVyZWRMaXN0ZW5lciA6ICpsaXN0ZW5lcnNWZWN0b3IpIHsKKyAgICAgICAgICAgICAgICBpZiAo
cmVnaXN0ZXJlZExpc3RlbmVyLT53YXNSZW1vdmVkKCkpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgICAgIGF1dG8mIGxpc3RlbmVyID0gcmVnaXN0ZXJlZExpc3Rl
bmVyLT5jYWxsYmFjaygpOworICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lci50eXBlKCkgIT0g
RXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyVHlwZSkKKyAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8SlNFdmVudExpc3RlbmVyJj4obGlzdGVuZXIpLmpzRnVuY3Rpb24oY29udGV4
dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgSFRNTFNsb3RF
bGVtZW50OjpkaXNwYXRjaFNsb3RDaGFuZ2VFdmVudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTbG90RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNsb3RFbGVtZW50LmgJKHJldmlzaW9uIDIxMjkzMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNsb3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDggQEAKICAg
ICBWZWN0b3I8Tm9kZSo+IGFzc2lnbmVkTm9kZXMoY29uc3QgQXNzaWduZWROb2Rlc09wdGlvbnMm
KSBjb25zdDsKIAogICAgIHZvaWQgZW5xdWV1ZVNsb3RDaGFuZ2VFdmVudCgpOworCisgICAgYm9v
bCBpblNpZ25hbFNsb3RMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9pblNpZ25hbFNsb3RMaXN0OyB9
CiAgICAgdm9pZCBkaWRSZW1vdmVGcm9tU2lnbmFsU2xvdExpc3QoKSB7IG1faW5TaWduYWxTbG90
TGlzdCA9IGZhbHNlOyB9CiAKICAgICB2b2lkIGRpc3BhdGNoU2xvdENoYW5nZUV2ZW50KCk7Cklu
ZGV4OiBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9BbGwgU291cmNl
Lnhjc2NoZW1lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEv
eGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJKHJldmlzaW9uIDIxMjkzMSkKKysrIFdlYktp
dC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJ
KHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKICAgICAgIDxCdWlsZEFjdGlvbkVudHJp
ZXM+CiAgICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQogICAgICAgICAgICAgYnVpbGRGb3JUZXN0
aW5nID0gIllFUyIKLSAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZRVMiCisgICAgICAg
ICAgICBidWlsZEZvclJ1bm5pbmcgPSAiTk8iCiAgICAgICAgICAgICBidWlsZEZvclByb2ZpbGlu
ZyA9ICJZRVMiCiAgICAgICAgICAgICBidWlsZEZvckFyY2hpdmluZyA9ICJZRVMiCiAgICAgICAg
ICAgICBidWlsZEZvckFuYWx5emluZyA9ICJZRVMiPgpAQCAtMzksNyArMzksNyBAQAogICAgICAg
ICAgPC9CdWlsZEFjdGlvbkVudHJ5PgogICAgICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKICAgICAg
ICAgICAgIGJ1aWxkRm9yVGVzdGluZyA9ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvclJ1bm5p
bmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIk5PIgogICAgICAgICAg
ICAgYnVpbGRGb3JQcm9maWxpbmcgPSAiWUVTIgogICAgICAgICAgICAgYnVpbGRGb3JBcmNoaXZp
bmcgPSAiWUVTIgogICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KQEAgLTUz
LDcgKzUzLDcgQEAKICAgICAgICAgIDwvQnVpbGRBY3Rpb25FbnRyeT4KICAgICAgICAgIDxCdWls
ZEFjdGlvbkVudHJ5CiAgICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgotICAgICAg
ICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUnVubmlu
ZyA9ICJOTyIKICAgICAgICAgICAgIGJ1aWxkRm9yUHJvZmlsaW5nID0gIllFUyIKICAgICAgICAg
ICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKICAgICAgICAgICAgIGJ1aWxkRm9yQW5hbHl6
aW5nID0gIllFUyI+CkBAIC02Nyw3ICs2Nyw3IEBACiAgICAgICAgICA8L0J1aWxkQWN0aW9uRW50
cnk+CiAgICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQogICAgICAgICAgICAgYnVpbGRGb3JUZXN0
aW5nID0gIllFUyIKLSAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZRVMiCisgICAgICAg
ICAgICBidWlsZEZvclJ1bm5pbmcgPSAiTk8iCiAgICAgICAgICAgICBidWlsZEZvclByb2ZpbGlu
ZyA9ICJZRVMiCiAgICAgICAgICAgICBidWlsZEZvckFyY2hpdmluZyA9ICJZRVMiCiAgICAgICAg
ICAgICBidWlsZEZvckFuYWx5emluZyA9ICJZRVMiPgpAQCAtODEsNyArODEsNyBAQAogICAgICAg
ICAgPC9CdWlsZEFjdGlvbkVudHJ5PgogICAgICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKICAgICAg
ICAgICAgIGJ1aWxkRm9yVGVzdGluZyA9ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvclJ1bm5p
bmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIk5PIgogICAgICAgICAg
ICAgYnVpbGRGb3JQcm9maWxpbmcgPSAiWUVTIgogICAgICAgICAgICAgYnVpbGRGb3JBcmNoaXZp
bmcgPSAiWUVTIgogICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KQEAgLTk1
LDcgKzk1LDcgQEAKICAgICAgICAgIDwvQnVpbGRBY3Rpb25FbnRyeT4KICAgICAgICAgIDxCdWls
ZEFjdGlvbkVudHJ5CiAgICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgotICAgICAg
ICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUnVubmlu
ZyA9ICJOTyIKICAgICAgICAgICAgIGJ1aWxkRm9yUHJvZmlsaW5nID0gIllFUyIKICAgICAgICAg
ICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKICAgICAgICAgICAgIGJ1aWxkRm9yQW5hbHl6
aW5nID0gIllFUyI+CkBAIC0xMDksNyArMTA5LDcgQEAKICAgICAgICAgIDwvQnVpbGRBY3Rpb25F
bnRyeT4KICAgICAgICAgIDxCdWlsZEFjdGlvbkVudHJ5CiAgICAgICAgICAgICBidWlsZEZvclRl
c3RpbmcgPSAiWUVTIgotICAgICAgICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAg
ICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJOTyIKICAgICAgICAgICAgIGJ1aWxkRm9yUHJvZmls
aW5nID0gIllFUyIKICAgICAgICAgICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKICAgICAg
ICAgICAgIGJ1aWxkRm9yQW5hbHl6aW5nID0gIllFUyI+CkBAIC0xMjMsNyArMTIzLDcgQEAKICAg
ICAgICAgIDwvQnVpbGRBY3Rpb25FbnRyeT4KICAgICAgICAgIDxCdWlsZEFjdGlvbkVudHJ5CiAg
ICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgotICAgICAgICAgICAgYnVpbGRGb3JS
dW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJOTyIKICAgICAg
ICAgICAgIGJ1aWxkRm9yUHJvZmlsaW5nID0gIllFUyIKICAgICAgICAgICAgIGJ1aWxkRm9yQXJj
aGl2aW5nID0gIllFUyIKICAgICAgICAgICAgIGJ1aWxkRm9yQW5hbHl6aW5nID0gIllFUyI+CkBA
IC0xMzgsNDkgKzEzOCw5MCBAQAogICAgICAgPC9CdWlsZEFjdGlvbkVudHJpZXM+CiAgICA8L0J1
aWxkQWN0aW9uPgogICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJE
ZWJ1ZyIKICAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2Vy
Rm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgogICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZp
ZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCi0gICAgICBzaG91
bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyIKLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlv
biA9ICJEZWJ1ZyI+CisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+
CiAgICAgICA8VGVzdGFibGVzPgogICAgICAgPC9UZXN0YWJsZXM+CiAgICAgICA8TWFjcm9FeHBh
bnNpb24+CiAgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCiAgICAgICAgICAgICBCdWlsZGFi
bGVJZGVudGlmaWVyID0gInByaW1hcnkiCi0gICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVy
ID0gIjhEMTEwNzI2MDQ4NkNFQjgwMEU0NzA5MCIKLSAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUg
PSAiTWluaUJyb3dzZXIuYXBwIgotICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJNaW5pQnJv
d3NlciIKLSAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOlRvb2xz
L01pbmlCcm93c2VyL01pbmlCcm93c2VyLnhjb2RlcHJvaiI+CisgICAgICAgICAgICBCbHVlcHJp
bnRJZGVudGlmaWVyID0gIjkzNDA5OTRBMDg1NDBDQUUwMDdGM0JDOCIKKyAgICAgICAgICAgIEJ1
aWxkYWJsZU5hbWUgPSAiRHVtcFJlbmRlclRyZWUiCisgICAgICAgICAgICBCbHVlcHJpbnROYW1l
ID0gIkR1bXBSZW5kZXJUcmVlIgorICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJj
b250YWluZXI6VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qIj4K
ICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgogICAgICAgPC9NYWNyb0V4cGFuc2lvbj4K
KyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4KKyAgICAgIDwvQWRkaXRpb25hbE9wdGlvbnM+CiAg
ICA8L1Rlc3RBY3Rpb24+CiAgICA8TGF1bmNoQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRp
b24gPSAiRGVidWciCiAgICAgICBzZWxlY3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5E
ZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKICAgICAgIHNlbGVjdGVkTGF1bmNoZXJJ
ZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgogICAg
ICAgbGF1bmNoU3R5bGUgPSAiMCIKICAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAi
Tk8iCi0gICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCiAgICAgICBpZ25vcmVzUGVy
c2lzdGVudFN0YXRlT25MYXVuY2ggPSAiWUVTIgogICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25p
bmcgPSAiWUVTIgorICAgICAgZGVidWdTZXJ2aWNlRXh0ZW5zaW9uID0gImludGVybmFsIgogICAg
ICAgYWxsb3dMb2NhdGlvblNpbXVsYXRpb24gPSAiWUVTIj4KLSAgICAgIDxCdWlsZGFibGVQcm9k
dWN0UnVubmFibGU+CisgICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlCisgICAgICAgICBy
dW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CiAgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNl
CiAgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCi0gICAgICAgICAg
ICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjhEMTEwNzI2MDQ4NkNFQjgwMEU0NzA5MCIKLSAgICAg
ICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAiTWluaUJyb3dzZXIuYXBwIgotICAgICAgICAgICAgQmx1
ZXByaW50TmFtZSA9ICJNaW5pQnJvd3NlciIKLSAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWlu
ZXIgPSAiY29udGFpbmVyOlRvb2xzL01pbmlCcm93c2VyL01pbmlCcm93c2VyLnhjb2RlcHJvaiI+
CisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjkzNDA5OTRBMDg1NDBDQUUwMDdG
M0JDOCIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAiRHVtcFJlbmRlclRyZWUiCisgICAg
ICAgICAgICBCbHVlcHJpbnROYW1lID0gIkR1bXBSZW5kZXJUcmVlIgorICAgICAgICAgICAgUmVm
ZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUueGNvZGVwcm9qIj4KICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgogICAg
ICAgPC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+CisgICAgICA8Q29tbWFuZExpbmVBcmd1bWVu
dHM+CisgICAgICAgICA8Q29tbWFuZExpbmVBcmd1bWVudAorICAgICAgICAgICAgYXJndW1lbnQg
PSAiLi4vLi4vTGF5b3V0VGVzdHMvZmFzdC9zaGFkb3ctZG9tL3Nsb3RjaGFuZ2UtZXZlbnQtYnVi
YmxpbmcuaHRtbCIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAgICAgPC9D
b21tYW5kTGluZUFyZ3VtZW50PgorICAgICAgPC9Db21tYW5kTGluZUFyZ3VtZW50cz4KKyAgICAg
IDxFbnZpcm9ubWVudFZhcmlhYmxlcz4KKyAgICAgICAgIDxFbnZpcm9ubWVudFZhcmlhYmxlCisg
ICAgICAgICAgICBrZXkgPSAiSlNDX3NjcmliYmxlRnJlZUNlbGxzIgorICAgICAgICAgICAgdmFs
dWUgPSAidHJ1ZSIKKyAgICAgICAgICAgIGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAgICAgPC9F
bnZpcm9ubWVudFZhcmlhYmxlPgorICAgICAgICAgPEVudmlyb25tZW50VmFyaWFibGUKKyAgICAg
ICAgICAgIGtleSA9ICJKU0NfbG9nR0MiCisgICAgICAgICAgICB2YWx1ZSA9ICIyIgorICAgICAg
ICAgICAgaXNFbmFibGVkID0gIllFUyI+CisgICAgICAgICA8L0Vudmlyb25tZW50VmFyaWFibGU+
CisgICAgICAgICA8RW52aXJvbm1lbnRWYXJpYWJsZQorICAgICAgICAgICAga2V5ID0gIkpTQ19j
b2xsZWN0Q29udGludW91c2x5IgorICAgICAgICAgICAgdmFsdWUgPSAidHJ1ZSIKKyAgICAgICAg
ICAgIGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAgICAgPC9FbnZpcm9ubWVudFZhcmlhYmxlPgor
ICAgICAgICAgPEVudmlyb25tZW50VmFyaWFibGUKKyAgICAgICAgICAgIGtleSA9ICJKU0NfdXNl
R2VuZXJhdGlvbmFsR0MiCisgICAgICAgICAgICB2YWx1ZSA9ICJmYWxzZSIKKyAgICAgICAgICAg
IGlzRW5hYmxlZCA9ICJZRVMiPgorICAgICAgICAgPC9FbnZpcm9ubWVudFZhcmlhYmxlPgorICAg
ICAgPC9FbnZpcm9ubWVudFZhcmlhYmxlcz4KICAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4KICAg
ICAgIDwvQWRkaXRpb25hbE9wdGlvbnM+CiAgICA8L0xhdW5jaEFjdGlvbj4KICAgIDxQcm9maWxl
QWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKICAgICAgIHNob3Vs
ZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIgogICAgICAgc2F2ZWRUb29sSWRlbnRpZmll
ciA9ICIiCiAgICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5ID0gIk5PIgotICAgICAgYnVp
bGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCiAgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmlu
ZyA9ICJZRVMiPgorICAgICAgPE1hY3JvRXhwYW5zaW9uPgorICAgICAgICAgPEJ1aWxkYWJsZVJl
ZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgorICAg
ICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIxNEYyNzFCRDE4RUEzOTYzMDA4QzE1MkYi
CisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gImxpYmJtYWxsb2MuYSIKKyAgICAgICAgICAg
IEJsdWVwcmludE5hbWUgPSAiYm1hbGxvYyIKKyAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWlu
ZXIgPSAiY29udGFpbmVyOlNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qIj4KKyAgICAg
ICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9NYWNyb0V4cGFuc2lvbj4KICAgIDwv
UHJvZmlsZUFjdGlvbj4KICAgIDxBbmFseXplQWN0aW9uCiAgICAgICBidWlsZENvbmZpZ3VyYXRp
b24gPSAiRGVidWciPgpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMTI5MzMpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDItMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjEyNTQyKTogTWFrZSBUaW1lU2Vy
aWVzQ2hhcnQuY29tcHV0ZVRpbWVHcmlkIHN0b3BzIHgtYXhpcyBncmlkIHByZW1hdHVyZWx5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4MTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGltZSBp
dGVyYXRvciBvZiB0d28gbW9udGhzLCB0aHJlZSBtb250aHMsIGFuZCBmb3VyIG1vbnRocyB3aXRo
IHNvbWUgdGVzdHMuCisKKyAgICAgICAgQWxzbyBmb3Igb25lLW1vbnRoIHRpbWUgaXRlcmF0b3Is
IHJvdW5kIHRoZSBkYXkgb2YgbW9udGggdG8gMSBvciAxNSB3aGljaGV2ZXIgaXMgY2xvc2VyLgor
CisgICAgICAgICogYnJvd3Nlci10ZXN0cy90aW1lLXNlcmllcy1jaGFydC10ZXN0cy5qczogQWRk
ZWQgbW9yZSB0ZXN0cy4KKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy90aW1lLXNlcmll
cy1jaGFydC5qczoKKyAgICAgICAgKFRpbWVTZXJpZXNDaGFydC5fdGltZUl0ZXJhdG9ycy5uZXh0
KToKKyAgICAgICAgKFRpbWVTZXJpZXNDaGFydC5fdGltZUl0ZXJhdG9ycyk6CisKIDIwMTctMDIt
MjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHRlc3Rz
IGZvciBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydCBhbmQgYWRvcHQgYWN0aW9ucwpJbmRleDog
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvdGltZS1zZXJpZXMtY2hhcnQt
dGVzdHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXIt
dGVzdHMvdGltZS1zZXJpZXMtY2hhcnQtdGVzdHMuanMJKHJldmlzaW9uIDIxMjkzMSkKKysrIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3RpbWUtc2VyaWVzLWNoYXJ0LXRl
c3RzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0zMDYsNiArMzA2LDY0IEBACiAgICAgICAgICAgICAg
ICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbMV0sICcxLzI5JywgJzIwMTctMDEtMjlUMDA6MDA6MDBa
Jyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBn
ZW5lcmF0ZSBzZXZlbiBvbmUtbW9udGggbGFiZWxzIGZvciBzaXggYW5kIGhhbGYgbW9udGhzIGlu
dGVydmFsIHN0YXJ0aW5nIGJlZm9yZSAxNXRoIHdoZW4gbWF4TGFiZWxzIGlzIDcnLCAoKSA9PiB7
CisgICAgICAgICAgICByZXR1cm4gbmV3IEJyb3dzaW5nQ29udGV4dCgpLmltcG9ydFNjcmlwdHMo
c2NyaXB0cywgJ1RpbWVTZXJpZXNDaGFydCcpLnRoZW4oKFRpbWVTZXJpZXNDaGFydCkgPT4gewor
ICAgICAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZSgnMjAxNy0wMS0xNVQxODo1
MzowMFonKTsKKyAgICAgICAgICAgICAgICBjb25zdCBsYWJlbHMgPSBUaW1lU2VyaWVzQ2hhcnQu
Y29tcHV0ZVRpbWVHcmlkKG5ldyBEYXRlKCcyMDE2LTA3LTEyVDE4OjUzOjAwWicpLCBuZXcgRGF0
ZSgnMjAxNy0wMS0xOFQwODoxNzo1M1onKSwgNyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGxh
YmVscykudG8uYmUuYSgnYXJyYXknKTsKKyAgICAgICAgICAgICAgICBleHBlY3QobGFiZWxzLmxl
bmd0aCkudG8uYmUoNyk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbMF0s
ICc3LzE1JywgJzIwMTYtMDctMTVUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tH
cmlkSXRlbShsYWJlbHNbMV0sICc4LzE1JywgJzIwMTYtMDgtMTVUMDA6MDA6MDBaJyk7CisgICAg
ICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbMl0sICc5LzE1JywgJzIwMTYtMDktMTVU
MDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbM10sICcx
MC8xNScsICcyMDE2LTEwLTE1VDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3Jp
ZEl0ZW0obGFiZWxzWzRdLCAnMTEvMTUnLCAnMjAxNi0xMS0xNVQwMDowMDowMFonKTsKKyAgICAg
ICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1s1XSwgJzEyLzE1JywgJzIwMTYtMTItMTVU
MDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbNl0sICcx
LzE1JywgJzIwMTctMDEtMTVUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBzZXZlbiBvbmUtbW9udGggbGFiZWxz
IGZvciBzaXggbW9udGhzIGludGVydmFsIHN0YXJpbmcgYWZ0ZXIgMTV0aCB3aGVuIG1heExhYmVs
cyBpcyA3JywgKCkgPT4geworICAgICAgICAgICAgcmV0dXJuIG5ldyBCcm93c2luZ0NvbnRleHQo
KS5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdUaW1lU2VyaWVzQ2hhcnQnKS50aGVuKChUaW1lU2Vy
aWVzQ2hhcnQpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUo
JzIwMTctMDEtMTVUMTg6NTM6MDBaJyk7CisgICAgICAgICAgICAgICAgY29uc3QgbGFiZWxzID0g
VGltZVNlcmllc0NoYXJ0LmNvbXB1dGVUaW1lR3JpZChuZXcgRGF0ZSgnMjAxNi0wNy0xOFQxODo1
MzowMFonKSwgbmV3IERhdGUoJzIwMTctMDEtMThUMDg6MTc6NTNaJyksIDcpOworICAgICAgICAg
ICAgICAgIGV4cGVjdChsYWJlbHMpLnRvLmJlLmEoJ2FycmF5Jyk7CisgICAgICAgICAgICAgICAg
ZXhwZWN0KGxhYmVscy5sZW5ndGgpLnRvLmJlKDYpOworICAgICAgICAgICAgICAgIGNoZWNrR3Jp
ZEl0ZW0obGFiZWxzWzBdLCAnOC8xJywgJzIwMTYtMDgtMDFUMDA6MDA6MDBaJyk7CisgICAgICAg
ICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbMV0sICc5LzEnLCAnMjAxNi0wOS0wMVQwMDow
MDowMFonKTsKKyAgICAgICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1syXSwgJzEwLzEn
LCAnMjAxNi0xMC0wMVQwMDowMDowMFonKTsKKyAgICAgICAgICAgICAgICBjaGVja0dyaWRJdGVt
KGxhYmVsc1szXSwgJzExLzEnLCAnMjAxNi0xMS0wMVQwMDowMDowMFonKTsKKyAgICAgICAgICAg
ICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1s0XSwgJzEyLzEnLCAnMjAxNi0xMi0wMVQwMDowMDow
MFonKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxk
IGdlbmVyYXRlIHNpeCB0d28tbW9udGhzIGxhYmVscyBmb3Igb25lIHllYXIgaW50ZXJ2YWwgd2hl
biBtYXhMYWJlbHMgaXMgNycsICgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQnJvd3Np
bmdDb250ZXh0KCkuaW1wb3J0U2NyaXB0cyhzY3JpcHRzLCAnVGltZVNlcmllc0NoYXJ0JykudGhl
bigoVGltZVNlcmllc0NoYXJ0KSA9PiB7CisgICAgICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9
IG5ldyBEYXRlKCcyMDE3LTAxLTE1VDE4OjUzOjAwWicpOworICAgICAgICAgICAgICAgIGNvbnN0
IGxhYmVscyA9IFRpbWVTZXJpZXNDaGFydC5jb21wdXRlVGltZUdyaWQobmV3IERhdGUoJzIwMTYt
MDctMTFUMTg6NTM6MDBaJyksIG5ldyBEYXRlKCcyMDE3LTA3LTI3VDA4OjE3OjUzWicpLCA3KTsK
KyAgICAgICAgICAgICAgICBleHBlY3QobGFiZWxzKS50by5iZS5hKCdhcnJheScpOworICAgICAg
ICAgICAgICAgIGV4cGVjdChsYWJlbHMubGVuZ3RoKS50by5iZSg2KTsKKyAgICAgICAgICAgICAg
ICBjaGVja0dyaWRJdGVtKGxhYmVsc1swXSwgJzkvMScsICcyMDE2LTA5LTAxVDAwOjAwOjAwWicp
OworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzFdLCAnMTEvMScsICcyMDE2
LTExLTAxVDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxz
WzJdLCAnMS8xJywgJzIwMTctMDEtMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hl
Y2tHcmlkSXRlbShsYWJlbHNbM10sICczLzEnLCAnMjAxNy0wMy0wMVQwMDowMDowMFonKTsKKyAg
ICAgICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1s0XSwgJzUvMScsICcyMDE3LTA1LTAx
VDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzVdLCAn
Ny8xJywgJzIwMTctMDctMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBmb3VyIHRocmVlLW1vbnRocyBsYWJl
bHMgZm9yIG9uZSB5ZWFyIGludGVydmFsIHdoZW4gbWF4TGFiZWxzIGlzIDUnLCAoKSA9PiB7Cisg
ICAgICAgICAgICByZXR1cm4gbmV3IEJyb3dzaW5nQ29udGV4dCgpLmltcG9ydFNjcmlwdHMoc2Ny
aXB0cywgJ1RpbWVTZXJpZXNDaGFydCcpLnRoZW4oKFRpbWVTZXJpZXNDaGFydCkgPT4geworICAg
ICAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZSgnMjAxNy0wMS0xNVQxODo1Mzow
MFonKTsKKyAgICAgICAgICAgICAgICBjb25zdCBsYWJlbHMgPSBUaW1lU2VyaWVzQ2hhcnQuY29t
cHV0ZVRpbWVHcmlkKG5ldyBEYXRlKCcyMDE2LTA3LTExVDE4OjUzOjAwWicpLCBuZXcgRGF0ZSgn
MjAxNy0wNy0yN1QwODoxNzo1M1onKSwgNSk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGxhYmVs
cykudG8uYmUuYSgnYXJyYXknKTsKKyAgICAgICAgICAgICAgICBleHBlY3QobGFiZWxzLmxlbmd0
aCkudG8uYmUoNCk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbMF0sICcx
MC8xJywgJzIwMTYtMTAtMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlk
SXRlbShsYWJlbHNbMV0sICcxLzEnLCAnMjAxNy0wMS0wMVQwMDowMDowMFonKTsKKyAgICAgICAg
ICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1syXSwgJzQvMScsICcyMDE3LTA0LTAxVDAwOjAw
OjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzNdLCAnNy8xJywg
JzIwMTctMDctMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAg
ICAgfSk7CiAKICAgICBkZXNjcmliZSgnY29tcHV0ZVZhbHVlR3JpZCcsICgpID0+IHsKSW5kZXg6
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90aW1lLXNlcmll
cy1jaGFydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMJKHJldmlzaW9uIDIxMjkzMSkKKysr
IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy90aW1lLXNlcmll
cy1jaGFydC5qcwkod29ya2luZyBjb3B5KQpAQCAtNjE5LDcgKzYxOSw3IEBACiAKICAgICAgICAg
bGV0IHByZXZpb3VzRGF0ZSA9IG51bGw7CiAgICAgICAgIGxldCBwcmV2aW91c01vbnRoID0gbnVs
bDsKLSAgICAgICAgd2hpbGUgKGN1cnJlbnRUaW1lIDw9IG1heCAmJiByZXN1bHQubGVuZ3RoIDwg
bWF4TGFiZWxzKSB7CisgICAgICAgIHdoaWxlIChjdXJyZW50VGltZSA8PSBtYXgpIHsKICAgICAg
ICAgICAgIGNvbnN0IHRpbWUgPSBuZXcgRGF0ZShjdXJyZW50VGltZSk7CiAgICAgICAgICAgICBj
b25zdCBtb250aCA9IHRpbWUuZ2V0VVRDTW9udGgoKSArIDE7CiAgICAgICAgICAgICBjb25zdCBk
YXRlID0gdGltZS5nZXRVVENEYXRlKCk7CkBAIC03MTMsOSArNzEzLDQwIEBACiAgICAgICAgICAg
ICAgICAgZGlmZjogMzEgKiBEQVksCiAgICAgICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24gKGRh
dGUpIHsKICAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENIb3VycygwKTsKLSAgICAgICAg
ICAgICAgICAgICAgZGF0ZS5zZXRVVENNb250aChkYXRlLmdldFVUQ01vbnRoKCkgKyAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgY29uc3QgZGF5T2ZNb250aCA9IGRhdGUuZ2V0VVRDRGF0ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAoZGF5T2ZNb250aCA+IDEgJiYgZGF5T2ZNb250aCA8IDE1
KQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENEYXRlKDE1KTsKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF5T2ZNb250
aCAhPSAxNSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLnNldFVUQ0RhdGUoMSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRlLnNldFVUQ01vbnRoKGRhdGUuZ2V0VVRDTW9u
dGgoKSArIDEpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkaWZmOiA2MCAqIERB
WSwKKyAgICAgICAgICAgICAgICBuZXh0OiBmdW5jdGlvbiAoZGF0ZSkgeworICAgICAgICAgICAg
ICAgICAgICBkYXRlLnNldFVUQ0hvdXJzKDApOworICAgICAgICAgICAgICAgICAgICBkYXRlLnNl
dFVUQ0RhdGUoMSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGUuc2V0VVRDTW9udGgoZGF0ZS5n
ZXRVVENNb250aCgpICsgMik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkaWZmOiA5MCAqIERBWSwKKyAgICAgICAgICAg
ICAgICBuZXh0OiBmdW5jdGlvbiAoZGF0ZSkgeworICAgICAgICAgICAgICAgICAgICBkYXRlLnNl
dFVUQ0hvdXJzKDApOworICAgICAgICAgICAgICAgICAgICBkYXRlLnNldFVUQ0RhdGUoMSk7Cisg
ICAgICAgICAgICAgICAgICAgIGRhdGUuc2V0VVRDTW9udGgoZGF0ZS5nZXRVVENNb250aCgpICsg
Myk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBkaWZmOiAxMjAgKiBEQVksCisgICAgICAgICAgICAgICAgbmV4dDogZnVu
Y3Rpb24gKGRhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENIb3VycygwKTsK
KyAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENEYXRlKDEpOworICAgICAgICAgICAgICAg
ICAgICBkYXRlLnNldFVUQ01vbnRoKGRhdGUuZ2V0VVRDTW9udGgoKSArIDQpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0sCiAgICAgICAgIF07CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302621</attachid>
            <date>2017-02-23 18:07:29 -0800</date>
            <delta_ts>2017-02-23 19:14:26 -0800</delta_ts>
            <desc>Removed superfluous changes</desc>
            <filename>fix168812.patch</filename>
            <type>text/plain</type>
            <size>7499</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyOTMzKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE5IEBACisyMDE3LTAyLTIzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIFJFR1JFU1NJT04ocjIxMjU0Mik6IE1ha2UgVGltZVNlcmllc0NoYXJ0LmNvbXB1
dGVUaW1lR3JpZCBzdG9wcyB4LWF4aXMgZ3JpZCBwcmVtYXR1cmVseQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4ODEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRpbWUgaXRlcmF0b3Igb2YgdHdv
IG1vbnRocywgdGhyZWUgbW9udGhzLCBhbmQgZm91ciBtb250aHMgd2l0aCBzb21lIHRlc3RzLgor
CisgICAgICAgIEFsc28gZm9yIG9uZS1tb250aCB0aW1lIGl0ZXJhdG9yLCByb3VuZCB0aGUgZGF5
IG9mIG1vbnRoIHRvIDEgb3IgMTUgd2hpY2hldmVyIGlzIGNsb3Nlci4KKworICAgICAgICAqIGJy
b3dzZXItdGVzdHMvdGltZS1zZXJpZXMtY2hhcnQtdGVzdHMuanM6IEFkZGVkIG1vcmUgdGVzdHMu
CisgICAgICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanM6Cisg
ICAgICAgIChUaW1lU2VyaWVzQ2hhcnQuX3RpbWVJdGVyYXRvcnMubmV4dCk6CisgICAgICAgIChU
aW1lU2VyaWVzQ2hhcnQuX3RpbWVJdGVyYXRvcnMpOgorCiAyMDE3LTAyLTIyICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCB0ZXN0cyBmb3IgSW50ZXJhY3Rp
dmVUaW1lU2VyaWVzQ2hhcnQgYW5kIGFkb3B0IGFjdGlvbnMKSW5kZXg6IFdlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3RpbWUtc2VyaWVzLWNoYXJ0LXRlc3RzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL3RpbWUtc2Vy
aWVzLWNoYXJ0LXRlc3RzLmpzCShyZXZpc2lvbiAyMTI5MzEpCisrKyBXZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvYnJvd3Nlci10ZXN0cy90aW1lLXNlcmllcy1jaGFydC10ZXN0cy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMzA2LDYgKzMwNiw2NCBAQAogICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0
ZW0obGFiZWxzWzFdLCAnMS8yOScsICcyMDE3LTAxLTI5VDAwOjAwOjAwWicpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgc2V2ZW4g
b25lLW1vbnRoIGxhYmVscyBmb3Igc2l4IGFuZCBoYWxmIG1vbnRocyBpbnRlcnZhbCBzdGFydGlu
ZyBiZWZvcmUgMTV0aCB3aGVuIG1heExhYmVscyBpcyA3JywgKCkgPT4geworICAgICAgICAgICAg
cmV0dXJuIG5ldyBCcm93c2luZ0NvbnRleHQoKS5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdUaW1l
U2VyaWVzQ2hhcnQnKS50aGVuKChUaW1lU2VyaWVzQ2hhcnQpID0+IHsKKyAgICAgICAgICAgICAg
ICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUoJzIwMTctMDEtMTVUMTg6NTM6MDBaJyk7CisgICAg
ICAgICAgICAgICAgY29uc3QgbGFiZWxzID0gVGltZVNlcmllc0NoYXJ0LmNvbXB1dGVUaW1lR3Jp
ZChuZXcgRGF0ZSgnMjAxNi0wNy0xMlQxODo1MzowMFonKSwgbmV3IERhdGUoJzIwMTctMDEtMThU
MDg6MTc6NTNaJyksIDcpOworICAgICAgICAgICAgICAgIGV4cGVjdChsYWJlbHMpLnRvLmJlLmEo
J2FycmF5Jyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGxhYmVscy5sZW5ndGgpLnRvLmJlKDcp
OworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzBdLCAnNy8xNScsICcyMDE2
LTA3LTE1VDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxz
WzFdLCAnOC8xNScsICcyMDE2LTA4LTE1VDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNo
ZWNrR3JpZEl0ZW0obGFiZWxzWzJdLCAnOS8xNScsICcyMDE2LTA5LTE1VDAwOjAwOjAwWicpOwor
ICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzNdLCAnMTAvMTUnLCAnMjAxNi0x
MC0xNVQwMDowMDowMFonKTsKKyAgICAgICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1s0
XSwgJzExLzE1JywgJzIwMTYtMTEtMTVUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hl
Y2tHcmlkSXRlbShsYWJlbHNbNV0sICcxMi8xNScsICcyMDE2LTEyLTE1VDAwOjAwOjAwWicpOwor
ICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzZdLCAnMS8xNScsICcyMDE3LTAx
LTE1VDAwOjAwOjAwWicpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgZ2VuZXJhdGUgc2V2ZW4gb25lLW1vbnRoIGxhYmVscyBmb3Igc2l4IG1vbnRo
cyBpbnRlcnZhbCBzdGFyaW5nIGFmdGVyIDE1dGggd2hlbiBtYXhMYWJlbHMgaXMgNycsICgpID0+
IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQnJvd3NpbmdDb250ZXh0KCkuaW1wb3J0U2NyaXB0
cyhzY3JpcHRzLCAnVGltZVNlcmllc0NoYXJ0JykudGhlbigoVGltZVNlcmllc0NoYXJ0KSA9PiB7
CisgICAgICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9IG5ldyBEYXRlKCcyMDE3LTAxLTE1VDE4
OjUzOjAwWicpOworICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVscyA9IFRpbWVTZXJpZXNDaGFy
dC5jb21wdXRlVGltZUdyaWQobmV3IERhdGUoJzIwMTYtMDctMThUMTg6NTM6MDBaJyksIG5ldyBE
YXRlKCcyMDE3LTAxLTE4VDA4OjE3OjUzWicpLCA3KTsKKyAgICAgICAgICAgICAgICBleHBlY3Qo
bGFiZWxzKS50by5iZS5hKCdhcnJheScpOworICAgICAgICAgICAgICAgIGV4cGVjdChsYWJlbHMu
bGVuZ3RoKS50by5iZSg2KTsKKyAgICAgICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1sw
XSwgJzgvMScsICcyMDE2LTA4LTAxVDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNr
R3JpZEl0ZW0obGFiZWxzWzFdLCAnOS8xJywgJzIwMTYtMDktMDFUMDA6MDA6MDBaJyk7CisgICAg
ICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbMl0sICcxMC8xJywgJzIwMTYtMTAtMDFU
MDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlkSXRlbShsYWJlbHNbM10sICcx
MS8xJywgJzIwMTYtMTEtMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlk
SXRlbShsYWJlbHNbNF0sICcxMi8xJywgJzIwMTYtMTItMDFUMDA6MDA6MDBaJyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBzaXgg
dHdvLW1vbnRocyBsYWJlbHMgZm9yIG9uZSB5ZWFyIGludGVydmFsIHdoZW4gbWF4TGFiZWxzIGlz
IDcnLCAoKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEJyb3dzaW5nQ29udGV4dCgpLmlt
cG9ydFNjcmlwdHMoc2NyaXB0cywgJ1RpbWVTZXJpZXNDaGFydCcpLnRoZW4oKFRpbWVTZXJpZXND
aGFydCkgPT4geworICAgICAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZSgnMjAx
Ny0wMS0xNVQxODo1MzowMFonKTsKKyAgICAgICAgICAgICAgICBjb25zdCBsYWJlbHMgPSBUaW1l
U2VyaWVzQ2hhcnQuY29tcHV0ZVRpbWVHcmlkKG5ldyBEYXRlKCcyMDE2LTA3LTExVDE4OjUzOjAw
WicpLCBuZXcgRGF0ZSgnMjAxNy0wNy0yN1QwODoxNzo1M1onKSwgNyk7CisgICAgICAgICAgICAg
ICAgZXhwZWN0KGxhYmVscykudG8uYmUuYSgnYXJyYXknKTsKKyAgICAgICAgICAgICAgICBleHBl
Y3QobGFiZWxzLmxlbmd0aCkudG8uYmUoNik7CisgICAgICAgICAgICAgICAgY2hlY2tHcmlkSXRl
bShsYWJlbHNbMF0sICc5LzEnLCAnMjAxNi0wOS0wMVQwMDowMDowMFonKTsKKyAgICAgICAgICAg
ICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1sxXSwgJzExLzEnLCAnMjAxNi0xMS0wMVQwMDowMDow
MFonKTsKKyAgICAgICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1syXSwgJzEvMScsICcy
MDE3LTAxLTAxVDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFi
ZWxzWzNdLCAnMy8xJywgJzIwMTctMDMtMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAg
Y2hlY2tHcmlkSXRlbShsYWJlbHNbNF0sICc1LzEnLCAnMjAxNy0wNS0wMVQwMDowMDowMFonKTsK
KyAgICAgICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1s1XSwgJzcvMScsICcyMDE3LTA3
LTAxVDAwOjAwOjAwWicpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCisgICAgICAg
IGl0KCdzaG91bGQgZ2VuZXJhdGUgZm91ciB0aHJlZS1tb250aHMgbGFiZWxzIGZvciBvbmUgeWVh
ciBpbnRlcnZhbCB3aGVuIG1heExhYmVscyBpcyA1JywgKCkgPT4geworICAgICAgICAgICAgcmV0
dXJuIG5ldyBCcm93c2luZ0NvbnRleHQoKS5pbXBvcnRTY3JpcHRzKHNjcmlwdHMsICdUaW1lU2Vy
aWVzQ2hhcnQnKS50aGVuKChUaW1lU2VyaWVzQ2hhcnQpID0+IHsKKyAgICAgICAgICAgICAgICBj
b25zdCBlbmRUaW1lID0gbmV3IERhdGUoJzIwMTctMDEtMTVUMTg6NTM6MDBaJyk7CisgICAgICAg
ICAgICAgICAgY29uc3QgbGFiZWxzID0gVGltZVNlcmllc0NoYXJ0LmNvbXB1dGVUaW1lR3JpZChu
ZXcgRGF0ZSgnMjAxNi0wNy0xMVQxODo1MzowMFonKSwgbmV3IERhdGUoJzIwMTctMDctMjdUMDg6
MTc6NTNaJyksIDUpOworICAgICAgICAgICAgICAgIGV4cGVjdChsYWJlbHMpLnRvLmJlLmEoJ2Fy
cmF5Jyk7CisgICAgICAgICAgICAgICAgZXhwZWN0KGxhYmVscy5sZW5ndGgpLnRvLmJlKDQpOwor
ICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzBdLCAnMTAvMScsICcyMDE2LTEw
LTAxVDAwOjAwOjAwWicpOworICAgICAgICAgICAgICAgIGNoZWNrR3JpZEl0ZW0obGFiZWxzWzFd
LCAnMS8xJywgJzIwMTctMDEtMDFUMDA6MDA6MDBaJyk7CisgICAgICAgICAgICAgICAgY2hlY2tH
cmlkSXRlbShsYWJlbHNbMl0sICc0LzEnLCAnMjAxNy0wNC0wMVQwMDowMDowMFonKTsKKyAgICAg
ICAgICAgICAgICBjaGVja0dyaWRJdGVtKGxhYmVsc1szXSwgJzcvMScsICcyMDE3LTA3LTAxVDAw
OjAwOjAwWicpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogCiAgICAg
ZGVzY3JpYmUoJ2NvbXB1dGVWYWx1ZUdyaWQnLCAoKSA9PiB7CkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L3RpbWUtc2VyaWVzLWNoYXJ0LmpzCShyZXZpc2lvbiAyMTI5MzEpCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMJKHdv
cmtpbmcgY29weSkKQEAgLTYxOSw3ICs2MTksNyBAQAogCiAgICAgICAgIGxldCBwcmV2aW91c0Rh
dGUgPSBudWxsOwogICAgICAgICBsZXQgcHJldmlvdXNNb250aCA9IG51bGw7Ci0gICAgICAgIHdo
aWxlIChjdXJyZW50VGltZSA8PSBtYXggJiYgcmVzdWx0Lmxlbmd0aCA8IG1heExhYmVscykgewor
ICAgICAgICB3aGlsZSAoY3VycmVudFRpbWUgPD0gbWF4KSB7CiAgICAgICAgICAgICBjb25zdCB0
aW1lID0gbmV3IERhdGUoY3VycmVudFRpbWUpOwogICAgICAgICAgICAgY29uc3QgbW9udGggPSB0
aW1lLmdldFVUQ01vbnRoKCkgKyAxOwogICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRpbWUuZ2V0
VVRDRGF0ZSgpOwpAQCAtNzEzLDkgKzcxMyw0MCBAQAogICAgICAgICAgICAgICAgIGRpZmY6IDMx
ICogREFZLAogICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIChkYXRlKSB7CiAgICAgICAg
ICAgICAgICAgICAgIGRhdGUuc2V0VVRDSG91cnMoMCk7Ci0gICAgICAgICAgICAgICAgICAgIGRh
dGUuc2V0VVRDTW9udGgoZGF0ZS5nZXRVVENNb250aCgpICsgMSk7CisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGRheU9mTW9udGggPSBkYXRlLmdldFVUQ0RhdGUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGRheU9mTW9udGggPiAxICYmIGRheU9mTW9udGggPCAxNSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGUuc2V0VVRDRGF0ZSgxNSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheU9mTW9udGggIT0gMTUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENEYXRlKDEpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0ZS5zZXRVVENNb250aChkYXRlLmdldFVUQ01vbnRoKCkgKyAxKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZGlmZjogNjAgKiBEQVksCisgICAgICAgICAg
ICAgICAgbmV4dDogZnVuY3Rpb24gKGRhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZS5z
ZXRVVENIb3VycygwKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENEYXRlKDEpOwor
ICAgICAgICAgICAgICAgICAgICBkYXRlLnNldFVUQ01vbnRoKGRhdGUuZ2V0VVRDTW9udGgoKSAr
IDIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgZGlmZjogOTAgKiBEQVksCisgICAgICAgICAgICAgICAgbmV4dDogZnVu
Y3Rpb24gKGRhdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENIb3VycygwKTsK
KyAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRVVENEYXRlKDEpOworICAgICAgICAgICAgICAg
ICAgICBkYXRlLnNldFVUQ01vbnRoKGRhdGUuZ2V0VVRDTW9udGgoKSArIDMpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ZGlmZjogMTIwICogREFZLAorICAgICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uIChkYXRlKSB7
CisgICAgICAgICAgICAgICAgICAgIGRhdGUuc2V0VVRDSG91cnMoMCk7CisgICAgICAgICAgICAg
ICAgICAgIGRhdGUuc2V0VVRDRGF0ZSgxKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0ZS5zZXRV
VENNb250aChkYXRlLmdldFVUQ01vbnRoKCkgKyA0KTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9LAogICAgICAgICBdOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>