<?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>126607</bug_id>
          
          <creation_ts>2014-01-07 17:05:18 -0800</creation_ts>
          <short_desc>Web Inspector: Remove leftover &apos;device metrics&apos; code</short_desc>
          <delta_ts>2014-01-07 18:16:52 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Seokju Kwon">seokju</reporter>
          <assigned_to name="Seokju Kwon">seokju</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965261</commentid>
    <comment_count>0</comment_count>
    <who name="Seokju Kwon">seokju</who>
    <bug_when>2014-01-07 17:05:18 -0800</bug_when>
    <thetext>Removes unused code related to &apos;device metrics&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965262</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-07 17:06:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/15768387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965263</commentid>
    <comment_count>2</comment_count>
      <attachid>220571</attachid>
    <who name="Seokju Kwon">seokju</who>
    <bug_when>2014-01-07 17:17:43 -0800</bug_when>
    <thetext>Created attachment 220571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965267</commentid>
    <comment_count>3</comment_count>
      <attachid>220571</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-01-07 17:33:33 -0800</bug_when>
    <thetext>Comment on attachment 220571
Patch

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

r=me, one nit

&gt; Source/WebCore/rendering/TextAutosizer.cpp:119
&gt;      if (windowInfo.windowSize.isEmpty()) {
&gt; -        bool includeScrollbars = !InspectorInstrumentation::shouldApplyScreenWidthOverride(&amp;mainFrame);
&gt; -        windowInfo.windowSize = mainFrame.view()-&gt;unscaledVisibleContentSize(includeScrollbars ? ScrollableArea::IncludeScrollbars : ScrollableArea::ExcludeScrollbars);
&gt; +        windowInfo.windowSize = mainFrame.view()-&gt;unscaledVisibleContentSize(ScrollableArea::IncludeScrollbars);
&gt;      }

Style: Remove the braces for this if now that it is s single statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965270</commentid>
    <comment_count>4</comment_count>
    <who name="Seokju Kwon">seokju</who>
    <bug_when>2014-01-07 17:37:12 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 220571 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220571&amp;action=review
&gt; 
&gt; r=me, one nit
&gt; 
&gt; &gt; Source/WebCore/rendering/TextAutosizer.cpp:119
&gt; &gt;      if (windowInfo.windowSize.isEmpty()) {
&gt; &gt; -        bool includeScrollbars = !InspectorInstrumentation::shouldApplyScreenWidthOverride(&amp;mainFrame);
&gt; &gt; -        windowInfo.windowSize = mainFrame.view()-&gt;unscaledVisibleContentSize(includeScrollbars ? ScrollableArea::IncludeScrollbars : ScrollableArea::ExcludeScrollbars);
&gt; &gt; +        windowInfo.windowSize = mainFrame.view()-&gt;unscaledVisibleContentSize(ScrollableArea::IncludeScrollbars);
&gt; &gt;      }
&gt; 
&gt; Style: Remove the braces for this if now that it is s single statement.

Thanks. I will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965271</commentid>
    <comment_count>5</comment_count>
      <attachid>220574</attachid>
    <who name="Seokju Kwon">seokju</who>
    <bug_when>2014-01-07 17:37:24 -0800</bug_when>
    <thetext>Created attachment 220574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965273</commentid>
    <comment_count>6</comment_count>
      <attachid>220576</attachid>
    <who name="Seokju Kwon">seokju</who>
    <bug_when>2014-01-07 17:42:06 -0800</bug_when>
    <thetext>Created attachment 220576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965281</commentid>
    <comment_count>7</comment_count>
      <attachid>220576</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-07 18:16:50 -0800</bug_when>
    <thetext>Comment on attachment 220576
Patch

Clearing flags on attachment: 220576

Committed r161477: &lt;http://trac.webkit.org/changeset/161477&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965282</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-07 18:16:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220571</attachid>
            <date>2014-01-07 17:17:43 -0800</date>
            <delta_ts>2014-01-07 17:37:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126607-20140108101741.patch</filename>
            <type>text/plain</type>
            <size>30525</size>
            <attacher name="Seokju Kwon">seokju</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjliNWY4MWQ4ZmEyODA2
