<?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>181927</bug_id>
          
          <creation_ts>2018-01-22 02:00:35 -0800</creation_ts>
          <short_desc>[YARR] Add diagnosis for YarrJIT failures</short_desc>
          <delta_ts>2018-01-28 20:38:45 -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>New Bugs</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1391571</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-22 02:00:35 -0800</bug_when>
    <thetext>[YARR] Add diagnosis for YarrJIT failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391572</commentid>
    <comment_count>1</comment_count>
      <attachid>331905</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-22 02:02:38 -0800</bug_when>
    <thetext>Created attachment 331905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391575</commentid>
    <comment_count>2</comment_count>
      <attachid>331906</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-22 02:10:55 -0800</bug_when>
    <thetext>Created attachment 331906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392224</commentid>
    <comment_count>3</comment_count>
      <attachid>331906</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-01-23 13:28:52 -0800</bug_when>
    <thetext>Comment on attachment 331906
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3505
&gt; +    std::optional&lt;JITFailure&gt; m_shouldFallBack;

Perhaps this should be called m_failureReason

&gt; Source/JavaScriptCore/yarr/YarrJIT.h:53
&gt; +enum class JITFailure {

Perhaps a better name is JITFailureReason?

&gt; Source/JavaScriptCore/yarr/YarrJIT.h:85
&gt; +    void setFallBack(std::optional&lt;JITFailure&gt; fallBack) { m_fallBack = fallBack; }

Perhaps a better name here would be setFallBackWithFailureReason (or something like that), since you failure reason enum is not what you are falling back to, but why you are falling back.  I also think this could take a JITFailure (without the optional), since you never seem to call this with nullopt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392428</commentid>
    <comment_count>4</comment_count>
      <attachid>331906</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-23 20:50:30 -0800</bug_when>
    <thetext>Comment on attachment 331906
Patch

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

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:3505
&gt;&gt; +    std::optional&lt;JITFailure&gt; m_shouldFallBack;
&gt; 
&gt; Perhaps this should be called m_failureReason

Sounds nice, fixed.

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.h:53
&gt;&gt; +enum class JITFailure {
&gt; 
&gt; Perhaps a better name is JITFailureReason?

Nice, fixed.

&gt;&gt; Source/JavaScriptCore/yarr/YarrJIT.h:85
&gt;&gt; +    void setFallBack(std::optional&lt;JITFailure&gt; fallBack) { m_fallBack = fallBack; }
&gt; 
&gt; Perhaps a better name here would be setFallBackWithFailureReason (or something like that), since you failure reason enum is not what you are falling back to, but why you are falling back.  I also think this could take a JITFailure (without the optional), since you never seem to call this with nullopt.

OK, sounds nice. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392431</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-23 20:51:13 -0800</bug_when>
    <thetext>Committed r227469: &lt;https://trac.webkit.org/changeset/227469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392432</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-23 20:52:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/36808871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393958</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-28 20:35:50 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393959</commentid>
    <comment_count>8</comment_count>
      <attachid>332504</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-28 20:35:52 -0800</bug_when>
    <thetext>Created attachment 332504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1393960</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-01-28 20:37:12 -0800</bug_when>
    <thetext>Attachment 332504 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:343:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
Total errors found: 1 in 4 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>1393961</commentid>
    <comment_count>10</comment_count>
      <attachid>332504</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-01-28 20:37:49 -0800</bug_when>
    <thetext>Comment on attachment 332504
Patch

Oops, wrong bug id.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331905</attachid>
            <date>2018-01-22 02:02:38 -0800</date>
            <delta_ts>2018-01-22 02:10:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181927-20180122190237.patch</filename>
            <type>text/plain</type>
            <size>10379</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NTk0NWRhZGNhY2VkMDM4MmM2ZjAxYzg1YWNhYWMwNWM5ZWE2ZDNkLi43YmI4ZjNiMDk1ZWQ5NmI3
NTNiOGNhNmMxMDJjNzJjMjBmMzI5MTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOC0wMS0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbWUFSUl0gQWRkIGRpYWdub3NpcyBmb3IgWWFyckpJVCBmYWlsdXJl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgaXMg
bmljZSBpZiB3ZSBjYW4gc2VlIHRoZSByZWFzb24gd2h5IFlhcnJKSVQgZmFpbHMgdG8gY29tcGls
ZSBhIGdpdmVuIHBhdHRlcm4uCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBZYXJyOjpK
SVRGYWlsdXJlIGFuZCBkdW1wcyBtZXNzYWdlcyBpZiBPcHRpb25zOjpkdW1wQ29tcGlsZWRSZWdF
eHBQYXR0ZXJucyBpcyBzcGVjaWZpZWQuCisKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cC5jcHA6
CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6
Y29tcGlsZU1hdGNoT25seSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAg
KEpTQzo6WWFycjo6WWFyckdlbmVyYXRvcjo6Z2VuZXJhdGVUZXJtKToKKyAgICAgICAgKEpTQzo6
WWFycjo6WWFyckdlbmVyYXRvcjo6YmFja3RyYWNrVGVybSk6CisgICAgICAgIChKU0M6OllhcnI6
OllhcnJHZW5lcmF0b3I6Om9wQ29tcGlsZVBhcmVudGhlc2VzU3VicGF0dGVybik6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OllhcnJHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6WWFycjo6ZHVt
cENvbXBpbGVGYWlsdXJlKToKKyAgICAgICAgKEpTQzo6WWFycjo6aml0Q29tcGlsZSk6CisgICAg
ICAgICogeWFyci9ZYXJySklULmg6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6
OnNldEZhbGxCYWNrKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6ZmFsbEJh
Y2spOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjpjbGVhcik6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OllhcnJDb2RlQmxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjp+WWFyckNvZGVCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OmlzRmFsbEJhY2spOiBEZWxldGVk
LgorCiAyMDE4LTAxLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBhIG5ldyBmZWF0dXJlIGZsYWcgZm9yIEVYVFJBX1pPT01fTU9ERSBhbmQg
cmVpbnRyb2R1Y2UgQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDAyMGI3YmZlODllYmM2NTVkMzFjNWI2YWNmYTFh
YWM5NTE2YmUyYWYuLjZiNjM1ZmVkMDNiMGNhMjI2NjFjNGFjMzRhMzVlY2I3NDcwNzVlNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtMzA4LDcgKzMwOCw3
IEBAIHZvaWQgUmVnRXhwOjpjb21waWxlKFZNKiB2bSwgWWFycjo6WWFyckNoYXJTaXplIGNoYXJT
aXplKQogI2lmIEVOQUJMRShZQVJSX0pJVCkKICAgICBpZiAoIXBhdHRlcm4ubV9jb250YWluc0Jh
Y2tyZWZlcmVuY2VzICYmICFwYXR0ZXJuLmNvbnRhaW5zVW5zaWduZWRMZW5ndGhQYXR0ZXJuKCkg
JiYgVk06OmNhblVzZVJlZ0V4cEpJVCgpKSB7CiAgICAgICAgIFlhcnI6OmppdENvbXBpbGUocGF0
dGVybiwgY2hhclNpemUsIHZtLCBtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICBpZiAoIW1fcmVn
RXhwSklUQ29kZS5pc0ZhbGxCYWNrKCkpIHsKKyAgICAgICAgaWYgKCFtX3JlZ0V4cEpJVENvZGUu
ZmFsbEJhY2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIFJlZ0V4cDo6Y29t
cGlsZU1hdGNoT25seShWTSogdm0sIFlhcnI6OllhcnJDaGFyU2l6ZSBjaGFyU2l6ZSkKICNpZiBF
TkFCTEUoWUFSUl9KSVQpCiAgICAgaWYgKCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJlbmNl
cyAmJiAhcGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIFZNOjpjYW5V
c2VSZWdFeHBKSVQoKSkgewogICAgICAgICBZYXJyOjpqaXRDb21waWxlKHBhdHRlcm4sIGNoYXJT
aXplLCB2bSwgbV9yZWdFeHBKSVRDb2RlLCBZYXJyOjpNYXRjaE9ubHkpOwotICAgICAgICBpZiAo
IW1fcmVnRXhwSklUQ29kZS5pc0ZhbGxCYWNrKCkpIHsKKyAgICAgICAgaWYgKCFtX3JlZ0V4cEpJ
VENvZGUuZmFsbEJhY2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKaW5kZXggMDNmYzA2ZGQ3ZGZhMjNmMzI1NGYzZjQyNTg2YjhmNWM1NjZlNTM0Ny4uMTQy
MjdlZmI5NDY0ZGMxYjJjNDE2M2FhMjBkOWZjZTMzYzEzY2FhMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTE3NDksNyArMTc0OSw3IEBAIGNsYXNzIFlhcnJHZW5l
cmF0b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgY2FzZSBQYXR0ZXJuVGVy
bTo6VHlwZVBhcmVudGhldGljYWxBc3NlcnRpb246CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBjYXNlIFBhdHRlcm5UZXJtOjpUeXBlQmFja1JlZmVy
ZW5jZToKLSAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVlOworICAgICAgICAgICAg
bV9zaG91bGRGYWxsQmFjayA9IEpJVEZhaWx1cmU6OkJhY2tSZWZlcmVuY2U7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBQYXR0ZXJuVGVybTo6VHlwZURvdFN0YXJFbmNsb3N1cmU6
CiAgICAgICAgICAgICBnZW5lcmF0ZURvdFN0YXJFbmNsb3N1cmUob3BJbmRleCk7CkBAIC0xODIw
LDcgKzE4MjAsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxl
ciB7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFBhdHRlcm5UZXJtOjpUeXBl
QmFja1JlZmVyZW5jZToKLSAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVlOworICAg
ICAgICAgICAgbV9zaG91bGRGYWxsQmFjayA9IEpJVEZhaWx1cmU6OkJhY2tSZWZlcmVuY2U7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTMwMDQsOSArMzAwNCw3IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAg
Ly8gbmVlZCB0byByZXN0b3JlIHRoZSBjYXB0dXJlIGZyb20gdGhlIGZpcnN0IHN1YnBhdHRlcm4g
dXBvbiBhCiAgICAgICAgIC8vIGZhaWx1cmUgaW4gdGhlIHNlY29uZC4KICAgICAgICAgaWYgKHRl
cm0tPnF1YW50aXR5TWluQ291bnQgJiYgdGVybS0+cXVhbnRpdHlNaW5Db3VudCAhPSB0ZXJtLT5x
dWFudGl0eU1heENvdW50KSB7Ci0gICAgICAgICAgICBpZiAoT3B0aW9uczo6ZHVtcENvbXBpbGVk
UmVnRXhwUGF0dGVybnMoKSkKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiQ2FuJ3QgSklUIGEg
dmFyaWFibGUgY291bnRlZCBwYXJlbnRoZXNpcyB3aXRoIGEgbm9uLXplcm8gbWluaW11bVxuIik7
Ci0gICAgICAgICAgICBtX3Nob3VsZEZhbGxCYWNrID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fc2hv
dWxkRmFsbEJhY2sgPSBKSVRGYWlsdXJlOjpWYXJpYWJsZUNvdW50ZWRQYXJlbnRoZXNpc1dpdGhO
b25aZXJvTWluaW11bTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSBpZiAodGVybS0+
cXVhbnRpdHlNYXhDb3VudCA9PSAxICYmICF0ZXJtLT5wYXJlbnRoZXNlcy5pc0NvcHkpIHsKICAg
ICAgICAgICAgIC8vIFNlbGVjdCB0aGUgJ09uY2UnIG5vZGVzLgpAQCAtMzAyOCw3ICszMDI2LDcg
QEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgICAg
ICAgICAgLy8gV2Ugb25seSBoYW5kbGUgZ2VuZXJpYyBwYXJlbnRoZXNpcyB3aXRoIGdyZWVkeSBj
b3VudHMuCiAgICAgICAgICAgICBpZiAodGVybS0+cXVhbnRpdHlUeXBlICE9IFF1YW50aWZpZXJH
cmVlZHkpIHsKICAgICAgICAgICAgICAgICAvLyBUaGlzIHN1YnBhdHRlcm4gaXMgbm90IHN1cHBv
cnRlZCBieSB0aGUgSklULgotICAgICAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVl
OworICAgICAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSBKSVRGYWlsdXJlOjpOb25HcmVl
ZHlHZW5lcmljUGFyZW50aGVzaXM7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQogCkBAIC0zMDQ2LDcgKzMwNDQsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHJpdmF0
ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgICAgICB9CiAjZWxzZQogICAgICAgICAgICAgLy8g
VGhpcyBzdWJwYXR0ZXJuIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpJVC4KLSAgICAgICAgICAg
IG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVlOworICAgICAgICAgICAgbV9zaG91bGRGYWxsQmFjayA9
IEpJVEZhaWx1cmU6OkdlbmVyaWNQYXJlbnRoZXNpczsKICAgICAgICAgICAgIHJldHVybjsKICNl
bmRpZgogICAgICAgICB9CkBAIC0zMzk3LDcgKzMzOTUsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIDogbV92bSh2bSkKICAgICAgICAg
LCBtX3BhdHRlcm4ocGF0dGVybikKICAgICAgICAgLCBtX2NoYXJTaXplKGNoYXJTaXplKQotICAg
ICAgICAsIG1fc2hvdWxkRmFsbEJhY2soZmFsc2UpCiAgICAgICAgICwgbV9kZWNvZGVTdXJyb2dh
dGVQYWlycyhtX2NoYXJTaXplID09IENoYXIxNiAmJiBtX3BhdHRlcm4udW5pY29kZSgpKQogICAg
ICAgICAsIG1fdW5pY29kZUlnbm9yZUNhc2UobV9wYXR0ZXJuLnVuaWNvZGUoKSAmJiBtX3BhdHRl
cm4uaWdub3JlQ2FzZSgpKQogICAgICAgICAsIG1fY2Fub25pY2FsTW9kZShtX3BhdHRlcm4udW5p
Y29kZSgpID8gQ2Fub25pY2FsTW9kZTo6VW5pY29kZSA6IENhbm9uaWNhbE1vZGU6OlVDUzIpCkBA
IC0zNDEyLDcgKzM0MDksNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fz
c2VtYmxlciB7CiAgICAgewogI2lmbmRlZiBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUwogICAgICAg
ICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewotICAgICAgICAgICAgaml0T2JqZWN0LnNl
dEZhbGxCYWNrKHRydWUpOworICAgICAgICAgICAgaml0T2JqZWN0LnNldEZhbGxCYWNrKEpJVEZh
aWx1cmU6OkRlY29kZVN1cnJvZ2F0ZVBhaXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAjZW5kaWYKQEAgLTM0MjIsNyArMzQxOSw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBw
cml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgb3BDb21waWxlQm9keShtX3BhdHRlcm4u
bV9ib2R5KTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX3Nob3VsZEZhbGxCYWNrKSB7Ci0gICAg
ICAgICAgICBqaXRPYmplY3Quc2V0RmFsbEJhY2sodHJ1ZSk7CisgICAgICAgICAgICBqaXRPYmpl
Y3Quc2V0RmFsbEJhY2sobV9zaG91bGRGYWxsQmFjayk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgCkBAIC0zNDY5LDcgKzM0NjYsNyBAQCBjbGFzcyBZYXJyR2VuZXJh
dG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAKICAgICAgICAgTGlua0J1ZmZlciBsaW5r
QnVmZmVyKCp0aGlzLCBSRUdFWFBfQ09ERV9JRCwgSklUQ29tcGlsYXRpb25DYW5GYWlsKTsKICAg
ICAgICAgaWYgKGxpbmtCdWZmZXIuZGlkRmFpbFRvQWxsb2NhdGUoKSkgewotICAgICAgICAgICAg
aml0T2JqZWN0LnNldEZhbGxCYWNrKHRydWUpOworICAgICAgICAgICAgaml0T2JqZWN0LnNldEZh
bGxCYWNrKEpJVEZhaWx1cmU6OkV4ZWN1dGFibGVNZW1vcnlBbGxvY2F0aW9uRmFpbHVyZSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMzUwNSw3ICszNTAyLDcgQEAgY2xh
c3MgWWFyckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAgICAgLy8gVXNl
ZCB0byBkZXRlY3QgcmVndWxhciBleHByZXNzaW9uIGNvbnN0cnVjdHMgdGhhdCBhcmUgbm90IGN1
cnJlbnRseQogICAgIC8vIHN1cHBvcnRlZCBpbiB0aGUgSklUOyBmYWxsIGJhY2sgdG8gdGhlIGlu
dGVycHJldGVyIHdoZW4gdGhpcyBpcyBkZXRlY3RlZC4KLSAgICBib29sIG1fc2hvdWxkRmFsbEJh
Y2s7CisgICAgc3RkOjpvcHRpb25hbDxKSVRGYWlsdXJlPiBtX3Nob3VsZEZhbGxCYWNrOwogCiAg
ICAgYm9vbCBtX2RlY29kZVN1cnJvZ2F0ZVBhaXJzOwogICAgIGJvb2wgbV91bmljb2RlSWdub3Jl
Q2FzZTsKQEAgLTM1MzgsMTIgKzM1MzUsNDEgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHByaXZh
dGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIEJhY2t0cmFja2luZ1N0YXRlIG1fYmFja3RyYWNraW5n
U3RhdGU7CiB9OwogCitzdGF0aWMgdm9pZCBkdW1wQ29tcGlsZUZhaWx1cmUoSklURmFpbHVyZSBm
YWlsdXJlKQoreworICAgIHN3aXRjaCAoZmFpbHVyZSkgeworICAgIGNhc2UgSklURmFpbHVyZTo6
RGVjb2RlU3Vycm9nYXRlUGFpcjoKKyAgICAgICAgZGF0YUxvZygiQ2FuJ3QgSklUIGEgcGF0dGVy
biBkZWNvZGluZyBzdXJyb2dhdGUgcGFpcnNcbiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEpJVEZhaWx1cmU6OkJhY2tSZWZlcmVuY2U6CisgICAgICAgIGRhdGFMb2coIkNhbid0IEpJVCBh
IHBhdHRlcm4gY29udGFpbmluZyBiYWNrIHJlZmVyZW5jZXNcbiIpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEpJVEZhaWx1cmU6OlZhcmlhYmxlQ291bnRlZFBhcmVudGhlc2lzV2l0aE5vblpl
cm9NaW5pbXVtOgorICAgICAgICBkYXRhTG9nKCJDYW4ndCBKSVQgYSBwYXR0ZXJuIGNvbnRhaW5p
bmcgYSB2YXJpYWJsZSBjb3VudGVkIHBhcmVudGhlc2lzIHdpdGggYSBub24temVybyBtaW5pbXVt
XG4iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKSVRGYWlsdXJlOjpHZW5lcmljUGFyZW50
aGVzaXM6CisgICAgICAgIGRhdGFMb2coIkNhbid0IEpJVCBhIHBhdHRlcm4gY29udGFpbmluZyBn
ZW5lcmljIHBhcmVudGhlc2lzXG4iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKSVRGYWls
dXJlOjpOb25HcmVlZHlHZW5lcmljUGFyZW50aGVzaXM6CisgICAgICAgIGRhdGFMb2coIkNhbid0
IEpJVCBhIHBhdHRlcm4gY29udGFpbmluZyBnZW5lcmljIHBhcmVudGhlc2lzIHdpdGggbm9uLWdy
ZWVkeSBxdWFudGlmaWVyXG4iKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKSVRGYWlsdXJl
OjpFeGVjdXRhYmxlTWVtb3J5QWxsb2NhdGlvbkZhaWx1cmU6CisgICAgICAgIGRhdGFMb2coIkNh
bid0IEpJVCBiZWNhdXNlIG9mIGZhaWx1cmUgb2YgYWxsb2NhdGlvbiBvZiBleGVjdXRhYmxlIG1l
bW9yeVxuIik7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogdm9pZCBqaXRDb21waWxlKFlh
cnJQYXR0ZXJuJiBwYXR0ZXJuLCBZYXJyQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFyckNv
ZGVCbG9jayYgaml0T2JqZWN0LCBZYXJySklUQ29tcGlsZU1vZGUgbW9kZSkKIHsKICAgICBpZiAo
bW9kZSA9PSBNYXRjaE9ubHkpCiAgICAgICAgIFlhcnJHZW5lcmF0b3I8TWF0Y2hPbmx5Pih2bSwg
cGF0dGVybiwgY2hhclNpemUpLmNvbXBpbGUoaml0T2JqZWN0KTsKICAgICBlbHNlCiAgICAgICAg
IFlhcnJHZW5lcmF0b3I8SW5jbHVkZVN1YnBhdHRlcm5zPih2bSwgcGF0dGVybiwgY2hhclNpemUp
LmNvbXBpbGUoaml0T2JqZWN0KTsKKworICAgIGlmIChhdXRvIGZhbGxCYWNrID0gaml0T2JqZWN0
LmZhbGxCYWNrKCkpIHsKKyAgICAgICAgaWYgKE9wdGlvbnM6OmR1bXBDb21waWxlZFJlZ0V4cFBh
dHRlcm5zKCkpCisgICAgICAgICAgICBkdW1wQ29tcGlsZUZhaWx1cmUoKmZhbGxCYWNrKTsKKyAg
ICB9CiB9CiAKIH19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKaW5kZXggYWQ1NTAw
ZjBkOGMzZDY2NzhkYjhmYTljOWY5NWIxMmFmMzkxOTI2NC4uOGVlNDdlYWM5YTQwZGNjYWM0Yjk5
M2JmYmNmNTU1ZGI0YTE5OWU4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApA
QCAtNTAsNiArNTAsMTUgQEAgY2xhc3MgRXhlY3V0YWJsZVBvb2w7CiAKIG5hbWVzcGFjZSBZYXJy
IHsKIAorZW51bSBjbGFzcyBKSVRGYWlsdXJlIHsKKyAgICBEZWNvZGVTdXJyb2dhdGVQYWlyLAor
ICAgIEJhY2tSZWZlcmVuY2UsCisgICAgVmFyaWFibGVDb3VudGVkUGFyZW50aGVzaXNXaXRoTm9u
WmVyb01pbmltdW0sCisgICAgR2VuZXJpY1BhcmVudGhlc2lzLAorICAgIE5vbkdyZWVkeUdlbmVy
aWNQYXJlbnRoZXNpcywKKyAgICBFeGVjdXRhYmxlTWVtb3J5QWxsb2NhdGlvbkZhaWx1cmUsCit9
OworCiBjbGFzcyBZYXJyQ29kZUJsb2NrIHsKICNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQp
CiAjaWZkZWYgSklUX0FMTF9QQVJFTlNfRVhQUkVTU0lPTlMKQEAgLTcxLDE3ICs4MCwxMCBAQCBj
bGFzcyBZYXJyQ29kZUJsb2NrIHsKICNlbmRpZgogCiBwdWJsaWM6Ci0gICAgWWFyckNvZGVCbG9j
aygpCi0gICAgICAgIDogbV9uZWVkRmFsbEJhY2soZmFsc2UpCi0gICAgewotICAgIH0KLQotICAg
IH5ZYXJyQ29kZUJsb2NrKCkKLSAgICB7Ci0gICAgfQorICAgIFlhcnJDb2RlQmxvY2soKSA9IGRl
ZmF1bHQ7CiAKLSAgICB2b2lkIHNldEZhbGxCYWNrKGJvb2wgZmFsbGJhY2spIHsgbV9uZWVkRmFs
bEJhY2sgPSBmYWxsYmFjazsgfQotICAgIGJvb2wgaXNGYWxsQmFjaygpIHsgcmV0dXJuIG1fbmVl
ZEZhbGxCYWNrOyB9CisgICAgdm9pZCBzZXRGYWxsQmFjayhzdGQ6Om9wdGlvbmFsPEpJVEZhaWx1
cmU+IGZhbGxCYWNrKSB7IG1fZmFsbEJhY2sgPSBmYWxsQmFjazsgfQorICAgIHN0ZDo6b3B0aW9u
YWw8SklURmFpbHVyZT4gZmFsbEJhY2soKSB7IHJldHVybiBtX2ZhbGxCYWNrOyB9CiAKICAgICBi
b29sIGhhczhCaXRDb2RlKCkgeyByZXR1cm4gbV9yZWY4LnNpemUoKTsgfQogICAgIGJvb2wgaGFz
MTZCaXRDb2RlKCkgeyByZXR1cm4gbV9yZWYxNi5zaXplKCk7IH0KQEAgLTE4OCw3ICsxOTAsNyBA
QCBjbGFzcyBZYXJyQ29kZUJsb2NrIHsKICAgICAgICAgbV9yZWYxNiA9IE1hY3JvQXNzZW1ibGVy
Q29kZVJlZigpOwogICAgICAgICBtX21hdGNoT25seTggPSBNYWNyb0Fzc2VtYmxlckNvZGVSZWYo
KTsKICAgICAgICAgbV9tYXRjaE9ubHkxNiA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOwotICAg
ICAgICBtX25lZWRGYWxsQmFjayA9IGZhbHNlOworICAgICAgICBtX2ZhbGxCYWNrID0gc3RkOjpu
dWxsb3B0OwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTE5Niw3ICsxOTgsNyBAQCBjbGFzcyBZYXJy
Q29kZUJsb2NrIHsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgbV9yZWYxNjsKICAgICBNYWNy
b0Fzc2VtYmxlckNvZGVSZWYgbV9tYXRjaE9ubHk4OwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZiBtX21hdGNoT25seTE2OwotICAgIGJvb2wgbV9uZWVkRmFsbEJhY2s7CisgICAgc3RkOjpvcHRp
b25hbDxKSVRGYWlsdXJlPiBtX2ZhbGxCYWNrOwogfTsKIAogZW51bSBZYXJySklUQ29tcGlsZU1v
ZGUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331906</attachid>
            <date>2018-01-22 02:10:55 -0800</date>
            <delta_ts>2018-01-28 20:35:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181927-20180122191054.patch</filename>
            <type>text/plain</type>
            <size>10405</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NTk0NWRhZGNhY2VkMDM4MmM2ZjAxYzg1YWNhYWMwNWM5ZWE2ZDNkLi43YmI4ZjNiMDk1ZWQ5NmI3
NTNiOGNhNmMxMDJjNzJjMjBmMzI5MTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxOC0wMS0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbWUFSUl0gQWRkIGRpYWdub3NpcyBmb3IgWWFyckpJVCBmYWlsdXJl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgaXMg
bmljZSBpZiB3ZSBjYW4gc2VlIHRoZSByZWFzb24gd2h5IFlhcnJKSVQgZmFpbHMgdG8gY29tcGls
ZSBhIGdpdmVuIHBhdHRlcm4uCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBZYXJyOjpK
SVRGYWlsdXJlIGFuZCBkdW1wcyBtZXNzYWdlcyBpZiBPcHRpb25zOjpkdW1wQ29tcGlsZWRSZWdF
eHBQYXR0ZXJucyBpcyBzcGVjaWZpZWQuCisKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cC5jcHA6
CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6
Y29tcGlsZU1hdGNoT25seSk6CisgICAgICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAg
KEpTQzo6WWFycjo6WWFyckdlbmVyYXRvcjo6Z2VuZXJhdGVUZXJtKToKKyAgICAgICAgKEpTQzo6
WWFycjo6WWFyckdlbmVyYXRvcjo6YmFja3RyYWNrVGVybSk6CisgICAgICAgIChKU0M6OllhcnI6
OllhcnJHZW5lcmF0b3I6Om9wQ29tcGlsZVBhcmVudGhlc2VzU3VicGF0dGVybik6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OllhcnJHZW5lcmF0b3IpOgorICAgICAgICAoSlND
OjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpjb21waWxlKToKKyAgICAgICAgKEpTQzo6WWFycjo6ZHVt
cENvbXBpbGVGYWlsdXJlKToKKyAgICAgICAgKEpTQzo6WWFycjo6aml0Q29tcGlsZSk6CisgICAg
ICAgICogeWFyci9ZYXJySklULmg6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6
OnNldEZhbGxCYWNrKToKKyAgICAgICAgKEpTQzo6WWFycjo6WWFyckNvZGVCbG9jazo6ZmFsbEJh
Y2spOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjpjbGVhcik6CisgICAgICAg
IChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OllhcnJDb2RlQmxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpZYXJyOjpZYXJyQ29kZUJsb2NrOjp+WWFyckNvZGVCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OllhcnI6OllhcnJDb2RlQmxvY2s6OmlzRmFsbEJhY2spOiBEZWxldGVk
LgorCiAyMDE4LTAxLTIxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBhIG5ldyBmZWF0dXJlIGZsYWcgZm9yIEVYVFJBX1pPT01fTU9ERSBhbmQg
cmVpbnRyb2R1Y2UgQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IDAyMGI3YmZlODllYmM2NTVkMzFjNWI2YWNmYTFh
YWM5NTE2YmUyYWYuLjZiNjM1ZmVkMDNiMGNhMjI2NjFjNGFjMzRhMzVlY2I3NDcwNzVlNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtMzA4LDcgKzMwOCw3
IEBAIHZvaWQgUmVnRXhwOjpjb21waWxlKFZNKiB2bSwgWWFycjo6WWFyckNoYXJTaXplIGNoYXJT
aXplKQogI2lmIEVOQUJMRShZQVJSX0pJVCkKICAgICBpZiAoIXBhdHRlcm4ubV9jb250YWluc0Jh
Y2tyZWZlcmVuY2VzICYmICFwYXR0ZXJuLmNvbnRhaW5zVW5zaWduZWRMZW5ndGhQYXR0ZXJuKCkg
JiYgVk06OmNhblVzZVJlZ0V4cEpJVCgpKSB7CiAgICAgICAgIFlhcnI6OmppdENvbXBpbGUocGF0
dGVybiwgY2hhclNpemUsIHZtLCBtX3JlZ0V4cEpJVENvZGUpOwotICAgICAgICBpZiAoIW1fcmVn
RXhwSklUQ29kZS5pc0ZhbGxCYWNrKCkpIHsKKyAgICAgICAgaWYgKCFtX3JlZ0V4cEpJVENvZGUu
ZmFsbEJhY2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIFJlZ0V4cDo6Y29t
cGlsZU1hdGNoT25seShWTSogdm0sIFlhcnI6OllhcnJDaGFyU2l6ZSBjaGFyU2l6ZSkKICNpZiBF
TkFCTEUoWUFSUl9KSVQpCiAgICAgaWYgKCFwYXR0ZXJuLm1fY29udGFpbnNCYWNrcmVmZXJlbmNl
cyAmJiAhcGF0dGVybi5jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybigpICYmIFZNOjpjYW5V
c2VSZWdFeHBKSVQoKSkgewogICAgICAgICBZYXJyOjpqaXRDb21waWxlKHBhdHRlcm4sIGNoYXJT
aXplLCB2bSwgbV9yZWdFeHBKSVRDb2RlLCBZYXJyOjpNYXRjaE9ubHkpOwotICAgICAgICBpZiAo
IW1fcmVnRXhwSklUQ29kZS5pc0ZhbGxCYWNrKCkpIHsKKyAgICAgICAgaWYgKCFtX3JlZ0V4cEpJ
VENvZGUuZmFsbEJhY2soKSkgewogICAgICAgICAgICAgbV9zdGF0ZSA9IEpJVENvZGU7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5jcHAKaW5kZXggMDNmYzA2ZGQ3ZGZhMjNmMzI1NGYzZjQyNTg2YjhmNWM1NjZlNTM0Ny4uY2Nl
Mjk1ZDY2YWFlODc2MDk3ZDE0ZDZhMDQ2ZmI2MGRjZDQ5MGYyYyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTE3NDksNyArMTc0OSw3IEBAIGNsYXNzIFlhcnJHZW5l
cmF0b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgY2FzZSBQYXR0ZXJuVGVy
bTo6VHlwZVBhcmVudGhldGljYWxBc3NlcnRpb246CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBjYXNlIFBhdHRlcm5UZXJtOjpUeXBlQmFja1JlZmVy
ZW5jZToKLSAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVlOworICAgICAgICAgICAg
bV9zaG91bGRGYWxsQmFjayA9IEpJVEZhaWx1cmU6OkJhY2tSZWZlcmVuY2U7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBQYXR0ZXJuVGVybTo6VHlwZURvdFN0YXJFbmNsb3N1cmU6
CiAgICAgICAgICAgICBnZW5lcmF0ZURvdFN0YXJFbmNsb3N1cmUob3BJbmRleCk7CkBAIC0xODIw
LDcgKzE4MjAsNyBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxl
ciB7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFBhdHRlcm5UZXJtOjpUeXBl
QmFja1JlZmVyZW5jZToKLSAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVlOworICAg
ICAgICAgICAgbV9zaG91bGRGYWxsQmFjayA9IEpJVEZhaWx1cmU6OkJhY2tSZWZlcmVuY2U7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTMwMDQsOSArMzAwNCw3IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAg
Ly8gbmVlZCB0byByZXN0b3JlIHRoZSBjYXB0dXJlIGZyb20gdGhlIGZpcnN0IHN1YnBhdHRlcm4g
dXBvbiBhCiAgICAgICAgIC8vIGZhaWx1cmUgaW4gdGhlIHNlY29uZC4KICAgICAgICAgaWYgKHRl
cm0tPnF1YW50aXR5TWluQ291bnQgJiYgdGVybS0+cXVhbnRpdHlNaW5Db3VudCAhPSB0ZXJtLT5x
dWFudGl0eU1heENvdW50KSB7Ci0gICAgICAgICAgICBpZiAoT3B0aW9uczo6ZHVtcENvbXBpbGVk
UmVnRXhwUGF0dGVybnMoKSkKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiQ2FuJ3QgSklUIGEg
dmFyaWFibGUgY291bnRlZCBwYXJlbnRoZXNpcyB3aXRoIGEgbm9uLXplcm8gbWluaW11bVxuIik7
Ci0gICAgICAgICAgICBtX3Nob3VsZEZhbGxCYWNrID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fc2hv
dWxkRmFsbEJhY2sgPSBKSVRGYWlsdXJlOjpWYXJpYWJsZUNvdW50ZWRQYXJlbnRoZXNpc1dpdGhO
b25aZXJvTWluaW11bTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSBpZiAodGVybS0+
cXVhbnRpdHlNYXhDb3VudCA9PSAxICYmICF0ZXJtLT5wYXJlbnRoZXNlcy5pc0NvcHkpIHsKICAg
ICAgICAgICAgIC8vIFNlbGVjdCB0aGUgJ09uY2UnIG5vZGVzLgpAQCAtMzAyOCw3ICszMDI2LDcg
QEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgICAg
ICAgICAgLy8gV2Ugb25seSBoYW5kbGUgZ2VuZXJpYyBwYXJlbnRoZXNpcyB3aXRoIGdyZWVkeSBj
b3VudHMuCiAgICAgICAgICAgICBpZiAodGVybS0+cXVhbnRpdHlUeXBlICE9IFF1YW50aWZpZXJH
cmVlZHkpIHsKICAgICAgICAgICAgICAgICAvLyBUaGlzIHN1YnBhdHRlcm4gaXMgbm90IHN1cHBv
cnRlZCBieSB0aGUgSklULgotICAgICAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSB0cnVl
OworICAgICAgICAgICAgICAgIG1fc2hvdWxkRmFsbEJhY2sgPSBKSVRGYWlsdXJlOjpOb25HcmVl
ZHlQYXJlbnRoZXNpemVkU3VicGF0dGVybjsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAKQEAgLTMwNDYsNyArMzA0NCw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBw
cml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgICAgIH0KICNlbHNlCiAgICAgICAgICAg
ICAvLyBUaGlzIHN1YnBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSklULgotICAgICAg
ICAgICAgbV9zaG91bGRGYWxsQmFjayA9IHRydWU7CisgICAgICAgICAgICBtX3Nob3VsZEZhbGxC
YWNrID0gSklURmFpbHVyZTo6UGFyZW50aGVzaXplZFN1YnBhdHRlcm47CiAgICAgICAgICAgICBy
ZXR1cm47CiAjZW5kaWYKICAgICAgICAgfQpAQCAtMzM5Nyw3ICszMzk1LDYgQEAgY2xhc3MgWWFy
ckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICA6IG1fdm0odm0p
CiAgICAgICAgICwgbV9wYXR0ZXJuKHBhdHRlcm4pCiAgICAgICAgICwgbV9jaGFyU2l6ZShjaGFy
U2l6ZSkKLSAgICAgICAgLCBtX3Nob3VsZEZhbGxCYWNrKGZhbHNlKQogICAgICAgICAsIG1fZGVj
b2RlU3Vycm9nYXRlUGFpcnMobV9jaGFyU2l6ZSA9PSBDaGFyMTYgJiYgbV9wYXR0ZXJuLnVuaWNv
ZGUoKSkKICAgICAgICAgLCBtX3VuaWNvZGVJZ25vcmVDYXNlKG1fcGF0dGVybi51bmljb2RlKCkg
JiYgbV9wYXR0ZXJuLmlnbm9yZUNhc2UoKSkKICAgICAgICAgLCBtX2Nhbm9uaWNhbE1vZGUobV9w
YXR0ZXJuLnVuaWNvZGUoKSA/IENhbm9uaWNhbE1vZGU6OlVuaWNvZGUgOiBDYW5vbmljYWxNb2Rl
OjpVQ1MyKQpAQCAtMzQxMiw3ICszNDA5LDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHByaXZh
dGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIHsKICNpZm5kZWYgSklUX1VOSUNPREVfRVhQUkVTU0lP
TlMKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKLSAgICAgICAgICAgIGpp
dE9iamVjdC5zZXRGYWxsQmFjayh0cnVlKTsKKyAgICAgICAgICAgIGppdE9iamVjdC5zZXRGYWxs
QmFjayhKSVRGYWlsdXJlOjpEZWNvZGVTdXJyb2dhdGVQYWlyKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogI2VuZGlmCkBAIC0zNDIyLDcgKzM0MTksNyBAQCBjbGFzcyBZYXJyR2Vu
ZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIG9wQ29tcGlsZUJvZHko
bV9wYXR0ZXJuLm1fYm9keSk7CiAgICAgICAgIAogICAgICAgICBpZiAobV9zaG91bGRGYWxsQmFj
aykgewotICAgICAgICAgICAgaml0T2JqZWN0LnNldEZhbGxCYWNrKHRydWUpOworICAgICAgICAg
ICAgaml0T2JqZWN0LnNldEZhbGxCYWNrKG1fc2hvdWxkRmFsbEJhY2spOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMzQ2OSw3ICszNDY2LDcgQEAgY2xhc3Mg
WWFyckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogCiAgICAgICAgIExpbmtC
dWZmZXIgbGlua0J1ZmZlcigqdGhpcywgUkVHRVhQX0NPREVfSUQsIEpJVENvbXBpbGF0aW9uQ2Fu
RmFpbCk7CiAgICAgICAgIGlmIChsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpIHsKLSAg
ICAgICAgICAgIGppdE9iamVjdC5zZXRGYWxsQmFjayh0cnVlKTsKKyAgICAgICAgICAgIGppdE9i
amVjdC5zZXRGYWxsQmFjayhKSVRGYWlsdXJlOjpFeGVjdXRhYmxlTWVtb3J5QWxsb2NhdGlvbkZh
aWx1cmUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTM1MDUsNyArMzUw
Miw3IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKIAog
ICAgIC8vIFVzZWQgdG8gZGV0ZWN0IHJlZ3VsYXIgZXhwcmVzc2lvbiBjb25zdHJ1Y3RzIHRoYXQg
YXJlIG5vdCBjdXJyZW50bHkKICAgICAvLyBzdXBwb3J0ZWQgaW4gdGhlIEpJVDsgZmFsbCBiYWNr
IHRvIHRoZSBpbnRlcnByZXRlciB3aGVuIHRoaXMgaXMgZGV0ZWN0ZWQuCi0gICAgYm9vbCBtX3No
b3VsZEZhbGxCYWNrOworICAgIHN0ZDo6b3B0aW9uYWw8SklURmFpbHVyZT4gbV9zaG91bGRGYWxs
QmFjazsKIAogICAgIGJvb2wgbV9kZWNvZGVTdXJyb2dhdGVQYWlyczsKICAgICBib29sIG1fdW5p
Y29kZUlnbm9yZUNhc2U7CkBAIC0zNTM4LDEyICszNTM1LDQxIEBAIGNsYXNzIFlhcnJHZW5lcmF0
b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBCYWNrdHJhY2tpbmdTdGF0ZSBtX2Jh
Y2t0cmFja2luZ1N0YXRlOwogfTsKIAorc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWlsdXJlKEpJ
VEZhaWx1cmUgZmFpbHVyZSkKK3sKKyAgICBzd2l0Y2ggKGZhaWx1cmUpIHsKKyAgICBjYXNlIEpJ
VEZhaWx1cmU6OkRlY29kZVN1cnJvZ2F0ZVBhaXI6CisgICAgICAgIGRhdGFMb2coIkNhbid0IEpJ
VCBhIHBhdHRlcm4gZGVjb2Rpbmcgc3Vycm9nYXRlIHBhaXJzXG4iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBKSVRGYWlsdXJlOjpCYWNrUmVmZXJlbmNlOgorICAgICAgICBkYXRhTG9nKCJD
YW4ndCBKSVQgYSBwYXR0ZXJuIGNvbnRhaW5pbmcgYmFjayByZWZlcmVuY2VzXG4iKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBKSVRGYWlsdXJlOjpWYXJpYWJsZUNvdW50ZWRQYXJlbnRoZXNp
c1dpdGhOb25aZXJvTWluaW11bToKKyAgICAgICAgZGF0YUxvZygiQ2FuJ3QgSklUIGEgcGF0dGVy
biBjb250YWluaW5nIGEgdmFyaWFibGUgY291bnRlZCBwYXJlbnRoZXNpcyB3aXRoIGEgbm9uLXpl
cm8gbWluaW11bVxuIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSklURmFpbHVyZTo6UGFy
ZW50aGVzaXplZFN1YnBhdHRlcm46CisgICAgICAgIGRhdGFMb2coIkNhbid0IEpJVCBhIHBhdHRl
cm4gY29udGFpbmluZyBwYXJlbnRoZXNpemVkIHN1YnBhdHRlcm5zXG4iKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBKSVRGYWlsdXJlOjpOb25HcmVlZHlQYXJlbnRoZXNpemVkU3VicGF0dGVy
bjoKKyAgICAgICAgZGF0YUxvZygiQ2FuJ3QgSklUIGEgcGF0dGVybiBjb250YWluaW5nIG5vbi1n
cmVlZHkgcGFyZW50aGVzaXplZCBzdWJwYXR0ZXJuc1xuIik7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSklURmFpbHVyZTo6RXhlY3V0YWJsZU1lbW9yeUFsbG9jYXRpb25GYWlsdXJlOgorICAg
ICAgICBkYXRhTG9nKCJDYW4ndCBKSVQgYmVjYXVzZSBvZiBmYWlsdXJlIG9mIGFsbG9jYXRpb24g
b2YgZXhlY3V0YWJsZSBtZW1vcnlcbiIpOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZv
aWQgaml0Q29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgWWFyckNoYXJTaXplIGNoYXJTaXpl
LCBWTSogdm0sIFlhcnJDb2RlQmxvY2smIGppdE9iamVjdCwgWWFyckpJVENvbXBpbGVNb2RlIG1v
ZGUpCiB7CiAgICAgaWYgKG1vZGUgPT0gTWF0Y2hPbmx5KQogICAgICAgICBZYXJyR2VuZXJhdG9y
PE1hdGNoT25seT4odm0sIHBhdHRlcm4sIGNoYXJTaXplKS5jb21waWxlKGppdE9iamVjdCk7CiAg
ICAgZWxzZQogICAgICAgICBZYXJyR2VuZXJhdG9yPEluY2x1ZGVTdWJwYXR0ZXJucz4odm0sIHBh
dHRlcm4sIGNoYXJTaXplKS5jb21waWxlKGppdE9iamVjdCk7CisKKyAgICBpZiAoYXV0byBmYWxs
QmFjayA9IGppdE9iamVjdC5mYWxsQmFjaygpKSB7CisgICAgICAgIGlmIChPcHRpb25zOjpkdW1w
Q29tcGlsZWRSZWdFeHBQYXR0ZXJucygpKQorICAgICAgICAgICAgZHVtcENvbXBpbGVGYWlsdXJl
KCpmYWxsQmFjayk7CisgICAgfQogfQogCiB9fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5oCmluZGV4IGFkNTUwMGYwZDhjM2Q2Njc4ZGI4ZmE5YzlmOTViMTJhZjM5MTkyNjQuLjgyMTIw
MmNlMTBjOWNkZDYzNzZjMWIzMjZlNjhhYzU3MTliMmU0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySklULmgKQEAgLTUwLDYgKzUwLDE1IEBAIGNsYXNzIEV4ZWN1dGFibGVQb29sOwog
CiBuYW1lc3BhY2UgWWFyciB7CiAKK2VudW0gY2xhc3MgSklURmFpbHVyZSB7CisgICAgRGVjb2Rl
U3Vycm9nYXRlUGFpciwKKyAgICBCYWNrUmVmZXJlbmNlLAorICAgIFZhcmlhYmxlQ291bnRlZFBh
cmVudGhlc2lzV2l0aE5vblplcm9NaW5pbXVtLAorICAgIFBhcmVudGhlc2l6ZWRTdWJwYXR0ZXJu
LAorICAgIE5vbkdyZWVkeVBhcmVudGhlc2l6ZWRTdWJwYXR0ZXJuLAorICAgIEV4ZWN1dGFibGVN
ZW1vcnlBbGxvY2F0aW9uRmFpbHVyZSwKK307CisKIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogI2lm
IENQVShYODZfNjQpIHx8IENQVShBUk02NCkKICNpZmRlZiBKSVRfQUxMX1BBUkVOU19FWFBSRVNT
SU9OUwpAQCAtNzEsMTcgKzgwLDEwIEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogI2VuZGlmCiAK
IHB1YmxpYzoKLSAgICBZYXJyQ29kZUJsb2NrKCkKLSAgICAgICAgOiBtX25lZWRGYWxsQmFjayhm
YWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgfllhcnJDb2RlQmxvY2soKQotICAgIHsKLSAgICB9
CisgICAgWWFyckNvZGVCbG9jaygpID0gZGVmYXVsdDsKIAotICAgIHZvaWQgc2V0RmFsbEJhY2so
Ym9vbCBmYWxsYmFjaykgeyBtX25lZWRGYWxsQmFjayA9IGZhbGxiYWNrOyB9Ci0gICAgYm9vbCBp
c0ZhbGxCYWNrKCkgeyByZXR1cm4gbV9uZWVkRmFsbEJhY2s7IH0KKyAgICB2b2lkIHNldEZhbGxC
YWNrKHN0ZDo6b3B0aW9uYWw8SklURmFpbHVyZT4gZmFsbEJhY2spIHsgbV9mYWxsQmFjayA9IGZh
bGxCYWNrOyB9CisgICAgc3RkOjpvcHRpb25hbDxKSVRGYWlsdXJlPiBmYWxsQmFjaygpIHsgcmV0
dXJuIG1fZmFsbEJhY2s7IH0KIAogICAgIGJvb2wgaGFzOEJpdENvZGUoKSB7IHJldHVybiBtX3Jl
Zjguc2l6ZSgpOyB9CiAgICAgYm9vbCBoYXMxNkJpdENvZGUoKSB7IHJldHVybiBtX3JlZjE2LnNp
emUoKTsgfQpAQCAtMTg4LDcgKzE5MCw3IEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogICAgICAg
ICBtX3JlZjE2ID0gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmKCk7CiAgICAgICAgIG1fbWF0Y2hPbmx5
OCA9IE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpOwogICAgICAgICBtX21hdGNoT25seTE2ID0gTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmKCk7Ci0gICAgICAgIG1fbmVlZEZhbGxCYWNrID0gZmFsc2U7Cisg
ICAgICAgIG1fZmFsbEJhY2sgPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCiBwcml2YXRlOgpAQCAt
MTk2LDcgKzE5OCw3IEBAIGNsYXNzIFlhcnJDb2RlQmxvY2sgewogICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZiBtX3JlZjE2OwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBtX21hdGNoT25seTg7
CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIG1fbWF0Y2hPbmx5MTY7Ci0gICAgYm9vbCBtX25l
ZWRGYWxsQmFjazsKKyAgICBzdGQ6Om9wdGlvbmFsPEpJVEZhaWx1cmU+IG1fZmFsbEJhY2s7CiB9
OwogCiBlbnVtIFlhcnJKSVRDb21waWxlTW9kZSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332504</attachid>
            <date>2018-01-28 20:35:52 -0800</date>
            <delta_ts>2018-01-28 20:37:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181927-20180129133551.patch</filename>
            <type>text/plain</type>
            <size>13272</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmViZWIzZjkwMjhhZWZiZDU2Njg5OGFmYjY0NjBhYzQ2Mjc4ZTNlLi4zMWJhNTUyOGQwODliMGIx
MzI1MzExMTVmYzE1YjFhOWIyYzk2YzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOC0wMS0yOCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbWUFSUl0gQWRkIGRpYWdub3NpcyBmb3IgWWFyckpJVCBmYWlsdXJl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTI3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgaXMg
bmljZSBpZiB3ZSBjYW4gc2VlIHRoZSByZWFzb24gd2h5IFlhcnJKSVQgZmFpbHMgdG8gY29tcGls
ZSBhIGdpdmVuIHBhdHRlcm4uCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBZYXJyOjpK
SVRGYWlsdXJlIGFuZCBkdW1wcyBtZXNzYWdlcyBpZiBPcHRpb25zOjpkdW1wQ29tcGlsZWRSZWdF
eHBQYXR0ZXJucyBpcyBzcGVjaWZpZWQuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlua0J1ZmZl
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRlUGF0dGVy
bkNoYXJhY3Rlck9uY2UpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpjb21w
aWxlKToKKwogMjAxOC0wMS0yNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgTWFya2VkQmxvY2s6OkZvb3RlciBiaWdnZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKaW5kZXggMzk3YzY1Zjk1YmY1YjZhZTIzMGI5
YWJmMDJkN2UxOTJkMGMzNzdhMS4uNDY4NTc1ZmQxNGI4Mjc5MDcxZDQyMDkwZDZlYTRmZGMyZWNh
YTMzNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVm
ZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgK
QEAgLTMzOSw2ICszMzksOSBAQCBib29sIHNob3VsZER1bXBEaXNhc3NlbWJseUZvcihDb2RlQmxv
Y2sqKTsKICNkZWZpbmUgRklOQUxJWkVfREZHX0NPREUobGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0
YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5nKSAgXAogICAgIEZJTkFMSVpFX0NPREVfSUYoSlNDOjpP
cHRpb25zOjphc3luY0Rpc2Fzc2VtYmx5KCkgfHwgSlNDOjpPcHRpb25zOjpkdW1wRGlzYXNzZW1i
bHkoKSB8fCBPcHRpb25zOjpkdW1wREZHRGlzYXNzZW1ibHkoKSwgbGlua0J1ZmZlclJlZmVyZW5j
ZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5nKQogCisjZGVmaW5lIEZJTkFMSVpFX1JFR0VY
UF9DT0RFKGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykg
IFwKKyAgICBGSU5BTElaRV9DT0RFX0lGKEpTQzo6T3B0aW9uczo6YXN5bmNEaXNhc3NlbWJseSgp
IHx8IEpTQzo6T3B0aW9uczo6ZHVtcERpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6ZHVtcFJlZ0V4
cERpc2Fzc2VtYmx5KCksIGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9y
SGVhZGluZykKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNTRU1C
TEVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IGYwYzhiOTY1
MDBlYTA2ODY3NTMwYjVjZWJmNjJkMGQ5NGI2ODlkNmIuLjVhZDVjYjI5YjZhMmZjYjI0Mzg1ZDY1
NDUwNTk2YjUwZTFhYjI5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKQEAgLTE1OSw2ICsxNTksNyBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVBc3luY0l0ZXJhdGlv
biA9IGZhbHNlOwogICAgIHYoYm9vbCwgYXN5bmNEaXNhc3NlbWJseSwgZmFsc2UsIE5vcm1hbCwg
bnVsbHB0cikgXAogICAgIHYoYm9vbCwgZHVtcERGR0Rpc2Fzc2VtYmx5LCBmYWxzZSwgTm9ybWFs
LCAiZHVtcHMgZGlzYXNzZW1ibHkgb2YgREZHIGZ1bmN0aW9uIHVwb24gY29tcGlsYXRpb24iKSBc
CiAgICAgdihib29sLCBkdW1wRlRMRGlzYXNzZW1ibHksIGZhbHNlLCBOb3JtYWwsICJkdW1wcyBk
aXNhc3NlbWJseSBvZiBGVEwgZnVuY3Rpb24gdXBvbiBjb21waWxhdGlvbiIpIFwKKyAgICB2KGJv
b2wsIGR1bXBSZWdFeHBEaXNhc3NlbWJseSwgZmFsc2UsIE5vcm1hbCwgImR1bXBzIGRpc2Fzc2Vt
Ymx5IG9mIFJlZ0V4cCB1cG9uIGNvbXBpbGF0aW9uIikgXAogICAgIHYoYm9vbCwgZHVtcEFsbERG
R05vZGVzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihvcHRpb25SYW5nZSwgYnl0
ZWNvZGVSYW5nZVRvSklUQ29tcGlsZSwgMCwgTm9ybWFsLCAiYnl0ZWNvZGUgc2l6ZSByYW5nZSB0
byBhbGxvdyBjb21waWxhdGlvbiBvbiwgZS5nLiAxOjEwMCIpIFwKICAgICB2KG9wdGlvblJhbmdl
LCBieXRlY29kZVJhbmdlVG9ERkdDb21waWxlLCAwLCBOb3JtYWwsICJieXRlY29kZSBzaXplIHJh
bmdlIHRvIGFsbG93IERGRyBjb21waWxhdGlvbiBvbiwgZS5nLiAxOjEwMCIpIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggZjAyMDczMWQ1OGVjODlmYzhjZjA5MzUy
Mzg1YzZiOWFkNjAxNTczZS4uNzE5ODE0NTY3MGRiZTAxMWE2ZDBkMTUwODJhZGYxZjk2N2M4MDky
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTExMDQsMTIgKzEx
MDQsMTYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewog
ICAgICAgICB9CiAKICAgICAgICAgY29uc3QgUmVnaXN0ZXJJRCBjaGFyYWN0ZXIgPSByZWdUMDsK
KyNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCisgICAgICAgIHVuc2lnbmVkIG1heENoYXJh
Y3RlcnNBdE9uY2UgPSBtX2NoYXJTaXplID09IENoYXI4ID8gOCA6IDQ7CisjZWxzZQogICAgICAg
ICB1bnNpZ25lZCBtYXhDaGFyYWN0ZXJzQXRPbmNlID0gbV9jaGFyU2l6ZSA9PSBDaGFyOCA/IDQg
OiAyOwotICAgICAgICB1bnNpZ25lZCBpZ25vcmVDYXNlTWFzayA9IDA7CisjZW5kaWYKKyAgICAg
ICAgdWludDY0X3QgaWdub3JlQ2FzZU1hc2sgPSAwOwogI2lmIENQVShCSUdfRU5ESUFOKQotICAg
ICAgICBpbnQgYWxsQ2hhcmFjdGVycyA9IGNoIDw8IChtX2NoYXJTaXplID09IENoYXI4ID8gMjQg
OiAxNik7CisgICAgICAgIHVpbnQ2NF90IGFsbENoYXJhY3RlcnMgPSBjaCA8PCAobV9jaGFyU2l6
ZSA9PSBDaGFyOCA/IDI0IDogMTYpOwogI2Vsc2UKLSAgICAgICAgaW50IGFsbENoYXJhY3RlcnMg
PSBjaDsKKyAgICAgICAgdWludDY0X3QgYWxsQ2hhcmFjdGVycyA9IGNoOwogI2VuZGlmCiAgICAg
ICAgIHVuc2lnbmVkIG51bWJlckNoYXJhY3RlcnM7CiAgICAgICAgIHVuc2lnbmVkIHN0YXJ0VGVy
bVBvc2l0aW9uID0gdGVybS0+aW5wdXRQb3NpdGlvbjsKQEAgLTExNTUsNDkgKzExNTksMTI5IEBA
IGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAg
ICAgIC8vIHVwcGVyICYgbG93ZXIgY2FzZSByZXByZXNlbnRhdGlvbnMgYXJlIGNvbnZlcnRlZCB0
byBhIGNoYXJhY3RlciBjbGFzcy4KICAgICAgICAgICAgIEFTU0VSVCghbV9wYXR0ZXJuLmlnbm9y
ZUNhc2UoKSB8fCBpc0FTQ0lJQWxwaGEoY3VycmVudENoYXJhY3RlcikgfHwgaXNDYW5vbmljYWxs
eVVuaXF1ZShjdXJyZW50Q2hhcmFjdGVyLCBtX2Nhbm9uaWNhbE1vZGUpKTsKIAotICAgICAgICAg
ICAgYWxsQ2hhcmFjdGVycyB8PSAoY3VycmVudENoYXJhY3RlciA8PCBzaGlmdEFtb3VudCk7Cisg
ICAgICAgICAgICBhbGxDaGFyYWN0ZXJzIHw9IChzdGF0aWNfY2FzdDx1aW50NjRfdD4oY3VycmVu
dENoYXJhY3RlcikgPDwgc2hpZnRBbW91bnQpOwogCiAgICAgICAgICAgICBpZiAoKG1fcGF0dGVy
bi5pZ25vcmVDYXNlKCkpICYmIChpc0FTQ0lJQWxwaGEoY3VycmVudENoYXJhY3RlcikpKQotICAg
ICAgICAgICAgICAgIGlnbm9yZUNhc2VNYXNrIHw9IDMyIDw8IHNoaWZ0QW1vdW50OyAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWdub3JlQ2FzZU1hc2sgfD0gMzJVTEwgPDwg
c2hpZnRBbW91bnQ7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9jaGFyU2l6ZSA9PSBDaGFy
OCkgeworICAgICAgICAgICAgYXV0byBjaGVjazEgPSBbJl0gKENoZWNrZWQ8dW5zaWduZWQ+IG9m
ZnNldCwgdWludDY0X3QgY2hhcmFjdGVycykgeworICAgICAgICAgICAgICAgIG9wLm1fanVtcHMu
YXBwZW5kKGp1bXBJZkNoYXJOb3RFcXVhbHMoY2hhcmFjdGVycywgb2Zmc2V0LCBjaGFyYWN0ZXIp
KTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIGF1dG8gY2hlY2syID0gWyZdIChDaGVj
a2VkPHVuc2lnbmVkPiBvZmZzZXQsIHVpbnQxNl90IGNoYXJhY3RlcnMsIHVpbnQxNl90IG1hc2sp
IHsKKyAgICAgICAgICAgICAgICBsb2FkMTZVbmFsaWduZWQobmVnYXRpdmVPZmZzZXRJbmRleGVk
QWRkcmVzcyhvZmZzZXQsIGNoYXJhY3RlciksIGNoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAg
aWYgKG1hc2spCisgICAgICAgICAgICAgICAgICAgIG9yMzIoSW1tMzIobWFzayksIGNoYXJhY3Rl
cik7CisgICAgICAgICAgICAgICAgb3AubV9qdW1wcy5hcHBlbmQoYnJhbmNoMzIoTm90RXF1YWws
IGNoYXJhY3RlciwgSW1tMzIoY2hhcmFjdGVycyB8IG1hc2spKSk7CisgICAgICAgICAgICB9Owor
CisgICAgICAgICAgICBhdXRvIGNoZWNrNCA9IFsmXSAoQ2hlY2tlZDx1bnNpZ25lZD4gb2Zmc2V0
LCB1bnNpZ25lZCBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBtYXNrKSB7CisgICAgICAgICAgICAgICAg
aWYgKG1hc2spIHsKKyAgICAgICAgICAgICAgICAgICAgbG9hZDMyV2l0aFVuYWxpZ25lZEhhbGZX
b3JkcyhuZWdhdGl2ZU9mZnNldEluZGV4ZWRBZGRyZXNzKG9mZnNldCwgY2hhcmFjdGVyKSwgY2hh
cmFjdGVyKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1hc2spCisgICAgICAgICAgICAgICAg
ICAgICAgICBvcjMyKEltbTMyKG1hc2spLCBjaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgICAg
ICBvcC5tX2p1bXBzLmFwcGVuZChicmFuY2gzMihOb3RFcXVhbCwgY2hhcmFjdGVyLCBJbW0zMihj
aGFyYWN0ZXJzIHwgbWFzaykpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvcC5tX2p1bXBzLmFwcGVuZChicmFuY2gzMldp
dGhVbmFsaWduZWRIYWxmV29yZHMoTm90RXF1YWwsIG5lZ2F0aXZlT2Zmc2V0SW5kZXhlZEFkZHJl
c3Mob2Zmc2V0LCBjaGFyYWN0ZXIpLCBUcnVzdGVkSW1tMzIoY2hhcmFjdGVycykpKTsKKyAgICAg
ICAgICAgIH07CisKKyNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCisgICAgICAgICAgICBh
dXRvIGNoZWNrOCA9IFsmXSAoQ2hlY2tlZDx1bnNpZ25lZD4gb2Zmc2V0LCB1aW50NjRfdCBjaGFy
YWN0ZXJzLCB1aW50NjRfdCBtYXNrKSB7CisgICAgICAgICAgICAgICAgbG9hZDY0KG5lZ2F0aXZl
T2Zmc2V0SW5kZXhlZEFkZHJlc3Mob2Zmc2V0LCBjaGFyYWN0ZXIpLCBjaGFyYWN0ZXIpOworICAg
ICAgICAgICAgICAgIGlmIChtYXNrKQorICAgICAgICAgICAgICAgICAgICBvcjY0KFRydXN0ZWRJ
bW02NChtYXNrKSwgY2hhcmFjdGVyKTsKKyAgICAgICAgICAgICAgICBvcC5tX2p1bXBzLmFwcGVu
ZChicmFuY2g2NChOb3RFcXVhbCwgY2hhcmFjdGVyLCBUcnVzdGVkSW1tNjQoY2hhcmFjdGVycyB8
IG1hc2spKSk7CisgICAgICAgICAgICB9OworI2VuZGlmCisKICAgICAgICAgICAgIHN3aXRjaCAo
bnVtYmVyQ2hhcmFjdGVycykgewogICAgICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgICAg
IG9wLm1fanVtcHMuYXBwZW5kKGp1bXBJZkNoYXJOb3RFcXVhbHMoY2gsIG1fY2hlY2tlZE9mZnNl
dCAtIHN0YXJ0VGVybVBvc2l0aW9uLCBjaGFyYWN0ZXIpKTsKKyAgICAgICAgICAgICAgICAvLyBE
byBub3QgbWFzayBhbGxDaGFyYWN0ZXJzIHNpbmNlIFlhcnIgY291bnRzIHN1cnJvZ2F0ZSBwYWly
cyBhcyBvbmUgY2hhcmFjdGVyIHdpdGggdW5pY29kZSBmbGFnLgorICAgICAgICAgICAgICAgIGNo
ZWNrMShtX2NoZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3NpdGlvbiwgYWxsQ2hhcmFjdGVycyk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgY2FzZSAyOiB7Ci0gICAgICAg
ICAgICAgICAgbG9hZDE2VW5hbGlnbmVkKG5lZ2F0aXZlT2Zmc2V0SW5kZXhlZEFkZHJlc3MobV9j
aGVja2VkT2Zmc2V0IC0gc3RhcnRUZXJtUG9zaXRpb24sIGNoYXJhY3RlciksIGNoYXJhY3Rlcik7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2hlY2syKG1fY2hlY2tl
ZE9mZnNldCAtIHN0YXJ0VGVybVBvc2l0aW9uLCBhbGxDaGFyYWN0ZXJzICYgMHhmZmZmLCBpZ25v
cmVDYXNlTWFzayAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgY2FzZSAzOiB7Ci0gICAgICAgICAgICAgICAgbG9hZDE2VW5hbGln
bmVkKG5lZ2F0aXZlT2Zmc2V0SW5kZXhlZEFkZHJlc3MobV9jaGVja2VkT2Zmc2V0IC0gc3RhcnRU
ZXJtUG9zaXRpb24sIGNoYXJhY3RlciksIGNoYXJhY3Rlcik7Ci0gICAgICAgICAgICAgICAgaWYg
KGlnbm9yZUNhc2VNYXNrKQotICAgICAgICAgICAgICAgICAgICBvcjMyKEltbTMyKGlnbm9yZUNh
c2VNYXNrKSwgY2hhcmFjdGVyKTsKLSAgICAgICAgICAgICAgICBvcC5tX2p1bXBzLmFwcGVuZChi
cmFuY2gzMihOb3RFcXVhbCwgY2hhcmFjdGVyLCBJbW0zMigoYWxsQ2hhcmFjdGVycyAmIDB4ZmZm
ZikgfCBpZ25vcmVDYXNlTWFzaykpKTsKLSAgICAgICAgICAgICAgICBvcC5tX2p1bXBzLmFwcGVu
ZChqdW1wSWZDaGFyTm90RXF1YWxzKGFsbENoYXJhY3RlcnMgPj4gMTYsIG1fY2hlY2tlZE9mZnNl
dCAtIHN0YXJ0VGVybVBvc2l0aW9uIC0gMiwgY2hhcmFjdGVyKSk7CisgICAgICAgICAgICAgICAg
Y2hlY2syKG1fY2hlY2tlZE9mZnNldCAtIHN0YXJ0VGVybVBvc2l0aW9uLCBhbGxDaGFyYWN0ZXJz
ICYgMHhmZmZmLCBpZ25vcmVDYXNlTWFzayAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgY2hl
Y2sxKG1fY2hlY2tlZE9mZnNldCAtIHN0YXJ0VGVybVBvc2l0aW9uIC0gMiwgKGFsbENoYXJhY3Rl
cnMgPj4gMTYpICYgMHhmZik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgY2FzZSA0OiB7Ci0gICAgICAgICAgICAgICAgbG9hZDMyV2l0aFVuYWxp
Z25lZEhhbGZXb3JkcyhuZWdhdGl2ZU9mZnNldEluZGV4ZWRBZGRyZXNzKG1fY2hlY2tlZE9mZnNl
dC0gc3RhcnRUZXJtUG9zaXRpb24sIGNoYXJhY3RlciksIGNoYXJhY3Rlcik7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2hlY2s0KG1fY2hlY2tlZE9mZnNldCAtIHN0
YXJ0VGVybVBvc2l0aW9uLCBhbGxDaGFyYWN0ZXJzICYgMHhmZmZmZmZmZiwgaWdub3JlQ2FzZU1h
c2sgJiAweGZmZmZmZmZmKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQorICAgICAgICAgICAgY2FzZSA1OiB7Cisg
ICAgICAgICAgICAgICAgY2hlY2s0KG1fY2hlY2tlZE9mZnNldCAtIHN0YXJ0VGVybVBvc2l0aW9u
LCBhbGxDaGFyYWN0ZXJzICYgMHhmZmZmZmZmZiwgaWdub3JlQ2FzZU1hc2sgJiAweGZmZmZmZmZm
KTsKKyAgICAgICAgICAgICAgICBjaGVjazEobV9jaGVja2VkT2Zmc2V0IC0gc3RhcnRUZXJtUG9z
aXRpb24gLSA0LCAoYWxsQ2hhcmFjdGVycyA+PiAzMikgJiAweGZmKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIDY6IHsKKyAgICAgICAg
ICAgICAgICBjaGVjazQobV9jaGVja2VkT2Zmc2V0IC0gc3RhcnRUZXJtUG9zaXRpb24sIGFsbENo
YXJhY3RlcnMgJiAweGZmZmZmZmZmLCBpZ25vcmVDYXNlTWFzayAmIDB4ZmZmZmZmZmYpOworICAg
ICAgICAgICAgICAgIGNoZWNrMihtX2NoZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3NpdGlvbiAt
IDQsIChhbGxDaGFyYWN0ZXJzID4+IDMyKSAmIDB4ZmZmZiwgKGlnbm9yZUNhc2VNYXNrID4+IDMy
KSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgY2FzZSA3OiB7CisgICAgICAgICAgICAgICAgY2hlY2s0KG1fY2hlY2tlZE9mZnNl
dCAtIHN0YXJ0VGVybVBvc2l0aW9uLCBhbGxDaGFyYWN0ZXJzICYgMHhmZmZmZmZmZiwgaWdub3Jl
Q2FzZU1hc2sgJiAweGZmZmZmZmZmKTsKKyAgICAgICAgICAgICAgICBjaGVjazIobV9jaGVja2Vk
T2Zmc2V0IC0gc3RhcnRUZXJtUG9zaXRpb24gLSA0LCAoYWxsQ2hhcmFjdGVycyA+PiAzMikgJiAw
eGZmZmYsIChpZ25vcmVDYXNlTWFzayA+PiAzMikgJiAweGZmZmYpOworICAgICAgICAgICAgICAg
IGNoZWNrMShtX2NoZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3NpdGlvbiAtIDYsIChhbGxDaGFy
YWN0ZXJzID4+IDQ4KSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNhc2UgODogeworICAgICAgICAgICAgICAgIGNoZWNrOChtX2No
ZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3NpdGlvbiwgYWxsQ2hhcmFjdGVycywgaWdub3JlQ2Fz
ZU1hc2spOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyNlbmRpZgog
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0byBjaGVjazEg
PSBbJl0gKENoZWNrZWQ8dW5zaWduZWQ+IG9mZnNldCwgdWludDY0X3QgY2hhcmFjdGVycykgewor
ICAgICAgICAgICAgICAgIG9wLm1fanVtcHMuYXBwZW5kKGp1bXBJZkNoYXJOb3RFcXVhbHMoY2hh
cmFjdGVycywgb2Zmc2V0LCBjaGFyYWN0ZXIpKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAg
ICAgIGF1dG8gY2hlY2syID0gWyZdIChDaGVja2VkPHVuc2lnbmVkPiBvZmZzZXQsIHVuc2lnbmVk
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIG1hc2spIHsKKyAgICAgICAgICAgICAgICBpZiAobWFzaykg
eworICAgICAgICAgICAgICAgICAgICBsb2FkMzJXaXRoVW5hbGlnbmVkSGFsZldvcmRzKG5lZ2F0
aXZlT2Zmc2V0SW5kZXhlZEFkZHJlc3Mob2Zmc2V0LCBjaGFyYWN0ZXIpLCBjaGFyYWN0ZXIpOwor
ICAgICAgICAgICAgICAgICAgICBpZiAobWFzaykKKyAgICAgICAgICAgICAgICAgICAgICAgIG9y
MzIoSW1tMzIobWFzayksIGNoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAgICAgIG9wLm1fanVt
cHMuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCBjaGFyYWN0ZXIsIEltbTMyKGNoYXJhY3RlcnMg
fCBtYXNrKSkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIG9wLm1fanVtcHMuYXBwZW5kKGJyYW5jaDMyV2l0aFVuYWxpZ25l
ZEhhbGZXb3JkcyhOb3RFcXVhbCwgbmVnYXRpdmVPZmZzZXRJbmRleGVkQWRkcmVzcyhvZmZzZXQs
IGNoYXJhY3RlciksIFRydXN0ZWRJbW0zMihjaGFyYWN0ZXJzKSkpOworICAgICAgICAgICAgfTsK
KworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKKyAgICAgICAgICAgIGF1dG8gY2hlY2s0
ID0gWyZdIChDaGVja2VkPHVuc2lnbmVkPiBvZmZzZXQsIHVpbnQ2NF90IGNoYXJhY3RlcnMsIHVp
bnQ2NF90IG1hc2spIHsKKyAgICAgICAgICAgICAgICBsb2FkNjQobmVnYXRpdmVPZmZzZXRJbmRl
eGVkQWRkcmVzcyhvZmZzZXQsIGNoYXJhY3RlciksIGNoYXJhY3Rlcik7CisgICAgICAgICAgICAg
ICAgaWYgKG1hc2spCisgICAgICAgICAgICAgICAgICAgIG9yNjQoVHJ1c3RlZEltbTY0KG1hc2sp
LCBjaGFyYWN0ZXIpOworICAgICAgICAgICAgICAgIG9wLm1fanVtcHMuYXBwZW5kKGJyYW5jaDY0
KE5vdEVxdWFsLCBjaGFyYWN0ZXIsIFRydXN0ZWRJbW02NChjaGFyYWN0ZXJzIHwgbWFzaykpKTsK
KyAgICAgICAgICAgIH07CisjZW5kaWYKKwogICAgICAgICAgICAgc3dpdGNoIChudW1iZXJDaGFy
YWN0ZXJzKSB7CiAgICAgICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICAgICAgb3AubV9qdW1w
cy5hcHBlbmQoanVtcElmQ2hhck5vdEVxdWFscyhjaCwgbV9jaGVja2VkT2Zmc2V0IC0gdGVybS0+
aW5wdXRQb3NpdGlvbiwgY2hhcmFjdGVyKSk7CisgICAgICAgICAgICAgICAgLy8gRG8gbm90IG1h
c2sgYWxsQ2hhcmFjdGVycyBzaW5jZSBZYXJyIGNvdW50cyBzdXJyb2dhdGUgcGFpcnMgYXMgb25l
IGNoYXJhY3RlciB3aXRoIHVuaWNvZGUgZmxhZy4KKyAgICAgICAgICAgICAgICBjaGVjazEobV9j
aGVja2VkT2Zmc2V0IC0gc3RhcnRUZXJtUG9zaXRpb24sIGFsbENoYXJhY3RlcnMpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgICAgICBs
b2FkMzJXaXRoVW5hbGlnbmVkSGFsZldvcmRzKG5lZ2F0aXZlT2Zmc2V0SW5kZXhlZEFkZHJlc3Mo
bV9jaGVja2VkT2Zmc2V0LSB0ZXJtLT5pbnB1dFBvc2l0aW9uLCBjaGFyYWN0ZXIpLCBjaGFyYWN0
ZXIpOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNoZWNrMihtX2No
ZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3NpdGlvbiwgYWxsQ2hhcmFjdGVycyAmIDB4ZmZmZmZm
ZmYsIGlnbm9yZUNhc2VNYXNrICYgMHhmZmZmZmZmZik7CisgICAgICAgICAgICAgICAgcmV0dXJu
OworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKKyAgICAgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgICAgICBjaGVjazIobV9jaGVja2VkT2Zmc2V0IC0gc3RhcnRUZXJtUG9zaXRpb24s
IGFsbENoYXJhY3RlcnMgJiAweGZmZmZmZmZmLCBpZ25vcmVDYXNlTWFzayAmIDB4ZmZmZmZmZmYp
OworICAgICAgICAgICAgICAgIGNoZWNrMShtX2NoZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3Np
dGlvbiAtIDIsIChhbGxDaGFyYWN0ZXJzID4+IDMyKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgIGNoZWNrNCht
X2NoZWNrZWRPZmZzZXQgLSBzdGFydFRlcm1Qb3NpdGlvbiwgYWxsQ2hhcmFjdGVycywgaWdub3Jl
Q2FzZU1hc2spOworICAgICAgICAgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlnbm9yZUNhc2VNYXNrKQotICAgICAgICAgICAg
b3IzMihJbW0zMihpZ25vcmVDYXNlTWFzayksIGNoYXJhY3Rlcik7Ci0gICAgICAgIG9wLm1fanVt
cHMuYXBwZW5kKGJyYW5jaDMyKE5vdEVxdWFsLCBjaGFyYWN0ZXIsIEltbTMyKGFsbENoYXJhY3Rl
cnMgfCBpZ25vcmVDYXNlTWFzaykpKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICB2b2lk
IGJhY2t0cmFja1BhdHRlcm5DaGFyYWN0ZXJPbmNlKHNpemVfdCBvcEluZGV4KQogICAgIHsKQEAg
LTM0ODEsMTQgKzM1NjUsMTQgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9B
c3NlbWJsZXIgewogCiAgICAgICAgIGlmIChjb21waWxlTW9kZSA9PSBNYXRjaE9ubHkpIHsKICAg
ICAgICAgICAgIGlmIChtX2NoYXJTaXplID09IENoYXI4KQotICAgICAgICAgICAgICAgIGppdE9i
amVjdC5zZXQ4Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiTWF0
Y2gtb25seSA4LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSkpOworICAgICAgICAgICAgICAgIGpp
dE9iamVjdC5zZXQ4Qml0Q29kZU1hdGNoT25seShGSU5BTElaRV9SRUdFWFBfQ09ERShsaW5rQnVm
ZmVyLCAoIk1hdGNoLW9ubHkgOC1iaXQgcmVndWxhciBleHByZXNzaW9uIikpKTsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBqaXRPYmplY3Quc2V0MTZCaXRDb2RlTWF0Y2hPbmx5
KEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCJNYXRjaC1vbmx5IDE2LWJpdCByZWd1bGFyIGV4
cHJlc3Npb24iKSkpOworICAgICAgICAgICAgICAgIGppdE9iamVjdC5zZXQxNkJpdENvZGVNYXRj
aE9ubHkoRklOQUxJWkVfUkVHRVhQX0NPREUobGlua0J1ZmZlciwgKCJNYXRjaC1vbmx5IDE2LWJp
dCByZWd1bGFyIGV4cHJlc3Npb24iKSkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
aWYgKG1fY2hhclNpemUgPT0gQ2hhcjgpCi0gICAgICAgICAgICAgICAgaml0T2JqZWN0LnNldDhC
aXRDb2RlKEZJTkFMSVpFX0NPREUobGlua0J1ZmZlciwgKCI4LWJpdCByZWd1bGFyIGV4cHJlc3Np
b24iKSkpOworICAgICAgICAgICAgICAgIGppdE9iamVjdC5zZXQ4Qml0Q29kZShGSU5BTElaRV9S
RUdFWFBfQ09ERShsaW5rQnVmZmVyLCAoIjgtYml0IHJlZ3VsYXIgZXhwcmVzc2lvbiIpKSk7CiAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgaml0T2JqZWN0LnNldDE2Qml0Q29kZShG
SU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsICgiMTYtYml0IHJlZ3VsYXIgZXhwcmVzc2lvbiIpKSk7
CisgICAgICAgICAgICAgICAgaml0T2JqZWN0LnNldDE2Qml0Q29kZShGSU5BTElaRV9SRUdFWFBf
Q09ERShsaW5rQnVmZmVyLCAoIjE2LWJpdCByZWd1bGFyIGV4cHJlc3Npb24iKSkpOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChtX2ZhaWx1cmVSZWFzb24pCiAgICAgICAgICAgICBqaXRPYmplY3Qu
c2V0RmFsbEJhY2tXaXRoRmFpbHVyZVJlYXNvbigqbV9mYWlsdXJlUmVhc29uKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>