<?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>134393</bug_id>
          
          <creation_ts>2014-06-27 05:15:29 -0700</creation_ts>
          <short_desc>[Curl] Delete temporally downloaded file when it cancelled</short_desc>
          <delta_ts>2017-11-15 13:12:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>117300</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cand">cand</reporter>
          <assigned_to name="Basuke Suzuki">basuke</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>galpeter</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pvollan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018933</commentid>
    <comment_count>0</comment_count>
      <attachid>233978</attachid>
    <who name="cand">cand</who>
    <bug_when>2014-06-27 05:15:29 -0700</bug_when>
    <thetext>Created attachment 233978
Patch

Don&apos;t try to close &amp; move the downloaded file twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018934</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-27 05:16:58 -0700</bug_when>
    <thetext>Attachment 233978 did not pass style-queue:


ERROR: Source/WebCore/platform/network/curl/CurlDownload.cpp:239:  Wrong number of spaces before statement. (expected: 4)  [whitespace/indent] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019585</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Gal">galpeter</who>
    <bug_when>2014-07-01 01:12:10 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Created an attachment (id=233978) [details]
&gt; Patch


This patch doesn&apos;t have a changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330447</commentid>
    <comment_count>3</comment_count>
      <attachid>315944</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 11:47:32 -0700</bug_when>
    <thetext>Created attachment 315944
fixed

With refactoring of CurlDownload with CurlJobManager, the process is much cleaner. Call of success() or cleanup() is now exclusively mandatory by callback of start(), no need to call them from destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330449</commentid>
    <comment_count>4</comment_count>
      <attachid>315945</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 11:52:30 -0700</bug_when>
    <thetext>Created attachment 315945
add changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330460</commentid>
    <comment_count>5</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 11:59:04 -0700</bug_when>
    <thetext>This patch contains fix for other patch. Should I separate these?
https://bugs.webkit.org/show_bug.cgi?id=134392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330522</commentid>
    <comment_count>6</comment_count>
      <attachid>315945</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-07-19 17:29:58 -0700</bug_when>
    <thetext>Comment on attachment 315945
add changelog

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

This is probably an improvement, but it&apos;s unclear what is going on here.  It&apos;s certainly a lot more than preventing closing and downloading a file twice.

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:-60
&gt; -    LockHolder locker(m_mutex);

There is a lot of mutex removal.  There is no explanation why.  That and maybe other things should be separated into a different patch.

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:170
&gt; +        // @FIXME error handling may be required

@ is unlike the rest of our code base.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330553</commentid>
    <comment_count>7</comment_count>
      <attachid>315970</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 22:06:07 -0700</bug_when>
    <thetext>Created attachment 315970
Remove unrelated patch

After refactoring the architecture of job manager, tasks are more clear when it would be called. Also with use of lambda when starting the download, the lifecycle of the download object is more clear and confident. The downloaded file will be move to the destination on success() or deleted on failure or cancelation.

Also deleted unused private static methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330558</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-19 22:19:36 -0700</bug_when>
    <thetext>Attachment 315970 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:7:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:11:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/ChangeLog:13:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 7 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330561</commentid>
    <comment_count>9</comment_count>
      <attachid>315972</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 22:31:12 -0700</bug_when>
    <thetext>Created attachment 315972
style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1330562</commentid>
    <comment_count>10</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-07-19 22:31:35 -0700</bug_when>
    <thetext>Sorry, my vi at home is not setup well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338412</commentid>
    <comment_count>11</comment_count>
      <attachid>315972</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2017-08-14 11:18:44 -0700</bug_when>
    <thetext>Comment on attachment 315972
style

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

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:184
&gt; +            m_response.setURL(url);

If I remember correctly, there used to be a problem calling ResourceResponse methods from a non-main thread. Is this not the case anymore?

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:-195
&gt; -    LockHolder locker(m_mutex);

Is it safe to remove this lock?

&gt; Source/WebCore/platform/network/curl/CurlDownload.h:95
&gt; +    bool m_cancelled;

Should we initialize this member here?

Are there any regressions when running (http) layout tests with this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338442</commentid>
    <comment_count>12</comment_count>
      <attachid>315972</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-08-14 13:37:09 -0700</bug_when>
    <thetext>Comment on attachment 315972
style