OTJlYjNlNmFhNTdhMjA5MzM0ODFlZjkxNy4uZjE2YmZjNTA0MzNiNjgxODQyZTgyYzg4ODRjODkz
NTU1ZjQ0MzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTA3ICBTZW9r
anUgS3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJl
bW92ZSBsZWZ0b3ZlciAnZGV2aWNlIG1ldHJpY3MnIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgTm8gY2hhbmdlcyBpbiBi
ZWhhdmlvci4KKworICAgICAgICBSZW1vdmVzIHVudXNlZCBjb2RlIHJlbGF0ZWQgdG8gJ2Rldmlj
ZSBtZXRyaWNzJy4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OmRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpkaWRMYXlvdXQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6aW5uZXJXaWR0aCk6CisgICAgICAgICogcGFnZS9TY3JlZW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjpoZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyZWVuOjp3aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUpOgorCiAy
MDE0LTAxLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFBs
YXRmb3JtTGF5ZXIgY29udGFpbmluZyBzY3JvbGxiYXJzIGRvZXMgbm90IGRpc2FwcGVhciB3aGVu
IHNldHRpbmcgb3ZlcmZsb3c6aGlkZGVuIG9uIHBhZ2Ugcm9vdCwgdW50aWwgcmVzaXplLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMmMwN2ExYzViM2YzZDJlZTVkMzJjZTk2ZWI5
MWJiZWIyYTZkY2YyNS4uMmY0ODE2MzUxZGI3M2YyODY3NWRlMDlkNWM1NGNmNzA2YmNjZTJjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDEt
MDcgIFNlb2tqdSBLd29uICA8c2Vva2p1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUmVtb3ZlIGxlZnRvdmVyICdkZXZpY2UgbWV0cmljcycgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgYWZ0ZXIgcmVtb3Zp
bmcgSW5zcGVjdG9yQ2xpZW50OjpvdmVycmlkZURldmljZU1ldHJpY3MoKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaDoKKwogMjAxNC0wMS0w
NiAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgY2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzIGFuZCBzZXREZXZpY2VNZXRyaWNz
T3ZlcnJpZGUgZnJvbSBwcm90b2NvbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDkxNWM5Njg0NjFhNWE0
ZTgwM2FiNmY3ZmI5YjJhNmYyOWJlOTQ5ZjMuLmRlZWE3N2U4MzM3NDdjY2QyM2ZkZmU0MDkzOTE4
YWRiOTg2NjJkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wMS0w
NyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2MDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjogVXBkYXRl
IGFmdGVyIHJlbW92aW5nIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCku
CisKIDIwMTQtMDEtMDcgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI2NTYyPiBET01Qcm9ncmVzc0V2ZW50IGhhcyB1bnNwZWNp
ZmllZCBhdmFpbGFiaWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MjkwZTA5NmExZmQ3NDhlZmE5MzI0YjA0
MmI3M2NiMzVkY2NiNjU3Li5hMWU4ZmFiYTcyZGEyOTA4MWZiOTg5ZTAyNTQ5NDJjODM2MWE1ZmI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDEtMDcgIFNlb2tqdSBLd29uICA8
c2Vva2p1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIGxlZnRv
dmVyICdkZXZpY2UgbWV0cmljcycgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRlcjogVXBkYXRlIGFmdGVyIHJlbW92
aW5nIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkuCisKIDIwMTQtMDEt
MDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjE0NDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAKaW5kZXggZjllMzYxOTE3OWM0YzdkODMzN2QyNTk5MjE1ODcxMzc2
ODYzZTgyNC4uMWQxNzZlZGYxNGNjYTM1OWNkYjIzNTMyZGNmZDIxYmVlMDM2NzQyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMzY4LDcgKzM2OCw2
IEBAIHN0YXRpYyBib29sIGRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGCiAgICAgICAgIFJlbmRlclN0eWxlKiByb290U3R5
bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlclN0eWxlKCk7
CiAgICAgICAgIGludCBsZW5ndGg7CiAgICAgICAgIGxvbmcgaGVpZ2h0ID0gc2cuaGVpZ2h0KCk7
Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWlnaHRPdmVy
cmlkZShmcmFtZSwgJmhlaWdodCk7CiAgICAgICAgIHJldHVybiBjb21wdXRlTGVuZ3RoKHZhbHVl
LCAhZnJhbWUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBzdHlsZSwgcm9vdFN0eWxlLCBs
ZW5ndGgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCksIGxlbmd0aCwg
b3ApOwogICAgIH0KICAgICAvLyAoeyxtaW4tLG1heC19ZGV2aWNlLWhlaWdodCkKQEAgLTM4Myw3
ICszODIsNiBAQCBzdGF0aWMgYm9vbCBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcgogICAgICAgICBSZW5kZXJTdHlsZSog
cm9vdFN0eWxlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJT
dHlsZSgpOwogICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBsb25nIHdpZHRoID0gc2cud2lk
dGgoKTsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVNjcmVlbldpZHRo
T3ZlcnJpZGUoZnJhbWUsICZ3aWR0aCk7CiAgICAgICAgIHJldHVybiBjb21wdXRlTGVuZ3RoKHZh
bHVlLCAhZnJhbWUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBzdHlsZSwgcm9vdFN0eWxl
LCBsZW5ndGgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoKSwgbGVuZ3Ro
LCBvcCk7CiAgICAgfQogICAgIC8vICh7LG1pbi0sbWF4LX1kZXZpY2Utd2lkdGgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNTU5MDBlOTRlYWQ0YjQ2
NzIzYWVlYjE5NDIyMTMxY2U1YjhkZmQ2Yi4uOWZhMjM3ZjlkOTJkM2QzOWI2YWZkNGIxMmNiMDg1
NDJhMTVmNzhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
aApAQCAtNjEsMTUgKzYxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dz
ZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNhbk1vbml0b3JNYWluVGhyZWFkKCkg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBvdmVycmlkZURldmljZU1ldHJp
Y3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0IC8qZm9udFNjYWxlRmFjdG9y
Ki8sIGJvb2wgLypmaXRXaW5kb3cqLykKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBQbGF0Zm9y
bXMgbWF5IHdhbnQgdG8gaW1wbGVtZW50IHRoaXMgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODI4ODYpLgotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgYXV0b1pv
b21QYWdlVG9GaXRXaWR0aCgpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogUGxhdGZvcm1zIG1h
eSB3YW50IHRvIGltcGxlbWVudCB0aGlzIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgyODg2KS4KLSAgICB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgb3ZlcnJpZGVz
U2hvd1BhaW50UmVjdHMoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG93UGFpbnRSZWN0cyhib29sKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAyNTk0N2NhNmMwMWQ2YWEy
NTg1YTc2NThmOWE1NzE3ZmNiZjE1OWNmLi5lMGQ1ODc1M2I0NGQ4MGVkYzc3ZGE3M2MyN2MzZGMz
OWVlZTI5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjI1LDM4ICs2MjUsNiBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaQogICAgICAgICByZXNvdXJjZUFnZW50LT5hcHBseVVzZXJBZ2VudE92ZXJyaWRl
KHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVNj
cmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIGxvbmcqIHdpZHRoKQotewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQotICAgICAg
ICBwYWdlQWdlbnQtPmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZSh3aWR0aCk7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBsb25nKiBoZWlnaHQpCi17
Ci0gICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCi0gICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlTY3Jl
ZW5IZWlnaHRPdmVycmlkZShoZWlnaHQpOwotfQotCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQotewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKSB7
Ci0gICAgICAgIGxvbmcgd2lkdGggPSAwOwotICAgICAgICBwYWdlQWdlbnQtPmFwcGx5U2NyZWVu
V2lkdGhPdmVycmlkZSgmd2lkdGgpOwotICAgICAgICByZXR1cm4gISF3aWR0aDsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hv
dWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cykKLXsKLSAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkgewotICAgICAg
ICBsb25nIGhlaWdodCA9IDA7Ci0gICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlTY3JlZW5IZWlnaHRP
dmVycmlkZSgmaGVpZ2h0KTsKLSAgICAgICAgcmV0dXJuICEhaGVpZ2h0OwotICAgIH0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVt
dWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IFN0cmluZyogbWVkaWEpCiB7CiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
NGEyZDMyYTgxMzNmMjNiYTI2MWM2MTcwNGY1NzYyYTQyM2MwOTg0Ny4uYWExYWNlZGQyYWY5MTY0
YmYyNzYyZjc0Njg3OTY5NjI3NzRhNGJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTg2LDExICsxODYsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUHJvY2Vzc1J1bGUoY29uc3QgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llJik7CiAKICAgICBzdGF0aWMgdm9pZCBhcHBseVVzZXJBZ2VudE92
ZXJyaWRlKEZyYW1lKiwgU3RyaW5nKik7Ci0gICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5XaWR0
aE92ZXJyaWRlKEZyYW1lKiwgbG9uZyopOwotICAgIHN0YXRpYyB2b2lkIGFwcGx5U2NyZWVuSGVp
Z2h0T3ZlcnJpZGUoRnJhbWUqLCBsb25nKik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlFbXVsYXRl
ZE1lZGlhKEZyYW1lKiwgU3RyaW5nKik7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3Jl
ZW5XaWR0aE92ZXJyaWRlKEZyYW1lKik7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3Jl
ZW5IZWlnaHRPdmVycmlkZShGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVz
dChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsK
ICAgICBzdGF0aWMgdm9pZCBjb250aW51ZUFmdGVyUGluZ0xvYWRlcihGcmFtZSosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgbWFya1Jlc291cmNlQXNDYWNo
ZWQoUGFnZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CkBAIC0zODcsMTEgKzM4Myw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkUHJvY2Vzc1J1bGVJbXBsKGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGljIHZvaWQgYXBwbHlVc2Vy
QWdlbnRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFN0cmluZyopOwotICAgIHN0
YXRpYyB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIGxvbmcqKTsKLSAgICBzdGF0aWMgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgbG9uZyopOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5RW11
bGF0ZWRNZWRpYUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFN0cmluZyopOwotICAgIHN0YXRp
YyBib29sIHNob3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyopOwotICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVl
c3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSk7CiAgICAgc3RhdGljIHZvaWQgY29udGludWVBZnRlclBpbmdMb2Fk
ZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwogICAgIHN0YXRpYyB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVkSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKQEAgLTEyODEsNDIgKzEyNzMsNiBA
QCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5VXNlckFnZW50T3Zl
cnJpZGUoRnJhbWUqIGZyYW1lLCBTdHJpbgogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKiBmcmFt
ZSwgbG9uZyogd2lkdGgpCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBGQVNUX1JFVFVS
Tl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
Ci0gICAgICAgIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgd2lkdGgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotICAgIFVOVVNFRF9Q
QVJBTSh3aWR0aCk7Ci0jZW5kaWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKEZyYW1lKiBmcmFtZSwgbG9uZyogaGVp
Z2h0KQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKHZvaWQoKSk7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBh
cHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBoZWlnaHQp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotICAgIFVOVVNFRF9QQVJBTShoZWln
aHQpOwotI2VuZGlmCi19Ci0KLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKiBmcmFtZSkKLXsKLSNpZiBFTkFC
TEUoSU5TUEVDVE9SKQotICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7Ci0g
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm4gc2hvdWxkQXBwbHlT
Y3JlZW5XaWR0aE92ZXJyaWRlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGZyYW1lKTsKLSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0KLQogaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVkTWVkaWEoRnJh
bWUqIGZyYW1lLCBTdHJpbmcqIG1lZGlhKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBAIC0x
MzI5LDE4ICsxMjg1LDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
cHBseUVtdWxhdGVkTWVkaWEoRnJhbWUqIGZyYW1lLCBTdHJpbmcqIG0KICNlbmRpZgogfQogCi1p
bmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuSGVp
Z2h0T3ZlcnJpZGUoRnJhbWUqIGZyYW1lKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsKLSAgICBpZiAoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFt
ZShmcmFtZSkpCi0gICAgICAgIHJldHVybiBzaG91bGRBcHBseVNjcmVlbkhlaWdodE92ZXJyaWRl
SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1l
KTsKLSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0KLQogaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcAppbmRleCBiYjU4NjU0NDQ0MjFkMWU5Njk1ZWYyZGZjNjMwNzJkMzVh
M2Y3NjQ3Li4xMmQwYjdlNzhlODM4NTk0OGI4NjEyNGZlNjVmZjUxN2NlNWU2ZTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzYw
LDggKzM2MCw2IEBAIEluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsCiAgICAgLCBtX2NsaWVudChjbGll
bnQpCiAgICAgLCBtX292ZXJsYXkob3ZlcmxheSkKICAgICAsIG1fbGFzdFNjcmlwdElkZW50aWZp
ZXIoMCkKLSAgICAsIG1fc2NyZWVuV2lkdGhPdmVycmlkZSgwKQotICAgICwgbV9zY3JlZW5IZWln
aHRPdmVycmlkZSgwKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0ZpcnN0TGF5
b3V0QWZ0ZXJPbkxvYWQoZmFsc2UpCiAgICAgLCBtX29yaWdpbmFsU2NyaXB0RXhlY3V0aW9uRGlz
YWJsZWQoZmFsc2UpCkBAIC00MTAsMTAgKzQwOCw2IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBzZXRTaG93RlBTQ291bnRlcigwLCBmYWxzZSk7
CiAgICAgc2V0RW11bGF0ZWRNZWRpYSgwLCAiIik7CiAgICAgc2V0Q29udGludW91c1BhaW50aW5n
RW5hYmxlZCgwLCBmYWxzZSk7Ci0KLSAgICAvLyBXaGVuIGRpc2FibGluZyB0aGUgYWdlbnQsIHJl
c2V0IHRoZSBvdmVycmlkZSB2YWx1ZXMgaWYgbmVjZXNzYXJ5LgotICAgIG1fc2NyZWVuV2lkdGhP
dmVycmlkZSA9IDA7Ci0gICAgbV9zY3JlZW5IZWlnaHRPdmVycmlkZSA9IDA7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIFN0cmluZyogaWRlbnRpZmllcikKQEAgLTkyNCwxOCAr
OTE4LDYgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFJ1bkphdmFTY3JpcHREaWFsb2co
KQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5qYXZhc2NyaXB0RGlhbG9nQ2xvc2VkKCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9u
Zyogd2lkdGgpCi17Ci0gICAgaWYgKG1fc2NyZWVuV2lkdGhPdmVycmlkZSkKLSAgICAgICAgKndp
ZHRoID0gbV9zY3JlZW5XaWR0aE92ZXJyaWRlOwotfQotCi12b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6YXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKiBoZWlnaHQpCi17Ci0gICAgaWYgKG1f
c2NyZWVuSGVpZ2h0T3ZlcnJpZGUpCi0gICAgICAgICpoZWlnaHQgPSBtX3NjcmVlbkhlaWdodE92
ZXJyaWRlOwotfQotCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9l
bmFibGVkIHx8IG1fY2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpIHx8ICFtX3Nob3dQ
YWludFJlY3RzKQpAQCAtOTYyLDEwICs5NDQsNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZGlkTGF5b3V0KCkKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKGlzRmlyc3RMYXlvdXQpIHsKLSAgICAgICAgaWYgKG1fc2NyZWVuV2lkdGhPdmVycmlkZSAm
JiBtX3NjcmVlbkhlaWdodE92ZXJyaWRlKQotICAgICAgICAgICAgbV9jbGllbnQtPmF1dG9ab29t
UGFnZVRvRml0V2lkdGgoKTsKLSAgICB9CiAgICAgbV9vdmVybGF5LT51cGRhdGUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGQ3
YTU1MDU1ZTViZWY0NDE4OWYxNjkyZTg2NWQ4ODEzYTBiYzQzNjUuLjAwNDk2MDcwMWZlODVlM2Ni
ZjE3ODMzYjRlNDJhOTQzZWJmZjcwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTE1NSw4ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CiAgICAgdm9pZCB3aWxs
UnVuSmF2YVNjcmlwdERpYWxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgZGlk
UnVuSmF2YVNjcmlwdERpYWxvZygpOwotICAgIHZvaWQgYXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRl
KGxvbmcqKTsKLSAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyopOwogICAg
IHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyopOwogICAgIHZvaWQgZGlkUGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIHZvaWQgZGlkTGF5b3V0KCk7
CkBAIC0yMDcsOCArMjA1LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEZyYW1lKiwgU3RyaW5n
PiBtX2ZyYW1lVG9JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBGcmFtZSo+IG1faWRl
bnRpZmllclRvRnJhbWU7CiAgICAgSGFzaE1hcDxEb2N1bWVudExvYWRlciosIFN0cmluZz4gbV9s
b2FkZXJUb0lkZW50aWZpZXI7Ci0gICAgaW50IG1fc2NyZWVuV2lkdGhPdmVycmlkZTsKLSAgICBp
bnQgbV9zY3JlZW5IZWlnaHRPdmVycmlkZTsKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBib29s
IG1faXNGaXJzdExheW91dEFmdGVyT25Mb2FkOwogICAgIGJvb2wgbV9vcmlnaW5hbFNjcmlwdEV4
ZWN1dGlvbkRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGM3OTViMWJj
NzhhYTVmNzNlYjIxNWUwYjRjODgwMzRjOTRlOWVhOGUuLjBhZjk1ZDRiZWFhMzViMGFhYWQxOGEw
ODY2OGVlNzBlZDZkOTc2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTExNTYs
OSArMTE1Niw3IEBAIGludCBET01XaW5kb3c6OmlubmVySGVpZ2h0KCkgY29uc3QKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgcmV0dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRp
Y19jYXN0PGludD4odmlldy0+YWN0dWFsVmlzaWJsZUNvbnRlbnRSZWN0KCkuaGVpZ2h0KCkpKTsK
ICNlbHNlCi0gICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJpZGRlbiwgZG8gbm90
IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlubmVySGVpZ2h0IChz
aW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KLSAgICBib29sIGluY2x1ZGVT
Y3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5I
ZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFwRnJvbUxheW91dFRv
Q1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoaW5jbHVk
ZVNjcm9sbGJhcnMgPyBTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMgOiBTY3JvbGxh
YmxlQXJlYTo6RXhjbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXct
Pm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycykuaGVpZ2h0KCkpKTsK
ICNlbmRpZgogfQogCkBAIC0xMTc0LDkgKzExNzIsNyBAQCBpbnQgRE9NV2luZG93Ojppbm5lcldp
ZHRoKCkgY29uc3QKICNpZiBQTEFURk9STShJT1MpCiAgICAgcmV0dXJuIHZpZXctPm1hcEZyb21M
YXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+YWN0dWFsVmlzaWJsZUNvbnRl
bnRSZWN0KCkud2lkdGgoKSkpOwogI2Vsc2UKLSAgICAvLyBJZiB0aGUgZGV2aWNlIHdpZHRoIGlz
IG92ZXJyaWRkZW4sIGRvIG5vdCBpbmNsdWRlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW50byB0
aGUgaW5uZXJXaWR0aCAoc2luY2UgaXQgaXMgYWJzZW50IG9uIHRoZSByZWFsIGRldmljZSkuCi0g
ICAgYm9vbCBpbmNsdWRlU2Nyb2xsYmFycyA9ICFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNo
b3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+
bWFwRnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29u
dGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMgPyBTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9s
bGJhcnMgOiBTY3JvbGxhYmxlQXJlYTo6RXhjbHVkZVNjcm9sbGJhcnMpLndpZHRoKCkpKTsKKyAg
ICByZXR1cm4gdmlldy0+bWFwRnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2
aWV3LT52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJz
KS53aWR0aCgpKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IDc2MTVi
YTAwMWJlYTEzYmJlMGYxMTFmMTg3NDJmZGVjNzZmNGU5MzkuLjgyNGEyMDAzMmM2MzRhMmI0OTll
MjdiODhhODE1NWI5NGZiMDBhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
ZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTUwLDcgKzUw
LDYgQEAgdW5zaWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgbG9uZyBoZWlnaHQgPSBzdGF0aWNfY2FzdDxsb25nPihz
Y3JlZW5SZWN0KG1fZnJhbWUtPnZpZXcoKSkuaGVpZ2h0KCkpOwotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lLCAmaGVpZ2h0KTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGhlaWdodCk7CiB9CiAKQEAgLTU5LDcg
KzU4LDYgQEAgdW5zaWduZWQgU2NyZWVuOjp3aWR0aCgpIGNvbnN0CiAgICAgaWYgKCFtX2ZyYW1l
KQogICAgICAgICByZXR1cm4gMDsKICAgICBsb25nIHdpZHRoID0gc3RhdGljX2Nhc3Q8bG9uZz4o
c2NyZWVuUmVjdChtX2ZyYW1lLT52aWV3KCkpLndpZHRoKCkpOwotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKG1fZnJhbWUsICZ3aWR0aCk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3aWR0aCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCA5YjI3ODlhOTdhYTFkZGU1NzY3
NzEzZTA0YmRmMTI4YTY0OTM5ZDY1Li4yNDE4ZDExZGFmMzA0NzQ4ZTAxN2VhMmFlMDJjMmY3MGZm
YzllYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBA
IC0xMTUsOCArMTE1LDcgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzU3VidHJlZShSZW5k
ZXJPYmplY3QqIGxheW91dFJvb3QpCiAgICAgLy8gV2luZG93IGFyZWEsIGluIGxvZ2ljYWwgKGRl
bnNpdHktaW5kZXBlbmRlbnQpIHBpeGVscy4KICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUgPSBt
X2RvY3VtZW50LT5zZXR0aW5ncygpLT50ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgp
OwogICAgIGlmICh3aW5kb3dJbmZvLndpbmRvd1NpemUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGJv
b2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRB
cHBseVNjcmVlbldpZHRoT3ZlcnJpZGUoJm1haW5GcmFtZSk7Ci0gICAgICAgIHdpbmRvd0luZm8u
d2luZG93U2l6ZSA9IG1haW5GcmFtZS52aWV3KCktPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXpl
KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJzIDog
U2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKKyAgICAgICAgd2luZG93SW5mby53
aW5kb3dTaXplID0gbWFpbkZyYW1lLnZpZXcoKS0+dW5zY2FsZWRWaXNpYmxlQ29udGVudFNpemUo
U2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJzKTsKICAgICB9CiAKICAgICAvLyBMYXJn
ZXN0IGFyZWEgb2YgYmxvY2sgdGhhdCBjYW4gYmUgdmlzaWJsZSBhdCBvbmNlIChhc3N1bWluZyB0
aGUgbWFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGMw
OGY4ZDVlNmFhZWRkYzA5Mzc5N2QxOGJjMmFiNWFkZDMxNzFlMjMuLjg5MGUyOTU1ZTBhNjNjYjdl
ZTZmMjBiMmE4OGYyNjM1OGNmMGU5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKQEAgLTg2LDEzICs4Niw2IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6Y2xlYXJCcm93c2VyQ29va2llcygpCiAgICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGll
bnQtPmNsZWFyQ29va2llcygpOwogfQogCi12b2lkIEluc3BlY3RvckNsaWVudEJsYWNrQmVycnk6
Om92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZsb2F0IGZvbnRT
Y2FsZUZhY3RvciwgYm9vbCkKLXsKLSAgICAvLyBOb3RlOiB3aGVuIHdpZHRoIGFuZCBoZWlnaHQg
PSAwLCBhbmQgZm9udFNjYWxlRmFjdG9yID0gMSwgdGhpcyBpcyB0aGUgc2lnbmFsIGZvciByZXN0
b3JpbmcgdG8gZGVmYXVsdCBzaXplLgotICAgIG1fd2ViUGFnZVByaXZhdGUtPmFwcGx5U2l6ZU92
ZXJyaWRlKHdpZHRoLCBoZWlnaHQpOwotICAgIG1fd2ViUGFnZVByaXZhdGUtPnNldFRleHRab29t
RmFjdG9yKGZvbnRTY2FsZUZhY3Rvcik7Ci19Ci0KIGJvb2wgSW5zcGVjdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbigpCiB7CiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaAppbmRleCBiY2ZhM2M2ZWYyNzdl
NjQxOTkzYjVhOWZjZjQ3NmVjNzQ3YTcxMTE0Li43ODc0Y2U3OTUzODE4ZjM3MjU1Y2ViZmM5OWM1
Yjg3ODQ4ZDk0NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKQEAg
LTU1LDcgKzU1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5DbGVhckJyb3dzZXJD
b29raWVzKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWludEluc3BlY3Rv
ck92ZXJsYXkoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKGludCwgaW50LCBmbG9hdCwgYm9vbCk7CiAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24oKTsKIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlciBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYktpdC5vcmRlcgppbmRleCAxOTRiNjg2NDRiNTU2YjE2ZTI3ZmQ4NjI2YjE4NTRkNWExMjgz
NDE1Li42NmUyMTA0NDlhZDQ1ZDNlZjIxMjg4NzBmNzdkOTYyODFhN2QwOGM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViS2l0Lm9yZGVyCkBAIC0xNTk1LDcgKzE1OTUsNiBAQCBfX1pOMTVXZWJDaHJvbWVDbGllbnQy
OWludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3RVJLTjdXZWJDb3JlN0ludFJlY3RFYgogX19a
TjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQxOXNldFNob3dEZWJ1Z0JvcmRlcnNFYgogX19aTjdX
ZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQxN3NldFNob3dGUFNDb3VudGVyRWIKIF9fWk43V2ViQ29y
ZTE1SW5zcGVjdG9yQ2xpZW50MjhzZXRDb250aW51b3VzUGFpbnRpbmdFbmFibGVkRWIKLV9fWk43
V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MjFvdmVycmlkZURldmljZU1ldHJpY3NFaWlmYgogX19a
TjI2V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQyMWRpc2Nvbm5lY3RGcm9tQmFja2VuZEV2CiAt
W1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgZGVzdHJveUluc3BlY3RvclZpZXc6XQogLVtX
ZWJJbnNwZWN0b3IgcmVsZWFzZUZyb250ZW5kXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
bWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgppbmRl
eCBhMGYzNDhhNWI1ZDYyZTY0OTYxMWVlMDFlMjMxNTM4YzAwNjIwYTM3Li45ZGY5NDA1YThkNTFl
YzI3YzMzNTI1YWJkZThiNDE4YzA5MTAyNWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9t
YWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgpA
QCAtODUxMiw3ICs4NTEyLDYgQEAgX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQxN3NldFNo
b3dQYWludFJlY3RzRWIKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MTlzZXRTaG93RGVi
dWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MTdzZXRTaG93RlBTQ291
bnRlckViCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDI4c2V0Q29udGludW91c1BhaW50
aW5nRW5hYmxlZEViCi1fX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDIxb3ZlcnJpZGVEZXZp
Y2VNZXRyaWNzRWlpZmIKIF9fWk42V2ViS2l0MTJXZWJJbnNwZWN0b3I4ZGlkQ2xvc2VFdgogX19a
TjdDb3JlSVBDMTBDb25uZWN0aW9uNHNlbmRJTjhNZXNzYWdlczE3V2ViSW5zcGVjdG9yUHJveHk4
RGlkQ2xvc2VFRUViUktUX3lqCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDIzb3ZlcnJp
ZGVzU2hvd1BhaW50UmVjdHNFdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI5NDRiYTYxYTU0YTllMmM2NzcxYjk0ZDYyNzQ4
ZDY2NTQxYTBiYTcuLmVlOTFkMDUwYTEzZGUyZjhkNWQwNDYxZDcxODljYjU3ZjA3MDdlZjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMS0wNyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2Rldmlj
ZSBtZXRyaWNzJyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVu
LXNpemUuaHRtbDogUmVtb3ZlZC4KKwogMjAxNC0wMS0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MNSB2aWRlbyB0YWcgRG9lcyBOb3QgTG9hZCBpbiBB
cGFjaGUgaHRhY2Nlc3MvaHRwYXNzd2QgUHJvdGVjdGVkIERpcmVjdG9yeQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXpl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdlM2U3MzdiMDFl
OTZkYmNhN2E0NzJlYWIzY2U3NGY3Mzk3OTU5Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRl
LXNjcmVlbi1zaXplLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAK
LVRlc3RzIHRoYXQgc2NyZWVuIGRpbWVuc2lvbiBvdmVycmlkZXMgYWZmZWN0IG1lZGlhIHJ1bGVz
LCBib2R5IGRpbWVuc2lvbnMsIGFuZCB3aW5kb3cuc2NyZWVuLgotCi1PdmVycmlkZTogNDgweDgw
MAotU2NyZWVuIGZyb20gcGFnZTogNDgweDgwMAotV2luZG93IGZyb20gcGFnZTogNDgweDgwMAot
Qm9keSBmcm9tIHBhZ2U6IDQ4MHg4MDAKLU1haW4gc3R5bGU6Ci1bZXhwYW5kZWRdIAotZWxlbWVu
dC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09PT09PQotW2V4
cGFuZGVkXSAKLW1lZGlhPSJzY3JlZW4iIChvdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sKQotQG1l
ZGlhIChtYXgtZGV2aWNlLWhlaWdodDogOTYwcHgpIGFuZCAobWF4LWRldmljZS13aWR0aDogNDgw
cHgpIChvdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sOjkpCi0jbWFpbiAgeyAob3ZlcnJpZGUtc2Ny
ZWVuLXNpemUuaHRtbDoxMCkKLWJhY2tncm91bmQ6IGdyZWVuOwotCi1bZXhwYW5kZWRdIAotZGl2
ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1PdmVycmlk
ZTogODAweDQ4MAotU2NyZWVuIGZyb20gcGFnZTogODAweDQ4MAotV2luZG93IGZyb20gcGFnZTog
ODAweDQ4MAotQm9keSBmcm9tIHBhZ2U6IDgwMHg0ODAKLU1haW4gc3R5bGU6Ci1bZXhwYW5kZWRd
IAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09
PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0KQotZGlzcGxh
eTogYmxvY2s7Ci0KLQotT3ZlcnJpZGU6IDEwMDAwMDAxeDgwMCA9PiBFUlJPUgotT3ZlcnJpZGU6
IC0xeDgwMCA9PiBFUlJPUgotT3ZlcnJpZGU6IDQ4MHgxMDAwMDAwMSA9PiBFUlJPUgotT3ZlcnJp
ZGU6IDQ4MHgtMSA9PiBFUlJPUgotQ3VycmVudCBkaW1lbnNpb25zOgotU2NyZWVuIGZyb20gcGFn
ZTogODAweDQ4MAotV2luZG93IGZyb20gcGFnZTogODAweDQ4MAotQm9keSBmcm9tIHBhZ2U6IDgw
MHg0ODAKLURpc2FibGUgUGFnZUFnZW50OgotU2NyZWVuIHNpemUgc2FtZSBhcyBvcmlnaW5hbCAt
IE9LCi1FbmFibGUgUGFnZUFnZW50OgotU2NyZWVuIHNpemUgc2FtZSBhcyBvcmlnaW5hbCAtIE9L
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2Ny
ZWVuLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2Ny
ZWVuLXNpemUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ0NjY5OTJiYTZl
ZDZmNzRlOTRkYTJlNjUzNWZlODFlZjllMjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRl
LXNjcmVlbi1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTkgKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KLUBtZWRp
YSAobWF4LWRldmljZS13aWR0aDogNDc4cHgpIGFuZCAobWF4LWRldmljZS1oZWlnaHQ6IDk1OXB4
KSB7Ci0gICAgI21haW4geyBiYWNrZ3JvdW5kOiByZWQ7IH0KLX0KLQotQG1lZGlhIChtYXgtZGV2
aWNlLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogOTYwcHgpIHsKLSAgICAj
bWFpbiB7IGJhY2tncm91bmQ6IGdyZWVuOyB9Ci19Ci0KLUBtZWRpYSAobWluLWRldmljZS13aWR0
aDogNDgxcHgpIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDk2MXB4KSB7Ci0gICAgI21haW4geyBi
YWNrZ3JvdW5kOiB5ZWxsb3c7IH0KLX0KLQotYm9keSB7Ci0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogMDsKLSAgICByaWdodDogMDsKLSAgICBib3R0b206IDA7Ci0gICAgbGVmdDog
MDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBnZXRTaXplcygpCi17Ci0gICAgcmV0dXJuIEpTT04u
c3RyaW5naWZ5KHsKLSAgICAgICAgc2NyZWVuOiB3aW5kb3cuc2NyZWVuLndpZHRoICsgIngiICsg
d2luZG93LnNjcmVlbi5oZWlnaHQsCi0gICAgICAgIGlubmVyOiB3aW5kb3cuaW5uZXJXaWR0aCAr
ICJ4IiArIHdpbmRvdy5pbm5lckhlaWdodCwKLSAgICAgICAgYm9keTogZG9jdW1lbnQuYm9keS5v
ZmZzZXRXaWR0aCArICJ4IiArIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0Ci0gICAgfSk7Ci19
Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBleGNlZWRlZERpbWVuc2lvbiA9IDEwMDAw
MDAxOwotICAgIHZhciBvcmlnaW5hbFNjcmVlblNpemU7Ci0KLSAgICBmdW5jdGlvbiBzYXZlU2l6
ZUNhbGxiYWNrKGpzb25SZXN1bHQpCi0gICAgewotICAgICAgICB2YXIgdmFsdWUgPSBKU09OLnBh
cnNlKGpzb25SZXN1bHQudmFsdWUpOwotICAgICAgICBvcmlnaW5hbFNjcmVlblNpemUgPSB2YWx1
ZS5zY3JlZW47Ci0gICAgICAgIGlmICghb3JpZ2luYWxTY3JlZW5TaXplIHx8IG9yaWdpbmFsU2Ny
ZWVuU2l6ZS5pbmRleE9mKCJ4IikgPT09IC0xKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkludmFsaWQgb3JpZ2luYWwgc2NyZWVuIHNpemU6ICIgKyBvcmlnaW5hbFNjcmVl
blNpemUgKyAiLiBFeHBlY3QgcnVudGltZSBmYWlsdXJlcyBsYXRlciBvbi4iKTsKLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJtYWluIiwgc3RlcDAp
OwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCki
LCBzYXZlU2l6ZUNhbGxiYWNrKTsKLQotCi0gICAgZnVuY3Rpb24gc3RlcDAoKQotICAgIHsKLSAg
ICAgICAgb3ZlcnJpZGVBbmREdW1wRGF0YSg0ODAsIDgwMCwgc3RlcDEpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVTaXplQ2Fs
bGJhY2soanNvblJlc3VsdCkKLSAgICAgICAgewotICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0
aGUgc2NyZWVuIHNpemUgcmVwb3J0ZWQgaXMgdGhlIHNhbWUgYXMgdGhlIG9yaWdpbmFsIG9uZS4K
LSAgICAgICAgICAgIHZhciByZXN1bHQgPSBKU09OLnBhcnNlKGpzb25SZXN1bHQudmFsdWUpOwot
ICAgICAgICAgICAgaWYgKHJlc3VsdC5zY3JlZW4gIT09IG9yaWdpbmFsU2NyZWVuU2l6ZSkKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiT3JpZ2luYWwgc2l6ZSAiICsg
b3JpZ2luYWxTY3JlZW5TaXplICsgIiBub3QgcmVzdG9yZWQsIGZvdW5kOiAiICsgcmVzdWx0LnNj
cmVlbik7Ci0gICAgICAgICAgICBzdGVwMigpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rp
b24gb3ZlcnJpZGVDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBjb21wYXJlU2l6ZUNhbGxiYWNrKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIC8vIERpc2FibGUgb3ZlcnJpZGVzLgotICAgICAgICBQYWdlQWdl
bnQuc2V0RGV2aWNlTWV0cmljc092ZXJyaWRlKDAsIDAsIDEsIHRydWUsIG92ZXJyaWRlQ2FsbGJh
Y2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAgICAgIG92ZXJy
aWRlQW5kRHVtcERhdGEoODAwLCA0ODAsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwMygpCi0gICAgewotICAgICAgICBhcHBseU92ZXJyaWRlKGV4Y2VlZGVkRGltZW5zaW9uLCA4
MDAsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAgewotICAgICAg
ICBhcHBseU92ZXJyaWRlKC0xLCA4MDAsIHN0ZXA1KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBz
dGVwNSgpCi0gICAgewotICAgICAgICBhcHBseU92ZXJyaWRlKDQ4MCwgZXhjZWVkZWREaW1lbnNp
b24sIHN0ZXA2KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNigpCi0gICAgewotICAgICAg
ICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJDdXJyZW50IGRpbWVuc2lvbnM6Iik7Ci0gICAgICAgICAgICBnZXRBbmRE
dW1wU2l6ZXMoc3RlcDcpOwotICAgICAgICB9Ci0gICAgICAgIGFwcGx5T3ZlcnJpZGUoNDgwLCAt
MSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA3KCkKLSAgICB7Ci0gICAg
ICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGpzb25SZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHZhciB2YWx1ZSA9IEpTT04ucGFyc2UoanNvblJlc3VsdC52YWx1ZSk7Ci0gICAgICAgICAgICBp
ZiAodmFsdWUuc2NyZWVuICE9PSBvcmlnaW5hbFNjcmVlblNpemUpCi0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBzaXplIG5vdCByZXN0b3JlZCwgYWN0dWFs
OiAiICsgdmFsdWUuc2NyZWVuICsgIiwgZXhwZWN0ZWQ6ICIgKyBvcmlnaW5hbFNjcmVlblNpemUp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJTY3JlZW4gc2l6ZSBzYW1lIGFzIG9yaWdpbmFsIC0gT0siKTsKLSAgICAgICAgICAgIHN0
ZXA4KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRGlz
YWJsZSBQYWdlQWdlbnQ6Iik7Ci0gICAgICAgIFBhZ2VBZ2VudC5kaXNhYmxlKCk7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBjYWxsYmFjayk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDgoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2Fs
bGJhY2soanNvblJlc3VsdCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHZhbHVlID0gSlNP
Ti5wYXJzZShqc29uUmVzdWx0LnZhbHVlKTsKLSAgICAgICAgICAgIGlmICh2YWx1ZS5zY3JlZW4g
IT09IG9yaWdpbmFsU2NyZWVuU2l6ZSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiU2NyZWVuIHNpemUgbm90IHJlc3RvcmVkLCBhY3R1YWw6ICIgKyB2YWx1ZS5zY3Jl
ZW4gKyAiLCBleHBlY3RlZDogIiArIG9yaWdpbmFsU2NyZWVuU2l6ZSk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBzaXpl
IHNhbWUgYXMgb3JpZ2luYWwgLSBPSyIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJFbmFibGUgUGFnZUFnZW50OiIpOwotICAgICAgICBQYWdlQWdlbnQuZW5hYmxlKCk7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBjYWxsYmFjayk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBwbHlPdmVycmlkZSh3aWR0aCwgaGVpZ2h0LCB1c2Vy
Q2FsbGJhY2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvcikKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJPdmVycmlkZTogIiArIHdpZHRoICsgIngiICsgaGVpZ2h0ICsgIiA9PiBF
UlJPUiIpOwotICAgICAgICAgICAgdXNlckNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLSAgICAgICAg
UGFnZUFnZW50LnNldERldmljZU1ldHJpY3NPdmVycmlkZSh3aWR0aCwgaGVpZ2h0LCAxLCB0cnVl
LCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb3ZlcnJpZGVBbmREdW1wRGF0YSh3
aWR0aCwgaGVpZ2h0LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGZpbmFsQ2Fs
bGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
TWFpbiBzdHlsZToiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNlbGVjdGVkRWxl
bWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGdvdFNpemVzOwotICAgICAgICB2YXIgZ290U3R5bGVz
OwotICAgICAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGlmIChnb3RTaXplcykKLSAgICAgICAgICAgICAgICByZXR1cm4gZmluYWxDYWxsYmFjaygp
OwotICAgICAgICAgICAgZ290U3R5bGVzID0gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1
bmN0aW9uIHNpemVzQ2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBnb3RTaXplcyA9
IHRydWU7Ci0gICAgICAgICAgICBpZiAoZ290U3R5bGVzKQotICAgICAgICAgICAgICAgIGZpbmFs
Q2FsbGJhY2soKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGFwcGx5Q2FsbGJhY2so
KQotICAgICAgICB7Ci0gICAgICAgICAgICBnZXRBbmREdW1wU2l6ZXMoc2l6ZXNDYWxsYmFjayk7
Ci0gICAgICAgIH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiT3ZlcnJpZGU6
ICIgKyB3aWR0aCArICJ4IiArIGhlaWdodCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZv
clN0eWxlcygibWFpbiIsIHN0eWxlc0NhbGxiYWNrKTsKLSAgICAgICAgYXBwbHlPdmVycmlkZSh3
aWR0aCwgaGVpZ2h0LCBhcHBseUNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZXRB
bmREdW1wU2l6ZXMoY2FsbGJhY2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiBnZXRTaXplc0Nh
bGxiYWNrKGpzb25SZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBK
U09OLnBhcnNlKGpzb25SZXN1bHQudmFsdWUpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlNjcmVlbiBmcm9tIHBhZ2U6ICIgKyByZXN1bHQuc2NyZWVuKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXaW5kb3cgZnJvbSBwYWdlOiAiICsgcmVzdWx0
LmlubmVyKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJCb2R5IGZyb20g
cGFnZTogIiArIHJlc3VsdC5ib2R5KTsKLSAgICAgICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAg
ICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZSgiZ2V0U2l6ZXMoKSIsIGdldFNpemVzQ2FsbGJhY2spOwotICAgIH0K
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4K
LVRlc3RzIHRoYXQgc2NyZWVuIGRpbWVuc2lvbiBvdmVycmlkZXMgYWZmZWN0IG1lZGlhIHJ1bGVz
LCBib2R5IGRpbWVuc2lvbnMsIGFuZCB3aW5kb3cuc2NyZWVuLgotPC9wPgotCi08ZGl2IGlkPSJt
YWluIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220574</attachid>
            <date>2014-01-07 17:37:24 -0800</date>
            <delta_ts>2014-01-07 17:42:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126607-20140108103722.patch</filename>
            <type>text/plain</type>
            <size>30648</size>
            <attacher name="Seokju Kwon">seokju</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjliNWY4MWQ4ZmEyODA2
