<?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>170658</bug_id>
          
          <creation_ts>2017-04-09 16:15:19 -0700</creation_ts>
          <short_desc>[WK2] Add infrastructure to perform actions after an asynchronous position information request finishes</short_desc>
          <delta_ts>2017-04-13 14:59:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1295845</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-09 16:15:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/31431450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295851</commentid>
    <comment_count>1</comment_count>
      <attachid>306636</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-09 16:48:44 -0700</bug_when>
    <thetext>Created attachment 306636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295871</commentid>
    <comment_count>2</comment_count>
      <attachid>306636</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-09 20:09:20 -0700</bug_when>
    <thetext>Comment on attachment 306636
Patch

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

Very cool.

&gt; Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm:374
&gt; +    EXPECT_LT([NSDate timeIntervalSinceReferenceDate] - startTime, 1);

Did this actually fail before? I thought the timeout was 500ms. Also I hope this isn&apos;t flaky on contended bots... we&apos;ll see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295875</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-09 21:00:21 -0700</bug_when>
    <thetext>Thanks!

(In reply to Tim Horton from comment #2)
&gt; Comment on attachment 306636 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306636&amp;action=review
&gt; 
&gt; Very cool.
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm:374
&gt; &gt; +    EXPECT_LT([NSDate timeIntervalSinceReferenceDate] - startTime, 1);
&gt; 
&gt; Did this actually fail before? I thought the timeout was 500ms. Also I hope
&gt; this isn&apos;t flaky on contended bots... we&apos;ll see.

Oh, interesting -- when I ran it locally before my change, I got 1s (+2ms or so), so I set it to this value as the threshold. I don&apos;t think this will be flaky, since very little work is now done when preparing for data interaction, but if many other tests are running simultaneously and this isn&apos;t getting any execution time, another better way to test this might be to add hooks in the web view configs to disable the responsiveness timer altogether before beginning to spin the WP, forcing this test to time out if it does make a sync request to the web process.

I&apos;ll see how well the bots cope with this, and introduce some testing SPI with the above approach if I see any failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295877</commentid>
    <comment_count>4</comment_count>
      <attachid>306648</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-09 21:48:01 -0700</bug_when>
    <thetext>Created attachment 306648
Try to fix OpenSource iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295896</commentid>
    <comment_count>5</comment_count>
      <attachid>306658</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-09 22:43:02 -0700</bug_when>
    <thetext>Created attachment 306658
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1295903</commentid>
    <comment_count>6</comment_count>
      <attachid>306658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-09 23:25:25 -0700</bug_when>
    <thetext>Comment on attachment 306658
Patch for landing

Clearing flags on attachment: 306658

Committed r215171: &lt;http://trac.webkit.org/changeset/215171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296147</commentid>
    <comment_count>7</comment_count>
      <attachid>306740</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-10 14:12:02 -0700</bug_when>
    <thetext>Created attachment 306740
Additional tweaks to the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296158</commentid>
    <comment_count>8</comment_count>
      <attachid>306743</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-10 14:38:56 -0700</bug_when>
    <thetext>Created attachment 306743
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296190</commentid>
    <comment_count>9</comment_count>
      <attachid>306743</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-10 15:22:43 -0700</bug_when>
    <thetext>Comment on attachment 306743
Patch for landing

Clearing flags on attachment: 306743

Committed r215207: &lt;http://trac.webkit.org/changeset/215207&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306636</attachid>
            <date>2017-04-09 16:48:44 -0700</date>
            <delta_ts>2017-04-09 20:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170658-20170409164843.patch</filename>
            <type>text/plain</type>
            <size>16002</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc2OGNlMWE1OTRhMzM1
OTg4OTY5ZWJlNThiMzQ2Y2NlMmVhYTM4Zi4uNzNmY2QxOGM5ZGI0YTAwZjBiY2EzNjVlZmE4ZjFi
MTJlYTBlZjhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA0LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBp
bmZyYXN0cnVjdHVyZSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4gYXN5bmNocm9ub3VzIHBv
c2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3QgZmluaXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDY1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzE0MzE0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWlub3IgYWRqdXN0bWVudHMgdG8gZml4IHRoZSBidWlsZCBpbiB0aGUgbmV3ZXN0IHZl
cnNpb24gb2YgdGhlIFNESy4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLm1tOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNl
dEl0ZW1zRnJvbU9iamVjdFJlcHJlc2VudGF0aW9uczpdKToKKyAgICAgICAgKC1bV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZCBfdHJ5VG9DcmVhdGVBbmRBcHBlbmRPYmplY3RPZkNsYXNzOnRvQXJy
YXk6dXNpbmdQcm92aWRlcjpdKToKKwogMjAxNy0wNC0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGwgb2Zmc2V0IGp1bXBzIGFmdGVyIGEg
cHJvZ3JhbW1hdGljIHNjcm9sbCBpbiBhbiBvdmVyZmxvdyBjb250YWluZXIgd2l0aCBzY3JvbGwg
c25hcHBpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZGI1NTZhZTAwMTMzZmYzMWE4YzE0ZTk5NThhOTg4NDE0
NTVkMmFhLi43ZGQ4YzIwN2MxOWU1NmRjYzg2MzQ0OTczMTk3OWIxNDAyNTNiMDkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTctMDQtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGluZnJhc3RydWN0dXJlIHRvIHBl
cmZvcm0gYWN0aW9ucyBhZnRlciBhbiBhc3luY2hyb25vdXMgcG9zaXRpb24gaW5mb3JtYXRpb24g
cmVxdWVzdCBmaW5pc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjU4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTQzMTQ1MD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VzIHBl
cmZvcm1BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Zm9yUmVxdWVzdDosIHdoaWNoIFdL
Q29udGVudFZpZXcgY2FuIHVzZSBpbnRlcm5hbGx5IHRvIHBlcmZvcm0KKyAgICAgICAgYW4gYWN0
aW9uIHJlcXVpcmluZyBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBhc3luY2hyb25v
dXNseS4gU2VlIGJlbG93IGZvciBhZGRpdGlvbmFsIGRldGFpbHMuCisKKyAgICAgICAgTmV3IEFQ
SSB1bml0IHRlc3Q6IERhdGFJbnRlcmFjdGlvblRlc3RzLlVucmVzcG9uc2l2ZVBhZ2VEb2VzTm90
SGFuZ1VJLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0
aW9uSW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2FjdGlvbkZvckxv
bmdQcmVzc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1BZnRlclBvc2l0aW9u
SW5mb3JtYXRpb25VcGRhdGU6Zm9yUmVxdWVzdDpdKToKKworICAgICAgICBJZiBjdXJyZW50IHBv
c2l0aW9uIGluZm9ybWF0aW9uIHNhdGlzZmllcyB0aGUgcmVxdWVzdCwgdGhlbiBwZXJmb3JtIHRo
ZSBnaXZlbiBibG9jayBpbW1lZGlhdGVseTsgb3RoZXJ3aXNlLCB3ZQorICAgICAgICBzYXZlIHRo
ZSBibG9jayBhbmQgcmVxdWVzdCBhcyBhIHBhaXIgaW4gYSBsaXN0IG9mIHBlbmRpbmcgcG9zaXRp
b24gaW5mb3JtYXRpb24gaGFuZGxlcnMsIGFuZCB0aGVuIG1ha2UgYSBuZXcKKyAgICAgICAgcmVx
dWVzdCB0byB0aGUgd2ViIHByb2Nlc3MgZm9yIHBvc2l0aW9uIGluZm9ybWF0aW9uIGlmIHRoZSBj
dXJyZW50bHkgb3V0Z29pbmcgcmVxdWVzdCBkb2VzIG5vdCBhbHJlYWR5IHNhdGlzZnkKKyAgICAg
ICAgdGhlIGdpdmVuIHJlcXVlc3QuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBlbnN1cmVQ
b3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpdKToKKworICAgICAgICBGaXJlIGFsbCBhc3lu
Y2hyb25vdXMgcG9zaXRpb24gaW5mb3JtYXRpb24gaGFuZGxlcnMgdGhhdCBhcmUgc2F0aXNmaWVk
IGJ5IHRoZSBpbmNvbWluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklz
VmFsaWRGb3JSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYXNWYWxpZE91
dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q6XSk6CisKKyAgICAgICAgUHVsbGVk
IG91dCBjb21tb24gbG9naWMgZm9yIG1hbmFnaW5nIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0cyBpbnRvIHNlcGFyYXRlIGhlbHBlciBtZXRob2RzLgorCisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVudFBvc2l0
aW9uSW5mb3JtYXRpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2du
aXplclNob3VsZEJlZ2luOl0pOgorCisgICAgICAgIFJlZmFjdG9yZWQgdG8gdXNlIGVuc3VyZVBv
c2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOi4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdl
IGhlcmUsIGJ1dCBpdCBtYWtlcyBzdXJlIHRoYXQKKyAgICAgICAgdGhpcyBwYXJ0aWN1bGFyIHJl
cXVlc3Qgd2lsbCBhbHNvIGFueSB2YWxpZCBwZW5kaW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIGhh
bmRsZXJzLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Bvc2l0aW9uSW5mb3JtYXRpb25E
aWRDaGFuZ2U6XSk6CisKKyAgICAgICAgRmlyZSBhbGwgYXN5bmNocm9ub3VzIHBvc2l0aW9uIGlu
Zm9ybWF0aW9uIGhhbmRsZXJzIHRoYXQgYXJlIHNhdGlzZmllZCBieSB0aGUgaW5jb21pbmcgcG9z
aXRpb24gaW5mb3JtYXRpb24uCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb2ludElzSW5E
YXRhSW50ZXJhY3Rpb25Db250ZW50Ol0pOiBEZWxldGVkLgorCisgICAgICAgIFdlIHNob3VsZCBu
byBsb25nZXIgdXNlIHRoaXMgbWV0aG9kLCBzaW5jZSBpdCBtYWtlcyBhIHN5bmNocm9ub3VzIHJl
cXVlc3QgdG8gdGhlIHdlYiBwcm9jZXNzIC0tIHNlZQorICAgICAgICBwb3NpdGlvbkluZm9ybWF0
aW9uTWF5U3RhcnREYXRhSW50ZXJhY3Rpb24uCisKIDIwMTctMDQtMDcgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTWlzc2luZyBjb252ZXJzaW9uIGZy
b20gd2luZG93IHRvIGNvbnRlbnQgY29vcmRpbmF0ZXMgd2hlbiBhZGp1c3RpbmcgdW5vYnNjdXJl
ZCBjb250ZW50IHJlY3RzIGZvciBpbnB1dCB2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCmluZGV4IDkyMGZh
YjBiYzNkMjliOTM3NGZkOWEzNTI5NTcyZGNiY2UwMjg1MmEuLjE5NmU3MmFiYWJlMTA4ZDRlYWI2
NjRlYmU2NGViNzAwYWQzYzI4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC0xNTEsNiArMTUxLDgg
QEAgc3RhdGljIEJPT0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAgICAgICAgIGlmICgh
ZGF0YS5yZXByZXNlbnRpbmdPYmplY3RzLmNvdW50ICYmICFkYXRhLmFkZGl0aW9uYWxEYXRhLmNv
dW50KQogICAgICAgICAgICAgY29udGludWU7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKICAgICAgICAgUmV0YWluUHRyPFVJSXRlbVByb3ZpZGVyPiBpdGVtUHJvdmlkZXIg
PSBhZG9wdE5TKFtbZ2V0VUlJdGVtUHJvdmlkZXJDbGFzcygpIGFsbG9jXSBpbml0XSk7CiAgICAg
ICAgIC8vIEZpcnN0LCByZWdpc3RlciBhbGwgcGxhdGZvcm0gb2JqZWN0cywgcHJpb3JpdGl6aW5n
IG9iamVjdHMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgICAgIGZvciAoaWQg
cmVwcmVzZW50aW5nT2JqZWN0IGluIGRhdGEucmVwcmVzZW50aW5nT2JqZWN0cykgewpAQCAtMTcz
LDYgKzE3NSw3IEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAg
ICAgICAgICAgfV07CiAgICAgICAgIH0KICAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmplY3Q6aXRl
bVByb3ZpZGVyLmdldCgpXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAK
ICAgICBzZWxmLml0ZW1Qcm92aWRlcnMgPSBwcm92aWRlcnM7CkBAIC0yMjksMTIgKzIzMiwxMiBA
QCBzdGF0aWMgQk9PTCBpc0ltYWdlVHlwZShOU1N0cmluZyAqdHlwZSkKIAogLSAoQk9PTClfdHJ5
VG9DcmVhdGVBbmRBcHBlbmRPYmplY3RPZkNsYXNzOihDbGFzcylvYmplY3RDbGFzcyB0b0FycmF5
OihOU011dGFibGVBcnJheSAqKWFycmF5IHVzaW5nUHJvdmlkZXI6KFVJSXRlbVByb3ZpZGVyICop
cHJvdmlkZXIKIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAo
IVtwcm92aWRlciBjYW5DcmVhdGVPYmplY3RPZkNsYXNzOm9iamVjdENsYXNzXSkKICAgICAgICAg
cmV0dXJuIE5POwogCiAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMDQ1MTA5Nj4gQWRv
cHQgYXN5bmNocm9ub3VzIFVJSXRlbVByb3ZpZGVyIG1ldGhvZHMgd2hlbiByZXRyaWV2aW5nIGRh
dGEuCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWQgb2JqZWN0ID0g
W3Byb3ZpZGVyIGNyZWF0ZU9iamVjdE9mQ2xhc3M6b2JqZWN0Q2xhc3MgZXJyb3I6bmlsXTsKICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBpZiAob2JqZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
aW5kZXggZTIxYTc3N2NjYTQwY2ZmNjliOGRmNzkyMDZhNzVmZTM2NzNmNWY1Yy4uMDU5YjhmYzY1
MThlYzBmZDRhZDVmNjg1NjNkYmZlMDQ2MGNjODNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04NSw2
ICs4NSw4IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rpb25Db21wbGV0aW9uSGFuZGxlciko
dm9pZCk7CiB0eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9uV2l0aERpcmVjdGlvbkNvbXBsZXRp
b25IYW5kbGVyKShCT09MIHNlbGVjdGlvbkVuZElzTW92aW5nKTsKIHR5cGVkZWYgdm9pZCAoXlVJ
V0tLZXlXZWJFdmVudENvbXBsZXRpb25IYW5kbGVyKSg6OldlYkV2ZW50ICp0aGVFdmVudCwgQk9P
TCB3YXNIYW5kbGVkKTsKIAordHlwZWRlZiBCbG9ja1B0cjx2b2lkKFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbyB7
CkBAIC0xNzEsNiArMTczLDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBX
ZWJLaXQ6OldLU2VsZWN0aW9uRHJhd2luZ0luZm8gX2xhc3RTZWxlY3Rpb25EcmF3aW5nSW5mbzsK
IAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dD4gX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q7CisgICAgVmVjdG9yPHN0
ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQ2FsbGJhY2s+PiBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVy
czsKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpJbnB1dFZpZXdVcGRhdGVEZWZl
cnJlcj4gX2lucHV0Vmlld1VwZGF0ZURlZmVycmVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDg2
YzE1MjcxMTdhY2VmMDNhNzQ5ZTBhOTYzNDc2NjBkZDI1MWM3ZGQuLmZhYzBhODk4NDRjYmRlYWQ5
NmUzZjJkOWRkNTY1ZmUyYzQ2YTRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMjgxLDMzICsx
MjgxLDUxIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6
ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgW19hY3Rpb25TaGVldEFzc2lz
dGFudCBzaG93RGF0YURldGVjdG9yc1NoZWV0XTsKIH0KIAotLSAoU0VMKV9hY3Rpb25Gb3JMb25n
UHJlc3MKKy0gKFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246
KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0
aW9uCiB7Ci0gICAgaWYgKCFfcG9zaXRpb25JbmZvcm1hdGlvbi50b3VjaENhbGxvdXRFbmFibGVk
KQorICAgIGlmICghcG9zaXRpb25JbmZvcm1hdGlvbi50b3VjaENhbGxvdXRFbmFibGVkKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2Up
CisgICAgaWYgKHBvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSkKICAgICAgICAgcmV0dXJuIEBz
ZWxlY3Rvcihfc2hvd0ltYWdlU2hlZXQpOwogCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9u
LmlzTGluaykgewotICAgICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW05TVVJMIFVSTFdpdGhTdHJp
bmc6X3Bvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsKKyAgICBpZiAocG9zaXRpb25JbmZvcm1hdGlv
bi5pc0xpbmspIHsKKyAgICAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBVUkxXaXRoU3Ry
aW5nOnBvc2l0aW9uSW5mb3JtYXRpb24udXJsXTsKICAgICAgICAgaWYgKFtbZ2V0REREZXRlY3Rp
b25Db250cm9sbGVyQ2xhc3MoKSB0YXBBbmRIb2xkU2NoZW1lc10gY29udGFpbnNPYmplY3Q6dGFy
Z2V0VVJMLnNjaGVtZS5sb3dlcmNhc2VTdHJpbmddKQogICAgICAgICAgICAgcmV0dXJuIEBzZWxl
Y3Rvcihfc2hvd0RhdGFEZXRlY3RvcnNTaGVldCk7CiAgICAgICAgIHJldHVybiBAc2VsZWN0b3Io
X3Nob3dMaW5rU2hlZXQpOwogICAgIH0KLSAgICAKLSAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRp
b24uaXNBdHRhY2htZW50KQorICAgIGlmIChwb3NpdGlvbkluZm9ybWF0aW9uLmlzQXR0YWNobWVu
dCkKICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0F0dGFjaG1lbnRTaGVldCk7CiAKICAg
ICByZXR1cm4gbmlsOwogfQogCistIChTRUwpX2FjdGlvbkZvckxvbmdQcmVzcworeworICAgIHJl
dHVybiBbc2VsZiBfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246X3Bv
c2l0aW9uSW5mb3JtYXRpb25dOworfQorCistICh2b2lkKXBlcmZvcm1BZnRlclBvc2l0aW9uSW5m
b3JtYXRpb25VcGRhdGU6KEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjaylhY3Rpb24gZm9y
UmVxdWVzdDooSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdAoreworICAgIGlm
IChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1
ZXN0XSkgeworICAgICAgICAvLyBJZiB0aGUgbW9zdCByZWNlbnQgcG9zaXRpb24gaW5mb3JtYXRp
b24gaXMgYWxyZWFkeSB2YWxpZCwgaW52b2tlIHRoZSBnaXZlbiBhY3Rpb24gYmxvY2sgaW1tZWRp
YXRlbHkuCisgICAgICAgIGFjdGlvbihfcG9zaXRpb25JbmZvcm1hdGlvbik7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5h
cHBlbmQoeyByZXF1ZXN0LCBhY3Rpb24gfSk7CisKKyAgICBpZiAoIVtzZWxmIF9oYXNWYWxpZE91
dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q6cmVxdWVzdF0pCisgICAgICAgIFtz
ZWxmIHJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOnJlcXVlc3Rd
OworfQorCiAtICh2b2lkKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QKIHsKLSAgICBpZiAoX2hh
c1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0
LmlzVmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QpKQorICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0
aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ICYmIF9v
dXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LT5pc1ZhbGlkRm9yUmVxdWVzdChy
ZXF1ZXN0KSkgeworICAgIGlmIChbc2VsZiBfaGFzVmFsaWRPdXRzdGFuZGluZ1Bvc2l0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0OnJlcXVlc3RdKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9u
ID0gX3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9uKCkpIHsKICAgICAgICAgICAgIGNvbm5lY3Rp
b24tPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0aW9uPihfcGFnZS0+cGFnZUlEKCksIFNlY29uZHM6
OmluZmluaXR5KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTMxNiwxMSArMTMzNCwxMiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBV
SUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogCiAgICAgX3BhZ2UtPmdldFBvc2l0aW9uSW5mb3Jt
YXRpb24ocmVxdWVzdCwgX3Bvc2l0aW9uSW5mb3JtYXRpb24pOwogICAgIF9oYXNWYWxpZFBvc2l0
aW9uSW5mb3JtYXRpb24gPSBZRVM7CisgICAgW3NlbGYgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdI
YW5kbGVyc1ZhbGlkRm9yQ3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dOwogfQogCiAtICh2b2lk
KXJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOihXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QKIHsKLSAgICBpZiAoX2hhc1ZhbGlk
UG9zaXRpb25JbmZvcm1hdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LmlzVmFs
aWRGb3JSZXF1ZXN0KHJlcXVlc3QpKQorICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5m
b3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSByZXF1ZXN0OwpAQCAt
MTMyOCw2ICsxMzQ3LDM2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVy
ZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgX3BhZ2UtPnJl
cXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uKHJlcXVlc3QpOwogfQogCistIChCT09MKV9jdXJyZW50
UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0Oihjb25zdCBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdCYpcmVxdWVzdAoreworICAgIHJldHVybiBfaGFzVmFsaWRQb3NpdGlv
bkluZm9ybWF0aW9uICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QuaXNWYWxpZEZvclJl
cXVlc3QocmVxdWVzdCk7Cit9CisKKy0gKEJPT0wpX2hhc1ZhbGlkT3V0c3RhbmRpbmdQb3NpdGlv
bkluZm9ybWF0aW9uUmVxdWVzdDooY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qm
KXJlcXVlc3QKK3sKKyAgICByZXR1cm4gX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJl
cXVlc3QgJiYgX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QtPmlzVmFsaWRG
b3JSZXF1ZXN0KHJlcXVlc3QpOworfQorCistICh2b2lkKV9pbnZva2VBbmRSZW1vdmVQZW5kaW5n
SGFuZGxlcnNWYWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uCit7CisgICAgQVNTRVJU
KF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24pOworCisgICAgVmVjdG9yPHNpemVfdD4gaW5k
aWNlc09mSGFuZGxlZFJlcXVlc3RzOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXgg
PCBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5zaXplKCk7ICsraW5kZXgpIHsK
KyAgICAgICAgYXV0byYgcmVxdWVzdEFuZEhhbmRsZXIgPSBfcGVuZGluZ1Bvc2l0aW9uSW5mb3Jt
YXRpb25IYW5kbGVyc1tpbmRleF07CisgICAgICAgIGlmICghW3NlbGYgX2N1cnJlbnRQb3NpdGlv
bkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdEFuZEhhbmRsZXIuZmlyc3RdKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHJlcXVlc3RBbmRIYW5kbGVyLnNl
Y29uZCkKKyAgICAgICAgICAgIHJlcXVlc3RBbmRIYW5kbGVyLnNlY29uZChfcG9zaXRpb25JbmZv
cm1hdGlvbik7CisKKyAgICAgICAgaW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzLmFwcGVuZChpbmRl
eCk7CisgICAgfQorCisgICAgd2hpbGUgKGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0cy5zaXplKCkp
CisgICAgICAgIF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLnJlbW92ZShpbmRp
Y2VzT2ZIYW5kbGVkUmVxdWVzdHMudGFrZUxhc3QoKSk7Cit9CisKICNpZiBFTkFCTEUoREFUQV9E
RVRFQ1RJT04pCiAtIChOU0FycmF5ICopX2RhdGFEZXRlY3Rpb25SZXN1bHRzCiB7CkBAIC0xMzYz
LDkgKzE0MTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNv
Z25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgICAgICBpZiAoX3RleHRT
ZWxlY3Rpb25Bc3Npc3RhbnQpIHsKICAgICAgICAgICAgIC8vIFJlcXVlc3QgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIHBvc2l0aW9uIHdpdGggc3luYyBtZXNzYWdlLgogICAgICAgICAgICAgLy8gSWYg
dGhlIGFzc2lzdGVkIG5vZGUgaXMgdGhlIHNhbWUsIHByZXZlbnQgdGhlIGdlc3R1cmUuCi0gICAg
ICAgICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQ
b2ludChwb2ludCkpOwotICAgICAgICAgICAgX3BhZ2UtPmdldFBvc2l0aW9uSW5mb3JtYXRpb24o
cmVxdWVzdCwgX3Bvc2l0aW9uSW5mb3JtYXRpb24pOwotICAgICAgICAgICAgX2hhc1ZhbGlkUG9z
aXRpb25JbmZvcm1hdGlvbiA9IFlFUzsKKyAgICAgICAgICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9u
SW5mb3JtYXRpb25Jc1VwVG9EYXRlOkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KHJvdW5k
ZWRJbnRQb2ludChwb2ludCkpXTsKICAgICAgICAgICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlv
bi5ub2RlQXRQb3NpdGlvbklzQXNzaXN0ZWROb2RlKQogICAgICAgICAgICAgICAgIHJldHVybiBO
TzsKICAgICAgICAgfQpAQCAtMTQ1NywyMSArMTUwNCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIs
IFVJCiAgICAgcmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzU2VsZWN0YWJsZTsKIH0KIAot
I2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotCi0tIChCT09MKXBvaW50SXNJbkRhdGFJbnRl
cmFjdGlvbkNvbnRlbnQ6KENHUG9pbnQpcG9pbnQKLXsKLSAgICBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkpOwotICAgIFtzZWxmIGVu
c3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwotCi0gICAgaWYgKF9w
b3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UgfHwgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5r
IHx8IF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzQXR0YWNobWVudCkKLSAgICAgICAgcmV0dXJuIFlF
UzsKLQotICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNTZWxlY3Rpb25BdFBvc2l0
aW9uOwotfQotCi0jZW5kaWYKLQogLSAoQk9PTClwb2ludElzTmVhck1hcmtlZFRleHQ6KENHUG9p
bnQpcG9pbnQKIHsKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJv
dW5kZWRJbnRQb2ludChwb2ludCkpOwpAQCAtMTc3MSw2ICsxODAzLDcgQEAgc3RhdGljIHZvaWQg
Y2FuY2VsUG90ZW50aWFsVGFwSWZOZWNlc3NhcnkoV0tDb250ZW50VmlldyogY29udGVudFZpZXcp
CiAgICAgX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IFlFUzsKICAgICBpZiAoX2FjdGlv
blNoZWV0QXNzaXN0YW50KQogICAgICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHVwZGF0ZVNo
ZWV0UG9zaXRpb25dOworICAgIFtzZWxmIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAogLSAodm9pZClfd2lsbFN0
YXJ0U2Nyb2xsaW5nT3Jab29taW5nCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggOWZmZTdhY2I1YmU2Y2MxN2EwNjI3Y2UwNjFhZmUwYjQwY2Q0NGY1
ZC4uYTcxNjBkZDI0YTM3MjgwNjg1MjYyY2NlYjVkY2IwYzY2MDA3ZDE5NyAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDE3LTA0LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXSzJdIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4g
YXN5bmNocm9ub3VzIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3QgZmluaXNoZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDY1OAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzE0MzE0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyB0ZXN0IHZlcmlmeWluZyB0aGF0IHdoZW4g
YSB3ZWIgcGFnZSBpcyB1bnJlc3BvbnNpdmUsIHRoZSBwcm9jZXNzIG9mIHByZXBhcmluZyBmb3Ig
ZGF0YSBpbnRlcmFjdGlvbgorICAgICAgICBkb2VzIG5vdCBhbHNvIGNhdXNlIHRoZSBVSSBwcm9j
ZXNzIHRvIHNwaW4uIFdlIGFzc3VtZSBoZXJlIHRoYXQgdGhlIGNhbGwgdG8gcHJlcGFyZSBtdXN0
IGJlIGFzeW5jaHJvbm91cywgc28gaXQKKyAgICAgICAgc2hvdWxkIGNvbXBsZXRlIGJlZm9yZSB0
aGUgdW5yZXNwb25zaXZlbmVzcyB0aW1lb3V0IGlzIHRyaWdnZXJlZC4KKworICAgICAgICBTZWUg
V2ViS2l0MiBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDQtMDYgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxNTA0Ni4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRl
c3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVz
dHMubW0KaW5kZXggOGYzYmNkMmNkNGU0NThkZGNiNTRlMmZhMzM3YzA4NTJhODMzNDczNy4uNDA2
MjllOWI0OGViMzEwN2VlYTUwOWVhN2JlNDBkZjdhYTNhYTFlZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KQEAgLTM2
Miw2ICszNjIsMTggQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgQ3VzdG9tQWN0aW9uU2hl
ZXRQb3BvdmVyKQogICAgIEVYUEVDVF9XS19TVFJFUSgiUEFTUyIsIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ0YXJnZXQudGV4dENvbnRlbnQiXS5VVEY4U3RyaW5nKTsK
IH0KIAorVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgVW5yZXNwb25zaXZlUGFnZURvZXNOb3RI
YW5nVUkpCit7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpA
InNpbXBsZSJdOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndoaWxlKDEpOyIg
Y29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKworICAgIE5TVGltZUludGVydmFsIHN0YXJ0VGltZSA9
IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKKyAgICBbd2ViVmlldyBf
c2ltdWxhdGVQcmVwYXJlRm9yRGF0YUludGVyYWN0aW9uU2Vzc2lvbjpuaWwgY29tcGxldGlvbjpe
KCkgeyB9XTsKKworICAgIEVYUEVDVF9MVChbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJl
bmNlRGF0ZV0gLSBzdGFydFRpbWUsIDEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
</data>
<flag name="review"
          id="327996"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306648</attachid>
            <date>2017-04-09 21:48:01 -0700</date>
            <delta_ts>2017-04-09 21:48:01 -0700</delta_ts>
            <desc>Try to fix OpenSource iOS build</desc>
            <filename>bug-170658-20170409214800.patch</filename>
            <type>text/plain</type>
            <size>16184</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc2OGNlMWE1OTRhMzM1
OTg4OTY5ZWJlNThiMzQ2Y2NlMmVhYTM4Zi4uNDJlZjE3NmYyY2QxODFhMTEzMWQzNGJlODk2NTgy
ZDJkY2IzMWJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA0LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBp
bmZyYXN0cnVjdHVyZSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4gYXN5bmNocm9ub3VzIHBv
c2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3QgZmluaXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDY1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzE0MzE0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBNaW5vciBhZGp1c3RtZW50cyB0byBmaXggdGhlIGJ1aWxkIGluIHRoZSBuZXdlc3QgdmVyc2lv
biBvZiB0aGUgU0RLLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW06CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2V0SXRl
bXNGcm9tT2JqZWN0UmVwcmVzZW50YXRpb25zOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkIF90cnlUb0NyZWF0ZUFuZEFwcGVuZE9iamVjdE9mQ2xhc3M6dG9BcnJheTp1
c2luZ1Byb3ZpZGVyOl0pOgorCiAyMDE3LTA0LTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbCBvZmZzZXQganVtcHMgYWZ0ZXIgYSBwcm9n
cmFtbWF0aWMgc2Nyb2xsIGluIGFuIG92ZXJmbG93IGNvbnRhaW5lciB3aXRoIHNjcm9sbCBzbmFw
cGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDlkYjU1NmFlMDAxMzNmZjMxYThjMTRlOTk1OGE5ODg0MTQ1NWQy
YWEuLjAwNjhmZTdmNmExNmVlMjU3Y2Q2MTYxYmE3NTRhNDBmMTFlOWEyYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1MiBAQAorMjAxNy0wNC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcGVyZm9y
bSBhY3Rpb25zIGFmdGVyIGFuIGFzeW5jaHJvbm91cyBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1
ZXN0IGZpbmlzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA2NTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxNDMxNDUwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgSW50cm9kdWNlcyBkb0FmdGVyUG9z
aXRpb25JbmZvcm1hdGlvblVwZGF0ZTpmb3JSZXF1ZXN0Oiwgd2hpY2ggV0tDb250ZW50VmlldyBj
YW4gdXNlIGludGVybmFsbHkgdG8gcGVyZm9ybQorICAgICAgICBhbiBhY3Rpb24gcmVxdWlyaW5n
IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGFzeW5jaHJvbm91c2x5LiBTZWUgYmVs
b3cgZm9yIGFkZGl0aW9uYWwgZGV0YWlscy4KKworICAgICAgICBOZXcgQVBJIHVuaXQgdGVzdDog
RGF0YUludGVyYWN0aW9uVGVzdHMuVW5yZXNwb25zaXZlUGFnZURvZXNOb3RIYW5nVUkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlv
bjpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYWN0aW9uRm9yTG9uZ1ByZXNzXSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6
Zm9yUmVxdWVzdDpdKToKKworICAgICAgICBJZiBjdXJyZW50IHBvc2l0aW9uIGluZm9ybWF0aW9u
IHNhdGlzZmllcyB0aGUgcmVxdWVzdCwgdGhlbiBwZXJmb3JtIHRoZSBnaXZlbiBibG9jayBpbW1l
ZGlhdGVseTsgb3RoZXJ3aXNlLCB3ZQorICAgICAgICBzYXZlIHRoZSBibG9jayBhbmQgcmVxdWVz
dCBhcyBhIHBhaXIgaW4gYSBsaXN0IG9mIHBlbmRpbmcgcG9zaXRpb24gaW5mb3JtYXRpb24gaGFu
ZGxlcnMsIGFuZCB0aGVuIG1ha2UgYSBuZXcKKyAgICAgICAgcmVxdWVzdCB0byB0aGUgd2ViIHBy
b2Nlc3MgZm9yIHBvc2l0aW9uIGluZm9ybWF0aW9uIGlmIHRoZSBjdXJyZW50bHkgb3V0Z29pbmcg
cmVxdWVzdCBkb2VzIG5vdCBhbHJlYWR5IHNhdGlzZnkKKyAgICAgICAgdGhlIGdpdmVuIHJlcXVl
c3QuCisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9u
SXNVcFRvRGF0ZTpdKToKKworICAgICAgICBGaXJlIGFsbCBhc3luY2hyb25vdXMgcG9zaXRpb24g
aW5mb3JtYXRpb24gaGFuZGxlcnMgdGhhdCBhcmUgc2F0aXNmaWVkIGJ5IHRoZSBpbmNvbWluZyBw
b3NpdGlvbiBpbmZvcm1hdGlvbi4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlcXVlc3RB
c3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0Ol0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25J
bmZvcm1hdGlvblJlcXVlc3Q6XSk6CisKKyAgICAgICAgUHVsbGVkIG91dCBjb21tb24gbG9naWMg
Zm9yIG1hbmFnaW5nIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0cyBpbnRvIHNlcGFyYXRl
IGhlbHBlciBtZXRob2RzLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2ludm9rZUFuZFJl
bW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOl0p
OgorCisgICAgICAgIFJlZmFjdG9yZWQgdG8gdXNlIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25J
c1VwVG9EYXRlOi4gVGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlIGhlcmUsIGJ1dCBpdCBtYWtl
cyBzdXJlIHRoYXQKKyAgICAgICAgdGhpcyBwYXJ0aWN1bGFyIHJlcXVlc3Qgd2lsbCBhbHNvIGFu
eSB2YWxpZCBwZW5kaW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzLgorCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX3Bvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2U6XSk6CisKKyAg
ICAgICAgRmlyZSBhbGwgYXN5bmNocm9ub3VzIHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJz
IHRoYXQgYXJlIHNhdGlzZmllZCBieSB0aGUgaW5jb21pbmcgcG9zaXRpb24gaW5mb3JtYXRpb24u
CisKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb2ludElzSW5EYXRhSW50ZXJhY3Rpb25Db250
ZW50Ol0pOiBEZWxldGVkLgorCisgICAgICAgIFdlIHNob3VsZCBubyBsb25nZXIgdXNlIHRoaXMg
bWV0aG9kLCBzaW5jZSBpdCBtYWtlcyBhIHN5bmNocm9ub3VzIHJlcXVlc3QgdG8gdGhlIHdlYiBw
cm9jZXNzIC0tIHNlZQorICAgICAgICBwb3NpdGlvbkluZm9ybWF0aW9uTWF5U3RhcnREYXRhSW50
ZXJhY3Rpb24uCisKIDIwMTctMDQtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWlzc2luZyBjb252ZXJzaW9uIGZyb20gd2luZG93IHRvIGNvbnRl
bnQgY29vcmRpbmF0ZXMgd2hlbiBhZGp1c3RpbmcgdW5vYnNjdXJlZCBjb250ZW50IHJlY3RzIGZv
ciBpbnB1dCB2aWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCmluZGV4IDkyMGZhYjBiYzNkMjliOTM3NGZkOWEz
NTI5NTcyZGNiY2UwMjg1MmEuLjE5NmU3MmFiYWJlMTA4ZDRlYWI2NjRlYmU2NGViNzAwYWQzYzI4
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC0xNTEsNiArMTUxLDggQEAgc3RhdGljIEJPT0wgaXNJ
bWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAgICAgICAgIGlmICghZGF0YS5yZXByZXNlbnRpbmdP
YmplY3RzLmNvdW50ICYmICFkYXRhLmFkZGl0aW9uYWxEYXRhLmNvdW50KQogICAgICAgICAgICAg
Y29udGludWU7CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICAgICAg
UmV0YWluUHRyPFVJSXRlbVByb3ZpZGVyPiBpdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbZ2V0VUlJ
dGVtUHJvdmlkZXJDbGFzcygpIGFsbG9jXSBpbml0XSk7CiAgICAgICAgIC8vIEZpcnN0LCByZWdp
c3RlciBhbGwgcGxhdGZvcm0gb2JqZWN0cywgcHJpb3JpdGl6aW5nIG9iamVjdHMgYXQgdGhlIGJl
Z2lubmluZyBvZiB0aGUgYXJyYXkuCiAgICAgICAgIGZvciAoaWQgcmVwcmVzZW50aW5nT2JqZWN0
IGluIGRhdGEucmVwcmVzZW50aW5nT2JqZWN0cykgewpAQCAtMTczLDYgKzE3NSw3IEBAIHN0YXRp
YyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAgICAgICAgICAgfV07CiAgICAg
ICAgIH0KICAgICAgICAgW3Byb3ZpZGVycyBhZGRPYmplY3Q6aXRlbVByb3ZpZGVyLmdldCgpXTsK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICB9CiAKICAgICBzZWxmLml0ZW1Qcm92
aWRlcnMgPSBwcm92aWRlcnM7CkBAIC0yMjksMTIgKzIzMiwxMiBAQCBzdGF0aWMgQk9PTCBpc0lt
YWdlVHlwZShOU1N0cmluZyAqdHlwZSkKIAogLSAoQk9PTClfdHJ5VG9DcmVhdGVBbmRBcHBlbmRP
YmplY3RPZkNsYXNzOihDbGFzcylvYmplY3RDbGFzcyB0b0FycmF5OihOU011dGFibGVBcnJheSAq
KWFycmF5IHVzaW5nUHJvdmlkZXI6KFVJSXRlbVByb3ZpZGVyICopcHJvdmlkZXIKIHsKKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKICAgICBpZiAoIVtwcm92aWRlciBjYW5DcmVh
dGVPYmplY3RPZkNsYXNzOm9iamVjdENsYXNzXSkKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAg
Ly8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMDQ1MTA5Nj4gQWRvcHQgYXN5bmNocm9ub3VzIFVJ
SXRlbVByb3ZpZGVyIG1ldGhvZHMgd2hlbiByZXRyaWV2aW5nIGRhdGEuCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgaWQgb2JqZWN0ID0gW3Byb3ZpZGVyIGNyZWF0ZU9i
amVjdE9mQ2xhc3M6b2JqZWN0Q2xhc3MgZXJyb3I6bmlsXTsKICNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICBpZiAob2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggZTIxYTc3N2NjYTQw
Y2ZmNjliOGRmNzkyMDZhNzVmZTM2NzNmNWY1Yy4uZWUyMDVkYjEwMzUyZDQyNThlYTc1ZmQ4YjVi
MGQxNzAyOTdhMjc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0
IDxVSUtpdC9VSVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRmxvYXRRdWFkLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KQEAgLTg1LDYgKzg2LDggQEAgdHlwZWRlZiB2b2lkICheVUlXS1NlbGVjdGlv
bkNvbXBsZXRpb25IYW5kbGVyKSh2b2lkKTsKIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rpb25X
aXRoRGlyZWN0aW9uQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc2VsZWN0aW9uRW5kSXNNb3Zpbmcp
OwogdHlwZWRlZiB2b2lkICheVUlXS0tleVdlYkV2ZW50Q29tcGxldGlvbkhhbmRsZXIpKDo6V2Vi
RXZlbnQgKnRoZUV2ZW50LCBCT09MIHdhc0hhbmRsZWQpOwogCit0eXBlZGVmIEJsb2NrUHRyPHZv
aWQoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbik+IEludGVyYWN0aW9u
SW5mb3JtYXRpb25DYWxsYmFjazsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXS1Nl
bGVjdGlvbkRyYXdpbmdJbmZvIHsKQEAgLTE3MSw2ICsxNzQsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29y
cmVjdGlvbkRhdGEgewogICAgIFdlYktpdDo6V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyBfbGFzdFNl
bGVjdGlvbkRyYXdpbmdJbmZvOwogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0PiBfb3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVx
dWVzdDsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjaz4+IF9wZW5kaW5nUG9zaXRp
b25JbmZvcm1hdGlvbkhhbmRsZXJzOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6
OklucHV0Vmlld1VwZGF0ZURlZmVycmVyPiBfaW5wdXRWaWV3VXBkYXRlRGVmZXJyZXI7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggODZjMTUyNzExN2FjZWYwM2E3NDllMGE5NjM0NzY2MGRkMjUxYzdk
ZC4uOThhNDI1Y2Q2YTI5ZGM2NDk2ZWY3ZmVlY2Y1NjkzM2JjODM5Njk3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KQEAgLTEyODEsMzMgKzEyODEsNTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBh
aXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAg
ICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dEYXRhRGV0ZWN0b3JzU2hlZXRdOwogfQogCi0t
IChTRUwpX2FjdGlvbkZvckxvbmdQcmVzcworLSAoU0VMKV9hY3Rpb25Gb3JMb25nUHJlc3NGcm9t
UG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mKXBvc2l0aW9uSW5mb3JtYXRpb24KIHsKLSAgICBpZiAoIV9wb3NpdGlvbkluZm9ybWF0aW9u
LnRvdWNoQ2FsbG91dEVuYWJsZWQpCisgICAgaWYgKCFwb3NpdGlvbkluZm9ybWF0aW9uLnRvdWNo
Q2FsbG91dEVuYWJsZWQpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBpZiAoX3Bvc2l0aW9u
SW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICBpZiAocG9zaXRpb25JbmZvcm1hdGlvbi5pc0ltYWdl
KQogICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93SW1hZ2VTaGVldCk7CiAKLSAgICBpZiAo
X3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKSB7Ci0gICAgICAgIE5TVVJMICp0YXJnZXRVUkwg
PSBbTlNVUkwgVVJMV2l0aFN0cmluZzpfcG9zaXRpb25JbmZvcm1hdGlvbi51cmxdOworICAgIGlm
IChwb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykgeworICAgICAgICBOU1VSTCAqdGFyZ2V0VVJM
ID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6cG9zaXRpb25JbmZvcm1hdGlvbi51cmxdOwogICAgICAg
ICBpZiAoW1tnZXRERERldGVjdGlvbkNvbnRyb2xsZXJDbGFzcygpIHRhcEFuZEhvbGRTY2hlbWVz
XSBjb250YWluc09iamVjdDp0YXJnZXRVUkwuc2NoZW1lLmxvd2VyY2FzZVN0cmluZ10pCiAgICAg
ICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93RGF0YURldGVjdG9yc1NoZWV0KTsKICAgICAg
ICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0xpbmtTaGVldCk7CiAgICAgfQotICAgIAotICAgIGlm
IChfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0F0dGFjaG1lbnQpCisgICAgaWYgKHBvc2l0aW9uSW5m
b3JtYXRpb24uaXNBdHRhY2htZW50KQogICAgICAgICByZXR1cm4gQHNlbGVjdG9yKF9zaG93QXR0
YWNobWVudFNoZWV0KTsKIAogICAgIHJldHVybiBuaWw7CiB9CiAKKy0gKFNFTClfYWN0aW9uRm9y
TG9uZ1ByZXNzCit7CisgICAgcmV0dXJuIFtzZWxmIF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9z
aXRpb25JbmZvcm1hdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl07Cit9CisKKy0gKHZvaWQpZG9B
ZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxs
YmFjaylhY3Rpb24gZm9yUmVxdWVzdDooSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVx
dWVzdAoreworICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlk
Rm9yUmVxdWVzdDpyZXF1ZXN0XSkgeworICAgICAgICAvLyBJZiB0aGUgbW9zdCByZWNlbnQgcG9z
aXRpb24gaW5mb3JtYXRpb24gaXMgYWxyZWFkeSB2YWxpZCwgaW52b2tlIHRoZSBnaXZlbiBhY3Rp
b24gYmxvY2sgaW1tZWRpYXRlbHkuCisgICAgICAgIGFjdGlvbihfcG9zaXRpb25JbmZvcm1hdGlv
bik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3Jt
YXRpb25IYW5kbGVycy5hcHBlbmQoeyByZXF1ZXN0LCBhY3Rpb24gfSk7CisKKyAgICBpZiAoIVtz
ZWxmIF9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q6cmVxdWVz
dF0pCisgICAgICAgIFtzZWxmIHJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9u
VXBkYXRlOnJlcXVlc3RdOworfQorCiAtICh2b2lkKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25J
c1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QK
IHsKLSAgICBpZiAoX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiAmJiBfcG9zaXRpb25JbmZv
cm1hdGlvbi5yZXF1ZXN0LmlzVmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QpKQorICAgIGlmIChbc2Vs
ZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0ICYmIF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LT5pc1Zh
bGlkRm9yUmVxdWVzdChyZXF1ZXN0KSkgeworICAgIGlmIChbc2VsZiBfaGFzVmFsaWRPdXRzdGFu
ZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OnJlcXVlc3RdKSB7CiAgICAgICAgIGlmIChh
dXRvKiBjb25uZWN0aW9uID0gX3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9uKCkpIHsKICAgICAg
ICAgICAgIGNvbm5lY3Rpb24tPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0aW9uPihfcGFnZS0+cGFn
ZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTMx
NiwxMSArMTMzNCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVS
ZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogCiAgICAgX3BhZ2UtPmdl
dFBvc2l0aW9uSW5mb3JtYXRpb24ocmVxdWVzdCwgX3Bvc2l0aW9uSW5mb3JtYXRpb24pOwogICAg
IF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBZRVM7CisgICAgW3NlbGYgX2ludm9rZUFu
ZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25d
OwogfQogCiAtICh2b2lkKXJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBk
YXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QKIHsKLSAg
ICBpZiAoX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlv
bi5yZXF1ZXN0LmlzVmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QpKQorICAgIGlmIChbc2VsZiBfY3Vy
cmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Qg
PSByZXF1ZXN0OwpAQCAtMTMyOCw2ICsxMzQ3LDM2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1Nh
bWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJ
CiAgICAgX3BhZ2UtPnJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uKHJlcXVlc3QpOwogfQogCist
IChCT09MKV9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0Oihjb25z
dCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpcmVxdWVzdAoreworICAgIHJldHVybiBf
aGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uICYmIF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVl
c3QuaXNWYWxpZEZvclJlcXVlc3QocmVxdWVzdCk7Cit9CisKKy0gKEJPT0wpX2hhc1ZhbGlkT3V0
c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDooY29uc3QgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QmKXJlcXVlc3QKK3sKKyAgICByZXR1cm4gX291dHN0YW5kaW5nUG9zaXRp
b25JbmZvcm1hdGlvblJlcXVlc3QgJiYgX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJl
cXVlc3QtPmlzVmFsaWRGb3JSZXF1ZXN0KHJlcXVlc3QpOworfQorCistICh2b2lkKV9pbnZva2VB
bmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNWYWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9u
Cit7CisgICAgQVNTRVJUKF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24pOworCisgICAgVmVj
dG9yPHNpemVfdD4gaW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzOworICAgIGZvciAoc2l6ZV90IGlu
ZGV4ID0gMDsgaW5kZXggPCBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5zaXpl
KCk7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0byYgcmVxdWVzdEFuZEhhbmRsZXIgPSBfcGVuZGlu
Z1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyc1tpbmRleF07CisgICAgICAgIGlmICghW3NlbGYg
X2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdEFuZEhh
bmRsZXIuZmlyc3RdKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHJlcXVl
c3RBbmRIYW5kbGVyLnNlY29uZCkKKyAgICAgICAgICAgIHJlcXVlc3RBbmRIYW5kbGVyLnNlY29u
ZChfcG9zaXRpb25JbmZvcm1hdGlvbik7CisKKyAgICAgICAgaW5kaWNlc09mSGFuZGxlZFJlcXVl
c3RzLmFwcGVuZChpbmRleCk7CisgICAgfQorCisgICAgd2hpbGUgKGluZGljZXNPZkhhbmRsZWRS
ZXF1ZXN0cy5zaXplKCkpCisgICAgICAgIF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRs
ZXJzLnJlbW92ZShpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMudGFrZUxhc3QoKSk7Cit9CisKICNp
ZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAtIChOU0FycmF5ICopX2RhdGFEZXRlY3Rpb25SZXN1
bHRzCiB7CkBAIC0xMzYzLDkgKzE0MTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFp
cihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAg
ICAgICBpZiAoX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQpIHsKICAgICAgICAgICAgIC8vIFJlcXVl
c3QgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBvc2l0aW9uIHdpdGggc3luYyBtZXNzYWdlLgogICAg
ICAgICAgICAgLy8gSWYgdGhlIGFzc2lzdGVkIG5vZGUgaXMgdGhlIHNhbWUsIHByZXZlbnQgdGhl
IGdlc3R1cmUuCi0gICAgICAgICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1
ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkpOwotICAgICAgICAgICAgX3BhZ2UtPmdldFBvc2l0
aW9uSW5mb3JtYXRpb24ocmVxdWVzdCwgX3Bvc2l0aW9uSW5mb3JtYXRpb24pOwotICAgICAgICAg
ICAgX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IFlFUzsKKyAgICAgICAgICAgIFtzZWxm
IGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkpXTsKICAgICAgICAgICAgIGlmIChfcG9z
aXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlvbklzQXNzaXN0ZWROb2RlKQogICAgICAgICAg
ICAgICAgIHJldHVybiBOTzsKICAgICAgICAgfQpAQCAtMTQ1NywyMSArMTUwNCw2IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVy
ZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgcmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzU2Vs
ZWN0YWJsZTsKIH0KIAotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotCi0tIChCT09MKXBv
aW50SXNJbkRhdGFJbnRlcmFjdGlvbkNvbnRlbnQ6KENHUG9pbnQpcG9pbnQKLXsKLSAgICBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkp
OwotICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3Rd
OwotCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UgfHwgX3Bvc2l0aW9uSW5m
b3JtYXRpb24uaXNMaW5rIHx8IF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzQXR0YWNobWVudCkKLSAg
ICAgICAgcmV0dXJuIFlFUzsKLQotICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNT
ZWxlY3Rpb25BdFBvc2l0aW9uOwotfQotCi0jZW5kaWYKLQogLSAoQk9PTClwb2ludElzTmVhck1h
cmtlZFRleHQ6KENHUG9pbnQpcG9pbnQKIHsKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkpOwpAQCAtMTc3MSw2ICsxODAzLDcg
QEAgc3RhdGljIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwSWZOZWNlc3NhcnkoV0tDb250ZW50Vmll
dyogY29udGVudFZpZXcpCiAgICAgX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IFlFUzsK
ICAgICBpZiAoX2FjdGlvblNoZWV0QXNzaXN0YW50KQogICAgICAgICBbX2FjdGlvblNoZWV0QXNz
aXN0YW50IHVwZGF0ZVNoZWV0UG9zaXRpb25dOworICAgIFtzZWxmIF9pbnZva2VBbmRSZW1vdmVQ
ZW5kaW5nSGFuZGxlcnNWYWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAog
LSAodm9pZClfd2lsbFN0YXJ0U2Nyb2xsaW5nT3Jab29taW5nCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWZmZTdhY2I1YmU2Y2MxN2EwNjI3Y2Uw
NjFhZmUwYjQwY2Q0NGY1ZC4uMzc5MTEyNGUxOWZkMzVkNGFlYjM3MDZkY2MwMjE1ZDhiYmE5NWQ4
MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIwIEBACisyMDE3LTA0LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBwZXJmb3JtIGFj
dGlvbnMgYWZ0ZXIgYW4gYXN5bmNocm9ub3VzIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3Qg
ZmluaXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDY1OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE0MzE0NTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGRzIGEgbmV3IHRlc3QgdmVyaWZ5aW5n
IHRoYXQgd2hlbiBhIHdlYiBwYWdlIGlzIHVucmVzcG9uc2l2ZSwgdGhlIHByb2Nlc3Mgb2YgcHJl
cGFyaW5nIGZvciBkYXRhIGludGVyYWN0aW9uCisgICAgICAgIGRvZXMgbm90IGFsc28gY2F1c2Ug
dGhlIFVJIHByb2Nlc3MgdG8gc3Bpbi4gV2UgYXNzdW1lIGhlcmUgdGhhdCB0aGUgY2FsbCB0byBw
cmVwYXJlIG11c3QgYmUgYXN5bmNocm9ub3VzLCBzbyBpdAorICAgICAgICBzaG91bGQgY29tcGxl
dGUgYmVmb3JlIHRoZSB1bnJlc3BvbnNpdmVuZXNzIHRpbWVvdXQgaXMgdHJpZ2dlcmVkLgorCisg
ICAgICAgIFNlZSBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNC0wNiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjE1MDQ2LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUlu
dGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbQppbmRleCA4ZjNiY2QyY2Q0ZTQ1OGRkY2I1NGUyZmEzMzdjMDg1MmE4
MzM0NzM3Li40MDYyOWU5YjQ4ZWIzMTA3ZWVhNTA5ZWE3YmU0MGRmN2FhM2FhMWVkIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0
cy5tbQpAQCAtMzYyLDYgKzM2MiwxOCBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBDdXN0
b21BY3Rpb25TaGVldFBvcG92ZXIpCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJQQVNTIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRhcmdldC50ZXh0Q29udGVudCJdLlVU
RjhTdHJpbmcpOwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBVbnJlc3BvbnNpdmVQ
YWdlRG9lc05vdEhhbmdVSSkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0
UGFnZU5hbWVkOkAic2ltcGxlIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
d2hpbGUoMSk7IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworCisgICAgTlNUaW1lSW50ZXJ2YWwg
c3RhcnRUaW1lID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAg
IFt3ZWJWaWV3IF9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOm5pbCBj
b21wbGV0aW9uOl4oKSB7IH1dOworCisgICAgRVhQRUNUX0xUKFtOU0RhdGUgdGltZUludGVydmFs
U2luY2VSZWZlcmVuY2VEYXRlXSAtIHN0YXJ0VGltZSwgMSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306658</attachid>
            <date>2017-04-09 22:43:02 -0700</date>
            <delta_ts>2017-04-09 23:25:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170658-20170409224301.patch</filename>
            <type>text/plain</type>
            <size>16127</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU2NmE5MGMzMjEyZGMz
MzAyMmE2MGViZWU2NDU1ODA1NTQ2ZGRiYy4uNDVhNDYzNTE3ZjIwZmRkODIxMGNiZjE0NGIyYmIx
MmMwYzUxNDQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA0LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBp
bmZyYXN0cnVjdHVyZSB0byBwZXJmb3JtIGFjdGlvbnMgYWZ0ZXIgYW4gYXN5bmNocm9ub3VzIHBv
c2l0aW9uIGluZm9ybWF0aW9uIHJlcXVlc3QgZmluaXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDY1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzE0MzE0NTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAg
ICBNaW5vciBhZGp1c3RtZW50cyB0byBmaXggdGhlIGJ1aWxkIGluIHRoZSBuZXdlc3QgdmVyc2lv
biBvZiB0aGUgU0RLLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW06CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2V0SXRl
bXNGcm9tT2JqZWN0UmVwcmVzZW50YXRpb25zOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkIF90cnlUb0NyZWF0ZUFuZEFwcGVuZE9iamVjdE9mQ2xhc3M6dG9BcnJheTp1
c2luZ1Byb3ZpZGVyOl0pOgorCiAyMDE3LTA0LTA5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtXVEZdIEFubm90YXRlIFNlY29uZHMnIG1lbWJlciBm
dW5jdGlvbnMgYW5kIG9wZXJhdG9ycyB3aXRoIGNvbnN0ZXhwcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMyZjBl
NTBlOTA4OTc5NjQ2N2JiNjNhNjhmMzRlZDllZDRmMjc0OTYuLmNjN2JkODdkMTg4N2M1NGRkNTRj
Nzg2ODg3YTlmOWQyYjYyYjJhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxNy0w
NC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBb
V0syXSBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcGVyZm9ybSBhY3Rpb25zIGFmdGVyIGFuIGFzeW5j
aHJvbm91cyBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IGZpbmlzaGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMxNDMxNDUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisKKyAgICAgICAgSW50cm9kdWNlcyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpm
b3JSZXF1ZXN0Oiwgd2hpY2ggV0tDb250ZW50VmlldyBjYW4gdXNlIGludGVybmFsbHkgdG8gcGVy
Zm9ybQorICAgICAgICBhbiBhY3Rpb24gcmVxdWlyaW5nIEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uIGFzeW5jaHJvbm91c2x5LiBTZWUgYmVsb3cgZm9yIGFkZGl0aW9uYWwgZGV0YWls
cy4KKworICAgICAgICBOZXcgQVBJIHVuaXQgdGVzdDogRGF0YUludGVyYWN0aW9uVGVzdHMuVW5y
ZXNwb25zaXZlUGFnZURvZXNOb3RIYW5nVUkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hY3Rpb25G
b3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfYWN0aW9uRm9yTG9uZ1ByZXNzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
ZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Zm9yUmVxdWVzdDpdKToKKworICAgICAg
ICBJZiBjdXJyZW50IHBvc2l0aW9uIGluZm9ybWF0aW9uIHNhdGlzZmllcyB0aGUgcmVxdWVzdCwg
dGhlbiBwZXJmb3JtIHRoZSBnaXZlbiBibG9jayBpbW1lZGlhdGVseTsgb3RoZXJ3aXNlLCB3ZQor
ICAgICAgICBzYXZlIHRoZSBibG9jayBhbmQgcmVxdWVzdCBhcyBhIHBhaXIgaW4gYSBsaXN0IG9m
IHBlbmRpbmcgcG9zaXRpb24gaW5mb3JtYXRpb24gaGFuZGxlcnMsIGFuZCB0aGVuIG1ha2UgYSBu
ZXcKKyAgICAgICAgcmVxdWVzdCB0byB0aGUgd2ViIHByb2Nlc3MgZm9yIHBvc2l0aW9uIGluZm9y
bWF0aW9uIGlmIHRoZSBjdXJyZW50bHkgb3V0Z29pbmcgcmVxdWVzdCBkb2VzIG5vdCBhbHJlYWR5
IHNhdGlzZnkKKyAgICAgICAgdGhlIGdpdmVuIHJlcXVlc3QuCisKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpdKToKKworICAgICAg
ICBGaXJlIGFsbCBhc3luY2hyb25vdXMgcG9zaXRpb24gaW5mb3JtYXRpb24gaGFuZGxlcnMgdGhh
dCBhcmUgc2F0aXNmaWVkIGJ5IHRoZSBpbmNvbWluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbi4KKwor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9y
bWF0aW9uVXBkYXRlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jdXJyZW50UG9zaXRp
b25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IF9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q6XSk6CisK
KyAgICAgICAgUHVsbGVkIG91dCBjb21tb24gbG9naWMgZm9yIG1hbmFnaW5nIEludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0cyBpbnRvIHNlcGFyYXRlIGhlbHBlciBtZXRob2RzLgorCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlk
Rm9yQ3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOl0pOgorCisgICAgICAgIFJlZmFjdG9yZWQg
dG8gdXNlIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOi4gVGhlcmUgaXMgbm8g
YmVoYXZpb3IgY2hhbmdlIGhlcmUsIGJ1dCBpdCBtYWtlcyBzdXJlIHRoYXQKKyAgICAgICAgdGhp
cyBwYXJ0aWN1bGFyIHJlcXVlc3Qgd2lsbCBhbHNvIGFueSB2YWxpZCBwZW5kaW5nIHBvc2l0aW9u
IGluZm9ybWF0aW9uIGhhbmRsZXJzLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Bvc2l0
aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2U6XSk6CisKKyAgICAgICAgRmlyZSBhbGwgYXN5bmNocm9u
b3VzIHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIHRoYXQgYXJlIHNhdGlzZmllZCBieSB0
aGUgaW5jb21pbmcgcG9zaXRpb24gaW5mb3JtYXRpb24uCisKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwb2ludElzSW5EYXRhSW50ZXJhY3Rpb25Db250ZW50Ol0pOiBEZWxldGVkLgorCisgICAg
ICAgIFdlIHNob3VsZCBubyBsb25nZXIgdXNlIHRoaXMgbWV0aG9kLCBzaW5jZSBpdCBtYWtlcyBh
IHN5bmNocm9ub3VzIHJlcXVlc3QgdG8gdGhlIHdlYiBwcm9jZXNzIC0tIHNlZQorICAgICAgICBw
b3NpdGlvbkluZm9ybWF0aW9uTWF5U3RhcnREYXRhSW50ZXJhY3Rpb24uCisKIDIwMTctMDQtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIFRpbWVyOjpz
dGFydFJlcGVhdGluZygpIG92ZXJsb2FkIHRha2luZyBhIGRvdWJsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpp
bmRleCA5MjBmYWIwYmMzZDI5YjkzNzRmZDlhMzUyOTU3MmRjYmNlMDI4NTJhLi4xOTZlNzJhYmFi
ZTEwOGQ0ZWFiNjY0ZWJlNjRlYjcwMGFkM2MyODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAtMTUx
LDYgKzE1MSw4IEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAg
ICAgICBpZiAoIWRhdGEucmVwcmVzZW50aW5nT2JqZWN0cy5jb3VudCAmJiAhZGF0YS5hZGRpdGlv
bmFsRGF0YS5jb3VudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVj
YXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgIFJldGFpblB0cjxVSUl0ZW1Qcm92aWRlcj4gaXRl
bVByb3ZpZGVyID0gYWRvcHROUyhbW2dldFVJSXRlbVByb3ZpZGVyQ2xhc3MoKSBhbGxvY10gaW5p
dF0pOwogICAgICAgICAvLyBGaXJzdCwgcmVnaXN0ZXIgYWxsIHBsYXRmb3JtIG9iamVjdHMsIHBy
aW9yaXRpemluZyBvYmplY3RzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGFycmF5LgogICAgICAg
ICBmb3IgKGlkIHJlcHJlc2VudGluZ09iamVjdCBpbiBkYXRhLnJlcHJlc2VudGluZ09iamVjdHMp
IHsKQEAgLTE3Myw2ICsxNzUsNyBAQCBzdGF0aWMgQk9PTCBpc0ltYWdlVHlwZShOU1N0cmluZyAq
dHlwZSkKICAgICAgICAgICAgIH1dOwogICAgICAgICB9CiAgICAgICAgIFtwcm92aWRlcnMgYWRk
T2JqZWN0Oml0ZW1Qcm92aWRlci5nZXQoKV07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
CiAgICAgfQogCiAgICAgc2VsZi5pdGVtUHJvdmlkZXJzID0gcHJvdmlkZXJzOwpAQCAtMjI5LDEy
ICsyMzIsMTIgQEAgc3RhdGljIEJPT0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAKIC0g
KEJPT0wpX3RyeVRvQ3JlYXRlQW5kQXBwZW5kT2JqZWN0T2ZDbGFzczooQ2xhc3Mpb2JqZWN0Q2xh
c3MgdG9BcnJheTooTlNNdXRhYmxlQXJyYXkgKilhcnJheSB1c2luZ1Byb3ZpZGVyOihVSUl0ZW1Q
cm92aWRlciAqKXByb3ZpZGVyCiB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMi
CiAgICAgaWYgKCFbcHJvdmlkZXIgY2FuQ3JlYXRlT2JqZWN0T2ZDbGFzczpvYmplY3RDbGFzc10p
CiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMzA0
NTEwOTY+IEFkb3B0IGFzeW5jaHJvbm91cyBVSUl0ZW1Qcm92aWRlciBtZXRob2RzIHdoZW4gcmV0
cmlldmluZyBkYXRhLgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgogICAgIGlk
IG9iamVjdCA9IFtwcm92aWRlciBjcmVhdGVPYmplY3RPZkNsYXNzOm9iamVjdENsYXNzIGVycm9y
Om5pbF07CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgaWYgKG9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCmluZGV4IGUyMWE3NzdjY2E0MGNmZjY5YjhkZjc5MjA2YTc1ZmUzNjczZjVmNWMu
LmVlMjA1ZGIxMDM1MmQ0MjU4ZWE3NWZkOGI1YjBkMTcwMjk3YTI3NTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aApAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2ltcG9ydCA8
d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgogI2ltcG9ydCA8d3RmL1Zl
Y3Rvci5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04NSw2ICs4Niw4IEBA
IHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rpb25Db21wbGV0aW9uSGFuZGxlcikodm9pZCk7CiB0
eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9uV2l0aERpcmVjdGlvbkNvbXBsZXRpb25IYW5kbGVy
KShCT09MIHNlbGVjdGlvbkVuZElzTW92aW5nKTsKIHR5cGVkZWYgdm9pZCAoXlVJV0tLZXlXZWJF
dmVudENvbXBsZXRpb25IYW5kbGVyKSg6OldlYkV2ZW50ICp0aGVFdmVudCwgQk9PTCB3YXNIYW5k
bGVkKTsKIAordHlwZWRlZiBCbG9ja1B0cjx2b2lkKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV0tTZWxlY3Rpb25EcmF3aW5nSW5mbyB7CkBAIC0xNzEs
NiArMTc0LDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBXZWJLaXQ6OldL
U2VsZWN0aW9uRHJhd2luZ0luZm8gX2xhc3RTZWxlY3Rpb25EcmF3aW5nSW5mbzsKIAogICAgIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdD4gX291dHN0
YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQ2FsbGJhY2s+PiBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyczsKICAgICAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpJbnB1dFZpZXdVcGRhdGVEZWZlcnJlcj4gX2lu
cHV0Vmlld1VwZGF0ZURlZmVycmVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDg2YzE1MjcxMTdh
Y2VmMDNhNzQ5ZTBhOTYzNDc2NjBkZDI1MWM3ZGQuLjgyM2YwODJlZDYyNjkxMGYwZTFjNzIyNjc0
NTcxZTMwZmRlMDE4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMjgxLDMzICsxMjgxLDUxIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJ
R2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCBzaG93
RGF0YURldGVjdG9yc1NoZWV0XTsKIH0KIAotLSAoU0VMKV9hY3Rpb25Gb3JMb25nUHJlc3MKKy0g
KFNFTClfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilwb3NpdGlvbkluZm9ybWF0aW9uCiB7Ci0g
ICAgaWYgKCFfcG9zaXRpb25JbmZvcm1hdGlvbi50b3VjaENhbGxvdXRFbmFibGVkKQorICAgIGlm
ICghcG9zaXRpb25JbmZvcm1hdGlvbi50b3VjaENhbGxvdXRFbmFibGVkKQogICAgICAgICByZXR1
cm4gbmlsOwogCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UpCisgICAgaWYg
KHBvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSkKICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcihf
c2hvd0ltYWdlU2hlZXQpOwogCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykg
ewotICAgICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6X3Bvc2l0
aW9uSW5mb3JtYXRpb24udXJsXTsKKyAgICBpZiAocG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmsp
IHsKKyAgICAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOnBvc2l0
aW9uSW5mb3JtYXRpb24udXJsXTsKICAgICAgICAgaWYgKFtbZ2V0REREZXRlY3Rpb25Db250cm9s
bGVyQ2xhc3MoKSB0YXBBbmRIb2xkU2NoZW1lc10gY29udGFpbnNPYmplY3Q6dGFyZ2V0VVJMLnNj
aGVtZS5sb3dlcmNhc2VTdHJpbmddKQogICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hv
d0RhdGFEZXRlY3RvcnNTaGVldCk7CiAgICAgICAgIHJldHVybiBAc2VsZWN0b3IoX3Nob3dMaW5r
U2hlZXQpOwogICAgIH0KLSAgICAKLSAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNBdHRh
Y2htZW50KQorICAgIGlmIChwb3NpdGlvbkluZm9ybWF0aW9uLmlzQXR0YWNobWVudCkKICAgICAg
ICAgcmV0dXJuIEBzZWxlY3Rvcihfc2hvd0F0dGFjaG1lbnRTaGVldCk7CiAKICAgICByZXR1cm4g
bmlsOwogfQogCistIChTRUwpX2FjdGlvbkZvckxvbmdQcmVzcworeworICAgIHJldHVybiBbc2Vs
ZiBfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5mb3JtYXRpb246X3Bvc2l0aW9uSW5m
b3JtYXRpb25dOworfQorCistICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRl
Oih2b2lkICheKShJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpYWN0aW9uIGZvclJl
cXVlc3Q6KEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QKK3sKKyAgICBpZiAo
W3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVz
dF0pIHsKKyAgICAgICAgLy8gSWYgdGhlIG1vc3QgcmVjZW50IHBvc2l0aW9uIGluZm9ybWF0aW9u
IGlzIGFscmVhZHkgdmFsaWQsIGludm9rZSB0aGUgZ2l2ZW4gYWN0aW9uIGJsb2NrIGltbWVkaWF0
ZWx5LgorICAgICAgICBhY3Rpb24oX3Bvc2l0aW9uSW5mb3JtYXRpb24pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuYXBw
ZW5kKHsgcmVxdWVzdCwgYWN0aW9uIH0pOworCisgICAgaWYgKCFbc2VsZiBfaGFzVmFsaWRPdXRz
dGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OnJlcXVlc3RdKQorICAgICAgICBbc2Vs
ZiByZXF1ZXN0QXN5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpyZXF1ZXN0XTsK
K30KKwogLSAodm9pZCllbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0CiB7Ci0gICAgaWYgKF9oYXNW
YWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5p
c1ZhbGlkRm9yUmVxdWVzdChyZXF1ZXN0KSkKKyAgICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlv
bkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdF0pCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChfb3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCAmJiBfb3V0
c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdC0+aXNWYWxpZEZvclJlcXVlc3QocmVx
dWVzdCkpIHsKKyAgICBpZiAoW3NlbGYgX2hhc1ZhbGlkT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9y
bWF0aW9uUmVxdWVzdDpyZXF1ZXN0XSkgewogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IF9wYWdlLT5wcm9jZXNzKCkuY29ubmVjdGlvbigpKSB7CiAgICAgICAgICAgICBjb25uZWN0aW9u
LT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbj4oX3BhZ2UtPnBhZ2VJRCgpLCBTZWNvbmRzOjpp
bmZpbml0eSgpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzMTYsMTEgKzEzMzQsMTIgQEAg
c3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlH
ZXN0dXJlUmVjb2duaXplciAqYiwgVUkKIAogICAgIF9wYWdlLT5nZXRQb3NpdGlvbkluZm9ybWF0
aW9uKHJlcXVlc3QsIF9wb3NpdGlvbkluZm9ybWF0aW9uKTsKICAgICBfaGFzVmFsaWRQb3NpdGlv
bkluZm9ybWF0aW9uID0gWUVTOworICAgIFtzZWxmIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFu
ZGxlcnNWYWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAogLSAodm9pZCly
ZXF1ZXN0QXN5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTooV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0CiB7Ci0gICAgaWYgKF9oYXNWYWxpZFBv
c2l0aW9uSW5mb3JtYXRpb24gJiYgX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5pc1ZhbGlk
Rm9yUmVxdWVzdChyZXF1ZXN0KSkKKyAgICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9y
bWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdF0pCiAgICAgICAgIHJldHVybjsKIAogICAg
IF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ID0gcmVxdWVzdDsKQEAgLTEz
MjgsNiArMTM0NywzNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVS
ZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIF9wYWdlLT5yZXF1
ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihyZXF1ZXN0KTsKIH0KIAorLSAoQk9PTClfY3VycmVudFBv
c2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDooY29uc3QgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QmKXJlcXVlc3QKK3sKKyAgICByZXR1cm4gX2hhc1ZhbGlkUG9zaXRpb25J
bmZvcm1hdGlvbiAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LmlzVmFsaWRGb3JSZXF1
ZXN0KHJlcXVlc3QpOworfQorCistIChCT09MKV9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25J
bmZvcm1hdGlvblJlcXVlc3Q6KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jily
ZXF1ZXN0Cit7CisgICAgcmV0dXJuIF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0ICYmIF9vdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LT5pc1ZhbGlkRm9y
UmVxdWVzdChyZXF1ZXN0KTsKK30KKworLSAodm9pZClfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hh
bmRsZXJzVmFsaWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbgoreworICAgIEFTU0VSVChf
aGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uKTsKKworICAgIFZlY3RvcjxzaXplX3Q+IGluZGlj
ZXNPZkhhbmRsZWRSZXF1ZXN0czsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwg
X3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuc2l6ZSgpOyArK2luZGV4KSB7Cisg
ICAgICAgIGF1dG8mIHJlcXVlc3RBbmRIYW5kbGVyID0gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0
aW9uSGFuZGxlcnNbaW5kZXhdOworICAgICAgICBpZiAoIVtzZWxmIF9jdXJyZW50UG9zaXRpb25J
bmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0OnJlcXVlc3RBbmRIYW5kbGVyLmZpcnN0XSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChyZXF1ZXN0QW5kSGFuZGxlci5zZWNv
bmQpCisgICAgICAgICAgICByZXF1ZXN0QW5kSGFuZGxlci5zZWNvbmQoX3Bvc2l0aW9uSW5mb3Jt
YXRpb24pOworCisgICAgICAgIGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0cy5hcHBlbmQoaW5kZXgp
OworICAgIH0KKworICAgIHdoaWxlIChpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMuc2l6ZSgpKQor
ICAgICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5yZW1vdmUoaW5kaWNl
c09mSGFuZGxlZFJlcXVlc3RzLnRha2VMYXN0KCkpOworfQorCiAjaWYgRU5BQkxFKERBVEFfREVU
RUNUSU9OKQogLSAoTlNBcnJheSAqKV9kYXRhRGV0ZWN0aW9uUmVzdWx0cwogewpAQCAtMTM2Myw5
ICsxNDEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2du
aXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICAgICAgaWYgKF90ZXh0U2Vs
ZWN0aW9uQXNzaXN0YW50KSB7CiAgICAgICAgICAgICAvLyBSZXF1ZXN0IGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBwb3NpdGlvbiB3aXRoIHN5bmMgbWVzc2FnZS4KICAgICAgICAgICAgIC8vIElmIHRo
ZSBhc3Npc3RlZCBub2RlIGlzIHRoZSBzYW1lLCBwcmV2ZW50IHRoZSBnZXN0dXJlLgotICAgICAg
ICAgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdChyb3VuZGVkSW50UG9p
bnQocG9pbnQpKTsKLSAgICAgICAgICAgIF9wYWdlLT5nZXRQb3NpdGlvbkluZm9ybWF0aW9uKHJl
cXVlc3QsIF9wb3NpdGlvbkluZm9ybWF0aW9uKTsKLSAgICAgICAgICAgIF9oYXNWYWxpZFBvc2l0
aW9uSW5mb3JtYXRpb24gPSBZRVM7CisgICAgICAgICAgICBbc2VsZiBlbnN1cmVQb3NpdGlvbklu
Zm9ybWF0aW9uSXNVcFRvRGF0ZTpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChyb3VuZGVk
SW50UG9pbnQocG9pbnQpKV07CiAgICAgICAgICAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24u
bm9kZUF0UG9zaXRpb25Jc0Fzc2lzdGVkTm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm4gTk87
CiAgICAgICAgIH0KQEAgLTE0NTcsMjEgKzE1MDQsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNT
YW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBV
SQogICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc1NlbGVjdGFibGU7CiB9CiAKLSNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLQotLSAoQk9PTClwb2ludElzSW5EYXRhSW50ZXJh
Y3Rpb25Db250ZW50OihDR1BvaW50KXBvaW50Ci17Ci0gICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3QgcmVxdWVzdChyb3VuZGVkSW50UG9pbnQocG9pbnQpKTsKLSAgICBbc2VsZiBlbnN1
cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpyZXF1ZXN0XTsKLQotICAgIGlmIChfcG9z
aXRpb25JbmZvcm1hdGlvbi5pc0ltYWdlIHx8IF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluayB8
fCBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0F0dGFjaG1lbnQpCi0gICAgICAgIHJldHVybiBZRVM7
Ci0KLSAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzU2VsZWN0aW9uQXRQb3NpdGlv
bjsKLX0KLQotI2VuZGlmCi0KIC0gKEJPT0wpcG9pbnRJc05lYXJNYXJrZWRUZXh0OihDR1BvaW50
KXBvaW50CiB7CiAgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdChyb3Vu
ZGVkSW50UG9pbnQocG9pbnQpKTsKQEAgLTE3NzEsNiArMTgwMyw3IEBAIHN0YXRpYyB2b2lkIGNh
bmNlbFBvdGVudGlhbFRhcElmTmVjZXNzYXJ5KFdLQ29udGVudFZpZXcqIGNvbnRlbnRWaWV3KQog
ICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBZRVM7CiAgICAgaWYgKF9hY3Rpb25T
aGVldEFzc2lzdGFudCkKICAgICAgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCB1cGRhdGVTaGVl
dFBvc2l0aW9uXTsKKyAgICBbc2VsZiBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRsZXJzVmFs
aWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKIC0gKHZvaWQpX3dpbGxTdGFy
dFNjcm9sbGluZ09yWm9vbWluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDYzYjNmNTViNzA1ZTk0OGYzMDU5MTY1YzczZGZhM2MyYmE0Njk0OTQu
LmZhOWMzODZkNTY4NzM4MzZlYjVhMzRlYzVjYTA1ODVkOWVmNWM5Y2IgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
Ny0wNC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV0syXSBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcGVyZm9ybSBhY3Rpb25zIGFmdGVyIGFuIGFz
eW5jaHJvbm91cyBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IGZpbmlzaGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzMxNDMxNDUwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0
b24uCisKKyAgICAgICAgQWRkcyBhIG5ldyB0ZXN0IHZlcmlmeWluZyB0aGF0IHdoZW4gYSB3ZWIg
cGFnZSBpcyB1bnJlc3BvbnNpdmUsIHRoZSBwcm9jZXNzIG9mIHByZXBhcmluZyBmb3IgZGF0YSBp
bnRlcmFjdGlvbgorICAgICAgICBkb2VzIG5vdCBhbHNvIGNhdXNlIHRoZSBVSSBwcm9jZXNzIHRv
IHNwaW4uIFdlIGFzc3VtZSBoZXJlIHRoYXQgdGhlIGNhbGwgdG8gcHJlcGFyZSBtdXN0IGJlIGFz
eW5jaHJvbm91cywgc28gaXQKKyAgICAgICAgc2hvdWxkIGNvbXBsZXRlIGJlZm9yZSB0aGUgdW5y
ZXNwb25zaXZlbmVzcyB0aW1lb3V0IGlzIHRyaWdnZXJlZC4KKworICAgICAgICBTZWUgV2ViS2l0
MiBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMTctMDQtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBEcm9wIFRpbWVyOjpzdGFydFJlcGVhdGluZygpIG92ZXJsb2FkIHRha2luZyBh
IGRvdWJsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUlu
dGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbQppbmRleCA4ZjNiY2QyY2Q0ZTQ1OGRkY2I1NGUyZmEzMzdjMDg1MmE4
MzM0NzM3Li40MDYyOWU5YjQ4ZWIzMTA3ZWVhNTA5ZWE3YmU0MGRmN2FhM2FhMWVkIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0
cy5tbQpAQCAtMzYyLDYgKzM2MiwxOCBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBDdXN0
b21BY3Rpb25TaGVldFBvcG92ZXIpCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJQQVNTIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInRhcmdldC50ZXh0Q29udGVudCJdLlVU
RjhTdHJpbmcpOwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBVbnJlc3BvbnNpdmVQ
YWdlRG9lc05vdEhhbmdVSSkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1h
a2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0
UGFnZU5hbWVkOkAic2ltcGxlIl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
d2hpbGUoMSk7IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworCisgICAgTlNUaW1lSW50ZXJ2YWwg
c3RhcnRUaW1lID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAg
IFt3ZWJWaWV3IF9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50ZXJhY3Rpb25TZXNzaW9uOm5pbCBj
b21wbGV0aW9uOl4oKSB7IH1dOworCisgICAgRVhQRUNUX0xUKFtOU0RhdGUgdGltZUludGVydmFs
U2luY2VSZWZlcmVuY2VEYXRlXSAtIHN0YXJ0VGltZSwgMSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306740</attachid>
            <date>2017-04-10 14:12:02 -0700</date>
            <delta_ts>2017-04-10 14:15:39 -0700</delta_ts>
            <desc>Additional tweaks to the test</desc>
            <filename>bug-170658-20170410141201.patch</filename>
            <type>text/plain</type>
            <size>6545</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MTgxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzJmZGJkNWRmNDA2OTk0ZDY4NWJkMGQ5ODMwMGFkM2U0
MGIxNWU1ZC4uYzc5N2NjMDVlYzVjZjRkNjFjNzQyMjY2NDBlZDRlNTc1N2VjNjcwMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIz
IEBACiAyMDE3LTA0LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CisgICAgICAgIFJlZmFjdG9yIERhdGFJbnRlcmFjdGlvblRlc3RzLlVucmVzcG9uc2l2ZVBhZ2VE
b2VzTm90SGFuZ1VJIHRvIG5vdCBjaGVjayBhZ2FpbnN0IGEgZml4ZWQgdGltZSBpbnRlcnZhbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlcyBpZ25v
cmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzRm9yVGVzdGluZyB0byBlbnN1cmUgdGhhdCB0
aGlzIHRlc3QgdGltZXMgb3V0IGlmIGRhdGEgaW50ZXJhY3Rpb24KKyAgICAgICAgcHJlcGFyYXRp
b24gaXMgc3luY2hyb25vdXMsIG9yIHBhc3NlcyBpZiBpdCBpcyBhc3luY2hyb25vdXMuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5oOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBpbml0V2l0aEZyYW1lOl0p
OgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29uZmlndXJhdGlvbjpw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgX3Nl
dFVwVGVzdFdpbmRvdzpdKToKKworMjAxNy0wNC0xMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBSRUdSRVNTSU9OIChyMjE0NDAzKTogZmFzdC9ldmVu
dHMvZHJhZy10by1uYXZpZ2F0ZS5odG1sIGFuZCBmYXN0L2V2ZW50cy9vbmx5LXZhbGlkLWRyb3At
dGFyZ2V0cy1yZWNlaXZlLWZpbGUtZHJvcC5odG1sIGZhaWxpbmcKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDY3NwogICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzE1MTI2MzM+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9z
L0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCmluZGV4IDFkZWVjM2ExMDhlYzgxZDZlNWE4NmE2NGUx
NzQwYmEzZGUzMWMwZWQuLmZmYzVhZDU1YmQwMzVmYTU0NWU1YWEwZTVlMDI4MTViYmZkMmU2YWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlv
blRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFj
dGlvblRlc3RzLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxVSUtpdC9VSUl0ZW1Qcm92
aWRlcl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogCiBAaW1wbGVtZW50YXRp
b24gVGVzdFdLV2ViVmlldyAoRGF0YUludGVyYWN0aW9uVGVzdHMpCiAKQEAgLTM4NywxNCArMzg4
LDE1IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEN1c3RvbUFjdGlvblNoZWV0UG9wb3Zl
cikKIAogVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgVW5yZXNwb25zaXZlUGFnZURvZXNOb3RI
YW5nVUkpCiB7Ci0gICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKV0pOworICAgIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiAqcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uID0gW1tbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0
XSBhdXRvcmVsZWFzZV07CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmlnbm9yZVN5bmNo
cm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nID0gWUVTOworCisgICAgUmV0YWluUHRy
PFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOltb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXSBwcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CiAgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2hpbGUoMSk7IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxd
OwogCi0gICAgTlNUaW1lSW50ZXJ2YWwgc3RhcnRUaW1lID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxT
aW5jZVJlZmVyZW5jZURhdGVdOworICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiB3ZSBjYW4gcHJl
cGFyZSBmb3IgZGF0YSBpbnRlcmFjdGlvbiB3aXRob3V0IHRpbWluZyBvdXQuCiAgICAgW3dlYlZp
ZXcgX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246bmlsIGNvbXBsZXRp
b246XigpIHsgfV07Ci0KLSAgICBFWFBFQ1RfTFQoW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJl
ZmVyZW5jZURhdGVdIC0gc3RhcnRUaW1lLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJW
aWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA0
NWRhNjU5ZjU4MTRlN2UzYzE2ZGJkNGIxNTY2NjI0OGZkNzg2ZjM0Li4wYzNhMzFlMWI1MmIwMjUz
NTk2MmIzN2NiMzUzM2U3OTQ1OWM3OTMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcuaApAQCAtMjgsMTEgKzI4LDE0IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAog
CitAY2xhc3MgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOworCiBAaW50ZXJmYWNlIFRlc3RN
ZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgogLSAodm9p
ZClhZGRNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2Ugd2l0aEhhbmRsZXI6KGRpc3BhdGNoX2Js
b2NrX3QpaGFuZGxlcjsKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tXZWJW
aWV3CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZpZ3Vy
YXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjooX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uICopcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uOwogLSAodm9pZCljbGVhck1lc3NhZ2VIYW5kbGVyczooTlNBcnJheSAqKW1l
c3NhZ2VOYW1lczsKIC0gKHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNTdHJp
bmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAtICh2b2lkKWxv
YWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDFlYzY0OTdhMjNmYmQzNDc4OTIxNzVkM2M0
N2VhMTgyYjg3ZjgzMTEuLjg4YTAzOGNiMzAzZDI0MjYyYjI2ZDk3YmZjNmZjODYwNDIwODU4Njkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTMxLDcg
KzMxLDkgQEAKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIlV0
aWxpdGllcy5oIgogCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtMTU5LDEzICsxNjEsMTMgQEAgTlNFdmVu
dE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNlbGYs
IFNFTCBfY21kKQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7Ci0gICAg
VGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgKl9ob3N0V2luZG93OworICAgIFJldGFpblB0cjxUZXN0
V0tXZWJWaWV3SG9zdFdpbmRvdz4gX2hvc3RXaW5kb3c7CiAgICAgUmV0YWluUHRyPFRlc3RNZXNz
YWdlSGFuZGxlcj4gX3Rlc3RIYW5kbGVyOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhG
cmFtZTooQ0dSZWN0KWZyYW1lCiB7Ci0gICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqZGVmYXVs
dENvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdOwor
ICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmRlZmF1bHRDb25maWd1cmF0aW9uID0gW1tbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwogICAgIHJldHVy
biBbc2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246ZGVmYXVsdENvbmZpZ3Vy
YXRpb25dOwogfQogCkBAIC0xNzcsMTcgKzE3OSwyMyBAQCBOU0V2ZW50TWFzayBfX3NpbXVsYXRl
ZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQpCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3Qp
ZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRp
b24gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOihfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
Kilwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24KK3sKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9j
ZXNzUG9vbDpbW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdXTsKKyAgICByZXR1cm4gW3NlbGYg
aW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dOworfQorCiAt
ICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClmcmFtZQogewogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBfaG9zdFdpbmRvdyA9IFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9yZGVy
bGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOworICAgIF9ob3N0
V2luZG93ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0V2l0
aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxlc3Mg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW19ob3N0V2lu
ZG93IHNldEZyYW1lT3JpZ2luOk5TTWFrZVBvaW50KDAsIDApXTsKICAgICBbX2hvc3RXaW5kb3cg
c2V0SXNWaXNpYmxlOllFU107CiAgICAgW1tfaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vi
dmlldzpzZWxmXTsKICAgICBbX2hvc3RXaW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07
CiAjZWxzZQotICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpmcmFtZV07Ci0gICAgX2hvc3RXaW5kb3cuaGlkZGVuID0gTk87Cisg
ICAgX2hvc3RXaW5kb3cgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6ZnJhbWVdKTsKKyAgICBbX2hvc3RXaW5kb3cgc2V0SGlkZGVuOk5PXTsK
ICAgICBbX2hvc3RXaW5kb3cgYWRkU3VidmlldzpzZWxmXTsKICNlbmRpZgogfQo=
</data>
<flag name="review"
          id="328067"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306743</attachid>
            <date>2017-04-10 14:38:56 -0700</date>
            <delta_ts>2017-04-10 15:22:43 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170658-20170410143855.patch</filename>
            <type>text/plain</type>
            <size>7834</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjAxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjk5ZDhkMWU2NjY2ZjI4ZDRmNmNkZjYwNDA0ZTFjY2Nl
OTI5MGIzYy4uNjc1MWMyYjUwZmRkYmNhZWQyODM1NDQzZDY5YWIxZjZjODRlOWYyNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE3LTA0LTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZmFjdG9yIERhdGFJbnRlcmFjdGlvblRlc3RzLlVucmVzcG9uc2l2ZVBhZ2VE
b2VzTm90SGFuZ1VJIHRvIG5vdCBjaGVjayBhZ2FpbnN0IGEgZml4ZWQgdGltZSBpbnRlcnZhbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBVc2VzIGlnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nIHRvIGVuc3VyZSB0aGF0IHRoaXMg
dGVzdCB0aW1lcyBvdXQgaWYgZGF0YSBpbnRlcmFjdGlvbgorICAgICAgICBwcmVwYXJhdGlvbiBp
cyBzeW5jaHJvbm91cywgb3IgcGFzc2VzIGlmIGl0IGlzIGFzeW5jaHJvbm91cy4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6XSk6Cisg
ICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOnByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBfc2V0VXBU
ZXN0V2luZG93Ol0pOgorCiAyMDE3LTA0LTEwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXSzJdW21hY09TXSBCbG9jayBhY2Nlc3MgdG8gQXBwbGUgRXZl
bnRzIGJlZm9yZSBsYXVuY2guCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tCmluZGV4IDFkZWVjM2ExMDhlYzgxZDZlNWE4NmE2
NGUxNzQwYmEzZGUzMWMwZWQuLmZmYzVhZDU1YmQwMzVmYTU0NWU1YWEwZTVlMDI4MTViYmZkMmU2
YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFj
dGlvblRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRl
cmFjdGlvblRlc3RzLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxVSUtpdC9VSUl0ZW1Q
cm92aWRlcl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2lt
cG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgogCiBAaW1wbGVtZW50
YXRpb24gVGVzdFdLV2ViVmlldyAoRGF0YUludGVyYWN0aW9uVGVzdHMpCiAKQEAgLTM4NywxNCAr
Mzg4LDE1IEBAIFRFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIEN1c3RvbUFjdGlvblNoZWV0UG9w
b3ZlcikKIAogVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgVW5yZXNwb25zaXZlUGFnZURvZXNO
b3RIYW5nVUkpCiB7Ci0gICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKV0pOworICAgIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiAqcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uID0gW1tbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSBhdXRvcmVsZWFzZV07CisgICAgcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmlnbm9yZVN5
bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHNGb3JUZXN0aW5nID0gWUVTOworCisgICAgUmV0YWlu
UHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9u
OltbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXSBwcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uXSk7CiAgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAic2ltcGxlIl07CiAgICAgW3dl
YlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2hpbGUoMSk7IiBjb21wbGV0aW9uSGFuZGxlcjpu
aWxdOwogCi0gICAgTlNUaW1lSW50ZXJ2YWwgc3RhcnRUaW1lID0gW05TRGF0ZSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAgIC8vIFRoZSB0ZXN0IHBhc3NlcyBpZiB3ZSBjYW4g
cHJlcGFyZSBmb3IgZGF0YSBpbnRlcmFjdGlvbiB3aXRob3V0IHRpbWluZyBvdXQuCiAgICAgW3dl
YlZpZXcgX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlvblNlc3Npb246bmlsIGNvbXBs
ZXRpb246XigpIHsgfV07Ci0KLSAgICBFWFBFQ1RfTFQoW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5j
ZVJlZmVyZW5jZURhdGVdIC0gc3RhcnRUaW1lLCAxKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRl
eCA0NWRhNjU5ZjU4MTRlN2UzYzE2ZGJkNGIxNTY2NjI0OGZkNzg2ZjM0Li4wYzNhMzFlMWI1MmIw
MjUzNTk2MmIzN2NiMzUzM2U3OTQ1OWM3OTMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcuaApAQCAtMjgsMTEgKzI4LDE0IEBACiAKICNpZiBXS19BUElfRU5BQkxF
RAogCitAY2xhc3MgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOworCiBAaW50ZXJmYWNlIFRl
c3RNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgogLSAo
dm9pZClhZGRNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2Ugd2l0aEhhbmRsZXI6KGRpc3BhdGNo
X2Jsb2NrX3QpaGFuZGxlcjsKIEBlbmQKIAogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IDogV0tX
ZWJWaWV3CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbmZp
Z3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbjooX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uICopcHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uOwogLSAodm9pZCljbGVhck1lc3NhZ2VIYW5kbGVyczooTlNBcnJheSAq
KW1lc3NhZ2VOYW1lczsKIC0gKHZvaWQpcGVyZm9ybUFmdGVyUmVjZWl2aW5nTWVzc2FnZTooTlNT
dHJpbmcgKiltZXNzYWdlIGFjdGlvbjooZGlzcGF0Y2hfYmxvY2tfdClhY3Rpb247CiAtICh2b2lk
KWxvYWRUZXN0UGFnZU5hbWVkOihOU1N0cmluZyAqKXBhZ2VOYW1lOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDFlYzY0OTdhMjNmYmQzNDc4OTIxNzVk
M2M0N2VhMTgyYjg3ZjgzMTEuLjk1MDViMjUwMDk4OWQyZTZkNDUzMjA4YmJmY2Q0NGI4MDI5Yjlk
ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTMx
LDcgKzMxLDkgQEAKICNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQg
IlV0aWxpdGllcy5oIgogCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXRQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJL
aXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtMTU5LDEzICsxNjEsMTMgQEAgTlNF
dmVudE1hc2sgX19zaW11bGF0ZWRfZm9yY2VDbGlja0Fzc29jaWF0ZWRFdmVudHNNYXNrKGlkIHNl
bGYsIFNFTCBfY21kKQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7Ci0g
ICAgVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgKl9ob3N0V2luZG93OworICAgIFJldGFpblB0cjxU
ZXN0V0tXZWJWaWV3SG9zdFdpbmRvdz4gX2hvc3RXaW5kb3c7CiAgICAgUmV0YWluUHRyPFRlc3RN
ZXNzYWdlSGFuZGxlcj4gX3Rlc3RIYW5kbGVyOwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lCiB7Ci0gICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqZGVm
YXVsdENvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
OworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmRlZmF1bHRDb25maWd1cmF0aW9uID0gW1tb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwogICAgIHJl
dHVybiBbc2VsZiBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRpb246ZGVmYXVsdENvbmZp
Z3VyYXRpb25dOwogfQogCkBAIC0xNzcsMTcgKzE3OSwyMyBAQCBOU0V2ZW50TWFzayBfX3NpbXVs
YXRlZF9mb3JjZUNsaWNrQXNzb2NpYXRlZEV2ZW50c01hc2soaWQgc2VsZiwgU0VMIF9jbWQpCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1Jl
Y3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3Vy
YXRpb24gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOihfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gKilwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24KK3sKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQ
cm9jZXNzUG9vbDpbW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9u
OnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdXTsKKyAgICByZXR1cm4gW3Nl
bGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dOworfQor
CiAtICh2b2lkKV9zZXRVcFRlc3RXaW5kb3c6KE5TUmVjdClmcmFtZQogewogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBfaG9zdFdpbmRvdyA9IFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFJlY3Q6ZnJhbWUgc3R5bGVNYXNrOk5TV2luZG93U3R5bGVNYXNrQm9y
ZGVybGVzcyBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOworICAgIF9o
b3N0V2luZG93ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXdIb3N0V2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0OmZyYW1lIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza0JvcmRlcmxl
c3MgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CiAgICAgW19ob3N0
V2luZG93IHNldEZyYW1lT3JpZ2luOk5TTWFrZVBvaW50KDAsIDApXTsKICAgICBbX2hvc3RXaW5k
b3cgc2V0SXNWaXNpYmxlOllFU107CiAgICAgW1tfaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRk
U3VidmlldzpzZWxmXTsKICAgICBbX2hvc3RXaW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6c2Vs
Zl07CiAjZWxzZQotICAgIF9ob3N0V2luZG93ID0gW1tUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpmcmFtZV07Ci0gICAgX2hvc3RXaW5kb3cuaGlkZGVuID0gTk87
CisgICAgX2hvc3RXaW5kb3cgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlld0hvc3RXaW5kb3cgYWxs
b2NdIGluaXRXaXRoRnJhbWU6ZnJhbWVdKTsKKyAgICBbX2hvc3RXaW5kb3cgc2V0SGlkZGVuOk5P
XTsKICAgICBbX2hvc3RXaW5kb3cgYWRkU3VidmlldzpzZWxmXTsKICNlbmRpZgogfQpAQCAtMzA2
LDggKzMxNCw4IEBAIE5TRXZlbnRNYXNrIF9fc2ltdWxhdGVkX2ZvcmNlQ2xpY2tBc3NvY2lhdGVk
RXZlbnRzTWFzayhpZCBzZWxmLCBTRUwgX2NtZCkKICAgICBOU1N0cmluZyAqY2hhcmFjdGVyQXNT
dHJpbmcgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVjIiAsIGNoYXJhY3Rlcl07CiAg
ICAgTlNFdmVudFR5cGUga2V5RG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5RG93bjsKICAg
ICBOU0V2ZW50VHlwZSBrZXlVcEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlS2V5VXA7Ci0gICAgW3Nl
bGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5cGUgbG9j
YXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJyZW50RXZl
bnRUaW1lKCkgd2luZG93TnVtYmVyOl9ob3N0V2luZG93LndpbmRvd051bWJlciBjb250ZXh0Om5p
bCBjaGFyYWN0ZXJzOmNoYXJhY3RlckFzU3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVy
czpjaGFyYWN0ZXJBc1N0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpjaGFyYWN0ZXJdXTsKLSAg
ICBbc2VsZiBrZXlVcDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleVVwRXZlbnRUeXBlIGxv
Y2F0aW9uOk5TWmVyb1BvaW50IG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6R2V0Q3VycmVudEV2
ZW50VGltZSgpIHdpbmRvd051bWJlcjpfaG9zdFdpbmRvdy53aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJBc1N0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmll
cnM6Y2hhcmFjdGVyQXNTdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6Y2hhcmFjdGVyXV07Cisg
ICAgW3NlbGYga2V5RG93bjpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmtleURvd25FdmVudFR5
cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRDdXJy
ZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOltfaG9zdFdpbmRvdyB3aW5kb3dOdW1iZXJdIGNv
bnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJhY3Rl
cl1dOworICAgIFtzZWxmIGtleVVwOltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6a2V5VXBFdmVu
dFR5cGUgbG9jYXRpb246TlNaZXJvUG9pbnQgbW9kaWZpZXJGbGFnczowIHRpbWVzdGFtcDpHZXRD
dXJyZW50RXZlbnRUaW1lKCkgd2luZG93TnVtYmVyOltfaG9zdFdpbmRvdyB3aW5kb3dOdW1iZXJd
IGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVyQXNTdHJpbmcgY2hhcmFjdGVyc0lnbm9y
aW5nTW9kaWZpZXJzOmNoYXJhY3RlckFzU3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmNoYXJh
Y3Rlcl1dOwogfQogQGVuZAogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>