(In reply to Per Arne Vollan from comment #11)
&gt; Comment on attachment 315972 [details]
&gt; style

Per Arne, This patch was invalidated by other bug.
https://bugs.webkit.org/show_bug.cgi?id=175253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338446</commentid>
    <comment_count>13</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-08-14 13:39:49 -0700</bug_when>
    <thetext>I&apos;ll send next patch after the bug lands. Could you take a look at this one first?
https://bugs.webkit.org/show_bug.cgi?id=175253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363604</commentid>
    <comment_count>14</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-10-24 00:10:28 -0700</bug_when>
    <thetext>Rename it&apos;s title from &quot;curl: Don&apos;t try to close &amp; move the downloaded file twice&quot; to &quot;[Curl] Delete temporally downloaded file when it cancelled&quot; because some parts are already fixed while refactoring the structure by other bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363605</commentid>
    <comment_count>15</comment_count>
      <attachid>324654</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2017-10-24 00:13:05 -0700</bug_when>
    <thetext>Created attachment 324654
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364579</commentid>
    <comment_count>16</comment_count>
      <attachid>324654</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 16:39:12 -0700</bug_when>
    <thetext>Comment on attachment 324654
patch

Clearing flags on attachment: 324654

Committed r223995: &lt;https://trac.webkit.org/changeset/223995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364580</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-25 16:39:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372407</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:12:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568999&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233978</attachid>
            <date>2014-06-27 05:15:29 -0700</date>
            <delta_ts>2017-07-19 11:47:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>curl-no-moving-twice.patch</filename>
            <type>text/plain</type>
            <size>1441</size>
            <attacher name="cand">cand</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3du
bG9hZC5jcHAKaW5kZXggNjJkZDZlYi4uOTdmYTJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKQEAgLTIzOSw2ICsy
MzksNyBAQCBDdXJsRG93bmxvYWQ6OkN1cmxEb3dubG9hZCgpCiAsIG1fdGVtcEhhbmRsZShpbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKQogLCBtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoZmFsc2Up
CiAsIG1fbGlzdGVuZXIoMCkKKywgbV9maW5pc2hlZChmYWxzZSkKIHsKIH0KIApAQCAtMjUyLDgg
KzI1MywxMCBAQCBDdXJsRG93bmxvYWQ6On5DdXJsRG93bmxvYWQoKQogICAgIGlmIChtX2N1c3Rv
bUhlYWRlcnMpCiAgICAgICAgIGN1cmxfc2xpc3RfZnJlZV9hbGwobV9jdXN0b21IZWFkZXJzKTsK
IAotICAgIGNsb3NlRmlsZSgpOwotICAgIG1vdmVGaWxlVG9EZXN0aW5hdGlvbigpOworICAgIGlm
ICghbV9maW5pc2hlZCkgeworICAgICAgICBjbG9zZUZpbGUoKTsKKyAgICAgICAgbW92ZUZpbGVU
b0Rlc3RpbmF0aW9uKCk7CisgICAgfQogfQogCiB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJs
RG93bmxvYWRMaXN0ZW5lciogbGlzdGVuZXIsIGNvbnN0IFVSTCYgdXJsKQpAQCAtNDUyLDYgKzQ1
NSw3IEBAIHZvaWQgQ3VybERvd25sb2FkOjpkaWRGaW5pc2goKQogCiAgICAgY2xvc2VGaWxlKCk7
CiAgICAgbW92ZUZpbGVUb0Rlc3RpbmF0aW9uKCk7CisgICAgbV9maW5pc2hlZCA9IHRydWU7CiAK
ICAgICBpZiAobV9saXN0ZW5lcikKICAgICAgICAgbV9saXN0ZW5lci0+ZGlkRmluaXNoKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25s
b2FkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2Fk
LmgKaW5kZXggMjlmMDUxMS4uYTM3YjI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaApAQCAtMTQwLDYgKzE0MCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmU7CiAgICAgbXV0YWJsZSBN
dXRleCBtX211dGV4OwogICAgIEN1cmxEb3dubG9hZExpc3RlbmVyICptX2xpc3RlbmVyOworICAg
IGJvb2wgbV9maW5pc2hlZDsKIAogICAgIHN0YXRpYyBDdXJsRG93bmxvYWRNYW5hZ2VyIG1fZG93
bmxvYWRNYW5hZ2VyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315944</attachid>
            <date>2017-07-19 11:47:32 -0700</date>
            <delta_ts>2017-07-19 11:52:30 -0700</delta_ts>
            <desc>fixed</desc>
            <filename>134393-1.diff</filename>
            <type>text/plain</type>
            <size>9039</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3du
bG9hZC5jcHAKaW5kZXggMWVmOTY4NTIwNDEuLmU2NjZmYWNmYmViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcApAQCAt
NDksNyArNDksNiBAQCBDdXJsRG93bmxvYWQ6OkN1cmxEb3dubG9hZCgpID0gZGVmYXVsdDsKIEN1
cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCgpCiB7CiAgICAgY2xvc2VGaWxlKCk7Ci0gICAgbW92
ZUZpbGVUb0Rlc3RpbmF0aW9uKCk7CiB9CiAKIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxE
b3dubG9hZExpc3RlbmVyKiBsaXN0ZW5lciwgY29uc3QgVVJMJiB1cmwpCkBAIC01Nyw4ICs1Niw2
IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1cmxEb3dubG9hZExpc3RlbmVyKiBsaXN0ZW5l
ciwgY29uc3QgVVJMJiB1cmwpCiAgICAgaWYgKCFsaXN0ZW5lcikKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7Ci0KICAgICBtX2N1cmxIYW5kbGUuZW5h
YmxlU2hhcmVIYW5kbGUoKTsKIAogICAgIG1fY3VybEhhbmRsZS5zZXRVcmwodXJsKTsKQEAgLTg3
LDE2ICs4NCwyNSBAQCB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJsRG93bmxvYWRMaXN0ZW5l
ciogbGlzdGVuZXIsIFJlc291cmNlSGFuZGxlKiwgY29uc3QgUgogYm9vbCBDdXJsRG93bmxvYWQ6
OnN0YXJ0KCkKIHsKICAgICBtX2pvYiA9IEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0b24oKS5hZGQo
bV9jdXJsSGFuZGxlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShDdXJs
Sm9iUmVzdWx0IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisKICAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICAgICAgY2FzZSBDdXJsSm9iUmVz
dWx0OjpEb25lOgotICAgICAgICAgICAgZGlkRmluaXNoKCk7CisgICAgICAgICAgICBzdWNjZXNz
KCk7CisKKyAgICAgICAgICAgIGlmIChtX2xpc3RlbmVyKQorICAgICAgICAgICAgICAgIG1fbGlz
dGVuZXItPmRpZEZpbmlzaCgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBD
dXJsSm9iUmVzdWx0OjpFcnJvcjoKLSAgICAgICAgICAgIGRpZEZhaWwoKTsKKyAgICAgICAgICAg
IGNsZWFudXAoKTsKKworICAgICAgICAgICAgaWYgKG1fbGlzdGVuZXIpCisgICAgICAgICAgICAg
ICAgbV9saXN0ZW5lci0+ZGlkRmFpbCgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg
Y2FzZSBDdXJsSm9iUmVzdWx0OjpDYW5jZWxsZWQ6CisgICAgICAgICAgICBjbGVhbnVwKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0pOwpAQCAtMTA1LDMyICsxMTEsMjgg
QEAgYm9vbCBDdXJsRG93bmxvYWQ6OnN0YXJ0KCkKIAogYm9vbCBDdXJsRG93bmxvYWQ6OmNhbmNl
bCgpCiB7CisgICAgbV9jYW5jZWxsZWQgPSB0cnVlOwogICAgIEN1cmxKb2JNYW5hZ2VyOjpzaW5n
bGV0b24oKS5jYW5jZWwobV9qb2IpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBTdHJpbmcgQ3Vy
bERvd25sb2FkOjpnZXRUZW1wUGF0aCgpIGNvbnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9tdXRleCk7CiAgICAgcmV0dXJuIG1fdGVtcFBhdGg7CiB9CiAKIFN0cmluZyBDdXJsRG93bmxv
YWQ6OmdldFVybCgpIGNvbnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAg
ICAgcmV0dXJuIFN0cmluZyhtX2N1cmxIYW5kbGUudXJsKCkpOwogfQogCiBSZXNvdXJjZVJlc3Bv
bnNlIEN1cmxEb3dubG9hZDo6Z2V0UmVzcG9uc2UoKSBjb25zdAogewotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX3Jlc3BvbnNlOwogfQogCiB2b2lkIEN1cmxE
b3dubG9hZDo6Y2xvc2VGaWxlKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsK
LQogICAgIGlmIChtX3RlbXBIYW5kbGUgIT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgewog
ICAgICAgICBXZWJDb3JlOjpjbG9zZUZpbGUobV90ZW1wSGFuZGxlKTsKICAgICAgICAgbV90ZW1w
SGFuZGxlID0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKQEAgLTEzOSw4ICsxNDEsNiBAQCB2
b2lkIEN1cmxEb3dubG9hZDo6Y2xvc2VGaWxlKCkKIAogdm9pZCBDdXJsRG93bmxvYWQ6Om1vdmVG
aWxlVG9EZXN0aW5hdGlvbigpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7Ci0K
ICAgICBpZiAobV9kZXN0aW5hdGlvbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTU4LDgyICsxNTgsNTYgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OndyaXRlRGF0YVRvRmlsZShjb25z
dCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSkKIAogdm9pZCBDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbXV0ZXgpOwogICAgIG1fY3VybEhhbmRsZS5hcHBlbmRSZXF1ZXN0SGVhZGVycyhyZXF1ZXN0
Lmh0dHBIZWFkZXJGaWVsZHMoKSk7CiB9CiAKIHZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZl
SGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyKQogewotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bXV0ZXgpOwotCiAgICAgaWYgKGhlYWRlciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsK
LQogICAgICAgICBsb25nIGh0dHBDb2RlID0gMDsKICAgICAgICAgbV9jdXJsSGFuZGxlLmdldFJl
c3BvbnNlQ29kZShodHRwQ29kZSk7CiAKKyAgICAgICAgLy8gQEZJWE1FIGVycm9yIGhhbmRsaW5n
IG1heSBiZSByZXF1aXJlZAogICAgICAgICBpZiAoaHR0cENvZGUgPj0gMjAwICYmIGh0dHBDb2Rl
IDwgMzAwKSB7CiAgICAgICAgICAgICBVUkwgdXJsID0gbV9jdXJsSGFuZGxlLmdldEVmZmVjdGl2
ZVVSTCgpOwotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgdXJsID0gdXJsLmlz
b2xhdGVkQ29weSgpLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAg
ICAgICAgICBtX3Jlc3BvbnNlLnNldFVSTCh1cmwpOwotICAgICAgICAgICAgICAgIG1fcmVzcG9u
c2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jlc3BvbnNlLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKSk7Ci0gICAgICAgICAg
ICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVu
dFR5cGUpKSk7CisgICAgICAgICAgICBtX3Jlc3BvbnNlLnNldFVSTCh1cmwpOworICAgICAgICAg
ICAgbV9yZXNwb25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1f
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSkpKTsK
KyAgICAgICAgICAgIG1fcmVzcG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNl
dEZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNvbnRlbnRUeXBlKSkpOwogCi0gICAgICAgICAgICAgICAgZGlkUmVjZWl2ZVJlc3BvbnNlKCk7
CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKKyAgICAgICAgICAgICAgICBpZiAobV9saXN0ZW5lcikKKyAgICAgICAg
ICAgICAgICAgICAgbV9saXN0ZW5lci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIGhlYWRlciA9IGhlYWRlci5pc29sYXRlZENvcHkoKSwgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgICAgICBpbnQgc3BsaXRQb3MgPSBoZWFkZXIuZmluZCgi
OiIpOwotICAgICAgICAgICAgaWYgKHNwbGl0UG9zICE9IC0xKQotICAgICAgICAgICAgICAgIG1f
cmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKGhlYWRlci5sZWZ0KHNwbGl0UG9zKSwgaGVhZGVy
LnN1YnN0cmluZyhzcGxpdFBvcyArIDEpLnN0cmlwV2hpdGVTcGFjZSgpKTsKLSAgICAgICAgfSk7
CisgICAgICAgIGF1dG8gcG9zaXRpb24gPSBoZWFkZXIuZmluZCgiOiIpOworICAgICAgICBpZiAo
cG9zaXRpb24gIT0gbm90Rm91bmQpCisgICAgICAgICAgICBtX3Jlc3BvbnNlLnNldEhUVFBIZWFk
ZXJGaWVsZChoZWFkZXIubGVmdChwb3NpdGlvbiksIGhlYWRlci5zdWJzdHJpbmcocG9zaXRpb24g
KyAxKS5zdHJpcFdoaXRlU3BhY2UoKSk7CiAgICAgfQogfQogCiB2b2lkIEN1cmxEb3dubG9hZDo6
ZGlkUmVjZWl2ZURhdGEodm9pZCogZGF0YSwgaW50IHNpemUpCiB7Ci0gICAgTG9ja0hvbGRlciBs
b2NrZXIobV9tdXRleCk7Ci0KLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBzaXplLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgZGlkUmVjZWl2ZURhdGFPZkxl
bmd0aChzaXplKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBzaXplLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyldKCkgeworICAgICAgICBpZiAobV9saXN0ZW5lcikKKyAgICAg
ICAgICAgIG1fbGlzdGVuZXItPmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgoc2l6ZSk7CiAgICAgfSk7
CiAKICAgICB3cml0ZURhdGFUb0ZpbGUoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBz
aXplKTsKIH0KIAotdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSgpCi17Ci0g
ICAgaWYgKG1fbGlzdGVuZXIpCi0gICAgICAgIG1fbGlzdGVuZXItPmRpZFJlY2VpdmVSZXNwb25z
ZSgpOwotfQotCi12b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChpbnQg
c2l6ZSkKLXsKLSAgICBpZiAobV9saXN0ZW5lcikKLSAgICAgICAgbV9saXN0ZW5lci0+ZGlkUmVj
ZWl2ZURhdGFPZkxlbmd0aChzaXplKTsKLX0KLQotdm9pZCBDdXJsRG93bmxvYWQ6OmRpZEZpbmlz
aCgpCit2b2lkIEN1cmxEb3dubG9hZDo6c3VjY2VzcygpCiB7CiAgICAgY2xvc2VGaWxlKCk7CiAg
ICAgbW92ZUZpbGVUb0Rlc3RpbmF0aW9uKCk7Ci0KLSAgICBpZiAobV9saXN0ZW5lcikKLSAgICAg
ICAgbV9saXN0ZW5lci0+ZGlkRmluaXNoKCk7CiB9CiAKLXZvaWQgQ3VybERvd25sb2FkOjpkaWRG
YWlsKCkKK3ZvaWQgQ3VybERvd25sb2FkOjpjbGVhbnVwKCkKIHsKICAgICBjbG9zZUZpbGUoKTsK
LSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwotCi0gICAgICAgIGlm
IChtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmUpCi0gICAgICAgICAgICBkZWxldGVGaWxlKG1fdGVt
cFBhdGgpOwotICAgIH0KIAotICAgIGlmIChtX2xpc3RlbmVyKQotICAgICAgICBtX2xpc3RlbmVy
LT5kaWRGYWlsKCk7CisgICAgaWYgKG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSkKKyAgICAgICAg
ZGVsZXRlRmlsZShtX3RlbXBQYXRoKTsKIH0KIAogc2l6ZV90IEN1cmxEb3dubG9hZDo6d3JpdGVD
YWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqIGRhdGEp
CkBAIC0yNDEsNyArMjE1LDcgQEAgc2l6ZV90IEN1cmxEb3dubG9hZDo6d3JpdGVDYWxsYmFjayhj
aGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqIGQKICAgICBzaXplX3Qg
dG90YWxTaXplID0gc2l6ZSAqIG5tZW1iOwogICAgIEN1cmxEb3dubG9hZCogZG93bmxvYWQgPSBy
ZWludGVycHJldF9jYXN0PEN1cmxEb3dubG9hZCo+KGRhdGEpOwogCi0gICAgaWYgKGRvd25sb2Fk
KQorICAgIGlmIChkb3dubG9hZCAmJiAhZG93bmxvYWQtPm1fY2FuY2VsbGVkKQogICAgICAgICBk
b3dubG9hZC0+ZGlkUmVjZWl2ZURhdGEoc3RhdGljX2Nhc3Q8dm9pZCo+KHB0ciksIHRvdGFsU2l6
ZSk7CiAKICAgICByZXR1cm4gdG90YWxTaXplOwpAQCAtMjUyLDM4ICsyMjYsMTUgQEAgc2l6ZV90
IEN1cmxEb3dubG9hZDo6aGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLCBzaXplX3Qgc2l6ZSwgc2l6
ZV90IG5tZW1iLCB2b2lkKgogICAgIHNpemVfdCB0b3RhbFNpemUgPSBzaXplICogbm1lbWI7CiAg
ICAgQ3VybERvd25sb2FkKiBkb3dubG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q3VybERvd25sb2Fk
Kj4oZGF0YSk7CiAKLSAgICBTdHJpbmcgaGVhZGVyKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihw
dHIpLCB0b3RhbFNpemUpOworICAgIGlmIChkb3dubG9hZCAmJiAhZG93bmxvYWQtPm1fY2FuY2Vs
bGVkKSB7CisgICAgICAgIFN0cmluZyBoZWFkZXIoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHB0
ciksIHRvdGFsU2l6ZSk7CiAKLSAgICBpZiAoZG93bmxvYWQpCiAgICAgICAgIGRvd25sb2FkLT5k
aWRSZWNlaXZlSGVhZGVyKGhlYWRlcik7CisgICAgfQogCiAgICAgcmV0dXJuIHRvdGFsU2l6ZTsK
IH0KIAotdm9pZCBDdXJsRG93bmxvYWQ6OmRvd25sb2FkRmluaXNoZWRDYWxsYmFjayhDdXJsRG93
bmxvYWQqIGRvd25sb2FkKQotewotICAgIGlmIChkb3dubG9hZCkKLSAgICAgICAgZG93bmxvYWQt
PmRpZEZpbmlzaCgpOwotfQotCi12b2lkIEN1cmxEb3dubG9hZDo6ZG93bmxvYWRGYWlsZWRDYWxs
YmFjayhDdXJsRG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGlmIChkb3dubG9hZCkKLSAgICAg
ICAgZG93bmxvYWQtPmRpZEZhaWwoKTsKLX0KLQotdm9pZCBDdXJsRG93bmxvYWQ6OnJlY2VpdmVk
RGF0YUNhbGxiYWNrKEN1cmxEb3dubG9hZCogZG93bmxvYWQsIGludCBzaXplKQotewotICAgIGlm
IChkb3dubG9hZCkKLSAgICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgoc2l6
ZSk7Ci19Ci0KLXZvaWQgQ3VybERvd25sb2FkOjpyZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2soQ3Vy
bERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBpZiAoZG93bmxvYWQpCi0gICAgICAgIGRvd25s
b2FkLT5kaWRSZWNlaXZlUmVzcG9uc2UoKTsKLX0KLQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAppbmRleCAz
ZGE1NGFlNzgyMS4uNWE4ZjcyN2FhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGlj
OgogCiAgICAgU3RyaW5nIGdldFRlbXBQYXRoKCkgY29uc3Q7CiAgICAgU3RyaW5nIGdldFVybCgp
IGNvbnN0OwotICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgZ2V0UmVzcG9uc2UoKSBjb25z
dDsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIGdldFJlc3BvbnNlKCkgY29uc3Q7CiAKICAgICBib29s
IGRlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoKSBjb25zdCB7IHJldHVybiBtX2RlbGV0ZXNGaWxlVXBv
bkZhaWx1cmU7IH0KICAgICB2b2lkIHNldERlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoYm9vbCBkZWxl
dGVzRmlsZVVwb25GYWlsdXJlKSB7IG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSA9IGRlbGV0ZXNG
aWxlVXBvbkZhaWx1cmU7IH0KQEAgLTg0LDI3ICs4NCwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkUmVjZWl2ZURhdGEodm9pZCogZGF0YSwgaW50IHNpemUpOwogCiAgICAgLy8gQ2FsbGVkIG9u
IG1haW4gdGhyZWFkLgotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlRGF0YU9mTGVuZ3RoKGludCBzaXplKTsKLSAgICB2b2lkIGRpZEZpbmlzaCgpOwot
ICAgIHZvaWQgZGlkRmFpbCgpOworICAgIHZvaWQgc3VjY2VzcygpOworICAgIHZvaWQgY2xlYW51
cCgpOwogCiAgICAgc3RhdGljIHNpemVfdCB3cml0ZUNhbGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90
LCBzaXplX3Qgbm1lbWIsIHZvaWQqIGRhdGEpOwogICAgIHN0YXRpYyBzaXplX3QgaGVhZGVyQ2Fs
bGJhY2soY2hhciogcHRyLCBzaXplX3QsIHNpemVfdCBubWVtYiwgdm9pZCogZGF0YSk7CiAKLSAg
ICBzdGF0aWMgdm9pZCBkb3dubG9hZEZpbmlzaGVkQ2FsbGJhY2soQ3VybERvd25sb2FkKik7Ci0g
ICAgc3RhdGljIHZvaWQgZG93bmxvYWRGYWlsZWRDYWxsYmFjayhDdXJsRG93bmxvYWQqKTsKLSAg
ICBzdGF0aWMgdm9pZCByZWNlaXZlZERhdGFDYWxsYmFjayhDdXJsRG93bmxvYWQqLCBpbnQgc2l6
ZSk7Ci0gICAgc3RhdGljIHZvaWQgcmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNrKEN1cmxEb3dubG9h
ZCopOwotCiAgICAgQ3VybEhhbmRsZSBtX2N1cmxIYW5kbGU7CiAgICAgQ3VybEpvYlRpY2tldCBt
X2pvYjsKKyAgICBib29sIG1fY2FuY2VsbGVkOwogICAgIFN0cmluZyBtX3RlbXBQYXRoOwogICAg
IFN0cmluZyBtX2Rlc3RpbmF0aW9uOwotICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBt
X3RlbXBIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Ci0gICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOworICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBtX3Rl
bXBIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CisgICAgUmVzb3VyY2VSZXNw
b25zZSBtX3Jlc3BvbnNlOwogICAgIGJvb2wgbV9kZWxldGVzRmlsZVVwb25GYWlsdXJlIHsgZmFs
c2UgfTsKLSAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93bmxvYWRMaXN0ZW5l
ciogbV9saXN0ZW5lciB7IG51bGxwdHIgfTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315945</attachid>
            <date>2017-07-19 11:52:30 -0700</date>
            <delta_ts>2017-07-19 22:06:07 -0700</delta_ts>
            <desc>add changelog</desc>
            <filename>134393-2.diff</filename>
            <type>text/plain</type>
            <size>10880</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmZjgwYWQ5ZmEwNS4uNWNkNTg0YWUyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxNy0wNy0xOSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgY3VybDogRG9uJ3QgdHJ5IHRvIGNsb3NlICYgbW92ZSB0aGUgZG93
bmxvYWRlZCBmaWxlIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQzOTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjp+Q3VybERvd25sb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OkN1cmxEb3dubG9hZDo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxv
YWQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Y2FuY2VsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Z2V0VGVtcFBhdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybERvd25sb2FkOjpnZXRVcmwpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkOjpnZXRSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3Nl
RmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6Om1vdmVGaWxlVG9EZXN0aW5h
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3VybERvd25sb2FkOjpzdWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9h
ZDo6Y2xlYW51cCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OndyaXRlQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpoZWFkZXJDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhT2ZMZW5n
dGgpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRGaW5pc2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRGYWlsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZG93bmxvYWRGaW5pc2hlZENh
bGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZG93bmxv
YWRGYWlsZWRDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxv
YWQ6OnJlY2VpdmVkRGF0YUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1
cmxEb3dubG9hZDo6cmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmg6CisKIDIwMTctMDctMTkgIE1h
dHQgTGV3aXMgIDxqbGV3aXMzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjE5NjQ2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAppbmRleCAxZWY5Njg1MjA0MS4uZTY2NmZhY2ZiZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJs
RG93bmxvYWQuY3BwCkBAIC00OSw3ICs0OSw2IEBAIEN1cmxEb3dubG9hZDo6Q3VybERvd25sb2Fk
KCkgPSBkZWZhdWx0OwogQ3VybERvd25sb2FkOjp+Q3VybERvd25sb2FkKCkKIHsKICAgICBjbG9z
ZUZpbGUoKTsKLSAgICBtb3ZlRmlsZVRvRGVzdGluYXRpb24oKTsKIH0KIAogdm9pZCBDdXJsRG93
bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdGVuZXIqIGxpc3RlbmVyLCBjb25zdCBVUkwmIHVy
bCkKQEAgLTU3LDggKzU2LDYgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2Fk
TGlzdGVuZXIqIGxpc3RlbmVyLCBjb25zdCBVUkwmIHVybCkKICAgICBpZiAoIWxpc3RlbmVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKLQogICAg
IG1fY3VybEhhbmRsZS5lbmFibGVTaGFyZUhhbmRsZSgpOwogCiAgICAgbV9jdXJsSGFuZGxlLnNl
dFVybCh1cmwpOwpAQCAtODcsMTYgKzg0LDI1IEBAIHZvaWQgQ3VybERvd25sb2FkOjppbml0KEN1
cmxEb3dubG9hZExpc3RlbmVyKiBsaXN0ZW5lciwgUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSCiBi
b29sIEN1cmxEb3dubG9hZDo6c3RhcnQoKQogewogICAgIG1fam9iID0gQ3VybEpvYk1hbmFnZXI6
OnNpbmdsZXRvbigpLmFkZChtX2N1cmxIYW5kbGUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldKEN1cmxKb2JSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKwogICAgICAgICBzd2l0Y2ggKHJlc3VsdCkgewogICAgICAg
ICBjYXNlIEN1cmxKb2JSZXN1bHQ6OkRvbmU6Ci0gICAgICAgICAgICBkaWRGaW5pc2goKTsKKyAg
ICAgICAgICAgIHN1Y2Nlc3MoKTsKKworICAgICAgICAgICAgaWYgKG1fbGlzdGVuZXIpCisgICAg
ICAgICAgICAgICAgbV9saXN0ZW5lci0+ZGlkRmluaXNoKCk7CiAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICBjYXNlIEN1cmxKb2JSZXN1bHQ6OkVycm9yOgotICAgICAgICAgICAgZGlkRmFp
bCgpOworICAgICAgICAgICAgY2xlYW51cCgpOworCisgICAgICAgICAgICBpZiAobV9saXN0ZW5l
cikKKyAgICAgICAgICAgICAgICBtX2xpc3RlbmVyLT5kaWRGYWlsKCk7CiAgICAgICAgICAgICBi
cmVhazsKIAogICAgICAgICBjYXNlIEN1cmxKb2JSZXN1bHQ6OkNhbmNlbGxlZDoKKyAgICAgICAg
ICAgIGNsZWFudXAoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfSk7CkBA
IC0xMDUsMzIgKzExMSwyOCBAQCBib29sIEN1cmxEb3dubG9hZDo6c3RhcnQoKQogCiBib29sIEN1
cmxEb3dubG9hZDo6Y2FuY2VsKCkKIHsKKyAgICBtX2NhbmNlbGxlZCA9IHRydWU7CiAgICAgQ3Vy
bEpvYk1hbmFnZXI6OnNpbmdsZXRvbigpLmNhbmNlbChtX2pvYik7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKIFN0cmluZyBDdXJsRG93bmxvYWQ6OmdldFRlbXBQYXRoKCkgY29uc3QKIHsKLSAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKICAgICByZXR1cm4gbV90ZW1wUGF0aDsKIH0KIAog
U3RyaW5nIEN1cmxEb3dubG9hZDo6Z2V0VXJsKCkgY29uc3QKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX211dGV4KTsKICAgICByZXR1cm4gU3RyaW5nKG1fY3VybEhhbmRsZS51cmwoKSk7CiB9
CiAKIFJlc291cmNlUmVzcG9uc2UgQ3VybERvd25sb2FkOjpnZXRSZXNwb25zZSgpIGNvbnN0CiB7
Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgcmV0dXJuIG1fcmVzcG9uc2U7
CiB9CiAKIHZvaWQgQ3VybERvd25sb2FkOjpjbG9zZUZpbGUoKQogewotICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbXV0ZXgpOwotCiAgICAgaWYgKG1fdGVtcEhhbmRsZSAhPSBpbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlKSB7CiAgICAgICAgIFdlYkNvcmU6OmNsb3NlRmlsZShtX3RlbXBIYW5kbGUp
OwogICAgICAgICBtX3RlbXBIYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOwpAQCAt
MTM5LDggKzE0MSw2IEBAIHZvaWQgQ3VybERvd25sb2FkOjpjbG9zZUZpbGUoKQogCiB2b2lkIEN1
cmxEb3dubG9hZDo6bW92ZUZpbGVUb0Rlc3RpbmF0aW9uKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX211dGV4KTsKLQogICAgIGlmIChtX2Rlc3RpbmF0aW9uLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xNTgsODIgKzE1OCw1NiBAQCB2b2lkIEN1cmxEb3dubG9hZDo6d3Jp
dGVEYXRhVG9GaWxlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBzaXplKQogCiB2b2lkIEN1cmxEb3du
bG9hZDo6YWRkSGVhZGVycyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAg
TG9ja0hvbGRlciBsb2NrZXIobV9tdXRleCk7CiAgICAgbV9jdXJsSGFuZGxlLmFwcGVuZFJlcXVl
c3RIZWFkZXJzKHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKTsKIH0KIAogdm9pZCBDdXJsRG93
bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgTG9j
a0hvbGRlciBsb2NrZXIobV9tdXRleCk7Ci0KICAgICBpZiAoaGVhZGVyID09ICJcclxuIiB8fCBo
ZWFkZXIgPT0gIlxuIikgewotCiAgICAgICAgIGxvbmcgaHR0cENvZGUgPSAwOwogICAgICAgICBt
X2N1cmxIYW5kbGUuZ2V0UmVzcG9uc2VDb2RlKGh0dHBDb2RlKTsKIAorICAgICAgICAvLyBARklY
TUUgZXJyb3IgaGFuZGxpbmcgbWF5IGJlIHJlcXVpcmVkCiAgICAgICAgIGlmIChodHRwQ29kZSA+
PSAyMDAgJiYgaHR0cENvZGUgPCAzMDApIHsKICAgICAgICAgICAgIFVSTCB1cmwgPSBtX2N1cmxI
YW5kbGUuZ2V0RWZmZWN0aXZlVVJMKCk7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCksIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKV0gewotICAgICAgICAgICAgICAgIG1fcmVzcG9uc2Uuc2V0VVJMKHVybCk7Ci0gICAgICAg
ICAgICAgICAgbV9yZXNwb25zZS5zZXRNaW1lVHlwZShleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFU
eXBlKG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlw
ZSkpKTsKLSAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0
cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpDb250ZW50VHlwZSkpKTsKKyAgICAgICAgICAgIG1fcmVzcG9uc2Uuc2V0VVJM
KHVybCk7CisgICAgICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKGV4dHJhY3RNSU1FVHlw
ZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6
OkNvbnRlbnRUeXBlKSkpOworICAgICAgICAgICAgbV9yZXNwb25zZS5zZXRUZXh0RW5jb2RpbmdO
YW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShtX3Jlc3BvbnNlLmh0dHBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKSk7CiAKLSAgICAgICAgICAgICAgICBkaWRS
ZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAgICAgIGlmIChtX2xp
c3RlbmVyKQorICAgICAgICAgICAgICAgICAgICBtX2xpc3RlbmVyLT5kaWRSZWNlaXZlUmVzcG9u
c2UoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgaGVhZGVyID0gaGVhZGVyLmlzb2xhdGVkQ29weSgpLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGludCBzcGxpdFBv
cyA9IGhlYWRlci5maW5kKCI6Iik7Ci0gICAgICAgICAgICBpZiAoc3BsaXRQb3MgIT0gLTEpCi0g
ICAgICAgICAgICAgICAgbV9yZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoaGVhZGVyLmxlZnQo
c3BsaXRQb3MpLCBoZWFkZXIuc3Vic3RyaW5nKHNwbGl0UG9zICsgMSkuc3RyaXBXaGl0ZVNwYWNl
KCkpOwotICAgICAgICB9KTsKKyAgICAgICAgYXV0byBwb3NpdGlvbiA9IGhlYWRlci5maW5kKCI6
Iik7CisgICAgICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIG1fcmVz
cG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKGhlYWRlci5sZWZ0KHBvc2l0aW9uKSwgaGVhZGVyLnN1
YnN0cmluZyhwb3NpdGlvbiArIDEpLnN0cmlwV2hpdGVTcGFjZSgpKTsKICAgICB9CiB9CiAKIHZv
aWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSh2b2lkKiBkYXRhLCBpbnQgc2l6ZSkKIHsK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHNpemUsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBk
aWRSZWNlaXZlRGF0YU9mTGVuZ3RoKHNpemUpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMs
IHNpemUsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7CisgICAgICAgIGlmICht
X2xpc3RlbmVyKQorICAgICAgICAgICAgbV9saXN0ZW5lci0+ZGlkUmVjZWl2ZURhdGFPZkxlbmd0
aChzaXplKTsKICAgICB9KTsKIAogICAgIHdyaXRlRGF0YVRvRmlsZShzdGF0aWNfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogCi12b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKCkKLXsKLSAgICBpZiAobV9saXN0ZW5lcikKLSAgICAgICAgbV9saXN0ZW5lci0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci19Ci0KLXZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZl
RGF0YU9mTGVuZ3RoKGludCBzaXplKQotewotICAgIGlmIChtX2xpc3RlbmVyKQotICAgICAgICBt
X2xpc3RlbmVyLT5kaWRSZWNlaXZlRGF0YU9mTGVuZ3RoKHNpemUpOwotfQotCi12b2lkIEN1cmxE
b3dubG9hZDo6ZGlkRmluaXNoKCkKK3ZvaWQgQ3VybERvd25sb2FkOjpzdWNjZXNzKCkKIHsKICAg
ICBjbG9zZUZpbGUoKTsKICAgICBtb3ZlRmlsZVRvRGVzdGluYXRpb24oKTsKLQotICAgIGlmICht
X2xpc3RlbmVyKQotICAgICAgICBtX2xpc3RlbmVyLT5kaWRGaW5pc2goKTsKIH0KIAotdm9pZCBD
dXJsRG93bmxvYWQ6OmRpZEZhaWwoKQordm9pZCBDdXJsRG93bmxvYWQ6OmNsZWFudXAoKQogewog
ICAgIGNsb3NlRmlsZSgpOwotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9tdXRl
eCk7Ci0KLSAgICAgICAgaWYgKG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSkKLSAgICAgICAgICAg
IGRlbGV0ZUZpbGUobV90ZW1wUGF0aCk7Ci0gICAgfQogCi0gICAgaWYgKG1fbGlzdGVuZXIpCi0g
ICAgICAgIG1fbGlzdGVuZXItPmRpZEZhaWwoKTsKKyAgICBpZiAobV9kZWxldGVzRmlsZVVwb25G
YWlsdXJlKQorICAgICAgICBkZWxldGVGaWxlKG1fdGVtcFBhdGgpOwogfQogCiBzaXplX3QgQ3Vy
bERvd25sb2FkOjp3cml0ZUNhbGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBu
bWVtYiwgdm9pZCogZGF0YSkKQEAgLTI0MSw3ICsyMTUsNyBAQCBzaXplX3QgQ3VybERvd25sb2Fk
Ojp3cml0ZUNhbGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90IHNpemUsIHNpemVfdCBubWVtYiwgdm9p
ZCogZAogICAgIHNpemVfdCB0b3RhbFNpemUgPSBzaXplICogbm1lbWI7CiAgICAgQ3VybERvd25s
b2FkKiBkb3dubG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q3VybERvd25sb2FkKj4oZGF0YSk7CiAK
LSAgICBpZiAoZG93bmxvYWQpCisgICAgaWYgKGRvd25sb2FkICYmICFkb3dubG9hZC0+bV9jYW5j
ZWxsZWQpCiAgICAgICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlRGF0YShzdGF0aWNfY2FzdDx2b2lk
Kj4ocHRyKSwgdG90YWxTaXplKTsKIAogICAgIHJldHVybiB0b3RhbFNpemU7CkBAIC0yNTIsMzgg
KzIyNiwxNSBAQCBzaXplX3QgQ3VybERvd25sb2FkOjpoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIs
IHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqCiAgICAgc2l6ZV90IHRvdGFsU2l6ZSA9
IHNpemUgKiBubWVtYjsKICAgICBDdXJsRG93bmxvYWQqIGRvd25sb2FkID0gcmVpbnRlcnByZXRf
Y2FzdDxDdXJsRG93bmxvYWQqPihkYXRhKTsKIAotICAgIFN0cmluZyBoZWFkZXIoc3RhdGljX2Nh
c3Q8Y29uc3QgY2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CisgICAgaWYgKGRvd25sb2FkICYmICFk
b3dubG9hZC0+bV9jYW5jZWxsZWQpIHsKKyAgICAgICAgU3RyaW5nIGhlYWRlcihzdGF0aWNfY2Fz
dDxjb25zdCBjaGFyKj4ocHRyKSwgdG90YWxTaXplKTsKIAotICAgIGlmIChkb3dubG9hZCkKICAg
ICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVIZWFkZXIoaGVhZGVyKTsKKyAgICB9CiAKICAgICBy
ZXR1cm4gdG90YWxTaXplOwogfQogCi12b2lkIEN1cmxEb3dubG9hZDo6ZG93bmxvYWRGaW5pc2hl
ZENhbGxiYWNrKEN1cmxEb3dubG9hZCogZG93bmxvYWQpCi17Ci0gICAgaWYgKGRvd25sb2FkKQot
ICAgICAgICBkb3dubG9hZC0+ZGlkRmluaXNoKCk7Ci19Ci0KLXZvaWQgQ3VybERvd25sb2FkOjpk
b3dubG9hZEZhaWxlZENhbGxiYWNrKEN1cmxEb3dubG9hZCogZG93bmxvYWQpCi17Ci0gICAgaWYg
KGRvd25sb2FkKQotICAgICAgICBkb3dubG9hZC0+ZGlkRmFpbCgpOwotfQotCi12b2lkIEN1cmxE
b3dubG9hZDo6cmVjZWl2ZWREYXRhQ2FsbGJhY2soQ3VybERvd25sb2FkKiBkb3dubG9hZCwgaW50
IHNpemUpCi17Ci0gICAgaWYgKGRvd25sb2FkKQotICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2
ZURhdGFPZkxlbmd0aChzaXplKTsKLX0KLQotdm9pZCBDdXJsRG93bmxvYWQ6OnJlY2VpdmVkUmVz
cG9uc2VDYWxsYmFjayhDdXJsRG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGlmIChkb3dubG9h
ZCkKLSAgICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVSZXNwb25zZSgpOwotfQotCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxE
b3dubG9hZC5oCmluZGV4IDNkYTU0YWU3ODIxLi41YThmNzI3YWE3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgZ2V0VGVtcFBhdGgoKSBjb25zdDsKICAg
ICBTdHJpbmcgZ2V0VXJsKCkgY29uc3Q7Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBn
ZXRSZXNwb25zZSgpIGNvbnN0OworICAgIFJlc291cmNlUmVzcG9uc2UgZ2V0UmVzcG9uc2UoKSBj
b25zdDsKIAogICAgIGJvb2wgZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZTsgfQogICAgIHZvaWQgc2V0RGVsZXRlc0ZpbGVVcG9u
RmFpbHVyZShib29sIGRlbGV0ZXNGaWxlVXBvbkZhaWx1cmUpIHsgbV9kZWxldGVzRmlsZVVwb25G
YWlsdXJlID0gZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZTsgfQpAQCAtODQsMjcgKzg0LDIwIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YSh2b2lkKiBkYXRhLCBpbnQgc2l6ZSk7CiAK
ICAgICAvLyBDYWxsZWQgb24gbWFpbiB0aHJlYWQuCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgoaW50IHNpemUpOwotICAgIHZv
aWQgZGlkRmluaXNoKCk7Ci0gICAgdm9pZCBkaWRGYWlsKCk7CisgICAgdm9pZCBzdWNjZXNzKCk7
CisgICAgdm9pZCBjbGVhbnVwKCk7CiAKICAgICBzdGF0aWMgc2l6ZV90IHdyaXRlQ2FsbGJhY2so
Y2hhciogcHRyLCBzaXplX3QsIHNpemVfdCBubWVtYiwgdm9pZCogZGF0YSk7CiAgICAgc3RhdGlj
IHNpemVfdCBoZWFkZXJDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCwgc2l6ZV90IG5tZW1iLCB2
b2lkKiBkYXRhKTsKIAotICAgIHN0YXRpYyB2b2lkIGRvd25sb2FkRmluaXNoZWRDYWxsYmFjayhD
dXJsRG93bmxvYWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkb3dubG9hZEZhaWxlZENhbGxiYWNrKEN1
cmxEb3dubG9hZCopOwotICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkRGF0YUNhbGxiYWNrKEN1cmxE
b3dubG9hZCosIGludCBzaXplKTsKLSAgICBzdGF0aWMgdm9pZCByZWNlaXZlZFJlc3BvbnNlQ2Fs
bGJhY2soQ3VybERvd25sb2FkKik7Ci0KICAgICBDdXJsSGFuZGxlIG1fY3VybEhhbmRsZTsKICAg
ICBDdXJsSm9iVGlja2V0IG1fam9iOworICAgIGJvb2wgbV9jYW5jZWxsZWQ7CiAgICAgU3RyaW5n
IG1fdGVtcFBhdGg7CiAgICAgU3RyaW5nIG1fZGVzdGluYXRpb247Ci0gICAgV2ViQ29yZTo6UGxh
dGZvcm1GaWxlSGFuZGxlIG1fdGVtcEhhbmRsZSB7IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUg
fTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CisgICAgUGxhdGZv
cm1GaWxlSGFuZGxlIG1fdGVtcEhhbmRsZSB7IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsK
KyAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAgICAgYm9vbCBtX2RlbGV0ZXNGaWxl
VXBvbkZhaWx1cmUgeyBmYWxzZSB9OwotICAgIG11dGFibGUgTG9jayBtX211dGV4OwogICAgIEN1
cmxEb3dubG9hZExpc3RlbmVyKiBtX2xpc3RlbmVyIHsgbnVsbHB0ciB9OwogfTsKIAo=
</data>
<flag name="review"
          id="336674"
          type_id="1"
          status="-"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="336675"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315970</attachid>
            <date>2017-07-19 22:06:07 -0700</date>
            <delta_ts>2017-07-19 22:31:12 -0700</delta_ts>
            <desc>Remove unrelated patch</desc>
            <filename>134393-4.diff</filename>
            <type>text/plain</type>
            <size>9843</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1N2M4NWUyYjBiOS4uZjEzOTMzZmVmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxNy0wNy0xOSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgY3VybDogRG9uJ3QgdHJ5IHRvIGNsb3NlICYgbW92ZSB0aGUgZG93
bmxvYWRlZCBmaWxlIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQzOTMKKworCUFmdGVyIHJlZmFjdG9yaW5nIHRoZSBhcmNoaXRlY3R1cmUg
b2Ygam9iIG1hbmFnZXIsIHRhc2tzCisJYXJlIG1vcmUgY2xlYXIgd2hlbiBpdCB3b3VsZCBiZSBj
YWxsZWQuIEFsc28gd2l0aCB1c2Ugb2YKKwlsYW1iZGEgd2hlbiBzdGFydGluZyB0aGUgZG93bmxv
YWQsIHRoZSBsaWZlY3ljbGUgb2YgdGhlCisJZG93bmxvYWQgb2JqZWN0IGlzIG1vcmUgY2xlYXIg
YW5kIGNvbmZpZGVudC4gVGhlIGRvd25sb2FkZWQKKwlmaWxlIHdpbGwgYmUgbW92ZSB0byB0aGUg
ZGVzdGluYXRpb24gb24gc3VjY2VzcygpIG9yCisJZGVsZXRlZCBvbiBmYWlsdXJlIG9yIGNhbmNl
bGF0aW9uLgorCisJQWxzbyBkZWxldGVkIHVudXNlZCBwcml2YXRlIHN0YXRpYyBtZXRob2RzLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJs
RG93bmxvYWQ6On5DdXJsRG93bmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNhbmNlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVIZWFkZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJsRG93bmxvYWQ6OnN1Y2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
OjpjbGVhbnVwKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6d3JpdGVDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmhlYWRlckNhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGFPZkxlbmd0
aCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZpbmlzaCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZEZhaWwpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkb3dubG9hZEZpbmlzaGVkQ2Fs
bGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkb3dubG9h
ZEZhaWxlZENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9h
ZDo6cmVjZWl2ZWREYXRhQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
bERvd25sb2FkOjpyZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaDoKKwogMjAxNy0wNy0xOCAgQmFz
dWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW0N1cmxdIE1v
dmUgZGV0YWlsIGltcGxlbWVudGF0aW9uIGZyb20gUmVzb3VyY2VIYW5kbGUgdG8gUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL0N1cmxEb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2N1cmwvQ3VybERvd25sb2FkLmNwcAppbmRleCAxZWY5Njg1MjA0MS4uNjU1MjQ0YmU3ZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxv
YWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuY3BwCkBAIC00OSw3ICs0OSw2IEBAIEN1cmxEb3dubG9hZDo6Q3VybERvd25sb2FkKCkg
PSBkZWZhdWx0OwogQ3VybERvd25sb2FkOjp+Q3VybERvd25sb2FkKCkKIHsKICAgICBjbG9zZUZp
bGUoKTsKLSAgICBtb3ZlRmlsZVRvRGVzdGluYXRpb24oKTsKIH0KIAogdm9pZCBDdXJsRG93bmxv
YWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdGVuZXIqIGxpc3RlbmVyLCBjb25zdCBVUkwmIHVybCkK
QEAgLTg3LDE2ICs4NiwyNSBAQCB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJsRG93bmxvYWRM
aXN0ZW5lciogbGlzdGVuZXIsIFJlc291cmNlSGFuZGxlKiwgY29uc3QgUgogYm9vbCBDdXJsRG93
bmxvYWQ6OnN0YXJ0KCkKIHsKICAgICBtX2pvYiA9IEN1cmxKb2JNYW5hZ2VyOjpzaW5nbGV0b24o
KS5hZGQobV9jdXJsSGFuZGxlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XShDdXJsSm9iUmVzdWx0IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisKICAgICAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICAgICAgY2FzZSBDdXJs
Sm9iUmVzdWx0OjpEb25lOgotICAgICAgICAgICAgZGlkRmluaXNoKCk7CisgICAgICAgICAgICBz
dWNjZXNzKCk7CisKKyAgICAgICAgICAgIGlmIChtX2xpc3RlbmVyKQorICAgICAgICAgICAgICAg
IG1fbGlzdGVuZXItPmRpZEZpbmlzaCgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg
Y2FzZSBDdXJsSm9iUmVzdWx0OjpFcnJvcjoKLSAgICAgICAgICAgIGRpZEZhaWwoKTsKKyAgICAg
ICAgICAgIGNsZWFudXAoKTsKKworICAgICAgICAgICAgaWYgKG1fbGlzdGVuZXIpCisgICAgICAg
ICAgICAgICAgbV9saXN0ZW5lci0+ZGlkRmFpbCgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAg
ICAgICAgY2FzZSBDdXJsSm9iUmVzdWx0OjpDYW5jZWxsZWQ6CisgICAgICAgICAgICBjbGVhbnVw
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0pOwpAQCAtMTA1LDYgKzEx
Myw3IEBAIGJvb2wgQ3VybERvd25sb2FkOjpzdGFydCgpCiAKIGJvb2wgQ3VybERvd25sb2FkOjpj
YW5jZWwoKQogeworICAgIG1fY2FuY2VsbGVkID0gdHJ1ZTsKICAgICBDdXJsSm9iTWFuYWdlcjo6
c2luZ2xldG9uKCkuY2FuY2VsKG1fam9iKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2Nyw2
MiArMTc2LDQ5IEBAIHZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0
cmluZyYgaGVhZGVyKQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwogCiAgICAgaWYg
KGhlYWRlciA9PSAiXHJcbiIgfHwgaGVhZGVyID09ICJcbiIpIHsKLQogICAgICAgICBsb25nIGh0
dHBDb2RlID0gMDsKICAgICAgICAgbV9jdXJsSGFuZGxlLmdldFJlc3BvbnNlQ29kZShodHRwQ29k
ZSk7CiAKICAgICAgICAgaWYgKGh0dHBDb2RlID49IDIwMCAmJiBodHRwQ29kZSA8IDMwMCkgewog
ICAgICAgICAgICAgVVJMIHVybCA9IG1fY3VybEhhbmRsZS5nZXRFZmZlY3RpdmVVUkwoKTsKLSAg
ICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHVybCA9IHVybC5pc29sYXRlZENvcHko
KSwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgICAgICAgICAgbV9y
ZXNwb25zZS5zZXRVUkwodXJsKTsKLSAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVU
eXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkpOwotICAgICAgICAgICAgICAgIG1fcmVz
cG9uc2Uuc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUobV9y
ZXNwb25zZS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkpOwor
ICAgICAgICAgICAgbV9yZXNwb25zZS5zZXRVUkwodXJsKTsKKyAgICAgICAgICAgIG1fcmVzcG9u
c2Uuc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShtX3Jlc3BvbnNlLmh0
dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKSk7CisgICAgICAgICAg
ICBtX3Jlc3BvbnNlLnNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFU
eXBlKG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlw
ZSkpKTsKIAotICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
XSB7CisgICAgICAgICAgICAgICAgaWYgKG1fbGlzdGVuZXIpCisgICAgICAgICAgICAgICAgICAg
IG1fbGlzdGVuZXItPmRpZFJlY2VpdmVSZXNwb25zZSgpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKCkgeworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBP
dGhlciBlcnJvciBoYW5kbGluZyBpcyByZXF1aXJlZAorICAgICAgICAgICAgICAgIGNhbmNlbCgp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt0aGlzLCBoZWFkZXIgPSBoZWFkZXIuaXNvbGF0ZWRDb3B5KCksIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICAgICAgaW50IHNwbGl0UG9zID0g
aGVhZGVyLmZpbmQoIjoiKTsKLSAgICAgICAgICAgIGlmIChzcGxpdFBvcyAhPSAtMSkKLSAgICAg
ICAgICAgICAgICBtX3Jlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChoZWFkZXIubGVmdChzcGxp
dFBvcyksIGhlYWRlci5zdWJzdHJpbmcoc3BsaXRQb3MgKyAxKS5zdHJpcFdoaXRlU3BhY2UoKSk7
Ci0gICAgICAgIH0pOworICAgICAgICBhdXRvIHBvc2l0aW9uID0gaGVhZGVyLmZpbmQoIjoiKTsK
KyAgICAgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgbV9yZXNwb25z
ZS5zZXRIVFRQSGVhZGVyRmllbGQoaGVhZGVyLmxlZnQocG9zaXRpb24pLCBoZWFkZXIuc3Vic3Ry
aW5nKHBvc2l0aW9uICsgMSkuc3RyaXBXaGl0ZVNwYWNlKCkpOwogICAgIH0KIH0KIAogdm9pZCBD
dXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKQogewotICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbXV0ZXgpOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhp
cywgc2l6ZSwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgIGRpZFJl
Y2VpdmVEYXRhT2ZMZW5ndGgoc2l6ZSk7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgc2l6
ZSwgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIHsKKyAgICAgICAgaWYgKG1fbGlz
dGVuZXIpCisgICAgICAgICAgICBtX2xpc3RlbmVyLT5kaWRSZWNlaXZlRGF0YU9mTGVuZ3RoKHNp
emUpOwogICAgIH0pOwogCiAgICAgd3JpdGVEYXRhVG9GaWxlKHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihkYXRhKSwgc2l6ZSk7CiB9CiAKLXZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlUmVz
cG9uc2UoKQotewotICAgIGlmIChtX2xpc3RlbmVyKQotICAgICAgICBtX2xpc3RlbmVyLT5kaWRS
ZWNlaXZlUmVzcG9uc2UoKTsKLX0KLQotdm9pZCBDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRh
T2ZMZW5ndGgoaW50IHNpemUpCi17Ci0gICAgaWYgKG1fbGlzdGVuZXIpCi0gICAgICAgIG1fbGlz
dGVuZXItPmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgoc2l6ZSk7Ci19Ci0KLXZvaWQgQ3VybERvd25s
b2FkOjpkaWRGaW5pc2goKQordm9pZCBDdXJsRG93bmxvYWQ6OnN1Y2Nlc3MoKQogewogICAgIGNs
b3NlRmlsZSgpOwogICAgIG1vdmVGaWxlVG9EZXN0aW5hdGlvbigpOwotCi0gICAgaWYgKG1fbGlz
dGVuZXIpCi0gICAgICAgIG1fbGlzdGVuZXItPmRpZEZpbmlzaCgpOwogfQogCi12b2lkIEN1cmxE
b3dubG9hZDo6ZGlkRmFpbCgpCit2b2lkIEN1cmxEb3dubG9hZDo6Y2xlYW51cCgpCiB7CiAgICAg
Y2xvc2VGaWxlKCk7CiAgICAgewpAQCAtMjMxLDkgKzIyNyw2IEBAIHZvaWQgQ3VybERvd25sb2Fk
OjpkaWRGYWlsKCkKICAgICAgICAgaWYgKG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSkKICAgICAg
ICAgICAgIGRlbGV0ZUZpbGUobV90ZW1wUGF0aCk7CiAgICAgfQotCi0gICAgaWYgKG1fbGlzdGVu
ZXIpCi0gICAgICAgIG1fbGlzdGVuZXItPmRpZEZhaWwoKTsKIH0KIAogc2l6ZV90IEN1cmxEb3du
bG9hZDo6d3JpdGVDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIs
IHZvaWQqIGRhdGEpCkBAIC0yNDEsNyArMjM0LDcgQEAgc2l6ZV90IEN1cmxEb3dubG9hZDo6d3Jp
dGVDYWxsYmFjayhjaGFyKiBwdHIsIHNpemVfdCBzaXplLCBzaXplX3Qgbm1lbWIsIHZvaWQqIGQK
ICAgICBzaXplX3QgdG90YWxTaXplID0gc2l6ZSAqIG5tZW1iOwogICAgIEN1cmxEb3dubG9hZCog
ZG93bmxvYWQgPSByZWludGVycHJldF9jYXN0PEN1cmxEb3dubG9hZCo+KGRhdGEpOwogCi0gICAg
aWYgKGRvd25sb2FkKQorICAgIGlmIChkb3dubG9hZCAmJiAhZG93bmxvYWQtPm1fY2FuY2VsbGVk
KQogICAgICAgICBkb3dubG9hZC0+ZGlkUmVjZWl2ZURhdGEoc3RhdGljX2Nhc3Q8dm9pZCo+KHB0
ciksIHRvdGFsU2l6ZSk7CiAKICAgICByZXR1cm4gdG90YWxTaXplOwpAQCAtMjUyLDM4ICsyNDUs
MTUgQEAgc2l6ZV90IEN1cmxEb3dubG9hZDo6aGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLCBzaXpl
X3Qgc2l6ZSwgc2l6ZV90IG5tZW1iLCB2b2lkKgogICAgIHNpemVfdCB0b3RhbFNpemUgPSBzaXpl
ICogbm1lbWI7CiAgICAgQ3VybERvd25sb2FkKiBkb3dubG9hZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Q3VybERvd25sb2FkKj4oZGF0YSk7CiAKLSAgICBTdHJpbmcgaGVhZGVyKHN0YXRpY19jYXN0PGNv
bnN0IGNoYXIqPihwdHIpLCB0b3RhbFNpemUpOworICAgIGlmIChkb3dubG9hZCAmJiAhZG93bmxv
YWQtPm1fY2FuY2VsbGVkKSB7CisgICAgICAgIFN0cmluZyBoZWFkZXIoc3RhdGljX2Nhc3Q8Y29u
c3QgY2hhcio+KHB0ciksIHRvdGFsU2l6ZSk7CiAKLSAgICBpZiAoZG93bmxvYWQpCiAgICAgICAg
IGRvd25sb2FkLT5kaWRSZWNlaXZlSGVhZGVyKGhlYWRlcik7CisgICAgfQogCiAgICAgcmV0dXJu
IHRvdGFsU2l6ZTsKIH0KIAotdm9pZCBDdXJsRG93bmxvYWQ6OmRvd25sb2FkRmluaXNoZWRDYWxs
YmFjayhDdXJsRG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGlmIChkb3dubG9hZCkKLSAgICAg
ICAgZG93bmxvYWQtPmRpZEZpbmlzaCgpOwotfQotCi12b2lkIEN1cmxEb3dubG9hZDo6ZG93bmxv
YWRGYWlsZWRDYWxsYmFjayhDdXJsRG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGlmIChkb3du
bG9hZCkKLSAgICAgICAgZG93bmxvYWQtPmRpZEZhaWwoKTsKLX0KLQotdm9pZCBDdXJsRG93bmxv
YWQ6OnJlY2VpdmVkRGF0YUNhbGxiYWNrKEN1cmxEb3dubG9hZCogZG93bmxvYWQsIGludCBzaXpl
KQotewotICAgIGlmIChkb3dubG9hZCkKLSAgICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRh
T2ZMZW5ndGgoc2l6ZSk7Ci19Ci0KLXZvaWQgQ3VybERvd25sb2FkOjpyZWNlaXZlZFJlc3BvbnNl
Q2FsbGJhY2soQ3VybERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBpZiAoZG93bmxvYWQpCi0g
ICAgICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlUmVzcG9uc2UoKTsKLX0KLQogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93
bmxvYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxv
YWQuaAppbmRleCAzZGE1NGFlNzgyMS4uZjAwYzgzNTZjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKQEAgLTY1LDcgKzY1
LDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGdldFRlbXBQYXRoKCkgY29uc3Q7CiAgICAgU3Ry
aW5nIGdldFVybCgpIGNvbnN0OwotICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgZ2V0UmVz
cG9uc2UoKSBjb25zdDsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIGdldFJlc3BvbnNlKCkgY29uc3Q7
CiAKICAgICBib29sIGRlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoKSBjb25zdCB7IHJldHVybiBtX2Rl
bGV0ZXNGaWxlVXBvbkZhaWx1cmU7IH0KICAgICB2b2lkIHNldERlbGV0ZXNGaWxlVXBvbkZhaWx1
cmUoYm9vbCBkZWxldGVzRmlsZVVwb25GYWlsdXJlKSB7IG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVy
ZSA9IGRlbGV0ZXNGaWxlVXBvbkZhaWx1cmU7IH0KQEAgLTg0LDI1ICs4NCwxOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEodm9pZCogZGF0YSwgaW50IHNpemUpOwogCiAgICAg
Ly8gQ2FsbGVkIG9uIG1haW4gdGhyZWFkLgotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKCk7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9mTGVuZ3RoKGludCBzaXplKTsKLSAgICB2b2lkIGRp
ZEZpbmlzaCgpOwotICAgIHZvaWQgZGlkRmFpbCgpOworICAgIHZvaWQgc3VjY2VzcygpOworICAg
IHZvaWQgY2xlYW51cCgpOwogCiAgICAgc3RhdGljIHNpemVfdCB3cml0ZUNhbGxiYWNrKGNoYXIq
IHB0ciwgc2l6ZV90LCBzaXplX3Qgbm1lbWIsIHZvaWQqIGRhdGEpOwogICAgIHN0YXRpYyBzaXpl
X3QgaGVhZGVyQ2FsbGJhY2soY2hhciogcHRyLCBzaXplX3QsIHNpemVfdCBubWVtYiwgdm9pZCog
ZGF0YSk7CiAKLSAgICBzdGF0aWMgdm9pZCBkb3dubG9hZEZpbmlzaGVkQ2FsbGJhY2soQ3VybERv
d25sb2FkKik7Ci0gICAgc3RhdGljIHZvaWQgZG93bmxvYWRGYWlsZWRDYWxsYmFjayhDdXJsRG93
bmxvYWQqKTsKLSAgICBzdGF0aWMgdm9pZCByZWNlaXZlZERhdGFDYWxsYmFjayhDdXJsRG93bmxv
YWQqLCBpbnQgc2l6ZSk7Ci0gICAgc3RhdGljIHZvaWQgcmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNr
KEN1cmxEb3dubG9hZCopOwotCiAgICAgQ3VybEhhbmRsZSBtX2N1cmxIYW5kbGU7CiAgICAgQ3Vy
bEpvYlRpY2tldCBtX2pvYjsKKyAgICBib29sIG1fY2FuY2VsbGVkOwogICAgIFN0cmluZyBtX3Rl
bXBQYXRoOwogICAgIFN0cmluZyBtX2Rlc3RpbmF0aW9uOwotICAgIFdlYkNvcmU6OlBsYXRmb3Jt
RmlsZUhhbmRsZSBtX3RlbXBIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Ci0g
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOworICAgIFBsYXRmb3JtRmls
ZUhhbmRsZSBtX3RlbXBIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07CisgICAg
UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogICAgIGJvb2wgbV9kZWxldGVzRmlsZVVwb25G
YWlsdXJlIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIExvY2sgbV9tdXRleDsKICAgICBDdXJsRG93
bmxvYWRMaXN0ZW5lciogbV9saXN0ZW5lciB7IG51bGxwdHIgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>315972</attachid>
            <date>2017-07-19 22:31:12 -0700</date>
            <delta_ts>2017-08-14 13:37:09 -0700</delta_ts>
            <desc>style</desc>
            <filename>134393-4.diff</filename>
            <type>text/plain</type>
            <size>9892</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1N2M4NWUyYjBiOS4uYWMzMjQ0NjM2OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxNy0wNy0xOSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgY3VybDogRG9uJ3QgdHJ5IHRvIGNsb3NlICYgbW92ZSB0aGUgZG93
bmxvYWRlZCBmaWxlIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQzOTMKKworICAgICAgICBBZnRlciByZWZhY3RvcmluZyB0aGUgYXJjaGl0
ZWN0dXJlIG9mIGpvYiBtYW5hZ2VyLCB0YXNrcworICAgICAgICBhcmUgbW9yZSBjbGVhciB3aGVu
IGl0IHdvdWxkIGJlIGNhbGxlZC4gQWxzbyB3aXRoIHVzZSBvZgorICAgICAgICBsYW1iZGEgd2hl
biBzdGFydGluZyB0aGUgZG93bmxvYWQsIHRoZSBsaWZlY3ljbGUgb2YgdGhlCisgICAgICAgIGRv
d25sb2FkIG9iamVjdCBpcyBtb3JlIGNsZWFyIGFuZCBjb25maWRlbnQuIFRoZSBkb3dubG9hZGVk
CisgICAgICAgIGZpbGUgd2lsbCBiZSBtb3ZlIHRvIHRoZSBkZXN0aW5hdGlvbiBvbiBzdWNjZXNz
KCkgb3IKKyAgICAgICAgZGVsZXRlZCBvbiBmYWlsdXJlIG9yIGNhbmNlbGF0aW9uLgorCisgICAg
ICAgIEFsc28gZGVsZXRlZCB1bnVzZWQgcHJpdmF0ZSBzdGF0aWMgbWV0aG9kcy4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsRG93bmxvYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
Ojp+Q3VybERvd25sb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpjYW5jZWwpOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybERvd25sb2FkOjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q3VybERv
d25sb2FkOjpzdWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6Y2xlYW51
cCk6CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OndyaXRlQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpoZWFkZXJDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRGaW5pc2gpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjpkaWRGYWlsKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZG93bmxvYWRGaW5pc2hlZENhbGxiYWNrKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9hZDo6ZG93bmxvYWRGYWlsZWRD
YWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OnJlY2Vp
dmVkRGF0YUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cmxEb3dubG9h
ZDo6cmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmg6CisKIDIwMTctMDctMTggIEJhc3VrZSBTdXp1
a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBNb3ZlIGRldGFp
bCBpbXBsZW1lbnRhdGlvbiBmcm9tIFJlc291cmNlSGFuZGxlIHRvIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1
cmxEb3dubG9hZC5jcHAKaW5kZXggMWVmOTY4NTIwNDEuLjY1NTI0NGJlN2UzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNw
cApAQCAtNDksNyArNDksNiBAQCBDdXJsRG93bmxvYWQ6OkN1cmxEb3dubG9hZCgpID0gZGVmYXVs
dDsKIEN1cmxEb3dubG9hZDo6fkN1cmxEb3dubG9hZCgpCiB7CiAgICAgY2xvc2VGaWxlKCk7Ci0g
ICAgbW92ZUZpbGVUb0Rlc3RpbmF0aW9uKCk7CiB9CiAKIHZvaWQgQ3VybERvd25sb2FkOjppbml0
KEN1cmxEb3dubG9hZExpc3RlbmVyKiBsaXN0ZW5lciwgY29uc3QgVVJMJiB1cmwpCkBAIC04Nywx
NiArODYsMjUgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdGVuZXIq
IGxpc3RlbmVyLCBSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFIKIGJvb2wgQ3VybERvd25sb2FkOjpz
dGFydCgpCiB7CiAgICAgbV9qb2IgPSBDdXJsSm9iTWFuYWdlcjo6c2luZ2xldG9uKCkuYWRkKG1f
Y3VybEhhbmRsZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oQ3VybEpv
YlJlc3VsdCByZXN1bHQpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworCiAgICAgICAgIHN3aXRjaCAocmVzdWx0KSB7CiAgICAgICAgIGNhc2UgQ3VybEpvYlJlc3Vs
dDo6RG9uZToKLSAgICAgICAgICAgIGRpZEZpbmlzaCgpOworICAgICAgICAgICAgc3VjY2Vzcygp
OworCisgICAgICAgICAgICBpZiAobV9saXN0ZW5lcikKKyAgICAgICAgICAgICAgICBtX2xpc3Rl
bmVyLT5kaWRGaW5pc2goKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQ3Vy
bEpvYlJlc3VsdDo6RXJyb3I6Ci0gICAgICAgICAgICBkaWRGYWlsKCk7CisgICAgICAgICAgICBj
bGVhbnVwKCk7CisKKyAgICAgICAgICAgIGlmIChtX2xpc3RlbmVyKQorICAgICAgICAgICAgICAg
IG1fbGlzdGVuZXItPmRpZEZhaWwoKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNh
c2UgQ3VybEpvYlJlc3VsdDo6Q2FuY2VsbGVkOgorICAgICAgICAgICAgY2xlYW51cCgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9KTsKQEAgLTEwNSw2ICsxMTMsNyBAQCBi
b29sIEN1cmxEb3dubG9hZDo6c3RhcnQoKQogCiBib29sIEN1cmxEb3dubG9hZDo6Y2FuY2VsKCkK
IHsKKyAgICBtX2NhbmNlbGxlZCA9IHRydWU7CiAgICAgQ3VybEpvYk1hbmFnZXI6OnNpbmdsZXRv
bigpLmNhbmNlbChtX2pvYik7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNjcsNjIgKzE3Niw0
OSBAQCB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhl
YWRlcikKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX211dGV4KTsKIAogICAgIGlmIChoZWFkZXIg
PT0gIlxyXG4iIHx8IGhlYWRlciA9PSAiXG4iKSB7Ci0KICAgICAgICAgbG9uZyBodHRwQ29kZSA9
IDA7CiAgICAgICAgIG1fY3VybEhhbmRsZS5nZXRSZXNwb25zZUNvZGUoaHR0cENvZGUpOwogCiAg
ICAgICAgIGlmIChodHRwQ29kZSA+PSAyMDAgJiYgaHR0cENvZGUgPCAzMDApIHsKICAgICAgICAg
ICAgIFVSTCB1cmwgPSBtX2N1cmxIYW5kbGUuZ2V0RWZmZWN0aXZlVVJMKCk7Ci0gICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB1cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCksIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICAgICAgICAgIG1fcmVzcG9uc2Uu
c2V0VVJMKHVybCk7Ci0gICAgICAgICAgICAgICAgbV9yZXNwb25zZS5zZXRNaW1lVHlwZShleHRy
YWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKG1fcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpDb250ZW50VHlwZSkpKTsKLSAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlLnNl
dFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKG1fcmVzcG9uc2Uu
aHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDb250ZW50VHlwZSkpKTsKKyAgICAgICAg
ICAgIG1fcmVzcG9uc2Uuc2V0VVJMKHVybCk7CisgICAgICAgICAgICBtX3Jlc3BvbnNlLnNldE1p
bWVUeXBlKGV4dHJhY3RNSU1FVHlwZUZyb21NZWRpYVR5cGUobV9yZXNwb25zZS5odHRwSGVhZGVy
RmllbGQoSFRUUEhlYWRlck5hbWU6OkNvbnRlbnRUeXBlKSkpOworICAgICAgICAgICAgbV9yZXNw
b25zZS5zZXRUZXh0RW5jb2RpbmdOYW1lKGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShtX3Jl
c3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q29udGVudFR5cGUpKSk7CiAK
LSAgICAgICAgICAgICAgICBkaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAg
ICAgICAgICAgICAgIGlmIChtX2xpc3RlbmVyKQorICAgICAgICAgICAgICAgICAgICBtX2xpc3Rl
bmVyLT5kaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpXSgpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogT3RoZXIgZXJy
b3IgaGFuZGxpbmcgaXMgcmVxdWlyZWQKKyAgICAgICAgICAgICAgICBjYW5jZWwoKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgaGVhZGVyID0gaGVhZGVyLmlzb2xhdGVkQ29weSgpLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGludCBzcGxpdFBvcyA9IGhlYWRlci5m
aW5kKCI6Iik7Ci0gICAgICAgICAgICBpZiAoc3BsaXRQb3MgIT0gLTEpCi0gICAgICAgICAgICAg
ICAgbV9yZXNwb25zZS5zZXRIVFRQSGVhZGVyRmllbGQoaGVhZGVyLmxlZnQoc3BsaXRQb3MpLCBo
ZWFkZXIuc3Vic3RyaW5nKHNwbGl0UG9zICsgMSkuc3RyaXBXaGl0ZVNwYWNlKCkpOwotICAgICAg
ICB9KTsKKyAgICAgICAgYXV0byBwb3NpdGlvbiA9IGhlYWRlci5maW5kKCI6Iik7CisgICAgICAg
IGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgICAgIG1fcmVzcG9uc2Uuc2V0SFRU
UEhlYWRlckZpZWxkKGhlYWRlci5sZWZ0KHBvc2l0aW9uKSwgaGVhZGVyLnN1YnN0cmluZyhwb3Np
dGlvbiArIDEpLnN0cmlwV2hpdGVTcGFjZSgpKTsKICAgICB9CiB9CiAKIHZvaWQgQ3VybERvd25s
b2FkOjpkaWRSZWNlaXZlRGF0YSh2b2lkKiBkYXRhLCBpbnQgc2l6ZSkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX211dGV4KTsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHNpemUs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBkaWRSZWNlaXZlRGF0
YU9mTGVuZ3RoKHNpemUpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHNpemUsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oKSB7CisgICAgICAgIGlmIChtX2xpc3RlbmVyKQor
ICAgICAgICAgICAgbV9saXN0ZW5lci0+ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChzaXplKTsKICAg
ICB9KTsKIAogICAgIHdyaXRlRGF0YVRvRmlsZShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0
YSksIHNpemUpOwogfQogCi12b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkK
LXsKLSAgICBpZiAobV9saXN0ZW5lcikKLSAgICAgICAgbV9saXN0ZW5lci0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKCk7Ci19Ci0KLXZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YU9mTGVuZ3Ro
KGludCBzaXplKQotewotICAgIGlmIChtX2xpc3RlbmVyKQotICAgICAgICBtX2xpc3RlbmVyLT5k
aWRSZWNlaXZlRGF0YU9mTGVuZ3RoKHNpemUpOwotfQotCi12b2lkIEN1cmxEb3dubG9hZDo6ZGlk
RmluaXNoKCkKK3ZvaWQgQ3VybERvd25sb2FkOjpzdWNjZXNzKCkKIHsKICAgICBjbG9zZUZpbGUo
KTsKICAgICBtb3ZlRmlsZVRvRGVzdGluYXRpb24oKTsKLQotICAgIGlmIChtX2xpc3RlbmVyKQot
ICAgICAgICBtX2xpc3RlbmVyLT5kaWRGaW5pc2goKTsKIH0KIAotdm9pZCBDdXJsRG93bmxvYWQ6
OmRpZEZhaWwoKQordm9pZCBDdXJsRG93bmxvYWQ6OmNsZWFudXAoKQogewogICAgIGNsb3NlRmls
ZSgpOwogICAgIHsKQEAgLTIzMSw5ICsyMjcsNiBAQCB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkRmFp
bCgpCiAgICAgICAgIGlmIChtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmUpCiAgICAgICAgICAgICBk
ZWxldGVGaWxlKG1fdGVtcFBhdGgpOwogICAgIH0KLQotICAgIGlmIChtX2xpc3RlbmVyKQotICAg
ICAgICBtX2xpc3RlbmVyLT5kaWRGYWlsKCk7CiB9CiAKIHNpemVfdCBDdXJsRG93bmxvYWQ6Ondy
aXRlQ2FsbGJhY2soY2hhciogcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1iLCB2b2lkKiBk
YXRhKQpAQCAtMjQxLDcgKzIzNCw3IEBAIHNpemVfdCBDdXJsRG93bmxvYWQ6OndyaXRlQ2FsbGJh
Y2soY2hhciogcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1iLCB2b2lkKiBkCiAgICAgc2l6
ZV90IHRvdGFsU2l6ZSA9IHNpemUgKiBubWVtYjsKICAgICBDdXJsRG93bmxvYWQqIGRvd25sb2Fk
ID0gcmVpbnRlcnByZXRfY2FzdDxDdXJsRG93bmxvYWQqPihkYXRhKTsKIAotICAgIGlmIChkb3du
bG9hZCkKKyAgICBpZiAoZG93bmxvYWQgJiYgIWRvd25sb2FkLT5tX2NhbmNlbGxlZCkKICAgICAg
ICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhKHN0YXRpY19jYXN0PHZvaWQqPihwdHIpLCB0b3Rh
bFNpemUpOwogCiAgICAgcmV0dXJuIHRvdGFsU2l6ZTsKQEAgLTI1MiwzOCArMjQ1LDE1IEBAIHNp
emVfdCBDdXJsRG93bmxvYWQ6OmhlYWRlckNhbGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90IHNpemUs
IHNpemVfdCBubWVtYiwgdm9pZCoKICAgICBzaXplX3QgdG90YWxTaXplID0gc2l6ZSAqIG5tZW1i
OwogICAgIEN1cmxEb3dubG9hZCogZG93bmxvYWQgPSByZWludGVycHJldF9jYXN0PEN1cmxEb3du
bG9hZCo+KGRhdGEpOwogCi0gICAgU3RyaW5nIGhlYWRlcihzdGF0aWNfY2FzdDxjb25zdCBjaGFy
Kj4ocHRyKSwgdG90YWxTaXplKTsKKyAgICBpZiAoZG93bmxvYWQgJiYgIWRvd25sb2FkLT5tX2Nh
bmNlbGxlZCkgeworICAgICAgICBTdHJpbmcgaGVhZGVyKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIq
PihwdHIpLCB0b3RhbFNpemUpOwogCi0gICAgaWYgKGRvd25sb2FkKQogICAgICAgICBkb3dubG9h
ZC0+ZGlkUmVjZWl2ZUhlYWRlcihoZWFkZXIpOworICAgIH0KIAogICAgIHJldHVybiB0b3RhbFNp
emU7CiB9CiAKLXZvaWQgQ3VybERvd25sb2FkOjpkb3dubG9hZEZpbmlzaGVkQ2FsbGJhY2soQ3Vy
bERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBpZiAoZG93bmxvYWQpCi0gICAgICAgIGRvd25s
b2FkLT5kaWRGaW5pc2goKTsKLX0KLQotdm9pZCBDdXJsRG93bmxvYWQ6OmRvd25sb2FkRmFpbGVk
Q2FsbGJhY2soQ3VybERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBpZiAoZG93bmxvYWQpCi0g
ICAgICAgIGRvd25sb2FkLT5kaWRGYWlsKCk7Ci19Ci0KLXZvaWQgQ3VybERvd25sb2FkOjpyZWNl
aXZlZERhdGFDYWxsYmFjayhDdXJsRG93bmxvYWQqIGRvd25sb2FkLCBpbnQgc2l6ZSkKLXsKLSAg
ICBpZiAoZG93bmxvYWQpCi0gICAgICAgIGRvd25sb2FkLT5kaWRSZWNlaXZlRGF0YU9mTGVuZ3Ro
KHNpemUpOwotfQotCi12b2lkIEN1cmxEb3dubG9hZDo6cmVjZWl2ZWRSZXNwb25zZUNhbGxiYWNr
KEN1cmxEb3dubG9hZCogZG93bmxvYWQpCi17Ci0gICAgaWYgKGRvd25sb2FkKQotICAgICAgICBk
b3dubG9hZC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKCk7Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKaW5k
ZXggM2RhNTRhZTc4MjEuLmYwMGM4MzU2YzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oCkBAIC02NSw3ICs2NSw3IEBAIHB1
YmxpYzoKIAogICAgIFN0cmluZyBnZXRUZW1wUGF0aCgpIGNvbnN0OwogICAgIFN0cmluZyBnZXRV
cmwoKSBjb25zdDsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGdldFJlc3BvbnNlKCkg
Y29uc3Q7CisgICAgUmVzb3VyY2VSZXNwb25zZSBnZXRSZXNwb25zZSgpIGNvbnN0OwogCiAgICAg
Ym9vbCBkZWxldGVzRmlsZVVwb25GYWlsdXJlKCkgY29uc3QgeyByZXR1cm4gbV9kZWxldGVzRmls
ZVVwb25GYWlsdXJlOyB9CiAgICAgdm9pZCBzZXREZWxldGVzRmlsZVVwb25GYWlsdXJlKGJvb2wg
ZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSkgeyBtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmUgPSBkZWxl
dGVzRmlsZVVwb25GYWlsdXJlOyB9CkBAIC04NCwyNSArODQsMTkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhKHZvaWQqIGRhdGEsIGludCBzaXplKTsKIAogICAgIC8vIENhbGxl
ZCBvbiBtYWluIHRocmVhZC4KLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSgpOwotICAgIHZv
aWQgZGlkUmVjZWl2ZURhdGFPZkxlbmd0aChpbnQgc2l6ZSk7Ci0gICAgdm9pZCBkaWRGaW5pc2go
KTsKLSAgICB2b2lkIGRpZEZhaWwoKTsKKyAgICB2b2lkIHN1Y2Nlc3MoKTsKKyAgICB2b2lkIGNs
ZWFudXAoKTsKIAogICAgIHN0YXRpYyBzaXplX3Qgd3JpdGVDYWxsYmFjayhjaGFyKiBwdHIsIHNp
emVfdCwgc2l6ZV90IG5tZW1iLCB2b2lkKiBkYXRhKTsKICAgICBzdGF0aWMgc2l6ZV90IGhlYWRl
ckNhbGxiYWNrKGNoYXIqIHB0ciwgc2l6ZV90LCBzaXplX3Qgbm1lbWIsIHZvaWQqIGRhdGEpOwog
Ci0gICAgc3RhdGljIHZvaWQgZG93bmxvYWRGaW5pc2hlZENhbGxiYWNrKEN1cmxEb3dubG9hZCop
OwotICAgIHN0YXRpYyB2b2lkIGRvd25sb2FkRmFpbGVkQ2FsbGJhY2soQ3VybERvd25sb2FkKik7
Ci0gICAgc3RhdGljIHZvaWQgcmVjZWl2ZWREYXRhQ2FsbGJhY2soQ3VybERvd25sb2FkKiwgaW50
IHNpemUpOwotICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkUmVzcG9uc2VDYWxsYmFjayhDdXJsRG93
bmxvYWQqKTsKLQogICAgIEN1cmxIYW5kbGUgbV9jdXJsSGFuZGxlOwogICAgIEN1cmxKb2JUaWNr
ZXQgbV9qb2I7CisgICAgYm9vbCBtX2NhbmNlbGxlZDsKICAgICBTdHJpbmcgbV90ZW1wUGF0aDsK
ICAgICBTdHJpbmcgbV9kZXN0aW5hdGlvbjsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybUZpbGVIYW5k
bGUgbV90ZW1wSGFuZGxlIHsgaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OwotICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgbV9yZXNwb25zZTsKKyAgICBQbGF0Zm9ybUZpbGVIYW5kbGUg
bV90ZW1wSGFuZGxlIHsgaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworICAgIFJlc291cmNl
UmVzcG9uc2UgbV9yZXNwb25zZTsKICAgICBib29sIG1fZGVsZXRlc0ZpbGVVcG9uRmFpbHVyZSB7
IGZhbHNlIH07CiAgICAgbXV0YWJsZSBMb2NrIG1fbXV0ZXg7CiAgICAgQ3VybERvd25sb2FkTGlz
dGVuZXIqIG1fbGlzdGVuZXIgeyBudWxscHRyIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324654</attachid>
            <date>2017-10-24 00:13:05 -0700</date>
            <delta_ts>2017-10-25 16:39:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>134393-1.diff</filename>
            <type>text/plain</type>
            <size>3293</size>
            <attacher name="Basuke Suzuki">basuke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZDcwMDlhN2Y4MC4uOWRlMGM0MmI0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNy0xMC0yNCAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29u
eS5jb20+CisKKyAgICAgICAgW0N1cmxdIERlbGV0ZSB0ZW1wb3JhbGx5IGRvd25sb2FkZWQgZmls
ZSB3aGVuIGl0IGNhbmNlbGxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM0MzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmRpZENhbmNlbFRyYW5zZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkN1cmxSZXF1ZXN0Ojp3cml0ZURhdGFUb0Rvd25sb2FkRmlsZUlmRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsUmVxdWVzdDo6Y2xvc2VEb3dubG9hZEZpbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OmNsZWFudXBEb3dubG9hZEZpbGUpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oOgorCiAyMDE3LTEwLTIzICBL
ZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIGZpeCB3aW5kb3dzIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKaW5kZXggMzdjZjczMzgzMWYuLjcxNjZhYjkw
NzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
dXJsUmVxdWVzdC5jcHAKQEAgLTM3Nyw2ICszNzcsNyBAQCB2b2lkIEN1cmxSZXF1ZXN0OjpkaWRD
b21wbGV0ZVRyYW5zZmVyKENVUkxjb2RlIHJlc3VsdCkKIHZvaWQgQ3VybFJlcXVlc3Q6OmRpZENh
bmNlbFRyYW5zZmVyKCkKIHsKICAgICBmaW5hbGl6ZVRyYW5zZmVyKCk7CisgICAgY2xlYW51cERv
d25sb2FkRmlsZSgpOwogfQogCiB2b2lkIEN1cmxSZXF1ZXN0OjpmaW5hbGl6ZVRyYW5zZmVyKCkK
QEAgLTYxMCwxMyArNjExLDE1IEBAIGNvbnN0IFN0cmluZyYgQ3VybFJlcXVlc3Q6OmdldERvd25s
b2FkZWRGaWxlUGF0aCgpCiAKIHZvaWQgQ3VybFJlcXVlc3Q6OndyaXRlRGF0YVRvRG93bmxvYWRG
aWxlSWZFbmFibGVkKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewotICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZG93bmxvYWRNdXRleCk7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxv
Y2tlcihtX2Rvd25sb2FkTXV0ZXgpOwogCi0gICAgaWYgKCFtX2lzRW5hYmxlZERvd25sb2FkVG9G
aWxlKQotICAgICAgICByZXR1cm47CisgICAgICAgIGlmICghbV9pc0VuYWJsZWREb3dubG9hZFRv
RmlsZSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2Rvd25sb2FkRmlsZVBhdGgu
aXNFbXB0eSgpKQotICAgICAgICBtX2Rvd25sb2FkRmlsZVBhdGggPSBvcGVuVGVtcG9yYXJ5Rmls
ZSgiZG93bmxvYWQiLCBtX2Rvd25sb2FkRmlsZUhhbmRsZSk7CisgICAgICAgIGlmIChtX2Rvd25s
b2FkRmlsZVBhdGguaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kb3dubG9hZEZpbGVQYXRoID0g
b3BlblRlbXBvcmFyeUZpbGUoImRvd25sb2FkIiwgbV9kb3dubG9hZEZpbGVIYW5kbGUpOworICAg
IH0KIAogICAgIGlmIChtX2Rvd25sb2FkRmlsZUhhbmRsZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxl
SGFuZGxlKQogICAgICAgICB3cml0ZVRvRmlsZShtX2Rvd25sb2FkRmlsZUhhbmRsZSwgYnVmZmVy
LmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7CkBAIC02MjksMTAgKzYzMiwyMCBAQCB2b2lkIEN1cmxS
ZXF1ZXN0OjpjbG9zZURvd25sb2FkRmlsZSgpCiAgICAgaWYgKG1fZG93bmxvYWRGaWxlSGFuZGxl
ID09IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdl
YkNvcmU6OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZUhhbmRsZSk7CisgICAgY2xvc2VGaWxlKG1f
ZG93bmxvYWRGaWxlSGFuZGxlKTsKICAgICBtX2Rvd25sb2FkRmlsZUhhbmRsZSA9IGludmFsaWRQ
bGF0Zm9ybUZpbGVIYW5kbGU7CiB9CiAKK3ZvaWQgQ3VybFJlcXVlc3Q6OmNsZWFudXBEb3dubG9h
ZEZpbGUoKQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZG93bmxvYWRNdXRleCk7CisKKyAg
ICBpZiAoIW1fZG93bmxvYWRGaWxlUGF0aC5pc0VtcHR5KCkpIHsKKyAgICAgICAgZGVsZXRlRmls
ZShtX2Rvd25sb2FkRmlsZVBhdGgpOworICAgICAgICBtX2Rvd25sb2FkRmlsZVBhdGggPSBTdHJp
bmcoKTsKKyAgICB9Cit9CisKIENVUkxjb2RlIEN1cmxSZXF1ZXN0Ojp3aWxsU2V0dXBTc2xDdHhD
YWxsYmFjayhDVVJMKiwgdm9pZCogc3NsQ3R4LCB2b2lkKiB1c2VyRGF0YSkKIHsKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q3VybFJlcXVlc3QqPih1c2VyRGF0YSktPndpbGxTZXR1cFNzbEN0eChz
c2xDdHgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0N1cmxSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3Vy
bFJlcXVlc3QuaAppbmRleCAzMTkxM2ZlNTUwOS4uMjJiYjlkYmFjNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5oCkBAIC0xMTcs
NiArMTE3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEb3dubG9hZAogICAgIHZvaWQgd3JpdGVEYXRh
VG9Eb3dubG9hZEZpbGVJZkVuYWJsZWQoY29uc3QgU2hhcmVkQnVmZmVyJik7CiAgICAgdm9pZCBj
bG9zZURvd25sb2FkRmlsZSgpOworICAgIHZvaWQgY2xlYW51cERvd25sb2FkRmlsZSgpOwogCiAg
ICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb25zIGZvciBjdXJsCiAgICAgc3RhdGljIENVUkxjb2RlIHdp
bGxTZXR1cFNzbEN0eENhbGxiYWNrKENVUkwqLCB2b2lkKiwgdm9pZCopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>