OTJlYjNlNmFhNTdhMjA5MzM0ODFlZjkxNy4uZjE2YmZjNTA0MzNiNjgxODQyZTgyYzg4ODRjODkz
NTU1ZjQ0MzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTA3ICBTZW9r
anUgS3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJl
bW92ZSBsZWZ0b3ZlciAnZGV2aWNlIG1ldHJpY3MnIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgTm8gY2hhbmdlcyBpbiBi
ZWhhdmlvci4KKworICAgICAgICBSZW1vdmVzIHVudXNlZCBjb2RlIHJlbGF0ZWQgdG8gJ2Rldmlj
ZSBtZXRyaWNzJy4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OmRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpc2FibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpkaWRMYXlvdXQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVdpbmRvdzo6aW5uZXJXaWR0aCk6CisgICAgICAgICogcGFnZS9TY3JlZW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjpoZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyZWVuOjp3aWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUpOgorCiAy
MDE0LTAxLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFBs
YXRmb3JtTGF5ZXIgY29udGFpbmluZyBzY3JvbGxiYXJzIGRvZXMgbm90IGRpc2FwcGVhciB3aGVu
IHNldHRpbmcgb3ZlcmZsb3c6aGlkZGVuIG9uIHBhZ2Ugcm9vdCwgdW50aWwgcmVzaXplLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMmMwN2ExYzViM2YzZDJlZTVkMzJjZTk2ZWI5
MWJiZWIyYTZkY2YyNS4uMmY0ODE2MzUxZGI3M2YyODY3NWRlMDlkNWM1NGNmNzA2YmNjZTJjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDEt
MDcgIFNlb2tqdSBLd29uICA8c2Vva2p1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUmVtb3ZlIGxlZnRvdmVyICdkZXZpY2UgbWV0cmljcycgY29kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2xlYW4gdXAgYWZ0ZXIgcmVtb3Zp
bmcgSW5zcGVjdG9yQ2xpZW50OjpvdmVycmlkZURldmljZU1ldHJpY3MoKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaDoKKwogMjAxNC0wMS0w
NiAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgY2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzIGFuZCBzZXREZXZpY2VNZXRyaWNz
T3ZlcnJpZGUgZnJvbSBwcm90b2NvbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDkxNWM5Njg0NjFhNWE0
ZTgwM2FiNmY3ZmI5YjJhNmYyOWJlOTQ5ZjMuLmRlZWE3N2U4MzM3NDdjY2QyM2ZkZmU0MDkzOTE4
YWRiOTg2NjJkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wMS0w
NyAgU2Vva2p1IEt3b24gIDxzZW9ranVAd2Via2l0Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBSZW1vdmUgbGVmdG92ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY2MDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjogVXBkYXRl
IGFmdGVyIHJlbW92aW5nIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCku
CisKIDIwMTQtMDEtMDcgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI2NTYyPiBET01Qcm9ncmVzc0V2ZW50IGhhcyB1bnNwZWNp
ZmllZCBhdmFpbGFiaWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MjkwZTA5NmExZmQ3NDhlZmE5MzI0YjA0
MmI3M2NiMzVkY2NiNjU3Li5hMWU4ZmFiYTcyZGEyOTA4MWZiOTg5ZTAyNTQ5NDJjODM2MWE1ZmI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDEtMDcgIFNlb2tqdSBLd29uICA8
c2Vva2p1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIGxlZnRv
dmVyICdkZXZpY2UgbWV0cmljcycgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRlcjogVXBkYXRlIGFmdGVyIHJlbW92
aW5nIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkuCisKIDIwMTQtMDEt
MDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjE0NDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV2YWx1YXRvci5jcHAKaW5kZXggZjllMzYxOTE3OWM0YzdkODMzN2QyNTk5MjE1ODcxMzc2
ODYzZTgyNC4uMWQxNzZlZGYxNGNjYTM1OWNkYjIzNTMyZGNmZDIxYmVlMDM2NzQyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMzY4LDcgKzM2OCw2
IEBAIHN0YXRpYyBib29sIGRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGCiAgICAgICAgIFJlbmRlclN0eWxlKiByb290U3R5
bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlclN0eWxlKCk7
CiAgICAgICAgIGludCBsZW5ndGg7CiAgICAgICAgIGxvbmcgaGVpZ2h0ID0gc2cuaGVpZ2h0KCk7
Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWlnaHRPdmVy
cmlkZShmcmFtZSwgJmhlaWdodCk7CiAgICAgICAgIHJldHVybiBjb21wdXRlTGVuZ3RoKHZhbHVl
LCAhZnJhbWUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBzdHlsZSwgcm9vdFN0eWxlLCBs
ZW5ndGgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCksIGxlbmd0aCwg
b3ApOwogICAgIH0KICAgICAvLyAoeyxtaW4tLG1heC19ZGV2aWNlLWhlaWdodCkKQEAgLTM4Myw3
ICszODIsNiBAQCBzdGF0aWMgYm9vbCBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcgogICAgICAgICBSZW5kZXJTdHlsZSog
cm9vdFN0eWxlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJT
dHlsZSgpOwogICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBsb25nIHdpZHRoID0gc2cud2lk
dGgoKTsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVNjcmVlbldpZHRo
T3ZlcnJpZGUoZnJhbWUsICZ3aWR0aCk7CiAgICAgICAgIHJldHVybiBjb21wdXRlTGVuZ3RoKHZh
bHVlLCAhZnJhbWUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpLCBzdHlsZSwgcm9vdFN0eWxl
LCBsZW5ndGgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoKSwgbGVuZ3Ro
LCBvcCk7CiAgICAgfQogICAgIC8vICh7LG1pbi0sbWF4LX1kZXZpY2Utd2lkdGgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNTU5MDBlOTRlYWQ0YjQ2
NzIzYWVlYjE5NDIyMTMxY2U1YjhkZmQ2Yi4uOWZhMjM3ZjlkOTJkM2QzOWI2YWZkNGIxMmNiMDg1
NDJhMTVmNzhjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGllbnQu
aApAQCAtNjEsMTUgKzYxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckJyb3dz
ZXJDb29raWVzKCkgeyB9CiAgICAgdmlydHVhbCBib29sIGNhbk1vbml0b3JNYWluVGhyZWFkKCkg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBvdmVycmlkZURldmljZU1ldHJp
Y3MoaW50IC8qd2lkdGgqLywgaW50IC8qaGVpZ2h0Ki8sIGZsb2F0IC8qZm9udFNjYWxlRmFjdG9y
Ki8sIGJvb2wgLypmaXRXaW5kb3cqLykKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBQbGF0Zm9y
bXMgbWF5IHdhbnQgdG8gaW1wbGVtZW50IHRoaXMgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODI4ODYpLgotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgYXV0b1pv
b21QYWdlVG9GaXRXaWR0aCgpCi0gICAgewotICAgICAgICAvLyBGSVhNRTogUGxhdGZvcm1zIG1h
eSB3YW50IHRvIGltcGxlbWVudCB0aGlzIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgyODg2KS4KLSAgICB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgb3ZlcnJpZGVz
U2hvd1BhaW50UmVjdHMoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG93UGFpbnRSZWN0cyhib29sKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAyNTk0N2NhNmMwMWQ2YWEy
NTg1YTc2NThmOWE1NzE3ZmNiZjE1OWNmLi5lMGQ1ODc1M2I0NGQ4MGVkYzc3ZGE3M2MyN2MzZGMz
OWVlZTI5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjI1LDM4ICs2MjUsNiBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaQogICAgICAgICByZXNvdXJjZUFnZW50LT5hcHBseVVzZXJBZ2VudE92ZXJyaWRl
KHVzZXJBZ2VudCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVNj
cmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIGxvbmcqIHdpZHRoKQotewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQotICAgICAg
ICBwYWdlQWdlbnQtPmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZSh3aWR0aCk7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBsb25nKiBoZWlnaHQpCi17
Ci0gICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCi0gICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlTY3Jl
ZW5IZWlnaHRPdmVycmlkZShoZWlnaHQpOwotfQotCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQotewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKSB7
Ci0gICAgICAgIGxvbmcgd2lkdGggPSAwOwotICAgICAgICBwYWdlQWdlbnQtPmFwcGx5U2NyZWVu
V2lkdGhPdmVycmlkZSgmd2lkdGgpOwotICAgICAgICByZXR1cm4gISF3aWR0aDsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hv
dWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cykKLXsKLSAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkgewotICAgICAg
ICBsb25nIGhlaWdodCA9IDA7Ci0gICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlTY3JlZW5IZWlnaHRP
dmVycmlkZSgmaGVpZ2h0KTsKLSAgICAgICAgcmV0dXJuICEhaGVpZ2h0OwotICAgIH0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVt
dWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IFN0cmluZyogbWVkaWEpCiB7CiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50
ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
NGEyZDMyYTgxMzNmMjNiYTI2MWM2MTcwNGY1NzYyYTQyM2MwOTg0Ny4uYWExYWNlZGQyYWY5MTY0
YmYyNzYyZjc0Njg3OTY5NjI3NzRhNGJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTg2LDExICsxODYsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkUHJvY2Vzc1J1bGUoY29uc3QgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llJik7CiAKICAgICBzdGF0aWMgdm9pZCBhcHBseVVzZXJBZ2VudE92
ZXJyaWRlKEZyYW1lKiwgU3RyaW5nKik7Ci0gICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5XaWR0
aE92ZXJyaWRlKEZyYW1lKiwgbG9uZyopOwotICAgIHN0YXRpYyB2b2lkIGFwcGx5U2NyZWVuSGVp
Z2h0T3ZlcnJpZGUoRnJhbWUqLCBsb25nKik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlFbXVsYXRl
ZE1lZGlhKEZyYW1lKiwgU3RyaW5nKik7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3Jl
ZW5XaWR0aE92ZXJyaWRlKEZyYW1lKik7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQXBwbHlTY3Jl
ZW5IZWlnaHRPdmVycmlkZShGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVz
dChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsK
ICAgICBzdGF0aWMgdm9pZCBjb250aW51ZUFmdGVyUGluZ0xvYWRlcihGcmFtZSosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgc3RhdGljIHZvaWQgbWFya1Jlc291cmNlQXNDYWNo
ZWQoUGFnZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CkBAIC0zODcsMTEgKzM4Myw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkUHJvY2Vzc1J1bGVJbXBsKGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGljIHZvaWQgYXBwbHlVc2Vy
QWdlbnRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFN0cmluZyopOwotICAgIHN0
YXRpYyB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyosIGxvbmcqKTsKLSAgICBzdGF0aWMgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgbG9uZyopOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5RW11
bGF0ZWRNZWRpYUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFN0cmluZyopOwotICAgIHN0YXRp
YyBib29sIHNob3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyopOwotICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGVJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVl
c3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSk7CiAgICAgc3RhdGljIHZvaWQgY29udGludWVBZnRlclBpbmdMb2Fk
ZXJJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwogICAgIHN0YXRpYyB2b2lkIG1hcmtSZXNvdXJjZUFzQ2FjaGVkSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKQEAgLTEyODEsNDIgKzEyNzMsNiBA
QCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5VXNlckFnZW50T3Zl
cnJpZGUoRnJhbWUqIGZyYW1lLCBTdHJpbgogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKiBmcmFt
ZSwgbG9uZyogd2lkdGgpCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBGQVNUX1JFVFVS
Tl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkp
Ci0gICAgICAgIGFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50
cywgd2lkdGgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotICAgIFVOVVNFRF9Q
QVJBTSh3aWR0aCk7Ci0jZW5kaWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjphcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKEZyYW1lKiBmcmFtZSwgbG9uZyogaGVp
Z2h0KQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKHZvaWQoKSk7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICBh
cHBseVNjcmVlbkhlaWdodE92ZXJyaWRlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBoZWlnaHQp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotICAgIFVOVVNFRF9QQVJBTShoZWln
aHQpOwotI2VuZGlmCi19Ci0KLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKEZyYW1lKiBmcmFtZSkKLXsKLSNpZiBFTkFC
TEUoSU5TUEVDVE9SKQotICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7Ci0g
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm4gc2hvdWxkQXBwbHlT
Y3JlZW5XaWR0aE92ZXJyaWRlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKGZyYW1lKTsKLSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0KLQogaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVkTWVkaWEoRnJh
bWUqIGZyYW1lLCBTdHJpbmcqIG1lZGlhKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCkBAIC0x
MzI5LDE4ICsxMjg1LDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
cHBseUVtdWxhdGVkTWVkaWEoRnJhbWUqIGZyYW1lLCBTdHJpbmcqIG0KICNlbmRpZgogfQogCi1p
bmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuSGVp
Z2h0T3ZlcnJpZGUoRnJhbWUqIGZyYW1lKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKGZhbHNlKTsKLSAgICBpZiAoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFt
ZShmcmFtZSkpCi0gICAgICAgIHJldHVybiBzaG91bGRBcHBseVNjcmVlbkhlaWdodE92ZXJyaWRl
SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1l
KTsKLSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0KLQogaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcAppbmRleCBiYjU4NjU0NDQ0MjFkMWU5Njk1ZWYyZGZjNjMwNzJkMzVh
M2Y3NjQ3Li4xMmQwYjdlNzhlODM4NTk0OGI4NjEyNGZlNjVmZjUxN2NlNWU2ZTI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtMzYw
LDggKzM2MCw2IEBAIEluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsCiAgICAgLCBtX2NsaWVudChjbGll
bnQpCiAgICAgLCBtX292ZXJsYXkob3ZlcmxheSkKICAgICAsIG1fbGFzdFNjcmlwdElkZW50aWZp
ZXIoMCkKLSAgICAsIG1fc2NyZWVuV2lkdGhPdmVycmlkZSgwKQotICAgICwgbV9zY3JlZW5IZWln
aHRPdmVycmlkZSgwKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9pc0ZpcnN0TGF5
b3V0QWZ0ZXJPbkxvYWQoZmFsc2UpCiAgICAgLCBtX29yaWdpbmFsU2NyaXB0RXhlY3V0aW9uRGlz
YWJsZWQoZmFsc2UpCkBAIC00MTAsMTAgKzQwOCw2IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBzZXRTaG93RlBTQ291bnRlcigwLCBmYWxzZSk7
CiAgICAgc2V0RW11bGF0ZWRNZWRpYSgwLCAiIik7CiAgICAgc2V0Q29udGludW91c1BhaW50aW5n
RW5hYmxlZCgwLCBmYWxzZSk7Ci0KLSAgICAvLyBXaGVuIGRpc2FibGluZyB0aGUgYWdlbnQsIHJl
c2V0IHRoZSBvdmVycmlkZSB2YWx1ZXMgaWYgbmVjZXNzYXJ5LgotICAgIG1fc2NyZWVuV2lkdGhP
dmVycmlkZSA9IDA7Ci0gICAgbV9zY3JlZW5IZWlnaHRPdmVycmlkZSA9IDA7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIFN0cmluZyogaWRlbnRpZmllcikKQEAgLTkyNCwxOCAr
OTE4LDYgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFJ1bkphdmFTY3JpcHREaWFsb2co
KQogICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5qYXZhc2NyaXB0RGlhbG9nQ2xvc2VkKCk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobG9u
Zyogd2lkdGgpCi17Ci0gICAgaWYgKG1fc2NyZWVuV2lkdGhPdmVycmlkZSkKLSAgICAgICAgKndp
ZHRoID0gbV9zY3JlZW5XaWR0aE92ZXJyaWRlOwotfQotCi12b2lkIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6YXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShsb25nKiBoZWlnaHQpCi17Ci0gICAgaWYgKG1f
c2NyZWVuSGVpZ2h0T3ZlcnJpZGUpCi0gICAgICAgICpoZWlnaHQgPSBtX3NjcmVlbkhlaWdodE92
ZXJyaWRlOwotfQotCiB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkUGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9l
bmFibGVkIHx8IG1fY2xpZW50LT5vdmVycmlkZXNTaG93UGFpbnRSZWN0cygpIHx8ICFtX3Nob3dQ
YWludFJlY3RzKQpAQCAtOTYyLDEwICs5NDQsNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
ZGlkTGF5b3V0KCkKICAgICBpZiAoIW1fZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKGlzRmlyc3RMYXlvdXQpIHsKLSAgICAgICAgaWYgKG1fc2NyZWVuV2lkdGhPdmVycmlkZSAm
JiBtX3NjcmVlbkhlaWdodE92ZXJyaWRlKQotICAgICAgICAgICAgbV9jbGllbnQtPmF1dG9ab29t
UGFnZVRvRml0V2lkdGgoKTsKLSAgICB9CiAgICAgbV9vdmVybGF5LT51cGRhdGUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGQ3
YTU1MDU1ZTViZWY0NDE4OWYxNjkyZTg2NWQ4ODEzYTBiYzQzNjUuLjAwNDk2MDcwMWZlODVlM2Ni
ZjE3ODMzYjRlNDJhOTQzZWJmZjcwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTE1NSw4ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmcmFtZUNsZWFyZWRTY2hlZHVsZWROYXZpZ2F0aW9uKEZyYW1lKik7CiAgICAgdm9pZCB3aWxs
UnVuSmF2YVNjcmlwdERpYWxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgZGlk
UnVuSmF2YVNjcmlwdERpYWxvZygpOwotICAgIHZvaWQgYXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRl
KGxvbmcqKTsKLSAgICB2b2lkIGFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyopOwogICAg
IHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhKFN0cmluZyopOwogICAgIHZvaWQgZGlkUGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIHZvaWQgZGlkTGF5b3V0KCk7
CkBAIC0yMDcsOCArMjA1LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPEZyYW1lKiwgU3RyaW5n
PiBtX2ZyYW1lVG9JZGVudGlmaWVyOwogICAgIEhhc2hNYXA8U3RyaW5nLCBGcmFtZSo+IG1faWRl
bnRpZmllclRvRnJhbWU7CiAgICAgSGFzaE1hcDxEb2N1bWVudExvYWRlciosIFN0cmluZz4gbV9s
b2FkZXJUb0lkZW50aWZpZXI7Ci0gICAgaW50IG1fc2NyZWVuV2lkdGhPdmVycmlkZTsKLSAgICBp
bnQgbV9zY3JlZW5IZWlnaHRPdmVycmlkZTsKICAgICBib29sIG1fZW5hYmxlZDsKICAgICBib29s
IG1faXNGaXJzdExheW91dEFmdGVyT25Mb2FkOwogICAgIGJvb2wgbV9vcmlnaW5hbFNjcmlwdEV4
ZWN1dGlvbkRpc2FibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGM3OTViMWJj
NzhhYTVmNzNlYjIxNWUwYjRjODgwMzRjOTRlOWVhOGUuLjBhZjk1ZDRiZWFhMzViMGFhYWQxOGEw
ODY2OGVlNzBlZDZkOTc2MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTExNTYs
OSArMTE1Niw3IEBAIGludCBET01XaW5kb3c6OmlubmVySGVpZ2h0KCkgY29uc3QKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgcmV0dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRp
Y19jYXN0PGludD4odmlldy0+YWN0dWFsVmlzaWJsZUNvbnRlbnRSZWN0KCkuaGVpZ2h0KCkpKTsK
ICNlbHNlCi0gICAgLy8gSWYgdGhlIGRldmljZSBoZWlnaHQgaXMgb3ZlcnJpZGRlbiwgZG8gbm90
IGluY2x1ZGUgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGludG8gdGhlIGlubmVySGVpZ2h0IChz
aW5jZSBpdCBpcyBhYnNlbnQgb24gdGhlIHJlYWwgZGV2aWNlKS4KLSAgICBib29sIGluY2x1ZGVT
Y3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2hvdWxkQXBwbHlTY3JlZW5I
ZWlnaHRPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+bWFwRnJvbUxheW91dFRv
Q1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoaW5jbHVk
ZVNjcm9sbGJhcnMgPyBTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMgOiBTY3JvbGxh
YmxlQXJlYTo6RXhjbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgpKSk7CisgICAgcmV0dXJuIHZpZXct
Pm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycykuaGVpZ2h0KCkpKTsK
ICNlbmRpZgogfQogCkBAIC0xMTc0LDkgKzExNzIsNyBAQCBpbnQgRE9NV2luZG93Ojppbm5lcldp
ZHRoKCkgY29uc3QKICNpZiBQTEFURk9STShJT1MpCiAgICAgcmV0dXJuIHZpZXctPm1hcEZyb21M
YXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+YWN0dWFsVmlzaWJsZUNvbnRl
bnRSZWN0KCkud2lkdGgoKSkpOwogI2Vsc2UKLSAgICAvLyBJZiB0aGUgZGV2aWNlIHdpZHRoIGlz
IG92ZXJyaWRkZW4sIGRvIG5vdCBpbmNsdWRlIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW50byB0
aGUgaW5uZXJXaWR0aCAoc2luY2UgaXQgaXMgYWJzZW50IG9uIHRoZSByZWFsIGRldmljZSkuCi0g
ICAgYm9vbCBpbmNsdWRlU2Nyb2xsYmFycyA9ICFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNo
b3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShtX2ZyYW1lKTsKLSAgICByZXR1cm4gdmlldy0+
bWFwRnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29u
dGVudFJlY3QoaW5jbHVkZVNjcm9sbGJhcnMgPyBTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9s
bGJhcnMgOiBTY3JvbGxhYmxlQXJlYTo6RXhjbHVkZVNjcm9sbGJhcnMpLndpZHRoKCkpKTsKKyAg
ICByZXR1cm4gdmlldy0+bWFwRnJvbUxheW91dFRvQ1NTVW5pdHMoc3RhdGljX2Nhc3Q8aW50Pih2
aWV3LT52aXNpYmxlQ29udGVudFJlY3QoU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJz
KS53aWR0aCgpKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IDc2MTVi
YTAwMWJlYTEzYmJlMGYxMTFmMTg3NDJmZGVjNzZmNGU5MzkuLjgyNGEyMDAzMmM2MzRhMmI0OTll
MjdiODhhODE1NWI5NGZiMDBhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Ny
ZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTUwLDcgKzUw
LDYgQEAgdW5zaWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgbG9uZyBoZWlnaHQgPSBzdGF0aWNfY2FzdDxsb25nPihz
Y3JlZW5SZWN0KG1fZnJhbWUtPnZpZXcoKSkuaGVpZ2h0KCkpOwotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShtX2ZyYW1lLCAmaGVpZ2h0KTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGhlaWdodCk7CiB9CiAKQEAgLTU5LDcg
KzU4LDYgQEAgdW5zaWduZWQgU2NyZWVuOjp3aWR0aCgpIGNvbnN0CiAgICAgaWYgKCFtX2ZyYW1l
KQogICAgICAgICByZXR1cm4gMDsKICAgICBsb25nIHdpZHRoID0gc3RhdGljX2Nhc3Q8bG9uZz4o
c2NyZWVuUmVjdChtX2ZyYW1lLT52aWV3KCkpLndpZHRoKCkpOwotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKG1fZnJhbWUsICZ3aWR0aCk7CiAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih3aWR0aCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCA5YjI3ODlhOTdhYTFkZGU1NzY3
NzEzZTA0YmRmMTI4YTY0OTM5ZDY1Li5mMDM2ZjU0ZGZkZjc0NGE5M2I0NzA3NzQ1ZTM0NDYyYjk2
MjdjZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXpl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBA
IC0xMTQsMTAgKzExNCw4IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUoUmVu
ZGVyT2JqZWN0KiBsYXlvdXRSb290KQogCiAgICAgLy8gV2luZG93IGFyZWEsIGluIGxvZ2ljYWwg
KGRlbnNpdHktaW5kZXBlbmRlbnQpIHBpeGVscy4KICAgICB3aW5kb3dJbmZvLndpbmRvd1NpemUg
PSBtX2RvY3VtZW50LT5zZXR0aW5ncygpLT50ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZSgpOwotICAgIGlmICh3aW5kb3dJbmZvLndpbmRvd1NpemUuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91
bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUoJm1haW5GcmFtZSk7Ci0gICAgICAgIHdpbmRvd0lu
Zm8ud2luZG93U2l6ZSA9IG1haW5GcmFtZS52aWV3KCktPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRT
aXplKGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJz
IDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKTsKLSAgICB9CisgICAgaWYgKHdp
bmRvd0luZm8ud2luZG93U2l6ZS5pc0VtcHR5KCkpCisgICAgICAgIHdpbmRvd0luZm8ud2luZG93
U2l6ZSA9IG1haW5GcmFtZS52aWV3KCktPnVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKFNjcm9s
bGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xsYmFycyk7CiAKICAgICAvLyBMYXJnZXN0IGFyZWEgb2Yg
YmxvY2sgdGhhdCBjYW4gYmUgdmlzaWJsZSBhdCBvbmNlIChhc3N1bWluZyB0aGUgbWFpbgogICAg
IC8vIGZyYW1lIGRvZXNuJ3QgZ2V0IHNjYWxlZCB0byBsZXNzIHRoYW4gb3ZlcnZpZXcgc2NhbGUp
LCBpbiBDU1MgcGl4ZWxzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuY3Bw
CmluZGV4IGMwOGY4ZDVlNmFhZWRkYzA5Mzc5N2QxOGJjMmFiNWFkZDMxNzFlMjMuLjg5MGUyOTU1
ZTBhNjNjYjdlZTZmMjBiMmE4OGYyNjM1OGNmMGU5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTg2LDEzICs4Niw2IEBAIHZvaWQgSW5zcGVjdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6Y2xlYXJCcm93c2VyQ29va2llcygpCiAgICAgbV93ZWJQYWdlUHJpdmF0
ZS0+bV9jbGllbnQtPmNsZWFyQ29va2llcygpOwogfQogCi12b2lkIEluc3BlY3RvckNsaWVudEJs
YWNrQmVycnk6Om92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIGZs
b2F0IGZvbnRTY2FsZUZhY3RvciwgYm9vbCkKLXsKLSAgICAvLyBOb3RlOiB3aGVuIHdpZHRoIGFu
ZCBoZWlnaHQgPSAwLCBhbmQgZm9udFNjYWxlRmFjdG9yID0gMSwgdGhpcyBpcyB0aGUgc2lnbmFs
IGZvciByZXN0b3JpbmcgdG8gZGVmYXVsdCBzaXplLgotICAgIG1fd2ViUGFnZVByaXZhdGUtPmFw
cGx5U2l6ZU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQpOwotICAgIG1fd2ViUGFnZVByaXZhdGUtPnNl
dFRleHRab29tRmFjdG9yKGZvbnRTY2FsZUZhY3Rvcik7Ci19Ci0KIGJvb2wgSW5zcGVjdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6c3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbigpCiB7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaAppbmRleCBiY2Zh
M2M2ZWYyNzdlNjQxOTkzYjVhOWZjZjQ3NmVjNzQ3YTcxMTE0Li43ODc0Y2U3OTUzODE4ZjM3MjU1
Y2ViZmM5OWM1Yjg3ODQ4ZDk0NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0Jl
cnJ5LmgKQEAgLTU1LDcgKzU1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5DbGVh
ckJyb3dzZXJDb29raWVzKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dEluc3BlY3Rvck92ZXJsYXkoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgb3ZlcnJpZGVEZXZpY2VNZXRyaWNzKGludCwgaW50LCBmbG9hdCwgYm9vbCk7CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24oKTsKIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlciBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYktpdC5vcmRlcgppbmRleCAxOTRiNjg2NDRiNTU2YjE2ZTI3ZmQ4NjI2YjE4
NTRkNWExMjgzNDE1Li42NmUyMTA0NDlhZDQ1ZDNlZjIxMjg4NzBmNzdkOTYyODFhN2QwOGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyCkBAIC0xNTk1LDcgKzE1OTUsNiBAQCBfX1pOMTVXZWJDaHJv
bWVDbGllbnQyOWludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3RVJLTjdXZWJDb3JlN0ludFJl
Y3RFYgogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQxOXNldFNob3dEZWJ1Z0JvcmRlcnNF
YgogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQxN3NldFNob3dGUFNDb3VudGVyRWIKIF9f
Wk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MjhzZXRDb250aW51b3VzUGFpbnRpbmdFbmFibGVk
RWIKLV9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MjFvdmVycmlkZURldmljZU1ldHJpY3NF
aWlmYgogX19aTjI2V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQyMWRpc2Nvbm5lY3RGcm9tQmFj
a2VuZEV2CiAtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgZGVzdHJveUluc3BlY3RvclZp
ZXc6XQogLVtXZWJJbnNwZWN0b3IgcmVsZWFzZUZyb250ZW5kXQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5v
cmRlcgppbmRleCBhMGYzNDhhNWI1ZDYyZTY0OTYxMWVlMDFlMjMxNTM4YzAwNjIwYTM3Li45ZGY5
NDA1YThkNTFlYzI3YzMzNTI1YWJkZThiNDE4YzA5MTAyNWI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0
Mi5vcmRlcgpAQCAtODUxMiw3ICs4NTEyLDYgQEAgX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGll
bnQxN3NldFNob3dQYWludFJlY3RzRWIKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MTlz
ZXRTaG93RGVidWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MTdzZXRT
aG93RlBTQ291bnRlckViCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDI4c2V0Q29udGlu
dW91c1BhaW50aW5nRW5hYmxlZEViCi1fX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDIxb3Zl
cnJpZGVEZXZpY2VNZXRyaWNzRWlpZmIKIF9fWk42V2ViS2l0MTJXZWJJbnNwZWN0b3I4ZGlkQ2xv
c2VFdgogX19aTjdDb3JlSVBDMTBDb25uZWN0aW9uNHNlbmRJTjhNZXNzYWdlczE3V2ViSW5zcGVj
dG9yUHJveHk4RGlkQ2xvc2VFRUViUktUX3lqCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVu
dDIzb3ZlcnJpZGVzU2hvd1BhaW50UmVjdHNFdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI5NDRiYTYxYTU0YTllMmM2Nzcx
Yjk0ZDYyNzQ4ZDY2NTQxYTBiYTcuLmVlOTFkMDUwYTEzZGUyZjhkNWQwNDYxZDcxODljYjU3ZjA3
MDdlZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wMS0wNyAgU2Vva2p1IEt3b24gIDxz
ZW9ranVAd2Via2l0Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgbGVmdG92
ZXIgJ2RldmljZSBtZXRyaWNzJyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjY2MDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJp
ZGUtc2NyZWVuLXNpemUuaHRtbDogUmVtb3ZlZC4KKwogMjAxNC0wMS0wNiAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MNSB2aWRlbyB0YWcgRG9lcyBOb3Qg
TG9hZCBpbiBBcGFjaGUgaHRhY2Nlc3MvaHRwYXNzd2QgUHJvdGVjdGVkIERpcmVjdG9yeQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNj
cmVlbi1zaXplLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdl
M2U3MzdiMDFlOTZkYmNhN2E0NzJlYWIzY2U3NGY3Mzk3OTU5Yi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L292ZXJyaWRlLXNjcmVlbi1zaXplLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ5
ICswLDAgQEAKLVRlc3RzIHRoYXQgc2NyZWVuIGRpbWVuc2lvbiBvdmVycmlkZXMgYWZmZWN0IG1l
ZGlhIHJ1bGVzLCBib2R5IGRpbWVuc2lvbnMsIGFuZCB3aW5kb3cuc2NyZWVuLgotCi1PdmVycmlk
ZTogNDgweDgwMAotU2NyZWVuIGZyb20gcGFnZTogNDgweDgwMAotV2luZG93IGZyb20gcGFnZTog
NDgweDgwMAotQm9keSBmcm9tIHBhZ2U6IDQ4MHg4MDAKLU1haW4gc3R5bGU6Ci1bZXhwYW5kZWRd
IAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBSdWxlcyA9PT09
PT09PQotW2V4cGFuZGVkXSAKLW1lZGlhPSJzY3JlZW4iIChvdmVycmlkZS1zY3JlZW4tc2l6ZS5o
dG1sKQotQG1lZGlhIChtYXgtZGV2aWNlLWhlaWdodDogOTYwcHgpIGFuZCAobWF4LWRldmljZS13
aWR0aDogNDgwcHgpIChvdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sOjkpCi0jbWFpbiAgeyAob3Zl
cnJpZGUtc2NyZWVuLXNpemUuaHRtbDoxMCkKLWJhY2tncm91bmQ6IGdyZWVuOwotCi1bZXhwYW5k
ZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxlc2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQot
Ci1PdmVycmlkZTogODAweDQ4MAotU2NyZWVuIGZyb20gcGFnZTogODAweDQ4MAotV2luZG93IGZy
b20gcGFnZTogODAweDQ4MAotQm9keSBmcm9tIHBhZ2U6IDgwMHg0ODAKLU1haW4gc3R5bGU6Ci1b
ZXhwYW5kZWRdIAotZWxlbWVudC5zdHlsZSAgeyAoKQotCi09PT09PT09PSBNYXRjaGVkIENTUyBS
dWxlcyA9PT09PT09PQotW2V4cGFuZGVkXSAKLWRpdiAgeyAodXNlciBhZ2VudCBzdHlsZXNoZWV0
KQotZGlzcGxheTogYmxvY2s7Ci0KLQotT3ZlcnJpZGU6IDEwMDAwMDAxeDgwMCA9PiBFUlJPUgot
T3ZlcnJpZGU6IC0xeDgwMCA9PiBFUlJPUgotT3ZlcnJpZGU6IDQ4MHgxMDAwMDAwMSA9PiBFUlJP
UgotT3ZlcnJpZGU6IDQ4MHgtMSA9PiBFUlJPUgotQ3VycmVudCBkaW1lbnNpb25zOgotU2NyZWVu
IGZyb20gcGFnZTogODAweDQ4MAotV2luZG93IGZyb20gcGFnZTogODAweDQ4MAotQm9keSBmcm9t
IHBhZ2U6IDgwMHg0ODAKLURpc2FibGUgUGFnZUFnZW50OgotU2NyZWVuIHNpemUgc2FtZSBhcyBv
cmlnaW5hbCAtIE9LCi1FbmFibGUgUGFnZUFnZW50OgotU2NyZWVuIHNpemUgc2FtZSBhcyBvcmln
aW5hbCAtIE9LCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvb3Zl
cnJpZGUtc2NyZWVuLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvb3Zl
cnJpZGUtc2NyZWVuLXNpemUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ0
NjY5OTJiYTZlZDZmNzRlOTRkYTJlNjUzNWZlODFlZjllMjc5Ny4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMTkgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KLUBtZWRpYSAobWF4LWRldmljZS13aWR0aDogNDc4cHgpIGFuZCAobWF4LWRldmljZS1oZWln
aHQ6IDk1OXB4KSB7Ci0gICAgI21haW4geyBiYWNrZ3JvdW5kOiByZWQ7IH0KLX0KLQotQG1lZGlh
IChtYXgtZGV2aWNlLXdpZHRoOiA0ODBweCkgYW5kIChtYXgtZGV2aWNlLWhlaWdodDogOTYwcHgp
IHsKLSAgICAjbWFpbiB7IGJhY2tncm91bmQ6IGdyZWVuOyB9Ci19Ci0KLUBtZWRpYSAobWluLWRl
dmljZS13aWR0aDogNDgxcHgpIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDk2MXB4KSB7Ci0gICAg
I21haW4geyBiYWNrZ3JvdW5kOiB5ZWxsb3c7IH0KLX0KLQotYm9keSB7Ci0gICAgcG9zaXRpb246
IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICByaWdodDogMDsKLSAgICBib3R0b206IDA7Ci0g
ICAgbGVmdDogMDsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLTwvc3R5bGU+Ci0KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBnZXRTaXplcygpCi17Ci0gICAgcmV0
dXJuIEpTT04uc3RyaW5naWZ5KHsKLSAgICAgICAgc2NyZWVuOiB3aW5kb3cuc2NyZWVuLndpZHRo
ICsgIngiICsgd2luZG93LnNjcmVlbi5oZWlnaHQsCi0gICAgICAgIGlubmVyOiB3aW5kb3cuaW5u
ZXJXaWR0aCArICJ4IiArIHdpbmRvdy5pbm5lckhlaWdodCwKLSAgICAgICAgYm9keTogZG9jdW1l
bnQuYm9keS5vZmZzZXRXaWR0aCArICJ4IiArIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0Ci0g
ICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBleGNlZWRlZERpbWVuc2lv
biA9IDEwMDAwMDAxOwotICAgIHZhciBvcmlnaW5hbFNjcmVlblNpemU7Ci0KLSAgICBmdW5jdGlv
biBzYXZlU2l6ZUNhbGxiYWNrKGpzb25SZXN1bHQpCi0gICAgewotICAgICAgICB2YXIgdmFsdWUg
PSBKU09OLnBhcnNlKGpzb25SZXN1bHQudmFsdWUpOwotICAgICAgICBvcmlnaW5hbFNjcmVlblNp
emUgPSB2YWx1ZS5zY3JlZW47Ci0gICAgICAgIGlmICghb3JpZ2luYWxTY3JlZW5TaXplIHx8IG9y
aWdpbmFsU2NyZWVuU2l6ZS5pbmRleE9mKCJ4IikgPT09IC0xKQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkludmFsaWQgb3JpZ2luYWwgc2NyZWVuIHNpemU6ICIgKyBvcmln
aW5hbFNjcmVlblNpemUgKyAiLiBFeHBlY3QgcnVudGltZSBmYWlsdXJlcyBsYXRlciBvbi4iKTsK
LQotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJtYWlu
Iiwgc3RlcDApOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdl
dFNpemVzKCkiLCBzYXZlU2l6ZUNhbGxiYWNrKTsKLQotCi0gICAgZnVuY3Rpb24gc3RlcDAoKQot
ICAgIHsKLSAgICAgICAgb3ZlcnJpZGVBbmREdW1wRGF0YSg0ODAsIDgwMCwgc3RlcDEpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAxKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNvbXBh
cmVTaXplQ2FsbGJhY2soanNvblJlc3VsdCkKLSAgICAgICAgewotICAgICAgICAgICAgLy8gQ2hl
Y2sgdGhhdCB0aGUgc2NyZWVuIHNpemUgcmVwb3J0ZWQgaXMgdGhlIHNhbWUgYXMgdGhlIG9yaWdp
bmFsIG9uZS4KLSAgICAgICAgICAgIHZhciByZXN1bHQgPSBKU09OLnBhcnNlKGpzb25SZXN1bHQu
dmFsdWUpOwotICAgICAgICAgICAgaWYgKHJlc3VsdC5zY3JlZW4gIT09IG9yaWdpbmFsU2NyZWVu
U2l6ZSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiT3JpZ2luYWwg
c2l6ZSAiICsgb3JpZ2luYWxTY3JlZW5TaXplICsgIiBub3QgcmVzdG9yZWQsIGZvdW5kOiAiICsg
cmVzdWx0LnNjcmVlbik7Ci0gICAgICAgICAgICBzdGVwMigpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZnVuY3Rpb24gb3ZlcnJpZGVDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBjb21wYXJlU2l6ZUNhbGxi
YWNrKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIERpc2FibGUgb3ZlcnJpZGVzLgotICAgICAg
ICBQYWdlQWdlbnQuc2V0RGV2aWNlTWV0cmljc092ZXJyaWRlKDAsIDAsIDEsIHRydWUsIG92ZXJy
aWRlQ2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXAyKCkKLSAgICB7Ci0gICAg
ICAgIG92ZXJyaWRlQW5kRHVtcERhdGEoODAwLCA0ODAsIHN0ZXAzKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwMygpCi0gICAgewotICAgICAgICBhcHBseU92ZXJyaWRlKGV4Y2VlZGVkRGlt
ZW5zaW9uLCA4MDAsIHN0ZXA0KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNCgpCi0gICAg
ewotICAgICAgICBhcHBseU92ZXJyaWRlKC0xLCA4MDAsIHN0ZXA1KTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBzdGVwNSgpCi0gICAgewotICAgICAgICBhcHBseU92ZXJyaWRlKDQ4MCwgZXhjZWVk
ZWREaW1lbnNpb24sIHN0ZXA2KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwNigpCi0gICAg
ewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJDdXJyZW50IGRpbWVuc2lvbnM6Iik7Ci0gICAgICAgICAg
ICBnZXRBbmREdW1wU2l6ZXMoc3RlcDcpOwotICAgICAgICB9Ci0gICAgICAgIGFwcGx5T3ZlcnJp
ZGUoNDgwLCAtMSwgY2FsbGJhY2spOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA3KCkKLSAg
ICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGpzb25SZXN1bHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciB2YWx1ZSA9IEpTT04ucGFyc2UoanNvblJlc3VsdC52YWx1ZSk7Ci0gICAg
ICAgICAgICBpZiAodmFsdWUuc2NyZWVuICE9PSBvcmlnaW5hbFNjcmVlblNpemUpCi0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBzaXplIG5vdCByZXN0b3Jl
ZCwgYWN0dWFsOiAiICsgdmFsdWUuc2NyZWVuICsgIiwgZXhwZWN0ZWQ6ICIgKyBvcmlnaW5hbFNj
cmVlblNpemUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTY3JlZW4gc2l6ZSBzYW1lIGFzIG9yaWdpbmFsIC0gT0siKTsKLSAgICAg
ICAgICAgIHN0ZXA4KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRGlzYWJsZSBQYWdlQWdlbnQ6Iik7Ci0gICAgICAgIFBhZ2VBZ2VudC5kaXNhYmxlKCk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBjYWxs
YmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDgoKQotICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2soanNvblJlc3VsdCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHZh
bHVlID0gSlNPTi5wYXJzZShqc29uUmVzdWx0LnZhbHVlKTsKLSAgICAgICAgICAgIGlmICh2YWx1
ZS5zY3JlZW4gIT09IG9yaWdpbmFsU2NyZWVuU2l6ZSkKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiU2NyZWVuIHNpemUgbm90IHJlc3RvcmVkLCBhY3R1YWw6ICIgKyB2
YWx1ZS5zY3JlZW4gKyAiLCBleHBlY3RlZDogIiArIG9yaWdpbmFsU2NyZWVuU2l6ZSk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNj
cmVlbiBzaXplIHNhbWUgYXMgb3JpZ2luYWwgLSBPSyIpOwotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJFbmFibGUgUGFnZUFnZW50OiIpOwotICAgICAgICBQYWdlQWdlbnQuZW5hYmxl
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImdldFNpemVzKCkiLCBj
YWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYXBwbHlPdmVycmlkZSh3aWR0aCwgaGVp
Z2h0LCB1c2VyQ2FsbGJhY2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJv
cikKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKGVycm9yKQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJPdmVycmlkZTogIiArIHdpZHRoICsgIngiICsgaGVpZ2h0
ICsgIiA9PiBFUlJPUiIpOwotICAgICAgICAgICAgdXNlckNhbGxiYWNrKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgUGFnZUFnZW50LnNldERldmljZU1ldHJpY3NPdmVycmlkZSh3aWR0aCwgaGVpZ2h0
LCAxLCB0cnVlLCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb3ZlcnJpZGVBbmRE
dW1wRGF0YSh3aWR0aCwgaGVpZ2h0LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9u
IGZpbmFsQ2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiTWFpbiBzdHlsZToiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNl
bGVjdGVkRWxlbWVudFN0eWxlcyh0cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBjYWxs
YmFjaygpOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIGdvdFNpemVzOwotICAgICAgICB2YXIg
Z290U3R5bGVzOwotICAgICAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFjaygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGlmIChnb3RTaXplcykKLSAgICAgICAgICAgICAgICByZXR1cm4gZmluYWxD
YWxsYmFjaygpOwotICAgICAgICAgICAgZ290U3R5bGVzID0gdHJ1ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGZ1bmN0aW9uIHNpemVzQ2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBn
b3RTaXplcyA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoZ290U3R5bGVzKQotICAgICAgICAgICAg
ICAgIGZpbmFsQ2FsbGJhY2soKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGFwcGx5
Q2FsbGJhY2soKQotICAgICAgICB7Ci0gICAgICAgICAgICBnZXRBbmREdW1wU2l6ZXMoc2l6ZXND
YWxsYmFjayk7Ci0gICAgICAgIH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
T3ZlcnJpZGU6ICIgKyB3aWR0aCArICJ4IiArIGhlaWdodCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3Qud2FpdEZvclN0eWxlcygibWFpbiIsIHN0eWxlc0NhbGxiYWNrKTsKLSAgICAgICAgYXBwbHlP
dmVycmlkZSh3aWR0aCwgaGVpZ2h0LCBhcHBseUNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBnZXRBbmREdW1wU2l6ZXMoY2FsbGJhY2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiBn
ZXRTaXplc0NhbGxiYWNrKGpzb25SZXN1bHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBy
ZXN1bHQgPSBKU09OLnBhcnNlKGpzb25SZXN1bHQudmFsdWUpOwotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBmcm9tIHBhZ2U6ICIgKyByZXN1bHQuc2NyZWVuKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJXaW5kb3cgZnJvbSBwYWdlOiAi
ICsgcmVzdWx0LmlubmVyKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJC
b2R5IGZyb20gcGFnZTogIiArIHJlc3VsdC5ib2R5KTsKLSAgICAgICAgICAgIGlmIChjYWxsYmFj
aykKLSAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0U2l6ZXMoKSIsIGdldFNpemVzQ2FsbGJhY2sp
OwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD4KLVRlc3RzIHRoYXQgc2NyZWVuIGRpbWVuc2lvbiBvdmVycmlkZXMgYWZmZWN0IG1l
ZGlhIHJ1bGVzLCBib2R5IGRpbWVuc2lvbnMsIGFuZCB3aW5kb3cuc2NyZWVuLgotPC9wPgotCi08
ZGl2IGlkPSJtYWluIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220576</attachid>
            <date>2014-01-07 17:42:06 -0800</date>
            <delta_ts>2014-01-07 18:16:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126607-20140108104204.patch</filename>
            <type>text/plain</type>
            <size>30653</size>
            <attacher name="Seokju Kwon">seokju</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjliNWY4MWQ4ZmEyODA2
OTJlYjNlNmFhNTdhMjA5MzM0ODFlZjkxNy4uYjU5MzllYjE3ZjEwMzM5YzI5ZTAwN2Y3YmFjOThh
NDYwOTMwZjc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAxLTA3ICBTZW9r
anUgS3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJl
bW92ZSBsZWZ0b3ZlciAnZGV2aWNlIG1ldHJpY3MnIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwNworCisgICAgICAgIFJldmlld2VkIGJ5
IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBObyBuZXcgdGVzdHMsIE5vIGNoYW5nZXMgaW4g
YmVoYXZpb3IuCisKKyAgICAgICAgUmVtb3ZlcyB1bnVzZWQgY29kZSByZWxhdGVkIHRvICdkZXZp
Y2UgbWV0cmljcycuCisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpJbnNwZWN0b3JQYWdlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkTGF5b3V0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojppbm5lckhlaWdodCk6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVyV2lkdGgpOgorICAgICAgICAqIHBhZ2UvU2NyZWVu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6aGVpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmVlbjo6d2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKToKKwog
MjAxNC0wMS0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBQ
bGF0Zm9ybUxheWVyIGNvbnRhaW5pbmcgc2Nyb2xsYmFycyBkb2VzIG5vdCBkaXNhcHBlYXIgd2hl
biBzZXR0aW5nIG92ZXJmbG93OmhpZGRlbiBvbiBwYWdlIHJvb3QsIHVudGlsIHJlc2l6ZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDJjMDdhMWM1YjNmM2QyZWU1ZDMyY2U5NmVi
OTFiYmViMmE2ZGNmMjUuLjUxZGNmNTVjNWVhNDE1NGFlZmU1ZWZjMjMxYThkNDY3OTkyMzllNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAx
LTA3ICBTZW9ranUgS3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlbW92ZSBsZWZ0b3ZlciAnZGV2aWNlIG1ldHJpY3MnIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBDbGVhbiB1cCBhZnRlciByZW1v
dmluZyBJbnNwZWN0b3JDbGllbnQ6Om92ZXJyaWRlRGV2aWNlTWV0cmljcygpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorCiAyMDE0LTAx
LTA2ICBTZW9ranUgS3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlbW92ZSBjYW5PdmVycmlkZURldmljZU1ldHJpY3MgYW5kIHNldERldmljZU1ldHJp
Y3NPdmVycmlkZSBmcm9tIHByb3RvY29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOTE1Yzk2ODQ2MWE1
YTRlODAzYWI2ZjdmYjliMmE2ZjI5YmU5NDlmMy4uZmI4NDI4NDE0MWI1NDNmNTZmYmJmN2EyNzY4
MjdjYjhmMDU1MjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTAx
LTA3ICBTZW9ranUgS3dvbiAgPHNlb2tqdUB3ZWJraXQub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJlbW92ZSBsZWZ0b3ZlciAnZGV2aWNlIG1ldHJpY3MnIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjYwNworCisgICAgICAgIFJl
dmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjogVXBk
YXRlIGFmdGVyIHJlbW92aW5nIEluc3BlY3RvckNsaWVudDo6b3ZlcnJpZGVEZXZpY2VNZXRyaWNz
KCkuCisKIDIwMTQtMDEtMDcgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAg
ICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI2NTYyPiBET01Qcm9ncmVzc0V2ZW50IGhhcyB1bnNw
ZWNpZmllZCBhdmFpbGFiaWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4MjkwZTA5NmExZmQ3NDhlZmE5MzI0
YjA0MmI3M2NiMzVkY2NiNjU3Li41ZGU1YTViNWRiZGM3YmNhNWRmNmQ2NDdkZTlkMjc3YzZhNTFl
MzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDEtMDcgIFNlb2tqdSBLd29u
ICA8c2Vva2p1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIGxl
ZnRvdmVyICdkZXZpY2UgbWV0cmljcycgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBo
IFBlY29yYXJvLgorCisgICAgICAgICogbWFjL1dlYktpdDIub3JkZXI6IFVwZGF0ZSBhZnRlciBy
ZW1vdmluZyBJbnNwZWN0b3JDbGllbnQ6Om92ZXJyaWRlRGV2aWNlTWV0cmljcygpLgorCiAyMDE0
LTAxLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTYxNDQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGY5ZTM2MTkxNzljNGM3ZDgzMzdkMjU5OTIxNTg3
MTM3Njg2M2U4MjQuLjFkMTc2ZWRmMTRjY2EzNTljZGIyMzUzMmRjZmQyMWJlZTAzNjc0MjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM2OCw3ICsz
NjgsNiBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRgogICAgICAgICBSZW5kZXJTdHlsZSogcm9v
dFN0eWxlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJTdHls
ZSgpOwogICAgICAgICBpbnQgbGVuZ3RoOwogICAgICAgICBsb25nIGhlaWdodCA9IHNnLmhlaWdo
dCgpOwotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5U2NyZWVuSGVpZ2h0
T3ZlcnJpZGUoZnJhbWUsICZoZWlnaHQpOwogICAgICAgICByZXR1cm4gY29tcHV0ZUxlbmd0aCh2
YWx1ZSwgIWZyYW1lLT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwgc3R5bGUsIHJvb3RTdHls
ZSwgbGVuZ3RoKSAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50PihoZWlnaHQpLCBsZW5n
dGgsIG9wKTsKICAgICB9CiAgICAgLy8gKHssbWluLSxtYXgtfWRldmljZS1oZWlnaHQpCkBAIC0z
ODMsNyArMzgyLDYgQEAgc3RhdGljIGJvb2wgZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChD
U1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnIKICAgICAgICAgUmVuZGVyU3R5
bGUqIHJvb3RTdHlsZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKS0+cmVu
ZGVyU3R5bGUoKTsKICAgICAgICAgaW50IGxlbmd0aDsKICAgICAgICAgbG9uZyB3aWR0aCA9IHNn
LndpZHRoKCk7Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5X
aWR0aE92ZXJyaWRlKGZyYW1lLCAmd2lkdGgpOwogICAgICAgICByZXR1cm4gY29tcHV0ZUxlbmd0
aCh2YWx1ZSwgIWZyYW1lLT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSwgc3R5bGUsIHJvb3RT
dHlsZSwgbGVuZ3RoKSAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIGxl
bmd0aCwgb3ApOwogICAgIH0KICAgICAvLyAoeyxtaW4tLG1heC19ZGV2aWNlLXdpZHRoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oCmluZGV4IDU1OTAwZTk0ZWFk
NGI0NjcyM2FlZWIxOTQyMjEzMWNlNWI4ZGZkNmIuLjlmYTIzN2Y5ZDkyZDNkMzliNmFmZDRiMTJj
YjA4NTQyYTE1Zjc4Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xp
ZW50LmgKQEAgLTYxLDE1ICs2MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJC
cm93c2VyQ29va2llcygpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5Nb25pdG9yTWFpblRocmVh
ZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3ZlcnJpZGVEZXZpY2VN
ZXRyaWNzKGludCAvKndpZHRoKi8sIGludCAvKmhlaWdodCovLCBmbG9hdCAvKmZvbnRTY2FsZUZh
Y3RvciovLCBib29sIC8qZml0V2luZG93Ki8pCi0gICAgewotICAgICAgICAvLyBGSVhNRTogUGxh
dGZvcm1zIG1heSB3YW50IHRvIGltcGxlbWVudCB0aGlzIChzZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODg2KS4KLSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIGF1
dG9ab29tUGFnZVRvRml0V2lkdGgoKQotICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFBsYXRmb3Jt
cyBtYXkgd2FudCB0byBpbXBsZW1lbnQgdGhpcyAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04Mjg4NikuCi0gICAgfQotCiAgICAgdmlydHVhbCBib29sIG92ZXJy
aWRlc1Nob3dQYWludFJlY3RzKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd1BhaW50UmVjdHMoYm9vbCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMjU5NDdjYTZjMDFk
NmFhMjU4NWE3NjU4ZjlhNTcxN2ZjYmYxNTljZi4uZTBkNTg3NTNiNDRkODBlZGM3N2RhNzNjMjdj
M2RjMzllZWUyOTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTYyNSwzOCArNjI1LDYgQEAgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5VXNlckFnZW50T3ZlcnJpZGVJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMqIGkKICAgICAgICAgcmVzb3VyY2VBZ2VudC0+YXBwbHlVc2VyQWdlbnRPdmVy
cmlkZSh1c2VyQWdlbnQpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBw
bHlTY3JlZW5XaWR0aE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBsb25nKiB3aWR0aCkKLXsKLSAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKLSAg
ICAgICAgcGFnZUFnZW50LT5hcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUod2lkdGgpOwotfQotCi12
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgbG9uZyogaGVpZ2h0
KQotewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQotICAgICAgICBwYWdlQWdlbnQtPmFwcGx5
U2NyZWVuSGVpZ2h0T3ZlcnJpZGUoaGVpZ2h0KTsKLX0KLQotYm9vbCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnNob3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKLXsKLSAgICBpZiAoSW5zcGVjdG9yUGFnZUFn
ZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQo
KSkgewotICAgICAgICBsb25nIHdpZHRoID0gMDsKLSAgICAgICAgcGFnZUFnZW50LT5hcHBseVNj
cmVlbldpZHRoT3ZlcnJpZGUoJndpZHRoKTsKLSAgICAgICAgcmV0dXJuICEhd2lkdGg7Ci0gICAg
fQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnNob3VsZEFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMpCi17Ci0gICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpIHsKLSAg
ICAgICAgbG9uZyBoZWlnaHQgPSAwOwotICAgICAgICBwYWdlQWdlbnQtPmFwcGx5U2NyZWVuSGVp
Z2h0T3ZlcnJpZGUoJmhlaWdodCk7Ci0gICAgICAgIHJldHVybiAhIWhlaWdodDsKLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBw
bHlFbXVsYXRlZE1lZGlhSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBTdHJpbmcqIG1lZGlhKQogewogICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmlu
ZGV4IDRhMmQzMmE4MTMzZjIzYmEyNjFjNjE3MDRmNTc2MmE0MjNjMDk4NDcuLmFhMWFjZWRkMmFm
OTE2NGJmMjc2MmY3NDY4Nzk2OTYyNzc0YTRiYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE4NiwxMSArMTg2LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZFByb2Nlc3NSdWxlKGNvbnN0IEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGljIHZvaWQgYXBwbHlVc2VyQWdl
bnRPdmVycmlkZShGcmFtZSosIFN0cmluZyopOwotICAgIHN0YXRpYyB2b2lkIGFwcGx5U2NyZWVu
V2lkdGhPdmVycmlkZShGcmFtZSosIGxvbmcqKTsKLSAgICBzdGF0aWMgdm9pZCBhcHBseVNjcmVl
bkhlaWdodE92ZXJyaWRlKEZyYW1lKiwgbG9uZyopOwogICAgIHN0YXRpYyB2b2lkIGFwcGx5RW11
bGF0ZWRNZWRpYShGcmFtZSosIFN0cmluZyopOwotICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5
U2NyZWVuV2lkdGhPdmVycmlkZShGcmFtZSopOwotICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5
U2NyZWVuSGVpZ2h0T3ZlcnJpZGUoRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJl
cXVlc3QoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSk7CiAgICAgc3RhdGljIHZvaWQgY29udGludWVBZnRlclBpbmdMb2FkZXIoRnJhbWUqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHN0YXRpYyB2b2lkIG1hcmtSZXNvdXJjZUFz
Q2FjaGVkKFBhZ2UqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwpAQCAtMzg3LDExICszODMs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZFByb2Nlc3NSdWxlSW1wbChjb25zdCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKIAogICAgIHN0YXRpYyB2b2lkIGFwcGx5
VXNlckFnZW50T3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdHJpbmcqKTsKLSAg
ICBzdGF0aWMgdm9pZCBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBsb25nKik7Ci0gICAgc3RhdGljIHZvaWQgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlk
ZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGxvbmcqKTsKICAgICBzdGF0aWMgdm9pZCBhcHBs
eUVtdWxhdGVkTWVkaWFJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdHJpbmcqKTsKLSAgICBz
dGF0aWMgYm9vbCBzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqKTsKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRBcHBseVNjcmVlbkhlaWdodE92ZXJy
aWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRS
ZXF1ZXN0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHN0YXRpYyB2b2lkIGNvbnRpbnVlQWZ0ZXJQaW5n
TG9hZGVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICAgICBzdGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CkBAIC0xMjgxLDQyICsxMjcz
LDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVVzZXJBZ2Vu
dE92ZXJyaWRlKEZyYW1lKiBmcmFtZSwgU3RyaW4KICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShGcmFtZSog
ZnJhbWUsIGxvbmcqIHdpZHRoKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgRkFTVF9S
RVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJh
bWUpKQotICAgICAgICBhcHBseVNjcmVlbldpZHRoT3ZlcnJpZGVJbXBsKGluc3RydW1lbnRpbmdB
Z2VudHMsIHdpZHRoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKLSAgICBVTlVT
RURfUEFSQU0od2lkdGgpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZShGcmFtZSogZnJhbWUsIGxvbmcq
IGhlaWdodCkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyh2b2lkKCkpOwotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAg
ICAgYXBwbHlTY3JlZW5IZWlnaHRPdmVycmlkZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgaGVp
Z2h0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKLSAgICBVTlVTRURfUEFSQU0o
aGVpZ2h0KTsKLSNlbmRpZgotfQotCi1pbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnNob3VsZEFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShGcmFtZSogZnJhbWUpCi17Ci0jaWYg
RU5BQkxFKElOU1BFQ1RPUikKLSAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFMoZmFsc2Up
OwotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKGZyYW1lKSkKLSAgICAgICAgcmV0dXJuIHNob3VsZEFw
cGx5U2NyZWVuV2lkdGhPdmVycmlkZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlFbXVsYXRlZE1lZGlh
KEZyYW1lKiBmcmFtZSwgU3RyaW5nKiBtZWRpYSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpA
QCAtMTMyOSwxOCArMTI4NSw2IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YXBwbHlFbXVsYXRlZE1lZGlhKEZyYW1lKiBmcmFtZSwgU3RyaW5nKiBtCiAjZW5kaWYKIH0K
IAotaW5saW5lIGJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzaG91bGRBcHBseVNjcmVl
bkhlaWdodE92ZXJyaWRlKEZyYW1lKiBmcmFtZSkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyhmYWxzZSk7Ci0gICAgaWYgKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
RnJhbWUoZnJhbWUpKQotICAgICAgICByZXR1cm4gc2hvdWxkQXBwbHlTY3JlZW5IZWlnaHRPdmVy
cmlkZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShm
cmFtZSk7Ci0jZW5kaWYKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggYmI1ODY1NDQ0NDIxZDFlOTY5NWVmMmRmYzYzMDcy
ZDM1YTNmNzY0Ny4uMTJkMGI3ZTc4ZTgzODU5NDhiODYxMjRmZTY1ZmY1MTdjZTVlNmUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAg
LTM2MCw4ICszNjAsNiBAQCBJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3RvclBhZ2VBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLAogICAgICwgbV9jbGllbnQo
Y2xpZW50KQogICAgICwgbV9vdmVybGF5KG92ZXJsYXkpCiAgICAgLCBtX2xhc3RTY3JpcHRJZGVu
dGlmaWVyKDApCi0gICAgLCBtX3NjcmVlbldpZHRoT3ZlcnJpZGUoMCkKLSAgICAsIG1fc2NyZWVu
SGVpZ2h0T3ZlcnJpZGUoMCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1faXNGaXJz
dExheW91dEFmdGVyT25Mb2FkKGZhbHNlKQogICAgICwgbV9vcmlnaW5hbFNjcmlwdEV4ZWN1dGlv
bkRpc2FibGVkKGZhbHNlKQpAQCAtNDEwLDEwICs0MDgsNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VB
Z2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAgc2V0U2hvd0ZQU0NvdW50ZXIoMCwgZmFs
c2UpOwogICAgIHNldEVtdWxhdGVkTWVkaWEoMCwgIiIpOwogICAgIHNldENvbnRpbnVvdXNQYWlu
dGluZ0VuYWJsZWQoMCwgZmFsc2UpOwotCi0gICAgLy8gV2hlbiBkaXNhYmxpbmcgdGhlIGFnZW50
LCByZXNldCB0aGUgb3ZlcnJpZGUgdmFsdWVzIGlmIG5lY2Vzc2FyeS4KLSAgICBtX3NjcmVlbldp
ZHRoT3ZlcnJpZGUgPSAwOwotICAgIG1fc2NyZWVuSGVpZ2h0T3ZlcnJpZGUgPSAwOwogfQogCiB2
b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0
cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlLCBTdHJpbmcqIGlkZW50aWZpZXIpCkBAIC05MjQs
MTggKzkxOCw2IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpkaWRSdW5KYXZhU2NyaXB0RGlh
bG9nKCkKICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+amF2YXNjcmlwdERpYWxvZ0Nsb3NlZCgp
OwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRl
KGxvbmcqIHdpZHRoKQotewotICAgIGlmIChtX3NjcmVlbldpZHRoT3ZlcnJpZGUpCi0gICAgICAg
ICp3aWR0aCA9IG1fc2NyZWVuV2lkdGhPdmVycmlkZTsKLX0KLQotdm9pZCBJbnNwZWN0b3JQYWdl
QWdlbnQ6OmFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobG9uZyogaGVpZ2h0KQotewotICAgIGlm
IChtX3NjcmVlbkhlaWdodE92ZXJyaWRlKQotICAgICAgICAqaGVpZ2h0ID0gbV9zY3JlZW5IZWln
aHRPdmVycmlkZTsKLX0KLQogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZFBhaW50KEdyYXBo
aWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAo
IW1fZW5hYmxlZCB8fCBtX2NsaWVudC0+b3ZlcnJpZGVzU2hvd1BhaW50UmVjdHMoKSB8fCAhbV9z
aG93UGFpbnRSZWN0cykKQEAgLTk2MiwxMCArOTQ0LDYgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OmRpZExheW91dCgpCiAgICAgaWYgKCFtX2VuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChpc0ZpcnN0TGF5b3V0KSB7Ci0gICAgICAgIGlmIChtX3NjcmVlbldpZHRoT3ZlcnJp
ZGUgJiYgbV9zY3JlZW5IZWlnaHRPdmVycmlkZSkKLSAgICAgICAgICAgIG1fY2xpZW50LT5hdXRv
Wm9vbVBhZ2VUb0ZpdFdpZHRoKCk7Ci0gICAgfQogICAgIG1fb3ZlcmxheS0+dXBkYXRlKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRl
eCBkN2E1NTA1NWU1YmVmNDQxODlmMTY5MmU4NjVkODgxM2EwYmM0MzY1Li4wMDQ5NjA3MDFmZTg1
ZTNjYmYxNzgzM2I0ZTQyYTk0M2ViZmY3MGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xNTUsOCArMTU1LDYgQEAgcHVibGljOgogICAg
IHZvaWQgZnJhbWVDbGVhcmVkU2NoZWR1bGVkTmF2aWdhdGlvbihGcmFtZSopOwogICAgIHZvaWQg
d2lsbFJ1bkphdmFTY3JpcHREaWFsb2coY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAgICB2b2lk
IGRpZFJ1bkphdmFTY3JpcHREaWFsb2coKTsKLSAgICB2b2lkIGFwcGx5U2NyZWVuV2lkdGhPdmVy
cmlkZShsb25nKik7Ci0gICAgdm9pZCBhcHBseVNjcmVlbkhlaWdodE92ZXJyaWRlKGxvbmcqKTsK
ICAgICB2b2lkIGFwcGx5RW11bGF0ZWRNZWRpYShTdHJpbmcqKTsKICAgICB2b2lkIGRpZFBhaW50
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2b2lkIGRpZExheW91
dCgpOwpAQCAtMjA3LDggKzIwNSw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxGcmFtZSosIFN0
cmluZz4gbV9mcmFtZVRvSWRlbnRpZmllcjsKICAgICBIYXNoTWFwPFN0cmluZywgRnJhbWUqPiBt
X2lkZW50aWZpZXJUb0ZyYW1lOwogICAgIEhhc2hNYXA8RG9jdW1lbnRMb2FkZXIqLCBTdHJpbmc+
IG1fbG9hZGVyVG9JZGVudGlmaWVyOwotICAgIGludCBtX3NjcmVlbldpZHRoT3ZlcnJpZGU7Ci0g
ICAgaW50IG1fc2NyZWVuSGVpZ2h0T3ZlcnJpZGU7CiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAg
Ym9vbCBtX2lzRmlyc3RMYXlvdXRBZnRlck9uTG9hZDsKICAgICBib29sIG1fb3JpZ2luYWxTY3Jp
cHRFeGVjdXRpb25EaXNhYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBjNzk1
YjFiYzc4YWE1ZjczZWIyMTVlMGI0Yzg4MDM0Yzk0ZTllYThlLi4wYWY5NWQ0YmVhYTM1YjBhYWFk
MThhMDg2NjhlZTcwZWQ2ZDk3NjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0x
MTU2LDkgKzExNTYsNyBAQCBpbnQgRE9NV2luZG93Ojppbm5lckhlaWdodCgpIGNvbnN0CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHJldHVybiB2aWV3LT5tYXBGcm9tTGF5b3V0VG9DU1NVbml0cyhz
dGF0aWNfY2FzdDxpbnQ+KHZpZXctPmFjdHVhbFZpc2libGVDb250ZW50UmVjdCgpLmhlaWdodCgp
KSk7CiAjZWxzZQotICAgIC8vIElmIHRoZSBkZXZpY2UgaGVpZ2h0IGlzIG92ZXJyaWRkZW4sIGRv
IG5vdCBpbmNsdWRlIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBpbnRvIHRoZSBpbm5lckhlaWdo
dCAoc2luY2UgaXQgaXMgYWJzZW50IG9uIHRoZSByZWFsIGRldmljZSkuCi0gICAgYm9vbCBpbmNs
dWRlU2Nyb2xsYmFycyA9ICFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNob3VsZEFwcGx5U2Ny
ZWVuSGVpZ2h0T3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0dXJuIHZpZXctPm1hcEZyb21MYXlv
dXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KGlu
Y2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVTY3JvbGxiYXJzIDogU2Ny
b2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS5oZWlnaHQoKSkpOworICAgIHJldHVybiB2
aWV3LT5tYXBGcm9tTGF5b3V0VG9DU1NVbml0cyhzdGF0aWNfY2FzdDxpbnQ+KHZpZXctPnZpc2li
bGVDb250ZW50UmVjdChTY3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpLmhlaWdodCgp
KSk7CiAjZW5kaWYKIH0KIApAQCAtMTE3NCw5ICsxMTcyLDcgQEAgaW50IERPTVdpbmRvdzo6aW5u
ZXJXaWR0aCgpIGNvbnN0CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHJldHVybiB2aWV3LT5tYXBG
cm9tTGF5b3V0VG9DU1NVbml0cyhzdGF0aWNfY2FzdDxpbnQ+KHZpZXctPmFjdHVhbFZpc2libGVD
b250ZW50UmVjdCgpLndpZHRoKCkpKTsKICNlbHNlCi0gICAgLy8gSWYgdGhlIGRldmljZSB3aWR0
aCBpcyBvdmVycmlkZGVuLCBkbyBub3QgaW5jbHVkZSB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIGlu
dG8gdGhlIGlubmVyV2lkdGggKHNpbmNlIGl0IGlzIGFic2VudCBvbiB0aGUgcmVhbCBkZXZpY2Up
LgotICAgIGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMgPSAhSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpzaG91bGRBcHBseVNjcmVlbldpZHRoT3ZlcnJpZGUobV9mcmFtZSk7Ci0gICAgcmV0dXJuIHZp
ZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJs
ZUNvbnRlbnRSZWN0KGluY2x1ZGVTY3JvbGxiYXJzID8gU2Nyb2xsYWJsZUFyZWE6OkluY2x1ZGVT
Y3JvbGxiYXJzIDogU2Nyb2xsYWJsZUFyZWE6OkV4Y2x1ZGVTY3JvbGxiYXJzKS53aWR0aCgpKSk7
CisgICAgcmV0dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHN0YXRpY19jYXN0PGlu
dD4odmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xs
YmFycykud2lkdGgoKSkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCA3
NjE1YmEwMDFiZWExM2JiZTBmMTExZjE4NzQyZmRlYzc2ZjRlOTM5Li44MjRhMjAwMzJjNjM0YTJi
NDk5ZTI3Yjg4YTgxNTViOTRmYjAwYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NjcmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC01MCw3
ICs1MCw2IEBAIHVuc2lnbmVkIFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKICAgICBpZiAoIW1fZnJh
bWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIGxvbmcgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8bG9u
Zz4oc2NyZWVuUmVjdChtX2ZyYW1lLT52aWV3KCkpLmhlaWdodCgpKTsKLSAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJpZGUobV9mcmFtZSwgJmhlaWdo
dCk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihoZWlnaHQpOwogfQogCkBAIC01
OSw3ICs1OCw2IEBAIHVuc2lnbmVkIFNjcmVlbjo6d2lkdGgoKSBjb25zdAogICAgIGlmICghbV9m
cmFtZSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgbG9uZyB3aWR0aCA9IHN0YXRpY19jYXN0PGxv
bmc+KHNjcmVlblJlY3QobV9mcmFtZS0+dmlldygpKS53aWR0aCgpKTsKLSAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmFwcGx5U2NyZWVuV2lkdGhPdmVycmlkZShtX2ZyYW1lLCAmd2lkdGgp
OwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4od2lkdGgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKaW5kZXggOWIyNzg5YTk3YWExZGRl
NTc2NzcxM2UwNGJkZjEyOGE2NDkzOWQ2NS4uZjAzNmY1NGRmZGY3NDRhOTNiNDcwNzc0NWUzNDQ2
MmI5NjI3Y2UxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRv
c2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNw
cApAQCAtMTE0LDEwICsxMTQsOCBAQCBib29sIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVl
KFJlbmRlck9iamVjdCogbGF5b3V0Um9vdCkKIAogICAgIC8vIFdpbmRvdyBhcmVhLCBpbiBsb2dp
Y2FsIChkZW5zaXR5LWluZGVwZW5kZW50KSBwaXhlbHMuCiAgICAgd2luZG93SW5mby53aW5kb3dT
aXplID0gbV9kb2N1bWVudC0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3Zl
cnJpZGUoKTsKLSAgICBpZiAod2luZG93SW5mby53aW5kb3dTaXplLmlzRW1wdHkoKSkgewotICAg
ICAgICBib29sIGluY2x1ZGVTY3JvbGxiYXJzID0gIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c2hvdWxkQXBwbHlTY3JlZW5XaWR0aE92ZXJyaWRlKCZtYWluRnJhbWUpOwotICAgICAgICB3aW5k
b3dJbmZvLndpbmRvd1NpemUgPSBtYWluRnJhbWUudmlldygpLT51bnNjYWxlZFZpc2libGVDb250
ZW50U2l6ZShpbmNsdWRlU2Nyb2xsYmFycyA/IFNjcm9sbGFibGVBcmVhOjpJbmNsdWRlU2Nyb2xs
YmFycyA6IFNjcm9sbGFibGVBcmVhOjpFeGNsdWRlU2Nyb2xsYmFycyk7Ci0gICAgfQorICAgIGlm
ICh3aW5kb3dJbmZvLndpbmRvd1NpemUuaXNFbXB0eSgpKQorICAgICAgICB3aW5kb3dJbmZvLndp
bmRvd1NpemUgPSBtYWluRnJhbWUudmlldygpLT51bnNjYWxlZFZpc2libGVDb250ZW50U2l6ZShT
Y3JvbGxhYmxlQXJlYTo6SW5jbHVkZVNjcm9sbGJhcnMpOwogCiAgICAgLy8gTGFyZ2VzdCBhcmVh
IG9mIGJsb2NrIHRoYXQgY2FuIGJlIHZpc2libGUgYXQgb25jZSAoYXNzdW1pbmcgdGhlIG1haW4K
ICAgICAvLyBmcmFtZSBkb2Vzbid0IGdldCBzY2FsZWQgdG8gbGVzcyB0aGFuIG92ZXJ2aWV3IHNj
YWxlKSwgaW4gQ1NTIHBpeGVscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5
LmNwcAppbmRleCBjMDhmOGQ1ZTZhYWVkZGMwOTM3OTdkMThiYzJhYjVhZGQzMTcxZTIzLi44OTBl
Mjk1NWUwYTYzY2I3ZWU2ZjIwYjJhODhmMjYzNThjZjBlOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC04NiwxMyArODYsNiBAQCB2b2lkIEluc3BlY3Rv
ckNsaWVudEJsYWNrQmVycnk6OmNsZWFyQnJvd3NlckNvb2tpZXMoKQogICAgIG1fd2ViUGFnZVBy
aXZhdGUtPm1fY2xpZW50LT5jbGVhckNvb2tpZXMoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDbGll
bnRCbGFja0JlcnJ5OjpvdmVycmlkZURldmljZU1ldHJpY3MoaW50IHdpZHRoLCBpbnQgaGVpZ2h0
LCBmbG9hdCBmb250U2NhbGVGYWN0b3IsIGJvb2wpCi17Ci0gICAgLy8gTm90ZTogd2hlbiB3aWR0
aCBhbmQgaGVpZ2h0ID0gMCwgYW5kIGZvbnRTY2FsZUZhY3RvciA9IDEsIHRoaXMgaXMgdGhlIHNp
Z25hbCBmb3IgcmVzdG9yaW5nIHRvIGRlZmF1bHQgc2l6ZS4KLSAgICBtX3dlYlBhZ2VQcml2YXRl
LT5hcHBseVNpemVPdmVycmlkZSh3aWR0aCwgaGVpZ2h0KTsKLSAgICBtX3dlYlBhZ2VQcml2YXRl
LT5zZXRUZXh0Wm9vbUZhY3Rvcihmb250U2NhbGVGYWN0b3IpOwotfQotCiBib29sIEluc3BlY3Rv
ckNsaWVudEJsYWNrQmVycnk6OnN1cHBvcnRzRnJhbWVJbnN0cnVtZW50YXRpb24oKQogewogICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXgg
YmNmYTNjNmVmMjc3ZTY0MTk5M2I1YTlmY2Y0NzZlYzc0N2E3MTExNC4uNzg3NGNlNzk1MzgxOGYz
NzI1NWNlYmZjOTljNWI4Nzg0OGQ5NDU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5oCkBAIC01NSw3ICs1NSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
Q2xlYXJCcm93c2VyQ29va2llcygpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRJbnNwZWN0b3JPdmVybGF5KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpOwogCi0gICAg
dmlydHVhbCB2b2lkIG92ZXJyaWRlRGV2aWNlTWV0cmljcyhpbnQsIGludCwgZmxvYXQsIGJvb2wp
OwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZyYW1lSW5zdHJ1bWVudGF0aW9uKCk7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKaW5kZXggMTk0YjY4NjQ0YjU1NmIxNmUyN2ZkODYy
NmIxODU0ZDVhMTI4MzQxNS4uNjZlMjEwNDQ5YWQ0NWQzZWYyMTI4ODcwZjc3ZDk2MjgxYTdkMDhj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgpAQCAtMTU5NSw3ICsxNTk1LDYgQEAgX19aTjE1V2Vi
Q2hyb21lQ2xpZW50MjlpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlld0VSS043V2ViQ29yZTdJ
bnRSZWN0RWIKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MTlzZXRTaG93RGVidWdCb3Jk
ZXJzRWIKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MTdzZXRTaG93RlBTQ291bnRlckVi
CiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDI4c2V0Q29udGludW91c1BhaW50aW5nRW5h
YmxlZEViCi1fX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDIxb3ZlcnJpZGVEZXZpY2VNZXRy
aWNzRWlpZmIKIF9fWk4yNldlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50MjFkaXNjb25uZWN0RnJv
bUJhY2tlbmRFdgogLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIGRlc3Ryb3lJbnNwZWN0
b3JWaWV3Ol0KIC1bV2ViSW5zcGVjdG9yIHJlbGVhc2VGcm9udGVuZF0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktp
dDIub3JkZXIKaW5kZXggYTBmMzQ4YTViNWQ2MmU2NDk2MTFlZTAxZTIzMTUzOGMwMDYyMGEzNy4u
OWRmOTQwNWE4ZDUxZWMyN2MzMzUyNWFiZGU4YjQxOGMwOTEwMjViNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKKysrIGIvU291cmNlL1dlYktpdDIvbWFjL1dl
YktpdDIub3JkZXIKQEAgLTg1MTIsNyArODUxMiw2IEBAIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9y
Q2xpZW50MTdzZXRTaG93UGFpbnRSZWN0c0ViCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVu
dDE5c2V0U2hvd0RlYnVnQm9yZGVyc0ViCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDE3
c2V0U2hvd0ZQU0NvdW50ZXJFYgogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQyOHNldENv
bnRpbnVvdXNQYWludGluZ0VuYWJsZWRFYgotX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JDbGllbnQy
MW92ZXJyaWRlRGV2aWNlTWV0cmljc0VpaWZiCiBfX1pONldlYktpdDEyV2ViSW5zcGVjdG9yOGRp
ZENsb3NlRXYKIF9fWk43Q29yZUlQQzEwQ29ubmVjdGlvbjRzZW5kSU44TWVzc2FnZXMxN1dlYklu
c3BlY3RvclByb3h5OERpZENsb3NlRUVFYlJLVF95agogX19aTjdXZWJDb3JlMTVJbnNwZWN0b3JD
bGllbnQyM292ZXJyaWRlc1Nob3dQYWludFJlY3RzRXYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiOTQ0YmE2MWE1NGE5ZTJj
Njc3MWI5NGQ2Mjc0OGQ2NjU0MWEwYmE3Li5mNzAyMjUwOWY4MjA5MWQ3NGViMWY5ZTEyYjg1ZjYw
NzU5NGE2NzYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDEtMDcgIFNlb2tqdSBLd29u
ICA8c2Vva2p1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIGxl
ZnRvdmVyICdkZXZpY2UgbWV0cmljcycgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBo
IFBlY29yYXJvLgorCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4t
c2l6ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9v
dmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sOiBSZW1vdmVkLgorCiAyMDE0LTAxLTA2ICBKZXIgTm9i
bGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUw1IHZpZGVvIHRhZyBEb2Vz
IE5vdCBMb2FkIGluIEFwYWNoZSBodGFjY2Vzcy9odHBhc3N3ZCBQcm90ZWN0ZWQgRGlyZWN0b3J5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVl
bi1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvb3ZlcnJp
ZGUtc2NyZWVuLXNpemUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkN2UzZTczN2IwMWU5NmRiY2E3YTQ3MmVhYjNjZTc0ZjczOTc5NTliLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNDkgKzAsMCBAQAotVGVzdHMgdGhhdCBzY3JlZW4gZGltZW5zaW9uIG92ZXJyaWRlcyBhZmZl
Y3QgbWVkaWEgcnVsZXMsIGJvZHkgZGltZW5zaW9ucywgYW5kIHdpbmRvdy5zY3JlZW4uCi0KLU92
ZXJyaWRlOiA0ODB4ODAwCi1TY3JlZW4gZnJvbSBwYWdlOiA0ODB4ODAwCi1XaW5kb3cgZnJvbSBw
YWdlOiA0ODB4ODAwCi1Cb2R5IGZyb20gcGFnZTogNDgweDgwMAotTWFpbiBzdHlsZToKLVtleHBh
bmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQgQ1NTIFJ1bGVz
ID09PT09PT09Ci1bZXhwYW5kZWRdIAotbWVkaWE9InNjcmVlbiIgKG92ZXJyaWRlLXNjcmVlbi1z
aXplLmh0bWwpCi1AbWVkaWEgKG1heC1kZXZpY2UtaGVpZ2h0OiA5NjBweCkgYW5kIChtYXgtZGV2
aWNlLXdpZHRoOiA0ODBweCkgKG92ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWw6OSkKLSNtYWluICB7
IChvdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sOjEwKQotYmFja2dyb3VuZDogZ3JlZW47Ci0KLVtl
eHBhbmRlZF0gCi1kaXYgIHsgKHVzZXIgYWdlbnQgc3R5bGVzaGVldCkKLWRpc3BsYXk6IGJsb2Nr
OwotCi0KLU92ZXJyaWRlOiA4MDB4NDgwCi1TY3JlZW4gZnJvbSBwYWdlOiA4MDB4NDgwCi1XaW5k
b3cgZnJvbSBwYWdlOiA4MDB4NDgwCi1Cb2R5IGZyb20gcGFnZTogODAweDQ4MAotTWFpbiBzdHls
ZToKLVtleHBhbmRlZF0gCi1lbGVtZW50LnN0eWxlICB7ICgpCi0KLT09PT09PT09IE1hdGNoZWQg
Q1NTIFJ1bGVzID09PT09PT09Ci1bZXhwYW5kZWRdIAotZGl2ICB7ICh1c2VyIGFnZW50IHN0eWxl
c2hlZXQpCi1kaXNwbGF5OiBibG9jazsKLQotCi1PdmVycmlkZTogMTAwMDAwMDF4ODAwID0+IEVS
Uk9SCi1PdmVycmlkZTogLTF4ODAwID0+IEVSUk9SCi1PdmVycmlkZTogNDgweDEwMDAwMDAxID0+
IEVSUk9SCi1PdmVycmlkZTogNDgweC0xID0+IEVSUk9SCi1DdXJyZW50IGRpbWVuc2lvbnM6Ci1T
Y3JlZW4gZnJvbSBwYWdlOiA4MDB4NDgwCi1XaW5kb3cgZnJvbSBwYWdlOiA4MDB4NDgwCi1Cb2R5
IGZyb20gcGFnZTogODAweDQ4MAotRGlzYWJsZSBQYWdlQWdlbnQ6Ci1TY3JlZW4gc2l6ZSBzYW1l
IGFzIG9yaWdpbmFsIC0gT0sKLUVuYWJsZSBQYWdlQWdlbnQ6Ci1TY3JlZW4gc2l6ZSBzYW1lIGFz
IG9yaWdpbmFsIC0gT0sKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZDQ2Njk5MmJhNmVkNmY3NGU5NGRhMmU2NTM1ZmU4MWVmOWUyNzk3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9z
dHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIxOSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotCi08c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJz
Y3JlZW4iPgotQG1lZGlhIChtYXgtZGV2aWNlLXdpZHRoOiA0NzhweCkgYW5kIChtYXgtZGV2aWNl
LWhlaWdodDogOTU5cHgpIHsKLSAgICAjbWFpbiB7IGJhY2tncm91bmQ6IHJlZDsgfQotfQotCi1A
bWVkaWEgKG1heC1kZXZpY2Utd2lkdGg6IDQ4MHB4KSBhbmQgKG1heC1kZXZpY2UtaGVpZ2h0OiA5
NjBweCkgewotICAgICNtYWluIHsgYmFja2dyb3VuZDogZ3JlZW47IH0KLX0KLQotQG1lZGlhICht
aW4tZGV2aWNlLXdpZHRoOiA0ODFweCkgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogOTYxcHgpIHsK
LSAgICAjbWFpbiB7IGJhY2tncm91bmQ6IHllbGxvdzsgfQotfQotCi1ib2R5IHsKLSAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIHJpZ2h0OiAwOwotICAgIGJvdHRvbTog
MDsKLSAgICBsZWZ0OiAwOwotICAgIG1hcmdpbjogMDsKLX0KLQotPC9zdHlsZT4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0KLWZ1bmN0aW9uIGdldFNpemVzKCkKLXsKLSAg
ICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoewotICAgICAgICBzY3JlZW46IHdpbmRvdy5zY3JlZW4u
d2lkdGggKyAieCIgKyB3aW5kb3cuc2NyZWVuLmhlaWdodCwKLSAgICAgICAgaW5uZXI6IHdpbmRv
dy5pbm5lcldpZHRoICsgIngiICsgd2luZG93LmlubmVySGVpZ2h0LAotICAgICAgICBib2R5OiBk
b2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoICsgIngiICsgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWln
aHQKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGV4Y2VlZGVkRGlt
ZW5zaW9uID0gMTAwMDAwMDE7Ci0gICAgdmFyIG9yaWdpbmFsU2NyZWVuU2l6ZTsKLQotICAgIGZ1
bmN0aW9uIHNhdmVTaXplQ2FsbGJhY2soanNvblJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHZhciB2
YWx1ZSA9IEpTT04ucGFyc2UoanNvblJlc3VsdC52YWx1ZSk7Ci0gICAgICAgIG9yaWdpbmFsU2Ny
ZWVuU2l6ZSA9IHZhbHVlLnNjcmVlbjsKLSAgICAgICAgaWYgKCFvcmlnaW5hbFNjcmVlblNpemUg
fHwgb3JpZ2luYWxTY3JlZW5TaXplLmluZGV4T2YoIngiKSA9PT0gLTEpCi0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSW52YWxpZCBvcmlnaW5hbCBzY3JlZW4gc2l6ZTogIiAr
IG9yaWdpbmFsU2NyZWVuU2l6ZSArICIuIEV4cGVjdCBydW50aW1lIGZhaWx1cmVzIGxhdGVyIG9u
LiIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMo
Im1haW4iLCBzdGVwMCk7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFn
ZSgiZ2V0U2l6ZXMoKSIsIHNhdmVTaXplQ2FsbGJhY2spOwotCi0KLSAgICBmdW5jdGlvbiBzdGVw
MCgpCi0gICAgewotICAgICAgICBvdmVycmlkZUFuZER1bXBEYXRhKDQ4MCwgODAwLCBzdGVwMSk7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDEoKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24g
Y29tcGFyZVNpemVDYWxsYmFjayhqc29uUmVzdWx0KQotICAgICAgICB7Ci0gICAgICAgICAgICAv
LyBDaGVjayB0aGF0IHRoZSBzY3JlZW4gc2l6ZSByZXBvcnRlZCBpcyB0aGUgc2FtZSBhcyB0aGUg
b3JpZ2luYWwgb25lLgotICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEpTT04ucGFyc2UoanNvblJl
c3VsdC52YWx1ZSk7Ci0gICAgICAgICAgICBpZiAocmVzdWx0LnNjcmVlbiAhPT0gb3JpZ2luYWxT
Y3JlZW5TaXplKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJPcmln
aW5hbCBzaXplICIgKyBvcmlnaW5hbFNjcmVlblNpemUgKyAiIG5vdCByZXN0b3JlZCwgZm91bmQ6
ICIgKyByZXN1bHQuc2NyZWVuKTsKLSAgICAgICAgICAgIHN0ZXAyKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBvdmVycmlkZUNhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0U2l6ZXMoKSIsIGNvbXBhcmVTaXpl
Q2FsbGJhY2spOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRGlzYWJsZSBvdmVycmlkZXMuCi0g
ICAgICAgIFBhZ2VBZ2VudC5zZXREZXZpY2VNZXRyaWNzT3ZlcnJpZGUoMCwgMCwgMSwgdHJ1ZSwg
b3ZlcnJpZGVDYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDIoKQotICAgIHsK
LSAgICAgICAgb3ZlcnJpZGVBbmREdW1wRGF0YSg4MDAsIDQ4MCwgc3RlcDMpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXAzKCkKLSAgICB7Ci0gICAgICAgIGFwcGx5T3ZlcnJpZGUoZXhjZWVk
ZWREaW1lbnNpb24sIDgwMCwgc3RlcDQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA0KCkK
LSAgICB7Ci0gICAgICAgIGFwcGx5T3ZlcnJpZGUoLTEsIDgwMCwgc3RlcDUpOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHN0ZXA1KCkKLSAgICB7Ci0gICAgICAgIGFwcGx5T3ZlcnJpZGUoNDgwLCBl
eGNlZWRlZERpbWVuc2lvbiwgc3RlcDYpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0ZXA2KCkK
LSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkN1cnJlbnQgZGltZW5zaW9uczoiKTsKLSAgICAg
ICAgICAgIGdldEFuZER1bXBTaXplcyhzdGVwNyk7Ci0gICAgICAgIH0KLSAgICAgICAgYXBwbHlP
dmVycmlkZSg0ODAsIC0xLCBjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RlcDco
KQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soanNvblJlc3VsdCkKLSAgICAgICAg
ewotICAgICAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShqc29uUmVzdWx0LnZhbHVlKTsK
LSAgICAgICAgICAgIGlmICh2YWx1ZS5zY3JlZW4gIT09IG9yaWdpbmFsU2NyZWVuU2l6ZSkKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyZWVuIHNpemUgbm90IHJl
c3RvcmVkLCBhY3R1YWw6ICIgKyB2YWx1ZS5zY3JlZW4gKyAiLCBleHBlY3RlZDogIiArIG9yaWdp
bmFsU2NyZWVuU2l6ZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIlNjcmVlbiBzaXplIHNhbWUgYXMgb3JpZ2luYWwgLSBPSyIpOwot
ICAgICAgICAgICAgc3RlcDgoKTsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJEaXNhYmxlIFBhZ2VBZ2VudDoiKTsKLSAgICAgICAgUGFnZUFnZW50LmRpc2Fi
bGUoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0U2l6ZXMoKSIs
IGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGVwOCgpCi0gICAgewotICAgICAg
ICBmdW5jdGlvbiBjYWxsYmFjayhqc29uUmVzdWx0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2
YXIgdmFsdWUgPSBKU09OLnBhcnNlKGpzb25SZXN1bHQudmFsdWUpOwotICAgICAgICAgICAgaWYg
KHZhbHVlLnNjcmVlbiAhPT0gb3JpZ2luYWxTY3JlZW5TaXplKQotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTY3JlZW4gc2l6ZSBub3QgcmVzdG9yZWQsIGFjdHVhbDog
IiArIHZhbHVlLnNjcmVlbiArICIsIGV4cGVjdGVkOiAiICsgb3JpZ2luYWxTY3JlZW5TaXplKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiU2NyZWVuIHNpemUgc2FtZSBhcyBvcmlnaW5hbCAtIE9LIik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkVuYWJsZSBQYWdlQWdlbnQ6Iik7Ci0gICAgICAgIFBhZ2VBZ2VudC5l
bmFibGUoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZ2V0U2l6ZXMo
KSIsIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhcHBseU92ZXJyaWRlKHdpZHRo
LCBoZWlnaHQsIHVzZXJDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KGVycm9yKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk92ZXJyaWRlOiAiICsgd2lkdGggKyAieCIgKyBo
ZWlnaHQgKyAiID0+IEVSUk9SIik7Ci0gICAgICAgICAgICB1c2VyQ2FsbGJhY2soKTsKLSAgICAg
ICAgfQotICAgICAgICBQYWdlQWdlbnQuc2V0RGV2aWNlTWV0cmljc092ZXJyaWRlKHdpZHRoLCBo
ZWlnaHQsIDEsIHRydWUsIGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvdmVycmlk
ZUFuZER1bXBEYXRhKHdpZHRoLCBoZWlnaHQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gZmluYWxDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJNYWluIHN0eWxlOiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgICAg
IGNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgZ290U2l6ZXM7Ci0gICAgICAg
IHZhciBnb3RTdHlsZXM7Ci0gICAgICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaWYgKGdvdFNpemVzKQotICAgICAgICAgICAgICAgIHJldHVybiBm
aW5hbENhbGxiYWNrKCk7Ci0gICAgICAgICAgICBnb3RTdHlsZXMgPSB0cnVlOwotICAgICAgICB9
Ci0KLSAgICAgICAgZnVuY3Rpb24gc2l6ZXNDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGdvdFNpemVzID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChnb3RTdHlsZXMpCi0gICAgICAg
ICAgICAgICAgZmluYWxDYWxsYmFjaygpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24g
YXBwbHlDYWxsYmFjaygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGdldEFuZER1bXBTaXplcyhz
aXplc0NhbGxiYWNrKTsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJPdmVycmlkZTogIiArIHdpZHRoICsgIngiICsgaGVpZ2h0KTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yU3R5bGVzKCJtYWluIiwgc3R5bGVzQ2FsbGJhY2spOwotICAgICAgICBh
cHBseU92ZXJyaWRlKHdpZHRoLCBoZWlnaHQsIGFwcGx5Q2FsbGJhY2spOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIGdldEFuZER1bXBTaXplcyhjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0
aW9uIGdldFNpemVzQ2FsbGJhY2soanNvblJlc3VsdCkKLSAgICAgICAgewotICAgICAgICAgICAg
dmFyIHJlc3VsdCA9IEpTT04ucGFyc2UoanNvblJlc3VsdC52YWx1ZSk7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyZWVuIGZyb20gcGFnZTogIiArIHJlc3VsdC5zY3Jl
ZW4pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIldpbmRvdyBmcm9tIHBh
Z2U6ICIgKyByZXN1bHQuaW5uZXIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkJvZHkgZnJvbSBwYWdlOiAiICsgcmVzdWx0LmJvZHkpOwotICAgICAgICAgICAgaWYgKGNh
bGxiYWNrKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJnZXRTaXplcygpIiwgZ2V0U2l6ZXNDYWxs
YmFjayk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KLTxwPgotVGVzdHMgdGhhdCBzY3JlZW4gZGltZW5zaW9uIG92ZXJyaWRlcyBhZmZl
Y3QgbWVkaWEgcnVsZXMsIGJvZHkgZGltZW5zaW9ucywgYW5kIHdpbmRvdy5zY3JlZW4uCi08L3A+
Ci0KLTxkaXYgaWQ9Im1haW4iPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>